import 'package:flutter/material.dart';

import '../../presentation/components/assets/fonts.gen.dart';

part 'app_color.dart';
part 'app_style.dart';
part 'app_value.dart';

class ThemeApp {
  static ThemeData get theme => ThemeData(
    useMaterial3: true,
    scaffoldBackgroundColor: AppColor.background,
    fontFamily: FontFamily.quicksand,
    inputDecorationTheme: InputDecorationTheme(
      hintStyle: AppStyle.md.copyWith(color: AppColor.textSecondary),
      contentPadding: const EdgeInsets.symmetric(horizontal: AppValue.padding),
      border: OutlineInputBorder(
        borderRadius: BorderRadius.circular(AppValue.radius),
        borderSide: const BorderSide(color: AppColor.border),
      ),
      enabledBorder: OutlineInputBorder(
        borderRadius: BorderRadius.circular(AppValue.radius),
        borderSide: const BorderSide(color: AppColor.border),
      ),
      focusedBorder: OutlineInputBorder(
        borderRadius: BorderRadius.circular(AppValue.radius),
        borderSide: const BorderSide(color: AppColor.primary, width: 2),
      ),
      errorBorder: OutlineInputBorder(
        borderRadius: BorderRadius.circular(AppValue.radius),
        borderSide: const BorderSide(color: AppColor.error),
      ),
      filled: true,
      fillColor: AppColor.backgroundLight,
    ),
    elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
        backgroundColor: Colors.transparent,
        shadowColor: Colors.transparent,
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(AppValue.radius),
        ),
      ),
    ),
    bottomNavigationBarTheme: BottomNavigationBarThemeData(
      backgroundColor: AppColor.background,
      selectedItemColor: AppColor.primary,
      unselectedItemColor: AppColor.textSecondary,
      selectedLabelStyle: AppStyle.md.copyWith(
        color: AppColor.primary,
        fontWeight: FontWeight.w600,
      ),
      unselectedLabelStyle: AppStyle.md.copyWith(
        color: AppColor.textSecondary,
        fontWeight: FontWeight.w500,
      ),
    ),
    appBarTheme: AppBarTheme(
      backgroundColor: AppColor.white,
      elevation: 1,
      titleTextStyle: AppStyle.lg.copyWith(
        fontWeight: FontWeight.w600,
        color: AppColor.primary,
      ),
    ),
  );
}
