Skip to content

Upgrade EUI to v115.0.0#266413

Open
weronikaolejniczak wants to merge 35 commits intoelastic:mainfrom
weronikaolejniczak:test/tooltip-focus
Open

Upgrade EUI to v115.0.0#266413
weronikaolejniczak wants to merge 35 commits intoelastic:mainfrom
weronikaolejniczak:test/tooltip-focus

Conversation

@weronikaolejniczak
Copy link
Copy Markdown
Contributor

@weronikaolejniczak weronikaolejniczak commented Apr 29, 2026

Dependency updates

  • @elastic/eui - v114.3.0 ⏩ v115.0.0
  • @elastic/eslint-plugin-eui - v2.11.1 ⏩ v2.12.0

Package updates

Summary

Note

Please be mindful that as the Design System team we are not aware of your specific area pre-requisites and testing setups, and are realistically not capable of testing the entirety of Kibana. That being said, we want to do our best at migrating breaking changes. All tooltip usages were updated accordingly but there might be mistakes and bugs. That's why, I would advise every reviewer to smoke-test their domain tooltips. We'd also greatly appreciate your help with adjusting anything that may be wrong 🙏🏻

Kapture.2026-05-04.at.18.50.14.mp4
  • tooltips no longer appear on programmatic focus return (e.g. when closing flyouts, modals) - unless you're using the keyboard to navigate,
  • tooltips do not persist on mouse click which was annoying for the sighted users and tricky to handle in automated testing environments,
  • there's no timeout-based delay that's inconsistent across Kibana and makes the UI seem laggy,
  • we made the animation simpler and tooltip content font-size smaller, resulting in a better visual hierarchy,
  • :accessibility: VoiceOver no longer has problems with announcing tooltip content on trigger focus.

These changes have been developed with SC 1.4.13 Content on Hover or Focus in mind while providing the best possible UX.

@elastic/eui v115.0.0

  • Updated EuiToolTip default font size from 14px to 12px (#9627)
  • Updated EuiToolTip show animation to opacity-only with a 150ms grace period delay, preventing visual flickering when quickly hovering over multiple tooltip triggers (#9626)
  • Updated EuiToolTip to respect input modality. Tooltip no longer persists on mouse-click focus or shows on programmatic focus return. (#9624)

Bug fixes

  • Fixed uiPlugins[].button type to allow UI plugins to not have a toolbar button in EuiMarkdownEditor (#9634)
  • Fixed EuiToolTip self-hiding when the mouse moves over child elements within the trigger (#9626)

Breaking changes

  • Removed delay prop and ToolTipDelay type from EuiToolTip and EuiIconTip (#9626)
  • Removed waitForEuiToolTipVisible and waitForEuiToolTipHidden RTL test helpers; tooltip show/hide is now synchronous so direct assertions can be used instead (#9626)

Accessibility

  • Fixed invalid nested interactive elements in EuiMarkdownEditor by removing role from the drop zone wrapper. (#9625)

@elastic/eslint-plugin-eui v2.12.0

  • Added a new prefer-tooltip-trigger-focus-test-utility rule that flags fireEvent.focus() inside it/test blocks that also query for a tooltip. The rule auto-fixes to focusEuiToolTipTrigger from EUI's RTL test utilities. (#9624)

@weronikaolejniczak weronikaolejniczak self-assigned this Apr 29, 2026
@weronikaolejniczak weronikaolejniczak changed the title [EUI] Test tooltip focus [EUI] Test tooltip focus and delay Apr 30, 2026
@weronikaolejniczak weronikaolejniczak force-pushed the test/tooltip-focus branch 6 times, most recently from ab7adba to e572eb4 Compare May 4, 2026 16:27
@weronikaolejniczak weronikaolejniczak changed the title [EUI] Test tooltip focus and delay Upgrade EUI to v115.0.0 May 6, 2026
@weronikaolejniczak weronikaolejniczak force-pushed the test/tooltip-focus branch 3 times, most recently from 947a913 to 08a2ed4 Compare May 6, 2026 12:16
@weronikaolejniczak weronikaolejniczak added EUI backport:skip This PR does not require backporting release_note:skip Skip the PR/issue when compiling release notes labels May 6, 2026
@elastic-vault-github-plugin-prod
Copy link
Copy Markdown
Contributor

elastic-vault-github-plugin-prod Bot commented May 7, 2026

Kibana Exploratory Testing — execution report

Run Metadata

  • Triggered by: Issue #388
  • Elasticsearch image tag: 9.5.0-SNAPSHOT
  • Kibana image: docker.elastic.co/kibana-ci/kibana-serverless:pr-266413-f296a51781f2
  • Date: 2026-05-09
  • PR: elastic/kibana#266413 — Upgrade EUI to v115.0.0
  • Mode: PR-targeted (journeys generated from PR diff)
  • Journeys executed: 8
  • Passed: 8
  • Errored: 0
  • Findings: 0 bugs, 0 warnings, 0 info

Findings

No findings -- all journeys completed without issues.

Additional details

Screenshots

Screenshots are available in the workflow artifacts.

Workflow run: View workflow run

Copy link
Copy Markdown
Contributor

@momovdg momovdg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All esql editor tooltips are good!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fyi @Zacqary, I'm removing the workaround

Copy link
Copy Markdown
Member

@pickypg pickypg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGT Stack Monitoring

@weronikaolejniczak weronikaolejniczak force-pushed the test/tooltip-focus branch 2 times, most recently from 36533fd to 6b7257a Compare May 8, 2026 16:01
@kibanamachine
Copy link
Copy Markdown
Contributor

kibanamachine commented May 9, 2026

💔 Build Failed

  • Buildkite Build
  • Commit: f296a51
  • Kibana Serverless Image: docker.elastic.co/kibana-ci/kibana-serverless:pr-266413-f296a51781f2

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #13 / Cloud Security Posture POST /internal/cloud_security_posture/graph Happy flows should handle events with null event.id gracefully
  • [job] [logs] FTR Configs #226 / discover/tabs discover - ES|QL controls should add an ES|QL value control
  • [job] [logs] Scout Lane #40 - serverless-observability_complete / default / local-serverless-observability_complete - Observability Landing Page - redirects to APM services when only APM data exists
  • [job] [logs] Scout Lane #40 - serverless-observability_complete / default / local-serverless-observability_complete - Observability Landing Page - redirects to onboarding when log data that should be ignored exists
  • [job] [logs] Scout Lane #40 - serverless-observability_complete / default / local-serverless-observability_complete - Observability Landing Page - redirects to onboarding when no data exists
  • [job] [logs] Scout Lane #10 - stateful-classic / default / local-stateful-classic - APM integration not installed but setup completed - Admin user
  • [job] [logs] Scout Lane #10 - stateful-classic / default / local-stateful-classic - APM integration not installed but setup completed - Viewer user
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Dashboards Tab
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Logs Tab
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Metadata Tab
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Metrics Tab
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Open as page and return
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Overview Tab - KPI charts and collapsible sections
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Overview Tab - Services section
  • [job] [logs] Scout Lane #8 - stateful-classic / default / local-stateful-classic - Hosts Page - Flyout - Processes Tab
  • [job] [logs] Scout Lane #10 - stateful-classic / default / local-stateful-classic - Profiling is not setup and no data is loaded - Admin users
  • [job] [logs] Scout Lane #10 - stateful-classic / default / local-stateful-classic - Profiling is not setup and no data is loaded - Viewer users
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #8 / rule snoozing Handling errors shows an error if unable to load snooze settings shows an error if unable to load snooze settings
  • [job] [logs] Serverless Rule Management - Security Solution Cypress Tests #3 / rule snoozing Handling errors shows an error if unable to load snooze settings shows an error if unable to load snooze settings
  • [job] [logs] Rule Management - Security Solution Cypress Tests #4 / rule snoozing Handling errors shows an error if unable to load snooze settings shows an error if unable to load snooze settings
  • [job] [logs] Rule Management - Security Solution Cypress Tests #4 / rule snoozing Handling errors shows an error if unable to load snooze settings shows an error if unable to load snooze settings
  • [job] [logs] Serverless Rule Management - Security Solution Cypress Tests #3 / rule snoozing Handling errors shows an error if unable to load snooze settings shows an error if unable to load snooze settings
  • [job] [logs] Rules, Alerts and Exceptions ResponseOps Cypress Tests on Security Solution #8 / rule snoozing Handling errors shows an error if unable to load snooze settings shows an error if unable to load snooze settings

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
core 665 664 -1

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
agentBuilder 1.1MB 1.1MB -13.0B
aiops 526.5KB 526.4KB -26.0B
alertingVTwo 733.5KB 733.4KB -68.0B
apm 2.8MB 2.8MB -65.0B
cases 2.3MB 2.3MB -16.0B
cloudSecurityPosture 613.9KB 613.9KB -52.0B
controls 524.5KB 524.5KB -26.0B
core 135.1KB 135.0KB -40.0B
cps 13.7KB 13.7KB -13.0B
dashboard 1.1MB 1.1MB -16.0B
dashboardMarkdown 76.0KB 76.0KB -16.0B
datasetQuality 526.4KB 526.4KB -13.0B
discover 1.9MB 1.9MB -156.0B
embeddable 89.0KB 88.9KB -64.0B
esql 896.9KB 896.8KB -94.0B
esqlDataGrid 153.9KB 153.8KB -52.0B
eventAnnotationListing 208.7KB 208.7KB -55.0B
filesManagement 104.5KB 104.4KB -16.0B
fleet 2.7MB 2.7MB -13.0B
graph 374.1KB 374.1KB -29.0B
indexManagement 792.1KB 792.1KB -13.0B
infra 1.5MB 1.5MB -132.0B
lens 2.1MB 2.1MB -232.0B
links 102.7KB 102.7KB -42.0B
maps 3.2MB 3.2MB -68.0B
ml 5.6MB 5.6MB -611.0B
osquery 1.3MB 1.3MB -52.0B
remoteClusters 85.5KB 85.5KB -26.0B
searchAssistant 199.1KB 199.0KB -114.0B
securitySolution 12.0MB 12.0MB -129.0B
sessionView 357.1KB 357.1KB +9.0B
slo 1.2MB 1.2MB -78.0B
spaces 236.2KB 236.2KB -13.0B
transform 632.0KB 631.9KB -26.0B
unifiedDocViewer 676.6KB 676.6KB -39.0B
unifiedSearch 310.0KB 309.7KB -367.0B
uptime 493.3KB 493.3KB -13.0B
visDefaultEditor 81.9KB 81.9KB -13.0B
visTypeGauge 8.6KB 8.6KB -13.0B
visTypeHeatmap 9.7KB 9.7KB -13.0B
visTypeVega 2.0MB 2.0MB -585.0B
visTypeXy 41.6KB 41.6KB -26.0B
visualizationListing 97.4KB 97.4KB -16.0B
visualizations 334.9KB 334.8KB -16.0B
watcher 158.8KB 158.8KB -26.0B
workflowsManagement 2.3MB 2.3MB -26.0B
total -3.4KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
core 525.6KB 525.2KB -330.0B
elasticAssistant 266.3KB 266.2KB -151.0B
kbnUiSharedDeps-npmDll 7.3MB 7.3MB -2.7KB
navigation 10.7KB 10.7KB -13.0B
savedObjectsManagement 19.9KB 19.9KB -26.0B
visDefaultEditor 32.3KB 32.3KB -29.0B
total -3.2KB

History

cc @weronikaolejniczak

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting ci:project-deploy-observability Create an Observability project EUI Feature:Drilldowns Embeddable panel Drilldowns Feature:Embedding Embedding content via iFrame release_note:skip Skip the PR/issue when compiling release notes Team:Fleet Team label for Observability Data Collection Fleet team Team:obs-presentation Focus: APM UI, Infra UI, Hosts UI, Universal Profiling, Obs Overview and left Navigation Team:One Workflow Team label for One Workflow (Workflow automation)

Projects

None yet

Development

Successfully merging this pull request may close these issues.