Skip to content

Repository files navigation

Wire Core

Shared foundation for the Wire ecosystem - traits, actions, modals, notifications, widgets, audit logging, icons, and colors.

Requirements

  • PHP 8.2+
  • Laravel 10, 11, or 12
  • Livewire 3.x

Installation

Wire Core is typically installed as a dependency of wire-forms or wire-table. You don't usually install it directly:

composer require nyoncode/wire-core

Tailwind CSS

Wire Core's Blade components (icons, badges, buttons, dropdowns, modals, notifications) use Tailwind CSS classes. Add the package views to your Tailwind content configuration:

Tailwind 3 (tailwind.config.js):

exportdefault{content: [// ... your app paths'./vendor/nyoncode/wire-core/resources/views/**/*.blade.php',],}

Tailwind 4 (resources/css/app.css):

@source"../../vendor/nyoncode/wire-core/resources/views";

Alpine.js

Wire Core uses Alpine.js (included via Livewire 3). No separate Alpine installation needed.

Its interactive controllers — wireDropdown, wireContextMenu, wireTabs, wireWizard, wireEditableCell, wireFillHandle — ship as a pre-built bundle served from the package's own route: nothing to publish, no npm, no build step. Add one directive to your layout <head> so every installed Wire package's controllers are in the initial document:

<head>
@vite(['resources/css/app.css', 'resources/js/app.js'])
@livewireStyles@wireStackScripts
</head>

It is additive — each surface still emits its own bundle as a fallback — but an app that navigates with wire:navigate wants it: Livewire's cached Back/Forward path does not wait for newly injected <head> scripts, so only a bundle that was already in the document is safe from that race. @wireStackScripts('wire-core') narrows the output to one package.

Packages declare their bundles with the canonical Foundation\Assets\AssetManager; see JavaScript Assets.

What's Included

Concerns (Traits)

Shared traits used by Actions, Columns, Fields, and other components:

  • HasColor – Tailwind CSS color class management
  • HasIcons – SVG icon rendering with 50+ built-in icons
  • HasVisibility – Conditional visibility, permissions, disabled state
  • HasDynamicProperties – Closure-based dynamic properties (label, color, icon per record)
  • HasKeyboardShortcut – Keyboard shortcut support with Alpine.js integration
  • HasLifecycle – Before/after hooks with halt support
  • HasLoadingState – Loading indicators, debounce, timeout
  • HasModal – Modal/confirmation dialog configuration
  • HasButtonStyles – Button CSS class generation

Actions

Complete action system for row, bulk, and header actions:

  • Action, BulkAction, HeaderAction – Action types
  • ActionGroup – Dropdown grouping
  • ActionHalt – Pipeline halt with modal
  • DeleteAction, EditAction, ViewAction – Pre-built actions
  • ModalStep, ModalFooterAction – Multi-step wizard support

Notifications

Pluggable notification system with three built-in drivers:

  • SessionDriver – Laravel session flash (default)
  • LivewireEventDriver – Livewire browser events
  • FlasherDriver – PHP Flasher integration

Modals

Reusable modal primitives for actions and custom UI:

  • Confirmation dialogs
  • Slide-overs
  • Multi-step wizards

Widgets

Dashboard building blocks:

  • Stats overview widgets
  • Chart widgets
  • Table widgets
  • Custom Blade-backed widgets

Plugins

Application and package extension points:

  • Plugin lifecycle with register() and boot()
  • Table and action macros
  • Hook callbacks
  • Column and filter type registries
  • Query pipe registry

Audit Log

Optional audit logging for Eloquent model changes and table-related events:

  • HasAuditable model trait
  • AuditEntry model and audit_logs migration
  • AuditTrailAction row action for tables
  • AuditLogger::withoutAuditing() for imports and maintenance jobs

Configuration

Publish the config file:

php artisan vendor:publish --tag=wire-core-config

Publish audit migrations when you use the audit log:

php artisan vendor:publish --tag=wire-core-migrations
php artisan migrate

Documentation

DocumentDescription
Core FoundationShared traits, icons, colors, and Blade helpers
ActionsRow, bulk, header actions, and action groups
NotificationsNotification value objects and drivers
ModalsConfirmations, slide-overs, and wizards
WidgetsDashboard widgets
PluginsApp and package extension points
Audit LogAudit setup and usage
ConfigurationConfig files and environment variables

License

MIT

About

READ ONLY

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages