= form_with(model: feature_model_map, class: "needs-validation") do |form| - if feature_model_map.errors.any? .alert.alert-danger.d-flex.align-items-start.p-2.mb-3.small role="alert" i.bi.bi-exclamation-triangle-fill.me-2.mt-1 div strong = pluralize(feature_model_map.errors.count, "error") span.ms-1 prohibited saving. .mb-3 = form.label :feature_name, class: "form-label fw-semibold text-primary small text-uppercase" .input-group span.input-group-text.bg-light.text-muted i.bi.bi-terminal = form.text_field :feature_name, class: "form-control", placeholder: "e.g. auto_reply_generator", autofocus: true .form-text.text-muted Unique identifier used in the codebase. .mb-4 = form.label :llm_model_name, "Select AI Model", class: "form-label fw-semibold text-primary small text-uppercase" .input-group span.input-group-text.bg-light.text-muted i.bi.bi-cpu .flex-grow-1 = form.select :provider_model, \ grouped_options_for_select(FeatureModelMap.grouped_llm_options, feature_model_map.provider_model), \ { include_blank: true }, \ { class: "form-select", data: { controller: "choices" } } hr.border-secondary.border-opacity-10.my-4 .d-flex.justify-content-end.gap-2 = link_to "Cancel", feature_model_maps_path, class: "btn btn-light text-primary fw-medium", data: { turbo_frame: "_top" } = form.submit "Save Changes", class: "btn btn-primary fw-bold px-4"