44 lines
1.2 KiB
TypeScript

import React from 'react';
export interface PhoneInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
label: string;
error?: string;
required?: boolean;
helpText?: string;
}
export const PhoneInput: React.FC<PhoneInputProps> = ({
label,
error,
required,
helpText,
className = '',
...props
}) => {
return (
<div className="space-y-1">
<label className="block text-sm font-medium text-gray-700">
{label}
{required && <span className="text-red-500 ml-1">*</span>}
</label>
<div className="relative">
<span className="absolute left-3 top-2 text-gray-500">+1</span>
<input
type="tel"
placeholder="(555) 123-4567"
className={`w-full pl-10 pr-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-[#667eea] focus:border-transparent transition-all ${
error ? 'border-red-300 bg-red-50' : 'border-gray-300'
} ${className}`}
{...props}
/>
</div>
{helpText && !error && (
<p className="text-xs text-gray-500">{helpText}</p>
)}
{error && (
<p className="text-xs text-red-600">{error}</p>
)}
</div>
);
};