Components Reference

June 10, 2026 · View on GitHub

AdminLTE 4 for Laravel ships 40 Blade components built on Bootstrap 5.3 and vanilla JS. Every component is registered under the adminlte- prefix and used with Laravel's component tag syntax:

<x-adminlte-card title="Hello">Body content</x-adminlte-card>

The alias after the prefix matches the registration map in src/AdminLteServiceProvider.php (e.g. the card alias → <x-adminlte-card>). Constructor parameters become tag attributes; array/mixed parameters accept a bound PHP value (:attr="$value"). Slots are passed as inner content ($slot) or as named slots (<x-slot name="footer">…</x-slot>).

Components are grouped into three categories: Widget, Form, and Tool. Tool and plugin-backed form components automatically enable their underlying JS library through the PluginManager; load the assets in your layout with the @pluginStyles / @pluginScripts directives.


Widget components

Card — <x-adminlte-card>

A Bootstrap card with optional header, tools, theming, and collapse/remove/maximize controls.

Props

PropTypeDefaultDescription
title?stringnullHeader title text
icon?stringnullBootstrap Icons class shown before the title
theme?stringnullColor theme (primary, success, warning, danger, info, …)
outlineboolfalseRender the theme as a top outline border
collapsibleboolfalseAdd the collapse toggle button
collapsedboolfalseStart collapsed
removableboolfalseAdd the remove (close) button
maximizableboolfalseAdd the maximize button
bodyClass?stringnullExtra classes for .card-body
headerClass?stringnullExtra classes for .card-header
footerClass?stringnullExtra classes for .card-footer

Helpers: cardClass() builds the wrapper classes from theme/outline; hasTools() decides whether the toolbar renders (driven by collapsible, removable, maximizable).

Slots: $slot (card body), tools (header toolbar buttons), footer (card footer).

Example

<x-adminlte-card title="Sales" icon="bi bi-graph-up" theme="primary" collapsible>
    <x-slot name="tools">
        <button class="btn btn-sm">Export</button>
    </x-slot>

    Monthly revenue chart goes here.

    <x-slot name="footer">Updated 2 minutes ago</x-slot>
</x-adminlte-card>

InfoBox — <x-adminlte-info-box>

A compact stat box with an icon, value, label, and optional progress bar.

Props

PropTypeDefaultDescription
title?stringnullLabel above the value
text?stringnullThe value/number displayed
icon?stringnullBootstrap Icons class
theme?stringnullTheme for the icon area (text-bg-{theme})
iconTheme?stringnullOverrides the icon color independently
progress?stringnullProgress value 0100 (renders a bar)
progressText?stringnullCaption shown under the progress bar

Helpers: iconClass() resolves the icon background from theme/iconTheme.

Slots: $slot (optional extra content).

Example

<x-adminlte-info-box title="Bookmarks" text="41,410" icon="bi bi-bookmark"
    theme="info" progress="70" progressText="70% increase in 30 days" />

SmallBox — <x-adminlte-small-box>

A large colored KPI box with a value, label, icon, and "more info" link.

Props

PropTypeDefaultDescription
title?stringnullThe big number/value
text?stringnullThe label under the value
icon?stringnullBootstrap Icons class
themestring'primary'Background theme (text-bg-{theme})
url?stringnullLink target for the footer
urlText?string'More info'Footer link text

Slots: none (content is driven by props).

Example

<x-adminlte-small-box title="150" text="New Orders" icon="bi bi-bag"
    theme="success" url="/orders" urlText="View all" />

Alert — <x-adminlte-alert>

A themed, optionally dismissable Bootstrap alert.

Props

PropTypeDefaultDescription
themestring'info'Alert theme (success, warning, danger, …)
title?stringnullBold title text
icon?stringnullBootstrap Icons class
dismissableboolfalseRender a close button

Slots: $slot (alert body).

Example

<x-adminlte-alert theme="success" icon="bi bi-check-circle" title="Saved!" dismissable>
    Your changes were stored successfully.
</x-adminlte-alert>

Callout — <x-adminlte-callout>

A bordered callout box for highlighted notes.

Props

PropTypeDefaultDescription
themestring'info'Callout theme
title?stringnullHeading text
icon?stringnullBootstrap Icons class

Slots: $slot (callout body).

Example

<x-adminlte-callout theme="warning" title="Heads up">
    This action cannot be undone.
</x-adminlte-callout>

Progress — <x-adminlte-progress>

A single Bootstrap progress bar.

Props

PropTypeDefaultDescription
valueint|string0Progress percentage
themestring'primary'Bar color theme
stripedboolfalseStriped style
animatedboolfalseAnimate the stripes
height?stringnullCSS height (e.g. 8px)
showLabelboolfalseShow the percentage label inside the bar

Helpers: barClass() composes the bar classes from theme/striped/animated.

Slots: none.

Example

<x-adminlte-progress :value="65" theme="success" striped animated showLabel height="12px" />

ProgressGroup — <x-adminlte-progress-group>

A labeled progress bar with a value/max readout.

Props

PropTypeDefaultDescription
labelstring— (required)Label text above the bar
valueint— (required)Current value
colorstring'primary'Bar color theme
max?int100Maximum value
showPercentagebooltrueShow the computed percentage

Helpers: percentage() computes value / max * 100.

Slots: none.

Example

<x-adminlte-progress-group label="Add Products to Cart" :value="160" :max="200" color="info" />

Timeline — <x-adminlte-timeline>

A vertical timeline rendered from an array of events.

Props

PropTypeDefaultDescription
itemsarray[]Timeline entries (see keys below)
class?stringnullExtra wrapper classes

Each item supports: title, body, icon, icon_bg (theme), url, footer.

Slots: none (data-driven).

Example

<x-adminlte-timeline :items="[
    ['icon' => 'bi bi-envelope', 'icon_bg' => 'primary', 'title' => 'New email', 'body' => 'You have 3 unread messages.'],
    ['icon' => 'bi bi-gear', 'icon_bg' => 'success', 'title' => 'Settings updated'],
]" />

DescriptionBlock — <x-adminlte-description-block>

A titled block with optional text and a definition list of key/value items.

Props

PropTypeDefaultDescription
titlestring— (required)Block heading
text?stringnullMuted description paragraph
itemsarray[]Associative label => value pairs rendered as <dl>
class?stringnullExtra wrapper classes

Slots: none.

Example

<x-adminlte-description-block title="\$1,200" text="Total revenue"
    :items="['Orders' => 35, 'Refunds' => 2]" />

ProfileCard — <x-adminlte-profile-card>

A user profile card with avatar, name, title, description, and social links.

Props

PropTypeDefaultDescription
namestring— (required)Person's name
title?stringnullRole/subtitle
image?stringnullAvatar image URL
imageAlt?stringnullAvatar alt text
socialsarray[]Social links: icon, url, color
description?stringnullBio text
class?stringnullExtra wrapper classes

Slots: $slot (extra content below the card body).

Social url values are scheme-checked: http(s), mailto and relative URLs render as-is; anything else (javascript:, data:, …) is replaced with #, so the prop is safe to feed from user-editable profile data.

Example

<x-adminlte-profile-card name="Jane Doe" title="Lead Designer" image="/img/jane.jpg"
    description="10 years in product design."
    :socials="[['icon' => 'bi bi-twitter', 'url' => '#', 'color' => 'info']]" />

Ratings — <x-adminlte-ratings>

A star rating display (read-only by default).

Props

PropTypeDefaultDescription
valueint— (required)Number of filled stars
maxint5Total stars
colorstring'warning'Star color theme
readonlybooltrueDisplay-only vs. interactive
class?stringnullExtra wrapper classes

Helpers: stars() returns the per-star filled/empty state array.

Slots: none.

Example

<x-adminlte-ratings :value="4" :max="5" color="warning" />

A navbar dropdown listing notifications with a badge count.

Props

PropTypeDefaultDescription
notificationsarray[]Items: icon, title, time, url
badgeColor?string'danger'Count badge theme

Slots: none.

Example

<x-adminlte-nav-notifications badge-color="danger" :notifications="[
    ['icon' => 'bi bi-envelope', 'title' => '4 new messages', 'time' => '3 mins', 'url' => '#'],
]" />

A navbar dropdown listing messages with sender avatars.

Props

PropTypeDefaultDescription
messagesarray[]Items: from, image, text, url
badgeColor?string'info'Count badge theme

Slots: none.

Example

<x-adminlte-nav-messages :messages="[
    ['from' => 'Brad Diesel', 'image' => '/img/b.jpg', 'text' => 'Call me when you can', 'url' => '#'],
]" />

A navbar dropdown listing tasks with progress bars.

Props

PropTypeDefaultDescription
tasksarray[]Items: title, progress, color, url
badgeColor?string'warning'Count badge theme

Slots: none.

Example

<x-adminlte-nav-tasks :tasks="[
    ['title' => 'Design template', 'progress' => 80, 'color' => 'primary', 'url' => '#'],
]" />

DirectChat — <x-adminlte-direct-chat>

A chat-style message panel rendered from an array of messages.

Props

PropTypeDefaultDescription
itemsarray[]Messages: message, avatar, is_own (bool)
title?stringnullPanel header title
class?stringnullExtra wrapper classes

Slots: $slot (footer/input area below the messages).

Example

<x-adminlte-direct-chat title="Support" :items="[
    ['message' => 'Hi there!', 'avatar' => '/img/u.jpg', 'is_own' => false],
    ['message' => 'How can I help?', 'avatar' => '/img/me.jpg', 'is_own' => true],
]" />

Toast — <x-adminlte-toast>

A Bootstrap toast notification.

Props

PropTypeDefaultDescription
title?stringnullToast header title
positionstring'top-end'Screen corner (top-end, bottom-start, …)
autohidebooltrueAuto-dismiss after delay
delayint5000Auto-hide delay in ms
themestring'primary'Header theme
icon?stringnullBootstrap Icons class
id?stringautoElement id (auto-generated if omitted)
class?stringnullExtra wrapper classes

Slots: $slot (toast body).

Example

<x-adminlte-toast title="Notice" theme="success" icon="bi bi-check" :delay="4000">
    Your profile was updated.
</x-adminlte-toast>

Tabs — <x-adminlte-tabs>

A tab container; wrap one or more <x-adminlte-tab> children.

Props

PropTypeDefaultDescription
variantstring'tabs'tabs or pills style
justifiedboolfalseEqual-width justified nav
fillboolfalseFill available width
class?stringnullExtra wrapper classes

Slots: $slot (the <x-adminlte-tab> children).

Tab — <x-adminlte-tab>

A single tab pane inside a <x-adminlte-tabs> group.

Props

PropTypeDefaultDescription
titlestring— (required)Tab label
id?stringautoPane id
activeboolfalseMark this tab active
icon?stringnullBootstrap Icons class on the tab
class?stringnullExtra pane classes

Slots: $slot (tab pane content).

Example

<x-adminlte-tabs variant="pills" justified>
    <x-adminlte-tab title="Overview" icon="bi bi-grid" active>Overview content</x-adminlte-tab>
    <x-adminlte-tab title="Details">Details content</x-adminlte-tab>
</x-adminlte-tabs>

Accordion — <x-adminlte-accordion>

A Bootstrap accordion container; wrap one or more <x-adminlte-accordion-item> children.

Props

PropTypeDefaultDescription
id?stringautoAccordion id (referenced by children's parent)
flushboolfalseBorderless flush style
alwaysOpenboolfalseAllow multiple panels open at once
class?stringnullExtra wrapper classes

Slots: $slot (accordion item children).

AccordionItem — <x-adminlte-accordion-item>

A single collapsible panel inside an accordion.

Props

PropTypeDefaultDescription
titlestring— (required)Panel header text
parentstring— (required)Parent accordion id
id?stringautoPanel id
expandedboolfalseStart expanded
class?stringnullExtra classes

Slots: $slot (panel body).

Example

<x-adminlte-accordion id="faq" flush>
    <x-adminlte-accordion-item title="What is included?" parent="faq" expanded>
        Everything you need.
    </x-adminlte-accordion-item>
    <x-adminlte-accordion-item title="Refunds?" parent="faq">
        Within 30 days.
    </x-adminlte-accordion-item>
</x-adminlte-accordion>

A breadcrumb trail rendered from an array of items.

Props

PropTypeDefaultDescription
itemsarray[]Items: label, url, active (bool)
class?stringnullExtra wrapper classes

Slots: $slot (optional trailing content).

Example

<x-adminlte-breadcrumb :items="[
    ['label' => 'Home', 'url' => '/'],
    ['label' => 'Settings', 'active' => true],
]" />

Form components

All form inputs follow Laravel conventions: they read old input and validation errors from the named field automatically (helpers dotName(), resolvedValue(), hasError(), errorMessage()), and render Bootstrap validation feedback unless disableFeedback is set. The fgroupClass prop adds classes to the form-group wrapper.

Input — <x-adminlte-input>

A labeled text input with optional input-group addons.

Props

PropTypeDefaultDescription
namestring— (required)Field name
label?stringnullField label
typestring'text'HTML input type
id?stringautoElement id (defaults from name)
igroupSize?stringnullInput group size (sm, lg)
fgroupClass?stringnullForm-group wrapper classes
disableFeedbackboolfalseSuppress validation feedback markup

Slots: $slot and named slots for input-group prepend/append addons (see view).

Example

<x-adminlte-input name="email" label="Email address" type="email" placeholder="you@example.com" />

InputSwitch — <x-adminlte-input-switch>

A Bootstrap toggle switch checkbox.

Props

PropTypeDefaultDescription
namestring— (required)Field name
label?stringnullSwitch label
id?stringautoElement id
valuemixed1Submitted value when checked
checkedboolfalseInitial checked state
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback

Helpers: isChecked() resolves the checked state from old input.

Slots: none.

Example

<x-adminlte-input-switch name="notifications" label="Email notifications" :checked="true" />

InputColor — <x-adminlte-input-color>

A native color picker input.

Props

PropTypeDefaultDescription
namestring— (required)Field name
label?stringnullField label
id?stringautoElement id
defaultstring'#0d6efd'Default color value
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback

Slots: none.

Example

<x-adminlte-input-color name="brand_color" label="Brand color" default="#198754" />

InputFile — <x-adminlte-input-file>

A file upload input supporting single or multiple files.

Props

PropTypeDefaultDescription
namestring— (required)Field name (becomes name[] when multiple)
label?stringnullField label
id?stringautoElement id
multipleboolfalseAllow multiple files
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback

Helpers: fieldName() appends [] for multiple uploads.

Slots: none.

Example

<x-adminlte-input-file name="attachments" label="Attachments" multiple />

Textarea — <x-adminlte-textarea>

A labeled textarea.

Props

PropTypeDefaultDescription
namestring— (required)Field name
label?stringnullField label
id?stringautoElement id
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback

Slots: $slot (textarea contents/value).

Example

<x-adminlte-textarea name="bio" label="About you" rows="4" />

Select — <x-adminlte-select>

A labeled native select; pass <option> elements as the slot.

Props

PropTypeDefaultDescription
namestring— (required)Field name
label?stringnullField label
id?stringautoElement id
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback

Slots: $slot (the <option> elements).

Example

<x-adminlte-select name="country" label="Country">
    <option value="us">United States</option>
    <option value="de">Germany</option>
</x-adminlte-select>

Button — <x-adminlte-button>

A themed Bootstrap button with optional icon and label.

Props

PropTypeDefaultDescription
typestring'button'button, submit, or reset
themestring'primary'Color theme
outlineboolfalseOutline style
size?stringnullsm or lg
icon?stringnullBootstrap Icons class
label?stringnullButton text (alternative to slot)

Helpers: buttonClass() composes classes from theme/outline/size.

Slots: $slot (button content, used when label is omitted).

Example

<x-adminlte-button type="submit" theme="success" icon="bi bi-save" label="Save changes" />

InputFlatpickr — <x-adminlte-input-flatpickr> (plugin: flatpickr)

A date/time picker input backed by Flatpickr. Enables the flatpickr plugin automatically.

Props

PropTypeDefaultDescription
namestring— (required)Field name
label?stringnullField label
typestring'text'date, time, or datetime mode
value?stringnullInitial value
id?stringautoElement id
igroupSize?stringnullInput group size (sm, lg)
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback
placeholder?stringnullPlaceholder text
optionsarray[]Extra Flatpickr config options

Helpers: flatpickrConfig() serializes the JS config (sets enableTime for time/datetime).

Slots: none.

Example

<x-adminlte-input-flatpickr name="published_at" label="Publish date" type="datetime"
    :options="['minDate' => 'today']" />

InputTomSelect — <x-adminlte-input-tom-select> (plugin: tom_select)

An enhanced select with search/tagging backed by Tom Select. Enables the tom_select plugin automatically.

Props

PropTypeDefaultDescription
namestring— (required)Field name
label?stringnullField label
optionsarray[]value => label choices
valuemixednullSelected value(s)
id?stringautoElement id
multipleboolfalseAllow multiple selection
searchablebooltrueEnable search
placeholder?stringnullPlaceholder text
igroupSize?stringnullInput group size
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback
tomSelectOptionsarray[]Extra Tom Select config options

Helpers: tomSelectConfig() serializes the JS config.

Slots: none.

Example

<x-adminlte-input-tom-select name="tags" label="Tags" multiple
    :options="['php' => 'PHP', 'js' => 'JavaScript', 'css' => 'CSS']" />

Tool components

A Bootstrap modal dialog.

Props

PropTypeDefaultDescription
idstring— (required)Modal element id (used by triggers)
title?stringnullHeader title
size?stringnullsm, lg, or xl
theme?stringnullHeader background (text-bg-{theme})
staticBackdropboolfalseDisable click-outside dismissal
scrollableboolfalseScrollable modal body
centeredboolfalseVertically center the dialog

Helpers: dialogClass() composes the dialog classes from size/scrollable/centered.

Slots: $slot (modal body), footer (modal footer).

Example

<x-adminlte-modal id="confirmModal" title="Confirm" size="lg" centered>
    Are you sure you want to continue?
    <x-slot name="footer">
        <button class="btn btn-primary" data-bs-dismiss="modal">Yes</button>
    </x-slot>
</x-adminlte-modal>

Datatable — <x-adminlte-datatable> (plugin: tabulator)

An interactive data table backed by Tabulator. Enables the tabulator plugin automatically.

Props

PropTypeDefaultDescription
id?stringautoTable element id
columnsarray[]Column definitions
dataarray[]Inline row data
apiUrl?stringnullRemote AJAX data source
tabulatorOptionsarray[]Extra Tabulator config options
class?stringnullExtra wrapper classes

Helpers: tabulatorConfig() serializes the JS config from columns/data/apiUrl/options.

Slots: none.

Example

<x-adminlte-datatable
    :columns="[['title' => 'Name', 'field' => 'name'], ['title' => 'Email', 'field' => 'email']]"
    :data="[['name' => 'Jane', 'email' => 'jane@example.com']]" />

Editor — <x-adminlte-editor> (plugin: quill)

A rich-text WYSIWYG editor backed by Quill. Enables the quill plugin automatically.

Props

PropTypeDefaultDescription
namestring— (required)Field name (hidden input holds HTML)
label?stringnullField label
value?stringnullInitial HTML content
id?stringautoElement id
quillOptionsarray[]Extra Quill config options
fgroupClass?stringnullWrapper classes
disableFeedbackboolfalseSuppress validation feedback
placeholder?stringnullPlaceholder text

Helpers: resolvedValue() reads old input; quillConfig() serializes the JS config.

Slots: none.

Example

<x-adminlte-editor name="body" label="Article body" placeholder="Write here…" />

Chart — <x-adminlte-chart> (plugin: apexcharts)

A chart backed by ApexCharts. Enables the apexcharts plugin automatically.

Props

PropTypeDefaultDescription
typestring'area'Chart type (area, bar, line, …)
seriesarray[]Data series
categoriesarray[]X-axis categories
optionsarray[]Extra ApexCharts config options
id?stringautoChart element id
heightstring'300px'Chart height

Helpers: chartConfig() serializes the JS config.

Slots: none.

Example

<x-adminlte-chart type="bar"
    :series="[['name' => 'Sales', 'data' => [30, 40, 35, 50]]]"
    :categories="['Q1', 'Q2', 'Q3', 'Q4']" height="320px" />

VectorMap — <x-adminlte-vector-map> (plugin: jsvectormap)

An interactive vector map backed by jsVectorMap. Enables the jsvectormap plugin automatically.

Props

PropTypeDefaultDescription
mapstring'world_merc'Map name
markersarray[]Point markers
regionsarray[]Region styling/data
optionsarray[]Extra jsVectorMap config options
id?stringautoMap element id
heightstring'400px'Map height

Helpers: mapConfig() serializes the JS config.

Slots: none.

Example

<x-adminlte-vector-map map="world_merc"
    :markers="[['name' => 'London', 'coords' => [51.5, -0.12]]]" height="450px" />

Calendar — <x-adminlte-calendar> (plugin: fullcalendar)

An event calendar backed by FullCalendar. Enables the fullcalendar plugin automatically.

Props

PropTypeDefaultDescription
eventsarray|string[]Event array or remote URL
optionsarray[]Extra FullCalendar config options
id?stringautoCalendar element id
heightstring'500px'Calendar height

Helpers: calendarConfig() serializes the JS config.

Slots: none.

Example

<x-adminlte-calendar :events="[
    ['title' => 'Launch', 'start' => '2026-06-01'],
]" height="600px" />

Kanban — <x-adminlte-kanban> (plugin: sortablejs)

A drag-and-drop Kanban board backed by SortableJS. Enables the sortablejs plugin automatically.

Props

PropTypeDefaultDescription
lanesarray[]Lanes: name, cards (each title, description, color)
optionsarray[]Extra SortableJS config options
class?stringnullExtra wrapper classes

Slots: none.

Example

<x-adminlte-kanban :lanes="[
    ['name' => 'To Do', 'cards' => [['title' => 'Write docs', 'color' => 'primary']]],
    ['name' => 'Done', 'cards' => [['title' => 'Setup repo', 'color' => 'success']]],
]" />

Sortable — <x-adminlte-sortable> (plugin: sortablejs)

A drag-and-drop sortable list backed by SortableJS. Enables the sortablejs plugin automatically.

Props

PropTypeDefaultDescription
groupstring'shared'Sortable group name (for cross-list dragging)
optionsarray[]Extra SortableJS config options
class?stringnullExtra wrapper classes

Slots: $slot (the sortable list items).

Example

<x-adminlte-sortable group="tasks">
    <li class="list-group-item">Item 1</li>
    <li class="list-group-item">Item 2</li>
</x-adminlte-sortable>

Wizard — <x-adminlte-wizard>

A multi-step form wizard container; wrap <x-adminlte-wizard-step> children.

Props

PropTypeDefaultDescription
stepsint3Total number of steps
id?stringautoWizard element id
class?stringnullExtra wrapper classes

Slots: $slot (the <x-adminlte-wizard-step> children).

WizardStep — <x-adminlte-wizard-step>

A single step pane inside a wizard.

Props

PropTypeDefaultDescription
stepint— (required)Step number (1-based)
titlestring— (required)Step title
class?stringnullExtra pane classes

Slots: $slot (step content).

Example

<x-adminlte-wizard :steps="2">
    <x-adminlte-wizard-step :step="1" title="Account">
        <x-adminlte-input name="email" label="Email" />
    </x-adminlte-wizard-step>
    <x-adminlte-wizard-step :step="2" title="Confirm">
        Review and submit.
    </x-adminlte-wizard-step>
</x-adminlte-wizard>