wemersonrv/input-mask
A Laravel package that adds input masking to forms via Blade components, with ready-to-use masks for CPF/CNPJ, phone, date, currency, and custom patterns.
Field class plus a JavaScript mask call. A PM can reasonably cap the in-house alternative at 1–2 engineering days using a maintained library (IMask or cleave.js). If the "buy" path instead requires legal review, a private fork, a named owner, and permanent upgrade remediation, building wins on total cost of ownership — not on feature merit.Consider it only if all of these hold:
Look elsewhere — or build — when:
resources/js/; the PHP class only passes metadata. Customizing means owning the front-end rebuild, which is rarely the cheap option it appears to be.Bottom line: use it as a reference implementation, not a production dependency.
Executives: This is a free UI nicety for admin screens that saves operator keystrokes on Brazilian document, phone, and date formats. It has been unmaintained since May 2019, has negligible adoption (11 stars, 0 dependents), and carries a GPL-3.0 license requiring legal review before it ships in anything commercial or client-delivered. Rebuilding the equivalent in-house costs roughly one to two engineering days with a maintained masking library, so there is no business case for taking on the dependency risk. Recommendation: do not add it to the production dependency tree; approve a one-to-two-day in-house Nova field if admin data-entry quality is prioritized.
Engineering: It's a thin wrapper — a Nova text field plus a JS mask call, with all behavior in the Vue component and all PHP surface in a single Field class. Reimplementing gives us Nova-version compatibility, an MIT-clean license, and control over which mask library we depend on and who patches it. Read the two source files, copy the Vue component, swap in IMask or cleave.js, bump to Vue 3 for Nova 4+, and ship it as a local component in nova-components/. Budget the spike explicitly: confirm Nova major and PHP/laravel/nova constraints first — that single answer decides adopt versus build — then verify whether the field persists (11) 99999-8888 verbatim or strips mask characters, and normalize in the FormRequest layer regardless so validation rules can speak in canonical digits.
Ops / internal users: They get formatted, easier-to-scan inputs on admin screens, which reduces typos and correction cycles. Set the expectation plainly: the mask guides typing, it does not enforce correctness, and pasting a pre-formatted value may behave unexpectedly. Expect to ship a helper text describing the expected format — accessibility for masked inputs is unowned by this package, and keystroke-swallowing behavior is confusing for keyboard-only and screen-reader users.
How can I help you explore Laravel packages today?