fixes
This commit is contained in:
+12
-7
@@ -45,6 +45,14 @@ function updateScrollTopVisibility() {
|
||||
}
|
||||
const scrollEl = getScrollContainer(cardStackEl);
|
||||
if (scrollEl) {
|
||||
const viewportEl = scrollEl.parentElement || galleryContainerEl;
|
||||
if (viewportEl && scrollToTopBtnEl && scrollToTopBtnEl.parentNode !== viewportEl) {
|
||||
if (window.getComputedStyle(viewportEl).position === "static") {
|
||||
viewportEl.style.position = "relative";
|
||||
}
|
||||
viewportEl.appendChild(scrollToTopBtnEl);
|
||||
}
|
||||
|
||||
if (scrollToTopBtnEl) {
|
||||
scrollToTopBtnEl.style.display = scrollEl.scrollTop > 200 ? "flex" : "none";
|
||||
}
|
||||
@@ -636,19 +644,13 @@ export function setupGalleryView() {
|
||||
const cardStack = document.createElement("div");
|
||||
cardStackEl = cardStack;
|
||||
Object.assign(cardStack.style, {
|
||||
flex: "1", overflowY: "visible", display: "flex", flexDirection: "column", paddingBottom: "28px"
|
||||
flex: "1", overflowY: "visible", display: "flex", flexDirection: "column", paddingBottom: "46px"
|
||||
});
|
||||
container.appendChild(cardStack);
|
||||
|
||||
scrollToTopBtnEl = document.createElement("button");
|
||||
scrollToTopBtnEl.className = "pi pi-chevron-up comfy-sidebar-scroll-top-btn";
|
||||
scrollToTopBtnEl.title = t("Scroll to Top");
|
||||
Object.assign(scrollToTopBtnEl.style, {
|
||||
position: "sticky",
|
||||
bottom: "14px",
|
||||
marginLeft: "auto",
|
||||
zIndex: "30"
|
||||
});
|
||||
scrollToTopBtnEl.onclick = (e) => {
|
||||
e.stopPropagation();
|
||||
const scrollEl = getScrollContainer(cardStackEl);
|
||||
@@ -691,5 +693,8 @@ export function teardownGalleryView() {
|
||||
stickyHeaderGroupEl = null;
|
||||
galleryContainerEl = null;
|
||||
cardStackEl = null;
|
||||
if (scrollToTopBtnEl && scrollToTopBtnEl.parentNode) {
|
||||
scrollToTopBtnEl.parentNode.removeChild(scrollToTopBtnEl);
|
||||
}
|
||||
scrollToTopBtnEl = null;
|
||||
}
|
||||
@@ -336,7 +336,7 @@ export function setupSidebarView() {
|
||||
overflowY: "visible",
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
paddingBottom: "28px"
|
||||
paddingBottom: "46px"
|
||||
});
|
||||
container.appendChild(cardStack);
|
||||
|
||||
@@ -997,4 +997,8 @@ export function teardownSidebarView() {
|
||||
renderAnimationFrameId = null;
|
||||
}
|
||||
cardPool.clear();
|
||||
if (scrollToTopBtnEl && scrollToTopBtnEl.parentNode) {
|
||||
scrollToTopBtnEl.parentNode.removeChild(scrollToTopBtnEl);
|
||||
}
|
||||
scrollToTopBtnEl = null;
|
||||
}
|
||||
+19
-6
@@ -328,6 +328,7 @@ function createAudioViewer(baseSrc, onSwitchMedia = () => {}, onDestroy = () =>
|
||||
const createMediaElement = (src, muted = false) => {
|
||||
const isVideo = isVideoFormat(src);
|
||||
const el = isVideo ? document.createElement("video") : document.createElement("img");
|
||||
el.className = "comfy-sidebar-comparison-media";
|
||||
if (isVideo) {
|
||||
el.muted = muted;
|
||||
el.playsInline = true;
|
||||
@@ -345,7 +346,10 @@ const createMediaElement = (src, muted = false) => {
|
||||
pointerEvents: isVideo ? "none" : "auto",
|
||||
userSelect: "none",
|
||||
webkitUserSelect: "none",
|
||||
display: "block"
|
||||
display: "block",
|
||||
border: "none",
|
||||
outline: "none",
|
||||
boxShadow: "none"
|
||||
});
|
||||
el.draggable = false;
|
||||
el.ondragstart = (e) => e.preventDefault();
|
||||
@@ -576,21 +580,30 @@ function createComparisonViewer(baseSrc, onDestroy = () => {}) {
|
||||
}
|
||||
|
||||
const slider = document.createElement("div");
|
||||
slider.className = "comfy-sidebar-comparison-slider";
|
||||
Object.assign(slider.style, {
|
||||
position: "absolute", top: "0", bottom: "0", left: "50%",
|
||||
width: "2px", background: "#fff", cursor: "ew-resize",
|
||||
width: "2px",
|
||||
background: "var(--foreground, #ffffff)",
|
||||
cursor: "ew-resize",
|
||||
zIndex: "25", display: "none", pointerEvents: "auto",
|
||||
boxShadow: "0 0 8px rgba(0,0,0,0.5)"
|
||||
boxShadow: "0 0 6px rgba(0,0,0,0.6)"
|
||||
});
|
||||
const sliderButton = document.createElement("div");
|
||||
sliderButton.className = "comfy-sidebar-comparison-handle";
|
||||
Object.assign(sliderButton.style, {
|
||||
position: "absolute", top: "50%", left: "50%",
|
||||
transform: "translate(-50%, -50%)", width: "32px", height: "32px",
|
||||
borderRadius: "50%", background: "#fff", color: "#333",
|
||||
borderRadius: "50%",
|
||||
background: "var(--card, var(--secondary, rgba(30, 30, 30, 0.9)))",
|
||||
border: "1px solid var(--border, var(--border-color, rgba(255, 255, 255, 0.15)))",
|
||||
color: "var(--foreground, #eee)",
|
||||
display: "flex", alignItems: "center", justifyContent: "center",
|
||||
boxShadow: "0 2px 6px rgba(0,0,0,0.4)", pointerEvents: "auto"
|
||||
boxShadow: "0 4px 12px rgba(0,0,0,0.5)", pointerEvents: "auto",
|
||||
cursor: "ew-resize",
|
||||
transition: "background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, color 0.15s ease-in-out"
|
||||
});
|
||||
sliderButton.innerHTML = `<span class="pi pi-arrows-h" style="font-size: 12px;"></span>`;
|
||||
sliderButton.innerHTML = `<span class="pi pi-arrows-h" style="font-size: 13px; pointer-events: none;"></span>`;
|
||||
slider.appendChild(sliderButton);
|
||||
wrapper.appendChild(slider);
|
||||
|
||||
|
||||
+47
-15
@@ -614,26 +614,58 @@ export function injectStyles() {
|
||||
-webkit-backdrop-filter: blur(10px) !important;
|
||||
}
|
||||
|
||||
/* Round (X) Close Button across all preview overlays (matches button, div, or span) */
|
||||
body.comfy-sidebar-overlay-active [style*="50%"],
|
||||
.comfy-sidebar-comparison-overlay [style*="50%"],
|
||||
.comfy-sidebar-3d-overlay-root [style*="50%"],
|
||||
div[class*="sidebar-overlay"] [style*="50%"] {
|
||||
background: var(--card, var(--secondary, rgba(28, 28, 35, 0.9))) !important;
|
||||
border: 1px solid var(--border, var(--border-color, rgba(255, 255, 255, 0.2))) !important;
|
||||
color: var(--muted-foreground, #cbd5e1) !important;
|
||||
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5) !important;
|
||||
/* Comparison Media: Ensures no borders or outlines appear on compared images */
|
||||
.comfy-sidebar-comparison-media {
|
||||
border: none !important;
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
/* Comparison Slider Line & Handle */
|
||||
.comfy-sidebar-comparison-slider {
|
||||
background: var(--foreground, #ffffff) !important;
|
||||
box-shadow: 0 0 6px rgba(0, 0, 0, 0.6) !important;
|
||||
}
|
||||
|
||||
.comfy-sidebar-comparison-handle {
|
||||
width: 32px !important;
|
||||
height: 32px !important;
|
||||
border-radius: 50% !important;
|
||||
background: var(--card, var(--secondary, rgba(30, 30, 30, 0.9))) !important;
|
||||
border: 1px solid var(--border, var(--border-color, rgba(255, 255, 255, 0.15))) !important;
|
||||
color: var(--foreground, #eee) !important;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5) !important;
|
||||
cursor: ew-resize !important;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, color 0.15s ease-in-out !important;
|
||||
}
|
||||
|
||||
.comfy-sidebar-comparison-handle:hover {
|
||||
background: var(--primary, var(--p-primary-color, #ea580c)) !important;
|
||||
border-color: var(--primary, var(--p-primary-color, #ea580c)) !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
/* Round (X) Close Button across all preview overlays (matches buttons, ignores images/sliders) */
|
||||
body.comfy-sidebar-overlay-active button[style*="50%"],
|
||||
body.comfy-sidebar-overlay-active [style*="border-radius: 50%"]:not(img):not(video):not(.comfy-sidebar-comparison-handle):not(.comfy-sidebar-comparison-slider):not(.comfy-sidebar-comparison-media),
|
||||
body.comfy-sidebar-overlay-active [style*="border-radius:50%"]:not(img):not(video):not(.comfy-sidebar-comparison-handle):not(.comfy-sidebar-comparison-slider):not(.comfy-sidebar-comparison-media),
|
||||
.comfy-sidebar-comparison-overlay button[style*="50%"],
|
||||
div[class*="sidebar-overlay"] button[style*="50%"] {
|
||||
background: var(--card, var(--secondary, rgba(30, 30, 30, 0.9))) !important;
|
||||
border: 1px solid var(--border, var(--border-color, rgba(255, 255, 255, 0.15))) !important;
|
||||
color: var(--foreground, #eee) !important;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5) !important;
|
||||
transition: all 0.15s ease-in-out !important;
|
||||
}
|
||||
|
||||
body.comfy-sidebar-overlay-active [style*="50%"]:hover,
|
||||
.comfy-sidebar-comparison-overlay [style*="50%"]:hover,
|
||||
.comfy-sidebar-3d-overlay-root [style*="50%"]:hover,
|
||||
div[class*="sidebar-overlay"] [style*="50%"]:hover {
|
||||
body.comfy-sidebar-overlay-active button[style*="50%"]:hover,
|
||||
body.comfy-sidebar-overlay-active [style*="border-radius: 50%"]:not(img):not(video):not(.comfy-sidebar-comparison-handle):not(.comfy-sidebar-comparison-slider):not(.comfy-sidebar-comparison-media):hover,
|
||||
body.comfy-sidebar-overlay-active [style*="border-radius:50%"]:not(img):not(video):not(.comfy-sidebar-comparison-handle):not(.comfy-sidebar-comparison-slider):not(.comfy-sidebar-comparison-media):hover,
|
||||
.comfy-sidebar-comparison-overlay button[style*="50%"]:hover,
|
||||
div[class*="sidebar-overlay"] button[style*="50%"]:hover {
|
||||
color: #ffffff !important;
|
||||
border-color: var(--primary, var(--p-primary-color, #ea580c)) !important;
|
||||
background: color-mix(in srgb, var(--primary, var(--p-primary-color, #ea580c)) 25%, var(--card, var(--secondary, #222)) 75%) !important;
|
||||
transform: scale(1.08) !important;
|
||||
background: var(--primary, var(--p-primary-color, #ea580c)) !important;
|
||||
}
|
||||
|
||||
body.comfy-sidebar-overlay-active [style*="50%"] svg,
|
||||
|
||||
Reference in New Issue
Block a user