Files
livewire-material/resources/views/showcase/sections/menus.blade.php
T
Andreas Reinhold / reiniandClaude Opus 5 ab7317faae Add hint-class to the group and icon-class to menu items
<x-group hint-class> adds classes to the hint, as the text fields'
hint-class does, and a validation message still replaces the hint.
<x-menu-item icon-class> adds classes to the leading icon, for an icon
whose colour means something of its own, such as a sport's glyph.

A colour class there has to win over the component's own colour, and
which of two colour utilities wins depends on the order Tailwind emits
them (text-error comes before text-on-surface-variant). So when either
prop is given, the component's own colour is written with a :where()
variant that carries no specificity, as the fields' hint colour sits
in the components layer. A disabled item's icon stays disabled. Without
the props the markup is unchanged. The skill now also lists the fields'
hint-class, which it had left out.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RHoXZSHc8gGpZjFmA5fPc2
2026-09-13 18:18:39 +02:00

66 lines
2.8 KiB
PHP

@php
$examples = [
'A menu' => <<<'BLADE'
<x-menu label="Share actions">
<x-slot:trigger>
<x-button icon="more_vert" tooltip="More" />
</x-slot:trigger>
<x-menu-item label="Copy link" icon="content_copy" shortcut="⌘C" />
<x-menu-item label="Download" icon="download" />
<x-menu-item label="Rename" icon="edit" description="Change what recipients see" />
<x-menu-separator />
<x-menu-item label="Delete" icon="delete" />
</x-menu>
<x-menu label="Sort" position="bottom-end">
<x-slot:trigger>
<x-button label="Sort" icon-right="arrow_drop_down" variant="outlined" />
</x-slot:trigger>
<x-menu-group label="Sort by">
<x-menu-item label="Newest" :selected="true" keep-open />
<x-menu-item label="Largest" :selected="false" keep-open />
<x-menu-item label="Expiring soon" :selected="false" keep-open />
</x-menu-group>
<x-menu-separator />
<x-menu-item label="Reset" icon="restart_alt" disabled />
</x-menu>
<x-menu label="Vibrant" vibrant>
<x-slot:trigger>
<x-button label="Vibrant" variant="tonal" color="tertiary" />
</x-slot:trigger>
<x-menu-item label="Upload files" icon="upload_file" />
<x-menu-item label="Upload a folder" icon="drive_folder_upload" />
</x-menu>
BLADE,
'Icons in their own colour' => <<<'BLADE'
<x-menu label="New plan">
<x-slot:trigger>
<x-button label="New plan" icon="add" variant="filled" />
</x-slot:trigger>
<x-menu-item label="Running" icon="directions_run" icon-class="text-tertiary" />
<x-menu-item label="Cycling" icon="directions_bike" icon-class="text-secondary" />
<x-menu-item label="Swimming" icon="pool" icon-class="text-info" />
<x-menu-item label="Rowing" icon="rowing" icon-class="text-tertiary" disabled />
</x-menu>
BLADE,
];
@endphp
<section id="menus" class="scroll-mt-24 space-y-6">
<h2 class="type-headline-md">Menus</h2>
<p class="max-w-3xl type-body-md text-on-surface-variant">
<code>&lt;x-menu&gt;</code> with <code>&lt;x-menu-item&gt;</code>, <code>&lt;x-menu-group&gt;</code> and <code>&lt;x-menu-separator&gt;</code>.
Open one with the keyboard too: arrows, Home, End, a letter, Escape.
</p>
@foreach ($examples as $title => $code)
<x-showcase::example :$title :$code />
@endforeach
</section>