<?php /** @var \IAWP\Overview\Form_Field $form_field */  ?>
<?php /** @var string $selected_value */  ?>

<?php
$selected_value = $selected_value ?? null;
$template_values = $form_field->template_values();
$has_groups = !array_key_exists(0, $template_values);

if ($has_groups) : ?>
 <div>
 <label><?php echo sanitize_text_field($form_field->name()); ?></label>
 <select name="<?php echo esc_attr($form_field->id()); ?>" id="<?php echo esc_attr($form_field->id()); ?>"><?php
 $first_group = true;
 $first_loop = true;
 foreach ($template_values as $group_name => $values) : ?>
 <optgroup label="<?php echo esc_attr($group_name); ?>"><?php
 foreach ($values as $value) : ?>
 <option value="<?php echo esc_attr($value->id()); ?>"<?php
 if ($selected_value !== null) {
 echo $value->id() == $selected_value ? 'selected' : '';
 } else {
 echo $first_group && $first_loop ? 'selected' : '';
 } ?>
 ><?php echo sanitize_text_field($value->name()); ?></option><?php
 $first_loop = false;
 endforeach; ?>
 </optgroup><?php
 $first_group = false;
 endforeach; ?>
 </select>
 </div><?php
else : ?>
 <div>
 <label><?php echo sanitize_text_field($form_field->name()); ?></label>
 <select name="<?php echo esc_attr($form_field->id()); ?>" id="<?php echo esc_attr($form_field->id()); ?>"><?php
 $first_loop = true;
 foreach ($template_values as $value) : ?>
 <option value="<?php echo esc_attr($value->id()); ?>"<?php 
 if ($selected_value !== null) {
 echo $value->id() == $selected_value ? 'selected' : '';
 } else {
 echo $first_loop ? 'selected' : '';
 } ?>
 ><?php echo sanitize_text_field($value->name()); ?></option><?php
 $first_loop = false;
 endforeach; ?>
 </select>
 </div><?php
endif;