// A freedesktop symbolic icon, recolored to a Theme token.
//
// Adwaita's symbolic SVGs carry a hardcoded near-black fill (#2e3436) and Qt
// does not do GTK's runtime recoloring, so drawn as-is they are invisible on
// a Tokyo Night background — verified on this machine. The fix is to paint a
// themed rectangle through the icon's alpha channel.

import QtQuick
import QtQuick.Effects
import Quickshell
import Quickshell.Widgets
import qs.config

Item {
    id: root

    property string icon: ""
    property string iconFallback: "dialog-information-symbolic"
    property color tint: Theme.fg
    property int size: 18

    implicitWidth: root.size
    implicitHeight: root.size

    // Both inputs are invisible but layered, so they render into textures
    // without ever being composited onto the panel themselves.
    IconImage {
        id: glyph
        anchors.fill: parent
        asynchronous: true
        source: Quickshell.iconPath(root.icon, root.iconFallback)
        visible: false
        layer.enabled: true
    }

    Rectangle {
        id: fill
        anchors.fill: parent
        color: root.tint
        visible: false
        layer.enabled: true
    }

    MultiEffect {
        anchors.fill: parent
        source: fill
        maskEnabled: true
        maskSource: glyph
    }
}
