[fix](trx-frontend-http): fit spectrum bookmarks on smaller displays
Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -8830,6 +8830,29 @@ function updateSideBookmarkStack(container, bookmarks, colorMap) {
|
|||||||
container.appendChild(createBookmarkChip(bm, colorMap, { sideStack: true }));
|
container.appendChild(createBookmarkChip(bm, colorMap, { sideStack: true }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const wrapEl = container.parentElement;
|
||||||
|
const wrapRect = wrapEl?.getBoundingClientRect?.();
|
||||||
|
const viewportWidth = Math.max(
|
||||||
|
document.documentElement?.clientWidth || 0,
|
||||||
|
window.innerWidth || 0,
|
||||||
|
);
|
||||||
|
const style = getComputedStyle(container);
|
||||||
|
const sideOffset = Math.abs(
|
||||||
|
parseFloat(container.classList.contains("spectrum-bookmark-side-left") ? style.left : style.right) || 0,
|
||||||
|
);
|
||||||
|
const sideWidth = parseFloat(style.width) || 0;
|
||||||
|
const requiredSpace = Math.max(sideOffset, sideWidth) + 8;
|
||||||
|
const fitsLeft = !wrapRect || wrapRect.left >= requiredSpace;
|
||||||
|
const fitsRight = !wrapRect || (viewportWidth - wrapRect.right) >= requiredSpace;
|
||||||
|
const sideFits = container.classList.contains("spectrum-bookmark-side-left")
|
||||||
|
? fitsLeft
|
||||||
|
: fitsRight;
|
||||||
|
if (!sideFits) {
|
||||||
|
container.classList.remove("bm-side-visible");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
container.classList.add("bm-side-visible");
|
container.classList.add("bm-side-visible");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,9 @@
|
|||||||
--card-base-max-width: 1280px;
|
--card-base-max-width: 1280px;
|
||||||
--card-max-width: 1600px;
|
--card-max-width: 1600px;
|
||||||
--card-bookmark-gutter: 4rem;
|
--card-bookmark-gutter: 4rem;
|
||||||
|
--signal-visual-max-width: 67.5rem;
|
||||||
|
--spectrum-bookmark-side-width: 6.5rem;
|
||||||
|
--spectrum-bookmark-side-offset: 8.85rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme="light"] {
|
[data-theme="light"] {
|
||||||
@@ -629,7 +632,8 @@ small { color: var(--text-muted); }
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0;
|
gap: 0;
|
||||||
margin-bottom: 0.9rem;
|
width: min(100%, var(--signal-visual-max-width));
|
||||||
|
margin: 0 auto 0.9rem;
|
||||||
}
|
}
|
||||||
#signal-split-control {
|
#signal-split-control {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -2949,7 +2953,7 @@ button:focus-visible, input:focus-visible, select:focus-visible {
|
|||||||
top: calc(var(--spectrum-plot-height) / 2);
|
top: calc(var(--spectrum-plot-height) / 2);
|
||||||
transform: translateY(-50%);
|
transform: translateY(-50%);
|
||||||
z-index: 7;
|
z-index: 7;
|
||||||
width: 7.25rem;
|
width: var(--spectrum-bookmark-side-width);
|
||||||
display: none;
|
display: none;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0.28rem;
|
gap: 0.28rem;
|
||||||
@@ -2958,11 +2962,11 @@ button:focus-visible, input:focus-visible, select:focus-visible {
|
|||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
.spectrum-bookmark-side-left {
|
.spectrum-bookmark-side-left {
|
||||||
left: -10.15rem;
|
left: calc(-1 * var(--spectrum-bookmark-side-offset));
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
.spectrum-bookmark-side-right {
|
.spectrum-bookmark-side-right {
|
||||||
right: -10.15rem;
|
right: calc(-1 * var(--spectrum-bookmark-side-offset));
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
}
|
}
|
||||||
.spectrum-bookmark-side .spectrum-bookmark-chip {
|
.spectrum-bookmark-side .spectrum-bookmark-chip {
|
||||||
|
|||||||
Reference in New Issue
Block a user