*/ protected function responsiveBreakpoints(): array { return [ 'desktop' => ['width' => 1440, 'height' => 900], 'laptop' => ['width' => 1280, 'height' => 800], 'tablet_portrait' => ['width' => 768, 'height' => 1024], 'tablet_landscape' => ['width' => 1024, 'height' => 768], 'mobile' => ['width' => 390, 'height' => 844], 'small_mobile' => ['width' => 360, 'height' => 740], ]; } /** * Run a browser assertion across every supported WMS viewport. * * @param Closure(Browser, string): void $callback */ protected function eachBreakpoint(Browser $browser, Closure $callback): void { foreach ($this->responsiveBreakpoints() as $name => $size) { $browser->resize($size['width'], $size['height']); $callback($browser, $name); $browser->screenshot("wms-responsive-{$name}"); } } /** * Decide whether the breakpoint should use the off-canvas mobile navigation. */ protected function isMobileNavigationBreakpoint(string $breakpoint): bool { return in_array($breakpoint, ['tablet_portrait', 'mobile', 'small_mobile'], true); } }