Components
Code Block
A dark code panel with an optional filename header and a copy button.
php artisan blatui:add code-block
npm install blatui
php artisan blatui:add button card dialog
{{-- Headerless code block; the copy button appears on hover. --}}
<x-ui.code-block class="w-full max-w-md">@verbatim
npm install blatui
php artisan blatui:add button card dialog
@endverbatim</x-ui.code-block>
Tabs
<x-ui.card variant="sectioned">
<x-ui.card-header>
<x-ui.card-title>Welcome</x-ui.card-title>
</x-ui.card-header>
</x-ui.card>
@import 'tailwindcss';
@source '../views';
{{-- Multiple files in one block, switched with tabs. --}}
<x-ui.tabs value="blade" class="w-full max-w-lg gap-0">
<x-ui.tabs-list class="rounded-b-none">
<x-ui.tabs-trigger value="blade">page.blade.php</x-ui.tabs-trigger>
<x-ui.tabs-trigger value="css">app.css</x-ui.tabs-trigger>
</x-ui.tabs-list>
<x-ui.tabs-content value="blade" class="mt-0">
<x-ui.code-block class="rounded-t-none">@verbatim
<x-ui.card variant="sectioned">
<x-ui.card-header>
<x-ui.card-title>Welcome</x-ui.card-title>
</x-ui.card-header>
</x-ui.card>
@endverbatim</x-ui.code-block>
</x-ui.tabs-content>
<x-ui.tabs-content value="css" class="mt-0">
<x-ui.code-block class="rounded-t-none">@verbatim
@import 'tailwindcss';
@source '../views';
@endverbatim</x-ui.code-block>
</x-ui.tabs-content>
</x-ui.tabs>
With Filename
welcome.blade.php
<x-ui.button>Get started</x-ui.button>
<x-ui.button variant="outline">
<x-lucide-github /> Star on GitHub
</x-ui.button>
{{-- Code block with a filename header and an always-visible copy button. --}}
<x-ui.code-block filename="welcome.blade.php" class="w-full max-w-lg">@verbatim
<x-ui.button>Get started</x-ui.button>
<x-ui.button variant="outline">
<x-lucide-github /> Star on GitHub
</x-ui.button>
@endverbatim</x-ui.code-block>
API Reference
Props, slots and exposed methods for
<x-ui.code-block>.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
filename |
string
|
— | Optional file name shown in a header bar above the code, alongside a file icon and the copy button. When omitted, the copy button floats in the top corner and appears on hover instead. |
Slots
| Slot | Description |
|---|---|
default |
The code to display. Wrap it in @verbatim ... @endverbatim if it contains Blade or component syntax so it renders literally. The slot is trimmed and the copy button copies its rendered text. |
Methods
Available on the component's Alpine scope — call them from markup in the slot
(e.g. @click="…").
| Method | Description |
|---|---|
copy() |
Copies the code pane text to the clipboard and flips the icon to a check for ~1.6s. Wired to the built-in copy button; rarely called directly. |