From 874adf173419b0c1faf25669403ab842d7780674 Mon Sep 17 00:00:00 2001
From: Dave Long <dave@longwaveconsulting.com>
Date: Fri, 10 Nov 2023 14:19:53 +0000
Subject: [PATCH] Issue #3397742 by lauriii, smustgrave: Improve machine name
 AJAX focus handling integration

---
 core/lib/Drupal/Core/Render/Element/RenderElement.php | 2 +-
 core/misc/machine-name.js                             | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/core/lib/Drupal/Core/Render/Element/RenderElement.php b/core/lib/Drupal/Core/Render/Element/RenderElement.php
index 249f732ac245..bc7621557f9d 100644
--- a/core/lib/Drupal/Core/Render/Element/RenderElement.php
+++ b/core/lib/Drupal/Core/Render/Element/RenderElement.php
@@ -338,7 +338,7 @@ public static function preRenderAjaxForm($element) {
       // event. This behavior can be explicitly overridden if needed.
       if (!isset($element['#ajax']['refocus-blur'])) {
         // The change event on text input types is triggered on blur.
-        $text_types = ['password', 'textfield', 'number', 'tel', 'textarea'];
+        $text_types = ['password', 'textfield', 'number', 'tel', 'textarea', 'machine_name'];
         if ($element['#ajax']['event'] === 'blur' || ($element['#ajax']['event'] === 'change' && in_array($element['#type'], $text_types))) {
           $element['#attributes']['data-refocus-blur'] = "true";
         }
diff --git a/core/misc/machine-name.js b/core/misc/machine-name.js
index b4e06d595c15..28f1b39ddf49 100644
--- a/core/misc/machine-name.js
+++ b/core/misc/machine-name.js
@@ -205,7 +205,13 @@
         // If it is editable, append an edit link.
         const $link = $(
           '<span class="admin-link"><button type="button" class="link" aria-label="'
-            .concat(Drupal.t('Edit machine name'), '">')
+            .concat(
+              Drupal.t('Edit machine name'),
+              '" data-drupal-selector="'.concat(
+                $target.data('drupal-selector'),
+              ),
+              '-machine-name-admin-link">',
+            )
             .concat(Drupal.t('Edit'), '</button></span>'),
         )
           .on('click', eventData, clickEditHandler)
-- 
GitLab