Download the PHP package centrex/tallui without Composer
On this page you can find all versions of the php package centrex/tallui. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download centrex/tallui
More information about centrex/tallui
Files in centrex/tallui
Package tallui
Short Description This is my package tallui
License MIT
Homepage https://github.com/centrex/tallui
Informations about the package tallui
TallUI — Laravel UI Components Library
Reusable Blade and Livewire UI components built on DaisyUI + Alpine.js. Includes layout helpers, interactive components, a full-featured DataTable with search/sort/export, and ApexCharts-powered chart components.
Contents
- Installation
- Configuration
- Blade Components
- Layout — Header, Page Header, Card, Stats
- Navigation — Sidebar, Breadcrumb, Menu, Tabs
- Overlays — Modal, Dialog, Drawer
- Feedback — Alert, Badge, Notification, Empty State, Loading, Progress
- Buttons & Icons
- Display — Accordion, Collapse, Carousel, Image Gallery, Image Library, Timeline, Steps, Avatar, Rating, Swap, Tags
- Form Components
- Livewire DataTable
- Charts
- Performance Blade Directives
- Testing
Installation
Requires: livewire/livewire ^3, blade-ui-kit/blade-heroicons (for icons).
Configuration
Run php artisan view:clear after changing the prefix.
Blade Components
All components pass through $attributes, so HTML attributes and DaisyUI/Tailwind classes merge cleanly.
Layout
Header
Sticky application navbar. Integrates with <x-tallui-sidebar> via sidebar-id.
| Prop | Default | Description |
|---|---|---|
brand |
null |
Brand name text |
brand-href |
/ |
Brand link URL |
brand-logo |
null |
Logo image URL |
sticky |
true |
Stick to top of viewport |
shadow |
true |
Show bottom shadow |
height |
h-16 |
Tailwind height class |
sidebar-id |
'' |
Dispatches toggle-sidebar event when hamburger clicked |
Named slots: brandSlot, center, actions.
Sidebar
Slide-in navigation panel. Toggleable via Alpine events or the Header's hamburger button.
| Prop | Default | Description |
|---|---|---|
id |
sidebar |
Unique ID; used in Alpine events |
position |
left |
left or right |
width |
w-64 |
Tailwind width class |
overlay |
true |
Dark backdrop behind sidebar |
persistent |
false |
Always visible on collapse-breakpoint+ screens |
collapse-breakpoint |
lg |
Breakpoint where sidebar becomes always-visible |
header |
null |
Header text (use headerSlot for custom content) |
Named slots: headerSlot, footerSlot.
Page Header
Card
padding: none | compact | normal | loose.
Stats
change-type: up | down | neutral.
Navigation
Breadcrumb
Menu
Link item:
Livewire link without navigate:
Button action:
Section title:
Tabs
Overlays
Modal
Full-featured modal with backdrop, keyboard close, and named slots.
Open/close from anywhere: $dispatch('open-modal', 'confirm-delete').
| Prop | Default | Options |
|---|---|---|
id |
modal |
Unique ID |
size |
md |
sm \| md \| lg \| xl \| full |
closeable |
true |
Show × button + backdrop click to close |
Dialog
Lightweight centred confirmation dialog. Auto-selects icon and colour per type.
Open programmatically: $dispatch('open-dialog', 'delete-confirm').
type |
Icon | Colour |
|---|---|---|
info |
information-circle | text-info |
success |
check-circle | text-success |
warning |
exclamation-triangle | text-warning |
error |
x-circle | text-error |
confirm |
question-mark-circle | text-primary |
Drawer
Feedback
Alerts
Types: info | success | warning | error. Icon auto-selected per type.
Badges
Types/colors: success | error | warning | info | primary | secondary | accent | ghost | outline | neutral.
Sizes: xs | sm | md | lg.
Notifications
Place once in your layout. Reads session flash keys and listens for Livewire events:
Session keys auto-displayed: success, error, warning, info, message.
Positions: top-right | top-left | bottom-right | bottom-left | top-center.
Empty State
Sizes: sm | md | lg.
Loading & Progress
Buttons & Icons
Display
Accordion
Variants: arrow | plus.
Collapse
Single collapsible panel with smooth Alpine.js transitions. Lighter than Accordion for standalone use.
| Prop | Default | Description |
|---|---|---|
title |
'' |
Header text |
open |
false |
Expanded by default |
bordered |
false |
Border instead of filled background |
variant |
arrow |
arrow \| plus \| none |
Image Gallery
Read-only image grid with built-in lightbox:
Image Library
Selectable image picker with lightbox and form submission support. Double-click opens lightbox; single-click selects.
| Prop | Default | Description |
|---|---|---|
images |
[] |
Array of ['src', 'alt'?, 'caption'?, 'id'?] |
multiple |
false |
Allow multiple selections |
selected |
[] |
Pre-selected ids/srcs |
name |
null |
If set, renders hidden inputs for form posting |
selectable |
true |
Enable selection UI |
columns |
4 |
Grid column count (sm: 2, sm+: columns) |
Other Display Components
Form Components
Standard Inputs
Select
<x-tallui-select /> supports three common modes:
- Standard select with automatically sorted labels
- Searchable select with client-side filtering for static options
- Async searchable select backed by a model registry or custom endpoint
If searchable is enabled without search-name or search-url, the component filters the provided options in the browser. If searchable is combined with search-name or search-url, it performs async lookups instead.
You can also enqueue a source definition directly on the component. TallUI stores that definition temporarily in cache and the async endpoint reads it back using a signed token-style lookup key.
| Prop | Default | Description |
|---|---|---|
options |
[] |
Flat associative array or [{value, label, sublabel?}] list |
searchable |
false |
Enables search mode |
search-name |
null |
Registry key for the built-in async search route |
search-url |
null |
Fully custom async search endpoint |
search-source |
[] |
Inline async source definition stored temporarily in cache |
sort |
true |
Sort static options by label |
placeholder |
null |
Placeholder/empty option label |
required |
false |
Marks the field as required |
disabled |
false |
Disables the field |
Async Select Configuration
Register searchable models in config/tallui.php:
search_source_ttl controls how long inline search-source definitions stay available in cache.
| Config Key | Description |
|---|---|
model |
Eloquent model class used for lookups |
label |
Column used for the displayed text |
sublabel |
Optional secondary column shown below the main label |
value |
Column returned as the selected value |
search_columns |
Columns searched by the async endpoint |
order_by |
Default ordering column |
order_direction |
asc or desc |
limit |
Maximum results returned per query |
Range Slider
Rich Text Editor
Content-editable rich text editor with formatting toolbar (bold, italic, underline, lists, headings). Output stored in a hidden <input> for form submission.
Choices (Multi-Select)
Searchable multi-select with tag badges. Outputs hidden inputs for form submission.
Options can also be a list of ['value' => '...', 'label' => '...'] arrays.
| Prop | Default | Description |
|---|---|---|
options |
[] |
Flat associative array or [{value, label}] list |
selected |
[] |
Pre-selected values |
multiple |
true |
Allow multiple selections |
searchable |
true |
Show search input in dropdown |
File Upload (Drag & Drop)
Drag-and-drop zone with client-side file size validation and image preview thumbnails.
| Prop | Default | Description |
|---|---|---|
multiple |
false |
Accept multiple files |
accept |
null |
MIME/extension filter (e.g. image/*,.pdf) |
max-size-mb |
10 |
Client-side size limit per file |
preview |
true |
Show image thumbnails and file cards below zone |
For Livewire uploads, pass wire:model directly to the component; it is forwarded to the underlying file input.
File Input (Simple)
PIN / OTP Input
Auto-advancing digit inputs with paste support, backspace navigation, and masked mode.
| Prop | Default | Description |
|---|---|---|
length |
6 |
Number of digit inputs |
masked |
false |
password-type inputs (dots) |
numeric |
true |
Only allow digits; set false for alphanumeric OTPs |
size |
md |
sm \| md \| lg |
Behaviour: typing auto-advances to the next cell, Backspace moves back, paste distributes across all cells, a visual separator is inserted at the midpoint for 6+ digit codes.
Livewire DataTable
Extend DataTable, override columns() and query():
Features: URL-synced search/sort/page (#[Url]), sortable-column allowlisting, default sort support, per-page selector with normalization, row selection, CSV export (chunked + UTF-8 BOM), optional result caching via $cacheTtl, and relation-aware search for searchable columns such as customer.name.
DataTable Notes
- Only columns marked with
->sortable()can be used for sorting. - Set
$defaultSortByand$defaultSortDirectionto define the initial ordering. - Searchable relation columns such as
customer.nameare supported in the global search. - Invalid
perPagevalues fall back to the first configured per-page option. Filter::select()andFilter::boolean()apply real query constraints instead of acting as UI-only filters.
Responsive DataTable
Automatically switches between a desktop table and a mobile card stack at the md breakpoint. Change the breakpoint by overriding $mobileBreakpoint:
Hide columns at smaller widths:
Charts
All charts are Livewire components powered by ApexCharts (loaded via CDN, configurable in config/tallui.php).
Standard Charts
Common props (all charts): title, subtitle, height (px, default 350), theme (light|dark), poll (ms, 0 = disabled), data-provider (FQCN of ChartDataProvider).
Mixed (Combo) Chart
Combines bar, line, and area series in one canvas. Each series must include a type key.
Treemap Chart
Hierarchical tile visualisation. Series uses {x, y} data pairs; multiple series = multiple colour groups.
Props: :distributed="true" (each tile its own colour), :enable-shades="true".
Radial Bar Chart
Gauge-style circular arcs. Each arc represents one percentage value. Shows averaged total in the centre.
| Prop | Default | Description |
|---|---|---|
series |
[] |
Flat array of percentages (0–100) |
categories |
[] |
Arc labels, one per value |
start-angle |
-135 |
Start angle in degrees |
end-angle |
135 |
End angle in degrees |
hollow |
true |
Donut-style hollow centre |
track |
'' |
Custom track background colour |
Radar Chart
Spider/web chart for multi-dimensional comparison. Supports multiple series on the same grid.
Polar Area Chart
Proportional sectors that also extend outward by value — like a pie chart with a size dimension. Series is a flat array; categories are the sector labels.
Range Area Chart
Shaded band between a low and a high value per x-point. Ideal for confidence intervals, temperature ranges, and min/max visualisations.
Props: :smooth="true" — smooth or straight stroke.
Data Providers
For charts fed from a service or cache, implement ChartDataProvider:
Performance Blade Directives
Registered automatically by the service provider.
@pushonce / @endpushonce
Push a block to a named stack exactly once per request — prevents duplicate <script> or <link> tags when a component renders multiple times on one page.
The second argument is the deduplication key. Omit it to use the stack name as the key.
@memoize / @endmemoize
Render a Blade block once per request, then replay the cached HTML on every subsequent call. Use inside loops for expensive sub-views (icon sets, nav links, etc.).
The block is rendered on the first encounter; all subsequent calls output the same cached string instantly.
@lazy / @endlazy
Defer Alpine.js initialisation until the wrapped content scrolls near the viewport (uses Alpine x-intersect). Reduces the JS work on initial page load for below-the-fold components.
Requires Alpine's x-intersect plugin (bundled with Livewire 3 / Alpine 3.x).
@styleonce / @endstyleonce
Push a <style> block to the styles stack at most once, regardless of how many times the component renders.
@scriptonce / @endscriptonce
Push a <script> block to the scripts stack at most once.
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
- centrex
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of tallui with dependencies
illuminate/support Version ^11.0|^12.0|^13.0
laravel/prompts Version ^0|^1
blade-ui-kit/blade-heroicons Version ^2.0