pragma ComponentBehavior: Bound

import QtQuick
import ZShell.Config
import qs.Services

Text {
	id: root

	property bool animate: false
	property int animateDuration: 400
	property real animateFrom: 0
	property string animateProp: "scale"
	property real animateTo: 1

	color: Colors.palette.m3onSurface
	font.family: Config.appearance.font.family.sans
	font.pointSize: Tokens.font.size.normal
	linkColor: Colors.palette.m3onPrimaryFixedVariant
	renderType: Text.NativeRendering
	textFormat: Text.PlainText

	Behavior on color {
		CAnim {
		}
	}
	Behavior on text {
		enabled: root.animate

		SequentialAnimation {
			TAnim {
				target: root
				to: root.animateFrom
				type: Anim.FastEffects
			}

			PropertyAction {
			}

			TAnim {
				target: root
				to: root.animateTo
				type: Anim.DefaultEffects
			}
		}
	}

	component TAnim: Anim {
		duration: root.animateDuration / 2
		properties: root.animateProp.split(",").length > 1 ? root.animateProp : ""
		property: root.animateProp.split(",").length === 1 ? root.animateProp : ""
		target: root
	}
}
