pragma ComponentBehavior: Bound import ZShell.Config import ZShell.Llm import QtQuick import QtQuick.Layouts import qs.Components import qs.Modules.Notifications.Sidebar.Chat import qs.Services Item { id: root required property Props props required property var visibilities ColumnLayout { id: layout anchors.fill: parent spacing: Tokens.spacing.small Tabs { Layout.fillWidth: true dashState: root.props nonAnimWidth: layout.width } CustomClippingRect { Layout.fillHeight: true Layout.fillWidth: true radius: Tokens.rounding.small Item { id: pages anchors.fill: parent opacity: root.props.currentTab === 0 ? 1 : 0 visible: opacity > 0.01 Behavior on opacity { Anim { } } CustomRect { anchors.fill: parent color: Colors.tPalette.m3surfaceContainerLow radius: Tokens.rounding.small NotifDock { props: root.props visibilities: root.visibilities } } } Item { id: chatPage anchors.fill: parent opacity: visible ? 1 : 0 visible: root.props.currentTab === 1 z: 1 Behavior on opacity { Anim { } } CustomRect { anchors.fill: parent color: Colors.tPalette.m3surfaceContainerLow radius: Tokens.rounding.small ChatPanel { anchors.fill: parent props: root.props } } } } CustomRect { Layout.fillWidth: true Layout.topMargin: Tokens.padding.small - layout.spacing color: Colors.tPalette.m3outlineVariant implicitHeight: 1 } } }