// A deliberately quiet appointment reminder. It only enters the bar during
// the narrow window where an upcoming event is immediately useful.

import QtQuick
import QtQuick.Controls
import qs.config
import qs.services
import qs.widgets

Pill {
    id: root

    visible: Settings.showCalendarCountdown && CalendarAgenda.capsuleVisible
    opacity: visible ? 1 : 0
    horizontalPadding: 8
    onActivated: ShellState.openDateMenu("agenda")

    // Right-click opens the settings that govern this widget. The same place the clock leads, since this is the calendar's own reminder.
    onSecondaryActivated: ShellState.openSettings("datetime")

    ToolTip.visible: root.hovered && root.visible
    ToolTip.delay: 500
    ToolTip.text: CalendarAgenda.nextEvent?.summary ?? "Upcoming event"

    Behavior on opacity {
        NumberAnimation {
            duration: 120
            easing.type: Easing.OutCubic
        }
    }

    Behavior on implicitWidth {
        NumberAnimation {
            duration: 120
            easing.type: Easing.OutCubic
        }
    }

    Text {
        anchors.verticalCenter: parent.verticalCenter
        text: "\u{F00ED}"
        color: Theme.accent
        font.family: Theme.fontMono
        font.pixelSize: 13
    }

    Text {
        anchors.verticalCenter: parent.verticalCenter
        text: CalendarAgenda.capsuleText
        color: Theme.barFg
        font.family: Theme.fontFamily
        font.features: Theme.tabularFigures
        font.pixelSize: Theme.fontSizeSmall
        font.weight: Font.DemiBold
    }
}
