Issue #3143256: Serialize paragraph widget AJAX clicks to prevent race condition

Closes #3143256. Problem: Rapid clicks across multiple paragraph action buttons (Edit / Collapse / Remove) dispatch parallel AJAX requests. Out-of-order responses overwrite the widget with stale form_state data, wiping paragraph rows or replacing them with a sibling field's markup. No JS errors, no watchdog entries.

The fix: Capture-phase event listener on document that serializes paragraph action button clicks per-form. First click proceeds normally; subsequent clicks are killed via stopImmediatePropagation() and releases on ajaxComplete / ajaxError.

Also addresses https://www.drupal.org/project/paragraphs/issues/3447017 (same bug, independent report).

Merge request reports

Loading