pragma ComponentBehavior: Bound import qs.Components import qs.Components.Toast import ZShell import ZShell.Config import ZShell.Llm import Quickshell import QtQuick Item { id: root readonly property bool chatActive: screenState.sidebarTab === 1 property real offsetScale: shouldBeActive ? 0 : 1 required property var panels required property ScreenState screenState readonly property bool shouldBeActive: root.screenState.sidebar && Config.sidebar.enabled anchors.rightMargin: (-implicitWidth - 5) * offsetScale implicitWidth: Config.sidebar.sizes.width opacity: 1 - offsetScale visible: offsetScale < 1 Behavior on offsetScale { Anim { duration: Tokens.anim.durations.expressiveDefaultSpatial easing: Tokens.anim.expressiveDefaultSpatial } } Connections { target: Chat function onErrorOccurred(message: string): void { if (root.shouldBeActive && root.chatActive) return; Toaster.toast(qsTr("Chat"), message, "error_outline", Toast.Error); } } Loader { id: content active: root.shouldBeActive || root.visible anchors.bottom: parent.bottom anchors.bottomMargin: 0 anchors.left: parent.left anchors.margins: 8 anchors.top: parent.top sourceComponent: Content { implicitWidth: Config.sidebar.sizes.width - Tokens.padding.small * 2 screenState: root.screenState } } }