Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade EUI to v63.0.6 - updates to new EuiPageTemplate and deprecates old page components #139524

Merged
merged 60 commits into from
Sep 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
2f0dd94
Update all usages of EuiPageTemplate to EuiPageTemplate_Deprecated
Jun 6, 2022
f55db1d
EuiPageContent_Deprecated as EuiPageContent
Jun 28, 2022
3d8e92f
EuiPageContentBody_Deprecated as EuiPageContentBody
Jun 28, 2022
8150158
EuiPageContentHeader_Deprecated as EuiPageContentHeader
Jun 28, 2022
ff13084
EuiPageContentHeaderSection_Deprecated as EuiPageContentHeaderSection
Jun 28, 2022
dd2b86d
EuiPageSideBar_Deprecated as EuiPageSideBar
Jun 28, 2022
1441e14
EuiPageContent__Deprecated to EuiPageContent_Deprecated
Jun 28, 2022
989911a
Fix rogue semi-colons
Aug 3, 2022
80ee608
WIP: NoDataConfigPage & NoDataPage converted to new template
Aug 3, 2022
ea6328c
WIP: KibanaPageTemplateInner converted to use new template
Aug 3, 2022
3edccbd
WIP: `withSolutionNav` now renders the sidebar content properly
Aug 3, 2022
e0354a0
Fixing stickiness of sidebar
Aug 3, 2022
d7a91f3
[Security] Fixed SecuritySolutionTemplateWrapper’s usage
Aug 3, 2022
38bc08f
[O11y] Wrap `children` with EuiPageTemplate.Section
Aug 3, 2022
e25c2c1
Fix getting_started usage
Aug 3, 2022
63d36e6
WIP: Fixing types
Aug 3, 2022
657e2dd
Removing `template` pass through
Aug 9, 2022
a30f768
Set EUI to 63.0.0
Aug 10, 2022
4630a60
[CI] Auto-commit changed files from 'node scripts/eslint --no-cache -…
kibanamachine Aug 10, 2022
8bf432f
More import fixes
Aug 10, 2022
0379b68
Sidebar component update
Aug 10, 2022
c4a562d
Expand `KibanaPageTemplate` to all namespaced EUI counterparts
Aug 10, 2022
1d50937
Updated the tutorial mdx page
Aug 10, 2022
542c9c9
[Stack Management] Updated app layout to new template
Aug 11, 2022
07ef84b
Fix circular dep
Aug 11, 2022
8aeb29b
Fix new circular dependency
cee-chen Aug 25, 2022
26901b2
[Security Solution] Remove `template` prop - no longer a prop on Kiba…
cee-chen Aug 26, 2022
e489f36
[O11y] Allow customizing EuiPageTemplate.Section wrapper
cee-chen Aug 26, 2022
dd106d8
[Enterprise Search] Update page templates
cee-chen Aug 26, 2022
8adc28a
Update KibanaPageTemplate tests
cee-chen Aug 26, 2022
95cf2e3
Update snapshots
cee-chen Aug 26, 2022
fc95d52
Fix FTR test with removed EUI classNames
cee-chen Aug 26, 2022
4a1a4d3
Fix FTR tests with changed kbn classNames
cee-chen Aug 26, 2022
6e277cc
Update failing dashboard snapshots
cee-chen Aug 29, 2022
271bcde
Fix failing Security Cypress test
cee-chen Aug 29, 2022
df1ae27
[O11y] Fix Inventory page using deprecated CSS hooks
cee-chen Aug 29, 2022
84c278e
[O11y][Uptime] Fix missing bottom bars
cee-chen Aug 29, 2022
aefaf03
[O11y] Fix route template typing
cee-chen Aug 29, 2022
289331b
Fix broken minWidth behavior
cee-chen Aug 30, 2022
4c124a0
[Security Solution] Type fixes, restore empty state
cee-chen Aug 30, 2022
4f2b524
Fix failing synthetics selector
cee-chen Aug 30, 2022
321f6b1
Grab EUI v63.0.6
cee-chen Aug 31, 2022
0c929b4
Fix Kibana Overview plugin layout
cee-chen Aug 31, 2022
3811b6b
Convert Home plugin to new KibanaPageTemplate
cee-chen Aug 31, 2022
87a54b9
Merge branch 'main' into test/page_template
kibanamachine Aug 31, 2022
0dc8919
Merge branch 'main' into test/page_template
kibanamachine Aug 31, 2022
6238e3c
Merge branch 'main' into test/page_template
kibanamachine Aug 31, 2022
c90b633
Merge branch 'main' into test/page_template
kibanamachine Sep 1, 2022
aed01d5
Merge branch 'main' into test/page_template
kibanamachine Sep 1, 2022
6eacf3c
[O11y] Fix non-centered empty/loading states
cee-chen Sep 1, 2022
8674c6c
[O11y] Restore subdued background on various empty state prompts
cee-chen Sep 1, 2022
cc623b9
[O11y] Fix all instances of views that require a scrollable full-heig…
cee-chen Sep 1, 2022
e7af253
[O11y][ux] Fix broken sidebar
cee-chen Sep 1, 2022
4f7fa44
Merge remote-tracking branch 'upstream/main' into test/page_template
cee-chen Sep 1, 2022
7ee2602
Merge branch 'main' into test/page_template
cee-chen Sep 6, 2022
e330e35
Merge branch 'main' into test/page_template
kibanamachine Sep 6, 2022
462963d
[APM Cypress tests] harden flaky test
cee-chen Sep 6, 2022
f1f429d
[APM Cypress tests] Fix failing Cypress test, again
cee-chen Sep 6, 2022
62d884d
Merge branch 'main' into test/page_template
cee-chen Sep 7, 2022
ce90eec
Merge branch 'main' into test/page_template
kibanamachine Sep 7, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
187 changes: 94 additions & 93 deletions dev_docs/tutorials/kibana_page_template.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,96 +2,26 @@
id: kibDevDocsKPTTutorial
slug: /kibana-dev-docs/tutorials/kibana-page-template
title: Kibana Page Template
description: Learn how to create pages in Kibana
description: Learn how to create page layouts in Kibana
date: 2021-03-20
tags: ['kibana', 'dev', 'ui', 'tutorials']
tags: ['kibana', 'dev', 'ui', 'tutorials', 'pages', 'layout']
---

`KibanaPageTemplate` is a thin wrapper around [EuiPageTemplate](https://elastic.github.io/eui/#/layout/page) that makes setting up common types of Kibana pages quicker and easier while also adhering to any Kibana-specific requirements and patterns.

Refer to EUI's documentation on [**EuiPageTemplate**](https://elastic.github.io/eui/#/layout/page) for constructing page layouts.

## `isEmptyState`

Use the `isEmptyState` prop for when there is no page content to show. For example, before the user has created something, when no search results are found, before data is populated, or when permissions aren't met.

The default empty state uses any `pageHeader` info provided to populate an [**EuiEmptyPrompt**](https://elastic.github.io/eui/#/display/empty-prompt) and uses the `centeredBody` template type.

```tsx
<KibanaPageTemplate
isEmptyState={true}
pageHeader={{
iconType: 'dashboardApp',
pageTitle: 'Dashboards',
description: "You don't have any dashboards yet.",
rightSideItems: [
<EuiButton fill iconType="plusInCircleFilled">
Create new dashboard
</EuiButton>,
],
}}
/>
```

![Screenshot of demo empty state code. Shows the Kibana navigation bars and a centered empty state with the dashboard app icon, a level 1 heading "Dashboards", body text "You don't have any dashboards yet.", and a button that says "Create new dashboard".](../assets/kibana_default_empty_state.png)

<DocCallOut color="warning" title="Missing page header content can lead to an anemic empty state">
Because all properties of the page header are optional, the empty state has the potential to
render blank. Make sure your empty state doesn't leave the user confused.
<DocCallOut color="warning" title="Multiple Packages">
Be sure to import the `KibanaPageTemplate` from `@kbn/shared-ux-page-kibana-template`.
</DocCallOut>

### Custom empty state

You can also provide a custom empty prompt to replace the pre-built one. You'll want to remove any `pageHeader` props and pass an [`EuiEmptyPrompt`](https://elastic.github.io/eui/#/display/empty-prompt) directly as the child of KibanaPageTemplate.

```tsx
<KibanaPageTemplate isEmptyState={true}>
<EuiEmptyPrompt
title={<h1>No data</h1>}
body="You have no data. Would you like some of ours?"
actions={[
<EuiButton fill iconType="plusInCircleFilled">
Get sample data
</EuiButton>,
]}
/>
</KibanaPageTemplate>
```

![Screenshot of demo custom empty state code. Shows the Kibana navigation bars and a centered empty state with the a level 1 heading "No data", body text "You have no data. Would you like some of ours?", and a button that says "Get sample data".](../assets/kibana_custom_empty_state.png)
`KibanaPageTemplate` is a Kibana-specific wrapper around [EuiPageTemplate](https://elastic.github.io/eui/#/templates/page-template) and it's namespaced components such as `KibanaPageTemplate.Header`. This component makes setting up common types of Kibana pages quicker and easier while also adhering to certain Kibana-specific requirements and patterns.

### Empty states with a page header
**Refer to EUI's own documentation on [**EuiPageTemplate**](https://elastic.github.io/eui/#/templates/page-template) for constructing page layouts and inherited props.**

When passing both a `pageHeader` configuration and `isEmptyState`, the component will render the proper template (`centeredContent`). Be sure to reduce the heading level within your child empty prompt to `<h2>`.

```tsx
<KibanaPageTemplate
isEmptyState={true}
pageHeader={{
pageTitle: 'Dashboards',
}}
>
<EuiEmptyPrompt
title={<h2>No data</h2>}
body="You have no data. Would you like some of ours?"
actions={[
<EuiButton fill iconType="plusInCircleFilled">
Get sample data
</EuiButton>,
]}
/>
</KibanaPageTemplate>
```

![Screenshot of demo custom empty state code with a page header. Shows the Kibana navigation bars, a level 1 heading "Dashboards", and a centered empty state with the a level 2 heading "No data", body text "You have no data. Would you like some of ours?", and a button that says "Get sample data".](../assets/kibana_header_and_empty_state.png)
The following props are Kibana-specific extensions.

## `solutionNav`

To add left side navigation for your solution, we recommend passing [**EuiSideNav**](https://elastic.github.io/eui/#/navigation/side-nav) props to the `solutionNav` prop. The template component will then handle the mobile views and add the solution nav embellishments. On top of the EUI props, you'll need to pass your solution `name` and an optional `icon`.

If you need to custom side bar content, you will need to pass you own navigation component to `pageSideBar`. We still recommend using [**EuiSideNav**](https://elastic.github.io/eui/#/navigation/side-nav).
To add left side navigation for your solution, we recommend using the provided `solutionNav` prop which is an object that extends [**EuiSideNavProps**](https://elastic.github.io/eui/#/navigation/side-nav).

When using `EuiSideNav`, root level items should not be linked but provide section labelling only.
Simply pass your array of `solutionNav.items` and the required `solution.name` and the template component will then handle the mobile views and collapsibility. For solutions and larger applications, we recommend also passing an `solutionNav.icon`.

```tsx
<KibanaPageTemplate
Expand All @@ -113,31 +43,33 @@ When using `EuiSideNav`, root level items should not be linked but provide secti
</KibanaPageTemplate>
```

> When using `EuiSideNav`, root level items should not be linked but provide section labelling only.

![Screenshot of Stack Management empty state with a provided solution navigation shown on the left, outlined in pink.](../assets/kibana_template_solution_nav.png)

![Screenshots of Stack Management page in mobile view. Menu closed on the left, menu open on the right.](../assets/kibana_template_solution_nav_mobile.png)

If you need custom solution navigation **content**, you can pass your own `solutionNav.children` instead of the items or supply your own componen with `<KibanaPageTemplate.Sidebar>` We still recommend using [**EuiSideNav**](https://elastic.github.io/eui/#/navigation/side-nav).

## `noDataConfig`

Increases the consistency in messaging across all the solutions during the getting started process when no data exists. Each solution/template instance decides when is the most appropriate time to show this configuration, but is messaged specifically towards having no indices or index patterns at all or that match the particular solution.
Increases the consistency in messaging across all the solutions during the getting started process when no data exists. Each solution/template instance decides when is the most appropriate time to show this configuration, but is messaged specifically towards having **no indices and/or data views at all or that match the particular solution**.

This is a built-in configuration that displays a very specific UI and requires very specific keys. It will also ignore all other configurations of the template including `pageHeader` and `children`, with the exception of continuing to show `solutionNav`.
This is a built-in configuration that displays a very specific UI and requires very specific object keys. It will also ignore all other configurations of the template including `pageHeader` and `children`, with the exception of continuing to show `solutionNav`.

The `noDataConfig` is of type [`NoDataPagProps`](https://github.com/elastic/kibana/blob/main/src/plugins/kibana_react/public/page_template/no_data_page/no_data_page.tsx):
The `noDataConfig` is of type [`NoDataPageProps`](https://github.com/elastic/kibana/blob/main/packages/kbn-shared-ux-components/src/page_template/no_data_page/types.ts):

1. `solution: string`: Single name for the current solution, used to auto-generate the title, logo, and description *(required)*
2. `docsLink: string`: Required to set the docs link for the whole solution *(required)*
1. `solution: string`: Single name for the current solution, used to auto-generate the title, logo, and description _(required)_
2. `docsLink: string`: Required to set the docs link for the whole solution _(required)_
3. `logo?: string`: Optionally replace the auto-generated logo
4. `pageTitle?: string`: Optionally replace the auto-generated page title (h1)
5. `actions: NoDataPageActionsProps`: An object of `NoDataPageActions` configurations with unique primary keys *(required)*
5. `action: NoDataPageActions`: An object of `NoDataPageActions` configurations with a single primary key _(required)_

### `NoDataPageActions`

There are two main actions for adding data that we promote throughout Kibana, Elastic Agent and Beats. They are added to the cards that are displayed by using the keys `elasticAgent` and `beats` respectively. For consistent messaging, these two cards are pre-configured but require specific `href`s and/or `onClick` handlers for directing the user to the right location for that solution.

It also accepts a `recommended` prop as a boolean to promote one or more of the cards through visuals added to the UI. It will also place the `recommended` ones first in the list. Optionally you can also replace the `button` label by passing a string, or the whole component by passing a `ReactNode`.
There is currently only one promotoed path to ingesting data and that is through the Fleet / Ingest UI. This gets presented to the user by rendering a card that provides consistent messaging. It is mostly pre-configured but require specific `href`s and/or `onClick` handlers for directing the user to the right location for that solution.

Optionally you can also replace the `button` label by passing a string, or the whole button component by passing a `ReactNode`.

```tsx
// Perform your own check
Expand All @@ -148,10 +80,7 @@ const noDataConfig: KibanaPageTemplateProps['noDataConfig'] = {
solution: 'Analytics',
logo: 'logoKibana',
docsLink: '#',
actions: {
beats: {
href: '#',
},
action: {
elasticAgent: {
href: '#',
},
Expand All @@ -165,8 +94,80 @@ const noDataConfig: KibanaPageTemplateProps['noDataConfig'] = {
noDataConfig={hasData ? undefined : noDataConfig}
>
{/* Children will be ignored */}
</KibanaPageTemplate>;
```

![Screenshot of and example in Analytics using the no data configuration and using the corresponding list numbers to point out the UI elements that they adjust.](../assets/kibana_template_no_data_config.png)

## `isEmptyState`

Use the `isEmptyState` prop for when there is no page **content** to show. This is for when the user **has data** but has not created the thing that the page displays. For example, before the user has created something, when no search results are found, before data is populated, or when permissions aren't met.

This prop is a simple boolean uses any `pageHeader` info provided to populate an centered [**EuiPageTemplate.EmptyPrompt**](https://elastic.github.io/eui/#/templates/page-template#empty-pages-or-content).

```tsx
<KibanaPageTemplate
isEmptyState={true}
pageHeader={{
iconType: 'dashboardApp',
pageTitle: 'Dashboards',
description: "You don't have any dashboards yet.",
rightSideItems: [
<EuiButton fill iconType="plusInCircleFilled">
Create new dashboard
</EuiButton>,
],
}}
/>
```

![Screenshot of demo empty state code. Shows the Kibana navigation bars and a centered empty state with the dashboard app icon, a level 1 heading "Dashboards", body text "You don't have any dashboards yet.", and a button that says "Create new dashboard".](../assets/kibana_default_empty_state.png)

<DocCallOut color="warning" title="Missing page header content can lead to an anemic empty state">
Because all properties of the page header are optional, the empty state has the potential to
render blank. Make sure your empty state doesn't leave the user confused.
</DocCallOut>

### Custom empty states

You can also provide a custom empty prompt to replace the pre-built one using [`KibanaPageTemplate.EmptyPrompt`](https://elastic.github.io/eui/#/display/empty-prompt) as a child of KibanaPageTemplate.

```tsx
<KibanaPageTemplate>
<KibanaPageTemplate.EmptyPrompt
title={<h1>No data</h1>}
body="You have no data. Would you like some of ours?"
actions={[
<EuiButton fill iconType="plusInCircleFilled">
Get sample data
</EuiButton>,
]}
/>
</KibanaPageTemplate>
```

![Screenshot of demo custom empty state code. Shows the Kibana navigation bars and a centered empty state with the a level 1 heading "No data", body text "You have no data. Would you like some of ours?", and a button that says "Get sample data".](../assets/kibana_custom_empty_state.png)

### Empty states with a page header

When passing both a `pageHeader` configuration and rendering a `KibanaPageTemplate.EmptyPrompt`, be sure to reduce the heading level within your child empty prompt to `<h2>`.

```tsx
<KibanaPageTemplate
pageHeader={{
pageTitle: 'Dashboards',
}}
>
<KibanaPageTemplate.EmptyPrompt
title={<h2>No data</h2>}
body="You have no data. Would you like some of ours?"
actions={[
<EuiButton fill iconType="plusInCircleFilled">
Get sample data
</EuiButton>,
]}
/>
</KibanaPageTemplate>
```

![Screenshot of and example in Observability using the no data configuration and using the corresponding list numbers to point out the UI elements that they adjust.](../assets/kibana_template_no_data_config.png)
![Screenshot of demo custom empty state code with a page header. Shows the Kibana navigation bars, a level 1 heading "Dashboards", and a centered empty state with the a level 2 heading "No data", body text "You have no data. Would you like some of ours?", and a button that says "Get sample data".](../assets/kibana_header_and_empty_state.png)
4 changes: 2 additions & 2 deletions docs/developer/advanced/sharing-saved-objects.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -284,10 +284,10 @@ const getLegacyUrlConflictCallout = () => {
return (
<EuiPage>
<EuiPageBody>
<EuiPageContent>
<EuiPageSection>
{/* If we have a legacy URL conflict callout to display, show it at the top of the page */}
{getLegacyUrlConflictCallout()}
<EuiPageContentHeader>
<EuiPageHeader>
...
);
```
Expand Down
4 changes: 2 additions & 2 deletions examples/bfetch_explorer/public/components/page/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import * as React from 'react';
import {
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiPageHeaderSection,
EuiTitle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
*/

import React from 'react';
import { EuiPageSideBar, EuiSideNav } from '@elastic/eui';
import { EuiPageSideBar_Deprecated as EuiPageSideBar, EuiSideNav } from '@elastic/eui';
import { useHistory } from 'react-router-dom';
import { routes } from '../../../routes';

Expand Down
6 changes: 3 additions & 3 deletions examples/dashboard_embeddable_examples/public/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import { BrowserRouter as Router, Route, RouteComponentProps, withRouter } from

import {
EuiPage,
EuiPageContent,
EuiPageContentBody,
EuiPageSideBar,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageSideBar_Deprecated as EuiPageSideBar,
EuiSideNav,
} from '@elastic/eui';
import 'brace/mode/json';
Expand Down
4 changes: 2 additions & 2 deletions examples/data_view_field_editor_example/public/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import {
EuiInMemoryTable,
EuiPage,
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiText,
useGeneratedHtmlId,
Expand Down
4 changes: 2 additions & 2 deletions examples/developer_examples/public/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import ReactDOM from 'react-dom';

import {
EuiText,
EuiPageContent,
EuiPageContent_Deprecated as EuiPageContent,
EuiCard,
EuiPageContentHeader,
EuiPageContentHeader_Deprecated as EuiPageContentHeader,
EuiFlexGroup,
EuiFlexItem,
EuiFieldSearch,
Expand Down
2 changes: 1 addition & 1 deletion examples/embeddable_explorer/public/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router, Route, withRouter, RouteComponentProps } from 'react-router-dom';

import { EuiPage, EuiPageSideBar, EuiSideNav } from '@elastic/eui';
import { EuiPage, EuiPageSideBar_Deprecated as EuiPageSideBar, EuiSideNav } from '@elastic/eui';

import { EmbeddableStart } from '@kbn/embeddable-plugin/public';
import { UiActionsStart } from '@kbn/ui-actions-plugin/public';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import React, { useState, useEffect, useRef } from 'react';
import {
EuiPanel,
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiPageHeaderSection,
EuiTitle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import React from 'react';
import {
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiPageHeaderSection,
EuiPanel,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import React from 'react';
import {
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiPageHeaderSection,
EuiPanel,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import {
EuiFlexItem,
EuiFormRow,
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiPageHeaderSection,
EuiPanel,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import {
EuiFlexItem,
EuiFlexGroup,
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiPageHeaderSection,
EuiPanel,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import {
EuiFlexItem,
EuiFlexGroup,
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiPageHeader,
EuiPageHeaderSection,
EuiPanel,
Expand Down
4 changes: 2 additions & 2 deletions examples/expressions_explorer/public/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ import {
EuiPage,
EuiPageHeader,
EuiPageBody,
EuiPageContent,
EuiPageContentBody,
EuiPageContent_Deprecated as EuiPageContent,
EuiPageContentBody_Deprecated as EuiPageContentBody,
EuiSpacer,
EuiText,
EuiLink,
Expand Down
Loading