Stop every test page asking for a favicon nothing serves

`ready()` waits for the network to go idle, and each probe page asked for
/favicon.ico, which its route does not answer: the server threw
NotFoundHttpException on the way, and on the runner the two full-screen
date picker tests spent their whole budget inside that wait rather than
in the click Pest named. Every probe page now carries `<link rel="icon"
href="data:,">`, so the browser asks for nothing.

The showcase's own head carries it too. It ships no icon, and the 404 was
the application's to answer.

The runner takes two and a half to three times as long as a workstation,
so BROWSER_TIMEOUT there goes from 15 to 45 seconds: a page that loads
the application's Vite entries, Alpine and Livewire had no headroom left.

Feature 1159 passed; Browser 299 passed on Chrome, Firefox and WebKit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
surtic86
2026-09-18 05:30:29 +02:00
co-authored by Claude Opus 5
parent 94d6e31432
commit c181fc157d
19 changed files with 62 additions and 1 deletions
+1 -1
View File
@@ -101,4 +101,4 @@ jobs:
- name: Run browser tests - name: Run browser tests
run: vendor/bin/pest --testsuite=Browser --browser ${{ matrix.browser }} run: vendor/bin/pest --testsuite=Browser --browser ${{ matrix.browser }}
env: env:
BROWSER_TIMEOUT: 15000 BROWSER_TIMEOUT: 45000
+4
View File
@@ -7,6 +7,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<meta name="robots" content="noindex" /> <meta name="robots" content="noindex" />
{{-- The showcase is the package's own page and ships no icon: an empty data URI keeps the
browser from asking the application for /favicon.ico, which its routes need not answer. --}}
<link rel="icon" href="data:," />
<title>{{ $pageTitle }}</title> <title>{{ $pageTitle }}</title>
<x-livewire-material::theme-script /> <x-livewire-material::theme-script />
+8
View File
@@ -111,6 +111,7 @@ function menuMorphProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -292,6 +293,7 @@ it('hangs a menu on its menu button, even when the button is fixed to a corner o
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -338,6 +340,7 @@ it('paints a group\'s hint and a menu item\'s icon in the colour their classes n
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
</head> </head>
@@ -537,6 +540,7 @@ it('hides a disabled fab button below 600px, as M3 removes a FAB whose action is
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -612,6 +616,7 @@ function groupSizeProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -749,6 +754,7 @@ function longMenuProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -771,6 +777,7 @@ function sheetMenuProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -964,6 +971,7 @@ function longFabMenuProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+5
View File
@@ -71,6 +71,7 @@ function barsProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -273,6 +274,7 @@ function appBarOverflowProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -345,6 +347,7 @@ function toolbarScaffoldProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -397,6 +400,7 @@ it('lifts a snackbar above a floating toolbar placed at the bottom, without a sc
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -458,6 +462,7 @@ function tabsFirstPaintProbe(): void
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+2
View File
@@ -212,6 +212,7 @@ it('mirrors in a right-to-left page', function () {
<!DOCTYPE html> <!DOCTYPE html>
<html dir="rtl"> <html dir="rtl">
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -253,6 +254,7 @@ it('measures itself again after a Livewire morph adds an item', function () {
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+5
View File
@@ -28,6 +28,7 @@ it('lets an application\'s unlayered rule beat a component default', function ()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -52,6 +53,7 @@ it('lets [hidden] beat a component\'s display', function () {
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -88,6 +90,7 @@ it('keeps the layer order even when a component file is imported before the foun
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<link rel="stylesheet" href="/cascade-layer-order-probe.css"> <link rel="stylesheet" href="/cascade-layer-order-probe.css">
</head> </head>
<body> <body>
@@ -131,6 +134,7 @@ it('keeps a data-md-* attribute through a Livewire $refresh', function () {
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -159,6 +163,7 @@ it('mirrors an icon in a right-to-left document, not in left-to-right', function
<!DOCTYPE html> <!DOCTYPE html>
<html dir="{$dir}"> <html dir="{$dir}">
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+2
View File
@@ -57,6 +57,7 @@ function chipProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -215,6 +216,7 @@ function chipScrollProbe(string $dir)
<!DOCTYPE html> <!DOCTYPE html>
<html dir="{{ request('dir') }}"> <html dir="{{ request('dir') }}">
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+1
View File
@@ -245,6 +245,7 @@ it('keeps a rich tooltip open while its action renders the component, and opens
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+14
View File
@@ -93,6 +93,7 @@ function collapseProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -115,6 +116,7 @@ function overlayProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -251,6 +253,7 @@ function nestedDialogProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -387,6 +390,7 @@ function textOnlyDialogProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -580,6 +584,7 @@ function layersProbe(): mixed
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -756,6 +761,7 @@ it('draws a standard side sheet that starts open standing open, without growing
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -791,6 +797,7 @@ it('sticks a standard side sheet under the top safe area and a scaffold\'s stick
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -869,6 +876,7 @@ it('draws standard side sheets as the server renders them from the first paint,
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -1065,6 +1073,7 @@ it('slides the side sheet in from its own edge in a right-to-left page', functio
<!DOCTYPE html> <!DOCTYPE html>
<html dir="rtl"> <html dir="rtl">
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -1133,6 +1142,7 @@ it('keeps a basic dialog\'s own title and padding when it is nested inside a ful
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -1190,6 +1200,7 @@ it('keeps a selected segmented row\'s fill under the hover and focus tint', func
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -1247,6 +1258,7 @@ it('fills a selected row written by hand in secondary-container in both themes,
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -1316,6 +1328,7 @@ function collapseMotionProbe(string $durations = ''): mixed
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -1611,6 +1624,7 @@ it('shows no tooltip on the control a sheet or a dialog focuses as it opens, but
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+1
View File
@@ -65,6 +65,7 @@ function dataProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+3
View File
@@ -53,6 +53,7 @@ function dateProbe(string $locale = 'en')
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -108,6 +109,7 @@ function dateFormatProbe(string $locale = 'en')
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -148,6 +150,7 @@ function scopedDateProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+5
View File
@@ -73,6 +73,7 @@ function fieldProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -219,6 +220,7 @@ it('ends a select\'s value before its arrow with an ellipsis, at every size and
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -336,6 +338,7 @@ function fieldStateProbe(): mixed
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -431,6 +434,7 @@ function fieldWidthProbe(int $width)
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
<style>.probe-narrow { max-width: 200px; }</style> <style>.probe-narrow { max-width: 200px; }</style>
@@ -520,6 +524,7 @@ it('keeps a switch\'s track and a checkbox\'s box whole beside long text in a ro
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
</head> </head>
+1
View File
@@ -19,6 +19,7 @@ function layoutPage(string $body, int $width, int $height = 900, string $dir = '
<!DOCTYPE html> <!DOCTYPE html>
<html dir="{$dir}" lang="en"> <html dir="{$dir}" lang="en">
<head> <head>
<link rel="icon" href="data:,">
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
+3
View File
@@ -33,6 +33,7 @@ function firstPaintProbe(): void
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -358,6 +359,7 @@ function navigationExtrasProbe(): mixed
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -531,6 +533,7 @@ function railValueProbe(string $mode, int $width = 1280): mixed
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+2
View File
@@ -64,6 +64,7 @@ function pickProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -137,6 +138,7 @@ it('hangs a searchable choice\'s list under its field and as wide, bounded at 40
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+1
View File
@@ -127,6 +127,7 @@ it('follows a value the server changes through a Livewire morph', function () {
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+1
View File
@@ -42,6 +42,7 @@ function sliderProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
+2
View File
@@ -127,6 +127,7 @@ it('repaints the contrast level at once, and it survives a wire:navigate', funct
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles
@@ -165,6 +166,7 @@ it('repaints the page\'s own theme-color meta, and the next page\'s after wire:n
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<meta name="theme-color" content="#000000" /> <meta name="theme-color" content="#000000" />
<meta name="theme-color" media="print" content="#ffffff" /> <meta name="theme-color" media="print" content="#ffffff" />
<x-theme-script /> <x-theme-script />
+1
View File
@@ -45,6 +45,7 @@ function timeProbe()
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<link rel="icon" href="data:,">
<x-theme-script /> <x-theme-script />
@vite(config('livewire-material.showcase.vite')) @vite(config('livewire-material.showcase.vite'))
@livewireStyles @livewireStyles