tests / lint (push) Successful in 1m3s
tests / feature (8.4) (push) Failing after 1m5s
tests / feature (8.5) (push) Failing after 1m4s
tests / browser (chrome, chromium) (push) Failing after 1m5s
tests / browser (firefox, firefox) (push) Failing after 1m1s
tests / browser (safari, webkit) (push) Failing after 1m1s
<x-toast> hosts the snackbar queue for the Toasts concern and window.materialToast(), one at a time, paused on hover and focus, with an optional action; it listens from the moment its script loads, so a toast dispatched before Alpine starts is shown rather than lost. <x-badge> is M3's dot and count, plus a tonal or outlined status label; <x-rich-tooltip> is transient or persistent; <x-alert>, <x-stat> and <x-empty-state> are built from M3's parts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V9NnLxnPp8vaaurb3Z1MFy
31 lines
1.2 KiB
PHP
31 lines
1.2 KiB
PHP
<?php
|
|
|
|
it('wraps its trigger with a surface bubble anchored to it', function () {
|
|
$html = (string) $this->blade(<<<'BLADE'
|
|
<x-rich-tooltip title="Expiry" text="Recipients lose access after this time.">
|
|
<button>?</button>
|
|
</x-rich-tooltip>
|
|
BLADE);
|
|
|
|
preg_match('/anchor-name: (--material-rich-tooltip-[a-z0-9]+)/', $html, $anchor);
|
|
|
|
expect($anchor)->not->toBeEmpty()
|
|
->and($html)
|
|
->toContain('<button>?</button>')
|
|
->toContain('x-data="materialRichTooltip(false)"')
|
|
->toContain('popover="manual"')
|
|
->toContain('role="tooltip"')
|
|
->toContain("position-anchor: {$anchor[1]}")
|
|
->toContain('rounded-corner-md bg-surface-container')
|
|
->toContain('type-title-sm text-on-surface-variant">Expiry')
|
|
->toContain('Recipients lose access after this time.');
|
|
});
|
|
|
|
it('opens on press and stays when persistent', function () {
|
|
expect((string) $this->blade('<x-rich-tooltip text="Details" persistent><button>i</button><x-slot:actions><button>More</button></x-slot:actions></x-rich-tooltip>'))
|
|
->toContain('x-data="materialRichTooltip(true)"')
|
|
->toContain('popover="auto"')
|
|
->toContain('role="dialog"')
|
|
->toContain('<button>More</button>');
|
|
});
|