When true (default), the button fills available horizontal space. When false, width follows label + icon (unless width is set).
final bool expandWidth;