+`;
diff --git a/src/plugins/dashboard/public/application/top_nav/panel_toolbar/index.ts b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/index.ts
new file mode 100644
index 0000000000000..31b25955b4b48
--- /dev/null
+++ b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/index.ts
@@ -0,0 +1,20 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+export { PanelToolbar } from './panel_toolbar';
diff --git a/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.scss b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.scss
new file mode 100644
index 0000000000000..196ae68e3ed17
--- /dev/null
+++ b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.scss
@@ -0,0 +1,12 @@
+.panelToolbar {
+ padding: 0 $euiSizeS $euiSizeS;
+ flex-grow: 0;
+}
+
+.panelToolbarButton {
+ line-height: $euiButtonHeight; // Keeps alignment of text and chart icon
+ background-color: $euiColorEmptyShade;
+
+ // Lighten the border color for all states
+ border-color: $euiBorderColor !important; // sass-lint:disable-line no-important
+}
diff --git a/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.stories.tsx b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.stories.tsx
new file mode 100644
index 0000000000000..0884dfde57d4a
--- /dev/null
+++ b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.stories.tsx
@@ -0,0 +1,30 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { storiesOf } from '@storybook/react';
+import { action } from '@storybook/addon-actions';
+import React from 'react';
+import { PanelToolbar } from './panel_toolbar';
+
+storiesOf('components/PanelToolbar', module).add('default', () => (
+
+));
diff --git a/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.tsx b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.tsx
new file mode 100644
index 0000000000000..91a7e0ab64a90
--- /dev/null
+++ b/src/plugins/dashboard/public/application/top_nav/panel_toolbar/panel_toolbar.tsx
@@ -0,0 +1,61 @@
+/*
+ * Licensed to Elasticsearch B.V. under one or more contributor
+ * license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright
+ * ownership. Elasticsearch B.V. licenses this file to you under
+ * the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import './panel_toolbar.scss';
+import React, { FC } from 'react';
+import { i18n } from '@kbn/i18n';
+import { EuiButton, EuiFlexGroup, EuiFlexItem } from '@elastic/eui';
+
+interface Props {
+ /** The click handler for the Add Panel button for creating new panels */
+ onAddPanelClick: () => void;
+ /** The click handler for the Library button for adding existing visualizations/embeddables */
+ onLibraryClick: () => void;
+}
+
+export const PanelToolbar: FC = ({ onAddPanelClick, onLibraryClick }) => (
+
+
+
+ {i18n.translate('dashboard.panelToolbar.addPanelButtonLabel', {
+ defaultMessage: 'Create panel',
+ })}
+
+
+
+
+ {i18n.translate('dashboard.panelToolbar.libraryButtonLabel', {
+ defaultMessage: 'Add from library',
+ })}
+
+
+
+);
diff --git a/src/plugins/dashboard/public/dashboard_strings.ts b/src/plugins/dashboard/public/dashboard_strings.ts
index 239846638d3aa..4aa552893ab9b 100644
--- a/src/plugins/dashboard/public/dashboard_strings.ts
+++ b/src/plugins/dashboard/public/dashboard_strings.ts
@@ -285,25 +285,13 @@ export const emptyScreenStrings = {
i18n.translate('dashboard.howToStartWorkingOnNewDashboardEditLinkAriaLabel', {
defaultMessage: 'Edit dashboard',
}),
- getAddExistingVisualizationLinkText: () =>
- i18n.translate('dashboard.addExistingVisualizationLinkText', {
- defaultMessage: 'Add an existing',
+ getEmptyWidgetTitle: () =>
+ i18n.translate('dashboard.emptyWidget.addPanelTitle', {
+ defaultMessage: 'Add your first panel',
}),
- getAddExistingVisualizationLinkAriaLabel: () =>
- i18n.translate('dashboard.addVisualizationLinkAriaLabel', {
- defaultMessage: 'Add an existing visualization',
- }),
- getAddNewVisualizationDescription: () =>
- i18n.translate('dashboard.addNewVisualizationText', {
- defaultMessage: 'or new object to this dashboard',
- }),
- getCreateNewVisualizationButton: () =>
- i18n.translate('dashboard.createNewVisualizationButton', {
- defaultMessage: 'Create new',
- }),
- getCreateNewVisualizationButtonAriaLabel: () =>
- i18n.translate('dashboard.createNewVisualizationButtonAriaLabel', {
- defaultMessage: 'Create new visualization button',
+ getEmptyWidgetDescription: () =>
+ i18n.translate('dashboard.emptyWidget.addPanelDescription', {
+ defaultMessage: 'Create content that tells a story about your data.',
}),
};
diff --git a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx
index d3e100366f2df..3203b3affb2c1 100644
--- a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx
+++ b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx
@@ -153,7 +153,10 @@ export class AddPanelFlyout extends React.Component {