Skip to content

Conversation

@mgadewoll
Copy link
Contributor

Backport

This will backport the following commits from main to 9.0:

Questions ?

Please refer to the Backport tool documentation

`102.2.0` ⏩ `102.3.0`

[Questions? Please see our Kibana upgrade
FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)

## Changes

>[!IMPORTANT]
This release contains the visual refresh updates for buttons ⏹️ 💅
These have already been available for QA ahead of time on [this
PR](elastic#220093).

1. **EUI changes**: Adds all Visual Refresh related EUI changes on
button components:

- `EuiButton`
- `EuiButtonEmpty`
- `EuiButtonIcon`
- `EuiButtonGroup`
- `EuiFilterGroup`/`EuiFilterButton`

2. **EUI button component API updates:** Updates instances of
`EuiFilterButton` usages that were missing `isSelected` prop or that
should use the new `isToggle` prop to ensure the expected visual and
semantic output as toggle button.

<details><summary><b>Examples of new toggle filter buttons</b></summary>

| before | after |
|---|---|
| ![Screenshot 2025-05-05 at 16 18
13](https://github.com/user-attachments/assets/65dcb4f1-27c2-4e73-8d0e-2702de8c35e3)
| ![Screenshot 2025-05-02 at 13 48
28](https://github.com/user-attachments/assets/54ec723b-ff3f-49b7-ad6c-0d804fcd8a82)
|
| ![Screenshot 2025-05-05 at 16 19
30](https://github.com/user-attachments/assets/65bcef9a-c06b-46e4-91e1-698a76b1dbc2)
| ![Screenshot 2025-05-02 at 14 02
46](https://github.com/user-attachments/assets/bf05d9f9-0eba-4733-87f6-d7abdaa53bfa)
|
| ![Screenshot 2025-05-05 at 16 21
50](https://github.com/user-attachments/assets/8f4a6592-9dc0-4b69-8ba5-aca0a3c26f69)
| ![Screenshot 2025-05-02 at 14 08
07](https://github.com/user-attachments/assets/34d78faa-4137-4650-a4a9-f71cbde64054)
|
</details>

3. **Custom styling updates:** Updates custom styling overrides on EUI
button components in selected **high-visibility places** (discover,
dashboard, lens) to ensure expected Visual Refresh output. (This is a
first iteration step to ensure expected design. In the future we want to
replace custom buttons with proper EUI components)

<details><summary><b>Updated custom button styling</b></summary>

| Solution/Area | After |
|---|---|
| Discover(classic) | ![Screenshot 2025-05-30 at 14 45
01](https://github.com/user-attachments/assets/93a46e2a-4989-4bcb-99f2-5eafa4483629)
|
| Discover(ES/QL) | ![Screenshot 2025-05-30 at 14 45
11](https://github.com/user-attachments/assets/8fc390d4-fdb0-4377-851c-b3835dc9a14e)
|
| Dashboard(Create Visualization) | ![Screenshot 2025-05-30 at 14 47
21](https://github.com/user-attachments/assets/a5895309-9b48-494d-b4b4-e91ca41e316b)
|
| Maps: Aligned map toolbar button hover | ![Screenshot 2025-04-30 at 17
19
11](https://github.com/user-attachments/assets/2d467f6b-ab50-46b1-b393-ed1e6c5d5548)
|

</details>

## Package updates

### `@elastic/eui`

## [`v102.3.0`](https://github.com/elastic/eui/releases/v102.3.0)

- Added support for `focusTrapProps.returnFocus` on `EuiFlyout`
([elastic#8716](elastic/eui#8716))
- Updated `EuiDataGridToolbarControl` hover styles by removing
text-decoration and changing the badge background-color to ensure enough
contrast ([elastic#8670](elastic/eui#8670))
- Added prop `isToggle` on `EuiFilterButton` to switch between regular
and toggle button ([elastic#8652](elastic/eui#8652))
- Updated `hasActiveFilters` on `EuiFilterButton` to only control
highlighting filters, not a visual selected state
([elastic#8652](elastic/eui#8652))
- Updated `EuiFilterButton` to ensure `isSelected` prop applies both
semantic and visual states
([elastic#8652](elastic/eui#8652))
- Updated visual styling of `EuiButtonGroup`, `EuiFilterGroup` and
`EuiFilterButton` ([elastic#8652](elastic/eui#8652))
- Updated `EuiNotificationBadge` border radius to `2px`
([elastic#8652](elastic/eui#8652))
- Updated `EuiBreadcrumbs` text color for `type="application"`
([elastic#8652](elastic/eui#8652))
- Added new `refresh` design variant for button components:
([elastic#8595](elastic/eui#8595))
  - `EuiButton`
  - `EuiButtonEmpty`
  - `EuiButtonIcon`
- Added `flags.buttonVariant` with value `classic` to
`euiThemeAmsterdam` ([elastic#8595](elastic/eui#8595))
- Added new button background component tokens to Amsterdam theme:
([elastic#8595](elastic/eui#8595))
  - `background{color}Hover`
  - `background{color}Active`
  - `backgroundFilled{color}Hover`
  - `backgroundFilled{color}Active`
  - `backgroundEmpty{color}Hover`
  - `backgroundEmpty{color}Active`

**Bug fixes**

- Fixed an issue with `EuiDataGrid` where navigating cells with
simultaneous key presses would result in a crash in React 18 legacy mode
([elastic#8698](elastic/eui#8698))

**Accessibility**

- Improved the accessibility experience of `EuiMarkdownEditorFooter` by
fixing the ARIA attributes of the `syntax help` modal.
([elastic#8702](elastic/eui#8702))

### `@elastic/eui-theme-borealis`

## [`v1.1.0`](https://github.com/elastic/eui/releases/v1.1.0)

- Added token `filterButtonBadgeBackgroundHover`
([elastic#8652](elastic/eui#8652))
- Updated values for tokens `buttonGroupFocusColor` and
`buttonGroupBackgroundDisabledSelected`
([elastic#8652](elastic/eui#8652))
- Added `flags.buttonVariant` with value `refresh` to `euiThemeBorealis`
([elastic#8595](elastic/eui#8595))
- Added new button background component tokens:
([elastic#8595](elastic/eui#8595))
  - `background{color}Hover`
  - `background{color}Active`
  - `backgroundFilled{color}Hover`
  - `backgroundFilled{color}Active`
  - `backgroundEmpty{color}Hover`
  - `backgroundEmpty{color}Active`
- Updated `backgroundLightText` token value to `shade120`
([elastic#8595](elastic/eui#8595))

---------

Co-authored-by: “jeramysoucy” <jeramy.soucy@elastic.co>
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
(cherry picked from commit b2d1075)

# Conflicts:
#	src/platform/packages/shared/kbn-unified-field-list/src/components/field_list_filters/field_type_filter.test.tsx
#	src/platform/packages/shared/kbn-unified-field-list/src/components/field_list_filters/field_type_filter.tsx
#	src/platform/packages/shared/kbn-unified-field-list/src/components/field_list_grouped/field_list_grouped.test.tsx
#	src/platform/packages/shared/shared-ux/button_toolbar/src/popover/popover.test.tsx
#	src/platform/plugins/shared/controls/public/controls/data_controls/options_list_control/components/options_list_control.tsx
#	src/platform/plugins/shared/unified_doc_viewer/public/components/doc_viewer_table/table.test.tsx
#	x-pack/platform/plugins/private/canvas/shareable_runtime/components/__snapshots__/app.test.tsx.snap
#	x-pack/platform/plugins/shared/fleet/public/components/platform_selector.tsx
#	x-pack/platform/plugins/shared/lens/public/shared_components/dataview_picker/toolbar_button.tsx
#	x-pack/platform/plugins/shared/spaces/public/nav_control/components/manage_spaces_button.tsx
#	x-pack/platform/plugins/shared/streams_app/public/components/data_management/stream_detail_enrichment/processor_outcome_preview.tsx
@mgadewoll mgadewoll requested a review from kibanamachine as a code owner June 9, 2025 09:41
@mgadewoll mgadewoll added the backport This PR is a backport of another PR label Jun 9, 2025
@mgadewoll mgadewoll enabled auto-merge (squash) June 9, 2025 09:41
@botelastic botelastic bot added the Team:actionable-obs Formerly "obs-ux-management", responsible for SLO, o11y alerting, significant events, & synthetics. label Jun 9, 2025
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-management-team (Team:obs-ux-management)

@mgadewoll mgadewoll force-pushed the backport/9.0/pr-222149 branch 2 times, most recently from 276c3d5 to bc3b4a3 Compare June 9, 2025 13:22
@elasticmachine
Copy link
Contributor

elasticmachine commented Jun 9, 2025

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should announce filter in live region
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should announce filter in live region
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should display no fields in groups when filtered by type Record
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should display no fields in groups when filtered by type Record
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should display NoFieldsCallout when all fields are empty
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should display NoFieldsCallout when all fields are empty
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should display spinner for available fields accordion if existing fields are not loaded yet
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should display spinner for available fields accordion if existing fields are not loaded yet
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should filter down by name
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should filter down by name
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should filter down by type
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should filter down by type
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should list all selected fields if exist
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should list all selected fields if exist
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should list all supported fields in the pattern sorted alphabetically in groups
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should list all supported fields in the pattern sorted alphabetically in groups
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should not list the selected fields accordion if no fields given
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should not list the selected fields accordion if no fields given
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should show error when loading fails
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should show error when loading fails
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should show meta fields accordion
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should show meta fields accordion
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should toggle type if clicked again
  • [job] [logs] Jest Tests #16 / FormBased Data Panel displaying field list should toggle type if clicked again
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data does not load existence data if date and index pattern ids are unchanged
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data does not load existence data if date and index pattern ids are unchanged
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data for current index pattern id
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data for current index pattern id
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data if date range changes
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data if date range changes
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data if layer index pattern changes
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data loads existence data if layer index pattern changes
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data should default to empty dsl if query can't be parsed
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data should default to empty dsl if query can't be parsed
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data should trigger showNoDataPopover if fields don't have data
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data should trigger showNoDataPopover if fields don't have data
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data shows a loading indicator when loading
  • [job] [logs] Jest Tests #16 / FormBased Data Panel loading existence data shows a loading indicator when loading

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
controls 429 430 +1
dashboard 718 719 +1
maps 1311 1312 +1
ml 2141 2142 +1
visTypeVega 503 504 +1
total +5

Async chunks

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

id before after diff
alerting 95.2KB 95.2KB +13.0B
canvas 1002.6KB 1002.8KB +172.0B
cases 512.9KB 513.0KB +96.0B
cloudSecurityPosture 490.5KB 490.0KB -524.0B
controls 422.3KB 427.0KB +4.7KB
dashboard 538.0KB 542.7KB +4.7KB
datasetQuality 240.3KB 240.3KB +14.0B
dataVisualizer 613.1KB 613.1KB +13.0B
discover 751.6KB 751.5KB -129.0B
esql 220.1KB 220.1KB +13.0B
esqlDataGrid 160.6KB 160.1KB -598.0B
eventAnnotationListing 206.5KB 206.5KB +32.0B
exploratoryView 152.9KB 153.0KB +26.0B
filesManagement 105.2KB 105.3KB +32.0B
graph 382.4KB 382.4KB +32.0B
indexManagement 692.8KB 692.9KB +53.0B
lens 1.5MB 1.5MB +441.0B
maps 2.8MB 2.8MB +4.6KB
ml 4.4MB 4.4MB +4.2KB
observabilityShared 37.6KB 37.6KB +16.0B
presentationUtil 87.0KB 87.5KB +423.0B
security 522.2KB 522.6KB +319.0B
securitySolution 8.8MB 8.8MB +232.0B
serverlessSearch 343.4KB 343.4KB -53.0B
slo 767.0KB 766.9KB -129.0B
spaces 248.0KB 247.8KB -141.0B
synthetics 836.5KB 836.5KB +25.0B
triggersActionsUi 1.5MB 1.5MB +169.0B
unifiedDocViewer 118.7KB 119.0KB +302.0B
unifiedHistogram 63.5KB 63.7KB +172.0B
unifiedSearch 352.2KB 352.6KB +365.0B
uptime 404.0KB 404.0KB +62.0B
visTypeVega 1.9MB 1.9MB +4.2KB
visualizations 341.1KB 341.2KB +32.0B
total +23.8KB

Page load bundle

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

id before after diff
kbnUiSharedDeps-npmDll 6.1MB 6.1MB +28.1KB

History

@mgadewoll mgadewoll force-pushed the backport/9.0/pr-222149 branch from bc3b4a3 to efdc19c Compare June 9, 2025 15:55
Copy link
Member

@tkajtoch tkajtoch left a comment

Choose a reason for hiding this comment

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

CI is passing, changes match the original PR

@mgadewoll mgadewoll merged commit 3a7dba9 into elastic:9.0 Jun 10, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport This PR is a backport of another PR Team:actionable-obs Formerly "obs-ux-management", responsible for SLO, o11y alerting, significant events, & synthetics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants