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

Blade Laravel Package

lyra-ds/blade

Lyra DS Blade offers reusable Laravel Blade components for building consistent, accessible interfaces with the Lyra design system. Compose layouts, forms, and UI elements faster without repeating markup.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for the internal design system. This package is the Blade-side surface of a design system (components, markup contracts, Alpine behaviour, paired @lyra-ds/styles and @lyra-ds/alpine packages). Reaching v1.0.0 is the signal that matters for roadmap planning: the API is being declared stable, so it is now defensible to standardise product surfaces on it rather than hand-rolling Blade partials per team. Continuing to build bespoke components is now the harder-to-justify option.
  • Accessibility/compliance roadmap. A large share of this release is conformance work, not new surface area: persistent polite/assertive live regions for toasts, focus restoration for dialog/drawer/bottom-sheet/command-palette/date-picker overlays, skip links and tabindex="-1" on <main>, real <a> elements for navigation instead of buttons, disclosure semantics replacing a misapplied listbox in the workspace switcher, and progressive-enhancement markup in tabs with a nav[data-lyra-tabs-fallback] anchor fallback. This is direct input to an accessibility audit/V PAT-style commitment and lets you sequence remediation work onto component upgrades rather than bespoke fixes.
  • Feature roadmap unblocking. New components — OTP input, CalendarView, CreateWorkspaceDialog — remove "we'd have to build it" from several candidate epics (multi-factor/step-up auth flows, scheduling/date-driven views, workspace provisioning onboarding). Interactive remove/close/clear on tag, toast and action-bar plus FileManager open/navigate events widen what can be shipped without new component investment.
  • Upgrade budgeting and release planning. This is a breaking release with several distinct migration tracks (toast-stack region selectors, navigation button→a, tabs id/selector relocation, workspace-switcher listbox→disclosure, file-upload lifecycle). That is a real, estimable line item for the next sprint or two, and it should be scheduled deliberately rather than absorbed as incidental work.
  • Platform/toolchain coupling. Adoption implies a coordinated frontend dependency bump (@lyra-ds/alpine ^1.1, @lyra-ds/styles ^1.1) and a new policy constraint: Alpine-bound components own their x-data and do not forward a consumer-supplied one — consumers must wrap instead. Worth deciding (and documenting) as a house rule before teams discover it in code review.
  • Test-suite and QA impact. Multiple breaking changes are explicitly selector-level, so any browser tests or CSS overrides keyed on [role=status], #your-id as tablist, button.lyra-sbgroup__item, or [role="listbox"]/[role="option"] will silently pass review and fail in CI. Budget a test-harness sweep as part of the upgrade, not after it.

When to Consider This Package

Adopt when:

  • You are on Laravel/Blade and want a coherent component system rather than a per-team assortment of partials, and you are willing to consume the paired @lyra-ds/alpine and @lyra-ds/styles packages as a coordinated set.
  • Accessibility is a stated product requirement (procurement, public-sector, enterprise security review) — this release closes a meaningful amount of that gap for you.
  • You need the specific components now shipping: OTP input, calendar view, workspace switcher/provisioning, data table, date range picker, file manager/upload, command palette, app shell.
  • You can absorb a one-time breaking migration and then pin versions and upgrade on a cadence. The 1.0 line is the right floor to start on — do not start on 0.x.

Look elsewhere or defer when:

  • You are not on Blade/Laravel, or your frontend is a SPA consuming a JSON API — the value here is server-rendered markup contracts, and you would be paying the migration cost for a benefit you cannot use.
  • You cannot take the coordinated npm bump. This release hard-requires Alpine and styles at ^1.1; a partial upgrade produces subtly broken components rather than a clean failure.
  • You have heavy existing customisation of these components via x-data injection, or CSS/JS that selects on roles and ids. The owned-root policy and the markup rewrites mean your overrides are now the thing being broken.
  • You are mid-freeze on a customer-facing release. The migrations are mechanical but touch navigation, tabs, toasts and the shell — i.e. nearly every page.
  • You need a supported migration path for anchor-based workspace items emitting lyra:change — links now navigate natively, so any integration relying on that event must be reworked, and there is no compatibility shim offered.

How to Pitch It (Stakeholders)

For executives: The component library we build product UI on has reached v1.0, which is the stability commitment we were waiting for before standardising across teams. The release is mostly accessibility and correctness work — proper screen-reader announcements, keyboard focus handling on every overlay, real links in navigation, skip links — which directly reduces our exposure on accessibility compliance and procurement questionnaires. It also adds three components we currently have on the roadmap as build items (OTP input, calendar view, workspace creation dialog), so some planned work becomes configuration instead of engineering. The cost is a one-time, well-scoped migration: several component markup contracts changed, so we should schedule roughly one focused iteration plus a test-suite sweep, and take the matching frontend dependency bump at the same time.

For engineering: Treat this as a breaking upgrade, not a drop-in. Actions: bump @lyra-ds/alpine and @lyra-ds/styles to ^1.1 in lockstep; migrate toast assertions from [role=status] to [data-lyra-toast-region] .lyra-toast; replace button.lyra-sbgroup__item / button.lyra-bottomnav__item selectors with class-only or :is(a, button) and review a reset styles; move tab selectors off #your-id onto #your-id [data-lyra-tabs-enhanced] / [data-lyra-tabs] button[data-value] / section[data-value] and only assert aria-selected after Alpine is ready; rewrite workspace-switcher selectors to .lyra-wssw__pop, .lyra-wssw__item[data-id] and [aria-current]; stop passing x-data into <x-lyra::toast-stack> and wrap it instead; re-verify file-upload against the Alpine 1.x controlled lifecycle. Also note role/aria-selected/tabindex on tabs are now runtime-only, so server-rendered snapshot tests will need adjusting.

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