From b1e32f05973aa52c2158a7bfe06d2b06480b4179 Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Wed, 25 Mar 2026 09:13:30 +0100 Subject: [PATCH 01/16] Update EUI to v114.0.0 --- package.json | 4 +- .../__snapshots__/i18n_service.test.tsx.snap | 1 + .../browser-internal/src/i18n_eui_mapping.tsx | 4 + yarn.lock | 78 +++++-------------- 4 files changed, 26 insertions(+), 61 deletions(-) diff --git a/package.json b/package.json index 5946b57c05242..e1f142b4875e2 100644 --- a/package.json +++ b/package.json @@ -141,8 +141,8 @@ "@elastic/elasticsearch": "9.3.4", "@elastic/ems-client": "8.6.3", "@elastic/esql": "1.7.0", - "@elastic/eui": "113.3.0", - "@elastic/eui-theme-borealis": "6.2.0", + "@elastic/eui": "114.0.0", + "@elastic/eui-theme-borealis": "7.0.0", "@elastic/filesaver": "1.1.2", "@elastic/kibana-d3-color": "npm:@elastic/kibana-d3-color@2.0.1", "@elastic/monaco-esql": "3.2.2", diff --git a/src/core/packages/i18n/browser-internal/src/__snapshots__/i18n_service.test.tsx.snap b/src/core/packages/i18n/browser-internal/src/__snapshots__/i18n_service.test.tsx.snap index 8065292e03733..84758fc577fea 100644 --- a/src/core/packages/i18n/browser-internal/src/__snapshots__/i18n_service.test.tsx.snap +++ b/src/core/packages/i18n/browser-internal/src/__snapshots__/i18n_service.test.tsx.snap @@ -34,6 +34,7 @@ exports[`#start() returns \`Context\` component 1`] = ` \\"euiCollapsibleNavKibanaSolution.switcherAriaLabel\\": \\"- click to switch to another solution\\", \\"euiCollapsibleNavKibanaSolution.groupLabel\\": \\"Navigate to solution\\", \\"euiColorPicker.alphaLabel\\": \\"Alpha channel (opacity) value\\", + \\"euiColorPicker.ariaLabel\\": \\"Select a color\\", \\"euiColorPicker.colorLabel\\": \\"Color value\\", \\"euiColorPicker.colorErrorMessage\\": \\"Invalid color value\\", \\"euiColorPicker.transparent\\": \\"Transparent\\", diff --git a/src/core/packages/i18n/browser-internal/src/i18n_eui_mapping.tsx b/src/core/packages/i18n/browser-internal/src/i18n_eui_mapping.tsx index 013d3a2aa0542..d4fb0165ad0c4 100644 --- a/src/core/packages/i18n/browser-internal/src/i18n_eui_mapping.tsx +++ b/src/core/packages/i18n/browser-internal/src/i18n_eui_mapping.tsx @@ -213,6 +213,10 @@ export const getEuiContextMapping = (): EuiTokensObject => { defaultMessage: 'Alpha channel (opacity) value', description: 'Label describing color alpha channel', }), + 'euiColorPicker.ariaLabel': i18n.translate('core.euiColorPicker.ariaLabel', { + defaultMessage: 'Select a color', + description: 'ARIA label for the color picker button', + }), 'euiColorPicker.colorLabel': i18n.translate('core.euiColorPicker.colorLabel', { defaultMessage: 'Color value', }), diff --git a/yarn.lock b/yarn.lock index 64d3ef663b984..fe0a0c5702f81 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2391,29 +2391,29 @@ tree-dump "1.1.0" tslib "2.8.1" -"@elastic/eui-theme-borealis@6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@elastic/eui-theme-borealis/-/eui-theme-borealis-6.2.0.tgz#85d0477559be21f06a6e3a09527b30b6c9060d0b" - integrity sha512-SdUMAQt7dGIqVzNsIReRuG8LVdxsLHeqranjglkKgwbDAytuyTY8NmRDUva38HkI3ElVKfRP06aUFTmosaOCMA== +"@elastic/eui-theme-borealis@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@elastic/eui-theme-borealis/-/eui-theme-borealis-7.0.0.tgz#31ce6eabacb51a29f0dd159ad2b34f7dfbb9acd7" + integrity sha512-UiwpCmMxx7fWosNUi2JMnR+bAQBppHHOI0lIfLBrP7uYqDg+3JFV5Mhg8Wc3kdfaxoVaW1/IUMmLxJ5eTulSnA== dependencies: - "@elastic/eui-theme-common" "8.1.0" + "@elastic/eui-theme-common" "9.0.0" chroma-js "^2.4.2" -"@elastic/eui-theme-common@8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@elastic/eui-theme-common/-/eui-theme-common-8.1.0.tgz#85428f7ddb3af96e111baa3b27e38d22663f400f" - integrity sha512-zSmSiCJuXn8eGi5txqP0a+MorJS2YBav9vuzz41ngo9Rwedmm9opvyjOMbz8f5SrXjE6tt6gl25pundY79OMsQ== +"@elastic/eui-theme-common@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@elastic/eui-theme-common/-/eui-theme-common-9.0.0.tgz#df57056b2195c24fb32eff1eaa60c67483da8c68" + integrity sha512-0Vxu6coC2KccsU3HLPhDhqJam0PCwyVZpqS9hJ65mFst/jutVYVx8RBKNGq10R2qr0wgO20aJLA5OzaniJ56/A== dependencies: "@types/lodash" "^4.14.202" chroma-js "^2.4.2" lodash "^4.17.21" -"@elastic/eui@113.3.0": - version "113.3.0" - resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-113.3.0.tgz#8c95f606d0bfa22e52b15d82ecbea2826d137ab9" - integrity sha512-fscElzkTj5Wbl+d+SuBRDrClCVqVbdPLictzh7uG5lXZm3TOficYt/CrXMqO9NwiPcmFzIy7IgMpDCTkKaJ0hg== +"@elastic/eui@114.0.0": + version "114.0.0" + resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-114.0.0.tgz#643f0020d7d00cd8ec8fa2e66f1435f21eca6a09" + integrity sha512-wozSyxPpDTM5oMoldWBds6NdjCa+nf0FilTl0BoL3rgYaEGGvbEg3rWR7ff2P7SKWI40GPbKE6pGCaX66swq7A== dependencies: - "@elastic/eui-theme-common" "8.1.0" + "@elastic/eui-theme-common" "9.0.0" "@elastic/prismjs-esql" "^1.1.2" "@hello-pangea/dnd" "^16.6.0" "@types/lodash" "^4.14.202" @@ -2455,7 +2455,7 @@ resolved "https://registry.yarnpkg.com/@elastic/filesaver/-/filesaver-1.1.2.tgz#1998ffb3cd89c9da4ec12a7793bfcae10e30c77a" integrity sha512-YZbSufYFBhAj+S2cJgiKALoxIJevqXN2MSr6Yqr42rJdaPuM31cj6pUDwflkql1oDjupqD9la+MfxPFjXI1JFQ== -"@elastic/kibana-d3-color@npm:@elastic/kibana-d3-color@2.0.1": +"@elastic/kibana-d3-color@npm:@elastic/kibana-d3-color@2.0.1", "d3-color@1 - 2", "d3-color@npm:@elastic/kibana-d3-color@2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@elastic/kibana-d3-color/-/kibana-d3-color-2.0.1.tgz#f83b9c2fea09273a918659de04d5e8098c82f65c" integrity sha512-YZ8hV2bWNyYi833Yj3UWczmTxdHzmo/Xc2IVkNXr/ZqtkrTDlTLysCyJm7SfAt9iBy6EVRGWTn8cPz8QOY6Ixw== @@ -12124,7 +12124,7 @@ resolved "https://registry.yarnpkg.com/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz#5ff4b704af6a8b108f9d577fd87cf73e9e7b3178" integrity sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw== -"@redocly/ajv@^8.11.2", "@redocly/ajv@^8.18.0": +"@redocly/ajv@^8.11.2", "@redocly/ajv@^8.18.0", "ajv@npm:@redocly/ajv@8.18.0": version "8.18.0" resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.18.0.tgz#e6c7ba549111838baa950bc31acbc84b06f0239f" integrity sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA== @@ -16142,16 +16142,6 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -"ajv@npm:@redocly/ajv@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.18.0.tgz#e6c7ba549111838baa950bc31acbc84b06f0239f" - integrity sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - anser@^2.1.1: version "2.3.2" resolved "https://registry.yarnpkg.com/anser/-/anser-2.3.2.tgz#e2da9d10759a4243a5819595f4f46ec369970c5b" @@ -19257,11 +19247,6 @@ d3-collection@^1.0.7: resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== -"d3-color@1 - 2", "d3-color@npm:@elastic/kibana-d3-color@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@elastic/kibana-d3-color/-/kibana-d3-color-2.0.1.tgz#f83b9c2fea09273a918659de04d5e8098c82f65c" - integrity sha512-YZ8hV2bWNyYi833Yj3UWczmTxdHzmo/Xc2IVkNXr/ZqtkrTDlTLysCyJm7SfAt9iBy6EVRGWTn8cPz8QOY6Ixw== - "d3-color@1 - 3", d3-color@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" @@ -32812,7 +32797,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -32830,15 +32815,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -32939,14 +32915,7 @@ stringify-object@^3.2.1: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -35738,7 +35707,7 @@ workerpool@^6.5.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -35764,15 +35733,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 6188286e5737fd38e8b77c21ca53c043a02930da Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Wed, 25 Mar 2026 09:17:02 +0100 Subject: [PATCH 02/16] Update @elastic/eslint-plugin-eui --- package.json | 2 +- .../kbn-ui-shared-deps-npm/version_dependencies.txt | 6 +++--- yarn.lock | 9 +++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index e1f142b4875e2..8be1ddf4e34b9 100644 --- a/package.json +++ b/package.json @@ -1568,7 +1568,7 @@ "@cypress/debugging-proxy": "2.0.1", "@cypress/grep": "5.1.0", "@cypress/webpack-preprocessor": "6.0.2", - "@elastic/eslint-plugin-eui": "2.10.0", + "@elastic/eslint-plugin-eui": "2.11.0", "@elastic/makelogs": "6.1.1", "@emotion/babel-preset-css-prop": "11.11.0", "@emotion/jest": "11.11.0", diff --git a/src/platform/packages/private/kbn-ui-shared-deps-npm/version_dependencies.txt b/src/platform/packages/private/kbn-ui-shared-deps-npm/version_dependencies.txt index 82356d9cba972..5ab70ce3cfaed 100644 --- a/src/platform/packages/private/kbn-ui-shared-deps-npm/version_dependencies.txt +++ b/src/platform/packages/private/kbn-ui-shared-deps-npm/version_dependencies.txt @@ -16,9 +16,9 @@ @elastic/apm-rum-core@5.25.1 @elastic/charts@71.3.0 @elastic/esql@1.7.0 -@elastic/eui-theme-borealis@6.2.0 -@elastic/eui-theme-common@8.1.0 -@elastic/eui@113.3.0 +@elastic/eui-theme-borealis@7.0.0 +@elastic/eui-theme-common@9.0.0 +@elastic/eui@114.0.0 @elastic/numeral@2.5.1 @elastic/prismjs-esql@1.1.2 @emotion/babel-plugin@11.13.5 diff --git a/yarn.lock b/yarn.lock index fe0a0c5702f81..190f9a8a56e07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2377,10 +2377,10 @@ semver "^7.6.3" topojson-client "^3.1.0" -"@elastic/eslint-plugin-eui@2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-2.10.0.tgz#e03738608457dfa1718394e51eb6879a00586d6e" - integrity sha512-kVk1YOZZt3QaSMfQ+pXM+xAQLtAmsDqTW5YL17SsKZUUX6YKsF4s1GS2szwrx2Q/UAyaaxmtOSn4RM/qopUbvw== +"@elastic/eslint-plugin-eui@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-2.11.0.tgz#27abb0d3a86879f7629f0aef24342bf3359ec3d4" + integrity sha512-P+1njt18ong32ucBiXI3+c0/sKjoX3ffsArcHhmsJW5y9+rvdzZ9rtgWLtRhhtJnpiBI0fyDabEff/ISCU7tZg== "@elastic/esql@1.7.0": version "1.7.0" @@ -12125,6 +12125,7 @@ integrity sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw== "@redocly/ajv@^8.11.2", "@redocly/ajv@^8.18.0", "ajv@npm:@redocly/ajv@8.18.0": + name ajv version "8.18.0" resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.18.0.tgz#e6c7ba549111838baa950bc31acbc84b06f0239f" integrity sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA== From 0835cd544fda4a323d1d2931cec64e10a6375f4b Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Wed, 25 Mar 2026 15:15:20 +0100 Subject: [PATCH 03/16] [Security Plugin] Update snapshots related to https://github.com/elastic/eui/pull/9507 --- .../__snapshots__/login_form.test.tsx.snap | 23 ------------------- .../collapsible_panel.test.tsx.snap | 23 ------------------- .../simple_privilege_section.test.tsx.snap | 23 ------------------- 3 files changed, 69 deletions(-) diff --git a/x-pack/platform/plugins/shared/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap b/x-pack/platform/plugins/shared/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap index dce51fca5ece0..ddf23d9b477a8 100644 --- a/x-pack/platform/plugins/shared/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap +++ b/x-pack/platform/plugins/shared/security/public/authentication/login/components/login_form/__snapshots__/login_form.test.tsx.snap @@ -243,7 +243,6 @@ exports[`LoginForm renders as expected 1`] = ` "primary": "#61A2FF", "primaryText": "#61A2FF", "severity": Object { - "assistance": "#B386F9", "danger": "#EE4C48", "neutral": "#B5E5F2", "risk": "#FF995E", @@ -276,8 +275,6 @@ exports[`LoginForm renders as expected 1`] = ` "vis": Object { "euiColorVis0": "#16C5C0", "euiColorVis1": "#A6EDEA", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#61A2FF", "euiColorVis3": "#BFDBFF", "euiColorVis4": "#EE72A6", @@ -286,12 +283,9 @@ exports[`LoginForm renders as expected 1`] = ` "euiColorVis7": "#FFC9C2", "euiColorVis8": "#EAAE01", "euiColorVis9": "#FCD883", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#16C5C0", "euiColorVisBehindText1": "#A6EDEA", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#61A2FF", "euiColorVisBehindText3": "#BFDBFF", "euiColorVisBehindText4": "#EE72A6", @@ -319,8 +313,6 @@ exports[`LoginForm renders as expected 1`] = ` "euiColorVisSuccess1": "#AEE8D2", "euiColorVisText0": "#16C5C0", "euiColorVisText1": "#A6EDEA", - "euiColorVisText10": "#B386F9", - "euiColorVisText11": "#E2D3FE", "euiColorVisText2": "#61A2FF", "euiColorVisText3": "#BFDBFF", "euiColorVisText4": "#EE72A6", @@ -441,7 +433,6 @@ exports[`LoginForm renders as expected 1`] = ` "primary": "#0B64DD", "primaryText": "#1750BA", "severity": Object { - "assistance": "#B386F9", "danger": "#EE4C48", "neutral": "#B5E5F2", "risk": "#FF995E", @@ -474,8 +465,6 @@ exports[`LoginForm renders as expected 1`] = ` "vis": Object { "euiColorVis0": "#16C5C0", "euiColorVis1": "#A6EDEA", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#61A2FF", "euiColorVis3": "#BFDBFF", "euiColorVis4": "#EE72A6", @@ -484,12 +473,9 @@ exports[`LoginForm renders as expected 1`] = ` "euiColorVis7": "#FFC9C2", "euiColorVis8": "#EAAE01", "euiColorVis9": "#FCD883", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#16C5C0", "euiColorVisBehindText1": "#A6EDEA", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#61A2FF", "euiColorVisBehindText3": "#BFDBFF", "euiColorVisBehindText4": "#EE72A6", @@ -517,8 +503,6 @@ exports[`LoginForm renders as expected 1`] = ` "euiColorVisSuccess1": "#AEE8D2", "euiColorVisText0": "#065B58", "euiColorVisText1": "#047471", - "euiColorVisText10": "#52357E", - "euiColorVisText11": "#8144CC", "euiColorVisText2": "#154399", "euiColorVisText3": "#0B64DD", "euiColorVisText4": "#A11262", @@ -2359,8 +2343,6 @@ exports[`LoginForm renders as expected 1`] = ` "vis": Object { "euiColorVis0": "#065B58", "euiColorVis1": "#009E99", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#154399", "euiColorVis3": "#2476F0", "euiColorVis4": "#831652", @@ -2369,12 +2351,9 @@ exports[`LoginForm renders as expected 1`] = ` "euiColorVis7": "#DA3737", "euiColorVis8": "#6A4906", "euiColorVis9": "#AD7E00", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#065B58", "euiColorVisBehindText1": "#009E99", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#154399", "euiColorVisBehindText3": "#2476F0", "euiColorVisBehindText4": "#831652", @@ -2402,8 +2381,6 @@ exports[`LoginForm renders as expected 1`] = ` "euiColorVisSuccess1": "#00996B", "euiColorVisText0": "#065B58", "euiColorVisText1": "#047471", - "euiColorVisText10": "#52357E", - "euiColorVisText11": "#8144CC", "euiColorVisText2": "#154399", "euiColorVisText3": "#0B64DD", "euiColorVisText4": "#A11262", diff --git a/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/collapsible_panel/__snapshots__/collapsible_panel.test.tsx.snap b/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/collapsible_panel/__snapshots__/collapsible_panel.test.tsx.snap index 2745a63780676..5e81ca575740a 100644 --- a/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/collapsible_panel/__snapshots__/collapsible_panel.test.tsx.snap +++ b/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/collapsible_panel/__snapshots__/collapsible_panel.test.tsx.snap @@ -195,7 +195,6 @@ exports[`it renders without blowing up 1`] = ` "primary": "#61A2FF", "primaryText": "#61A2FF", "severity": Object { - "assistance": "#B386F9", "danger": "#EE4C48", "neutral": "#B5E5F2", "risk": "#FF995E", @@ -228,8 +227,6 @@ exports[`it renders without blowing up 1`] = ` "vis": Object { "euiColorVis0": "#16C5C0", "euiColorVis1": "#A6EDEA", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#61A2FF", "euiColorVis3": "#BFDBFF", "euiColorVis4": "#EE72A6", @@ -238,12 +235,9 @@ exports[`it renders without blowing up 1`] = ` "euiColorVis7": "#FFC9C2", "euiColorVis8": "#EAAE01", "euiColorVis9": "#FCD883", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#16C5C0", "euiColorVisBehindText1": "#A6EDEA", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#61A2FF", "euiColorVisBehindText3": "#BFDBFF", "euiColorVisBehindText4": "#EE72A6", @@ -271,8 +265,6 @@ exports[`it renders without blowing up 1`] = ` "euiColorVisSuccess1": "#AEE8D2", "euiColorVisText0": "#16C5C0", "euiColorVisText1": "#A6EDEA", - "euiColorVisText10": "#B386F9", - "euiColorVisText11": "#E2D3FE", "euiColorVisText2": "#61A2FF", "euiColorVisText3": "#BFDBFF", "euiColorVisText4": "#EE72A6", @@ -393,7 +385,6 @@ exports[`it renders without blowing up 1`] = ` "primary": "#0B64DD", "primaryText": "#1750BA", "severity": Object { - "assistance": "#B386F9", "danger": "#EE4C48", "neutral": "#B5E5F2", "risk": "#FF995E", @@ -426,8 +417,6 @@ exports[`it renders without blowing up 1`] = ` "vis": Object { "euiColorVis0": "#16C5C0", "euiColorVis1": "#A6EDEA", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#61A2FF", "euiColorVis3": "#BFDBFF", "euiColorVis4": "#EE72A6", @@ -436,12 +425,9 @@ exports[`it renders without blowing up 1`] = ` "euiColorVis7": "#FFC9C2", "euiColorVis8": "#EAAE01", "euiColorVis9": "#FCD883", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#16C5C0", "euiColorVisBehindText1": "#A6EDEA", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#61A2FF", "euiColorVisBehindText3": "#BFDBFF", "euiColorVisBehindText4": "#EE72A6", @@ -469,8 +455,6 @@ exports[`it renders without blowing up 1`] = ` "euiColorVisSuccess1": "#AEE8D2", "euiColorVisText0": "#065B58", "euiColorVisText1": "#047471", - "euiColorVisText10": "#52357E", - "euiColorVisText11": "#8144CC", "euiColorVisText2": "#154399", "euiColorVisText3": "#0B64DD", "euiColorVisText4": "#A11262", @@ -2311,8 +2295,6 @@ exports[`it renders without blowing up 1`] = ` "vis": Object { "euiColorVis0": "#065B58", "euiColorVis1": "#009E99", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#154399", "euiColorVis3": "#2476F0", "euiColorVis4": "#831652", @@ -2321,12 +2303,9 @@ exports[`it renders without blowing up 1`] = ` "euiColorVis7": "#DA3737", "euiColorVis8": "#6A4906", "euiColorVis9": "#AD7E00", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#065B58", "euiColorVisBehindText1": "#009E99", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#154399", "euiColorVisBehindText3": "#2476F0", "euiColorVisBehindText4": "#831652", @@ -2354,8 +2333,6 @@ exports[`it renders without blowing up 1`] = ` "euiColorVisSuccess1": "#00996B", "euiColorVisText0": "#065B58", "euiColorVisText1": "#047471", - "euiColorVisText10": "#52357E", - "euiColorVisText11": "#8144CC", "euiColorVisText2": "#154399", "euiColorVisText3": "#0B64DD", "euiColorVisText4": "#A11262", diff --git a/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/privileges/kibana/simple_privilege_section/__snapshots__/simple_privilege_section.test.tsx.snap b/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/privileges/kibana/simple_privilege_section/__snapshots__/simple_privilege_section.test.tsx.snap index 5c06774684591..1a73b4d81d5ec 100644 --- a/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/privileges/kibana/simple_privilege_section/__snapshots__/simple_privilege_section.test.tsx.snap +++ b/x-pack/platform/plugins/shared/security/public/management/roles/edit_role/privileges/kibana/simple_privilege_section/__snapshots__/simple_privilege_section.test.tsx.snap @@ -195,7 +195,6 @@ exports[` renders without crashing 1`] = ` "primary": "#61A2FF", "primaryText": "#61A2FF", "severity": Object { - "assistance": "#B386F9", "danger": "#EE4C48", "neutral": "#B5E5F2", "risk": "#FF995E", @@ -228,8 +227,6 @@ exports[` renders without crashing 1`] = ` "vis": Object { "euiColorVis0": "#16C5C0", "euiColorVis1": "#A6EDEA", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#61A2FF", "euiColorVis3": "#BFDBFF", "euiColorVis4": "#EE72A6", @@ -238,12 +235,9 @@ exports[` renders without crashing 1`] = ` "euiColorVis7": "#FFC9C2", "euiColorVis8": "#EAAE01", "euiColorVis9": "#FCD883", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#16C5C0", "euiColorVisBehindText1": "#A6EDEA", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#61A2FF", "euiColorVisBehindText3": "#BFDBFF", "euiColorVisBehindText4": "#EE72A6", @@ -271,8 +265,6 @@ exports[` renders without crashing 1`] = ` "euiColorVisSuccess1": "#AEE8D2", "euiColorVisText0": "#16C5C0", "euiColorVisText1": "#A6EDEA", - "euiColorVisText10": "#B386F9", - "euiColorVisText11": "#E2D3FE", "euiColorVisText2": "#61A2FF", "euiColorVisText3": "#BFDBFF", "euiColorVisText4": "#EE72A6", @@ -393,7 +385,6 @@ exports[` renders without crashing 1`] = ` "primary": "#0B64DD", "primaryText": "#1750BA", "severity": Object { - "assistance": "#B386F9", "danger": "#EE4C48", "neutral": "#B5E5F2", "risk": "#FF995E", @@ -426,8 +417,6 @@ exports[` renders without crashing 1`] = ` "vis": Object { "euiColorVis0": "#16C5C0", "euiColorVis1": "#A6EDEA", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#61A2FF", "euiColorVis3": "#BFDBFF", "euiColorVis4": "#EE72A6", @@ -436,12 +425,9 @@ exports[` renders without crashing 1`] = ` "euiColorVis7": "#FFC9C2", "euiColorVis8": "#EAAE01", "euiColorVis9": "#FCD883", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#16C5C0", "euiColorVisBehindText1": "#A6EDEA", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#61A2FF", "euiColorVisBehindText3": "#BFDBFF", "euiColorVisBehindText4": "#EE72A6", @@ -469,8 +455,6 @@ exports[` renders without crashing 1`] = ` "euiColorVisSuccess1": "#AEE8D2", "euiColorVisText0": "#065B58", "euiColorVisText1": "#047471", - "euiColorVisText10": "#52357E", - "euiColorVisText11": "#8144CC", "euiColorVisText2": "#154399", "euiColorVisText3": "#0B64DD", "euiColorVisText4": "#A11262", @@ -2311,8 +2295,6 @@ exports[` renders without crashing 1`] = ` "vis": Object { "euiColorVis0": "#065B58", "euiColorVis1": "#009E99", - "euiColorVis10": "#B386F9", - "euiColorVis11": "#E2D3FE", "euiColorVis2": "#154399", "euiColorVis3": "#2476F0", "euiColorVis4": "#831652", @@ -2321,12 +2303,9 @@ exports[` renders without crashing 1`] = ` "euiColorVis7": "#DA3737", "euiColorVis8": "#6A4906", "euiColorVis9": "#AD7E00", - "euiColorVisAssistance": "#B386F9", "euiColorVisBase0": "#F6F9FC", "euiColorVisBehindText0": "#065B58", "euiColorVisBehindText1": "#009E99", - "euiColorVisBehindText10": "#B386F9", - "euiColorVisBehindText11": "#E2D3FE", "euiColorVisBehindText2": "#154399", "euiColorVisBehindText3": "#2476F0", "euiColorVisBehindText4": "#831652", @@ -2354,8 +2333,6 @@ exports[` renders without crashing 1`] = ` "euiColorVisSuccess1": "#00996B", "euiColorVisText0": "#065B58", "euiColorVisText1": "#047471", - "euiColorVisText10": "#52357E", - "euiColorVisText11": "#8144CC", "euiColorVisText2": "#154399", "euiColorVisText3": "#0B64DD", "euiColorVisText4": "#A11262", From 19a0b33057b202caf27900a4df544a28576ce787 Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Wed, 25 Mar 2026 16:13:44 +0100 Subject: [PATCH 04/16] [Discover][Scout] Fix flyout tests related to new scoped history see https://github.com/elastic/eui/pull/9413 --- .../src/playwright/page_objects/overlays.ts | 9 +++++++++ .../traces_experience/page_objects/flyout.ts | 4 ++++ .../flyout_stability/flyout_emotion_cache.spec.ts | 12 ++++++++---- .../traces_experience/overview_tab_usage.spec.ts | 4 ++-- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts b/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts index cbac75555c71b..005c45f29f360 100644 --- a/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts +++ b/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts @@ -31,6 +31,10 @@ export class OverlaysPage { .locator('[data-test-subj="euiFlyoutCloseButton"]'); } + public get docViewerFlyoutCloseButton() { + return this.docViewerFlyout.locator('[data-test-subj="euiFlyoutCloseButton"]'); + } + public async openNewsfeedFlyout() { await this.newsfeedButton.click(); await expect(this.newsfeedFlyout).toBeVisible(); @@ -40,4 +44,9 @@ export class OverlaysPage { await this.newsfeedFlyoutCloseButton.click(); await expect(this.newsfeedFlyout).toBeHidden(); } + + public async closeDocViewerFlyout() { + await this.docViewerFlyoutCloseButton.click(); + await expect(this.docViewerFlyout).toBeHidden(); + } } diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts index 114afe1a1b161..503a7f4e85b13 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts @@ -50,7 +50,10 @@ export interface TracesFlyout { readonly waterfallFlyout: { readonly container: Locator; + /** Present when managed flyout history has entries (e.g. after opening a nested doc flyout). */ readonly backButton: Locator; + /** Always present on managed flyouts; use to dismiss the timeline when Back is hidden (EUI 114+ scoped history). */ + readonly closeButton: Locator; getWaterfallItem(name: string): { readonly row: Locator; readonly content: Locator; @@ -132,6 +135,7 @@ export function createTracesFlyout(page: ScoutPage): TracesFlyout { return { container: timelineFlyout, backButton: timelineFlyout.locator('[data-test-subj="euiFlyoutMenuBackButton"]'), + closeButton: timelineFlyout.locator('[data-test-subj="euiFlyoutCloseButton"]'), getWaterfallItem(name: string) { const row = timelineFlyout .locator('[data-test-subj="traceItemRowWrapper"]') diff --git a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts index 535a2e691f60a..094e51ede888d 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts @@ -45,10 +45,14 @@ spaceTest.describe('Flyout system Emotion cache stability', { tag: tags.stateful await pageObjects.overlays.openNewsfeedFlyout(); }); - await spaceTest.step('close the second flyout, triggering a cascade close', async () => { - await pageObjects.overlays.closeNewsfeedFlyout(); - await expect(pageObjects.overlays.docViewerFlyout).toBeHidden(); - }); + await spaceTest.step( + 'close stacked flyouts (EUI scoped history: closing one group does not close others)', + async () => { + await pageObjects.overlays.closeNewsfeedFlyout(); + await expect(pageObjects.overlays.docViewerFlyout).toBeVisible(); + await pageObjects.overlays.closeDocViewerFlyout(); + } + ); await spaceTest.step('open a new flyout after the cascade close', async () => { await pageObjects.discover.openDocumentDetails({ rowIndex: 0 }); diff --git a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts index 3fb29184b6351..04701d78eeae8 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts @@ -166,7 +166,7 @@ spaceTest.describe( async () => { await flyout.traceSummary.waterfallClickArea.click(); await expect(flyout.waterfallFlyout.container).toBeVisible(); - await flyout.waterfallFlyout.backButton.click(); + await flyout.waterfallFlyout.closeButton.click(); await expect(flyout.waterfallFlyout.container).toBeHidden(); } ); @@ -176,7 +176,7 @@ spaceTest.describe( async () => { await flyout.traceSummary.fullScreenButton.click(); await expect(flyout.waterfallFlyout.container).toBeVisible(); - await flyout.waterfallFlyout.backButton.click(); + await flyout.waterfallFlyout.closeButton.click(); await expect(flyout.waterfallFlyout.container).toBeHidden(); } ); From 1e7c21454b25737480af22bfe2ae7fa035adc8b9 Mon Sep 17 00:00:00 2001 From: Timothy Sullivan Date: Wed, 25 Mar 2026 12:02:56 -0700 Subject: [PATCH 05/16] Revert "[Discover][Scout] Fix flyout tests related to new scoped history" This reverts commit ed8273b2dcc0c6db67c775406f176b27174b48b2. --- .../src/playwright/page_objects/overlays.ts | 9 --------- .../traces_experience/page_objects/flyout.ts | 4 ---- .../flyout_stability/flyout_emotion_cache.spec.ts | 12 ++++-------- .../traces_experience/overview_tab_usage.spec.ts | 4 ++-- 4 files changed, 6 insertions(+), 23 deletions(-) diff --git a/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts b/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts index 005c45f29f360..cbac75555c71b 100644 --- a/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts +++ b/src/platform/packages/shared/kbn-scout/src/playwright/page_objects/overlays.ts @@ -31,10 +31,6 @@ export class OverlaysPage { .locator('[data-test-subj="euiFlyoutCloseButton"]'); } - public get docViewerFlyoutCloseButton() { - return this.docViewerFlyout.locator('[data-test-subj="euiFlyoutCloseButton"]'); - } - public async openNewsfeedFlyout() { await this.newsfeedButton.click(); await expect(this.newsfeedFlyout).toBeVisible(); @@ -44,9 +40,4 @@ export class OverlaysPage { await this.newsfeedFlyoutCloseButton.click(); await expect(this.newsfeedFlyout).toBeHidden(); } - - public async closeDocViewerFlyout() { - await this.docViewerFlyoutCloseButton.click(); - await expect(this.docViewerFlyout).toBeHidden(); - } } diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts index 503a7f4e85b13..114afe1a1b161 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/flyout.ts @@ -50,10 +50,7 @@ export interface TracesFlyout { readonly waterfallFlyout: { readonly container: Locator; - /** Present when managed flyout history has entries (e.g. after opening a nested doc flyout). */ readonly backButton: Locator; - /** Always present on managed flyouts; use to dismiss the timeline when Back is hidden (EUI 114+ scoped history). */ - readonly closeButton: Locator; getWaterfallItem(name: string): { readonly row: Locator; readonly content: Locator; @@ -135,7 +132,6 @@ export function createTracesFlyout(page: ScoutPage): TracesFlyout { return { container: timelineFlyout, backButton: timelineFlyout.locator('[data-test-subj="euiFlyoutMenuBackButton"]'), - closeButton: timelineFlyout.locator('[data-test-subj="euiFlyoutCloseButton"]'), getWaterfallItem(name: string) { const row = timelineFlyout .locator('[data-test-subj="traceItemRowWrapper"]') diff --git a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts index 094e51ede888d..535a2e691f60a 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts @@ -45,14 +45,10 @@ spaceTest.describe('Flyout system Emotion cache stability', { tag: tags.stateful await pageObjects.overlays.openNewsfeedFlyout(); }); - await spaceTest.step( - 'close stacked flyouts (EUI scoped history: closing one group does not close others)', - async () => { - await pageObjects.overlays.closeNewsfeedFlyout(); - await expect(pageObjects.overlays.docViewerFlyout).toBeVisible(); - await pageObjects.overlays.closeDocViewerFlyout(); - } - ); + await spaceTest.step('close the second flyout, triggering a cascade close', async () => { + await pageObjects.overlays.closeNewsfeedFlyout(); + await expect(pageObjects.overlays.docViewerFlyout).toBeHidden(); + }); await spaceTest.step('open a new flyout after the cascade close', async () => { await pageObjects.discover.openDocumentDetails({ rowIndex: 0 }); diff --git a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts index 04701d78eeae8..3fb29184b6351 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/overview_tab_usage.spec.ts @@ -166,7 +166,7 @@ spaceTest.describe( async () => { await flyout.traceSummary.waterfallClickArea.click(); await expect(flyout.waterfallFlyout.container).toBeVisible(); - await flyout.waterfallFlyout.closeButton.click(); + await flyout.waterfallFlyout.backButton.click(); await expect(flyout.waterfallFlyout.container).toBeHidden(); } ); @@ -176,7 +176,7 @@ spaceTest.describe( async () => { await flyout.traceSummary.fullScreenButton.click(); await expect(flyout.waterfallFlyout.container).toBeVisible(); - await flyout.waterfallFlyout.closeButton.click(); + await flyout.waterfallFlyout.backButton.click(); await expect(flyout.waterfallFlyout.container).toBeHidden(); } ); From 9a9528ec73a17bafd74e95349979e7c476ec5d3d Mon Sep 17 00:00:00 2001 From: Timothy Sullivan Date: Wed, 25 Mar 2026 12:42:56 -0700 Subject: [PATCH 06/16] wiring of historyKey for Traces Waterfall flyout --- .../doc_viewer_flyout/doc_viewer_flyout.tsx | 163 +++++++++--------- .../flyout_history_key_context.ts | 30 ++++ .../full_screen_waterfall/index.test.tsx | 33 ++-- .../full_screen_waterfall/index.tsx | 3 + 4 files changed, 138 insertions(+), 91 deletions(-) create mode 100644 src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx index 3bd0a0d5ff4c0..b867a6580b584 100644 --- a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx @@ -33,6 +33,7 @@ import useObservable from 'react-use/lib/useObservable'; import type { ChromeStart } from '@kbn/core/public'; import type { DocViewFilterFn, DocViewRenderProps } from '@kbn/unified-doc-viewer/types'; import type { DocViewerProps } from '@kbn/unified-doc-viewer'; +import { FlyoutHistoryKeyContext } from './flyout_history_key_context'; import { UnifiedDocViewer } from '../lazy_doc_viewer'; import { useFlyoutA11y } from './use_flyout_a11y'; @@ -256,87 +257,93 @@ export function UnifiedDocViewerFlyout({ const currentFlyoutTitle = flyoutTitle ?? defaultFlyoutTitle; const { a11yProps, screenReaderDescription } = useFlyoutA11y({ isXlScreen }); + // Shared history key for the EUI flyout manager: this symbol groups the + // Document Viewer flyout and any nested flyouts (e.g. Trace Waterfall) into + // the same back-button navigation history, enabling "Back" to return the user + // from the Trace Waterfall to the Document Viewer. + const historyKey = useMemo(() => Symbol('docViewerFlyout'), []); + return ( - - - {screenReaderDescription} - {renderSubheader && ( - <> - - {activePage !== -1 && ( - - - - )} - - {isEsqlQuery || !flyoutActions ? null : <>{flyoutActions}} - - - - - )} - - {renderCustomHeader && ( + + + + {screenReaderDescription} + {renderSubheader && ( <> - {renderCustomHeader(docViewRenderProps)} - + + {activePage !== -1 && ( + + + + )} + + {isEsqlQuery || !flyoutActions ? null : <>{flyoutActions}} + + + )} - - - {renderCustomFooter && ( - {renderCustomFooter(docViewRenderProps)} - )} - - + + {renderCustomHeader && ( + <> + {renderCustomHeader(docViewRenderProps)} + + + )} + + + + + ); } diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts new file mode 100644 index 0000000000000..443a2c635151e --- /dev/null +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { createContext, useContext } from 'react'; + +/** + * Provides the EUI flyout `historyKey` symbol shared between the Document Viewer + * flyout and any nested flyouts (e.g. Trace Waterfall) that should participate + * in the same back-button navigation history group. + * + * The context is provided by `UnifiedDocViewerFlyout` and consumed by + * `FullScreenWaterfall` so that the two flyouts share a history stack, + * enabling the "Back" button on the Trace Waterfall to return the user to + * the Document Viewer. + */ +export const FlyoutHistoryKeyContext = createContext(null); + +export const useFlyoutHistoryKey = () => { + const context = useContext(FlyoutHistoryKeyContext); + if (context === null) { + throw new Error('useFlyoutHistoryKey must be used within a FlyoutHistoryKeyContext.Provider'); + } + return context; +}; diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/observability/traces/components/full_screen_waterfall/index.test.tsx b/src/platform/plugins/shared/unified_doc_viewer/public/components/observability/traces/components/full_screen_waterfall/index.test.tsx index 5d03cd566ed37..abbaf94bf3bc2 100644 --- a/src/platform/plugins/shared/unified_doc_viewer/public/components/observability/traces/components/full_screen_waterfall/index.test.tsx +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/observability/traces/components/full_screen_waterfall/index.test.tsx @@ -18,6 +18,13 @@ import { import { setUnifiedDocViewerServices } from '../../../../../plugin'; import type { UnifiedDocViewerServices } from '../../../../../types'; import { mockUnifiedDocViewerServices } from '../../../../../__mocks__'; +import { FlyoutHistoryKeyContext } from '../../../../doc_viewer_flyout/flyout_history_key_context'; + +const testHistoryKey = Symbol('testHistoryKey'); +const renderWithHistoryKey = (ui: React.ReactElement) => + render( + {ui} + ); jest.mock('./waterfall_flyout/span_flyout', () => ({ spanFlyoutId: 'spanDetailFlyout', @@ -106,14 +113,14 @@ describe('FullScreenWaterfall', () => { }); it('should not display nested flyouts initially', () => { - render(); + renderWithHistoryKey(); expect(screen.queryByTestId('spanFlyout')).not.toBeInTheDocument(); expect(screen.queryByTestId('logsFlyout')).not.toBeInTheDocument(); }); it('delays rendering the full trace waterfall on standard open to preserve the flyout animation', () => { - render(); + renderWithHistoryKey(); expect(screen.queryByTestId('fullTraceWaterfall')).not.toBeInTheDocument(); @@ -126,7 +133,7 @@ describe('FullScreenWaterfall', () => { describe('when service name is undefined', () => { it('renders the full trace waterfall after the delay', () => { - render(); + renderWithHistoryKey(); act(() => { jest.advanceTimersByTime(FULL_TRACE_WATERFALL_RENDER_DELAY_MS); @@ -138,13 +145,13 @@ describe('FullScreenWaterfall', () => { describe('animation suppression', () => { it('renders the full trace waterfall immediately when restoring previously-open state', () => { - render(); + renderWithHistoryKey(); expect(screen.getByTestId('fullTraceWaterfall')).toBeInTheDocument(); }); it('injects a style scoped to traceWaterfallFlyout when skipOpenAnimation is true', () => { - render(); + renderWithHistoryKey(); const style = document.getElementById('flyout-skip-open-animation'); expect(style).toBeInTheDocument(); @@ -153,13 +160,13 @@ describe('FullScreenWaterfall', () => { }); it('does not inject the animation-suppression style when skipOpenAnimation is false', () => { - render(); + renderWithHistoryKey(); expect(document.getElementById('flyout-skip-open-animation')).not.toBeInTheDocument(); }); it('removes the animation-suppression style after the timeout', () => { - render(); + renderWithHistoryKey(); expect(document.getElementById('flyout-skip-open-animation')).toBeInTheDocument(); @@ -171,7 +178,7 @@ describe('FullScreenWaterfall', () => { }); it('passes the nested flyout test subject to the restored document flyout', () => { - render( + renderWithHistoryKey( { describe('highlight state management', () => { it('passes initial highlightedSpanId to FullTraceWaterfall', () => { - render( + renderWithHistoryKey( { }); it('updates highlightedSpanId when a node is clicked', () => { - render(); + renderWithHistoryKey(); act(() => { capturedWaterfallProps.onNodeClick?.('clicked-span'); @@ -212,7 +219,7 @@ describe('FullScreenWaterfall', () => { }); it('clears highlightedSpanId when the document flyout is closed', () => { - render( + renderWithHistoryKey( { }); it('sets highlightedSpanId to docId when onErrorClick fires with multiple errors', () => { - render(); + renderWithHistoryKey(); act(() => { capturedWaterfallProps.onErrorClick?.({ @@ -251,7 +258,7 @@ describe('FullScreenWaterfall', () => { }); it('clears highlightedSpanId when onErrorClick fires with a single error', () => { - render( + renderWithHistoryKey( { + const historyKey = useFlyoutHistoryKey(); const { analytics, discoverShared } = getUnifiedDocViewerServices(); const FullTraceWaterfall = discoverShared.features.registry.getById( 'observability-full-trace-waterfall' @@ -188,6 +190,7 @@ export const FullScreenWaterfall = ({ Date: Wed, 25 Mar 2026 13:24:03 -0700 Subject: [PATCH 07/16] Move cascade-close flyout stability test to Traces in Discover --- .../ui/fixtures/flyout_stability/constants.ts | 16 --- .../ui/fixtures/flyout_stability/index.ts | 11 -- .../kbn_archives/logstash_data_view.json | 15 --- .../ui/fixtures/flyout_stability/setup.ts | 27 ----- .../flyout_emotion_cache.spec.ts | 69 ----------- .../flyout_cascade_close.spec.ts | 110 ++++++++++++++++++ 6 files changed, 110 insertions(+), 138 deletions(-) delete mode 100644 src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/constants.ts delete mode 100644 src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/index.ts delete mode 100644 src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/kbn_archives/logstash_data_view.json delete mode 100644 src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/setup.ts delete mode 100644 src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts create mode 100644 src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/constants.ts b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/constants.ts deleted file mode 100644 index a8952d007f03c..0000000000000 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the "Elastic License - * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side - * Public License v 1"; you may not use this file except in compliance with, at - * your election, the "Elastic License 2.0", the "GNU Affero General Public - * License v3.0 only", or the "Server Side Public License, v 1". - */ - -export const LOGSTASH = { - DEFAULT_START_TIME: 'Sep 19, 2015 @ 06:31:44.000', - DEFAULT_END_TIME: 'Sep 23, 2015 @ 18:31:44.000', - DATA_VIEW_NAME: 'logstash-*', - KBN_ARCHIVE: - 'src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/kbn_archives/logstash_data_view.json', -}; diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/index.ts b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/index.ts deleted file mode 100644 index 48ca368ab9884..0000000000000 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the "Elastic License - * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side - * Public License v 1"; you may not use this file except in compliance with, at - * your election, the "Elastic License 2.0", the "GNU Affero General Public - * License v3.0 only", or the "Server Side Public License, v 1". - */ - -export { LOGSTASH } from './constants'; -export { setupFlyoutStability, teardownFlyoutStability } from './setup'; diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/kbn_archives/logstash_data_view.json b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/kbn_archives/logstash_data_view.json deleted file mode 100644 index 5bf476490dc1f..0000000000000 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/kbn_archives/logstash_data_view.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "attributes": { - "name": "logstash-*", - "timeFieldName": "@timestamp", - "title": "logstash-*" - }, - "coreMigrationVersion": "8.8.0", - "created_at": "2025-01-01T00:00:00.000Z", - "id": "logstash-data-view", - "managed": false, - "references": [], - "type": "index-pattern", - "typeMigrationVersion": "7.11.0", - "updated_at": "2025-01-01T00:00:00.000Z" -} diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/setup.ts b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/setup.ts deleted file mode 100644 index 2b24d296ab8a1..0000000000000 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/flyout_stability/setup.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the "Elastic License - * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side - * Public License v 1"; you may not use this file except in compliance with, at - * your election, the "Elastic License 2.0", the "GNU Affero General Public - * License v3.0 only", or the "Server Side Public License, v 1". - */ - -import type { ScoutParallelWorkerFixtures } from '@kbn/scout'; -import { LOGSTASH } from './constants'; - -export async function setupFlyoutStability(scoutSpace: ScoutParallelWorkerFixtures['scoutSpace']) { - await scoutSpace.savedObjects.load(LOGSTASH.KBN_ARCHIVE); - await scoutSpace.uiSettings.setDefaultIndex(LOGSTASH.DATA_VIEW_NAME); - await scoutSpace.uiSettings.setDefaultTime({ - from: LOGSTASH.DEFAULT_START_TIME, - to: LOGSTASH.DEFAULT_END_TIME, - }); -} - -export async function teardownFlyoutStability( - scoutSpace: ScoutParallelWorkerFixtures['scoutSpace'] -) { - await scoutSpace.uiSettings.unset('defaultIndex', 'timepicker:timeDefaults'); - await scoutSpace.savedObjects.cleanStandardList(); -} diff --git a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts deleted file mode 100644 index 535a2e691f60a..0000000000000 --- a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/flyout_stability/flyout_emotion_cache.spec.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the "Elastic License - * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side - * Public License v 1"; you may not use this file except in compliance with, at - * your election, the "Elastic License 2.0", the "GNU Affero General Public - * License v3.0 only", or the "Server Side Public License, v 1". - */ - -import { tags, spaceTest } from '@kbn/scout'; -import { expect } from '@kbn/scout/ui'; -import { setupFlyoutStability, teardownFlyoutStability } from '../../fixtures/flyout_stability'; - -spaceTest.describe('Flyout system Emotion cache stability', { tag: tags.stateful.classic }, () => { - spaceTest.beforeAll(async ({ scoutSpace }) => { - await setupFlyoutStability(scoutSpace); - }); - - spaceTest.beforeEach(async ({ browserAuth, pageObjects }) => { - await browserAuth.loginAsViewer(); - await pageObjects.discover.goto(); - }); - - spaceTest.afterAll(async ({ scoutSpace }) => { - await teardownFlyoutStability(scoutSpace); - }); - - spaceTest( - 'opening a flyout after a cascade close does not corrupt the Emotion style cache', - async ({ page, pageObjects }) => { - const consoleErrors: string[] = []; - page.on('console', (msg) => { - if (msg.type() === 'error') { - consoleErrors.push(msg.text()); - } - }); - - await spaceTest.step('open a document flyout', async () => { - await pageObjects.discover.waitUntilSearchingHasFinished(); - await pageObjects.discover.openDocumentDetails({ rowIndex: 0 }); - await expect(pageObjects.overlays.docViewerFlyout).toBeVisible(); - }); - - await spaceTest.step('open a second flyout from a different domain', async () => { - await pageObjects.overlays.openNewsfeedFlyout(); - }); - - await spaceTest.step('close the second flyout, triggering a cascade close', async () => { - await pageObjects.overlays.closeNewsfeedFlyout(); - await expect(pageObjects.overlays.docViewerFlyout).toBeHidden(); - }); - - await spaceTest.step('open a new flyout after the cascade close', async () => { - await pageObjects.discover.openDocumentDetails({ rowIndex: 0 }); - await expect(pageObjects.overlays.docViewerFlyout).toBeVisible(); - }); - - await spaceTest.step( - 'verify no insertBefore errors from stale Emotion cache refs', - async () => { - await expect(page.testSubj.locator('discoverDocumentsTable')).toBeVisible(); - - const hasInsertBeforeError = consoleErrors.some((msg) => msg.includes('insertBefore')); - expect(hasInsertBeforeError).toBe(false); - } - ); - } - ); -}); diff --git a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts new file mode 100644 index 0000000000000..8906078765c47 --- /dev/null +++ b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts @@ -0,0 +1,110 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { tags } from '@kbn/scout'; +import { expect } from '@kbn/scout/ui'; +import type { PageObjects } from '@kbn/scout'; +import { + spaceTest, + TRACES, + RICH_TRACE, + setupTracesExperience, + teardownTracesExperience, +} from '../../fixtures/traces_experience'; +import type { TracesFlyout } from '../../fixtures/traces_experience/page_objects/flyout'; + +type DiscoverPage = PageObjects['discover']; + +const openDocViewerAndTraceTimeline = async (pageObjects: { + discover: DiscoverPage; + tracesExperience: { + openOverviewTab: (d: DiscoverPage) => Promise; + flyout: TracesFlyout; + }; +}) => { + await pageObjects.discover.writeAndSubmitEsqlQuery( + `${TRACES.ESQL_QUERY} | WHERE transaction.name == "${RICH_TRACE.TRANSACTION_NAME}"` + ); + await pageObjects.tracesExperience.openOverviewTab(pageObjects.discover); + await pageObjects.tracesExperience.flyout.traceSummary.fullScreenButton.click(); + await expect(pageObjects.tracesExperience.flyout.waterfallFlyout.container).toBeVisible(); +}; + +spaceTest.describe( + 'Traces in Discover - Flyout cascade-close Emotion cache stability', + { + tag: [...tags.stateful.all, ...tags.serverless.observability.complete], + }, + () => { + spaceTest.beforeAll(async ({ scoutSpace, config }) => { + await setupTracesExperience(scoutSpace, config); + }); + + spaceTest.beforeEach(async ({ browserAuth, pageObjects, page }) => { + await browserAuth.loginAsViewer(); + await pageObjects.discover.goto(); + // Suppress the tour so it does not overlap the waterfall flyout interactions. + await page.evaluate(() => localStorage.setItem('fullscreenWaterfallTourDismissed', 'true')); + }); + + spaceTest.afterAll(async ({ scoutSpace }) => { + await teardownTracesExperience(scoutSpace); + }); + + spaceTest( + 'closing the Trace Timeline flyout navigates back to the Document Viewer without corrupting the Emotion style cache', + async ({ page, pageObjects }) => { + const { flyout } = pageObjects.tracesExperience; + const docViewerFlyout = page.testSubj.locator('docViewerFlyout'); + + const consoleErrors: string[] = []; + page.on('console', (msg) => { + if (msg.type() === 'error') { + consoleErrors.push(msg.text()); + } + }); + + await spaceTest.step( + 'open the Document Viewer and Trace Timeline flyouts', + async () => { + await pageObjects.discover.waitUntilSearchingHasFinished(); + await openDocViewerAndTraceTimeline(pageObjects); + } + ); + + await spaceTest.step( + 'close the Trace Timeline flyout via the Back button', + async () => { + await flyout.waterfallFlyout.backButton.click(); + await expect(flyout.waterfallFlyout.container).toBeHidden(); + // The Document Viewer remains visible — it was not cascade-closed because + // both flyouts share the same EUI flyout-manager historyKey. + await expect(docViewerFlyout).toBeVisible(); + } + ); + + await spaceTest.step( + 're-open the Trace Timeline flyout after navigating back', + async () => { + await flyout.traceSummary.fullScreenButton.click(); + await expect(flyout.waterfallFlyout.container).toBeVisible(); + } + ); + + await spaceTest.step( + 'verify no insertBefore errors from stale Emotion cache refs', + async () => { + const hasInsertBeforeError = consoleErrors.some((msg) => msg.includes('insertBefore')); + expect(hasInsertBeforeError).toBe(false); + } + ); + } + ); + } +); From bbb1dddbb1e3ea513a35d55ce944a931c0b919da Mon Sep 17 00:00:00 2001 From: Timothy Sullivan Date: Wed, 25 Mar 2026 14:02:38 -0700 Subject: [PATCH 08/16] =?UTF-8?q?Fix=20for=20'Explore=20from=20APM=20?= =?UTF-8?q?=E2=80=BA=20Errors=20page=20-=20"Open=20in=20Discover"'=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scout/ui/fixtures/traces_experience/page_objects/apm.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts index d6d0362abd3d3..bb801561fc4df 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts @@ -43,7 +43,7 @@ export function createApmPage(page: ScoutPage): ApmPage { ? page.testSubj.locator(tableTestSubj) : page.locator('table'); - await container.getByText(linkText).click(); + await container.getByText(linkText).first().click(); }, async clickWaterfallItem(itemName: string) { From 038cf560da11d7cc2240d212086a0c055c26772f Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Thu, 26 Mar 2026 09:33:44 +0000 Subject: [PATCH 09/16] Changes from node scripts/eslint_all_files --no-cache --fix --- .../flyout_cascade_close.spec.ts | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts index 8906078765c47..de20c5d036ab2 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/parallel_tests/traces_experience/flyout_cascade_close.spec.ts @@ -70,24 +70,18 @@ spaceTest.describe( } }); - await spaceTest.step( - 'open the Document Viewer and Trace Timeline flyouts', - async () => { - await pageObjects.discover.waitUntilSearchingHasFinished(); - await openDocViewerAndTraceTimeline(pageObjects); - } - ); + await spaceTest.step('open the Document Viewer and Trace Timeline flyouts', async () => { + await pageObjects.discover.waitUntilSearchingHasFinished(); + await openDocViewerAndTraceTimeline(pageObjects); + }); - await spaceTest.step( - 'close the Trace Timeline flyout via the Back button', - async () => { - await flyout.waterfallFlyout.backButton.click(); - await expect(flyout.waterfallFlyout.container).toBeHidden(); - // The Document Viewer remains visible — it was not cascade-closed because - // both flyouts share the same EUI flyout-manager historyKey. - await expect(docViewerFlyout).toBeVisible(); - } - ); + await spaceTest.step('close the Trace Timeline flyout via the Back button', async () => { + await flyout.waterfallFlyout.backButton.click(); + await expect(flyout.waterfallFlyout.container).toBeHidden(); + // The Document Viewer remains visible — it was not cascade-closed because + // both flyouts share the same EUI flyout-manager historyKey. + await expect(docViewerFlyout).toBeVisible(); + }); await spaceTest.step( 're-open the Trace Timeline flyout after navigating back', From b019a024a58ec46862c40631a88a588c3e2270e3 Mon Sep 17 00:00:00 2001 From: Arturo Castillo Delgado Date: Sun, 29 Mar 2026 07:58:24 +0200 Subject: [PATCH 10/16] =?UTF-8?q?Fix=20lint=20error=20in=20'Explore=20from?= =?UTF-8?q?=20APM=20=E2=80=BA=20Errors=20page=20-=20Open=20in=20Discover'?= =?UTF-8?q?=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scout/ui/fixtures/traces_experience/page_objects/apm.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts index bb801561fc4df..7bbb70df5f12e 100644 --- a/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts +++ b/src/platform/plugins/shared/discover/test/scout/ui/fixtures/traces_experience/page_objects/apm.ts @@ -43,7 +43,7 @@ export function createApmPage(page: ScoutPage): ApmPage { ? page.testSubj.locator(tableTestSubj) : page.locator('table'); - await container.getByText(linkText).first().click(); + await container.getByRole('link', { name: linkText }).click(); }, async clickWaterfallItem(itemName: string) { From 5f43e9db5aaf567063654f766a9ba45ff6fd3e4b Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 31 Mar 2026 14:40:33 +0000 Subject: [PATCH 11/16] TO FIX: Run node 'scripts/yarn_deduplicate && yarn kbn bootstrap' locally, or add an exception to src/dev/yarn_deduplicate/index.ts and then commit the changes and push to your branch --- yarn.lock | 51 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 190f9a8a56e07..1415e460c50ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2455,7 +2455,7 @@ resolved "https://registry.yarnpkg.com/@elastic/filesaver/-/filesaver-1.1.2.tgz#1998ffb3cd89c9da4ec12a7793bfcae10e30c77a" integrity sha512-YZbSufYFBhAj+S2cJgiKALoxIJevqXN2MSr6Yqr42rJdaPuM31cj6pUDwflkql1oDjupqD9la+MfxPFjXI1JFQ== -"@elastic/kibana-d3-color@npm:@elastic/kibana-d3-color@2.0.1", "d3-color@1 - 2", "d3-color@npm:@elastic/kibana-d3-color@2.0.1": +"@elastic/kibana-d3-color@npm:@elastic/kibana-d3-color@2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@elastic/kibana-d3-color/-/kibana-d3-color-2.0.1.tgz#f83b9c2fea09273a918659de04d5e8098c82f65c" integrity sha512-YZ8hV2bWNyYi833Yj3UWczmTxdHzmo/Xc2IVkNXr/ZqtkrTDlTLysCyJm7SfAt9iBy6EVRGWTn8cPz8QOY6Ixw== @@ -12124,8 +12124,7 @@ resolved "https://registry.yarnpkg.com/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz#5ff4b704af6a8b108f9d577fd87cf73e9e7b3178" integrity sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw== -"@redocly/ajv@^8.11.2", "@redocly/ajv@^8.18.0", "ajv@npm:@redocly/ajv@8.18.0": - name ajv +"@redocly/ajv@^8.11.2", "@redocly/ajv@^8.18.0": version "8.18.0" resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.18.0.tgz#e6c7ba549111838baa950bc31acbc84b06f0239f" integrity sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA== @@ -16143,6 +16142,16 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +"ajv@npm:@redocly/ajv@8.18.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.18.0.tgz#e6c7ba549111838baa950bc31acbc84b06f0239f" + integrity sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + anser@^2.1.1: version "2.3.2" resolved "https://registry.yarnpkg.com/anser/-/anser-2.3.2.tgz#e2da9d10759a4243a5819595f4f46ec369970c5b" @@ -19248,6 +19257,11 @@ d3-collection@^1.0.7: resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== +"d3-color@1 - 2", "d3-color@npm:@elastic/kibana-d3-color@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@elastic/kibana-d3-color/-/kibana-d3-color-2.0.1.tgz#f83b9c2fea09273a918659de04d5e8098c82f65c" + integrity sha512-YZ8hV2bWNyYi833Yj3UWczmTxdHzmo/Xc2IVkNXr/ZqtkrTDlTLysCyJm7SfAt9iBy6EVRGWTn8cPz8QOY6Ixw== + "d3-color@1 - 3", d3-color@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" @@ -32798,7 +32812,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -32816,6 +32830,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -32916,7 +32939,14 @@ stringify-object@^3.2.1: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -35708,7 +35738,7 @@ workerpool@^6.5.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -35734,6 +35764,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From 6bec3611cba67b3303a3b6220ba09da2535154b6 Mon Sep 17 00:00:00 2001 From: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 31 Mar 2026 15:12:01 +0000 Subject: [PATCH 12/16] Changes from node scripts/eslint_all_files --no-cache --fix --- .../public/components/doc_viewer_flyout/doc_viewer_flyout.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx index b867a6580b584..79c3205c9b92c 100644 --- a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx @@ -16,7 +16,6 @@ import { EuiFlexItem, EuiFlyout, EuiFlyoutBody, - EuiFlyoutFooter, EuiPortal, EuiPagination, EuiHorizontalRule, From 6fb8bbdc06da53ed1c5be23fbea2a2e6acf09bfd Mon Sep 17 00:00:00 2001 From: Timothy Sullivan Date: Tue, 31 Mar 2026 09:04:40 -0700 Subject: [PATCH 13/16] remove strictness from useFlyoutHistoryKey hook --- .../doc_viewer_flyout/flyout_history_key_context.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts index 443a2c635151e..1562d4a871847 100644 --- a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts @@ -22,9 +22,6 @@ import { createContext, useContext } from 'react'; export const FlyoutHistoryKeyContext = createContext(null); export const useFlyoutHistoryKey = () => { - const context = useContext(FlyoutHistoryKeyContext); - if (context === null) { - throw new Error('useFlyoutHistoryKey must be used within a FlyoutHistoryKeyContext.Provider'); - } - return context; + // Don't be strict: if the context wasn't provided, just return null. + return useContext(FlyoutHistoryKeyContext); }; From 7df0c064a5cd681cf1f8731b400f4b977b5b82f6 Mon Sep 17 00:00:00 2001 From: Timothy Sullivan Date: Tue, 31 Mar 2026 09:46:18 -0700 Subject: [PATCH 14/16] fix ts error --- .../doc_viewer_flyout/flyout_history_key_context.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts index 1562d4a871847..8cf610b60c15c 100644 --- a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/flyout_history_key_context.ts @@ -19,9 +19,9 @@ import { createContext, useContext } from 'react'; * enabling the "Back" button on the Trace Waterfall to return the user to * the Document Viewer. */ -export const FlyoutHistoryKeyContext = createContext(null); +export const FlyoutHistoryKeyContext = createContext(undefined); export const useFlyoutHistoryKey = () => { - // Don't be strict: if the context wasn't provided, just return null. + // Don't be strict: if the context wasn't provided, just return undefined. return useContext(FlyoutHistoryKeyContext); }; From cbd57395fe46ce85a68c2323eaf91d7d7805813b Mon Sep 17 00:00:00 2001 From: Weronika Olejniczak Date: Wed, 1 Apr 2026 15:24:58 +0200 Subject: [PATCH 15/16] fix(unified_doc_viewer): add custom footer back --- .../public/components/doc_viewer_flyout/doc_viewer_flyout.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx index 79c3205c9b92c..f2add8fb6ebdf 100644 --- a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx @@ -341,6 +341,9 @@ export function UnifiedDocViewerFlyout({ {...docViewRenderProps} /> + {renderCustomFooter && ( + {renderCustomFooter(docViewRenderProps)} + )} From cfdcdaa8a53ea423932a236040f3d4fc247992bd Mon Sep 17 00:00:00 2001 From: Weronika Olejniczak Date: Wed, 1 Apr 2026 16:45:08 +0200 Subject: [PATCH 16/16] fix(doc_viewer_flyout): add missing import --- .../public/components/doc_viewer_flyout/doc_viewer_flyout.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx index f2add8fb6ebdf..7d20f63b2ef39 100644 --- a/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx +++ b/src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx @@ -16,6 +16,7 @@ import { EuiFlexItem, EuiFlyout, EuiFlyoutBody, + EuiFlyoutFooter, EuiPortal, EuiPagination, EuiHorizontalRule,