From 7b198746131c6ca0c736f2333784eaefa1f7a281 Mon Sep 17 00:00:00 2001 From: eps1lon Date: Mon, 20 May 2024 20:07:00 +0000 Subject: [PATCH] React DOM: Add support for Popover API (#27981) DiffTrain build for [6f903651283861af4e5a8838b3b74d2a953a0acc](https://github.com/facebook/react/commit/6f903651283861af4e5a8838b3b74d2a953a0acc) --- compiled/facebook-www/REVISION | 2 +- compiled/facebook-www/ReactDOM-dev.classic.js | 47 +++++++++++++++++-- compiled/facebook-www/ReactDOM-dev.modern.js | 47 +++++++++++++++++-- .../facebook-www/ReactDOM-prod.classic.js | 30 +++++++++--- compiled/facebook-www/ReactDOM-prod.modern.js | 30 +++++++++--- .../ReactDOM-profiling.classic.js | 30 +++++++++--- .../facebook-www/ReactDOM-profiling.modern.js | 30 +++++++++--- .../ReactDOMServer-dev.classic.js | 5 +- .../facebook-www/ReactDOMServer-dev.modern.js | 5 +- .../ReactDOMServerStreaming-dev.modern.js | 3 ++ .../ReactDOMTesting-dev.classic.js | 47 +++++++++++++++++-- .../ReactDOMTesting-dev.modern.js | 47 +++++++++++++++++-- .../ReactDOMTesting-prod.classic.js | 30 +++++++++--- .../ReactDOMTesting-prod.modern.js | 30 +++++++++--- .../ReactTestUtils-dev.classic.js | 9 +++- .../facebook-www/ReactTestUtils-dev.modern.js | 9 +++- .../__test_utils__/ReactAllWarnings.js | 1 + 17 files changed, 349 insertions(+), 53 deletions(-) diff --git a/compiled/facebook-www/REVISION b/compiled/facebook-www/REVISION index d8c48058f21a5..b26bf9356863c 100644 --- a/compiled/facebook-www/REVISION +++ b/compiled/facebook-www/REVISION @@ -1 +1 @@ -7a78d030281f2f0e02e7cdbed5c1fc5c4a1a1823 +6f903651283861af4e5a8838b3b74d2a953a0acc diff --git a/compiled/facebook-www/ReactDOM-dev.classic.js b/compiled/facebook-www/ReactDOM-dev.classic.js index 9a554fa7f8f81..1d9e62c6d03bf 100644 --- a/compiled/facebook-www/ReactDOM-dev.classic.js +++ b/compiled/facebook-www/ReactDOM-dev.classic.js @@ -5524,6 +5524,9 @@ var possibleStandardNames = { pointsatx: 'pointsAtX', pointsaty: 'pointsAtY', pointsatz: 'pointsAtZ', + popover: 'popover', + popovertarget: 'popoverTarget', + popovertargetaction: 'popoverTargetAction', prefix: 'prefix', preservealpha: 'preserveAlpha', preserveaspectratio: 'preserveAspectRatio', @@ -30846,7 +30849,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition return root; } -var ReactVersion = '19.0.0-www-classic-54329650'; +var ReactVersion = '19.0.0-www-classic-c016de4d'; function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation. implementation) { @@ -32239,6 +32242,13 @@ var WheelEventInterface = assign({}, MouseEventInterface, { var SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface); +var ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 +}); + +var SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface); + var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; @@ -33702,7 +33712,7 @@ var topLevelEventsToReactNames = new Map(); // NOTE: Capitalization is important // // prettier-ignore -var simpleEventPluginEvents = ['abort', 'auxClick', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; +var simpleEventPluginEvents = ['abort', 'auxClick', 'beforeToggle', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; { // Special case: these two events don't have on* React handler @@ -33858,6 +33868,12 @@ function extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, n case 'pointerup': SyntheticEventCtor = SyntheticPointerEvent; break; + + case 'toggle': + case 'beforetoggle': + // MDN claims
should not receive ToggleEvent contradicting the spec: https://html.spec.whatwg.org/multipage/indices.html#event-toggle + SyntheticEventCtor = SyntheticToggleEvent; + break; } var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0; @@ -34093,7 +34109,7 @@ var mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', ' // set them on the actual target element itself. This is primarily // because these events do not consistently bubble in the DOM. -var nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); +var nonDelegatedEvents = new Set(['beforetoggle', 'cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); function executeDispatch(event, listener, currentTarget) { event.currentTarget = currentTarget; @@ -34691,6 +34707,7 @@ var didWarnFormActionName = false; var didWarnFormActionTarget = false; var didWarnFormActionMethod = false; var didWarnForNewBooleanPropsWithEmptyValue; +var didWarnPopoverTargetObject = false; var canDiffStyleForHydrationWarning; { @@ -35285,6 +35302,12 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; } + case 'popover': + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + setValueForAttribute(domElement, 'popover', value); + break; + case 'xlinkActuate': setValueForNamespacedAttribute(domElement, xlinkNamespace, 'xlink:actuate', value); break; @@ -35341,6 +35364,16 @@ function setProp(domElement, tag, key, value, props, prevValue) { case 'innerText': case 'textContent': break; + + case 'popoverTarget': + { + if (!didWarnPopoverTargetObject && value != null && typeof value === 'object') { + didWarnPopoverTargetObject = true; + + error('The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.', value); + } + } + // Fall through default: @@ -37257,6 +37290,13 @@ function hydrateProperties(domElement, tag, props, hostContext) { } } + if (props.popover != null) { + // We listen to this event in case to ensure emulated bubble + // listeners still fire for the toggle event. + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + } + if (props.onScroll != null) { listenToNonDelegatedEvent('scroll', domElement); } @@ -40903,6 +40943,7 @@ function getEventPriority(domEventName) { case 'selectstart': return DiscreteEventPriority; + case 'beforetoggle': case 'drag': case 'dragenter': case 'dragexit': diff --git a/compiled/facebook-www/ReactDOM-dev.modern.js b/compiled/facebook-www/ReactDOM-dev.modern.js index a3ca34922ba6a..041983d36eeb3 100644 --- a/compiled/facebook-www/ReactDOM-dev.modern.js +++ b/compiled/facebook-www/ReactDOM-dev.modern.js @@ -5473,6 +5473,9 @@ var possibleStandardNames = { pointsatx: 'pointsAtX', pointsaty: 'pointsAtY', pointsatz: 'pointsAtZ', + popover: 'popover', + popovertarget: 'popoverTarget', + popovertargetaction: 'popoverTargetAction', prefix: 'prefix', preservealpha: 'preserveAlpha', preserveaspectratio: 'preserveAspectRatio', @@ -30021,7 +30024,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition return root; } -var ReactVersion = '19.0.0-www-modern-811b0700'; +var ReactVersion = '19.0.0-www-modern-7e811787'; function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation. implementation) { @@ -31396,6 +31399,13 @@ var WheelEventInterface = assign({}, MouseEventInterface, { var SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface); +var ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 +}); + +var SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface); + var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; @@ -32859,7 +32869,7 @@ var topLevelEventsToReactNames = new Map(); // NOTE: Capitalization is important // // prettier-ignore -var simpleEventPluginEvents = ['abort', 'auxClick', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; +var simpleEventPluginEvents = ['abort', 'auxClick', 'beforeToggle', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; { // Special case: these two events don't have on* React handler @@ -33015,6 +33025,12 @@ function extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, n case 'pointerup': SyntheticEventCtor = SyntheticPointerEvent; break; + + case 'toggle': + case 'beforetoggle': + // MDN claims
should not receive ToggleEvent contradicting the spec: https://html.spec.whatwg.org/multipage/indices.html#event-toggle + SyntheticEventCtor = SyntheticToggleEvent; + break; } var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0; @@ -33250,7 +33266,7 @@ var mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', ' // set them on the actual target element itself. This is primarily // because these events do not consistently bubble in the DOM. -var nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); +var nonDelegatedEvents = new Set(['beforetoggle', 'cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); function executeDispatch(event, listener, currentTarget) { event.currentTarget = currentTarget; @@ -33848,6 +33864,7 @@ var didWarnFormActionName = false; var didWarnFormActionTarget = false; var didWarnFormActionMethod = false; var didWarnForNewBooleanPropsWithEmptyValue; +var didWarnPopoverTargetObject = false; var canDiffStyleForHydrationWarning; { @@ -34442,6 +34459,12 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; } + case 'popover': + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + setValueForAttribute(domElement, 'popover', value); + break; + case 'xlinkActuate': setValueForNamespacedAttribute(domElement, xlinkNamespace, 'xlink:actuate', value); break; @@ -34498,6 +34521,16 @@ function setProp(domElement, tag, key, value, props, prevValue) { case 'innerText': case 'textContent': break; + + case 'popoverTarget': + { + if (!didWarnPopoverTargetObject && value != null && typeof value === 'object') { + didWarnPopoverTargetObject = true; + + error('The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.', value); + } + } + // Fall through default: @@ -36412,6 +36445,13 @@ function hydrateProperties(domElement, tag, props, hostContext) { } } + if (props.popover != null) { + // We listen to this event in case to ensure emulated bubble + // listeners still fire for the toggle event. + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + } + if (props.onScroll != null) { listenToNonDelegatedEvent('scroll', domElement); } @@ -40070,6 +40110,7 @@ function getEventPriority(domEventName) { case 'selectstart': return DiscreteEventPriority; + case 'beforetoggle': case 'drag': case 'dragenter': case 'dragexit': diff --git a/compiled/facebook-www/ReactDOM-prod.classic.js b/compiled/facebook-www/ReactDOM-prod.classic.js index f582fc686d103..267916d90afdf 100644 --- a/compiled/facebook-www/ReactDOM-prod.classic.js +++ b/compiled/facebook-www/ReactDOM-prod.classic.js @@ -1751,7 +1751,10 @@ function prepareToHydrateHostInstance(fiber) { instance.textContent === "" + type || !0 === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) - ? (null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), + ? (null != props.popover && + (listenToNonDelegatedEvent("beforetoggle", instance), + listenToNonDelegatedEvent("toggle", instance)), + null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), @@ -12945,6 +12948,11 @@ var KeyboardEventInterface = assign({}, UIEventInterface, { deltaMode: 0 }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), + ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), + SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; @@ -13401,7 +13409,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = new Map(), simpleEventPluginEvents = - "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( + "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( " " ); topLevelEventsToReactNames.set("beforeblur", null); @@ -13568,7 +13576,7 @@ var mediaEventTypes = " " ), nonDelegatedEvents = new Set( - "cancel close invalid load scroll scrollend toggle" + "beforetoggle cancel close invalid load scroll scrollend toggle" .split(" ") .concat(mediaEventTypes) ); @@ -13866,6 +13874,10 @@ function dispatchEventForPluginEventSystem( case "pointerover": case "pointerup": SyntheticEventCtor = SyntheticPointerEvent; + break; + case "toggle": + case "beforetoggle": + SyntheticEventCtor = SyntheticToggleEvent; } var inCapturePhase = 0 !== (eventSystemFlags & 4); eventSystemFlags & 1 @@ -14589,6 +14601,11 @@ function setProp(domElement, tag, key, value, props, prevValue) { ? domElement.removeAttribute(key) : domElement.setAttribute(key, value); break; + case "popover": + listenToNonDelegatedEvent("beforetoggle", domElement); + listenToNonDelegatedEvent("toggle", domElement); + setValueForAttribute(domElement, "popover", value); + break; case "xlinkActuate": setValueForNamespacedAttribute( domElement, @@ -16936,6 +16953,7 @@ function getEventPriority(domEventName) { case "select": case "selectstart": return 2; + case "beforetoggle": case "drag": case "dragenter": case "dragexit": @@ -17036,7 +17054,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1734 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-classic-564074b7", + version: "19.0.0-www-classic-c8314b58", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2178 = { @@ -17066,7 +17084,7 @@ var internals$jscomp$inline_2178 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-564074b7" + reconcilerVersion: "19.0.0-www-classic-c8314b58" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2179 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17570,4 +17588,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-classic-564074b7"; +exports.version = "19.0.0-www-classic-c8314b58"; diff --git a/compiled/facebook-www/ReactDOM-prod.modern.js b/compiled/facebook-www/ReactDOM-prod.modern.js index fd09ed86f6fd3..7b4a7bd5683dc 100644 --- a/compiled/facebook-www/ReactDOM-prod.modern.js +++ b/compiled/facebook-www/ReactDOM-prod.modern.js @@ -1539,7 +1539,10 @@ function prepareToHydrateHostInstance(fiber) { instance.textContent === "" + type || !0 === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) - ? (null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), + ? (null != props.popover && + (listenToNonDelegatedEvent("beforetoggle", instance), + listenToNonDelegatedEvent("toggle", instance)), + null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), @@ -12332,6 +12335,11 @@ var KeyboardEventInterface = assign({}, UIEventInterface, { deltaMode: 0 }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), + ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), + SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; @@ -12788,7 +12796,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = new Map(), simpleEventPluginEvents = - "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( + "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( " " ); topLevelEventsToReactNames.set("beforeblur", null); @@ -12955,7 +12963,7 @@ var mediaEventTypes = " " ), nonDelegatedEvents = new Set( - "cancel close invalid load scroll scrollend toggle" + "beforetoggle cancel close invalid load scroll scrollend toggle" .split(" ") .concat(mediaEventTypes) ); @@ -13253,6 +13261,10 @@ function dispatchEventForPluginEventSystem( case "pointerover": case "pointerup": SyntheticEventCtor = SyntheticPointerEvent; + break; + case "toggle": + case "beforetoggle": + SyntheticEventCtor = SyntheticToggleEvent; } var inCapturePhase = 0 !== (eventSystemFlags & 4); eventSystemFlags & 1 @@ -13976,6 +13988,11 @@ function setProp(domElement, tag, key, value, props, prevValue) { ? domElement.removeAttribute(key) : domElement.setAttribute(key, value); break; + case "popover": + listenToNonDelegatedEvent("beforetoggle", domElement); + listenToNonDelegatedEvent("toggle", domElement); + setValueForAttribute(domElement, "popover", value); + break; case "xlinkActuate": setValueForNamespacedAttribute( domElement, @@ -16313,6 +16330,7 @@ function getEventPriority(domEventName) { case "select": case "selectstart": return 2; + case "beforetoggle": case "drag": case "dragenter": case "dragexit": @@ -16403,7 +16421,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1701 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-modern-d593ad02", + version: "19.0.0-www-modern-5ef4f681", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2170 = { @@ -16433,7 +16451,7 @@ var internals$jscomp$inline_2170 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-d593ad02" + reconcilerVersion: "19.0.0-www-modern-5ef4f681" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2171 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -16807,4 +16825,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-modern-d593ad02"; +exports.version = "19.0.0-www-modern-5ef4f681"; diff --git a/compiled/facebook-www/ReactDOM-profiling.classic.js b/compiled/facebook-www/ReactDOM-profiling.classic.js index 5ffdf1b967f3f..2ad4c49454fc6 100644 --- a/compiled/facebook-www/ReactDOM-profiling.classic.js +++ b/compiled/facebook-www/ReactDOM-profiling.classic.js @@ -1887,7 +1887,10 @@ function prepareToHydrateHostInstance(fiber) { instance.textContent === "" + type || !0 === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) - ? (null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), + ? (null != props.popover && + (listenToNonDelegatedEvent("beforetoggle", instance), + listenToNonDelegatedEvent("toggle", instance)), + null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), @@ -13693,6 +13696,11 @@ var KeyboardEventInterface = assign({}, UIEventInterface, { deltaMode: 0 }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), + ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), + SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; @@ -14149,7 +14157,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = new Map(), simpleEventPluginEvents = - "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( + "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( " " ); topLevelEventsToReactNames.set("beforeblur", null); @@ -14316,7 +14324,7 @@ var mediaEventTypes = " " ), nonDelegatedEvents = new Set( - "cancel close invalid load scroll scrollend toggle" + "beforetoggle cancel close invalid load scroll scrollend toggle" .split(" ") .concat(mediaEventTypes) ); @@ -14614,6 +14622,10 @@ function dispatchEventForPluginEventSystem( case "pointerover": case "pointerup": SyntheticEventCtor = SyntheticPointerEvent; + break; + case "toggle": + case "beforetoggle": + SyntheticEventCtor = SyntheticToggleEvent; } var inCapturePhase = 0 !== (eventSystemFlags & 4); eventSystemFlags & 1 @@ -15337,6 +15349,11 @@ function setProp(domElement, tag, key, value, props, prevValue) { ? domElement.removeAttribute(key) : domElement.setAttribute(key, value); break; + case "popover": + listenToNonDelegatedEvent("beforetoggle", domElement); + listenToNonDelegatedEvent("toggle", domElement); + setValueForAttribute(domElement, "popover", value); + break; case "xlinkActuate": setValueForNamespacedAttribute( domElement, @@ -17684,6 +17701,7 @@ function getEventPriority(domEventName) { case "select": case "selectstart": return 2; + case "beforetoggle": case "drag": case "dragenter": case "dragexit": @@ -17784,7 +17802,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1820 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-classic-3fdfc511", + version: "19.0.0-www-classic-4f270782", rendererPackageName: "react-dom" }; (function (internals) { @@ -17828,7 +17846,7 @@ var devToolsConfig$jscomp$inline_1820 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-3fdfc511" + reconcilerVersion: "19.0.0-www-classic-4f270782" }); function ReactDOMRoot(internalRoot) { this._internalRoot = internalRoot; @@ -18319,7 +18337,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-classic-3fdfc511"; +exports.version = "19.0.0-www-classic-4f270782"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOM-profiling.modern.js b/compiled/facebook-www/ReactDOM-profiling.modern.js index 0f24c4a8fc091..b048bc1a6db58 100644 --- a/compiled/facebook-www/ReactDOM-profiling.modern.js +++ b/compiled/facebook-www/ReactDOM-profiling.modern.js @@ -1675,7 +1675,10 @@ function prepareToHydrateHostInstance(fiber) { instance.textContent === "" + type || !0 === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) - ? (null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), + ? (null != props.popover && + (listenToNonDelegatedEvent("beforetoggle", instance), + listenToNonDelegatedEvent("toggle", instance)), + null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), @@ -13063,6 +13066,11 @@ var KeyboardEventInterface = assign({}, UIEventInterface, { deltaMode: 0 }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), + ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), + SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; @@ -13519,7 +13527,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = new Map(), simpleEventPluginEvents = - "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( + "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( " " ); topLevelEventsToReactNames.set("beforeblur", null); @@ -13686,7 +13694,7 @@ var mediaEventTypes = " " ), nonDelegatedEvents = new Set( - "cancel close invalid load scroll scrollend toggle" + "beforetoggle cancel close invalid load scroll scrollend toggle" .split(" ") .concat(mediaEventTypes) ); @@ -13984,6 +13992,10 @@ function dispatchEventForPluginEventSystem( case "pointerover": case "pointerup": SyntheticEventCtor = SyntheticPointerEvent; + break; + case "toggle": + case "beforetoggle": + SyntheticEventCtor = SyntheticToggleEvent; } var inCapturePhase = 0 !== (eventSystemFlags & 4); eventSystemFlags & 1 @@ -14707,6 +14719,11 @@ function setProp(domElement, tag, key, value, props, prevValue) { ? domElement.removeAttribute(key) : domElement.setAttribute(key, value); break; + case "popover": + listenToNonDelegatedEvent("beforetoggle", domElement); + listenToNonDelegatedEvent("toggle", domElement); + setValueForAttribute(domElement, "popover", value); + break; case "xlinkActuate": setValueForNamespacedAttribute( domElement, @@ -17044,6 +17061,7 @@ function getEventPriority(domEventName) { case "select": case "selectstart": return 2; + case "beforetoggle": case "drag": case "dragenter": case "dragexit": @@ -17134,7 +17152,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1787 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-modern-b45628ca", + version: "19.0.0-www-modern-68e10a4c", rendererPackageName: "react-dom" }; (function (internals) { @@ -17178,7 +17196,7 @@ var devToolsConfig$jscomp$inline_1787 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-b45628ca" + reconcilerVersion: "19.0.0-www-modern-68e10a4c" }); function ReactDOMRoot(internalRoot) { this._internalRoot = internalRoot; @@ -17539,7 +17557,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-modern-b45628ca"; +exports.version = "19.0.0-www-modern-68e10a4c"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOMServer-dev.classic.js b/compiled/facebook-www/ReactDOMServer-dev.classic.js index 2775b030c1368..16aa38df45ad7 100644 --- a/compiled/facebook-www/ReactDOMServer-dev.classic.js +++ b/compiled/facebook-www/ReactDOMServer-dev.classic.js @@ -19,7 +19,7 @@ if (__DEV__) { var React = require('react'); var ReactDOM = require('react-dom'); -var ReactVersion = '19.0.0-www-classic-b547cfd9'; +var ReactVersion = '19.0.0-www-classic-81f51e28'; // This refers to a WWW module. var warningWWW = require('warning'); @@ -1212,6 +1212,9 @@ var possibleStandardNames = { pointsatx: 'pointsAtX', pointsaty: 'pointsAtY', pointsatz: 'pointsAtZ', + popover: 'popover', + popovertarget: 'popoverTarget', + popovertargetaction: 'popoverTargetAction', prefix: 'prefix', preservealpha: 'preserveAlpha', preserveaspectratio: 'preserveAspectRatio', diff --git a/compiled/facebook-www/ReactDOMServer-dev.modern.js b/compiled/facebook-www/ReactDOMServer-dev.modern.js index b3b1077ebf4bf..1bd6c4a0d745d 100644 --- a/compiled/facebook-www/ReactDOMServer-dev.modern.js +++ b/compiled/facebook-www/ReactDOMServer-dev.modern.js @@ -19,7 +19,7 @@ if (__DEV__) { var React = require('react'); var ReactDOM = require('react-dom'); -var ReactVersion = '19.0.0-www-modern-ce28692a'; +var ReactVersion = '19.0.0-www-modern-3c21a06a'; // This refers to a WWW module. var warningWWW = require('warning'); @@ -1212,6 +1212,9 @@ var possibleStandardNames = { pointsatx: 'pointsAtX', pointsaty: 'pointsAtY', pointsatz: 'pointsAtZ', + popover: 'popover', + popovertarget: 'popoverTarget', + popovertargetaction: 'popoverTargetAction', prefix: 'prefix', preservealpha: 'preserveAlpha', preserveaspectratio: 'preserveAspectRatio', diff --git a/compiled/facebook-www/ReactDOMServerStreaming-dev.modern.js b/compiled/facebook-www/ReactDOMServerStreaming-dev.modern.js index 2b44cdb8ae5d1..a3d15be2c047f 100644 --- a/compiled/facebook-www/ReactDOMServerStreaming-dev.modern.js +++ b/compiled/facebook-www/ReactDOMServerStreaming-dev.modern.js @@ -1209,6 +1209,9 @@ var possibleStandardNames = { pointsatx: 'pointsAtX', pointsaty: 'pointsAtY', pointsatz: 'pointsAtZ', + popover: 'popover', + popovertarget: 'popoverTarget', + popovertargetaction: 'popoverTargetAction', prefix: 'prefix', preservealpha: 'preserveAlpha', preserveaspectratio: 'preserveAspectRatio', diff --git a/compiled/facebook-www/ReactDOMTesting-dev.classic.js b/compiled/facebook-www/ReactDOMTesting-dev.classic.js index 8d759b26932af..f36a2d6a2ae33 100644 --- a/compiled/facebook-www/ReactDOMTesting-dev.classic.js +++ b/compiled/facebook-www/ReactDOMTesting-dev.classic.js @@ -5665,6 +5665,9 @@ var possibleStandardNames = { pointsatx: 'pointsAtX', pointsaty: 'pointsAtY', pointsatz: 'pointsAtZ', + popover: 'popover', + popovertarget: 'popoverTarget', + popovertargetaction: 'popoverTargetAction', prefix: 'prefix', preservealpha: 'preserveAlpha', preserveaspectratio: 'preserveAspectRatio', @@ -31412,7 +31415,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition return root; } -var ReactVersion = '19.0.0-www-classic-a439fb82'; +var ReactVersion = '19.0.0-www-classic-70923a67'; function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation. implementation) { @@ -32805,6 +32808,13 @@ var WheelEventInterface = assign({}, MouseEventInterface, { var SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface); +var ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 +}); + +var SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface); + var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; @@ -34268,7 +34278,7 @@ var topLevelEventsToReactNames = new Map(); // NOTE: Capitalization is important // // prettier-ignore -var simpleEventPluginEvents = ['abort', 'auxClick', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; +var simpleEventPluginEvents = ['abort', 'auxClick', 'beforeToggle', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; { // Special case: these two events don't have on* React handler @@ -34424,6 +34434,12 @@ function extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, n case 'pointerup': SyntheticEventCtor = SyntheticPointerEvent; break; + + case 'toggle': + case 'beforetoggle': + // MDN claims
should not receive ToggleEvent contradicting the spec: https://html.spec.whatwg.org/multipage/indices.html#event-toggle + SyntheticEventCtor = SyntheticToggleEvent; + break; } var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0; @@ -34659,7 +34675,7 @@ var mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', ' // set them on the actual target element itself. This is primarily // because these events do not consistently bubble in the DOM. -var nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); +var nonDelegatedEvents = new Set(['beforetoggle', 'cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); function executeDispatch(event, listener, currentTarget) { event.currentTarget = currentTarget; @@ -35257,6 +35273,7 @@ var didWarnFormActionName = false; var didWarnFormActionTarget = false; var didWarnFormActionMethod = false; var didWarnForNewBooleanPropsWithEmptyValue; +var didWarnPopoverTargetObject = false; var canDiffStyleForHydrationWarning; { @@ -35851,6 +35868,12 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; } + case 'popover': + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + setValueForAttribute(domElement, 'popover', value); + break; + case 'xlinkActuate': setValueForNamespacedAttribute(domElement, xlinkNamespace, 'xlink:actuate', value); break; @@ -35907,6 +35930,16 @@ function setProp(domElement, tag, key, value, props, prevValue) { case 'innerText': case 'textContent': break; + + case 'popoverTarget': + { + if (!didWarnPopoverTargetObject && value != null && typeof value === 'object') { + didWarnPopoverTargetObject = true; + + error('The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.', value); + } + } + // Fall through default: @@ -37823,6 +37856,13 @@ function hydrateProperties(domElement, tag, props, hostContext) { } } + if (props.popover != null) { + // We listen to this event in case to ensure emulated bubble + // listeners still fire for the toggle event. + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + } + if (props.onScroll != null) { listenToNonDelegatedEvent('scroll', domElement); } @@ -41601,6 +41641,7 @@ function getEventPriority(domEventName) { case 'selectstart': return DiscreteEventPriority; + case 'beforetoggle': case 'drag': case 'dragenter': case 'dragexit': diff --git a/compiled/facebook-www/ReactDOMTesting-dev.modern.js b/compiled/facebook-www/ReactDOMTesting-dev.modern.js index 2ba0b7e8c9827..32d1626b8e188 100644 --- a/compiled/facebook-www/ReactDOMTesting-dev.modern.js +++ b/compiled/facebook-www/ReactDOMTesting-dev.modern.js @@ -5614,6 +5614,9 @@ var possibleStandardNames = { pointsatx: 'pointsAtX', pointsaty: 'pointsAtY', pointsatz: 'pointsAtZ', + popover: 'popover', + popovertarget: 'popoverTarget', + popovertargetaction: 'popoverTargetAction', prefix: 'prefix', preservealpha: 'preserveAlpha', preserveaspectratio: 'preserveAspectRatio', @@ -30587,7 +30590,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition return root; } -var ReactVersion = '19.0.0-www-modern-4ab3a53a'; +var ReactVersion = '19.0.0-www-modern-c1c9700d'; function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation. implementation) { @@ -31962,6 +31965,13 @@ var WheelEventInterface = assign({}, MouseEventInterface, { var SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface); +var ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 +}); + +var SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface); + var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; @@ -33425,7 +33435,7 @@ var topLevelEventsToReactNames = new Map(); // NOTE: Capitalization is important // // prettier-ignore -var simpleEventPluginEvents = ['abort', 'auxClick', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; +var simpleEventPluginEvents = ['abort', 'auxClick', 'beforeToggle', 'cancel', 'canPlay', 'canPlayThrough', 'click', 'close', 'contextMenu', 'copy', 'cut', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'pointerCancel', 'pointerDown', 'pointerMove', 'pointerOut', 'pointerOver', 'pointerUp', 'progress', 'rateChange', 'reset', 'resize', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'scroll', 'scrollEnd', 'toggle', 'touchMove', 'waiting', 'wheel']; { // Special case: these two events don't have on* React handler @@ -33581,6 +33591,12 @@ function extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, n case 'pointerup': SyntheticEventCtor = SyntheticPointerEvent; break; + + case 'toggle': + case 'beforetoggle': + // MDN claims
should not receive ToggleEvent contradicting the spec: https://html.spec.whatwg.org/multipage/indices.html#event-toggle + SyntheticEventCtor = SyntheticToggleEvent; + break; } var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0; @@ -33816,7 +33832,7 @@ var mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', ' // set them on the actual target element itself. This is primarily // because these events do not consistently bubble in the DOM. -var nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); +var nonDelegatedEvents = new Set(['beforetoggle', 'cancel', 'close', 'invalid', 'load', 'scroll', 'scrollend', 'toggle'].concat(mediaEventTypes)); function executeDispatch(event, listener, currentTarget) { event.currentTarget = currentTarget; @@ -34414,6 +34430,7 @@ var didWarnFormActionName = false; var didWarnFormActionTarget = false; var didWarnFormActionMethod = false; var didWarnForNewBooleanPropsWithEmptyValue; +var didWarnPopoverTargetObject = false; var canDiffStyleForHydrationWarning; { @@ -35008,6 +35025,12 @@ function setProp(domElement, tag, key, value, props, prevValue) { break; } + case 'popover': + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + setValueForAttribute(domElement, 'popover', value); + break; + case 'xlinkActuate': setValueForNamespacedAttribute(domElement, xlinkNamespace, 'xlink:actuate', value); break; @@ -35064,6 +35087,16 @@ function setProp(domElement, tag, key, value, props, prevValue) { case 'innerText': case 'textContent': break; + + case 'popoverTarget': + { + if (!didWarnPopoverTargetObject && value != null && typeof value === 'object') { + didWarnPopoverTargetObject = true; + + error('The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.', value); + } + } + // Fall through default: @@ -36978,6 +37011,13 @@ function hydrateProperties(domElement, tag, props, hostContext) { } } + if (props.popover != null) { + // We listen to this event in case to ensure emulated bubble + // listeners still fire for the toggle event. + listenToNonDelegatedEvent('beforetoggle', domElement); + listenToNonDelegatedEvent('toggle', domElement); + } + if (props.onScroll != null) { listenToNonDelegatedEvent('scroll', domElement); } @@ -40768,6 +40808,7 @@ function getEventPriority(domEventName) { case 'selectstart': return DiscreteEventPriority; + case 'beforetoggle': case 'drag': case 'dragenter': case 'dragexit': diff --git a/compiled/facebook-www/ReactDOMTesting-prod.classic.js b/compiled/facebook-www/ReactDOMTesting-prod.classic.js index 81fb8dac72ce2..8e79eb12d3d8d 100644 --- a/compiled/facebook-www/ReactDOMTesting-prod.classic.js +++ b/compiled/facebook-www/ReactDOMTesting-prod.classic.js @@ -1837,7 +1837,10 @@ function prepareToHydrateHostInstance(fiber) { instance.textContent === "" + type || !0 === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) - ? (null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), + ? (null != props.popover && + (listenToNonDelegatedEvent("beforetoggle", instance), + listenToNonDelegatedEvent("toggle", instance)), + null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), @@ -13217,6 +13220,11 @@ var KeyboardEventInterface = assign({}, UIEventInterface, { deltaMode: 0 }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), + ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), + SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; @@ -13673,7 +13681,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = new Map(), simpleEventPluginEvents = - "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( + "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( " " ); topLevelEventsToReactNames.set("beforeblur", null); @@ -13840,7 +13848,7 @@ var mediaEventTypes = " " ), nonDelegatedEvents = new Set( - "cancel close invalid load scroll scrollend toggle" + "beforetoggle cancel close invalid load scroll scrollend toggle" .split(" ") .concat(mediaEventTypes) ); @@ -14138,6 +14146,10 @@ function dispatchEventForPluginEventSystem( case "pointerover": case "pointerup": SyntheticEventCtor = SyntheticPointerEvent; + break; + case "toggle": + case "beforetoggle": + SyntheticEventCtor = SyntheticToggleEvent; } var inCapturePhase = 0 !== (eventSystemFlags & 4); eventSystemFlags & 1 @@ -14861,6 +14873,11 @@ function setProp(domElement, tag, key, value, props, prevValue) { ? domElement.removeAttribute(key) : domElement.setAttribute(key, value); break; + case "popover": + listenToNonDelegatedEvent("beforetoggle", domElement); + listenToNonDelegatedEvent("toggle", domElement); + setValueForAttribute(domElement, "popover", value); + break; case "xlinkActuate": setValueForNamespacedAttribute( domElement, @@ -17265,6 +17282,7 @@ function getEventPriority(domEventName) { case "select": case "selectstart": return 2; + case "beforetoggle": case "drag": case "dragenter": case "dragexit": @@ -17365,7 +17383,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1763 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-classic-821c24d7", + version: "19.0.0-www-classic-67b98651", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2212 = { @@ -17395,7 +17413,7 @@ var internals$jscomp$inline_2212 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-821c24d7" + reconcilerVersion: "19.0.0-www-classic-67b98651" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2213 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -18050,4 +18068,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-classic-821c24d7"; +exports.version = "19.0.0-www-classic-67b98651"; diff --git a/compiled/facebook-www/ReactDOMTesting-prod.modern.js b/compiled/facebook-www/ReactDOMTesting-prod.modern.js index 7efea2af071b5..5d26f4050d195 100644 --- a/compiled/facebook-www/ReactDOMTesting-prod.modern.js +++ b/compiled/facebook-www/ReactDOMTesting-prod.modern.js @@ -1684,7 +1684,10 @@ function prepareToHydrateHostInstance(fiber) { instance.textContent === "" + type || !0 === props.suppressHydrationWarning || checkForUnmatchedText(instance.textContent, type) - ? (null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), + ? (null != props.popover && + (listenToNonDelegatedEvent("beforetoggle", instance), + listenToNonDelegatedEvent("toggle", instance)), + null != props.onScroll && listenToNonDelegatedEvent("scroll", instance), null != props.onScrollEnd && listenToNonDelegatedEvent("scrollend", instance), null != props.onClick && (instance.onclick = noop$1), @@ -12663,6 +12666,11 @@ var KeyboardEventInterface = assign({}, UIEventInterface, { deltaMode: 0 }), SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface), + ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 + }), + SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface), END_KEYCODES = [9, 13, 27, 32], canUseCompositionEvent = canUseDOM && "CompositionEvent" in window, documentMode = null; @@ -13119,7 +13127,7 @@ var ANIMATION_END = getVendorPrefixedEventName("animationend"), TRANSITION_END = getVendorPrefixedEventName("transitionend"), topLevelEventsToReactNames = new Map(), simpleEventPluginEvents = - "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( + "abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel".split( " " ); topLevelEventsToReactNames.set("beforeblur", null); @@ -13286,7 +13294,7 @@ var mediaEventTypes = " " ), nonDelegatedEvents = new Set( - "cancel close invalid load scroll scrollend toggle" + "beforetoggle cancel close invalid load scroll scrollend toggle" .split(" ") .concat(mediaEventTypes) ); @@ -13584,6 +13592,10 @@ function dispatchEventForPluginEventSystem( case "pointerover": case "pointerup": SyntheticEventCtor = SyntheticPointerEvent; + break; + case "toggle": + case "beforetoggle": + SyntheticEventCtor = SyntheticToggleEvent; } var inCapturePhase = 0 !== (eventSystemFlags & 4); eventSystemFlags & 1 @@ -14307,6 +14319,11 @@ function setProp(domElement, tag, key, value, props, prevValue) { ? domElement.removeAttribute(key) : domElement.setAttribute(key, value); break; + case "popover": + listenToNonDelegatedEvent("beforetoggle", domElement); + listenToNonDelegatedEvent("toggle", domElement); + setValueForAttribute(domElement, "popover", value); + break; case "xlinkActuate": setValueForNamespacedAttribute( domElement, @@ -16701,6 +16718,7 @@ function getEventPriority(domEventName) { case "select": case "selectstart": return 2; + case "beforetoggle": case "drag": case "dragenter": case "dragexit": @@ -16791,7 +16809,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1730 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-modern-7a8be741", + version: "19.0.0-www-modern-03270044", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2204 = { @@ -16821,7 +16839,7 @@ var internals$jscomp$inline_2204 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-7a8be741" + reconcilerVersion: "19.0.0-www-modern-03270044" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2205 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17346,4 +17364,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-modern-7a8be741"; +exports.version = "19.0.0-www-modern-03270044"; diff --git a/compiled/facebook-www/ReactTestUtils-dev.classic.js b/compiled/facebook-www/ReactTestUtils-dev.classic.js index 8042e00b6b81f..32a27c2713d91 100644 --- a/compiled/facebook-www/ReactTestUtils-dev.classic.js +++ b/compiled/facebook-www/ReactTestUtils-dev.classic.js @@ -876,6 +876,13 @@ var WheelEventInterface = assign({}, MouseEventInterface, { createSyntheticEvent(WheelEventInterface); +var ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 +}); + +createSyntheticEvent(ToggleEventInterface); + /** * HTML nodeType values that represent the type of the node */ @@ -1520,7 +1527,7 @@ function makeSimulator(eventType) { } // A one-time snapshot with no plans to update. We'll probably want to deprecate Simulate API. -var simulatedEventTypes = ['blur', 'cancel', 'click', 'close', 'contextMenu', 'copy', 'cut', 'auxClick', 'doubleClick', 'dragEnd', 'dragStart', 'drop', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'mouseDown', 'mouseUp', 'paste', 'pause', 'play', 'pointerCancel', 'pointerDown', 'pointerUp', 'rateChange', 'reset', 'resize', 'seeked', 'submit', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'drag', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'mouseMove', 'mouseOut', 'mouseOver', 'pointerMove', 'pointerOut', 'pointerOver', 'scroll', 'toggle', 'touchMove', 'wheel', 'abort', 'animationEnd', 'animationIteration', 'animationStart', 'canPlay', 'canPlayThrough', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'playing', 'progress', 'seeking', 'stalled', 'suspend', 'timeUpdate', 'transitionRun', 'transitionStart', 'transitionCancel', 'transitionEnd', 'waiting', 'mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave', 'change', 'select', 'beforeInput', 'compositionEnd', 'compositionStart', 'compositionUpdate']; +var simulatedEventTypes = ['blur', 'cancel', 'click', 'close', 'contextMenu', 'copy', 'cut', 'auxClick', 'doubleClick', 'dragEnd', 'dragStart', 'drop', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'mouseDown', 'mouseUp', 'paste', 'pause', 'play', 'pointerCancel', 'pointerDown', 'pointerUp', 'rateChange', 'reset', 'resize', 'seeked', 'submit', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'drag', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'mouseMove', 'mouseOut', 'mouseOver', 'pointerMove', 'pointerOut', 'pointerOver', 'scroll', 'toggle', 'touchMove', 'wheel', 'abort', 'animationEnd', 'animationIteration', 'animationStart', 'canPlay', 'canPlayThrough', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'playing', 'progress', 'seeking', 'stalled', 'suspend', 'timeUpdate', 'transitionRun', 'transitionStart', 'transitionCancel', 'transitionEnd', 'waiting', 'mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave', 'change', 'select', 'beforeInput', 'beforeToggle', 'compositionEnd', 'compositionStart', 'compositionUpdate']; function buildSimulators() { simulatedEventTypes.forEach(function (eventType) { diff --git a/compiled/facebook-www/ReactTestUtils-dev.modern.js b/compiled/facebook-www/ReactTestUtils-dev.modern.js index 8042e00b6b81f..32a27c2713d91 100644 --- a/compiled/facebook-www/ReactTestUtils-dev.modern.js +++ b/compiled/facebook-www/ReactTestUtils-dev.modern.js @@ -876,6 +876,13 @@ var WheelEventInterface = assign({}, MouseEventInterface, { createSyntheticEvent(WheelEventInterface); +var ToggleEventInterface = assign({}, EventInterface, { + newState: 0, + oldState: 0 +}); + +createSyntheticEvent(ToggleEventInterface); + /** * HTML nodeType values that represent the type of the node */ @@ -1520,7 +1527,7 @@ function makeSimulator(eventType) { } // A one-time snapshot with no plans to update. We'll probably want to deprecate Simulate API. -var simulatedEventTypes = ['blur', 'cancel', 'click', 'close', 'contextMenu', 'copy', 'cut', 'auxClick', 'doubleClick', 'dragEnd', 'dragStart', 'drop', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'mouseDown', 'mouseUp', 'paste', 'pause', 'play', 'pointerCancel', 'pointerDown', 'pointerUp', 'rateChange', 'reset', 'resize', 'seeked', 'submit', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'drag', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'mouseMove', 'mouseOut', 'mouseOver', 'pointerMove', 'pointerOut', 'pointerOver', 'scroll', 'toggle', 'touchMove', 'wheel', 'abort', 'animationEnd', 'animationIteration', 'animationStart', 'canPlay', 'canPlayThrough', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'playing', 'progress', 'seeking', 'stalled', 'suspend', 'timeUpdate', 'transitionRun', 'transitionStart', 'transitionCancel', 'transitionEnd', 'waiting', 'mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave', 'change', 'select', 'beforeInput', 'compositionEnd', 'compositionStart', 'compositionUpdate']; +var simulatedEventTypes = ['blur', 'cancel', 'click', 'close', 'contextMenu', 'copy', 'cut', 'auxClick', 'doubleClick', 'dragEnd', 'dragStart', 'drop', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'mouseDown', 'mouseUp', 'paste', 'pause', 'play', 'pointerCancel', 'pointerDown', 'pointerUp', 'rateChange', 'reset', 'resize', 'seeked', 'submit', 'touchCancel', 'touchEnd', 'touchStart', 'volumeChange', 'drag', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'mouseMove', 'mouseOut', 'mouseOver', 'pointerMove', 'pointerOut', 'pointerOver', 'scroll', 'toggle', 'touchMove', 'wheel', 'abort', 'animationEnd', 'animationIteration', 'animationStart', 'canPlay', 'canPlayThrough', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'gotPointerCapture', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'lostPointerCapture', 'playing', 'progress', 'seeking', 'stalled', 'suspend', 'timeUpdate', 'transitionRun', 'transitionStart', 'transitionCancel', 'transitionEnd', 'waiting', 'mouseEnter', 'mouseLeave', 'pointerEnter', 'pointerLeave', 'change', 'select', 'beforeInput', 'beforeToggle', 'compositionEnd', 'compositionStart', 'compositionUpdate']; function buildSimulators() { simulatedEventTypes.forEach(function (eventType) { diff --git a/compiled/facebook-www/__test_utils__/ReactAllWarnings.js b/compiled/facebook-www/__test_utils__/ReactAllWarnings.js index 9751f837a7608..93a4b4a4f7c9c 100644 --- a/compiled/facebook-www/__test_utils__/ReactAllWarnings.js +++ b/compiled/facebook-www/__test_utils__/ReactAllWarnings.js @@ -278,6 +278,7 @@ export default [ "The `%s` prop supplied to must be an array if `multiple` is true.%s", "The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.", + "The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.", "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.", "The `value` prop is required for the ``. Did you misspell it or forget to pass it?", "The current testing environment is not configured to support act(...)",