diff --git a/packages/eui/.loki/reference/chrome_desktop_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png b/packages/eui/.loki/reference/chrome_desktop_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png index 5af22df8385..beba766149c 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png and b/packages/eui/.loki/reference/chrome_desktop_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png b/packages/eui/.loki/reference/chrome_mobile_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png index efab92101b5..9ff920f7ca3 100644 Binary files a/packages/eui/.loki/reference/chrome_mobile_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png and b/packages/eui/.loki/reference/chrome_mobile_Layout_EuiPage_EuiPageHeader_EuiPageHeaderContent_Legacy_Children_Only.png differ diff --git a/packages/eui/changelogs/upcoming/8965.md b/packages/eui/changelogs/upcoming/8965.md new file mode 100644 index 00000000000..3c13af352b0 --- /dev/null +++ b/packages/eui/changelogs/upcoming/8965.md @@ -0,0 +1,4 @@ +**Bug fixes** + +- Fixed `restrictWidth` not applying to `EuiPageHeaderContent` when only `children` are used as content + diff --git a/packages/eui/src/components/page/page_header/page_header_content.stories.tsx b/packages/eui/src/components/page/page_header/page_header_content.stories.tsx index 3e2d791ece4..f2e4f8502a7 100644 --- a/packages/eui/src/components/page/page_header/page_header_content.stories.tsx +++ b/packages/eui/src/components/page/page_header/page_header_content.stories.tsx @@ -8,17 +8,49 @@ import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; +import { css } from '@emotion/react'; import { hideStorybookControls } from '../../../../.storybook/utils'; import { EuiButton } from '../../button'; import { EuiCallOut } from '../../call_out'; import { EuiTitle } from '../../title'; -import { EuiPageHeaderSection } from './page_header_section'; +import { EuiFlexGroup, EuiFlexItem } from '../../flex'; +import { EuiBreadcrumbs } from '../../breadcrumbs'; +import { EuiIcon } from '../../icon'; +import { EuiSpacer } from '../../spacer'; +import { EuiTab, EuiTabs } from '../../tabs'; +import { EuiText } from '../../text'; + import { EuiPageHeaderContent, EuiPageHeaderContentProps, } from './page_header_content'; +const tabs = [ + { + label: 'Tab 1', + isSelected: true, + }, + { + label: 'Tab 2', + }, +]; + +const breadcrumbs = [ + { + text: 'Breadcrumb 1', + href: '#', + }, + { + text: 'Breadcrumb 2', + href: '#', + }, + { + text: 'Current', + href: '#', + }, +]; + const meta: Meta = { title: 'Layout/EuiPage/EuiPageHeader/EuiPageHeaderContent', component: EuiPageHeaderContent, @@ -35,6 +67,10 @@ const meta: Meta = { control: 'select', options: [true, false, 'reverse'], }, + restrictWidth: { + control: 'select', + options: [true, false, 500, 900, 1800, '25%', '50%', '75%'], + }, }, args: { // Component defaults @@ -60,55 +96,65 @@ export const Playground: Story = { Add something, Do something, ], - tabs: [ - { - label: 'Tab 1', - isSelected: true, - }, - { - label: 'Tab 2', - }, - ], - breadcrumbs: [ - { - text: 'Breadcrumb 1', - href: '#', - }, - { - text: 'Breadcrumb 2', - href: '#', - }, - { - text: 'Current', - href: '#', - }, - ], + tabs, + breadcrumbs, }, }; export const LegacyChildrenOnly: Story = { parameters: { controls: { - include: ['alignItems', 'responsive', 'bottomBorder', 'paddingSize'], + include: [ + 'alignItems', + 'responsive', + 'bottomBorder', + 'paddingSize', + 'restrictWidth', + ], }, }, args: { children: ( - <> - - -

Page title

-
-
- - + + + + + + + +

Page title

+
+
+
+ + Example of a description. + + +
+ - Add something -
-
- + Add something + Do something + + + + + {tabs.map((tab) => ( + {tab.label} + ))} + + ), }, }; diff --git a/packages/eui/src/components/page/page_header/page_header_content.tsx b/packages/eui/src/components/page/page_header/page_header_content.tsx index 62cb21a2614..d15464e18fd 100644 --- a/packages/eui/src/components/page/page_header/page_header_content.tsx +++ b/packages/eui/src/components/page/page_header/page_header_content.tsx @@ -225,7 +225,7 @@ export const EuiPageHeaderContent: FunctionComponent< // Don't go any further if there's no other content than children if (onlyChildren) { return ( -
+
{children}
); diff --git a/packages/eui/src/components/page_template/__snapshots__/page_template.test.tsx.snap b/packages/eui/src/components/page_template/__snapshots__/page_template.test.tsx.snap index 6ee2ef85931..f67de484f33 100644 --- a/packages/eui/src/components/page_template/__snapshots__/page_template.test.tsx.snap +++ b/packages/eui/src/components/page_template/__snapshots__/page_template.test.tsx.snap @@ -98,6 +98,7 @@ exports[`EuiPageTemplate children renders all other types within the main EuiPag >
); + +const customHeaderContent = ( + + + + + + + + +

Page Title

+
+
+
+ + Button + +
+ + Example of a description. +
+
+
+); + const sectionContent = ( <> @@ -47,6 +76,7 @@ const sectionContent = ( ); + const sidebarContent = ( @@ -128,6 +158,7 @@ export const Playground: Story = { 'Without header', 'Without bottom bar', 'With empty prompt content', + 'With custom header content', ], mapping: { 'With everything': [ @@ -145,6 +176,7 @@ export const Playground: Story = { emptyPromptContent, bottomBarContent, ], + 'With custom header content': [customHeaderContent, sectionContent], }, }, },