// Copyright © SixtyFPS GmbH // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 import { CupertinoPalette } from "styling.slint"; export component ProgressIndicator { in property progress; in property indeterminate; min-height: 6px; horizontal-stretch: 1; vertical-stretch: 0; accessible-role: progress-indicator; accessible-value: !root.indeterminate ? root.progress : ""; accessible-value-minimum: 0.0; accessible-value-maximum: 1.0; Rectangle { clip: true; border-radius: 3px; i-rail := Rectangle { border-radius: parent.border-radius; background: CupertinoPalette.alternate-control-background; border-width: 0.5px; border-color: CupertinoPalette.border; clip: true; Rectangle { border-width: 1px; border-color: @radial-gradient(circle, #00000026, #00000000); border-radius: parent.border-radius; } } i-track := Rectangle { width: !root.indeterminate ? parent.width * min(1, max(0, root.progress)) : parent.width; height: 100%; x: !root.indeterminate ? 0px : -parent.width + (parent.width * mod(animation-tick(), 2s) / 1s); border-radius: parent.border-radius; background: CupertinoPalette.accent-background; } } }