yieldstudio/nova-phone-field
A Laravel Nova field for phone numbers, built on the intl-tel-input library. It provides an interactive country selector, automatic formatting, and validation so you can store phone numbers in a consistent international format within your Nova resources.
nova-phone-field is a Laravel Nova custom field with a narrow integration surface: it affects phone capture and display inside Nova resources, not core domain logic. The 2.0.0 decision to store values in E.164 is architecturally correct for canonical phone storage: it decouples persisted data from presentation formatting, improves interoperability with SMS/API/validation workflows, and makes index/detail formatting a concern of libphonenumber-js rather than the database. This fits well where Nova is the admin capture surface and downstream systems expect normalized phone numbers.REGEXP_REPLACE is not portable across all Laravel-supported databases and may not exist on older MySQL/MariaDB versions. The CONCAT('+', REGEXP_REPLACE(...)) pattern also risks invalid E.164 values for numbers stored with international prefixes such as 00, extensions, short codes, nulls, or malformed legacy data. The new copyable and helper options are low-risk UI additions, and the inputmask 5 upgrade is valuable because it fixes copy/paste and indicator behavior, but it still requires asset compatibility testing.libphonenumber-js formatting fails, API/export/search behavior changes, and rollback complexity after E.164 is written. Frontend risk is medium: inputmask 5 and published Nova assets must work with the supported Nova/Laravel stack. Laravel Pint replacing PHPCS is development tooling only and does not affect runtime risk.00 international prefixes be handled?libphonenumber-js?copyable and helper APIs are documented and supported by the target Nova version. Check database portability before using REGEXP_REPLACE; for MySQL 5.7, SQLite, PostgreSQL, or MariaDB variants, use application code or engine-specific migration logic. Validate that libphonenumber-js is bundled/published as expected.2.0.0 in a branch and confirm dependency compatibility.+, mishandled 00 prefixes, lost extensions, null/empty values, frontend formatting failures, clipboard permission issues, inputmask regressions, and downstream systems still expecting formatted strings. Production rollback can be difficult once E.164 data is written, so backup and reconciliation steps are mandatory.How can I help you explore Laravel packages today?