[EuiContextMenuItem] Add hasAriaDisabled prop type - #9870
Merged
mgadewoll merged 3 commits intoAug 6, 2026
Conversation
The prop already worked at runtime by falling through `...rest` into EuiListItemLayout, but it was not declared on `EuiContextMenuItemProps`, so TS consumers had to widen the props themselves. Declare it and forward it explicitly instead of relying on `...rest`. Also adds the missing `simulateFocusVisible` and `focusEuiToolTipTrigger` declarations to the hand-written `src/test/rtl/component_helpers.d.ts`, which is the source of the published test-util types.
brunofarache
marked this pull request as ready for review
August 5, 2026 17:04
Member
Author
|
@mgadewoll would you mind taking a look? You worked on (I don't have permission to add reviewers on this repo, hence the mention.) |
brunofarache
added a commit
to brunofarache/kibana
that referenced
this pull request
Aug 5, 2026
Both workarounds for EUI 118 typing gaps — the local `AriaDisabledContextMenuItem` aliases and the inlined `focusEuiToolTipTrigger` test helpers — are covered by elastic/eui#9870, so name it as the removal trigger in all four comments.
1 visual difference(s) found - expand to review, then click Approve visual changes to update baselineseuidatagrid (1 difference)
|
mgadewoll
approved these changes
Aug 6, 2026
mgadewoll
left a comment
Contributor
There was a problem hiding this comment.
🟢 Changes are LGTM. The added behavior works as expected.
Thanks for the update! It's nice to see that hasAriaDisabled is getting more traction beyond the initial set of supported components 🎉
Contributor
|
buildkite test this |
💚 Build Succeeded
History
|
💚 Build Succeeded
History
|
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
## 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
## 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
What: Declares the
hasAriaDisabledprop onEuiContextMenuItemPropsand forwards it explicitly toEuiListItemLayout. Also adds the missingfocusEuiToolTipTriggerdeclaration to the published test-util types.Why:
hasAriaDisabled(#9214) already worked onEuiContextMenuItemat runtime — it fell through...restintoEuiListItemLayout, which declares the prop, performs thedisabled→aria-disabledswap viauseEuiDisabledElement, ships a dedicated disabled style, and keeps the item focusable so atoolTipContentexplaining why it's disabled stays reachable. Only the prop type was missing, so TS consumers have to widen the props themselves.This came out of elastic/kibana#281982 ([Agent Builder] Return conversation permissions for rename and delete), which disables the Rename / Delete context menu items when the user lacks permission and attaches a
toolTipContentexplaining why. A nativelydisableditem is removed from the tab order and dispatches no mouse events, so that explanation is unreachable by both mouse and keyboard — exactly whathasAriaDisabledexists to solve. Because the prop is undeclared, that PR carries two workarounds it can delete once this ships:const AriaDisabledContextMenuItem: React.FC<EuiContextMenuItemProps & EuiDisabledProps> = EuiContextMenuItem;— duplicated inconversation_title.tsxandconversation_list_item_row.tsx.focusEuiToolTipTriggerin the two sibling test files, because the published declarations don't export EUI's own.How:
EuiContextMenuItemPropsnow extendsPick<EuiDisabledProps, 'hasAriaDisabled'>rather than the fullEuiDisabledProps: the full type also carriesisDisabled, and this component's disabled prop is nameddisabled— extending fully would add a second, dead disabled prop.EuiListItemLayoutexplicitly instead of relying on...rest, which was accidental and would silently break ifrestwere ever allow-listed.src/test/rtl/component_helpers.d.tsis hand-written and is the source the build uses for the publishedlib/test/rtltypes (seescripts/compile-eui.js), sofocusEuiToolTipTrigger(added in #9201) existed at runtime but not in the published declarations — external consumers got TS2305 importingfocusEuiToolTipTriggerfrom@elastic/eui/lib/test/rtl. Kibana currently inlines a copy of the helper in two test files because of this.API Changes
disabledattribute foraria-disabledso a disabled item stays focusable and itstoolTipContentstays reachable. Runtime behavior was already supported; this only adds the type.@elastic/eui/lib/test/rtlScreenshots
No visual change. The disabled-with-tooltip rendering is unchanged from what
EuiListItemLayoutalready produced for consumers passing the prop through untyped.Impact Assessment
Impact level: 🟢 None — purely additive types plus an explicit prop forward; no rendered output changes for existing usages.
Release Readiness
EuiDisabledProps['hasAriaDisabled']carries over. The general guidance already lives on the Tooltip / Disabled elements page.FigmaMigration guideagent_builder) is the driving consumer — it deletes the twoAriaDisabledContextMenuItemlocal aliases and the two inlinedfocusEuiToolTipTriggercopies once this ships.QA instructions for reviewer
Navigation/EuiContextMenu/EuiContextMenuItem→ Playground.disabled: true,hasAriaDisabled: trueand fill intoolTipContent.aria-disabled="true"and nodisabledattribute.hasAriaDisabled: false, confirm the item is nativelydisabledas before.Checklist before marking Ready for Review
QA: Tested docs changesdescribe('hasAriaDisabled')incontext_menu_item.test.tsx) — verified they fail without the prop forwardBreaking changes