diff --git a/apps/nextjs/src/components/board/advanced-focus/advanced-focus.module.css b/apps/nextjs/src/components/board/advanced-focus/advanced-focus.module.css index c108d72c8..60cc31954 100644 --- a/apps/nextjs/src/components/board/advanced-focus/advanced-focus.module.css +++ b/apps/nextjs/src/components/board/advanced-focus/advanced-focus.module.css @@ -35,7 +35,7 @@ .surfaceHostAdvanced { position: fixed; inset: 0; - z-index: calc(var(--mantine-z-index-popover) - 1); + z-index: calc(var(--mantine-z-index-modal) - 1); width: auto; height: auto; pointer-events: none; diff --git a/apps/nextjs/src/components/board/advanced-focus/context.tsx b/apps/nextjs/src/components/board/advanced-focus/context.tsx index 4a5935efe..3f38bdc44 100644 --- a/apps/nextjs/src/components/board/advanced-focus/context.tsx +++ b/apps/nextjs/src/components/board/advanced-focus/context.tsx @@ -201,7 +201,7 @@ export const BoardAdvancedFocusProvider = ({ children }: PropsWithChildren) => { data-advanced-focus-overlay backgroundOpacity={0.38} blur={0} - zIndex="calc(var(--mantine-z-index-popover) - 2)" + zIndex="calc(var(--mantine-z-index-modal) - 2)" className={`${classes.backdrop} ${active.phase === "closing" ? classes.backdropClosing : ""}`} aria-hidden /> diff --git a/e2e/board-advanced-interactions.spec.ts b/e2e/board-advanced-interactions.spec.ts index 2a2a32303..17f07f5cd 100644 --- a/e2e/board-advanced-interactions.spec.ts +++ b/e2e/board-advanced-interactions.spec.ts @@ -120,13 +120,30 @@ describe("Board advanced interactions", () => { probe.dataset.shiftScrollProbe = "true"; probe.style.cssText = "height:80px;overflow-y:auto"; probe.innerHTML = '
'; + probe.addEventListener("wheel", (event) => event.stopPropagation()); element.append(probe); }); const scrollProbe = advancedSurface.locator("[data-shift-scroll-probe]"); await page.keyboard.down("Shift"); - await scrollProbe.dispatchEvent("wheel", { shiftKey: true, deltaX: 120, deltaY: 0 }); + const pixelEventCancelled = await scrollProbe.evaluate( + (element) => + !element.dispatchEvent( + new WheelEvent("wheel", { bubbles: true, cancelable: true, shiftKey: true, deltaX: 120 }), + ), + ); + expect(pixelEventCancelled).toBe(true); + await scrollProbe.evaluate((element) => { + element.scrollTop = 0; + }); + const lineEventCancelled = await scrollProbe.evaluate( + (element) => + !element.dispatchEvent( + new WheelEvent("wheel", { bubbles: true, cancelable: true, shiftKey: true, deltaX: 3, deltaMode: 1 }), + ), + ); await page.keyboard.up("Shift"); - expect(await scrollProbe.evaluate((element) => element.scrollTop)).toBeGreaterThan(0); + expect(lineEventCancelled).toBe(true); + expect(await scrollProbe.evaluate((element) => element.scrollTop)).toBeGreaterThanOrEqual(48); await page.keyboard.press("Escape"); await expect(advancedSurface).toBeHidden(); await expect(widget).toBeFocused(); diff --git a/packages/integrations/src/interfaces/media-server/media-server-types.ts b/packages/integrations/src/interfaces/media-server/media-server-types.ts index 42b6f0615..c9a287155 100644 --- a/packages/integrations/src/interfaces/media-server/media-server-types.ts +++ b/packages/integrations/src/interfaces/media-server/media-server-types.ts @@ -1,7 +1,7 @@ export interface StreamSession { sessionId: string; sessionName: string; - user?: { + user: { userId: string; username: string; profilePictureUrl: string | null; diff --git a/packages/widgets/src/beszel/_shared/disk-usage.tsx b/packages/widgets/src/beszel/_shared/disk-usage.tsx index 826d5c3c8..934981daf 100644 --- a/packages/widgets/src/beszel/_shared/disk-usage.tsx +++ b/packages/widgets/src/beszel/_shared/disk-usage.tsx @@ -28,7 +28,7 @@ export const DiskUsage = ({ system, fontSize, progressSize, valueMiw, valueGap = {formatPercent(system.disk)} { }); describe("supportsAdvancedFocus", () => { - const definition = { supportsAdvancedFocus: undefined } as Parameters[0]; - - test("defaults to enabled", () => { - expect(supportsAdvancedFocus(definition)).toBe(true); - }); - - test("allows widgets to opt out", () => { - expect(supportsAdvancedFocus({ ...definition, supportsAdvancedFocus: false })).toBe(false); - }); - test.each([appDefinition, beszelSystemGridDefinition, beszelSystemTableDefinition])( "keeps non-enhanced widgets compact", (widgetDefinition) => {