waitForEvent('networkidle') ->assertScript("document.readyState === 'complete' && typeof window.Alpine !== 'undefined' && typeof window.Livewire !== 'undefined'"); } it('lets an application\'s unlayered rule beat a component default', function () { // The brief's own example: a caller's plain, unlayered `.app-wide` rule against button.css's // layered `padding-inline: var(--md-button-padding)` and `inline-size: var(--md-button-width)` // — unlayered CSS outranks every `@layer`, however specific the layered rule is. Route::middleware('web')->get('/cascade-unlayered-probe', fn () => Blade::render(<<<'BLADE' @vite(config('livewire-material.showcase.vite')) @livewireStyles @livewireScripts BLADE)); cascadeReady(visit('/cascade-unlayered-probe')) ->assertScript("Math.round(document.querySelector('[data-test=\"button\"]').getBoundingClientRect().width) === 320"); }); it('lets [hidden] beat a component\'s display', function () { // The reset's `[hidden]:where(:not([hidden='until-found'])) { display: none !important }` // sits outside every layer, so it beats a component's own `display` (button.css's `inline-flex`, // row.css's `flex`) whatever `@layer` that rule sits in. Route::middleware('web')->get('/cascade-hidden-probe', fn () => Blade::render(<<<'BLADE' @vite(config('livewire-material.showcase.vite')) @livewireStyles