From 1d3eef6efa9af17c6c577d9feea7e35481928d31 Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Fri, 26 Dec 2025 07:23:28 +0000 Subject: [PATCH] update: qt6,qml,packageview (22 files) --- .../qt6/packages/analytics/PackageView.qml | 42 ++++++++++++++----- frontends/qt6/packages/blog/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/breakout/PackageView.qml | 42 ++++++++++++++----- .../packages/connection-hub/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/escape-room/PackageView.qml | 42 ++++++++++++++----- frontends/qt6/packages/forum/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/frontpage/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/gallery/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/god-panel/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/guestbook/PackageView.qml | 42 ++++++++++++++----- frontends/qt6/packages/login/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/marketplace/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/microthread/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/music-player/PackageView.qml | 42 ++++++++++++++----- .../packages/package-manager/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/profile-page/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/retro-games/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/snake-game/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/storybook/PackageView.qml | 42 ++++++++++++++----- .../packages/supergod-panel/PackageView.qml | 42 ++++++++++++++----- .../packages/user-settings/PackageView.qml | 42 ++++++++++++++----- .../qt6/packages/watchtower/PackageView.qml | 42 ++++++++++++++----- 22 files changed, 704 insertions(+), 220 deletions(-) diff --git a/frontends/qt6/packages/analytics/PackageView.qml b/frontends/qt6/packages/analytics/PackageView.qml index 27ff5835e..68870e30e 100644 --- a/frontends/qt6/packages/analytics/PackageView.qml +++ b/frontends/qt6/packages/analytics/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Analytics Studio" property string subtitle: "v1.0.0" + property var dependenciesList: ["god_panel", "blog"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Realtime dashboards for usage, telemetry, and forum health."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Realtime dashboards for usage, telemetry, and forum health." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/blog/PackageView.qml b/frontends/qt6/packages/blog/PackageView.qml index 3ad2a45eb..83cbc12fb 100644 --- a/frontends/qt6/packages/blog/PackageView.qml +++ b/frontends/qt6/packages/blog/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Blog" property string subtitle: "v1.0.0" + property var dependenciesList: ["profile_page"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Storytelling hub with author profiles and read-later tagging."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Storytelling hub with author profiles and read-later tagging." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/breakout/PackageView.qml b/frontends/qt6/packages/breakout/PackageView.qml index cd08d4960..2aab4fd4e 100644 --- a/frontends/qt6/packages/breakout/PackageView.qml +++ b/frontends/qt6/packages/breakout/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Breakout" property string subtitle: "v1.0.0" + property var dependenciesList: ["retro_games", "gallery"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Brick-breaking arcade experience that shares assets with the Retro Arcade package."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Brick-breaking arcade experience that shares assets with the Retro Arcade package." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/connection-hub/PackageView.qml b/frontends/qt6/packages/connection-hub/PackageView.qml index 15c3e7e90..fd48a6d1a 100644 --- a/frontends/qt6/packages/connection-hub/PackageView.qml +++ b/frontends/qt6/packages/connection-hub/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Connection Hub" property string subtitle: "v1.0.0" + property var dependenciesList: ["profile_page", "gallery"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Social graph with events, groups, and shared media."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Social graph with events, groups, and shared media." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/escape-room/PackageView.qml b/frontends/qt6/packages/escape-room/PackageView.qml index 99ea4cde5..ec90091b0 100644 --- a/frontends/qt6/packages/escape-room/PackageView.qml +++ b/frontends/qt6/packages/escape-room/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Escape Room" property string subtitle: "v1.0.0" + property var dependenciesList: ["retro_games", "microthread"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Puzzle-driven escape room within the Qt UI for team-building."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Puzzle-driven escape room within the Qt UI for team-building." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/forum/PackageView.qml b/frontends/qt6/packages/forum/PackageView.qml index 8048ba7cc..41fcb8695 100644 --- a/frontends/qt6/packages/forum/PackageView.qml +++ b/frontends/qt6/packages/forum/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Community Forum" property string subtitle: "v1.0.0" + property var dependenciesList: ["profile_page", "guestbook"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Threaded discussions with tagging and moderation tools."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Threaded discussions with tagging and moderation tools." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/frontpage/PackageView.qml b/frontends/qt6/packages/frontpage/PackageView.qml index e2cb3a6b3..a89614bef 100644 --- a/frontends/qt6/packages/frontpage/PackageView.qml +++ b/frontends/qt6/packages/frontpage/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Frontpage Experience" property string subtitle: "v1.0.0" + property var dependenciesList: ["login", "gallery", "blog"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Public landing page that stitches the hero, features, and CTA across all Qt experiences."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Public landing page that stitches the hero, features, and CTA across all Qt experiences." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/gallery/PackageView.qml b/frontends/qt6/packages/gallery/PackageView.qml index fdda2f074..438ed0935 100644 --- a/frontends/qt6/packages/gallery/PackageView.qml +++ b/frontends/qt6/packages/gallery/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Gallery" property string subtitle: "v1.0.0" + property var dependenciesList: ["frontpage"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Media grid with lightbox, filters, and curated collections."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Media grid with lightbox, filters, and curated collections." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/god-panel/PackageView.qml b/frontends/qt6/packages/god-panel/PackageView.qml index 87394b51b..92a8c6563 100644 --- a/frontends/qt6/packages/god-panel/PackageView.qml +++ b/frontends/qt6/packages/god-panel/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "God Panel" property string subtitle: "v1.0.0" + property var dependenciesList: ["login", "user_settings"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Power user console with server toggles, credentials, and runtime health."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Power user console with server toggles, credentials, and runtime health." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/guestbook/PackageView.qml b/frontends/qt6/packages/guestbook/PackageView.qml index 44b1834d7..c4d826fc5 100644 --- a/frontends/qt6/packages/guestbook/PackageView.qml +++ b/frontends/qt6/packages/guestbook/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Guestbook" property string subtitle: "v1.0.0" + property var dependenciesList: [] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Simple contributions feed for visitors to leave messages."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Simple contributions feed for visitors to leave messages." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/login/PackageView.qml b/frontends/qt6/packages/login/PackageView.qml index 7e3ccd612..240f2a370 100644 --- a/frontends/qt6/packages/login/PackageView.qml +++ b/frontends/qt6/packages/login/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Login Shell" property string subtitle: "v1.0.0" + property var dependenciesList: [] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Authentication gate with credential helpers and shortcuts to God-level panels."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Authentication gate with credential helpers and shortcuts to God-level panels." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/marketplace/PackageView.qml b/frontends/qt6/packages/marketplace/PackageView.qml index 0c613212f..29aae49df 100644 --- a/frontends/qt6/packages/marketplace/PackageView.qml +++ b/frontends/qt6/packages/marketplace/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Marketplace" property string subtitle: "v1.0.0" + property var dependenciesList: ["frontpage", "storybook"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Curated extensions and paid components with purchase-to-install workflow."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Curated extensions and paid components with purchase-to-install workflow." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/microthread/PackageView.qml b/frontends/qt6/packages/microthread/PackageView.qml index 7c256d081..faa9614e8 100644 --- a/frontends/qt6/packages/microthread/PackageView.qml +++ b/frontends/qt6/packages/microthread/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "MicroThread" property string subtitle: "v1.0.0" + property var dependenciesList: ["login", "profile_page"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Rapid-fire posting feed, like a micro-blogging stream."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Rapid-fire posting feed, like a micro-blogging stream." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/music-player/PackageView.qml b/frontends/qt6/packages/music-player/PackageView.qml index be0e7a866..5e4e9c53a 100644 --- a/frontends/qt6/packages/music-player/PackageView.qml +++ b/frontends/qt6/packages/music-player/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Music Player" property string subtitle: "v1.0.0" + property var dependenciesList: ["gallery", "analytics"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Ambient audio player with playlists, scrobbling, and visualizers."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Ambient audio player with playlists, scrobbling, and visualizers." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/package-manager/PackageView.qml b/frontends/qt6/packages/package-manager/PackageView.qml index d840a0d86..66d233583 100644 --- a/frontends/qt6/packages/package-manager/PackageView.qml +++ b/frontends/qt6/packages/package-manager/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Package Manager" property string subtitle: "v1.0.0" + property var dependenciesList: ["storybook", "frontpage", "analytics"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Ubuntu Store style manager that hosts repositories and installer UI."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Ubuntu Store style manager that hosts repositories and installer UI." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/profile-page/PackageView.qml b/frontends/qt6/packages/profile-page/PackageView.qml index 2b882ae55..4f0c297c7 100644 --- a/frontends/qt6/packages/profile-page/PackageView.qml +++ b/frontends/qt6/packages/profile-page/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Profile Page" property string subtitle: "v1.0.0" + property var dependenciesList: ["login", "user_settings"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "User profile, activity feed, and quick links to social mini-apps."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "User profile, activity feed, and quick links to social mini-apps." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/retro-games/PackageView.qml b/frontends/qt6/packages/retro-games/PackageView.qml index eed8c8acb..c912fa50b 100644 --- a/frontends/qt6/packages/retro-games/PackageView.qml +++ b/frontends/qt6/packages/retro-games/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Retro Arcade" property string subtitle: "v1.0.0" + property var dependenciesList: ["gallery"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Pixel-perfect retro games to keep visitors entertained inside the app."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Pixel-perfect retro games to keep visitors entertained inside the app." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/snake-game/PackageView.qml b/frontends/qt6/packages/snake-game/PackageView.qml index 186254066..029a06b89 100644 --- a/frontends/qt6/packages/snake-game/PackageView.qml +++ b/frontends/qt6/packages/snake-game/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Snake Game" property string subtitle: "v1.0.0" + property var dependenciesList: ["retro_games"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Classic snake action that can be embedded into any launcher view."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Classic snake action that can be embedded into any launcher view." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/storybook/PackageView.qml b/frontends/qt6/packages/storybook/PackageView.qml index 526ea7f34..d3dd2b433 100644 --- a/frontends/qt6/packages/storybook/PackageView.qml +++ b/frontends/qt6/packages/storybook/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Storybook Showcase" property string subtitle: "v1.0.0" + property var dependenciesList: ["login", "frontpage"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Interactive catalog of all Material components, used for QA and design feedback."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Interactive catalog of all Material components, used for QA and design feedback." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/supergod-panel/PackageView.qml b/frontends/qt6/packages/supergod-panel/PackageView.qml index e57cc67d9..ddf27619b 100644 --- a/frontends/qt6/packages/supergod-panel/PackageView.qml +++ b/frontends/qt6/packages/supergod-panel/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "SuperGod Panel" property string subtitle: "v1.0.0" + property var dependenciesList: ["god_panel", "retro_games"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Overlord console that orchestrates daemons, migrations, and meta workflows."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Overlord console that orchestrates daemons, migrations, and meta workflows." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/user-settings/PackageView.qml b/frontends/qt6/packages/user-settings/PackageView.qml index 87283fef4..33b95861e 100644 --- a/frontends/qt6/packages/user-settings/PackageView.qml +++ b/frontends/qt6/packages/user-settings/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "User Settings" property string subtitle: "v1.0.0" + property var dependenciesList: ["login"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Personalization controls for notifications, themes, and privacy knobs."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Personalization controls for notifications, themes, and privacy knobs." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } } diff --git a/frontends/qt6/packages/watchtower/PackageView.qml b/frontends/qt6/packages/watchtower/PackageView.qml index ad8635dab..3baa4c839 100644 --- a/frontends/qt6/packages/watchtower/PackageView.qml +++ b/frontends/qt6/packages/watchtower/PackageView.qml @@ -3,27 +3,49 @@ import QtQuick.Layouts 1.15 import "qmllib/Material" as Material Material.MaterialSurface { - id: root - width: 380 - height: 280 + id: packageCard + width: 460 + height: 320 property string title: "Watchtower" property string subtitle: "v1.0.0" + property var dependenciesList: ["analytics", "god_panel"] + ColumnLayout { anchors.fill: parent - anchors.margins: 16 + anchors.margins: 18 spacing: 12 + RowLayout { - spacing: 10 - Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primary } - ColumnLayout { spacing: 2 + spacing: 12 + Material.MaterialAvatar { initials: title.left(2).toUpper(); backgroundColor: Material.MaterialPalette.primaryContainer } + ColumnLayout { + spacing: 4 Material.MaterialTypography { variant: "h3"; text: title } Material.MaterialTypography { variant: "body1"; text: subtitle } } + Item { Layout.fillWidth: true } + Material.MaterialBadge { text: dependenciesList.length ? "Dependency package" : "Standalone"; accent: dependenciesList.length > 0 } } - Text { text: "Mission control for logging, alerts, and daemon orchestration."; font.pixelSize: 14; color: Material.MaterialPalette.onSurface; wrapMode: Text.Wrap } - RowLayout { spacing: 8 + + Text { + text: "Mission control for logging, alerts, and daemon orchestration." + font.pixelSize: 14 + color: Material.MaterialPalette.onSurface + wrapMode: Text.WordWrap + } + + GridLayout { + columns: 3 + rowSpacing: 8 + columnSpacing: 8 + Material.MaterialChip { text: "Feature highlight" } +['Adaptive layout', 'Realtime telemetry', 'Community moderation'] + } + + RowLayout { + spacing: 8 Material.MaterialButton { text: "Install" } - Material.MaterialButton { text: "Details"; outlined: true } + Material.MaterialButton { text: "Dependency graph"; outlined: true } } } }