Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
4c698c4
Add FlyoutSystemMenu component (#8851)
tsullivan Jul 25, 2025
8f1370b
[flyouts] Developer API + sessions (#8939)
clintandrewhall Sep 2, 2025
baaa271
[Flyout System] Support size="fill" (#8982)
tsullivan Sep 4, 2025
225db60
[Flyout System] Support resizing flyouts (#8999)
tkajtoch Sep 16, 2025
ecd3535
[Flyout system] Improve flyout animations (#9025)
tkajtoch Sep 16, 2025
d811dac
[Flyout System] require title for session flyouts, support custom act…
tsullivan Sep 16, 2025
ab3d37d
Make the resizable hook inert when resizable is not enabled (#9052)
tsullivan Sep 24, 2025
a8c300b
[Flyout System] Integrate unmanaged EuiFlyout animations with state t…
tkajtoch Sep 25, 2025
faf365c
[Flyout System] Add managed history controls (#9003)
tsullivan Sep 29, 2025
4538a3b
[Flyout System] Clean up storybooks (#9070)
tsullivan Oct 3, 2025
75528cf
[Flyout System] Automatic aria-labelledby referencing the EuiFlyoutMe…
tsullivan Oct 3, 2025
e252ac2
[Flyout System] Allow flyout size to be undefined, default to ‘m’ (#9…
tsullivan Oct 6, 2025
1e403fa
[Flyout System] Improve validation and error logging (#9091)
tsullivan Oct 10, 2025
ff3c788
[Flyout System] Remove `isOpen` prop (#9083)
tkajtoch Oct 12, 2025
3cc1e53
[Flyout System] improve size validation flexibility and bidirectional…
tsullivan Oct 14, 2025
33f76da
feat: Add a new boolean `childBackgroundShaded` prop to the Flyout to…
paulinashakirova Oct 15, 2025
13d1386
Merge branch 'main' into feat/flyout-system
tsullivan Oct 15, 2025
801ecc6
[Flyout System] Add the flyout overlay mask back (#9077)
tkajtoch Oct 15, 2025
96cc060
[fix] Keep Flyout Manager sync'd across React roots. (#9075)
clintandrewhall Oct 15, 2025
b5267a4
[flyout system/fix] Breaking: Prevent default configuration flyouts f…
clintandrewhall Oct 17, 2025
848b26a
[Flyout System] Set ownFocus=false in storybooks (#9123)
tsullivan Oct 17, 2025
8355682
[Flyout System] Consistent Loki configuration for storybooks (#9122)
tsullivan Oct 23, 2025
5db6b8d
[Flyout system] Update consumer and developer documentation (#9101)
tkajtoch Oct 23, 2025
a0947b7
[Flyout System] Corrections to flyout/manager/README.md
tsullivan Oct 24, 2025
8106296
fix session management docs for codesandbox
tsullivan Oct 24, 2025
b439854
Document new interfaces and props
tsullivan Oct 24, 2025
87af8c3
add EuiFlyoutMenu props to docs website
tsullivan Oct 24, 2025
f00a6a4
[Flyout System] Avoid making breaking type changes (#9139)
tsullivan Oct 27, 2025
32edff0
[Flyout System] Improve docs of EuiFlyoutMenu
tsullivan Oct 27, 2025
0e4460c
Merge branch 'main' into feat/flyout-system
tsullivan Oct 28, 2025
3bd96e3
add eui-theme-* changelog files
tsullivan Oct 28, 2025
9bd2d75
[Flyout System] Cleanup TODOs (#9155)
tkajtoch Oct 28, 2025
00a5e8a
[EuiFlyoutMenu] add `hideTitle` prop for “main” flyouts in a session
tsullivan Oct 24, 2025
88c60b4
hide the main flyout title without breaking screen reader
tsullivan Oct 24, 2025
b168909
Change title check to warning
tsullivan Oct 27, 2025
58982ef
Add/Update unit tests
tsullivan Oct 24, 2025
867d6ba
Update docs
tsullivan Oct 27, 2025
e9135e1
add changelog
tsullivan Oct 28, 2025
ea7fa74
Merge branch 'feat/flyout-system' into flyout-system/fix-main-header-…
tsullivan Oct 29, 2025
20cf2ab
Merge branch 'main' into flyout-system/fix-main-header-design
tsullivan Oct 30, 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
5 changes: 5 additions & 0 deletions packages/eui/changelogs/upcoming/9150.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**Bug fixes**

- Fixed `EuiFlyoutMenu` by adding a `hideTitle` prop to hide the title when not needed.
- The value `false` most scenarios to maintain backward compatibility.
- For "main" flyouts in the managed flyout system, it is automatically set to `true`.
15 changes: 14 additions & 1 deletion packages/eui/src/components/flyout/flyout.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,15 @@ export const EuiFlyoutComponent = forwardRef(
return _titleId || generatedMenuId;
}, [hasMenu, _titleId, generatedMenuId]);

// If the flyout level is LEVEL_MAIN, the title should be hidden by default
const flyoutMenuHideTitle = useMemo(() => {
if (!hasMenu) return undefined;
if (_flyoutMenuProps?.hideTitle !== undefined) {
return _flyoutMenuProps.hideTitle;
}
return currentSession?.mainFlyoutId === flyoutId;
}, [hasMenu, _flyoutMenuProps, currentSession, flyoutId]);

const ariaLabelledBy = useMemo(() => {
if (flyoutMenuId) {
return classnames(flyoutMenuId, _ariaLabelledBy);
Expand Down Expand Up @@ -617,7 +626,11 @@ export const EuiFlyoutComponent = forwardRef(
/>
)}
{_flyoutMenuProps && (
<EuiFlyoutMenu {...flyoutMenuProps} titleId={flyoutMenuId} />
<EuiFlyoutMenu
{...flyoutMenuProps}
hideTitle={flyoutMenuHideTitle}
titleId={flyoutMenuId}
/>
)}
{resizable && (
<EuiFlyoutResizeButton
Expand Down
16 changes: 16 additions & 0 deletions packages/eui/src/components/flyout/flyout_menu.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { EuiText } from '../text';
import { EuiFlyout } from './flyout';
import { EuiFlyoutBody } from './flyout_body';
import { EuiFlyoutMenu, EuiFlyoutMenuProps } from './flyout_menu';
import { EuiFlyoutHeader } from './flyout_header';

interface Args extends EuiFlyoutMenuProps {
showCustomActions: boolean;
Expand All @@ -26,6 +27,7 @@ const meta: Meta<Args> = {
title: 'Layout/EuiFlyout/EuiFlyoutMenu',
component: EuiFlyoutMenu,
argTypes: {
hideTitle: { control: 'boolean' },
showBackButton: { control: 'boolean' },
showCustomActions: { control: 'boolean' },
'aria-label': { table: { disable: true } },
Expand All @@ -38,13 +40,15 @@ const meta: Meta<Args> = {
showBackButton: true,
showCustomActions: true,
showHistoryItems: true,
hideTitle: true,
},
};

export default meta;

const MenuBarFlyout = (args: Args) => {
const {
hideTitle,
hideCloseButton,
showBackButton,
showCustomActions,
Expand Down Expand Up @@ -80,6 +84,8 @@ const MenuBarFlyout = (args: Args) => {
'aria-label': `${iconType} action`,
}));

const titleId = 'menu-bar-example-main-title';

return (
<>
<EuiButton onClick={openFlyout} disabled={isFlyoutOpen}>
Expand All @@ -94,15 +100,25 @@ const MenuBarFlyout = (args: Args) => {
type="overlay"
outsideClickCloses={false}
ownFocus
aria-labelledby={titleId}
flyoutMenuProps={{
title: 'Flyout title',
titleId,
hideTitle,
hideCloseButton,
showBackButton,
backButtonProps,
historyItems,
customActions: showCustomActions ? customActions : undefined,
}}
>
{hideTitle && (
<EuiFlyoutHeader hasBorder>
<EuiText>
<h2 id={titleId}>Simple flyout header</h2>
</EuiText>
</EuiFlyoutHeader>
)}
<EuiFlyoutBody>
<EuiText>
<p>Simple flyout content.</p>
Expand Down
4 changes: 4 additions & 0 deletions packages/eui/src/components/flyout/flyout_menu.styles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import { css } from '@emotion/react';
import { UseEuiTheme } from '../../services';
import { euiScreenReaderOnly } from '../accessibility';

export const euiFlyoutMenuStyles = (euiThemeContext: UseEuiTheme) => {
const { euiTheme } = euiThemeContext;
Expand All @@ -31,5 +32,8 @@ export const euiFlyoutMenuStyles = (euiThemeContext: UseEuiTheme) => {
euiFlyoutMenu__actions: css`
block-size: calc(${euiTheme.size.m} * 1.8);
`,
euiFlyoutMenu__hiddenTitle: css`
${euiScreenReaderOnly()}
`,
};
};
Loading