import 'package:flutter/material.dart'; /// Widget pour créer des sections de formulaire avec titre flottant /// Compatible avec le design du passage_form_dialog class FormSection extends StatelessWidget { final String title; final IconData? icon; final List children; final EdgeInsets? padding; final EdgeInsets? margin; final bool showBorder; const FormSection({ super.key, required this.title, this.icon, required this.children, this.padding, this.margin, this.showBorder = true, }); @override Widget build(BuildContext context) { final theme = Theme.of(context); return Stack( children: [ Container( margin: margin ?? const EdgeInsets.only(top: 8), padding: padding ?? const EdgeInsets.fromLTRB(16, 20, 16, 16), decoration: showBorder ? BoxDecoration( border: Border.all(color: theme.colorScheme.outline), borderRadius: BorderRadius.circular(8), ) : null, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: children, ), ), if (title.isNotEmpty) Positioned( top: 0, left: 16, child: Container( padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), decoration: BoxDecoration( color: theme.colorScheme.surface, borderRadius: BorderRadius.circular(4), ), child: Row( mainAxisSize: MainAxisSize.min, children: [ if (icon != null) ...[ Icon( icon, color: theme.colorScheme.primary, size: 16, ), const SizedBox(width: 6), ], Text( title, style: theme.textTheme.labelMedium?.copyWith( fontWeight: FontWeight.bold, color: theme.colorScheme.primary, ), ), ], ), ), ), ], ); } }