import 'package:flutter/material.dart'; import '../../../../core/theme/app_colors.dart'; enum ClinicalDocumentType { recetaMedica, autorizacionSeguro, referirDoctor, referirDepartamento, } class ClinicalDocumentsDropdown extends StatelessWidget { final ValueChanged onSelect; const ClinicalDocumentsDropdown({ super.key, required this.onSelect, }); @override Widget build(BuildContext context) { return PopupMenuButton( tooltip: 'Documentos Clínicos e Impresión', offset: const Offset(0, 44), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), side: const BorderSide(color: Color(0xFFE2E8F0)), ), elevation: 6, color: Colors.white, onSelected: onSelect, itemBuilder: (context) => [ PopupMenuItem( value: ClinicalDocumentType.recetaMedica, child: Row( children: [ Container( padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: const Color(0xFF00A65A).withValues(alpha: 0.12), borderRadius: BorderRadius.circular(8), ), child: const Icon( Icons.medication_rounded, color: Color(0xFF00A65A), size: 18, ), ), const SizedBox(width: 12), const Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Text( 'Receta Médica', style: TextStyle( fontWeight: FontWeight.w600, fontSize: 13, color: AppColors.textPrimary, ), ), Text( 'Formato media carta institucional', style: TextStyle(fontSize: 11, color: AppColors.textMuted), ), ], ), ), ], ), ), const PopupMenuDivider(height: 1), PopupMenuItem( value: ClinicalDocumentType.autorizacionSeguro, child: Row( children: [ Container( padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: const Color(0xFF00A65A).withValues(alpha: 0.12), borderRadius: BorderRadius.circular(8), ), child: const Icon( Icons.verified_user_outlined, color: Color(0xFF00A65A), size: 18, ), ), const SizedBox(width: 12), const Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Text( 'Autorización De Seguro', style: TextStyle( fontWeight: FontWeight.w600, fontSize: 13, color: AppColors.textPrimary, ), ), Text( 'Solicitud oficial de cobertura ARS', style: TextStyle(fontSize: 11, color: AppColors.textMuted), ), ], ), ), ], ), ), const PopupMenuDivider(height: 1), PopupMenuItem( value: ClinicalDocumentType.referirDoctor, child: Row( children: [ Container( padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: const Color(0xFF00A65A).withValues(alpha: 0.12), borderRadius: BorderRadius.circular(8), ), child: const Icon( Icons.person_pin_circle_outlined, color: Color(0xFF00A65A), size: 18, ), ), const SizedBox(width: 12), const Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Text( 'Referir a Doctor(a)', style: TextStyle( fontWeight: FontWeight.w600, fontSize: 13, color: AppColors.textPrimary, ), ), Text( 'Interconsulta médica a especialista', style: TextStyle(fontSize: 11, color: AppColors.textMuted), ), ], ), ), ], ), ), const PopupMenuDivider(height: 1), PopupMenuItem( value: ClinicalDocumentType.referirDepartamento, child: Row( children: [ Container( padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: const Color(0xFF00A65A).withValues(alpha: 0.12), borderRadius: BorderRadius.circular(8), ), child: const Icon( Icons.apartment_rounded, color: Color(0xFF00A65A), size: 18, ), ), const SizedBox(width: 12), const Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Text( 'Referir a Departamento', style: TextStyle( fontWeight: FontWeight.w600, fontSize: 13, color: AppColors.textPrimary, ), ), Text( 'Referimiento a servicio institucional', style: TextStyle(fontSize: 11, color: AppColors.textMuted), ), ], ), ), ], ), ), ], child: Container( padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 7), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8), border: Border.all(color: const Color(0xFFCBD5E1)), ), child: const Row( mainAxisSize: MainAxisSize.min, children: [ Icon(Icons.description_outlined, color: AppColors.primary, size: 16), SizedBox(width: 6), Text( 'Documentos Clínicos', style: TextStyle( color: AppColors.textPrimary, fontWeight: FontWeight.w600, fontSize: 12.5, ), ), SizedBox(width: 4), Icon(Icons.keyboard_arrow_down_rounded, color: AppColors.textSecondary, size: 16), ], ), ), ); } }