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

Add Suggest Item #2090

Merged
merged 32 commits into from
Jul 19, 2019
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
64b2e95
basic version works
andreadelrio Jun 21, 2019
1e5d2c9
props descriptions
andreadelrio Jun 24, 2019
6f9bad3
added expandLongLabel
andreadelrio Jun 27, 2019
fe5f173
removed some quotes
andreadelrio Jul 2, 2019
3185d9b
added layout to replace expandLongLabel
andreadelrio Jul 2, 2019
e23f429
tests passing
thompsongl Jul 3, 2019
147487e
Merge pull request #1 from thompsongl/suggest-item
andreadelrio Jul 3, 2019
4a2860f
placed suggestItem import and export in correct order
andreadelrio Jul 3, 2019
0ab76c6
some css fixes
andreadelrio Jul 3, 2019
091a19f
considering vis colors
andreadelrio Jul 9, 2019
3e87f51
changes based on feedback
andreadelrio Jul 11, 2019
08197bd
updated colors and added minor css changes
andreadelrio Jul 13, 2019
eb8e5e8
basic version works
andreadelrio Jun 21, 2019
7ccf026
props descriptions
andreadelrio Jun 24, 2019
c21843b
added expandLongLabel
andreadelrio Jun 27, 2019
b68f805
removed some quotes
andreadelrio Jul 2, 2019
b582011
tests passing
thompsongl Jul 3, 2019
418cba6
added layout to replace expandLongLabel
andreadelrio Jul 2, 2019
ac69d10
Merge pull request #1 from thompsongl/suggest-item
andreadelrio Jul 3, 2019
7a0555b
placed suggestItem import and export in correct order
andreadelrio Jul 3, 2019
d850644
some css fixes
andreadelrio Jul 3, 2019
c0b57c7
considering vis colors
andreadelrio Jul 9, 2019
e6cabe4
changes based on feedback
andreadelrio Jul 11, 2019
93f1e9b
updated colors and added minor css changes
andreadelrio Jul 13, 2019
56e3751
Merge branch 'master' into suggest-item
andreadelrio Jul 15, 2019
0a6f7c9
Merge branch 'suggest-item' of https://github.com/andreadelrio/eui in…
andreadelrio Jul 15, 2019
0a42759
docs updates and small improvements
andreadelrio Jul 18, 2019
a776760
Merge remote-tracking branch 'upstream/master' into suggest-item
andreadelrio Jul 18, 2019
49234df
removed duplicate class
andreadelrio Jul 18, 2019
354f747
Merge remote-tracking branch 'upstream/master' into suggest-item
andreadelrio Jul 18, 2019
2daba39
Merge remote-tracking branch 'upstream/master' into suggest-item
andreadelrio Jul 19, 2019
dd6c8e7
added cl and commented out component from routes
andreadelrio Jul 19, 2019
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
3 changes: 3 additions & 0 deletions src-docs/src/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,8 @@ import { StatExample } from './views/stat/stat_example';

import { StepsExample } from './views/steps/steps_example';

import { SuggestItemExample } from './views/suggest_item/suggest_item_example';

import { TableExample } from './views/tables/tables_example';

import { TabsExample } from './views/tabs/tabs_example';
Expand Down Expand Up @@ -322,6 +324,7 @@ const navigation = [
LoadingExample,
ProgressExample,
StatExample,
SuggestItemExample,
cchaos marked this conversation as resolved.
Show resolved Hide resolved
TableExample,
TextExample,
TitleExample,
Expand Down
48 changes: 48 additions & 0 deletions src-docs/src/views/suggest_item/suggest_item.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import React from 'react';

import { EuiSuggestItem } from '../../../../src/components/suggest_item';

const shortDescription = 'This is the description';

const sampleItems = [
{
type: { icon: 'kqlField', color: 'warning' },
label: 'Field sample',
description: shortDescription,
},
{
type: { icon: 'kqlValue', color: 'secondary' },
label: 'Value sample',
description: shortDescription,
},
{
type: { icon: 'kqlSelector', color: '#7800A6' },
label: 'Conjunction sample',
description: shortDescription,
},
{
type: { icon: 'kqlOperand', color: 'primary' },
label: 'Operator sample',
description: shortDescription,
},
{
type: { icon: 'search', color: 'dark' },
label: 'Recent search sample',
},
{
type: { icon: 'save', color: '#DD0A73' },
label: 'Saved search',
},
];

export default () => (
<div>
{sampleItems.map(item => (
<EuiSuggestItem
type={item.type}
label={item.label}
description={item.description}
/>
))}
</div>
);
89 changes: 89 additions & 0 deletions src-docs/src/views/suggest_item/suggest_item_example.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import React from 'react';

import { renderToHtml } from '../../services';

import { GuideSectionTypes } from '../../components';

import { EuiCode, EuiSuggestItem } from '../../../../src/components';

import SuggestItem from './suggest_item';
const suggestItemSource = require('!!raw-loader!./suggest_item');
const suggestItemHtml = renderToHtml(SuggestItem);

import SuggestItemLongLabel from './suggest_item_long_label';
const suggestItemLongLabelSource = require('!!raw-loader!./suggest_item_long_label');
const suggestItemLongLabelHtml = renderToHtml(SuggestItemLongLabel);

export const SuggestItemExample = {
title: 'Suggest Item',
sections: [
{
source: [
{
type: GuideSectionTypes.JS,
code: suggestItemSource,
},
{
type: GuideSectionTypes.HTML,
code: suggestItemHtml,
},
],
text: (
<div>
<p>
<EuiCode>EuiSuggestItem</EuiCode> is a list item component useful to
suggestions when typing queries in input fields.
</p>
<ul>
cchaos marked this conversation as resolved.
Show resolved Hide resolved
<li>
<EuiCode>type</EuiCode> is an object that takes{' '}
<EuiCode>icon</EuiCode> and <EuiCode>color</EuiCode>.{' '}
<EuiCode>icon</EuiCode> supports any of the icons available in
<EuiCode>EuiIcon</EuiCode>. <EuiCode>color</EuiCode> is the color
for the icon and its background. The background color is
automatically calculated and it is a ligther shade of
<EuiCode>color</EuiCode>.
</li>
<li>
<EuiCode>label</EuiCode> is the primary text for the suggestion.
</li>
<li>
<EuiCode>description</EuiCode> is the secondary text for the
suggestion and it is optional.
</li>
<li>
Use <EuiCode>layout</EuiCode> to change the distribution of the{' '}
<EuiCode>EuiSuggestItem</EuiCode> elements. The default{' '}
<EuiCode>layout</EuiCode> is <EuiCode>setColumns</EuiCode>.
</li>
</ul>
</div>
),
props: { EuiSuggestItem },
demo: <SuggestItem />,
cchaos marked this conversation as resolved.
Show resolved Hide resolved
},
{
title: 'Expand long label',
source: [
{
type: GuideSectionTypes.JS,
code: suggestItemLongLabelSource,
},
{
type: GuideSectionTypes.HTML,
code: suggestItemLongLabelHtml,
},
],
text: (
<p>
By default <EuiCode>EuiSuggestItem</EuiCode>&apos;s{' '}
<EuiCode>label</EuiCode> will have a fixed width and use ellipsis
whenever its content is too long. It is possible to show the full text
by setting <EuiCode>layout</EuiCode> to <EuiCode>inline</EuiCode>.
</p>
),
props: { EuiSuggestItem },
cchaos marked this conversation as resolved.
Show resolved Hide resolved
demo: <SuggestItemLongLabel />,
},
],
};
27 changes: 27 additions & 0 deletions src-docs/src/views/suggest_item/suggest_item_long_label.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import React from 'react';

import { EuiSuggestItem } from '../../../../src/components/suggest_item';

const shortDescription = 'This is the description';

const sampleItem = {
type: { icon: 'kqlValue', color: 'secondary' },
label: 'Charles de Gaulle International Airport',
description: shortDescription,
};

export default () => (
<div>
<EuiSuggestItem
type={sampleItem.type}
label={sampleItem.label}
description={sampleItem.description}
/>
<EuiSuggestItem
type={sampleItem.type}
layout="inline"
label={sampleItem.label}
description={sampleItem.description}
/>
</div>
);
2 changes: 2 additions & 0 deletions src/components/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,8 @@ export { EuiStat } from './stat';

export { EuiStep, EuiSteps, EuiSubSteps, EuiStepsHorizontal } from './steps';

export { EuiSuggestItem } from './suggest_item';

export {
EuiTable,
EuiTableBody,
Expand Down
1 change: 1 addition & 0 deletions src/components/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
@import 'selectable/index';
@import 'stat/index';
@import 'steps/index';
@import 'suggest_item/index';
@import 'table/index';
@import 'tabs/index';
@import 'title/index';
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`EuiSuggestItem is rendered 1`] = `
<div
aria-label="aria-label"
class="euiSuggestItem testClass1 testClass2"
data-test-subj="test subject string"
>
<span
class="euiSuggestItem__type euiSuggestItem__type--primary"
>
<svg
class="euiIcon euiIcon--medium euiIcon--primary euiIcon-isLoading"
focusable="false"
height="16"
viewBox="0 0 16 16"
width="16"
xmlns="http://www.w3.org/2000/svg"
/>
</span>
<span
class="euiSuggestItem__label euiSuggestItem__layout--set"
/>
<span
class="euiSuggestItem__description"
/>
</div>
`;
1 change: 1 addition & 0 deletions src/components/suggest_item/_index.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@import 'suggest_item';
80 changes: 80 additions & 0 deletions src/components/suggest_item/_suggest_item.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
@import '../loading/mixins';
cchaos marked this conversation as resolved.
Show resolved Hide resolved

$buttonTypes: (
cchaos marked this conversation as resolved.
Show resolved Hide resolved
primary: $euiColorPrimary,
secondary: $euiColorSecondary,
warning: $euiColorWarning,
danger: $euiColorDanger,
dark: $euiColorMediumShade,
);

.euiSuggestItem {
display: flex;
flex-grow: 1;
align-items: center;
font-size: $euiFontSizeXS;
white-space: nowrap;

@each $name, $color in $buttonTypes {
.euiSuggestItem__type--#{$name} {
background-color: tintOrShade($color, 90%, 50%);
}
}

.euiSuggestItem__label,
.euiSuggestItem__type,
.euiSuggestItem__description {
flex-grow: 1;
flex-basis: 0%;
display: flex;
flex-direction: column;
}

.euiSuggestItem__type {
position: relative;
flex-grow: 0;
flex-basis: auto;
width: $euiSizeXL;
height: $euiSizeXL;
text-align: center;
overflow: hidden;
padding: $euiSizeXS;
justify-content: center;
align-items: center;

.customBackground {
cchaos marked this conversation as resolved.
Show resolved Hide resolved
width: 32px;
cchaos marked this conversation as resolved.
Show resolved Hide resolved
height: 32px;
position: absolute;
opacity: .2;
top: 0;
left: 0;
}
}

.euiSuggestItem__label {
flex-grow: 0;
flex-basis: auto;
font-family: $euiCodeFontFamily;
width: 250px;
cchaos marked this conversation as resolved.
Show resolved Hide resolved
overflow: hidden;
text-overflow: ellipsis;
padding: $euiSizeXS $euiSizeS;
color: $euiTextColor;

&.euiSuggestItem__layout--inline {
width: auto;
}
}

.euiSuggestItem__description,
.euiSuggestItem__label {
overflow: hidden;
text-overflow: ellipsis;
display: block;
cchaos marked this conversation as resolved.
Show resolved Hide resolved
}

.euiSuggestItem__description {
color: $euiColorDarkShade;
}
}
1 change: 1 addition & 0 deletions src/components/suggest_item/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { EuiSuggestItem } from './suggest_item';
Loading