pragma ComponentBehavior: Bound
import Quickshell
import Quickshell.Hyprland
import Quickshell.Widgets
import QtQuick
import QtQuick.Layouts
import qs
import qs.widgets
import qs.settings

Rectangle {
        id: root
        required property ShellScreen barScreen
        required property double moduleHeight
        property HyprlandMonitor hyprBarScreen: Hyprland.monitorFor(root.barScreen)
        radius: Config.rounding
        color: 'transparent'
        implicitWidth: wsLayout.implicitWidth
        implicitHeight: moduleHeight

        RowLayout {
                id: wsLayout
                anchors.centerIn: root
                anchors.horizontalCenter: parent.horizontalCenter
                spacing: 0
                Repeater {
                        id: wsRepeater
                        model: 11
                        delegate: Rectangle {
                                id: wsWrapper
                                implicitHeight: root.moduleHeight
                                implicitWidth: 16
                                parent: wsLayout
                                color: 'transparent'
                                radius: Config.rounding
                                visible: Hyprland.workspaces?.values[modelData].monitor == root.hyprBarScreen
                                required property var modelData
                                StyledText {
                                        anchors.centerIn: parent
                                        text: wsWrapper.modelData
                                        color: Hyprland.workspaces?.values[modelData].active ? Colors.base0D : Colors.base04
                                        opacity: parent.modelData.active ? 1.0 : 0.5
                                }
                                Behavior on implicitWidth {
                                        NumberAnimation {
                                                easing.type: Easing.InOutBack
                                                easing.amplitude: 2
                                                duration: 400
                                                easing.overshoot: 2
                                        }
                                }
                                MouseArea {
                                        id: clickHandler
                                        anchors.fill: parent
                                        acceptedButtons: Qt.LeftButton
                                        cursorShape: Qt.PointingHandCursor
                                        onClicked: parent.modelData.activate()
                                }
                        }
                }
        }
}
