wp/wp-includes/js/dist/dom.js
changeset 22 8c2e4d02f4ef
parent 21 48c4eec2b7e6
--- a/wp/wp-includes/js/dist/dom.js	Fri Sep 05 18:40:08 2025 +0200
+++ b/wp/wp-includes/js/dist/dom.js	Fri Sep 05 18:52:52 2025 +0200
@@ -70,6 +70,7 @@
   isNumberInput: () => (/* reexport */ isNumberInput),
   isPhrasingContent: () => (/* reexport */ isPhrasingContent),
   isRTL: () => (/* reexport */ isRTL),
+  isSelectionForward: () => (/* reexport */ isSelectionForward),
   isTextContent: () => (/* reexport */ isTextContent),
   isTextField: () => (/* reexport */ isTextField),
   isVerticalEdge: () => (/* reexport */ isVerticalEdge),
@@ -101,7 +102,7 @@
   isTabbableIndex: () => (isTabbableIndex)
 });
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/focusable.js
+;// ./node_modules/@wordpress/dom/build-module/focusable.js
 /**
  * References:
  *
@@ -133,7 +134,7 @@
  * @return {string} CSS selector.
  */
 function buildSelector(sequential) {
-  return [sequential ? '[tabindex]:not([tabindex^="-"])' : '[tabindex]', 'a[href]', 'button:not([disabled])', 'input:not([type="hidden"]):not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'iframe:not([tabindex^="-"])', 'object', 'embed', 'area[href]', '[contenteditable]:not([contenteditable=false])'].join(',');
+  return [sequential ? '[tabindex]:not([tabindex^="-"])' : '[tabindex]', 'a[href]', 'button:not([disabled])', 'input:not([type="hidden"]):not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'iframe:not([tabindex^="-"])', 'object', 'embed', 'summary', 'area[href]', '[contenteditable]:not([contenteditable=false])'].join(',');
 }
 
 /**
@@ -196,13 +197,13 @@
       nodeName
     } = element;
     if ('AREA' === nodeName) {
-      return isValidFocusableArea( /** @type {HTMLAreaElement} */element);
+      return isValidFocusableArea(/** @type {HTMLAreaElement} */element);
     }
     return true;
   });
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/tabbable.js
+;// ./node_modules/@wordpress/dom/build-module/tabbable.js
 /**
  * Internal dependencies
  */
@@ -249,7 +250,7 @@
 function createStatefulCollapseRadioGroup() {
   /** @type {Record<string, MaybeHTMLInputElement>} */
   const CHOSEN_RADIO_BY_NAME = {};
-  return function collapseRadioGroup( /** @type {MaybeHTMLInputElement[]} */result, /** @type {MaybeHTMLInputElement} */element) {
+  return function collapseRadioGroup(/** @type {MaybeHTMLInputElement[]} */result, /** @type {MaybeHTMLInputElement} */element) {
     const {
       nodeName,
       type,
@@ -377,12 +378,12 @@
   element.compareDocumentPosition(focusable) & element.DOCUMENT_POSITION_FOLLOWING);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/utils/assert-is-defined.js
+;// ./node_modules/@wordpress/dom/build-module/utils/assert-is-defined.js
 function assertIsDefined(val, name) {
   if (false) {}
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/get-rectangle-from-range.js
+;// ./node_modules/@wordpress/dom/build-module/dom/get-rectangle-from-range.js
 /**
  * Internal dependencies
  */
@@ -493,7 +494,7 @@
   return rect;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/compute-caret-rect.js
+;// ./node_modules/@wordpress/dom/build-module/dom/compute-caret-rect.js
 /**
  * Internal dependencies
  */
@@ -517,7 +518,7 @@
   return getRectangleFromRange(range);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/document-has-text-selection.js
+;// ./node_modules/@wordpress/dom/build-module/dom/document-has-text-selection.js
 /**
  * Internal dependencies
  */
@@ -542,7 +543,7 @@
   return !!range && !range.collapsed;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-html-input-element.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-html-input-element.js
 /* eslint-disable jsdoc/valid-types */
 /**
  * @param {Node} node
@@ -553,7 +554,7 @@
   return node?.nodeName === 'INPUT';
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-text-field.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-text-field.js
 /**
  * Internal dependencies
  */
@@ -575,7 +576,7 @@
   return isHTMLInputElement(node) && node.type && !nonTextInputs.includes(node.type) || node.nodeName === 'TEXTAREA' || /** @type {HTMLElement} */node.contentEditable === 'true';
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/input-field-has-uncollapsed-selection.js
+;// ./node_modules/@wordpress/dom/build-module/dom/input-field-has-uncollapsed-selection.js
 /**
  * Internal dependencies
  */
@@ -627,7 +628,7 @@
   }
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/document-has-uncollapsed-selection.js
+;// ./node_modules/@wordpress/dom/build-module/dom/document-has-uncollapsed-selection.js
 /**
  * Internal dependencies
  */
@@ -647,7 +648,7 @@
   return documentHasTextSelection(doc) || !!doc.activeElement && inputFieldHasUncollapsedSelection(doc.activeElement);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/document-has-selection.js
+;// ./node_modules/@wordpress/dom/build-module/dom/document-has-selection.js
 /**
  * Internal dependencies
  */
@@ -667,7 +668,7 @@
   return !!doc.activeElement && (isHTMLInputElement(doc.activeElement) || isTextField(doc.activeElement) || documentHasTextSelection(doc));
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/get-computed-style.js
+;// ./node_modules/@wordpress/dom/build-module/dom/get-computed-style.js
 /**
  * Internal dependencies
  */
@@ -684,7 +685,7 @@
   return element.ownerDocument.defaultView.getComputedStyle(element);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/get-scroll-container.js
+;// ./node_modules/@wordpress/dom/build-module/dom/get-scroll-container.js
 /**
  * Internal dependencies
  */
@@ -732,10 +733,10 @@
   }
 
   // Continue traversing.
-  return getScrollContainer( /** @type {Element} */node.parentNode, direction);
+  return getScrollContainer(/** @type {Element} */node.parentNode, direction);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/get-offset-parent.js
+;// ./node_modules/@wordpress/dom/build-module/dom/get-offset-parent.js
 /**
  * Internal dependencies
  */
@@ -767,7 +768,7 @@
 
   // If the closest element is already positioned, return it, as offsetParent
   // does not otherwise consider the node itself.
-  if (getComputedStyle( /** @type {Element} */closestElement).position !== 'static') {
+  if (getComputedStyle(/** @type {Element} */closestElement).position !== 'static') {
     return closestElement;
   }
 
@@ -775,7 +776,7 @@
   return /** @type {Node & { offsetParent: Node }} */closestElement.offsetParent;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-input-or-text-area.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-input-or-text-area.js
 /* eslint-disable jsdoc/valid-types */
 /**
  * @param {Element} element
@@ -786,7 +787,7 @@
   return element.tagName === 'INPUT' || element.tagName === 'TEXTAREA';
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-entirely-selected.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-entirely-selected.js
 /**
  * Internal dependencies
  */
@@ -858,7 +859,7 @@
   return false;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-form-element.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-form-element.js
 /**
  * Internal dependencies
  */
@@ -883,7 +884,7 @@
   return checkForInputTextarea || tagName === 'BUTTON' || tagName === 'SELECT';
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-rtl.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-rtl.js
 /**
  * Internal dependencies
  */
@@ -900,7 +901,7 @@
   return getComputedStyle(element).direction === 'rtl';
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/get-range-height.js
+;// ./node_modules/@wordpress/dom/build-module/dom/get-range-height.js
 /**
  * Gets the height of the range without ignoring zero width rectangles, which
  * some browsers ignore when creating a union.
@@ -922,7 +923,7 @@
   return lowestBottom - highestTop;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-selection-forward.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-selection-forward.js
 /**
  * Internal dependencies
  */
@@ -972,7 +973,7 @@
   return true;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/caret-range-from-point.js
+;// ./node_modules/@wordpress/dom/build-module/dom/caret-range-from-point.js
 /**
  * Polyfill.
  * Get a collapsed range for a given point.
@@ -1010,7 +1011,7 @@
  * @typedef {{ readonly offset: number; readonly offsetNode: Node; getClientRect(): DOMRect | null; }} CaretPosition
  */
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/hidden-caret-range-from-point.js
+;// ./node_modules/@wordpress/dom/build-module/dom/hidden-caret-range-from-point.js
 /**
  * Internal dependencies
  */
@@ -1047,7 +1048,7 @@
   return range;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/scroll-if-no-range.js
+;// ./node_modules/@wordpress/dom/build-module/dom/scroll-if-no-range.js
 /**
  * If no range range can be created or it is outside the container, the element
  * may be out of view, so scroll it into view and try again.
@@ -1073,7 +1074,7 @@
   return range;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-edge.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-edge.js
 /**
  * Internal dependencies
  */
@@ -1179,7 +1180,7 @@
   return onlyVertical ? hasVerticalDiff : hasVerticalDiff && hasHorizontalDiff;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-horizontal-edge.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-horizontal-edge.js
 /**
  * Internal dependencies
  */
@@ -1197,10 +1198,10 @@
   return isEdge(container, isReverse);
 }
 
-;// CONCATENATED MODULE: external ["wp","deprecated"]
+;// external ["wp","deprecated"]
 const external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
 var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-number-input.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-number-input.js
 /**
  * WordPress dependencies
  */
@@ -1228,7 +1229,7 @@
   return isHTMLInputElement(node) && node.type === 'number' && !isNaN(node.valueAsNumber);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-vertical-edge.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-vertical-edge.js
 /**
  * Internal dependencies
  */
@@ -1246,7 +1247,7 @@
   return isEdge(container, isReverse, true);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/place-caret-at-edge.js
+;// ./node_modules/@wordpress/dom/build-module/dom/place-caret-at-edge.js
 /**
  * Internal dependencies
  */
@@ -1333,7 +1334,7 @@
   selection.addRange(range);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/place-caret-at-horizontal-edge.js
+;// ./node_modules/@wordpress/dom/build-module/dom/place-caret-at-horizontal-edge.js
 /**
  * Internal dependencies
  */
@@ -1349,7 +1350,7 @@
   return placeCaretAtEdge(container, isReverse, undefined);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/place-caret-at-vertical-edge.js
+;// ./node_modules/@wordpress/dom/build-module/dom/place-caret-at-vertical-edge.js
 /**
  * Internal dependencies
  */
@@ -1366,7 +1367,7 @@
   return placeCaretAtEdge(container, isReverse, rect?.left);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/insert-after.js
+;// ./node_modules/@wordpress/dom/build-module/dom/insert-after.js
 /**
  * Internal dependencies
  */
@@ -1385,7 +1386,7 @@
   referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/remove.js
+;// ./node_modules/@wordpress/dom/build-module/dom/remove.js
 /**
  * Internal dependencies
  */
@@ -1402,7 +1403,7 @@
   node.parentNode.removeChild(node);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/replace.js
+;// ./node_modules/@wordpress/dom/build-module/dom/replace.js
 /**
  * Internal dependencies
  */
@@ -1423,7 +1424,7 @@
   remove(processedNode);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/unwrap.js
+;// ./node_modules/@wordpress/dom/build-module/dom/unwrap.js
 /**
  * Internal dependencies
  */
@@ -1445,7 +1446,7 @@
   parent.removeChild(node);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/replace-tag.js
+;// ./node_modules/@wordpress/dom/build-module/dom/replace-tag.js
 /**
  * Internal dependencies
  */
@@ -1469,7 +1470,7 @@
   return newNode;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/wrap.js
+;// ./node_modules/@wordpress/dom/build-module/dom/wrap.js
 /**
  * Internal dependencies
  */
@@ -1487,7 +1488,7 @@
   newNode.appendChild(referenceNode);
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/safe-html.js
+;// ./node_modules/@wordpress/dom/build-module/dom/safe-html.js
 /**
  * Internal dependencies
  */
@@ -1526,7 +1527,7 @@
   return body.innerHTML;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/strip-html.js
+;// ./node_modules/@wordpress/dom/build-module/dom/strip-html.js
 /**
  * Internal dependencies
  */
@@ -1548,7 +1549,7 @@
   return doc.body.textContent || '';
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-empty.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-empty.js
 /**
  * Recursively checks if an element is empty. An element is not empty if it
  * contains text or contains elements with attributes such as images.
@@ -1575,7 +1576,7 @@
   }
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/phrasing-content.js
+;// ./node_modules/@wordpress/dom/build-module/phrasing-content.js
 /**
  * All phrasing content elements.
  *
@@ -1771,7 +1772,7 @@
   return textContentSchema.hasOwnProperty(tag) || tag === 'span';
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/is-element.js
+;// ./node_modules/@wordpress/dom/build-module/dom/is-element.js
 /* eslint-disable jsdoc/valid-types */
 /**
  * @param {Node | null | undefined} node
@@ -1782,7 +1783,7 @@
   return !!node && node.nodeType === node.ELEMENT_NODE;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/clean-node-list.js
+;// ./node_modules/@wordpress/dom/build-module/dom/clean-node-list.js
 /**
  * Internal dependencies
  */
@@ -1818,7 +1819,7 @@
  * @param {boolean}  inline   Whether to clean for inline mode.
  */
 function cleanNodeList(nodeList, doc, schema, inline) {
-  Array.from(nodeList).forEach(( /** @type {Node & { nextElementSibling?: unknown }} */node) => {
+  Array.from(nodeList).forEach((/** @type {Node & { nextElementSibling?: unknown }} */node) => {
     const tag = node.nodeName.toLowerCase();
 
     // It's a valid child, if the tag exists in the schema without an isMatch
@@ -1854,10 +1855,13 @@
           // TODO: Explore patching this in jsdom-jscore.
           if (node.classList && node.classList.length) {
             const mattchers = classes.map(item => {
-              if (typeof item === 'string') {
-                return ( /** @type {string} */className) => className === item;
+              if (item === '*') {
+                // Keep all classes.
+                return () => true;
+              } else if (typeof item === 'string') {
+                return (/** @type {string} */className) => className === item;
               } else if (item instanceof RegExp) {
-                return ( /** @type {string} */className) => item.test(className);
+                return (/** @type {string} */className) => item.test(className);
               }
               return noop;
             });
@@ -1917,7 +1921,7 @@
   });
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/remove-invalid-html.js
+;// ./node_modules/@wordpress/dom/build-module/dom/remove-invalid-html.js
 /**
  * Internal dependencies
  */
@@ -1939,7 +1943,7 @@
   return doc.body.innerHTML;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom/index.js
+;// ./node_modules/@wordpress/dom/build-module/dom/index.js
 
 
 
@@ -1967,7 +1971,8 @@
 
 
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/data-transfer.js
+
+;// ./node_modules/@wordpress/dom/build-module/data-transfer.js
 /**
  * Gets all files from a DataTransfer object.
  *
@@ -1990,7 +1995,7 @@
   return files;
 }
 
-;// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/index.js
+;// ./node_modules/@wordpress/dom/build-module/index.js
 /**
  * Internal dependencies
  */