blade(<<<'BLADE'
MAIN
BLADE); expect(layoutRoot($html))->toMatchArray([ '<' => 'div', 'data-md-supporting-pane' => 'data-md-supporting-pane', 'data-md-width' => 'fixed', 'data-md-compact' => 'below', ]) ->and($html)->toMatch('/
MAIN<\/article><\/div>\s*\s*
    SUPPORTING<\/ul><\/div>\s*<\/aside>/s') ->not->toContain('data-md-supporting-pane-handle') ->not->toContain('x-data'); }); it('takes the default slot as the focus pane', function () { expect((string) $this->blade('MAINSIDE')) ->toMatch('/
    \s*MAIN\s*<\/div>/'); }); it('splits the window two-thirds to one-third, or keeps the fixed pane for anything else', function () { expect(layoutRoot((string) $this->blade(''))['data-md-width'])->toBe('split') ->and(layoutRoot((string) $this->blade(''))['data-md-width'])->toBe('fixed'); }); it('names the supporting pane with its label', function () { expect((string) $this->blade(''))->toMatch('/blade('MAINSIDE'); preg_match('/aria-controls="([^"]+)"/', $html, $controls); expect(layoutRoot($html)['data-md-compact'])->toBe('sheet') ->and($html)->toContain('x-data="{ sheetOpen: false }"') ->toContain("x-bind:data-md-open=\"sheetOpen ? '' : null\"") ->toContain('x-on:keydown.escape="if (sheetOpen && $refs.handle.checkVisibility()) { sheetOpen = false; $refs.handle.focus() }"') ->toMatch('/toContain('x-bind:aria-expanded="sheetOpen.toString()"') ->toMatch('/