import 'package:flutter/material.dart'; import 'package:forui/forui.dart'; import '../../../shared/constants/breakpoints.dart'; import '../../../shared/widgets/frosted_panel.dart'; class SectionContainer extends StatelessWidget { final String title; final Widget child; final bool embedded; final bool leadingDivider; final Widget? leading; const SectionContainer({ super.key, required this.title, required this.child, this.embedded = false, this.leadingDivider = false, this.leading, }); static double hPadOf(BuildContext context) => MediaQuery.sizeOf(context).width < Breakpoints.detail ? 16.0 : 32.0; @override Widget build(BuildContext context) { final hPad = embedded ? 0.0 : hPadOf(context); final innerPad = embedded ? 0.0 : hPadOf(context); final compact = MediaQuery.sizeOf(context).width < Breakpoints.compact; final content = Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: EdgeInsets.fromLTRB( innerPad, 0, innerPad, compact ? 12 : 16, ), child: Text( title, style: TextStyle( fontSize: compact ? 17 : 20, fontWeight: FontWeight.w600, color: Colors.white.withValues(alpha: 0.9), ), ), ), child, ], ); if (embedded) { if (leading != null) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [leading!, content], ); } if (leadingDivider) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const FDivider(style: .delta(color: Color(0x1AFFFFFF), padding: .value(EdgeInsets.symmetric(vertical: 24)))), content, ], ); } return content; } return Padding( padding: EdgeInsets.symmetric(horizontal: hPad), child: FrostedPanel( radius: 16, padding: EdgeInsets.symmetric(vertical: hPad), blurSigma: 15, border: Border.all(color: Colors.white.withValues(alpha: 0.08)), color: Colors.black.withValues(alpha: 0.3), child: content, ), ); } }