import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import '../../../../core/theme/design_tokens.dart'; class AuthField extends StatelessWidget { const AuthField({ super.key, this.label, required this.hint, required this.controller, this.keyboardType, this.obscureText = false, this.suffixIcon, this.onChanged, this.prefix, this.inputFormatters, }); final String? label; final String hint; final TextEditingController controller; final TextInputType? keyboardType; final bool obscureText; final Widget? suffixIcon; final ValueChanged? onChanged; final Widget? prefix; final List? inputFormatters; @override Widget build(BuildContext context) { final colorScheme = Theme.of(context).colorScheme; return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (label != null) ...[ Text( label!, style: TextStyle( fontSize: 13, fontWeight: FontWeight.w700, color: colorScheme.onSurface, ), ), SizedBox(height: AppSpacing.sm), ], Semantics( label: label, textField: true, child: TextField( controller: controller, keyboardType: keyboardType, obscureText: obscureText, onChanged: onChanged, inputFormatters: inputFormatters, style: TextStyle(fontSize: 16, color: colorScheme.onSurface), decoration: InputDecoration( hintText: hint, hintStyle: TextStyle( fontSize: 15, color: colorScheme.onSurfaceVariant, ), filled: true, fillColor: colorScheme.surface, contentPadding: const EdgeInsets.symmetric( horizontal: AppSpacing.lg, vertical: AppSpacing.lg, ), prefixIcon: prefix, suffixIcon: suffixIcon, border: OutlineInputBorder( borderRadius: BorderRadius.circular(AppRadius.lg), borderSide: BorderSide.none, ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(AppRadius.lg), borderSide: BorderSide(color: colorScheme.outlineVariant), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(AppRadius.lg), borderSide: BorderSide(color: colorScheme.primary), ), ), ), ), ], ); } }