turbo-php/livewire-phone-input
A Livewire phone input component for Laravel that adds country code selection, phone number formatting, and validation to forms. It simplifies collecting international phone numbers in Livewire apps with a reusable, user-friendly field that integrates cleanly with your existing validation rules.
classes config (base parts plus state variants), so the component can be made to look native to your Tailwind design system without forking the view. That makes it viable for products with a branded UI, where an off-the-shelf widget with hardcoded styles would be rejected.Consider adoption when most of these hold:
classes config. The config-driven approach is the selling point; a team that will fight it with CSS overrides gets less value.config/ — configured class names are stripped from the build unless you add the file via @source. Budget for one confusing "why is my styling gone in production only" incident if unaddressed.!important on the variant. Subtle and non-obvious; document it for whoever owns styling.config/phone-input.php won't pick up keys added in later versions. Decide up front: publish only if you must override, and diff the config on upgrade.Look elsewhere when:
For executives: Phone number entry is a deceptively expensive field — country handling, formatting, and normalization generate a steady trickle of bugs and support tickets, and getting it wrong produces unusable stored data that costs more to fix later. This package buys that capability for a Laravel/Livewire app instead of building it: a day of integration versus roughly a sprint of engineering plus ongoing maintenance. v1.0.1 changed no code — it's documentation hardening, which is the right signal at this stage. The main caveat is dependency risk in a user-facing path, so we should assign an owner and pin the version.
For engineering: Livewire component for phone input, styled entirely through a classes config (base parts + state variants) so it fits our Tailwind system without forking the view. Three things to plan for, all documented in v1.0.1 and all non-obvious: (1) Tailwind doesn't scan config/, so configured class names get tree-shaken out of production builds unless we add the config file with @source; (2) a state variant that sets the same property as its base part resolves as a tie by CSS emit order, not authoring order — mark the variant important; (3) vendor:publish pins the config alongside the view, so a published config/phone-input.php silently stops receiving new keys on upgrade. Recommendation: don't publish the config unless we're actually overriding it, and if we do, treat it as a tracked file to diff on every bump. The release itself is docs-only, so there's no migration work — this is a "write it down before someone loses an afternoon" release, not a functional one.
How can I help you explore Laravel packages today?