diff --git a/demo/peer-media/cover-book-broadcast.jpg b/demo/peer-media/cover-book-broadcast.jpg new file mode 100644 index 00000000..441d06ad Binary files /dev/null and b/demo/peer-media/cover-book-broadcast.jpg differ diff --git a/demo/peer-media/cover-book-cypher.jpg b/demo/peer-media/cover-book-cypher.jpg new file mode 100644 index 00000000..59662424 Binary files /dev/null and b/demo/peer-media/cover-book-cypher.jpg differ diff --git a/demo/peer-media/cover-book-sovereign.jpg b/demo/peer-media/cover-book-sovereign.jpg new file mode 100644 index 00000000..3e015cca Binary files /dev/null and b/demo/peer-media/cover-book-sovereign.jpg differ diff --git a/demo/peer-media/photo-alpine-ridge.jpg b/demo/peer-media/photo-alpine-ridge.jpg new file mode 100644 index 00000000..2fdd3eb7 Binary files /dev/null and b/demo/peer-media/photo-alpine-ridge.jpg differ diff --git a/demo/peer-media/photo-aurora-fjord.jpg b/demo/peer-media/photo-aurora-fjord.jpg new file mode 100644 index 00000000..5282b779 Binary files /dev/null and b/demo/peer-media/photo-aurora-fjord.jpg differ diff --git a/demo/peer-media/photo-autumn-valley.jpg b/demo/peer-media/photo-autumn-valley.jpg new file mode 100644 index 00000000..23c66ef1 Binary files /dev/null and b/demo/peer-media/photo-autumn-valley.jpg differ diff --git a/demo/peer-media/photo-city-neon.jpg b/demo/peer-media/photo-city-neon.jpg new file mode 100644 index 00000000..da19c66e Binary files /dev/null and b/demo/peer-media/photo-city-neon.jpg differ diff --git a/demo/peer-media/photo-desert-dunes.jpg b/demo/peer-media/photo-desert-dunes.jpg new file mode 100644 index 00000000..c4686f00 Binary files /dev/null and b/demo/peer-media/photo-desert-dunes.jpg differ diff --git a/demo/peer-media/photo-forest-mist.jpg b/demo/peer-media/photo-forest-mist.jpg new file mode 100644 index 00000000..6be316e0 Binary files /dev/null and b/demo/peer-media/photo-forest-mist.jpg differ diff --git a/demo/peer-media/photo-harbor-dawn.jpg b/demo/peer-media/photo-harbor-dawn.jpg new file mode 100644 index 00000000..7ee0d193 Binary files /dev/null and b/demo/peer-media/photo-harbor-dawn.jpg differ diff --git a/demo/peer-media/photo-mountain-lake.jpg b/demo/peer-media/photo-mountain-lake.jpg new file mode 100644 index 00000000..39ffa9bd Binary files /dev/null and b/demo/peer-media/photo-mountain-lake.jpg differ diff --git a/demo/peer-media/photo-northern-road.jpg b/demo/peer-media/photo-northern-road.jpg new file mode 100644 index 00000000..be284b50 Binary files /dev/null and b/demo/peer-media/photo-northern-road.jpg differ diff --git a/demo/peer-media/photo-ocean-cliff.jpg b/demo/peer-media/photo-ocean-cliff.jpg new file mode 100644 index 00000000..fa5cf139 Binary files /dev/null and b/demo/peer-media/photo-ocean-cliff.jpg differ diff --git a/demo/peer-media/poster-film-block.jpg b/demo/peer-media/poster-film-block.jpg new file mode 100644 index 00000000..518d27cf Binary files /dev/null and b/demo/peer-media/poster-film-block.jpg differ diff --git a/demo/peer-media/poster-film-mesh.jpg b/demo/peer-media/poster-film-mesh.jpg new file mode 100644 index 00000000..7c3adeda Binary files /dev/null and b/demo/peer-media/poster-film-mesh.jpg differ diff --git a/demo/peer-media/poster-film-signal.jpg b/demo/peer-media/poster-film-signal.jpg new file mode 100644 index 00000000..3588f3a8 Binary files /dev/null and b/demo/peer-media/poster-film-signal.jpg differ diff --git a/demo/peer-media/poster-series-node.jpg b/demo/peer-media/poster-series-node.jpg new file mode 100644 index 00000000..a23c0815 Binary files /dev/null and b/demo/peer-media/poster-series-node.jpg differ diff --git a/neode-ui/src/components/cloud/FileCard.vue b/neode-ui/src/components/cloud/FileCard.vue index 31af8340..5f3ce652 100644 --- a/neode-ui/src/components/cloud/FileCard.vue +++ b/neode-ui/src/components/cloud/FileCard.vue @@ -110,7 +110,7 @@ const imgFailed = ref(false) const ext = computed(() => props.item.extension) const isDir = computed(() => props.item.isDir) -const { isImage, isVideo, iconPaths, iconColor, badgeLabel, badgeClass } = useFileType(ext, isDir) +const { isImage, isVideo, isAudio, iconPaths, iconColor, badgeLabel, badgeClass } = useFileType(ext, isDir) const thumbnailUrl = computed(() => { if (!isImage.value || imgFailed.value) return null @@ -122,8 +122,12 @@ const downloadHref = computed(() => cloudStore.downloadUrl(props.item.path)) function handleClick() { if (props.item.isDir) { emit('navigate', props.item.path) - } else if (isImage.value || isVideo.value) { + } else if (isImage.value || isVideo.value || isAudio.value) { + // MediaLightbox handles all three media kinds. emit('preview', props.item.path) + } else { + // Non-media files open by downloading — a click should always act on the file. + window.location.href = downloadHref.value } } diff --git a/neode-ui/src/style.css b/neode-ui/src/style.css index fb79467a..85256555 100644 --- a/neode-ui/src/style.css +++ b/neode-ui/src/style.css @@ -1715,26 +1715,28 @@ html.modal-scroll-locked .dashboard-scroll-panel { .cloud-file-list { display: flex; flex-direction: column; - gap: 0.125rem; + gap: 0.5rem; padding-bottom: 1rem; } .cloud-file-item { display: flex; gap: 0.75rem; - padding: 0.5rem; + padding: 0.625rem 0.75rem; border-radius: 0.75rem; transition: background-color 0.2s ease; text-align: left; width: 100%; cursor: pointer; - background: none; - border: none; + /* Readable card rows (like the Peer Files list) — bare text over the + wallpaper was unreadable. */ + background: rgba(0, 0, 0, 0.45); + border: 1px solid rgba(255, 255, 255, 0.08); color: inherit; align-items: center; } .cloud-file-item:hover { - background: rgba(255, 255, 255, 0.05); + background: rgba(255, 255, 255, 0.08); } .cloud-file-item:active { background: rgba(255, 255, 255, 0.1); @@ -2087,6 +2089,7 @@ html.modal-scroll-locked .dashboard-scroll-panel { .mobile-category-pill { flex: 0 0 auto; + white-space: nowrap; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 999px; background: rgba(255, 255, 255, 0.08); diff --git a/neode-ui/src/views/Cloud.vue b/neode-ui/src/views/Cloud.vue index a24c1e23..4bfee8fa 100644 --- a/neode-ui/src/views/Cloud.vue +++ b/neode-ui/src/views/Cloud.vue @@ -6,17 +6,17 @@
- -