<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
66 lines
2.8 KiB
PHP
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><x-menu></code> with <code><x-menu-item></code>, <code><x-menu-group></code> and <code><x-menu-separator></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>
|