Eui/6.10.5 in Kibana 7.0 - A design feedback PR before GA (#33273)

Adds EUI bigfixes and backports the nav changes and dark mode changes. And includes backports for #32864 and #32728.
This commit is contained in:
dave.snider@gmail.com 2019-03-15 12:25:46 -07:00 committed by GitHub
parent 8878c48c5a
commit ddc0187116
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 688 additions and 865 deletions

View file

@ -95,7 +95,7 @@
},
"dependencies": {
"@elastic/datemath": "5.0.2",
"@elastic/eui": "6.10.4",
"@elastic/eui": "6.10.5",
"@elastic/filesaver": "1.1.2",
"@elastic/good": "8.1.1-kibana2",
"@elastic/numeral": "2.3.2",

File diff suppressed because it is too large Load diff

View file

@ -57,13 +57,8 @@
* 5. Fixing this bug means we now need to align the children to the right.
*/
:focus:not([class^="eui"]) {
z-index: 1;
/* 1 */
outline: none !important;
/* 2 */
-webkit-box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
box-shadow: 0 0 0 1px #FFF, 0 0 0 2px #006BB4;
/* 3 */ }
-webkit-animation: 350ms cubic-bezier(0.694, 0.0482, 0.335, 1) 1 normal forwards focusRingAnimate;
animation: 350ms cubic-bezier(0.694, 0.0482, 0.335, 1) 1 normal forwards focusRingAnimate; }
/**
* 1. Required for IE11.
@ -144,7 +139,7 @@ main {
appearance: none;
cursor: pointer;
padding: 4px 12px 5px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
height: 30px;
@ -205,13 +200,13 @@ main {
* 1. Override Bootstrap.
*/
.kuiButton--basic {
color: #2D2D2D;
color: #343741;
background-color: #F5F7FA; }
.kuiButton--basic:not(a):enabled:focus {
color: #2D2D2D; }
color: #343741; }
a.kuiButton--basic:not(.kuiButton-isDisabled):focus {
/* 1 */
color: #2D2D2D; }
color: #343741; }
.kuiButton--basic:enabled:hover {
background-color: #d3dce9 !important;
/* 1 */ }
@ -494,7 +489,7 @@ main {
border: none;
line-height: 1;
font-size: 16px;
color: #2D2D2D !important;
color: #343741 !important;
/* 1 */
cursor: pointer;
opacity: 0.35; }
@ -510,7 +505,7 @@ main {
padding: 5px 0px;
border: none;
border-bottom: dotted 2px #D3DAE6;
font-size: 14px;
font-size: 16px;
cursor: pointer; }
.kuiExpressionButton__description {
@ -518,7 +513,7 @@ main {
text-transform: uppercase; }
.kuiExpressionButton__value {
color: #2D2D2D;
color: #343741;
text-transform: lowercase; }
.kuiExpressionButton-isActive {
@ -562,9 +557,9 @@ main {
/* 2 */
margin: 0 !important;
/* 2 */
font: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
font: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
/* 2 */
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
/* 2 */
font-size: 10px !important;
/* 2 */
@ -611,14 +606,14 @@ main {
line-height: 1.5; }
.kuiCheckBoxLabel__text {
font-size: 14px;
font-size: 16px;
margin-left: 8px; }
/**
* 1. Override Bootstrap.
*/
.kuiLabel {
font-size: 14px;
font-size: 16px;
line-height: 1.5;
font-weight: bold;
margin-bottom: 0;
@ -628,7 +623,7 @@ main {
width: 180px;
display: inline-block;
position: relative;
font-size: 14px;
font-size: 16px;
line-height: 1.5; }
.kuiSearchInput.kuiSearchInput-isInvalid .kuiSearchInput__input {
border-color: #BD271E; }
@ -648,12 +643,12 @@ main {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 4px 12px 4px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #2D2D2D;
color: #343741;
background-color: #fbfcfd;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
@ -687,12 +682,12 @@ main {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 4px 12px 4px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #2D2D2D;
color: #343741;
background-color: #fbfcfd;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
@ -744,12 +739,12 @@ main {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 4px 12px 4px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #2D2D2D;
color: #343741;
border: 1px solid transparent;
/* 1 */
background-color: transparent; }
@ -759,12 +754,12 @@ main {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 4px 12px 4px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #2D2D2D;
color: #343741;
background-color: #fbfcfd;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
@ -802,12 +797,12 @@ main {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 4px 12px 4px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #2D2D2D;
color: #343741;
background-color: #fbfcfd;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
@ -950,11 +945,11 @@ main {
.kuiInfoPanelHeader__icon {
margin-right: 10px;
font-size: 14px;
font-size: 16px;
line-height: 1.5; }
.kuiInfoPanelHeader__title {
font-size: 14px;
font-size: 16px;
line-height: 1.5;
font-weight: 700; }
@ -964,7 +959,7 @@ main {
margin-top: 8px; }
.kuiInfoPanelBody__message {
font-size: 14px;
font-size: 16px;
line-height: 1.5; }
.kuiLink {
@ -1052,7 +1047,7 @@ main {
/* 2 */
color: #006BB4;
/* 1 */
font-size: 14px; }
font-size: 16px; }
.kuiLocalBreadcrumb__link:visited, .kuiLocalBreadcrumb__link:active {
color: #006BB4; }
.kuiLocalBreadcrumb__link:hover {
@ -1096,7 +1091,7 @@ main {
background-color: transparent;
border: none;
font-size: 14px;
color: #2D2D2D;
color: #343741;
padding: 3px 6px;
border-radius: 4px; }
.kuiDatePickerNavigationButton:hover, .kuiDatePickerNavigationButton:active {
@ -1111,12 +1106,12 @@ main {
-webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
/* 3 */
color: #2D2D2D;
color: #343741;
/* 1 */ }
.kuiDatePickerHeaderCell {
padding: 9px 0;
color: #2D2D2D;
color: #343741;
font-size: 14px;
font-weight: bold;
text-align: center;
@ -1145,7 +1140,7 @@ main {
background-color: transparent;
width: 100%;
border: 1px solid transparent;
color: #2D2D2D;
color: #343741;
font-size: 14px;
padding: 8px;
border-radius: 4px;
@ -1158,7 +1153,7 @@ main {
-webkit-box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
box-shadow: 0 0 0 1px transparent, 0 0 0 2px #006BB4;
/* 3 */
color: #2D2D2D;
color: #343741;
/* 1 */ }
.kuiDatePickerRowCellContent:disabled {
pointer-events: none;
@ -1170,7 +1165,7 @@ main {
color: #006BB4; }
.kuiDatePickerRowCellContent.kuiDatePickerRowCellContent-isSelected {
background-color: #69707D;
color: #2D2D2D; }
color: #343741; }
.kuiDatePickerRowCellContent:hover, .kuiDatePickerRowCellContent:active {
cursor: pointer;
color: #F5F7FA;
@ -1192,7 +1187,7 @@ main {
border: none;
line-height: 1;
font-size: 16px;
color: #2D2D2D !important;
color: #343741 !important;
/* 1 */
cursor: pointer;
opacity: 0.35;
@ -1228,7 +1223,7 @@ main {
/* 1 */
margin-bottom: 12px;
font-size: 18px;
color: #2D2D2D; }
color: #343741; }
.kuiLocalDropdownSection {
margin-bottom: 16px; }
@ -1258,7 +1253,7 @@ main {
font-weight: 700;
margin-bottom: 0;
/* 1 */
color: #2D2D2D; }
color: #343741; }
.kuiLocalDropdownHeader__actions {
display: -webkit-box;
@ -1282,7 +1277,7 @@ main {
margin-bottom: 12px;
padding: 5px 15px;
font-size: 14px;
color: #2D2D2D;
color: #343741;
background-color: #fbfcfd;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px; }
@ -1297,7 +1292,7 @@ main {
margin-bottom: 16px;
padding: 6px 10px;
font-size: 14px;
color: #2D2D2D;
color: #343741;
background-color: #FFF;
border-left: solid 2px #BD271E; }
@ -1328,9 +1323,9 @@ main {
-ms-flex-align: center;
align-items: center;
padding: 2px 8px;
font-size: 14px;
font-size: 16px;
background-color: transparent;
color: #2D2D2D;
color: #343741;
border: 0;
cursor: pointer;
border-bottom: solid 2px transparent; }
@ -1375,7 +1370,7 @@ main {
justify-content: space-between;
min-height: 69px;
/* 1 */
color: #2D2D2D;
color: #343741;
background-color: #FFF;
line-height: 1.5;
border-bottom: solid 1px #D3DAE6; }
@ -1435,12 +1430,12 @@ main {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 4px 12px 4px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #2D2D2D;
color: #343741;
background-color: #fbfcfd;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
@ -1516,12 +1511,12 @@ main {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 4px 12px 4px;
font-size: 14px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #2D2D2D;
color: #343741;
background-color: #fbfcfd;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
@ -1557,7 +1552,7 @@ main {
.kuiLocalSearchButton {
width: 43px;
height: 32px;
font-size: 14px;
font-size: 16px;
line-height: 0;
/* 1 */
color: #FFF;
@ -1629,7 +1624,7 @@ main {
align-items: center;
height: 100%;
padding: 12px 8px;
font-size: 14px;
font-size: 16px;
font-weight: bold;
border-bottom: 1px solid #D3DAE6;
-webkit-box-flex: 1;
@ -1714,14 +1709,14 @@ main {
* 2. Safari won't respect :enabled:hover/active on links.
*/
.kuiMenuButton--basic {
color: #2D2D2D;
color: #343741;
background-color: #FFF; }
.kuiMenuButton--basic:focus {
color: #2D2D2D !important;
color: #343741 !important;
/* 1 */ }
.kuiMenuButton--basic:hover, .kuiMenuButton--basic:active {
/* 2 */
color: #2D2D2D !important;
color: #343741 !important;
/* 1 */
background-color: #F5F7FA; }
.kuiMenuButton--basic:disabled {
@ -1841,7 +1836,7 @@ main {
border-bottom: 1px solid #D3DAE6; }
.kuiModalHeader__title {
font-size: 18.0px; }
font-size: 20px; }
.kuiModalHeaderCloseButton {
display: inline-block;
@ -1856,9 +1851,9 @@ main {
background-color: transparent;
line-height: 1;
/* 2 */
font-size: 18.0px; }
font-size: 20px; }
.kuiModalHeaderCloseButton:hover {
color: #2D2D2D; }
color: #343741; }
.kuiModalBody {
padding: 20px; }
@ -1917,7 +1912,7 @@ main {
/* 1 */ }
.kuiPagerText {
font-size: 14px;
font-size: 16px;
line-height: 1.5;
color: #69707D;
white-space: nowrap;
@ -2041,7 +2036,7 @@ main {
* 1. This way we can use h1, h2, etc.
*/
.kuiPanelHeader__title {
font-size: 18.0px;
font-size: 20px;
line-height: 1.5;
margin: 0;
/* 1 */ }
@ -2198,7 +2193,7 @@ main {
background-color: #F5F7FA;
border-bottom: 1px solid #D3DAE6;
padding: 12px;
font-size: 14px; }
font-size: 16px; }
.kuiEmptyTablePrompt {
display: -webkit-box;
@ -2217,7 +2212,7 @@ main {
padding: 30px; }
.kuiEmptyTablePrompt__message {
font-size: 18.0px;
font-size: 20px;
color: #69707D;
line-height: 1.5; }
@ -2298,7 +2293,7 @@ main {
/* 1 */ }
.kuiTableHeaderCell {
font-size: 14px;
font-size: 16px;
font-weight: 400;
text-align: left;
max-width: 20px;
@ -2372,12 +2367,12 @@ main {
display: none; }
.kuiTableRowCell {
font-size: 14px;
font-size: 16px;
font-weight: 400;
text-align: left;
max-width: 20px;
/* 1 */
color: #2D2D2D;
color: #343741;
border-top: 1px solid #D3DAE6;
vertical-align: middle; }
@ -2445,7 +2440,7 @@ main {
.kuiTableInfo {
padding: 30px;
font-size: 18.0px;
font-size: 20px;
color: #69707D;
line-height: 1.5; }
@ -2470,7 +2465,7 @@ main {
/* 1 */
cursor: pointer;
padding: 10px 30px;
font-size: 14px;
font-size: 16px;
color: #69707D;
background-color: transparent;
/* 1 */
@ -2502,7 +2497,7 @@ main {
background-color: #F5F7FA; }
.kuiTab.kuiTab-isSelected {
cursor: default;
color: #2D2D2D;
color: #343741;
background-color: transparent;
border-bottom-color: transparent; }
@ -2522,9 +2517,9 @@ main {
/* 1 */
line-height: inherit;
/* 1 */
color: #2D2D2D; }
color: #343741; }
.kuiToggleButton:focus {
color: #2D2D2D; }
color: #343741; }
.kuiToggleButton:active {
color: #006BB4 !important;
/* 2 */ }
@ -2767,7 +2762,7 @@ main {
-ms-flex: 1 1 auto;
flex: 1 1 auto;
position: relative;
font-size: 14px;
font-size: 16px;
max-width: 800px; }
.kuiToolBarSearchBox__icon {
@ -2784,10 +2779,10 @@ main {
width: 100%;
min-width: 200px;
padding: 4px 12px 5px 28px;
font-family: "Open Sans", "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
/* 1 */
background-color: #FFF;
color: #2D2D2D;
color: #343741;
border-radius: 4px;
font-size: 1em;
border: 1px solid #D3DAE6;
@ -2803,7 +2798,7 @@ main {
* 1. We don't want the text to take up two lines and overflow the ToolBar.
*/
.kuiToolBarText {
font-size: 14px;
font-size: 16px;
line-height: 1.5;
color: #69707D;
white-space: nowrap;
@ -2827,7 +2822,7 @@ main {
/* 1 */
font-weight: 400;
/* 1 */
font-size: 18.0px; }
font-size: 20px; }
/**
* 1. Override p.
@ -2838,7 +2833,7 @@ main {
font-weight: 700;
/* 1 */
line-height: 1.5;
font-size: 14px; }
font-size: 16px; }
/**
* 1. Override p.
@ -2849,7 +2844,7 @@ main {
font-weight: 400;
/* 1 */
line-height: 1.5;
font-size: 14px; }
font-size: 16px; }
.kuiSubText {
margin: 0;

View file

@ -1,9 +1,8 @@
// We apply brute force focus states to anything not coming from Eui
// which has focus states designed at the component level.
:focus {
&:not([class^="eui"]),
{
@include focus;
&:not([class^="eui"]) {
@include euiFocusRing;
}
}

View file

@ -1,6 +1,5 @@
// EUI global scope is used for KUI variables till fully deprecated
@import '../../../node_modules/@elastic/eui/src/themes/k6/k6_globals';
@import '../../../node_modules/@elastic/eui/src/themes/k6/k6_colors_dark';
@import '../../../node_modules/@elastic/eui/src/themes/eui/eui_colors_dark';
@import '../../../node_modules/@elastic/eui/src/global_styling/functions/index';
@import '../../../node_modules/@elastic/eui/src/global_styling/variables/index';
@import '../../../node_modules/@elastic/eui/src/global_styling/mixins/index';

View file

@ -1,6 +1,5 @@
// EUI global scope is used for KUI variables till fully deprecated
@import '../../../node_modules/@elastic/eui/src/themes/k6/k6_globals';
@import '../../../node_modules/@elastic/eui/src/themes/k6/k6_colors_light';
@import '../../../node_modules/@elastic/eui/src/themes/eui/eui_colors_light';
@import '../../../node_modules/@elastic/eui/src/global_styling/functions/index';
@import '../../../node_modules/@elastic/eui/src/global_styling/variables/index';
@import '../../../node_modules/@elastic/eui/src/global_styling/mixins/index';

View file

@ -217,9 +217,8 @@
i18n-id="kbnVislibVisTypes.controls.gaugeOptions.addRangeTitle"
i18n-default-message="Add Range"
></div>
<div class="euiSpacer euiSpacer--s"></div>
<div
class="text text-center text-info"
class="euiFormHelpText"
i18n-id="kbnVislibVisTypes.controls.gaugeOptions.howToChangeColorsDescription"
i18n-default-message="Note: colors can be changed in the legend"
></div>

View file

@ -54,14 +54,14 @@ test('renders DashboardCloneModal', () => {
test('onClone', () => {
createComponent();
findTestSubject(component, 'cloneConfirmButton', false).simulate('click');
findTestSubject(component, 'cloneConfirmButton').simulate('click');
sinon.assert.calledWith(onClone, 'dash title');
sinon.assert.notCalled(onClose);
});
test('onClose', () => {
createComponent();
findTestSubject(component, 'cloneCancelButton', false).simulate('click');
findTestSubject(component, 'cloneCancelButton').simulate('click');
sinon.assert.calledOnce(onClose);
sinon.assert.notCalled(onClone);
});
@ -70,6 +70,6 @@ test('title', () => {
createComponent();
const event = { target: { value: 'a' } };
component.find('input').simulate('change', event);
findTestSubject(component, 'cloneConfirmButton', false).simulate('click');
findTestSubject(component, 'cloneConfirmButton').simulate('click');
sinon.assert.calledWith(onClone, 'a');
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 191 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Before After
Before After

View file

@ -82,7 +82,7 @@ It allows you to monitor the performance of thousands of applications in real ti
'{config.docs.base_url}guide/en/apm/get-started/{config.docs.version}/index.html',
},
}),
euiIconType: 'apmApp',
euiIconType: 'logoAPM',
artifacts: artifacts,
onPrem: onPremInstructions(config),
elasticCloud: createElasticCloudInstructions(config),

View file

@ -0,0 +1,67 @@
/*
* 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 { i18n } from '@kbn/i18n';
import { TUTORIAL_CATEGORY } from '../../../common/tutorials/tutorial_category';
import { onPremInstructions, cloudInstructions, onPremCloudInstructions } from '../../../common/tutorials/filebeat_instructions';
export function natsLogsSpecProvider(server, context) {
const moduleName = 'nats';
const geoipRequired = false;
const uaRequired = false;
const platforms = ['DEB', 'RPM'];
return {
id: 'natsLogs',
name: i18n.translate('kbn.server.tutorials.natsLogs.nameTitle', {
defaultMessage: 'Nats logs',
}),
category: TUTORIAL_CATEGORY.LOGGING,
isBeta: true,
shortDescription: i18n.translate('kbn.server.tutorials.natsLogs.shortDescription', {
defaultMessage: 'Collect and parse logs created by Nats.',
}),
longDescription: i18n.translate('kbn.server.tutorials.natsLogs.longDescription', {
defaultMessage: 'The `nats` Filebeat module parses logs created by Nats. \
[Learn more]({learnMoreLink}).',
values: {
learnMoreLink: '{config.docs.beats.filebeat}/filebeat-module-nats.html',
},
}),
// euiIconType: 'logoNats',
artifacts: {
dashboards: [
{
id: 'Filebeat-nats-overview-ecs',
linkLabel: i18n.translate('kbn.server.tutorials.natsLogs.artifacts.dashboards.linkLabel', {
defaultMessage: 'Nats logs dashboard',
}),
isOverview: true
}
],
exportedFields: {
documentationUrl: '{config.docs.beats.filebeat}/exported-fields-nats.html'
}
},
completionTimeMinutes: 10,
previewImagePath: '/plugins/kibana/home/tutorial_resources/nats_logs/screenshot.png',
onPrem: onPremInstructions(moduleName, platforms, geoipRequired, uaRequired, context),
elasticCloud: cloudInstructions(moduleName, platforms),
onPremElasticCloud: onPremCloudInstructions(moduleName, platforms)
};
}

View file

@ -39,7 +39,7 @@ export function natsMetricsSpecProvider(server, context) {
learnMoreLink: '{config.docs.beats.metricbeat}/metricbeat-module-nats.html',
},
}),
euiIconType: 'logoNats',
// euiIconType: 'logoNats',
artifacts: {
dashboards: [
{

View file

@ -1,3 +1,4 @@
@import '@elastic/eui/src/components/tool_tip/variables';
@import '@elastic/eui/src/components/tool_tip/mixins';
.tvbVisTimeSeries {

View file

@ -77,7 +77,7 @@ it('builds dark themed SASS', async () => {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
background: #191919 url(./images/img.png) url(ui/assets/favicons/favicon.ico); }
background: #232635 url(./images/img.png) url(ui/assets/favicons/favicon.ico); }
/*# sourceMappingURL=... */"
`);
});
@ -106,7 +106,7 @@ it('rewrites url imports', async () => {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
background: #191919 url(__REPLACE_WITH_PUBLIC_PATH__foo/bar/images/img.png) url(__REPLACE_WITH_PUBLIC_PATH__ui/favicons/favicon.ico); }
background: #232635 url(__REPLACE_WITH_PUBLIC_PATH__foo/bar/images/img.png) url(__REPLACE_WITH_PUBLIC_PATH__ui/favicons/favicon.ico); }
/*# sourceMappingURL=... */"
`);

View file

@ -28,6 +28,7 @@ export interface NavLink {
subUrlBase: string;
id: string;
euiIconType: IconType;
icon?: string;
active: boolean;
lastSubUrl?: string;
hidden?: boolean;

View file

@ -19,8 +19,7 @@
import Url from 'url';
import classNames from 'classnames';
import React, { Component, Fragment } from 'react';
import React, { Component, createRef, Fragment } from 'react';
import * as Rx from 'rxjs';
import {
@ -39,16 +38,14 @@ import {
EuiHideFor,
EuiHorizontalRule,
EuiIcon,
EuiListGroup,
// @ts-ignore
EuiImage,
// @ts-ignore
EuiListGroupItem,
// @ts-ignore
EuiNavDrawer,
// @ts-ignore
EuiNavDrawerFlyout,
// @ts-ignore
EuiNavDrawerMenu,
EuiOutsideClickDetector,
EuiNavDrawerGroup,
// @ts-ignore
EuiShowFor,
} from '@elastic/eui';
@ -79,6 +76,11 @@ interface Props {
intl: InjectedIntl;
}
// Providing a buffer between the limit and the cut off index
// protects from truncating just the last couple (6) characters
const TRUNCATE_LIMIT: number = 64;
const TRUNCATE_AT: number = 58;
function extendRecentlyAccessedHistoryItem(
navLinks: NavLink[],
recentlyAccessed: RecentlyAccessedHistoryItem
@ -115,16 +117,15 @@ function findClosestAnchor(element: HTMLElement): HTMLAnchorElement | void {
}
}
function truncateRecentItemLabel(label: string): string {
if (label.length > TRUNCATE_LIMIT) {
label = `${label.substring(0, TRUNCATE_AT)}`;
}
return label;
}
interface State {
isCollapsed: boolean;
flyoutIsCollapsed: boolean;
flyoutIsAnimating: boolean;
navFlyoutTitle: string;
navFlyoutContent: [];
mobileIsHidden: boolean;
showScrollbar: boolean;
outsideClickDisabled: boolean;
isManagingFocus: boolean;
navLinks: Array<ReturnType<typeof extendNavLink>>;
recentlyAccessed: Array<ReturnType<typeof extendRecentlyAccessedHistoryItem>>;
forceNavigation: boolean;
@ -132,23 +133,12 @@ interface State {
class HeaderUI extends Component<Props, State> {
private subscription?: Rx.Subscription;
private timeoutID?: ReturnType<typeof setTimeout>;
private timeoutExpand?: ReturnType<typeof setTimeout>;
private timeoutScrollbar?: ReturnType<typeof setTimeout>;
private navDrawerRef = createRef<EuiNavDrawer>();
constructor(props: Props) {
super(props);
this.state = {
isCollapsed: true,
flyoutIsCollapsed: true,
flyoutIsAnimating: false,
navFlyoutTitle: '',
navFlyoutContent: [],
mobileIsHidden: true,
showScrollbar: false,
outsideClickDisabled: true,
isManagingFocus: false,
navLinks: [],
recentlyAccessed: [],
forceNavigation: false,
@ -197,14 +187,17 @@ class HeaderUI extends Component<Props, State> {
public renderMenuTrigger() {
return (
<EuiHeaderSectionItemButton aria-label="Toggle side navigation" onClick={this.toggleOpen}>
<EuiHeaderSectionItemButton
aria-label="Toggle side navigation"
onClick={() => this.navDrawerRef.current.toggleOpen()}
>
<EuiIcon type="apps" size="m" />
</EuiHeaderSectionItemButton>
);
}
public render() {
const { appTitle, breadcrumbs$, isVisible, navControls, helpExtension$ } = this.props;
const { appTitle, breadcrumbs$, isVisible, navControls, helpExtension$, intl } = this.props;
const { navLinks, recentlyAccessed } = this.state;
if (!isVisible) {
@ -214,6 +207,52 @@ class HeaderUI extends Component<Props, State> {
const leftNavControls = navControls.bySide[NavControlSide.Left];
const rightNavControls = navControls.bySide[NavControlSide.Right];
let navLinksArray = navLinks.map(navLink =>
navLink.hidden
? null
: {
key: navLink.id,
label: navLink.title,
href: navLink.href,
iconType: navLink.euiIconType,
icon:
!navLink.euiIconType && navLink.icon ? (
<EuiImage size="s" alt="" aria-hidden={true} url={`/${navLink.icon}`} />
) : (
undefined
),
isActive: navLink.active,
'data-test-subj': 'navDrawerAppsMenuLink',
}
);
// filter out the null items
navLinksArray = navLinksArray.filter(item => item !== null);
const recentLinksArray = [
{
label: intl.formatMessage({
id: 'common.ui.chrome.sideGlobalNav.viewRecentItemsLabel',
defaultMessage: 'Recently viewed',
}),
iconType: 'clock',
isDisabled: recentlyAccessed.length > 0 ? false : true,
flyoutMenu: {
title: intl.formatMessage({
id: 'common.ui.chrome.sideGlobalNav.viewRecentItemsFlyoutTitle',
defaultMessage: 'Recent items',
}),
listItems: recentlyAccessed.map(item => ({
label: truncateRecentItemLabel(item.label),
// TODO: Add what type of app/saved object to title attr
title: `${item.label}`,
'aria-label': item.label,
href: item.href,
iconType: item.euiIconType,
})),
},
},
];
return (
<Fragment>
<EuiHeader>
@ -238,85 +277,11 @@ class HeaderUI extends Component<Props, State> {
</EuiHeaderSection>
</EuiHeader>
<EuiOutsideClickDetector
onOutsideClick={() => this.collapseDrawer()}
isDisabled={this.state.outsideClickDisabled}
>
<EuiNavDrawer
isCollapsed={this.state.isCollapsed}
flyoutIsCollapsed={this.state.flyoutIsCollapsed}
flyoutIsAnimating={this.state.flyoutIsAnimating}
onMouseEnter={this.expandDrawer}
onFocus={this.expandDrawer}
onBlur={this.focusOut}
onMouseLeave={this.collapseDrawer}
mobileIsHidden={this.state.mobileIsHidden}
showScrollbar={this.state.showScrollbar}
data-test-subj={classNames(
'navDrawer',
this.state.flyoutIsAnimating
? null
: this.state.isCollapsed
? 'collapsed'
: 'expanded'
)}
>
<EuiNavDrawerMenu id="navDrawerMenu" onClick={this.onNavClick}>
<EuiListGroup>
<EuiListGroupItem
label="Recently viewed"
iconType="clock"
size="s"
style={{ color: 'inherit' }}
aria-label="Recently viewed items"
onClick={() => this.expandFlyout()}
isDisabled={recentlyAccessed.length > 0 ? false : true}
extraAction={{
color: 'subdued',
iconType: 'arrowRight',
iconSize: 's',
'aria-label': 'Expand to view recent apps and objects',
onClick: () => this.expandFlyout(),
alwaysShow: true,
}}
/>
</EuiListGroup>
<EuiHorizontalRule margin="none" />
<EuiListGroup data-test-subj="appsMenu">
{navLinks.map(navLink =>
navLink.hidden ? null : (
<EuiListGroupItem
key={navLink.id}
label={navLink.title}
href={navLink.href}
iconType={navLink.euiIconType}
size="s"
style={{ color: 'inherit' }}
aria-label={navLink.title}
isActive={navLink.active}
data-test-subj="appLink"
/>
)
)}
</EuiListGroup>
</EuiNavDrawerMenu>
<EuiNavDrawerFlyout
id="navDrawerFlyout"
title="Recent items"
isCollapsed={this.state.flyoutIsCollapsed}
listItems={recentlyAccessed.map(item => ({
label: item.label,
href: item.href,
iconType: item.euiIconType,
size: 's',
style: { color: 'inherit' },
'aria-label': item.label,
}))}
onMouseLeave={this.collapseFlyout}
wrapText={true}
/>
</EuiNavDrawer>
</EuiOutsideClickDetector>
<EuiNavDrawer ref={this.navDrawerRef} data-test-subj="navDrawer">
<EuiNavDrawerGroup listItems={recentLinksArray} />
<EuiHorizontalRule margin="none" />
<EuiNavDrawerGroup data-test-subj="navDrawerAppsMenu" listItems={navLinksArray} />
</EuiNavDrawer>
</Fragment>
);
}
@ -361,120 +326,6 @@ class HeaderUI extends Component<Props, State> {
event.stopPropagation();
}
};
private toggleOpen = () => {
this.setState({
mobileIsHidden: !this.state.mobileIsHidden,
});
setTimeout(() => {
this.setState({
outsideClickDisabled: this.state.mobileIsHidden ? true : false,
});
}, this.getTimeoutMs(350));
};
private expandDrawer = () => {
this.timeoutExpand = setTimeout(() => {
this.setState({
isCollapsed: false,
});
}, this.getTimeoutMs(750));
this.timeoutScrollbar = setTimeout(() => {
this.setState({
showScrollbar: true,
});
}, this.getTimeoutMs(1200));
// This prevents the drawer from collapsing when tabbing through children
// by clearing the timeout thus cancelling the onBlur event (see focusOut).
// This means isManagingFocus remains true as long as a child element
// has focus. This is the case since React bubbles up onFocus and onBlur
// events from the child elements.
if (this.timeoutID) {
clearTimeout(this.timeoutID);
}
if (!this.state.isManagingFocus) {
this.setState({
isManagingFocus: true,
});
}
};
private collapseDrawer = () => {
// Stop the expand animation
if (this.timeoutExpand) {
clearTimeout(this.timeoutExpand);
}
if (this.timeoutScrollbar) {
clearTimeout(this.timeoutScrollbar);
}
this.setState({
flyoutIsAnimating: false,
isCollapsed: true,
flyoutIsCollapsed: true,
mobileIsHidden: true,
showScrollbar: false,
outsideClickDisabled: true,
});
// Scrolls the menu and flyout back to top when the nav drawer collapses
const menuEl = document.getElementById('navDrawerMenu');
if (menuEl) {
menuEl.scrollTop = 0;
}
const flyoutEl = document.getElementById('navDrawerFlyout');
if (flyoutEl) {
flyoutEl.scrollTop = 0;
}
};
private focusOut = () => {
// This collapses the drawer when no children have focus (i.e. tabbed out).
// In other words, if focus does not bubble up from a child element, then
// the drawer will collapse. See the corresponding block in expandDrawer
// (called by onFocus) which cancels this operation via clearTimeout.
this.timeoutID = setTimeout(() => {
if (this.state.isManagingFocus) {
this.setState({
isManagingFocus: false,
});
this.collapseDrawer();
}
}, 0);
};
private expandFlyout = () => {
this.setState(() => ({
flyoutIsCollapsed: !this.state.flyoutIsCollapsed,
}));
this.setState({
flyoutIsAnimating: true,
});
};
private collapseFlyout = () => {
this.setState({ flyoutIsAnimating: true });
setTimeout(() => {
this.setState({
flyoutIsCollapsed: true,
});
}, this.getTimeoutMs(250));
};
private getTimeoutMs = (defaultTimeout: number) => {
const uiSettings = chrome.getUiSettingsClient();
return uiSettings.get('accessibility:disableAnimations') ? 0 : defaultTimeout;
};
}
export const Header = injectI18n(HeaderUI);

View file

@ -1,20 +1,20 @@
//== Colors
//
//## Gray and brand colors for use across Bootstrap.
@white: #000;
@blue: #4DA1C0;
@white: #1D1E24;
@blue: #1BA9F5;
@brand-primary: #F5F5F5;
@brand-success: #017D73;
@brand-primary: #F5F7FA;
@brand-success: #7DE2D1;
@brand-info: @blue;
@brand-warning: #C06C4C;
@brand-danger: #BF4D4D;
@brand-warning: #FF977A;
@brand-danger: #FF6666;
@gray-base: #FFF;
@gray-darker: #F5F5F5;
@gray-darker: #F5F7FA;
@gray-dark: #ababab;
@gray5: #8A8A8A;
@gray: #444;
@gray-light: darken(#444, 9%);
@gray-lighter: #333;
@gray-lightest: #242424;
@gray5: #D4DAE5;
@gray: #535966;
@gray-light: darken(#535966, 9%);
@gray-lighter: #343741;
@gray-lightest: #25262E;

View file

@ -1,3 +1,4 @@
@import '@elastic/eui/src/components/tool_tip/variables';
@import '@elastic/eui/src/components/tool_tip/mixins';
.visTooltip,

View file

@ -30,8 +30,8 @@
.visEditorSidebar__indexPattern {
font-weight: $euiFontWeightBold;
padding: $euiSizeXS $euiSizeS;
background-color: shade($euiColorPrimary, 60%);
color: $euiColorGhost;
background-color: shadeOrTint($euiColorPrimary, 60%, 60%);
color: $euiColorEmptyShade;
line-height: $euiSizeL;
}

View file

@ -1,11 +1,11 @@
<div ng-show="add.form">
<div ng-show="add.form" class="form-group">
<label
i18n-id="common.ui.vis.editors.aggAdd.selectGroupTypeLabel"
i18n-default-message="Select {groupNameLabel} type"
i18n-values="{ groupNameLabel }"
>
</label>
<ul class="form-group list-group list-group-menu">
<ul class="list-group list-group-menu">
<li
tabindex="0"
id="aggSchemaListItem-{{$index}}"

View file

@ -10,10 +10,10 @@ block content
width: 100%;
height: 100%;
margin: 0;
background-color: #F5F7FA;
background-color: #{darkMode ? '#25262E' : '#F5F7FA'};
}
.kibanaWelcomeView {
background-color: #{darkMode ? '#242424' : '#F5F7FA'};
background-color: #{darkMode ? '#25262E' : '#F5F7FA'};
}
.kibanaWelcomeTitle {

View file

@ -286,7 +286,7 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.header.waitUntilLoadingHasFinished();
await pieChart.expectPieSliceCount(5);
await PageObjects.visualize.saveVisualization('Rendering Test: animal sounds pie');
await PageObjects.visualize.saveVisualizationExpectSuccess('Rendering Test: animal sounds pie');
await PageObjects.header.clickDashboard();
await pieChart.expectPieSliceCount(5);

View file

@ -29,7 +29,7 @@ export default function ({ getService, getPageObjects, updateBaselines }) {
describe('dashboard snapshots', function describeIndexTests() {
before(async function () {
// We use a really small window to minimize differences across os's and browsers.
await browser.setWindowSize(1000, 500);
await browser.setWindowSize(1000, 700);
});
after(async function () {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Before After
Before After

View file

@ -1,72 +0,0 @@
/*
* 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 function AppsMenuProvider({ getService }) {
const testSubjects = getService('testSubjects');
const log = getService('log');
const retry = getService('retry');
const globalNav = getService('globalNav');
return new class AppsMenu {
async readLinks() {
await this._ensureMenuOpen();
const buttons = await testSubjects.findAll('appsMenu appLink');
try {
return Promise.all(buttons.map(async (element) => ({
text: await element.getVisibleText(),
href: await element.getProperty('href'),
})));
} finally {
await this._ensureMenuClosed();
}
}
async linkExists(name) {
return (await this.readLinks()).some(nl => nl.text === name);
}
async clickLink(appTitle) {
try {
log.debug(`click "${appTitle}" tab`);
await this._ensureMenuOpen();
const container = await testSubjects.find('appsMenu');
const link = await container.findByPartialLinkText(appTitle);
await link.click();
} finally {
await this._ensureMenuClosed();
}
}
async _ensureMenuOpen() {
if (!await testSubjects.exists('navDrawer&expanded')) {
await testSubjects.moveMouseTo('navDrawer');
await retry.waitFor('apps drawer open', async () => (
await testSubjects.exists('navDrawer&expanded')
));
}
}
async _ensureMenuClosed() {
await globalNav.moveMouseToLogo();
await retry.waitFor('apps drawer closed', async () => (
await testSubjects.exists('navDrawer&collapsed')
));
}
};
}

View file

@ -22,32 +22,28 @@ import { FtrProviderContext } from '../ftr_provider_context';
export function AppsMenuProvider({ getService }: FtrProviderContext) {
const testSubjects = getService('testSubjects');
const log = getService('log');
const retry = getService('retry');
const globalNav = getService('globalNav');
return new class AppsMenu {
/**
* Get the text and href from each of the links in the apps menu
*/
public async readLinks() {
await this.ensureMenuOpen();
const buttons = await testSubjects.findAll('appsMenu appLink');
try {
return await Promise.all(
(buttons as any[]).map(
async element =>
({
text: await element.getVisibleText(),
href: await element.getProperty('href'),
} as {
text: string;
href: string;
})
)
);
} finally {
await this.ensureMenuClosed();
}
const appMenu = await testSubjects.find('navDrawer');
const $ = await appMenu.parseDomContent();
const links: Array<{
text: string;
href: string;
}> = $.findTestSubjects('navDrawerAppsMenuLink')
.toArray()
.map((link: any) => {
return {
text: $(link).text(),
href: $(link).attr('href'),
};
});
return links;
}
/**
@ -65,30 +61,12 @@ export function AppsMenuProvider({ getService }: FtrProviderContext) {
public async clickLink(name: string) {
try {
log.debug(`click "${name}" app link`);
await this.ensureMenuOpen();
const container = await testSubjects.find('navDrawer&expanded appsMenu');
const link = await container.findByPartialLinkText(name);
const container = await testSubjects.find('navDrawer');
// Text content is not visible or selectable (0px width) so we use an attr with th same value
const link = await container.findByCssSelector(`[aria-label='${name}']`);
await link.click();
} finally {
await this.ensureMenuClosed();
}
}
private async ensureMenuClosed() {
await globalNav.moveMouseToLogo();
await retry.waitFor(
'apps drawer closed',
async () => await testSubjects.exists('navDrawer&collapsed')
);
}
private async ensureMenuOpen() {
if (!(await testSubjects.exists('navDrawer&expanded'))) {
await testSubjects.moveMouseTo('navDrawer');
await retry.waitFor(
'apps drawer open',
async () => await testSubjects.exists('navDrawer&expanded')
);
// Intentionally empty
}
}
}();

View file

@ -7,7 +7,7 @@
},
"license": "Apache-2.0",
"dependencies": {
"@elastic/eui": "5.0.0",
"react": "^16.3.0"
"@elastic/eui": "9.4.0",
"react": "^16.8.0"
}
}

View file

@ -7,7 +7,7 @@
},
"license": "Apache-2.0",
"dependencies": {
"@elastic/eui": "5.0.0",
"react": "^16.3.0"
"@elastic/eui": "9.4.0",
"react": "^16.8.0"
}
}

View file

@ -7,8 +7,8 @@
},
"license": "Apache-2.0",
"dependencies": {
"@elastic/eui": "5.0.0",
"react": "^16.3.0",
"react-dom": "^16.3.0"
"@elastic/eui": "9.4.0",
"react": "^16.8.0",
"react-dom": "^16.8.0"
}
}

View file

@ -30,7 +30,7 @@ export default function ({ getService, getPageObjects }) {
await PageObjects.common.navigateToApp('settings');
});
it('should should nav link that navigates to the app', async () => {
it('should show nav link that navigates to the app', async () => {
await appsMenu.clickLink('Test Plugin App');
const pluginContent = await testSubjects.find('pluginContent');
expect(await pluginContent.getVisibleText()).to.be('Super simple app plugin');

View file

@ -120,7 +120,7 @@
},
"dependencies": {
"@elastic/datemath": "5.0.2",
"@elastic/eui": "6.10.4",
"@elastic/eui": "6.10.5",
"@elastic/node-crypto": "0.1.2",
"@elastic/numeral": "2.3.2",
"@kbn/babel-preset": "1.0.0",

View file

@ -1,3 +1,4 @@
@import '@elastic/eui/src/components/tool_tip/variables';
@import '@elastic/eui/src/components/tool_tip/mixins';
.tooltipAnnotation {

161
yarn.lock
View file

@ -907,6 +907,13 @@
core-js "^2.5.7"
regenerator-runtime "^0.12.0"
"@babel/runtime@^7.0.0":
version "7.3.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.4.tgz#73d12ba819e365fcf7fd152aed56d6df97d21c83"
integrity sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==
dependencies:
regenerator-runtime "^0.12.0"
"@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2":
version "7.2.2"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907"
@ -1034,34 +1041,10 @@
tabbable "^1.1.0"
uuid "^3.1.0"
"@elastic/eui@5.0.0":
version "5.0.0"
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-5.0.0.tgz#e6fe9e1aa8b00c93045178f78a6dd0d457d56fa8"
integrity sha512-WL6sp6u2Rt1O7a2exLU/RuDcRnpluPN6aQ2JexBl+G6mVyF8F5I3RGJKTJp3jOozOaODRY2ev+Nq57EydkjrKg==
dependencies:
classnames "^2.2.5"
core-js "^2.5.1"
focus-trap-react "^3.0.4"
highlight.js "^9.12.0"
html "^1.0.0"
keymirror "^0.1.1"
lodash "npm:@elastic/lodash@3.10.1-kibana1"
numeral "^2.0.6"
prop-types "^15.6.0"
react-ace "^5.5.0"
react-color "^2.13.8"
react-datepicker v1.5.0
react-input-autosize "^2.2.1"
react-virtualized "^9.18.5"
react-vis "1.10.2"
resize-observer-polyfill "^1.5.0"
tabbable "^1.1.0"
uuid "^3.1.0"
"@elastic/eui@6.10.4":
version "6.10.4"
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-6.10.4.tgz#666474e88d00ac9a5a9ab922e181170ce74a09ca"
integrity sha512-TFT3TAQgh8d8OkYsS3HI4g6YSOWw/LZBSDxoba494wbchTGtRhvOurgYFDLAnjNOvbkiSj5lH0OzpYRa/K0pEw==
"@elastic/eui@6.10.5":
version "6.10.5"
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-6.10.5.tgz#ab8f4a1aacc842056b322e84b77db645987c98ee"
integrity sha512-zxJLvWqYLxykZcBp45fgkIRV67Aon4dXIr7OIFsyY6Ah6Lgm980GTBhsIgicElIwQbccIXyOaldPYfmNMpvQaA==
dependencies:
"@types/lodash" "^4.14.116"
"@types/numeral" "^0.0.25"
@ -1084,6 +1067,32 @@
tabbable "^1.1.0"
uuid "^3.1.0"
"@elastic/eui@9.4.0":
version "9.4.0"
resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-9.4.0.tgz#e5f83c612674fc6f59e990f557e563be1409d25e"
integrity sha512-cQnsU3UeQ1s6F427vY53lzlh7mvNoPmIvPL24B5jH3JYaWULhIL1xSJXJgDSOSdrdHCxkXDD9Q8Y7256x4Xf4Q==
dependencies:
"@types/lodash" "^4.14.116"
"@types/numeral" "^0.0.25"
classnames "^2.2.5"
core-js "^2.5.1"
highlight.js "^9.12.0"
html "^1.0.0"
keymirror "^0.1.1"
lodash "^4.17.11"
numeral "^2.0.6"
prop-types "^15.6.0"
react-ace "^5.5.0"
react-color "^2.13.8"
react-focus-lock "^1.17.7"
react-input-autosize "^2.2.1"
react-is "~16.3.0"
react-virtualized "^9.18.5"
react-vis "1.10.2"
resize-observer-polyfill "^1.5.0"
tabbable "^1.1.0"
uuid "^3.1.0"
"@elastic/filesaver@1.1.2":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@elastic/filesaver/-/filesaver-1.1.2.tgz#1998ffb3cd89c9da4ec12a7793bfcae10e30c77a"
@ -9496,6 +9505,11 @@ flush-write-stream@^1.0.2:
inherits "^2.0.1"
readable-stream "^2.0.4"
focus-lock@^0.6.0:
version "0.6.2"
resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.6.2.tgz#d8ac9dbc46250779789c3e6f43d978c7dfa59dcd"
integrity sha512-Wuq6TSOgsGQmzbpvinl1TcEw4BAUhD9T06myl5HvaBlO0geAz9ABtqBIqPkkNyO3AgPzEDazetL5hSRgj+2iqQ==
focus-trap-react@^3.0.4, focus-trap-react@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/focus-trap-react/-/focus-trap-react-3.1.2.tgz#4dd021ccd028bbd3321147d132cdf7585d6d1394"
@ -17119,9 +17133,9 @@ polished@^1.9.2:
integrity sha512-mPocQrVUSiqQdHNZFGL1iHJmsR/etiv05Nf2oZUbya+GMsQkZVEBl5wonN+Sr/e9zQBEhT6yrMjxAUJ06eyocQ==
popper.js@^1.14.1:
version "1.14.3"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095"
integrity sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU=
version "1.14.7"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.7.tgz#e31ec06cfac6a97a53280c3e55e4e0c860e7738e"
integrity sha512-4q1hNvoUre/8srWsH7hnoSJ5xVmIL4qgz+s4qf2TnJIMyZFUFMGH+9vE7mXynAlHSZ/NdTmmow86muD0myUkVQ==
portfinder@^1.0.9:
version "1.0.13"
@ -17916,6 +17930,14 @@ react-beautiful-dnd@^8.0.7:
redux "^4.0.0"
tiny-invariant "^0.0.3"
react-clientside-effect@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.0.tgz#db823695f75e9616a5e4dd6d908e5ea627fb2516"
integrity sha512-cVIsGG7SNHsQsCP4+fw7KFUB0HiYiU8hbvL640XaLCbZ31aK8/lj0qOKJ2K+xRjuQz/IM4Q4qclI0aEqTtcXtA==
dependencies:
"@babel/runtime" "^7.0.0"
shallowequal "^1.1.0"
react-clipboard.js@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/react-clipboard.js/-/react-clipboard.js-1.1.3.tgz#86feeb49364553ecd15aea91c75aa142532a60e0"
@ -17935,16 +17957,6 @@ react-color@^2.13.8:
reactcss "^1.2.0"
tinycolor2 "^1.4.1"
react-datepicker@v1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-1.5.0.tgz#7eacd9609313189c84a21bb7421486054939a4b2"
integrity sha512-Neh1rz0d1QeR7KuoTiYeR6oj73DJkqt0vuNSgfMuxXEwGmz/4sPynouYGo6gdKiQbxIXBJJ/FLDLHJEr5XNThw==
dependencies:
classnames "^2.2.5"
prop-types "^15.6.0"
react-onclickoutside "^6.7.1"
react-popper "^0.9.1"
react-datetime@^2.14.0:
version "2.15.0"
resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.15.0.tgz#a8f7da6c58b6b45dbeea32d4e8485db17614e12c"
@ -17955,7 +17967,7 @@ react-datetime@^2.14.0:
prop-types "^15.5.7"
react-onclickoutside "^6.5.0"
react-dom@^16.0.0, react-dom@^16.2.0:
react-dom@^16.0.0:
version "16.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044"
integrity sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==
@ -17965,15 +17977,15 @@ react-dom@^16.0.0, react-dom@^16.2.0:
object-assign "^4.1.1"
prop-types "^15.6.0"
react-dom@^16.3.0:
version "16.7.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.7.0.tgz#a17b2a7ca89ee7390bc1ed5eb81783c7461748b8"
integrity sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==
react-dom@^16.2.0, react-dom@^16.8.0:
version "16.8.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.2.tgz#7c8a69545dd554d45d66442230ba04a6a0a3c3d3"
integrity sha512-cPGfgFfwi+VCZjk73buu14pYkYBR1b/SRMSYqkLDdhSEHnSwcuYTPu6/Bh6ZphJFIk80XLvbSe2azfcRzNF+Xg==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
scheduler "^0.12.0"
scheduler "^0.13.2"
react-dom@^16.6.0:
version "16.6.0"
@ -18006,6 +18018,16 @@ react-fast-compare@^2.0.4:
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
react-focus-lock@^1.17.7:
version "1.18.3"
resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-1.18.3.tgz#19d84afeab935c0b5de196922f71db7c481baba4"
integrity sha512-4fPAHnsr8oCYPgVmcMZ8NbAE9jm/OshPjXEM5PHseu2lDernzm/b1sHhYzZUO4OoW9D/u1AQsV6n4trRllow7w==
dependencies:
"@babel/runtime" "^7.0.0"
focus-lock "^0.6.0"
prop-types "^15.6.2"
react-clientside-effect "^1.2.0"
react-grid-layout@^0.16.2:
version "0.16.6"
resolved "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-0.16.6.tgz#9b2407a2b946c2260ebaf66f13b556e1da4efeb2"
@ -18106,19 +18128,11 @@ react-motion@^0.5.2:
prop-types "^15.5.8"
raf "^3.1.0"
react-onclickoutside@^6.5.0, react-onclickoutside@^6.7.1:
react-onclickoutside@^6.5.0:
version "6.7.1"
resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93"
integrity sha512-p84kBqGaMoa7VYT0vZ/aOYRfJB+gw34yjpda1Z5KeLflg70HipZOT+MXQenEhdkPAABuE2Astq4zEPdMqUQxcg==
react-popper@^0.9.1:
version "0.9.5"
resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-0.9.5.tgz#02a24ef3eec33af9e54e8358ab70eb0e331edd05"
integrity sha1-AqJO8+7DOvnlToNYq3DrDjMe3QU=
dependencies:
popper.js "^1.14.1"
prop-types "^15.6.1"
react-portal@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-3.2.0.tgz#4224e19b2b05d5cbe730a7ba0e34ec7585de0043"
@ -18344,7 +18358,7 @@ react-vis@^1.8.1:
prop-types "^15.5.8"
react-motion "^0.4.8"
react@>=0.13.3, react@^16.2.0:
react@>=0.13.3:
version "16.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba"
integrity sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==
@ -18354,25 +18368,15 @@ react@>=0.13.3, react@^16.2.0:
object-assign "^4.1.1"
prop-types "^15.6.0"
react@^16.3.0:
version "16.3.1"
resolved "https://registry.yarnpkg.com/react/-/react-16.3.1.tgz#4a2da433d471251c69b6033ada30e2ed1202cfd8"
integrity sha512-NbkxN9jsZ6+G+ICsLdC7/wUD26uNbvKU/RAxEWgc9kcdKvROt+5d5j2cNQm5PSFTQ4WNGsR3pa4qL2Q0/WSy1w==
dependencies:
fbjs "^0.8.16"
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.0"
react@^16.6.0:
version "16.6.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.6.0.tgz#b34761cfaf3e30f5508bc732fb4736730b7da246"
integrity sha512-zJPnx/jKtuOEXCbQ9BKaxDMxR0001/hzxXwYxG8septeyYGfsgAei6NgfbVgOhbY1WOP2o3VPs/E9HaN+9hV3Q==
react@^16.2.0, react@^16.6.0, react@^16.8.0:
version "16.8.2"
resolved "https://registry.yarnpkg.com/react/-/react-16.8.2.tgz#83064596feaa98d9c2857c4deae1848b542c9c0c"
integrity sha512-aB2ctx9uQ9vo09HVknqv3DGRpI7OIGJhCx3Bt0QqoRluEjHSaObJl+nG12GDdYH6sTgE7YiPJ6ZUyMx9kICdXw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
scheduler "^0.10.0"
scheduler "^0.13.2"
reactcss@1.2.3, reactcss@^1.2.0:
version "1.2.3"
@ -19570,10 +19574,10 @@ scheduler@^0.10.0:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.12.0.tgz#8ab17699939c0aedc5a196a657743c496538647b"
integrity sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==
scheduler@^0.13.2:
version "0.13.4"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.4.tgz#8fef05e7a3580c76c0364d2df5e550e4c9140298"
integrity sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@ -19872,6 +19876,11 @@ shallow-copy@~0.0.1:
resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170"
integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=
shallowequal@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
sharkdown@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/sharkdown/-/sharkdown-0.1.0.tgz#61d4fe529e75d02442127cc9234362265099214f"