Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Tall Stack Kit Laravel Package

manusiakemos/tall-stack-kit

A starter kit for building Laravel applications with the TALL stack: Tailwind CSS, Alpine.js, Laravel, and Livewire. It bundles common scaffolding and UI components to help you get a new project running quickly with a modern, reactive PHP stack.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install the package with composer require <vendor>/<package-name> (replace with the real package name from Packagist). Most Laravel UI packages use package auto-discovery, so no manual service-provider registration is needed. If the package ships config or views, publish them only when required: php artisan vendor:publish --tag=<package>-config or --tag=<package>-views. First place to look: the package's README section "Components" and its src/View/Components/ directory to confirm the tab and breadcrumb component names and their render() slot definitions.
  • First use case: replace a manual tab list (e.g., Bootstrap nav-tabs) in a Blade view with the package's tab components. For breadcrumbs, use the new slot-based API added in 1.2.25 to pass custom breadcrumb items directly inside the component instead of configuring an array. Example (adjust component and slot names to match the package):
    <x-tabs>
        <x-tab name="one">
            <x-slot:label>Custom <strong>Label</strong></x-slot:label>
            Tab content
        </x-tab>
    </x-tabs>
    
    <x-breadcrumbs>
        <x-slot:items>
            <x-breadcrumb href="/">Home</x-breadcrumb>
            <x-breadcrumb href="/users">Users</x-breadcrumb>
        </x-slot:items>
    </x-breadcrumbs>
    
    Confirm the exact slot names from the release note or the package source before writing production templates.

Implementation Patterns

  • Inline slot customisation: Use named slots for tab labels, icons, or badges: <x-tab name="reports"><x-slot:label><x-icon name="chart"/> Reports</x-slot:label>...</x-tab>. For breadcrumbs, the new slot likely accepts a collection of child components. Wrap in @foreach to map route data to <x-breadcrumb> elements, and use the child slot for rich labels (icons, translated strings).
  • Route-aware rendering: Combine slots with request()->routeIs() to mark active tabs or breadcrumbs via a prop (e.g. :active="request()->routeIs('dashboard')") or to conditionally inject slot content. This keeps navigation logic in one Blade partial instead of scattering it across views.
  • Dynamic tab sets from data: Loop over a config array or database result inside a wrapper slot, creating one <x-tab> per item. The 1.2.25 slot support means you can wrap the loop in a <x-slot:...> if the parent component expects a collection slot, avoiding a separate view composer.
  • Layout integration: Place <x-breadcrumbs> in a @section('breadcrumbs') in your app layout; use the slot to pass page-specific crumbs from each view. For tabs, include the component inside a card header and use slots to add action buttons next to the tab list.
  • Override without publishing: Prefer passing custom slot content over publishing views. For small tweaks (e.g., a custom separator span in breadcrumbs), use the package's exposed slot instead of duplicating the component template. Publish views only when structural changes are needed.

Gotchas and Tips

  • Slot name mismatch: The most common failure after upgrading to 1.2.25 is using a slot name that does not match the component's $slots definition. If custom content silently disappears, inspect the component class's render() method or run php artisan view:clear and check for a ComponentSlot exception. Named slots are case-sensitive.
  • Prop vs. slot conflict: If a tab or breadcrumb previously accepted a label or title prop, setting both the prop and the new slot may duplicate output. Choose one; check the package changelog for deprecations.
  • Escaping custom HTML: Slot content is not automatically escaped in some component libraries. If you inject user-generated strings inside a slot, use {{ }}; reserve {!! !!} for trusted markup. Review the package's default slot rendering for e() calls.
  • Caching: Blade compiles slots into closures. After upgrading, run php artisan view:clear and, in production, php artisan view:cache. Stale compiled views can reference removed slot methods.
  • Debugging: Temporarily publish the component view and add @dump($slot) or {{ $slot->isEmpty() ? 'empty' : 'present' }} to understand what is passed. Laravel's Illuminate\View\Compilers\ComponentTagCompiler errors usually point to a missing named slot.
  • Extension points: Look for a config file that controls active classes, separator markup, or default tab styling. If none exists, publish views and override the smallest possible block. For per-page breadcrumb separators, include your own separator element in the slot and disable the package default via a prop if available.
  • Version pinning: 1.2.25 is a patch version but adds user-facing features. Pin to ^1.2 in composer.json and run your UI tests. Watch for a future 1.3 that may rename slots or drop prop-based APIs.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect