mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-05-02 01:34:56 +00:00
update: qt6,qml,packageview (22 files)
This commit is contained in:
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user