// Month-stepping arrow in CalendarGrid's header. A round hover target sized
// like GNOME's calendar arrows rather than a bare glyph, so it reads as a
// button before the pointer is anywhere near it.

import QtQuick
import qs.config

Rectangle {
    id: root

    signal activated

    required property string glyph

    implicitWidth: 26
    implicitHeight: 26
    radius: width / 2
    border.width: 0
    color: mouse.containsMouse ? Theme.alpha(Theme.fg, Theme.hoverAlpha) : "transparent"

    // Fast in, relaxed out — the arrow answers the pointer, so arriving should
    // feel immediate and leaving should not snap.
    Behavior on color {
        ColorAnimation {
            duration: mouse.containsMouse ? Theme.durFast : Theme.durNormal
        }
    }

    Text {
        anchors.centerIn: parent
        text: root.glyph
        // fontMono is the Nerd Font: used here to draw an icon, never text.
        font.family: Theme.fontMono
        font.pixelSize: Theme.fontSize
        color: mouse.containsMouse ? Theme.fg : Theme.fgDim
    }

    MouseArea {
        id: mouse
        anchors.fill: parent
        hoverEnabled: true
        cursorShape: Qt.PointingHandCursor
        onClicked: root.activated()
    }
}
