Core
Wire Core
What lives in wire-core, how its modules are layered, and which page answers which question.
On this page
wire-core is what everything else is built out of. It ships no table and no
form: it ships the vocabulary both of them speak — actions, modals,
notifications, icons, colours, a schema — plus the surfaces that need neither a
list nor a form of their own.
composer require nyoncode/wire-core
Every other package requires it, and it requires none of them. That is why a concern that is genuinely shared belongs here rather than in the package that happened to need it first.
How It Works
The modules are layered, and the layering is enforced by a test rather than by review:
| Layer | What is in it | May see |
|---|---|---|
| L0 | Foundation/, Exceptions/ — traits, contracts, enums, value objects |
nothing above it |
| L1 | Core/ — the headless engine: plugins, resources identity, registries |
L0 |
| L2 | Actions/, Modals/, Notifications/, Widgets/, Infolists/, Panels/, Audit/ |
L0 and L1 — never each other |
Two surfaces in L2 that need to talk do it through a contract in
Foundation/Contracts/, not by importing each other. That is what keeps an
application that uses infolists and no notifications from loading the
notification manager, and what would let any of these become its own package
without a rewrite.
The practical consequence for a reader: a capability that appears in two places
has one owner here. A colour is HasColor, an icon is HasIcon, a size is
HasSize — and a badge column, a badge entry and a notification all resolve
theirs through the same code, so the vocabulary is worth learning once.
In This Section
| Page | Answers |
|---|---|
| Foundation | The shared traits, base classes, icons, colours, enums and Blade components |
| Actions | What runs on a click — row, bulk and header actions, groups, confirmation, queues |
| Modals | The dialogs an action opens: confirmation, slide-over, multi-step wizard |
| Notifications | Toasts and stored notifications, their drivers, and where each delivers |
| Widgets | Stats, charts, embedded tables, custom views, and the dashboards that hold them |
| Infolists | One record displayed read-only from a schema |
| Editable Panels | The same shape, with entries that write straight back to the record |
| Schema | The layout vocabulary forms, infolists and modals all consume |
| Global Search | The ⌘K palette over everything registered |
| Audit Log | The trail of model changes, recorded for you |
| Plugins | The extension point for applications and companion packages |
Where To Go Next
Core is rarely the whole answer. What is built on it:
- Forms and Table — the two surfaces
- Panels — one entity declared once, with pages and routes
- The Admin Shell — the optional frame around all of it
Related
- Configuration —
config/wire-core.phpin full - Theming — the colour and icon vocabulary, and how to extend it
- Authorization — the gate every surface here consults