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

Nova Currency Vat Field Laravel Package

outl1ne/nova-currency-vat-field

A Laravel Nova field that combines currency input with VAT handling, letting you capture amounts and tax rates in a single form control. It formats values and supports configurable currencies, keeping billing, pricing, and invoicing data clean inside your Nova admin panels.

View on GitHub
Deep Wiki
Context7

Getting Started

3.1.1 is a patch release with a single behavioral change: scroll-wheel interaction no longer mutates input values. There are no new configuration keys, no migrations, and no API surface changes, so upgrading is a composer update away.

composer require <vendor>/<package>:^3.1
php artisan vendor:publish --tag=<package>-config   # only if you have not published before

Where to look first:

  1. config/<package>.php — confirm whether any wheel/stepper-related defaults are exposed. 3.1.1 does not add an opt-in flag, so if you need the old behaviour you will be overriding it yourself.
  2. The package's Blade/view directory (resources/views/vendor/<package>) — this is where the input markup lives if you have published views, and it is the surface most affected by the change.
  3. Your own form components — anything wrapping this package's inputs inherits the new behaviour silently.

First use case: drop the package's input into an existing form and verify two things — typing still works, and hovering the field while scrolling a long page no longer silently rewrites the value. That second check is the whole point of 3.1.1 and is the fastest way to confirm the upgrade landed.

Implementation Patterns

Treat inputs as display-first, edit-on-intent. With scroll-to-change removed, the natural pattern is: value is set by the user explicitly (typing, clicking steppers, picking from a dropdown), and incidental pointer movement over the field is inert. Build forms assuming the value only changes on a deliberate event.

Pair with server-side validation, not client-side trust. Because the wheel can no longer nudge a value by ±1 without the user noticing, validation rules that previously "never fired in practice" may now surface real input. Re-check numeric, min, max, and integer rules against actual user input rather than assuming the stepper kept things in range.

Livewire / Inertia integration. If you bind via wire:model or v-model, no change is required — but re-test debounced updates. A previously-noisy field that fired updated hooks on every wheel tick will now fire far less, which can actually simplify your listeners.

Stepper buttons as the explicit affordance. If your UI depended on scroll-to-increment as the primary way to adjust numbers, add visible +/- controls (or keep the package's built-in steppers). This is the migration path the release implicitly assumes.

Composition. Wrap the package input in your own Blade component so that if you later need a wheel handler back, you patch one file rather than every form:

{{-- resources/views/components/number-field.blade.php --}}
<x-dynamic-component :component="$component" {{ $attributes->merge(['inputmode' => 'decimal']) }} />

Testing pattern. Widget/E2E tests that simulated mouse.wheel() over a focused input to set a value will now fail. Replace them with fill() / type() plus explicit stepper clicks. This is the single most likely source of red CI after upgrading.

Gotchas and Tips

  • Silent behaviour change, not a deprecation. 3.1.1 ships no deprecation notice and no config toggle. Code that relied on wheel-to-increment breaks quietly — there is no warning, the value simply stops changing. Grep your tests and any JS for wheel, mousewheel, and onwheel handlers scoped to these inputs.
  • Focus behaviour is unchanged. The classic browser quirk is that wheel events on a focused number input mutate the value. Verify whether the fix covers only hover or also the focused case; if you still see mutation while the caret is in the field, that is a browser default, not the package, and you need your own blur-on-wheel or preventDefault shim.
  • Accessibility is improved, not regressed. Users navigating a long form with a trackpad no longer corrupt values by scrolling past a field. Do not "fix" this back on by default; if a stakeholder asks for scroll-to-change, scope it to a single field behind a flag you control.
  • Published views can mask the fix. If you published and customised the package views before 3.1.1, vendor:publish --force is required to pick up markup changes — and forcing will overwrite your edits. Diff first, then re-apply.
  • Config cache. After upgrading, run php artisan config:clear (and view:clear if views are cached) before concluding the change did not take effect. Stale compiled views are the most common false negative here.
  • Extension point. The durable way to customise input behaviour is your own wrapper component plus a small Alpine/Livewire directive; avoid monkey-patching the package's published JS, which is exactly the kind of code a patch release will invalidate.
  • Version pinning. Since this is a UX-behaviour patch on a 3.1.x line, pin with ^3.1.1 if your test suite asserts on input values, so a future patch cannot shift behaviour under you unnoticed.
  • What this release does not do. No performance, security, or API changes. If you were waiting on 3.1.1 for anything other than the scroll fix, it is not here — check the 3.2/4.0 milestone instead.
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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox