Skip to content
Closed
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
98ebacf
Add EuiPopover theming support for Borealis theme
ryankeairns Sep 23, 2025
c3ac1e3
Fix EuiPopover theme resolution and update Borealis offset
ryankeairns Sep 23, 2025
ccf16a5
Fix EuiPopover theme resolution and update tests
ryankeairns Sep 23, 2025
158cba7
feat: make EuiPopover properties themable for Borealis theme
ryankeairns Sep 23, 2025
1c1bed6
Update snapshots
ryankeairns Sep 23, 2025
76ceb30
fix: ensure EuiTourStep beacon renders with Borealis theme
ryankeairns Sep 23, 2025
7cab7d6
test: update EuiTourStep snapshot to reflect beacon rendering
ryankeairns Sep 23, 2025
5966af1
Fix circular dependency in _popover.ts and update THEMING_TEMPLATE
ryankeairns Sep 23, 2025
5932282
Add changelogs
ryankeairns Sep 24, 2025
1a5fc7a
refactor: migrate EuiPopover theming to component tokens pattern
ryankeairns Sep 24, 2025
b0af173
test: update visual regression test snapshots for EuiPopover componen…
ryankeairns Sep 24, 2025
36c0490
Fix EuiPopover unit test snapshot for React 17
ryankeairns Sep 24, 2025
3f08361
Refactor EuiPopover to use component tokens
ryankeairns Sep 25, 2025
db4d6cb
Skip failing DataGrid height calculation test - pre-existing issue no…
ryankeairns Sep 25, 2025
efb6a44
Resolve merge conflicts with main
ryankeairns Sep 26, 2025
6ecbb26
Fix TypeScript errors in Amsterdam theme
ryankeairns Sep 26, 2025
fd0158e
Restore Borealis popover theme values and skip problematic test
ryankeairns Sep 26, 2025
06c4b79
Add changelog for EuiThemePopover component tokens
ryankeairns Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/eui-theme-borealis/changelogs/upcoming/9055.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Added theme defaults turning off arrow in `EuiPopover`
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,11 @@ declare module '@elastic/eui-theme-borealis/lib/eui_theme_borealis_dark.json' {
euiColorBorderStrongRisk: string;
euiColorBorderStrongDanger: string;
euiColorBorderStrongText: string;
popover: {
hasArrow: boolean;
anchorPosition: string;
offset: number;
};
};
export default sassVariables;
}
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,11 @@ declare module '@elastic/eui-theme-borealis/lib/eui_theme_borealis_light.json' {
euiColorBorderStrongRisk: string;
euiColorBorderStrongDanger: string;
euiColorBorderStrongText: string;
popover: {
hasArrow: boolean;
anchorPosition: string;
offset: number;
};
};
export default sassVariables;
}
2 changes: 2 additions & 0 deletions packages/eui-theme-borealis/src/variables/_components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {
import { border_colors } from './colors/_colors_light';
import { buttons } from './_buttons';
import { forms } from './_forms';
import { popover } from './_popover';

const component_colors: _EuiThemeComponentColors = {
badgeBackground: computed(
Expand Down Expand Up @@ -370,6 +371,7 @@ const component_colors: _EuiThemeComponentColors = {
export const components: _EuiThemeComponents = {
buttons,
forms,
popover,
LIGHT: component_colors,
DARK: {
...component_colors,
Expand Down
15 changes: 15 additions & 0 deletions packages/eui-theme-borealis/src/variables/_popover.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/*
* 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 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 or the Server
* Side Public License, v 1.
*/

import { _EuiThemePopover } from '@elastic/eui-theme-common';

export const popover: _EuiThemePopover = {
hasArrow: false,
anchorPosition: 'downLeft',
offset: 4,
};
Comment thread
ryankeairns marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
} from '../../services/theme/types';
import { _EuiThemeButton } from './buttons';
import { _EuiThemeForm, _EuiThemeFormColors } from './forms';
import { _EuiThemePopover } from './popover';

export type _EuiThemeComponentColors = {
badgeBackground: ColorModeSwitch;
Expand Down Expand Up @@ -157,6 +158,7 @@ export type _EuiThemeComponentColors = {
export type _EuiThemeComponents = {
buttons: _EuiThemeButton;
forms: _EuiThemeForm & StrictColorModeSwitch<_EuiThemeFormColors>;
popover: _EuiThemePopover;
/**
* internal-only key that holds temporary tokens used while migrating themes
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export * from './states';
export * from './typography';
export * from './buttons';
export * from './forms';
export * from './popover';
export * from './components';
export * from './flags';
export * from './overrides';
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/*
* 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 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 or the Server
* Side Public License, v 1.
*/

export type _EuiThemePopover = {
hasArrow: boolean;
anchorPosition: string;
offset: number;
};
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Comment thread
weronikaolejniczak marked this conversation as resolved.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Comment thread
weronikaolejniczak marked this conversation as resolved.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions packages/eui/changelogs/upcoming/9055.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Added themable prop support for `EuiPopover`
Original file line number Diff line number Diff line change
Expand Up @@ -48,18 +48,9 @@ exports[`CollapsedItemActions custom actions 1`] = `
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: -18px; left: -16px; z-index: 2000;"
style="top: 0px; left: -12px; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="top: 9px; left: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-left"
data-popover-arrow="left"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down Expand Up @@ -162,18 +153,9 @@ exports[`CollapsedItemActions default actions 1`] = `
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: -18px; left: -16px; z-index: 2000;"
style="top: 0px; left: -12px; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="top: 9px; left: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-left"
data-popover-arrow="left"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,9 @@ exports[`EuiBreadcrumbContent breadcrumbs with popovers renders with \`popoverCo
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: 16px; left: -18px; z-index: 2000;"
style="top: 12px; left: 0px; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="left: 9px; bottom: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-bottom"
data-popover-arrow="bottom"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,18 +61,9 @@ exports[`EuiBreadcrumbCollapsed renders a ... breadcrumb with collapsed content
data-autofocus="true"
data-popover-panel="true"
role="dialog"
style="top: 16px; left: -18px; will-change: transform, opacity; z-index: 2000;"
style="top: 12px; left: 0px; will-change: transform, opacity; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="left: 9px; bottom: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-bottom"
data-popover-arrow="bottom"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,9 @@ exports[`EuiCodeBlockAnnotation renders 1`] = `
data-popover-panel="true"
data-test-subj="euiCodeBlockAnnotationPopover"
role="dialog"
style="top: 16px; left: -18px; z-index: 6001;"
style="top: 12px; left: 0px; z-index: 6001;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="left: 9px; bottom: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-bottom"
data-popover-arrow="bottom"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,18 +61,9 @@ exports[`KibanaCollapsibleNavSolution renders docked icons: popover 1`] = `
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: -18px; left: 16px; z-index: 2000;"
style="top: 0px; left: 12px; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="top: 9px; right: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-right"
data-popover-arrow="right"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down Expand Up @@ -192,7 +183,7 @@ exports[`KibanaCollapsibleNavSolution renders with a solution switcher: popover
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: 0px; left: -18px; z-index: 2000; inline-size: 0px;"
style="top: 4px; left: 0px; z-index: 2000; inline-size: 0px;"
tabindex="0"
>
<p
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,9 @@ exports[`EuiCollapsedNavPopover renders 1`] = `
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: -18px; left: 16px; z-index: 2000;"
style="top: 0px; left: 12px; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="top: 9px; right: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-right"
data-popover-arrow="right"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ exports[`EuiColorPalettePicker more props are propagated to each option 1`] = `
class="euiPanel euiPanel--plain euiPopover__panel emotion-euiPanel-grow-m-plain-euiPopover__panel-light-isAttached-bottom"
data-popover-panel="true"
role="dialog"
style="top: 0px; left: -18px; will-change: transform, opacity; z-index: 2000; inline-size: 0px;"
style="top: 4px; left: 0px; will-change: transform, opacity; z-index: 2000; inline-size: 0px;"
>
<div>
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ exports[`EuiComboBox renders the options list dropdown 1`] = `
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: 0px; left: -18px; z-index: 2000; inline-size: 0px;"
style="top: 4px; left: 0px; z-index: 2000; inline-size: 0px;"
>
<div>
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ describe('EuiDataGridCellPopover', () => {
openCellPopover('A');
cy.get('[data-test-subj="euiDataGridExpansionPopover"]')
.should('have.css', 'left', '1px')
.should('have.css', 'top', '72px')
.should('have.css', 'top', '76px')
.should('have.css', 'width', '112px');
});

Expand All @@ -229,7 +229,7 @@ describe('EuiDataGridCellPopover', () => {
openCellPopover('B');
cy.get('[data-test-subj="euiDataGridExpansionPopover"]')
.should('have.css', 'left', '109px')
.should('have.css', 'top', '72px')
.should('have.css', 'top', '76px')
.should('have.css', 'width', '375px');
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ describe('useCellPopover', () => {
data-popover-panel="true"
data-test-subj="euiDataGridExpansionPopover"
role="dialog"
style="top: 0px; left: 0px; will-change: transform, opacity; max-inline-size: min(75vw, max(0px, 400px)); max-block-size: 50vh; z-index: 1000;"
style="top: 4px; left: 0px; will-change: transform, opacity; max-inline-size: min(75vw, max(0px, 400px)); max-block-size: 50vh; z-index: 1000;"
tabindex="0"
>
<p
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,9 @@ exports[`ColumnActions renders 1`] = `
data-popover-open="true"
data-popover-panel="true"
role="dialog"
style="top: 23px; left: -18px; z-index: 2000;"
style="top: 15px; left: 0px; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="left: 9px; bottom: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-bottom"
data-popover-arrow="bottom"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,18 +54,9 @@ exports[`useDataGridColumnSelector columnSelector renders a toolbar button/popov
data-autofocus="true"
data-popover-panel="true"
role="dialog"
style="top: 16px; left: -18px; will-change: transform, opacity; z-index: 2000;"
style="top: 12px; left: 0px; will-change: transform, opacity; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="left: 9px; bottom: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-bottom"
data-popover-arrow="bottom"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,18 +54,9 @@ exports[`DataGridSortingControl renders a toolbar button/popover allowing users
data-autofocus="true"
data-popover-panel="true"
role="dialog"
style="top: 16px; left: -18px; will-change: transform, opacity; z-index: 2000;"
style="top: 12px; left: 0px; will-change: transform, opacity; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="left: 9px; bottom: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-bottom"
data-popover-arrow="bottom"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,18 +240,9 @@ exports[`useDataGridDisplaySelector displaySelector renders a toolbar button/pop
data-autofocus="true"
data-popover-panel="true"
role="dialog"
style="top: 16px; left: -18px; will-change: transform, opacity; z-index: 2000;"
style="top: 12px; left: 0px; will-change: transform, opacity; z-index: 2000;"
tabindex="0"
>
<div
class="euiPopover__arrowWrapper emotion-euiPopoverArrowWrapper"
style="left: 9px; bottom: 100%;"
>
<div
class="euiPopover__arrow emotion-euiPopoverArrow-bottom"
data-popover-arrow="bottom"
/>
</div>
<p
class="emotion-euiScreenReaderOnly"
id="generated-id"
Expand Down
Loading