Search by

karnoweb / laravel-livewire-kanban

sajadsoft1

Domain-agnostic enterprise Kanban and List UI for Laravel Livewire

Package info

github.com/karnoweb/kanban-livewire

pkg:composer/karnoweb/laravel-livewire-kanban

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

13.0.0 2026-10-15 13:13 UTC

This package is auto-updated.

Last update: 2026-10-15 13:20:57 UTC


README

رابط Board و List برای Laravel 13 و Livewire 4. پکیج جدول، migration یا مدل کسب‌وکار ندارد. داده و تغییر را میزبان با DataProvider و ActionHandler انجام می‌دهد.

نصب

composer require karnoweb/laravel-livewire-kanban

دارایی آماده:

<link rel="stylesheet" href="{{ asset('vendor/kanban/kanban.css') }}">
<script src="{{ asset('vendor/kanban/kanban.js') }}" defer></script>

انتشار دارایی:

php artisan vendor:publish --tag=kanban-assets
php artisan vendor:publish --tag=kanban-config

kanban.js نباید Alpine، Livewire یا Echo را دوباره راه‌اندازی کند. Echo را خود میزبان، فقط وقتی Realtime روشن است، می‌سازد.

ثبت برد

use Karnoweb\Kanban\Support\BoardRegistry;

public function boot(BoardRegistry $registry): void
{
    $registry->register('crm.deals', \App\Kanban\CrmBoardFactory::class);
}

هویت و tenant فقط از ScopeResolver سرور می‌آید. board-key مجوز نیست.

<livewire:kanban-board board-key="crm.deals" />

قرارداد کوتاه

  • Kanban::init() هر بار یک BoardBuilder تازه می‌دهد.
  • build() یک BoardDefinition تغییرناپذیر برمی‌گرداند.
  • Closure در state کامپوننت Livewire ذخیره نمی‌شود؛ onMove() فقط کلاس ActionHandler می‌پذیرد.
  • انتقال پیش‌فرض deny است.
  • UNKNOWN_OUTCOME موفقیت نیست. فرمان با operationId تازه تکرار نمی‌شود.
  • صفحه‌بندی cursor-based است. پیش‌فرض هر ستون ۲۵ کارت است.

راهنمای کامل در docs/ است. سناریوهای پذیرش KB-001 تا KB-044 در tests/Scenarios هستند.

مجوز این مخزن تا اعلام مالک proprietary است و مجوز متن‌باز محسوب نمی‌شود.