import 'package:flutter/material.dart'; /// A standardized action button component for the MIH Toolkit. /// /// [MihPackageAction] provides a consistent wrapper around [IconButton]. /// It is designed for use in headers, toolbars, and navigation bars where /// precise control over [iconSize] and padding is required. /// /// By default, it removes all internal padding to ensure the icon aligns /// perfectly with text or other UI elements. /// /// ### Example: /// ```dart /// MihPackageAction( /// icon: Icon(Icons.arrow_back), /// iconSize: 24.0, /// onTap: () => Navigator.pop(context), /// ) /// ``` class MihPackageAction extends StatefulWidget { /// The callback that is called when the button is tapped. /// /// If null, the button will be disabled and appear greyed out. final void Function()? onTap; /// The Color of the Icon final Color iconColor; /// The size of the icon inside the button. final double iconSize; /// The widget to display as the button's icon (typically an [Icon] or [MihIcons]). final Widget icon; const MihPackageAction({ super.key, required this.icon, required this.iconSize, required this.iconColor, required this.onTap, }); @override State createState() => _MihPackageActionState(); } class _MihPackageActionState extends State { @override void dispose() { super.dispose(); } @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return IconButton( iconSize: widget.iconSize, padding: const EdgeInsets.all(0), onPressed: widget.onTap, icon: widget.icon, color: widget.iconColor, ); } }