Skip to content

[test-helpers] Add EuiDataGridObject, EuiSuperSelectObject and EuiGlobalToastListObject - #9874

Merged
steliosmavro merged 5 commits into
elastic:mainfrom
steliosmavro:stelios/test-helpers-datagrid-superselect-toast
Aug 8, 2026
Merged

[test-helpers] Add EuiDataGridObject, EuiSuperSelectObject and EuiGlobalToastListObject#9874
steliosmavro merged 5 commits into
elastic:mainfrom
steliosmavro:stelios/test-helpers-datagrid-superselect-toast

Conversation

@steliosmavro

Copy link
Copy Markdown
Contributor

Summary

Adds three Playwright Component Objects to @elastic/eui-test-helpers, ported from Kibana's kbn-scout where they were prototyped against real consumer specs and validated end to end (locally plus two full Kibana CI builds): elastic/kibana#282596. Kibana-side epic: https://github.com/elastic/apps-dx/issues/43 (port issue: https://github.com/elastic/apps-dx/issues/54).

Object Public surface
EuiDataGridObject rows Locator, cell(), cells(), doActionOnColumn(), openFullScreenMode()/closeFullScreenMode()
EuiSuperSelectObject selectOptionByValue(), selectOptionByLabel(), getSelectedValue()
EuiGlobalToastListObject toasts Locator, closeAll()

Each follows the package conventions: selectors in src/components/<name>/selectors.ts (re-exported from src/selectors.ts), object + validation specs under src/playwright/components/<name>/, a component README, and index exports. All 14 new validation specs pass against Storybook locally.

Notes for review

  • Directory layout for EuiSuperSelect: the helper lives at form/super_select/ to mirror the EUI source layout. The flake-detection script only enumerates first-level helper directories, so the correlation fires through form/ — coarse (any form/* change reruns these specs) but functional with zero script changes. A flat super_select/ directory would never correlate with component changes. Happy to switch if you prefer a script change instead.
  • API shape: the surface is deliberately minimal and demand-driven — every member is backed by a real Kibana consumer from a repo-wide call-site audit (details in the Kibana PR). Locator-returning members (rows, toasts, cell, cells) keep Playwright auto-retry with the consumer owning the assertion, per CONTRIBUTING.
  • EuiDataGridObject requires the subj on the grid itself (component-type guard): EUI toggles state classes (fullscreen) on .euiDataGrid, so a wrapper subj cannot work; consumers narrow with the scope parameter when the subj is not page-unique.
  • Storybook coverage for EuiSuperSelect and EuiGlobalToastList is thin (Playground only); the specs work within that. Props-variant specs can follow if/when stories are added.
  • Changelog entry added under changelogs/upcoming/.

Validation

…balToastListObject

Ports the Component Objects prototyped and validated in Kibana's kbn-scout
(elastic/kibana#282596) into the package, with
selectors, validation specs against Storybook, and component READMEs.

The super_select helper is nested under form/ to mirror the EUI source
layout; the flake-detection correlation picks it up through the first-level
form/ directory (coarse but functional).
@steliosmavro
steliosmavro force-pushed the stelios/test-helpers-datagrid-superselect-toast branch from 263d4c8 to e653ccf Compare August 6, 2026 13:34
@steliosmavro
steliosmavro marked this pull request as ready for review August 6, 2026 13:54
@steliosmavro
steliosmavro requested a review from a team as a code owner August 6, 2026 13:54
Comment thread packages/test-helpers/src/playwright/components/datagrid/object.spec.ts Outdated
Comment thread packages/test-helpers/src/components/form/super_select/selectors.ts Outdated
Comment thread packages/test-helpers/src/playwright/components/datagrid/object.ts

@weronikaolejniczak weronikaolejniczak left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just a couple of comments, otherwise LGTM 💪🏻 I will approve already to not block you after you make the changes.

@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

💚 Build Succeeded

History

@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

💚 Build Succeeded

History

@steliosmavro

Copy link
Copy Markdown
Contributor Author

Thanks for the feedback @weronikaolejniczak and the quick review 🙏

@steliosmavro
steliosmavro merged commit 746f4f7 into elastic:main Aug 8, 2026
7 checks passed
steliosmavro added a commit to elastic/kibana that referenced this pull request Aug 12, 2026
…prototypes (#284433)

## Summary

Consume the released
[`@elastic/eui-test-helpers@1.3.0`](https://www.npmjs.com/package/@elastic/eui-test-helpers)
in Kibana and drop the in-repo prototype Component Objects, now that the
EUI port (elastic/eui#9874) is merged and published.

Part of elastic/apps-dx#55 (epic
elastic/apps-dx#43).

## Changes

- Bump `@elastic/eui-test-helpers` `1.2.0` -> `1.3.0` (the release adds
`EuiDataGridObject`, `EuiSuperSelectObject`, `EuiGlobalToastListObject`)
- `eui_components/index.ts` now re-exports those three from the package
instead of the local prototype files
- Delete the three prototype files (`data_grid_object.ts`,
`super_select_object.ts`, `global_toast_list_object.ts`)
- The `page.components.toast()` factory now supplies the
`globalToastList` default subj, since the published object requires an
explicit `testSubj` (that default is a Kibana core convention, so it
belongs on the Kibana factory, not the package)

## Not in this PR

The deprecated `Eui*Wrapper` classes stay until their consumers are
migrated (the per-team PRs under
elastic/apps-dx#56). Deleting them is the
final step, elastic/apps-dx#55.

## Validation

- Type check green (kbn-scout), lint green
- Installed `1.3.0` verified to export all three objects at runtime
- Local Scout runs against a stateful/classic server, all green:
- streams `data_mapping` (exercises `page.components.comboBox` and the
`toasts` page object, both now package-sourced, alongside the
still-local wrappers): 9 passed
  - observability `alerts_table`: 7 passed
- The three objects are byte-identical to the prototypes the merged
helpers PR (#283398) already validated across every Scout lane; this PR
only changes where they are imported from.
acstll added a commit to elastic/kibana that referenced this pull request Aug 13, 2026
## Dependency updates

`@elastic/eui` - 118.0.0 ⏩ 119.0.0
`@elastic/eslint-plugin-eui` - 2.15.0 ⏩ 2.16.0
`@elastic/eui-test-helpers` - 1.2.0 ⏩ 1.3.0

## Changes

- Added 3 new `EuiFlyoutMenu` i18n tokens
(`euiFlyoutMenu.history.tooltip`, `euiFlyoutMenu.pagination.first`,
`euiFlyoutMenu.pagination.last`) to `i18n_eui_mapping.tsx` and all
translation files
- Replaced removed `plusInCircle` icon alias with `plusCircle` in the ML
plugin (data frame analytics, anomaly detection jobs, and trained models
menus)

## Package updates

### `@elastic/eslint-plugin-eui`
[v2.16.0](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2026.md)

- Added new `@elastic/eui/no-nested-copy-tooltip` rule to improve
`EuiCopy` usage ([#9852](elastic/eui#9852))
- Updated `@elastic/eui/tooltip-button-icon-wrap` with an exception for
`EuiCopy` usage covered by `@elastic/eui/no-nested-copy-tooltip`
([#9852](elastic/eui#9852))
- Added `button-group-no-invalid-children` rule
([#9849](elastic/eui#9849))
- Added `no-deprecated-icon-aliases` rule
([#9815](elastic/eui#9815))

### `@elastic/eui`
[v119.0.0](https://github.com/elastic/eui/blob/main/packages/eui/changelogs/CHANGELOG_2026.md)

- Bundled icon glyph files into `dist/svgs/` and added
`dist/eui-icons.json` manifest (mapping icon filename stems to SVG
content strings) ([#9873](elastic/eui#9873))
- Added `hasAriaDisabled` prop to `EuiContextMenuItem`
([#9870](elastic/eui#9870))
- Updated `EuiButtonGroup`:
([#9845](elastic/eui#9845))
- Added new render API via `children` prop that allows passing button
components as children
  - Added `variant` prop (usable only with `children` prop)
- Added `gutterSize` prop (usable only with `children` and
`variant="default"` prop)
- Updated `EuiButton`, `EuiButtonEmpty` and `EuiButtonIcon` to consume a
`EuiButtonContext` allowing the group to control common props
([#9845](elastic/eui#9845))
- Updated `EuiFlyoutMenu`:
([#9856](elastic/eui#9856))
- Added `leadingActions` and `trailingActions` props, which accept the
new `EuiFlyoutMenuAction` type supporting `toolTipContent` and
`toolTipProps`
  - Changed the history trigger icon to `clockCounter`
  - Added control-group dividers between built-in controls
- Added `onFirst`, `onLast` to `pagination`, which render optional
buttons for jumping to the beginning and end of the list.
- Deprecated additional `EuiIcon` types that are not represented in
Figma ([#9815](elastic/eui#9815))

**Bug fixes**

- Fixed the missing type declaration for the `focusEuiToolTipTrigger`
test helper ([#9870](elastic/eui#9870))
- Fixed generated icon IDs to remain stable during server-side rendering
([#9866](elastic/eui#9866))
- Fixed a visual bug in `EuiButtonGroup` that rendered duplicate borders
on disabled buttons ([#9845](elastic/eui#9845))
- The `EuiFlyoutMenu` history popover now only appears when
`historyItems` has more than one entry. When there is a single entry in
history, only the Back button is shown.
([#9856](elastic/eui#9856))
- Fixed `EuiFlyoutMenu` pagination controls disappearing when
`pagination.total` is `1`; the controls now render (as "1 of 1" with
both Prev/Next disabled) for any `total` of at least `1`
([#9856](elastic/eui#9856))

**Deprecations**

- Deprecated `customActions` and `EuiFlyoutMenuCustomAction` in
`EuiFlyoutMenu`; use `trailingActions` and `EuiFlyoutMenuAction` instead
([#9856](elastic/eui#9856))

**Breaking changes**

- Removed most deprecated `EuiIcon` types and their icon assets. 16
widely-used deprecated aliases (e.g. `alert`, `search`, `visPie`) remain
temporarily and will be removed in a future release
([#9832](elastic/eui#9832))
([#9815](elastic/eui#9815))

### `@elastic/eui-test-helpers`
[v1.3.0](https://github.com/elastic/eui/blob/main/packages/test-helpers/changelogs/CHANGELOG_2026.md)

- Added `EuiDataGridObject` with `rows`, `cell()`, `cells()`,
`doActionOnColumn()` and `openFullScreenMode()`/`closeFullScreenMode()`
([#9874](elastic/eui#9874))
- Added `EuiSuperSelectObject` with `selectOptionByValue()`,
`selectOptionByLabel()` and `getSelectedValue()`
([#9874](elastic/eui#9874))
- Added `EuiGlobalToastListObject` with a `toasts` locator and
`closeAll()` ([#9874](elastic/eui#9874))

---------

Co-authored-by: Lene Gadewoll <lene.gadewoll@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
qn895 pushed a commit to qn895/kibana that referenced this pull request Aug 13, 2026
## Dependency updates

`@elastic/eui` - 118.0.0 ⏩ 119.0.0
`@elastic/eslint-plugin-eui` - 2.15.0 ⏩ 2.16.0
`@elastic/eui-test-helpers` - 1.2.0 ⏩ 1.3.0

## Changes

- Added 3 new `EuiFlyoutMenu` i18n tokens
(`euiFlyoutMenu.history.tooltip`, `euiFlyoutMenu.pagination.first`,
`euiFlyoutMenu.pagination.last`) to `i18n_eui_mapping.tsx` and all
translation files
- Replaced removed `plusInCircle` icon alias with `plusCircle` in the ML
plugin (data frame analytics, anomaly detection jobs, and trained models
menus)

## Package updates

### `@elastic/eslint-plugin-eui`
[v2.16.0](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2026.md)

- Added new `@elastic/eui/no-nested-copy-tooltip` rule to improve
`EuiCopy` usage ([elastic#9852](elastic/eui#9852))
- Updated `@elastic/eui/tooltip-button-icon-wrap` with an exception for
`EuiCopy` usage covered by `@elastic/eui/no-nested-copy-tooltip`
([elastic#9852](elastic/eui#9852))
- Added `button-group-no-invalid-children` rule
([elastic#9849](elastic/eui#9849))
- Added `no-deprecated-icon-aliases` rule
([elastic#9815](elastic/eui#9815))

### `@elastic/eui`
[v119.0.0](https://github.com/elastic/eui/blob/main/packages/eui/changelogs/CHANGELOG_2026.md)

- Bundled icon glyph files into `dist/svgs/` and added
`dist/eui-icons.json` manifest (mapping icon filename stems to SVG
content strings) ([elastic#9873](elastic/eui#9873))
- Added `hasAriaDisabled` prop to `EuiContextMenuItem`
([elastic#9870](elastic/eui#9870))
- Updated `EuiButtonGroup`:
([elastic#9845](elastic/eui#9845))
- Added new render API via `children` prop that allows passing button
components as children
  - Added `variant` prop (usable only with `children` prop)
- Added `gutterSize` prop (usable only with `children` and
`variant="default"` prop)
- Updated `EuiButton`, `EuiButtonEmpty` and `EuiButtonIcon` to consume a
`EuiButtonContext` allowing the group to control common props
([elastic#9845](elastic/eui#9845))
- Updated `EuiFlyoutMenu`:
([elastic#9856](elastic/eui#9856))
- Added `leadingActions` and `trailingActions` props, which accept the
new `EuiFlyoutMenuAction` type supporting `toolTipContent` and
`toolTipProps`
  - Changed the history trigger icon to `clockCounter`
  - Added control-group dividers between built-in controls
- Added `onFirst`, `onLast` to `pagination`, which render optional
buttons for jumping to the beginning and end of the list.
- Deprecated additional `EuiIcon` types that are not represented in
Figma ([elastic#9815](elastic/eui#9815))

**Bug fixes**

- Fixed the missing type declaration for the `focusEuiToolTipTrigger`
test helper ([elastic#9870](elastic/eui#9870))
- Fixed generated icon IDs to remain stable during server-side rendering
([elastic#9866](elastic/eui#9866))
- Fixed a visual bug in `EuiButtonGroup` that rendered duplicate borders
on disabled buttons ([elastic#9845](elastic/eui#9845))
- The `EuiFlyoutMenu` history popover now only appears when
`historyItems` has more than one entry. When there is a single entry in
history, only the Back button is shown.
([elastic#9856](elastic/eui#9856))
- Fixed `EuiFlyoutMenu` pagination controls disappearing when
`pagination.total` is `1`; the controls now render (as "1 of 1" with
both Prev/Next disabled) for any `total` of at least `1`
([elastic#9856](elastic/eui#9856))

**Deprecations**

- Deprecated `customActions` and `EuiFlyoutMenuCustomAction` in
`EuiFlyoutMenu`; use `trailingActions` and `EuiFlyoutMenuAction` instead
([elastic#9856](elastic/eui#9856))

**Breaking changes**

- Removed most deprecated `EuiIcon` types and their icon assets. 16
widely-used deprecated aliases (e.g. `alert`, `search`, `visPie`) remain
temporarily and will be removed in a future release
([elastic#9832](elastic/eui#9832))
([elastic#9815](elastic/eui#9815))

### `@elastic/eui-test-helpers`
[v1.3.0](https://github.com/elastic/eui/blob/main/packages/test-helpers/changelogs/CHANGELOG_2026.md)

- Added `EuiDataGridObject` with `rows`, `cell()`, `cells()`,
`doActionOnColumn()` and `openFullScreenMode()`/`closeFullScreenMode()`
([elastic#9874](elastic/eui#9874))
- Added `EuiSuperSelectObject` with `selectOptionByValue()`,
`selectOptionByLabel()` and `getSelectedValue()`
([elastic#9874](elastic/eui#9874))
- Added `EuiGlobalToastListObject` with a `toasts` locator and
`closeAll()` ([elastic#9874](elastic/eui#9874))

---------

Co-authored-by: Lene Gadewoll <lene.gadewoll@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 18, 2026
…prototypes (elastic#284433)

## Summary

Consume the released
[`@elastic/eui-test-helpers@1.3.0`](https://www.npmjs.com/package/@elastic/eui-test-helpers)
in Kibana and drop the in-repo prototype Component Objects, now that the
EUI port (elastic/eui#9874) is merged and published.

Part of elastic/apps-dx#55 (epic
elastic/apps-dx#43).

## Changes

- Bump `@elastic/eui-test-helpers` `1.2.0` -> `1.3.0` (the release adds
`EuiDataGridObject`, `EuiSuperSelectObject`, `EuiGlobalToastListObject`)
- `eui_components/index.ts` now re-exports those three from the package
instead of the local prototype files
- Delete the three prototype files (`data_grid_object.ts`,
`super_select_object.ts`, `global_toast_list_object.ts`)
- The `page.components.toast()` factory now supplies the
`globalToastList` default subj, since the published object requires an
explicit `testSubj` (that default is a Kibana core convention, so it
belongs on the Kibana factory, not the package)

## Not in this PR

The deprecated `Eui*Wrapper` classes stay until their consumers are
migrated (the per-team PRs under
elastic/apps-dx#56). Deleting them is the
final step, elastic/apps-dx#55.

## Validation

- Type check green (kbn-scout), lint green
- Installed `1.3.0` verified to export all three objects at runtime
- Local Scout runs against a stateful/classic server, all green:
- streams `data_mapping` (exercises `page.components.comboBox` and the
`toasts` page object, both now package-sourced, alongside the
still-local wrappers): 9 passed
  - observability `alerts_table`: 7 passed
- The three objects are byte-identical to the prototypes the merged
helpers PR (elastic#283398) already validated across every Scout lane; this PR
only changes where they are imported from.
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 18, 2026
## Dependency updates

`@elastic/eui` - 118.0.0 ⏩ 119.0.0
`@elastic/eslint-plugin-eui` - 2.15.0 ⏩ 2.16.0
`@elastic/eui-test-helpers` - 1.2.0 ⏩ 1.3.0

## Changes

- Added 3 new `EuiFlyoutMenu` i18n tokens
(`euiFlyoutMenu.history.tooltip`, `euiFlyoutMenu.pagination.first`,
`euiFlyoutMenu.pagination.last`) to `i18n_eui_mapping.tsx` and all
translation files
- Replaced removed `plusInCircle` icon alias with `plusCircle` in the ML
plugin (data frame analytics, anomaly detection jobs, and trained models
menus)

## Package updates

### `@elastic/eslint-plugin-eui`
[v2.16.0](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2026.md)

- Added new `@elastic/eui/no-nested-copy-tooltip` rule to improve
`EuiCopy` usage ([elastic#9852](elastic/eui#9852))
- Updated `@elastic/eui/tooltip-button-icon-wrap` with an exception for
`EuiCopy` usage covered by `@elastic/eui/no-nested-copy-tooltip`
([elastic#9852](elastic/eui#9852))
- Added `button-group-no-invalid-children` rule
([elastic#9849](elastic/eui#9849))
- Added `no-deprecated-icon-aliases` rule
([elastic#9815](elastic/eui#9815))

### `@elastic/eui`
[v119.0.0](https://github.com/elastic/eui/blob/main/packages/eui/changelogs/CHANGELOG_2026.md)

- Bundled icon glyph files into `dist/svgs/` and added
`dist/eui-icons.json` manifest (mapping icon filename stems to SVG
content strings) ([elastic#9873](elastic/eui#9873))
- Added `hasAriaDisabled` prop to `EuiContextMenuItem`
([elastic#9870](elastic/eui#9870))
- Updated `EuiButtonGroup`:
([elastic#9845](elastic/eui#9845))
- Added new render API via `children` prop that allows passing button
components as children
  - Added `variant` prop (usable only with `children` prop)
- Added `gutterSize` prop (usable only with `children` and
`variant="default"` prop)
- Updated `EuiButton`, `EuiButtonEmpty` and `EuiButtonIcon` to consume a
`EuiButtonContext` allowing the group to control common props
([elastic#9845](elastic/eui#9845))
- Updated `EuiFlyoutMenu`:
([elastic#9856](elastic/eui#9856))
- Added `leadingActions` and `trailingActions` props, which accept the
new `EuiFlyoutMenuAction` type supporting `toolTipContent` and
`toolTipProps`
  - Changed the history trigger icon to `clockCounter`
  - Added control-group dividers between built-in controls
- Added `onFirst`, `onLast` to `pagination`, which render optional
buttons for jumping to the beginning and end of the list.
- Deprecated additional `EuiIcon` types that are not represented in
Figma ([elastic#9815](elastic/eui#9815))

**Bug fixes**

- Fixed the missing type declaration for the `focusEuiToolTipTrigger`
test helper ([elastic#9870](elastic/eui#9870))
- Fixed generated icon IDs to remain stable during server-side rendering
([elastic#9866](elastic/eui#9866))
- Fixed a visual bug in `EuiButtonGroup` that rendered duplicate borders
on disabled buttons ([elastic#9845](elastic/eui#9845))
- The `EuiFlyoutMenu` history popover now only appears when
`historyItems` has more than one entry. When there is a single entry in
history, only the Back button is shown.
([elastic#9856](elastic/eui#9856))
- Fixed `EuiFlyoutMenu` pagination controls disappearing when
`pagination.total` is `1`; the controls now render (as "1 of 1" with
both Prev/Next disabled) for any `total` of at least `1`
([elastic#9856](elastic/eui#9856))

**Deprecations**

- Deprecated `customActions` and `EuiFlyoutMenuCustomAction` in
`EuiFlyoutMenu`; use `trailingActions` and `EuiFlyoutMenuAction` instead
([elastic#9856](elastic/eui#9856))

**Breaking changes**

- Removed most deprecated `EuiIcon` types and their icon assets. 16
widely-used deprecated aliases (e.g. `alert`, `search`, `visPie`) remain
temporarily and will be removed in a future release
([elastic#9832](elastic/eui#9832))
([elastic#9815](elastic/eui#9815))

### `@elastic/eui-test-helpers`
[v1.3.0](https://github.com/elastic/eui/blob/main/packages/test-helpers/changelogs/CHANGELOG_2026.md)

- Added `EuiDataGridObject` with `rows`, `cell()`, `cells()`,
`doActionOnColumn()` and `openFullScreenMode()`/`closeFullScreenMode()`
([elastic#9874](elastic/eui#9874))
- Added `EuiSuperSelectObject` with `selectOptionByValue()`,
`selectOptionByLabel()` and `getSelectedValue()`
([elastic#9874](elastic/eui#9874))
- Added `EuiGlobalToastListObject` with a `toasts` locator and
`closeAll()` ([elastic#9874](elastic/eui#9874))

---------

Co-authored-by: Lene Gadewoll <lene.gadewoll@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 18, 2026
…prototypes (elastic#284433)

## Summary

Consume the released
[`@elastic/eui-test-helpers@1.3.0`](https://www.npmjs.com/package/@elastic/eui-test-helpers)
in Kibana and drop the in-repo prototype Component Objects, now that the
EUI port (elastic/eui#9874) is merged and published.

Part of elastic/apps-dx#55 (epic
elastic/apps-dx#43).

## Changes

- Bump `@elastic/eui-test-helpers` `1.2.0` -> `1.3.0` (the release adds
`EuiDataGridObject`, `EuiSuperSelectObject`, `EuiGlobalToastListObject`)
- `eui_components/index.ts` now re-exports those three from the package
instead of the local prototype files
- Delete the three prototype files (`data_grid_object.ts`,
`super_select_object.ts`, `global_toast_list_object.ts`)
- The `page.components.toast()` factory now supplies the
`globalToastList` default subj, since the published object requires an
explicit `testSubj` (that default is a Kibana core convention, so it
belongs on the Kibana factory, not the package)

## Not in this PR

The deprecated `Eui*Wrapper` classes stay until their consumers are
migrated (the per-team PRs under
elastic/apps-dx#56). Deleting them is the
final step, elastic/apps-dx#55.

## Validation

- Type check green (kbn-scout), lint green
- Installed `1.3.0` verified to export all three objects at runtime
- Local Scout runs against a stateful/classic server, all green:
- streams `data_mapping` (exercises `page.components.comboBox` and the
`toasts` page object, both now package-sourced, alongside the
still-local wrappers): 9 passed
  - observability `alerts_table`: 7 passed
- The three objects are byte-identical to the prototypes the merged
helpers PR (elastic#283398) already validated across every Scout lane; this PR
only changes where they are imported from.
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 18, 2026
## Dependency updates

`@elastic/eui` - 118.0.0 ⏩ 119.0.0
`@elastic/eslint-plugin-eui` - 2.15.0 ⏩ 2.16.0
`@elastic/eui-test-helpers` - 1.2.0 ⏩ 1.3.0

## Changes

- Added 3 new `EuiFlyoutMenu` i18n tokens
(`euiFlyoutMenu.history.tooltip`, `euiFlyoutMenu.pagination.first`,
`euiFlyoutMenu.pagination.last`) to `i18n_eui_mapping.tsx` and all
translation files
- Replaced removed `plusInCircle` icon alias with `plusCircle` in the ML
plugin (data frame analytics, anomaly detection jobs, and trained models
menus)

## Package updates

### `@elastic/eslint-plugin-eui`
[v2.16.0](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2026.md)

- Added new `@elastic/eui/no-nested-copy-tooltip` rule to improve
`EuiCopy` usage ([elastic#9852](elastic/eui#9852))
- Updated `@elastic/eui/tooltip-button-icon-wrap` with an exception for
`EuiCopy` usage covered by `@elastic/eui/no-nested-copy-tooltip`
([elastic#9852](elastic/eui#9852))
- Added `button-group-no-invalid-children` rule
([elastic#9849](elastic/eui#9849))
- Added `no-deprecated-icon-aliases` rule
([elastic#9815](elastic/eui#9815))

### `@elastic/eui`
[v119.0.0](https://github.com/elastic/eui/blob/main/packages/eui/changelogs/CHANGELOG_2026.md)

- Bundled icon glyph files into `dist/svgs/` and added
`dist/eui-icons.json` manifest (mapping icon filename stems to SVG
content strings) ([elastic#9873](elastic/eui#9873))
- Added `hasAriaDisabled` prop to `EuiContextMenuItem`
([elastic#9870](elastic/eui#9870))
- Updated `EuiButtonGroup`:
([elastic#9845](elastic/eui#9845))
- Added new render API via `children` prop that allows passing button
components as children
  - Added `variant` prop (usable only with `children` prop)
- Added `gutterSize` prop (usable only with `children` and
`variant="default"` prop)
- Updated `EuiButton`, `EuiButtonEmpty` and `EuiButtonIcon` to consume a
`EuiButtonContext` allowing the group to control common props
([elastic#9845](elastic/eui#9845))
- Updated `EuiFlyoutMenu`:
([elastic#9856](elastic/eui#9856))
- Added `leadingActions` and `trailingActions` props, which accept the
new `EuiFlyoutMenuAction` type supporting `toolTipContent` and
`toolTipProps`
  - Changed the history trigger icon to `clockCounter`
  - Added control-group dividers between built-in controls
- Added `onFirst`, `onLast` to `pagination`, which render optional
buttons for jumping to the beginning and end of the list.
- Deprecated additional `EuiIcon` types that are not represented in
Figma ([elastic#9815](elastic/eui#9815))

**Bug fixes**

- Fixed the missing type declaration for the `focusEuiToolTipTrigger`
test helper ([elastic#9870](elastic/eui#9870))
- Fixed generated icon IDs to remain stable during server-side rendering
([elastic#9866](elastic/eui#9866))
- Fixed a visual bug in `EuiButtonGroup` that rendered duplicate borders
on disabled buttons ([elastic#9845](elastic/eui#9845))
- The `EuiFlyoutMenu` history popover now only appears when
`historyItems` has more than one entry. When there is a single entry in
history, only the Back button is shown.
([elastic#9856](elastic/eui#9856))
- Fixed `EuiFlyoutMenu` pagination controls disappearing when
`pagination.total` is `1`; the controls now render (as "1 of 1" with
both Prev/Next disabled) for any `total` of at least `1`
([elastic#9856](elastic/eui#9856))

**Deprecations**

- Deprecated `customActions` and `EuiFlyoutMenuCustomAction` in
`EuiFlyoutMenu`; use `trailingActions` and `EuiFlyoutMenuAction` instead
([elastic#9856](elastic/eui#9856))

**Breaking changes**

- Removed most deprecated `EuiIcon` types and their icon assets. 16
widely-used deprecated aliases (e.g. `alert`, `search`, `visPie`) remain
temporarily and will be removed in a future release
([elastic#9832](elastic/eui#9832))
([elastic#9815](elastic/eui#9815))

### `@elastic/eui-test-helpers`
[v1.3.0](https://github.com/elastic/eui/blob/main/packages/test-helpers/changelogs/CHANGELOG_2026.md)

- Added `EuiDataGridObject` with `rows`, `cell()`, `cells()`,
`doActionOnColumn()` and `openFullScreenMode()`/`closeFullScreenMode()`
([elastic#9874](elastic/eui#9874))
- Added `EuiSuperSelectObject` with `selectOptionByValue()`,
`selectOptionByLabel()` and `getSelectedValue()`
([elastic#9874](elastic/eui#9874))
- Added `EuiGlobalToastListObject` with a `toasts` locator and
`closeAll()` ([elastic#9874](elastic/eui#9874))

---------

Co-authored-by: Lene Gadewoll <lene.gadewoll@elastic.co>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants