Components
Diff Viewer
A line-based text diff with inline or side-by-side views and add/remove tinting.
php artisan blatui:add diff-viewer
greet.js
| Original line number | Changed line number | Line |
|---|---|---|
| 1 | Removed: function greet(name) { | |
| 2 | Removed: return "Hi " + name; | |
| 1 | Added: function greet(name, greeting = "Hello") { | |
| 2 | Added: return greeting + ", " + name + "!"; | |
| 3 | 3 | } |
{{-- Inline line diff of a small snippet, before to after. --}}
@php
$before = <<<'TXT'
function greet(name) {
return "Hi " + name;
}
TXT;
$after = <<<'TXT'
function greet(name, greeting = "Hello") {
return greeting + ", " + name + "!";
}
TXT;
@endphp
<x-ui.diff-viewer :old="$before" :new="$after" filename="greet.js" class="w-full max-w-lg" />
Split
greet.js
| Original line number | Original line | Changed line number | Changed line |
|---|---|---|---|
| 1 | Removed: function greet(name) { | 1 | Added: function greet(name, greeting = "Hello") { |
| 2 | Removed: return "Hi " + name; | 2 | Added: return greeting + ", " + name + "!"; |
| 3 | } | 3 | } |
{{-- Split (side-by-side) view: original on the left, changed on the right. --}}
@php
$before = <<<'TXT'
function greet(name) {
return "Hi " + name;
}
TXT;
$after = <<<'TXT'
function greet(name, greeting = "Hello") {
return greeting + ", " + name + "!";
}
TXT;
@endphp
<x-ui.diff-viewer mode="split" :old="$before" :new="$after" filename="greet.js" class="w-full" />
API Reference
Props, slots and exposed methods for
<x-ui.diff-viewer>.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
old |
string
|
''
|
The original text. Compared against new with a line-level LCS diff; an empty string is treated as zero lines so pure additions diff cleanly. |
new |
string
|
''
|
The changed text. Added lines are highlighted in green, removed lines in red. |
mode |
string
|
'inline'
|
Layout of the diff. "inline" stacks removals and additions in one column; "split" shows original and changed side by side.
inline
split
|
filename |
string
|
— | Optional label shown in a header bar above the diff (e.g. the file path). |