@ember-eui/core 1.6.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,33 @@
2
2
 
3
3
  ### Master
4
4
 
5
+ ### 3.0.0
6
+ 💥 Breaking change
7
+ `@ember-eui/*`
8
+ - Drops support for ember-source < v3.20.0
9
+ - Drops support for node 10
10
+ - Drops support for importing sass, elastic eui is migrating to emotion, so its better we just focus on that instead of sass, so we no longer dynamically import template only components for now, this could possibly be achieved later post embroider
11
+
12
+ 🏠 Internal
13
+ `@ember-eui/*`
14
+ - `ember-cli-update --to=3.28.0` on all packages
15
+ - Update ember-cli-typescript
16
+ - Remove some deprecations like new imports paths and helpers usage and `#with` helper
17
+
18
+ ### 2.0.0
19
+ 💥 Breaking change
20
+ `@ember-eui/core`
21
+ - Deprecate `ember-svg-jar` `hbs` strategy for now, just use stock `ember-svg-jar`
22
+
23
+ ### 1.6.3
24
+ 🐛 Bug / Fixes
25
+ `@ember-eui/core`
26
+ - Fix inline-styling weird bug
27
+
28
+ ### 1.6.2
29
+ 🐛 Bug / Fixes
30
+ `@ember-eui/validated-form`
31
+ - Bubble the change correctly from `<Form.FieldMarkdownEditor />`
5
32
  ### 1.6.1
6
33
  🐛 Bug / Fixes
7
34
  `@ember-eui/core`
package/README.md CHANGED
@@ -1,27 +1,21 @@
1
1
  # ember-eui
2
2
 
3
3
  This project aims to provide ember components implementing the css layer of https://elastic.github.io/eui
4
-
5
4
  ### Icons
6
5
 
7
6
  For icons to work you will need to:
8
7
 
9
8
  - install `ember-svg-jar`
10
9
  - add the following `ember-svg-jar` options to your `ember-cli-build.js`:
11
- - NOTICE: we are currently using a fork from ember-svg-jar, for the hbs strategy
12
- `"ember-svg-jar": "https://github.com/betocantu93/ember-svg-jar.git#add-bundle-flag"`
13
10
 
14
11
  ```javascript
15
12
  // ember-cli-build.js
16
13
  var app = new EmberApp(defaults, {
17
14
  ...
18
15
  svgJar: {
19
- strategy: ['hbs'],
20
- hbs: {
21
- stripPath: false,
22
- },
23
16
  sourceDirs: [
24
17
  'public/assets',
18
+ '../node_modules/@ember-eui/core/public',
25
19
  'node_modules/@elastic/eui/lib/components/icon',
26
20
  ],
27
21
  },
@@ -30,15 +24,15 @@ var app = new EmberApp(defaults, {
30
24
 
31
25
  ```
32
26
 
33
- We use `ember-svg-jar` to create SVGs as TOC (Template only components) with the `hbs` strategy. For fingerprinting and such, `ember-svg-jar#add-bundle-flag` exposes an `svg-jar` service, with a `resolveAsset` callback/hook, so you can implement your own resolver, you could use for example [ember-cli-resolve-assset](https://github.com/buschtoens/ember-cli-resolve-asset).
34
-
35
27
  ## Compatibility
36
28
 
37
- - Ember.js v3.12 or above
38
- - Ember CLI v2.13 or above
39
- - Node.js v10 or above
29
+ * Ember.js v3.20 or above
30
+ * Ember CLI v3.20 or above
31
+ * Node.js v12 or above
32
+
40
33
 
41
- ## Installation
34
+ Installation
35
+ ------------------------------------------------------------------------------
42
36
 
43
37
  ```
44
38
  ember install @ember-eui/core
@@ -67,7 +67,7 @@
67
67
  }}
68
68
  >
69
69
  <span class="euiBadge__content">
70
- {{#if hasBlock}}
70
+ {{#if (has-block)}}
71
71
  {{#if @onClick}}
72
72
  <button
73
73
  class="euiBadge__childButton"
@@ -101,14 +101,14 @@
101
101
  class={{class-names "euiBadge__icon" @closeButtonProps.iconClasses}}
102
102
  @type={{@iconType}}
103
103
  data-selected-index={{@closeButtonProps.dataSelectedIconIndex}}
104
- @size={{if hasBlock "s" "m"}}
104
+ @size={{if (has-block) "s" "m"}}
105
105
  />
106
106
  </button>
107
107
  {{! tempalte-lint-enable}}
108
108
  {{else}}
109
109
  <EuiIcon
110
110
  @type={{@iconType}}
111
- @size={{if hasBlock "s" "m"}}
111
+ @size={{if (has-block) "s" "m"}}
112
112
  class="euiBadge__icon"
113
113
  />
114
114
  {{/if}}
@@ -17,7 +17,7 @@
17
17
  aria-checked={{@isSelected}}
18
18
  ...attributes
19
19
  >
20
- {{#if hasBlock}}
20
+ {{#if (has-block)}}
21
21
  {{yield}}
22
22
  {{else if @isSelected}}
23
23
  Selected
@@ -9,7 +9,7 @@
9
9
  (if (eq @layout "horizontal") "euiCard--horizontal")
10
10
  (if (and (eq @display "plain") (not @selectable)) "euiCard--plain")
11
11
  (if @isDisabled "euiCard-isDisabled")
12
- (if hasBlock "euiCard--hasChildren")
12
+ (if (has-block) "euiCard--hasChildren")
13
13
  (if @icon "euiCard--hasIcon" (if has-block "icon" "euiCard--hasIcon"))
14
14
  (if @betaBadgeLabel "euiCard--hasBetaBadge")
15
15
  (if
@@ -1,5 +1,5 @@
1
1
  import Component from '@glimmer/component';
2
- import { isHTMLSafe, htmlSafe } from '@ember/string';
2
+ import { isHTMLSafe, htmlSafe } from '@ember/template';
3
3
  import { get } from '@ember/object';
4
4
 
5
5
  type EuiComboBoxCreateOptionArgs = {
@@ -2,37 +2,46 @@
2
2
  <EuiOverlayMask @headerZindexLocation="below" {{on "click" @onClose}} />
3
3
  {{/if}}
4
4
  {{set-body-class "euiBody--hasFlyout"}}
5
- <div
6
- role="dialog"
7
- class={{class-names
8
- (if (eq @maxWidth true) "euiFlyout--maxWidth-default")
9
- componentName="EuiFlyout"
10
- size=(arg-or-default @size "m")
11
- }}
12
- tabindex={{0}}
13
- ...attributes
14
- {{style
15
- (if (not (or (eq @maxWidth false) (eq @maxWidth true))) (inline-styles max-width=@maxWidth))
16
- }}
17
- {{focus-trap
18
- isActive=(arg-or-default @isFocusTrapActive true)
19
- shouldSelfFocus=(arg-or-default @shouldSelfFocus true)
20
- isPaused=(arg-or-default @isFocusTrapPaused false)
21
- focusTrapOptions=(arg-or-default
22
- @focusTrapOptions (hash allowOutsideClick=true clickOutsideDeactivates=(not @ownFocus))
23
- )
24
- }}
25
- {{on-key "Escape" @onClose}}
26
- >
27
- {{#if (and @onClose (not @hideCloseButton))}}
28
- <EuiButtonIcon
29
- class="euiFlyout__closeButton"
30
- aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}
31
- @iconType="cross"
32
- @color="text"
33
- data-test-subj="euiFlyoutCloseButton"
34
- {{on "click" @onClose}}
35
- />
36
- {{/if}}
37
- {{yield}}
38
- </div>
5
+
6
+ {{#let
7
+ (if
8
+ (not (or (eq @maxWidth false) (eq @maxWidth true)))
9
+ (inline-styles max-width=@maxWidth)
10
+ (hash)
11
+ )
12
+ as |inlineStyles|
13
+ }}
14
+ <div
15
+ role="dialog"
16
+ class={{class-names
17
+ (if (eq @maxWidth true) "euiFlyout--maxWidth-default")
18
+ componentName="EuiFlyout"
19
+ size=(arg-or-default @size "m")
20
+ }}
21
+ tabindex={{0}}
22
+ ...attributes
23
+ {{style inlineStyles}}
24
+ {{focus-trap
25
+ isActive=(arg-or-default @isFocusTrapActive true)
26
+ shouldSelfFocus=(arg-or-default @shouldSelfFocus true)
27
+ isPaused=(arg-or-default @isFocusTrapPaused false)
28
+ focusTrapOptions=(arg-or-default
29
+ @focusTrapOptions
30
+ (hash allowOutsideClick=true clickOutsideDeactivates=(not @ownFocus))
31
+ )
32
+ }}
33
+ {{on-key "Escape" @onClose}}
34
+ >
35
+ {{#if (and @onClose (not @hideCloseButton))}}
36
+ <EuiButtonIcon
37
+ class="euiFlyout__closeButton"
38
+ aria-label={{or @closeButtonAriaLabel @closeAriaLabel}}
39
+ @iconType="cross"
40
+ @color="text"
41
+ data-test-subj="euiFlyoutCloseButton"
42
+ {{on "click" @onClose}}
43
+ />
44
+ {{/if}}
45
+ {{yield}}
46
+ </div>
47
+ {{/let}}
@@ -16,24 +16,26 @@
16
16
  ...attributes
17
17
  />
18
18
  {{else}}
19
- <Svg
20
- @name={{this.icon}}
21
- @loadingSvg={{this.emptyIcon}}
22
- class={{class-names
23
- this.optionalColorClass
24
- (if this.isAppIcon "euiIcon--app")
25
- componentName="EuiIcon"
26
- size=this.size
27
- }}
28
- style={{this.optionalCustomStyles}}
29
- tabIndex={{this.tabIndex}}
30
- role="image"
31
- aria-hidden={{if this.isAriaHidden true}}
32
- aria-label={{if @aria-label @aria-label this.titleId}}
33
- aria-labelledby={{if @aria-labelledby @aria-labelledby this.titleId}}
34
- @title={{@title}}
35
- @onIconLoad={{@onIconLoad}}
19
+ <div
20
+ class={{class-names "euiIcon" (if this.isAppIcon "euiIcon--app")}}
36
21
  ...attributes
37
- />
22
+ >
23
+ {{svg-jar
24
+ this.icon
25
+ class=(class-names
26
+ this.optionalColorClass
27
+ (if this.isAppIcon "euiIcon--app")
28
+ componentName="EuiIcon"
29
+ addBase=false
30
+ size=this.size
31
+ )
32
+ role="image"
33
+ aria-hidden=(if this.isAriaHidden "true")
34
+ aria-label=(if @aria-label @aria-label this.titleId)
35
+ aria-labelledby=(if @aria-labelledby @aria-labelledby this.titleId)
36
+ tabindex=this.tabIndex
37
+ style=this.optionalCustomStyles
38
+ }}
39
+ </div>
38
40
  {{/if}}
39
41
  {{/if}}
@@ -90,6 +90,7 @@ export default class EuiIcon extends Component<EuiIconArgs> {
90
90
  }
91
91
 
92
92
  get useSvg(): boolean {
93
+ //@ts-ignore
93
94
  const config = getOwner(this).resolveRegistration('config:environment');
94
95
  return (
95
96
  this.args.useSvg ??
@@ -118,10 +119,7 @@ export default class EuiIcon extends Component<EuiIconArgs> {
118
119
  }
119
120
 
120
121
  getEuiIconSvgPath(type: EuiIconType): string {
121
- const config = getOwner(this).resolveRegistration('config:environment');
122
- const svgPath = config?.['@ember-eui/core']?.svgPath || 'svg/assets/';
123
- const euiIcon = typeToPathMap[type].replace(/_/g, '-').toLowerCase();
124
- return `${svgPath}${euiIcon}`;
122
+ return typeToPathMap[type].replace('tokens/', '');
125
123
  }
126
124
 
127
125
  get isAppIcon(): string | boolean {
@@ -1,6 +1,6 @@
1
1
  import GlimmerComponent from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
- import { htmlSafe } from '@ember/string';
3
+ import { htmlSafe } from '@ember/template';
4
4
  import { action } from '@ember/object';
5
5
  import { argOrDefaultDecorator as argOrDefault } from '../../helpers/arg-or-default';
6
6
  import { sizeMapping } from '../../utils/css-mappings/eui-image';
@@ -1,18 +1,24 @@
1
- <ul
2
- class={{class-names
3
- (if (eq @maxWidth true) "euiListGroup-maxWidthDefault")
4
- (if @bordered "euiListGroup-bordered")
5
- (if @flush "euiListGroup-flush")
6
- componentName="EuiListGroup"
7
- gutterSize=(arg-or-default @gutterSize "s")
8
- }}
9
- ...attributes
10
- {{style
11
- (if
12
- (and @maxWidth (not-eq @maxWidth true))
13
- (inline-styles componentName="EuiListGroup" componentArgs=(hash maxWidth=@maxWidth))
1
+ {{#let
2
+ (if
3
+ (and @maxWidth (not-eq @maxWidth true))
4
+ (inline-styles
5
+ componentName="EuiListGroup" componentArgs=(hash maxWidth=@maxWidth)
14
6
  )
15
- }}
16
- >
17
- {{yield}}
18
- </ul>
7
+ (hash)
8
+ )
9
+ as |inlineStyles|
10
+ }}
11
+ <ul
12
+ class={{class-names
13
+ (if (eq @maxWidth true) "euiListGroup-maxWidthDefault")
14
+ (if @bordered "euiListGroup-bordered")
15
+ (if @flush "euiListGroup-flush")
16
+ componentName="EuiListGroup"
17
+ gutterSize=(arg-or-default @gutterSize "s")
18
+ }}
19
+ ...attributes
20
+ {{style inlineStyles}}
21
+ >
22
+ {{yield}}
23
+ </ul>
24
+ {{/let}}
@@ -9,6 +9,7 @@ export default class EuiMarkdownEditorFooterComponent extends Component<EuiMarkd
9
9
  @tracked isShowingHelp = false;
10
10
 
11
11
  get svgPath() {
12
+ //@ts-ignore
12
13
  const config = getOwner(this).resolveRegistration('config:environment');
13
14
  const svgPath = config?.['@ember-eui/core']?.svgPath || 'svg/';
14
15
  return svgPath;
@@ -12,7 +12,7 @@
12
12
  </EuiToolTip>
13
13
 
14
14
  {{/each}}
15
- <span className="euiMarkdownEditorToolbar__divider"></span>
15
+ <span class="euiMarkdownEditorToolbar__divider"></span>
16
16
  {{#each this.listButtons as |item|}}
17
17
  <EuiToolTip @content={{item.label}} @delay="long">
18
18
  <EuiButtonIcon
@@ -26,7 +26,7 @@
26
26
  </EuiToolTip>
27
27
 
28
28
  {{/each}}
29
- <span className="euiMarkdownEditorToolbar__divider"></span>
29
+ <span class="euiMarkdownEditorToolbar__divider"></span>
30
30
  {{#each this.quoteCodeLinkButtons as |item|}}
31
31
  <EuiToolTip @content={{item.label}} @delay="long">
32
32
  <EuiButtonIcon
@@ -40,7 +40,7 @@
40
40
 
41
41
  {{/each}}
42
42
  {{#if (gte this.uiPlugins.length 0)}}
43
- <span className="euiMarkdownEditorToolbar__divider"></span>
43
+ <span class="euiMarkdownEditorToolbar__divider"></span>
44
44
  {{#each this.uiPlugins as |plugin|}}
45
45
  {{#let
46
46
  (and @selectedNode (eq @selectedNode.type plugin.name))
@@ -30,6 +30,7 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
30
30
  ];
31
31
 
32
32
  get svgPath() {
33
+ //@ts-ignore
33
34
  const config = getOwner(this).resolveRegistration('config:environment');
34
35
  const svgPath = config?.['@ember-eui/core']?.svgPath || 'svg/';
35
36
  return svgPath;
@@ -1,28 +1,37 @@
1
- <div
2
- class={{class-names "euiModal" (if (eq @maxWidth true) "euiModal--maxWidth-default")}}
3
- tabindex="0"
4
- ...attributes
5
- {{style
6
- (if
7
- (and @maxWidth (not-eq @maxWidth true))
8
- (inline-styles componentName="EuiModal" componentArgs=(hash maxWidth=@maxWidth))
1
+ {{#let
2
+ (if
3
+ (and @maxWidth (not-eq @maxWidth true))
4
+ (inline-styles
5
+ componentName="EuiModal" componentArgs=(hash maxWidth=@maxWidth)
9
6
  )
10
- }}
11
- {{focus-trap
12
- isActive=(arg-or-default @isFocusTrapActive true)
13
- shouldSelfFocus=(arg-or-default @shouldSelfFocus true)
14
- isPaused=(arg-or-default @isFocusTrapPaused false)
15
- focusTrapOptions=(arg-or-default @focusTrapOptions (hash))
16
- }}
17
- {{on-key "Escape" @onClose}}
18
- >
19
- <EuiButtonIcon
20
- class="euiModal__closeIcon"
21
- @iconType="cross"
22
- @color="text"
23
- {{on "click" @onClose}}
24
- />
25
- <div class="euiModal__flex">
26
- {{yield}}
7
+ (hash)
8
+ )
9
+ as |inlineStyles|
10
+ }}
11
+ <div
12
+ class={{class-names
13
+ "euiModal"
14
+ (if (eq @maxWidth true) "euiModal--maxWidth-default")
15
+ }}
16
+ tabindex="0"
17
+ ...attributes
18
+ {{style inlineStyles}}
19
+ {{focus-trap
20
+ isActive=(arg-or-default @isFocusTrapActive true)
21
+ shouldSelfFocus=(arg-or-default @shouldSelfFocus true)
22
+ isPaused=(arg-or-default @isFocusTrapPaused false)
23
+ focusTrapOptions=(arg-or-default @focusTrapOptions (hash))
24
+ }}
25
+ {{on-key "Escape" @onClose}}
26
+ >
27
+ <EuiButtonIcon
28
+ class="euiModal__closeIcon"
29
+ @iconType="cross"
30
+ @color="text"
31
+ {{on "click" @onClose}}
32
+ />
33
+ <div class="euiModal__flex">
34
+ {{yield}}
35
+ </div>
27
36
  </div>
28
- </div>
37
+ {{/let}}
@@ -1,17 +1,21 @@
1
1
  {{#let
2
2
  (unique-id)
3
3
  (optional @onTabClick)
4
- (arg-or-default @autoFocus "initial")
4
+ (arg-or-default @autoFocus 'initial')
5
5
  (use-state
6
- (get-tab-id (arg-or-default (or @selectedTab @initialSelectedTab) (object-at 0 @tabs)))
7
- ) as |id onTabClick autoFocus selectedTab|
6
+ (get-tab-id
7
+ (arg-or-default (or @selectedTab @initialSelectedTab) (object-at 0 @tabs))
8
+ )
9
+ )
10
+ as |id onTabClick autoFocus selectedTab|
8
11
  }}
9
12
  <div class={{@className}} ...attributes>
10
13
  <EuiTabs
11
14
  @selectedTab={{selectedTab.value}}
12
15
  @expand={{@expand}}
13
16
  @display={{@display}}
14
- @size={{@size}} as |EuiTab|
17
+ @size={{@size}}
18
+ as |EuiTab|
15
19
  >
16
20
  {{#each @tabs as |tab|}}
17
21
  <EuiTab
@@ -26,14 +30,16 @@
26
30
  </EuiTab>
27
31
  {{/each}}
28
32
  </EuiTabs>
29
- {{#with (find-by "id" selectedTab.value @tabs) as |currentTab|}}
30
- <div role="tabpanel" id={{id}} aria-labelledby={{currentTab.id}}>
31
- {{#if (has-block "selectedTabContent")}}
32
- {{yield currentTab to="selectedTabContent"}}
33
- {{else}}
34
- {{currentTab.content}}
35
- {{/if}}
36
- </div>
37
- {{/with}}
33
+ {{#let (find-by "id" selectedTab.value @tabs) as |currentTab|}}
34
+ {{#if currentTab}}
35
+ <div role="tabpanel" id={{id}} aria-labelledby={{currentTab.id}}>
36
+ {{#if (has-block "selectedTabContent")}}
37
+ {{yield currentTab to="selectedTabContent"}}
38
+ {{else}}
39
+ {{currentTab.content}}
40
+ {{/if}}
41
+ </div>
42
+ {{/if}}
43
+ {{/let}}
38
44
  </div>
39
45
  {{/let}}
@@ -27,7 +27,7 @@
27
27
  />
28
28
  {{/if}}
29
29
 
30
- <span className="euiToastHeader__title">
30
+ <span class="euiToastHeader__title">
31
31
  {{@title}}
32
32
  </span>
33
33
  </div>
@@ -66,4 +66,6 @@ export function classNames(
66
66
  return str;
67
67
  }
68
68
 
69
- export default helper(classNames);
69
+ export default helper<string[], Options & { addBase: boolean }, string>(
70
+ classNames
71
+ );
@@ -0,0 +1,28 @@
1
+ /* This is to avoid bumping elastic eui styles to 3.2.x , delete when possible. */
2
+ .euiAvatar {
3
+ -webkit-flex-shrink: 0;
4
+ flex-shrink: 0;
5
+ display: -webkit-inline-flex;
6
+ display: inline-flex;
7
+ -webkit-justify-content: center;
8
+ justify-content: center;
9
+ -webkit-align-items: center;
10
+ align-items: center;
11
+ background-size: cover;
12
+ text-align: center;
13
+ vertical-align: middle;
14
+ overflow-x: hidden;
15
+ font-weight: 500;
16
+ }
17
+
18
+ .euiMarkdownEditor--fullHeight {
19
+ display: -webkit-flex;
20
+ display: flex;
21
+ -webkit-flex-direction: column;
22
+ flex-direction: column;
23
+ height: 100%;
24
+ }
25
+
26
+ .euiMarkdownEditor--isPreviewing .euiMarkdownEditor__toggleContainer {
27
+ display: none;
28
+ }
@@ -1,30 +1 @@
1
- /* This is to avoid bumping elastic eui styles to 3.2.x , delete when possible. */
2
- .euiAvatar {
3
- -webkit-flex-shrink: 0;
4
- flex-shrink: 0;
5
- display: -webkit-inline-flex;
6
- display: inline-flex;
7
- -webkit-justify-content: center;
8
- justify-content: center;
9
- -webkit-align-items: center;
10
- align-items: center;
11
- background-size: cover;
12
- text-align: center;
13
- vertical-align: middle;
14
- overflow-x: hidden;
15
- font-weight: 500;
16
- }
17
-
18
- .euiMarkdownEditor--fullHeight {
19
- display: -webkit-flex;
20
- display: flex;
21
- -webkit-flex-direction: column;
22
- flex-direction: column;
23
- height: 100%;
24
- }
25
-
26
- .euiMarkdownEditor--isPreviewing .euiMarkdownEditor__toggleContainer {
27
- display: none;
28
- }
29
-
30
1
  @import 'ember-eui-components';
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- module.exports = function(/* environment, appConfig */) {
4
- return { };
3
+ module.exports = function (/* environment, appConfig */) {
4
+ return {};
5
5
  };
@@ -1,53 +1,58 @@
1
1
  # Demo
2
2
 
3
3
  ```hbs template
4
- <EuiText style="cursor: pointer;" {{on "mousemove" this.update}}>
5
- You can hover on the icon below, open the network tab, all svgs are loaded on demand!
6
- <EuiIcon @type={{this.icon}} />
7
- <EuiIcon @type={{this.icon}} @size="m" />
8
- <EuiIcon @type={{this.icon}} @size="l" />
9
- <EuiIcon @type={{this.icon}} @size="xl" />
10
- <EuiIcon @type={{this.icon}} @size="xxl" />
11
- </EuiText>
4
+ <EuiIcon @type='logoGolang' />
5
+ <EuiIcon @type='logoGolang' @size='m' />
6
+ <EuiIcon @type='logoGolang' @size='l' />
7
+ <EuiIcon @type='logoGolang' @size='xl' />
8
+ <EuiIcon @type='logoGolang' @size='xxl' />
12
9
  <br />
13
- <EuiIcon @type="logoGolang" />
14
- <EuiIcon @type="logoGolang" @size="m" />
15
- <EuiIcon @type="logoGolang" @size="l" />
16
- <EuiIcon @type="logoGolang" @size="xl" />
17
- <EuiIcon @type="logoGolang" @size="xxl" />
10
+ <EuiIcon @type='logoRedis' @size='s' />
11
+ <EuiIcon @type='logoRedis' @size='m' />
12
+ <EuiIcon @type='logoRedis' @size='l' />
13
+ <EuiIcon @type='logoRedis' @size='xl' />
14
+ <EuiIcon @type='logoRedis' @size='xxl' />
18
15
  <br />
19
- <EuiIcon @type="logoRedis" @size="s" />
20
- <EuiIcon @type="logoRedis" @size="m" />
21
- <EuiIcon @type="logoRedis" @size="l" />
22
- <EuiIcon @type="logoRedis" @size="xl" />
23
- <EuiIcon @type="logoRedis" @size="xxl" />
16
+ <EuiIcon @type='logoAWS' @size='s' />
17
+ <EuiIcon @type='logoAWS' @size='m' />
18
+ <EuiIcon @type='logoAWS' @size='l' />
19
+ <EuiIcon @type='logoAWS' @size='xl' />
20
+ <EuiIcon @type='logoAWS' @size='xxl' />
24
21
  <br />
25
- <EuiIcon @type="logoAWS" @size="s" />
26
- <EuiIcon @type="logoAWS" @size="m" />
27
- <EuiIcon @type="logoAWS" @size="l" />
28
- <EuiIcon @type="logoAWS" @size="xl" />
29
- <EuiIcon @type="logoAWS" @size="xxl" />
22
+ <EuiIcon @type='/assets/ember.svg' @size='s' />
23
+ <EuiIcon @type='/assets/ember.svg' @size='m' />
24
+ <EuiIcon @type='/assets/ember.svg' @size='l' />
25
+ <EuiIcon @type='/assets/ember.svg' @size='xl' />
26
+ <EuiIcon @type='/assets/ember.svg' @size='xxl' />
30
27
  <br />
31
- <EuiIcon @type="/assets/ember.svg" @size="s" />
32
- <EuiIcon @type="/assets/ember.svg" @size="m" />
33
- <EuiIcon @type="/assets/ember.svg" @size="l" />
34
- <EuiIcon @type="/assets/ember.svg" @size="xl" />
35
- <EuiIcon @type="/assets/ember.svg" @size="xxl" />
28
+ <EuiIcon
29
+ @type='https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg'
30
+ @size='s'
31
+ />
32
+ <EuiIcon
33
+ @type='https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg'
34
+ @size='m'
35
+ />
36
+ <EuiIcon
37
+ @type='https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg'
38
+ @size='l'
39
+ />
40
+ <EuiIcon
41
+ @type='https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg'
42
+ @size='xl'
43
+ />
44
+ <EuiIcon
45
+ @type='https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg'
46
+ @size='xxl'
47
+ />
36
48
  <br />
37
- <EuiIcon @type="https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg" @size="s" />
38
- <EuiIcon @type="https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg" @size="m" />
39
- <EuiIcon @type="https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg" @size="l" />
40
- <EuiIcon @type="https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg" @size="xl" />
41
- <EuiIcon @type="https://www.flaticon.es/svg/static/icons/svg/3445/3445045.svg" @size="xxl" />
42
- <br />
43
- <EuiIcon @type="flag" @size="s" @color="green" />
44
- <EuiIcon @type="flag" @size="m" @color="white" />
45
- <EuiIcon @type="flag" @size="l" @color="red" />
46
- <EuiIcon @type="flag" @size="xl" @color="green" />
47
- <EuiIcon @type="flag" @size="xxl" @color="white" />
49
+ <EuiIcon @type='flag' @size='s' @color='green' />
50
+ <EuiIcon @type='flag' @size='m' @color='white' />
51
+ <EuiIcon @type='flag' @size='l' @color='red' />
52
+ <EuiIcon @type='flag' @size='xl' @color='green' />
53
+ <EuiIcon @type='flag' @size='xxl' @color='white' />
48
54
  ```
49
55
 
50
-
51
56
  ```js component
52
57
  import Component from '@glimmer/component';
53
58
  import { tracked } from '@glimmer/tracking';
@@ -65,5 +70,4 @@ export default class DemoIconComponent extends Component {
65
70
  this.icon = this.icons[Math.floor(Math.random() * this.icons.length)];
66
71
  }
67
72
  }
68
-
69
- ```
73
+ ```
package/index.js CHANGED
@@ -1,10 +1,4 @@
1
1
  'use strict';
2
- const path = require('path');
3
- const resolve = require('resolve');
4
- const BroccoliMergeTrees = require('broccoli-merge-trees');
5
- const writeFile = require('broccoli-file-creator');
6
- const Funnel = require('broccoli-funnel');
7
- const EuiScssFilter = require('./lib/elastic-eui-scss-filter');
8
2
 
9
3
  module.exports = {
10
4
  name: require('./package').name,
@@ -53,14 +47,12 @@ module.exports = {
53
47
  ? this.emberEuiOptions.theme
54
48
  : 'light';
55
49
 
56
- if (this.emberEuiOptions.useCompiledCss !== false) {
57
- if (this.emberEuiOptions.theme) {
58
- app.import(
59
- `node_modules/@elastic/eui/dist/eui_theme_${this.emberEuiOptions.theme}.min.css`
60
- );
61
- } else {
62
- app.import('node_modules/@elastic/eui/dist/eui_theme_light.min.css');
63
- }
50
+ if (this.emberEuiOptions.theme) {
51
+ app.import(
52
+ `node_modules/@elastic/eui/dist/eui_theme_${this.emberEuiOptions.theme}.min.css`
53
+ );
54
+ } else {
55
+ app.import('node_modules/@elastic/eui/dist/eui_theme_light.min.css');
64
56
  }
65
57
 
66
58
  this._super.included.apply(this, arguments);
@@ -71,47 +63,5 @@ module.exports = {
71
63
  (a) => a.name === 'ember-power-select'
72
64
  );
73
65
  return emberPowerSelect.contentFor(type, config);
74
- },
75
-
76
- // TODO: Currently the performance of recompiling sass on every change are serious, find a way to improve them.
77
- treeForStyles(tree) {
78
- let trees = [];
79
- let euiScssFiles;
80
-
81
- if (this.emberEuiOptions.useCompiledCss === false) {
82
- euiScssFiles = new Funnel(this.pathBase('@elastic/eui'), {
83
- srcDir: '/src',
84
- include: ['**/*.scss'],
85
- destDir: 'elastic-eui',
86
- annotation: 'ElasticEUIScssFunnel'
87
- });
88
-
89
- euiScssFiles = new EuiScssFilter(euiScssFiles);
90
-
91
- trees.push(euiScssFiles);
92
- }
93
-
94
- let selectedTheme = this.emberEuiOptions.theme;
95
-
96
- let importer = writeFile(
97
- 'ember-eui-components.scss',
98
- euiScssFiles ? `@import './elastic-eui/theme_${selectedTheme}.scss';` : ''
99
- );
100
-
101
- trees.push(importer);
102
-
103
- trees.push(tree);
104
-
105
- let output = new BroccoliMergeTrees(trees, {
106
- overwrite: true
107
- });
108
-
109
- return this._super.treeForStyles(output);
110
- },
111
-
112
- pathBase(packageName) {
113
- return path.dirname(
114
- resolve.sync(`${packageName}/package.json`, { basedir: __dirname })
115
- );
116
66
  }
117
67
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-eui/core",
3
- "version": "1.6.1",
3
+ "version": "3.0.0",
4
4
  "description": "Ember Components for Elastic UI",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -26,11 +26,14 @@
26
26
  },
27
27
  "scripts": {
28
28
  "build": "ember build --environment=production",
29
- "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*",
29
+ "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"",
30
+ "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix",
30
31
  "lint:hbs": "ember-template-lint .",
31
- "lint:js": "eslint .",
32
+ "lint:hbs:fix": "ember-template-lint . --fix",
33
+ "lint:js": "eslint . --cache",
34
+ "lint:js:fix": "eslint . --fix",
32
35
  "start": "ember serve",
33
- "test": "npm-run-all lint:* test:*",
36
+ "test": "npm-run-all lint test:*",
34
37
  "test:ember": "ember test",
35
38
  "test:ember-compatibility": "ember try:each",
36
39
  "prepack": "ember ts:precompile",
@@ -49,34 +52,30 @@
49
52
  },
50
53
  "dependencies": {
51
54
  "@elastic/eui": "31.0.0",
52
- "@ember/render-modifiers": "^1.0.2",
53
- "@html-next/vertical-collection": "^2.0.0",
55
+ "@ember/render-modifiers": "^2.0.4",
56
+ "@html-next/vertical-collection": "^2.1.0",
54
57
  "@types/lodash-es": "^4.17.4",
55
- "broccoli-file-creator": "^2.1.1",
56
- "broccoli-filter": "^1.3.0",
57
- "broccoli-funnel": "^2.0.1",
58
- "broccoli-merge-trees": "^4.2.0",
59
58
  "chroma-js": "^2.1.0",
60
- "ember-auto-import": "^1.6.0",
59
+ "ember-auto-import": "^1.11.3",
61
60
  "ember-cached-decorator-polyfill": "^0.1.1",
62
- "ember-cli-babel": "^7.21.0",
63
- "ember-cli-htmlbars": "^5.3.2",
64
- "ember-cli-typescript": "^4.1.0",
61
+ "ember-cli-babel": "^7.26.6",
62
+ "ember-cli-htmlbars": "^5.7.1",
63
+ "ember-cli-typescript": "4.2.1",
65
64
  "ember-composable-helpers": "^4.4.1",
66
- "ember-element-helper": "^0.5.0",
67
- "ember-focus-trap": "^0.4.0",
65
+ "ember-element-helper": "^0.5.5",
66
+ "ember-focus-trap": "^0.7.0",
68
67
  "ember-href-to": "^4.1.0",
69
68
  "ember-in-element-polyfill": "^1.0.0",
70
69
  "ember-keyboard": "^6.0.2",
71
70
  "ember-math-helpers": "^2.15.0",
72
- "ember-modifier": "^2.1.1",
71
+ "ember-modifier": "^2.1.2",
73
72
  "ember-named-blocks-polyfill": "^0.2.3",
74
73
  "ember-power-select": "^5.0.2",
75
74
  "ember-set-body-class": "^1.0.2",
76
- "ember-set-helper": "^2.0.0",
75
+ "ember-set-helper": "^2.0.1",
77
76
  "ember-style-modifier": "^0.6.0",
78
- "ember-svg-jar": "https://github.com/betocantu93/ember-svg-jar.git#add-bundle-flag",
79
- "ember-truth-helpers": "^2.1.0",
77
+ "ember-svg-jar": "^2.3.4",
78
+ "ember-truth-helpers": "^3.0.0",
80
79
  "highlight.js": "^9.18.5",
81
80
  "lodash-es": "^4.17.21",
82
81
  "mdast-util-to-hast": "^10.0.0",
@@ -93,57 +92,76 @@
93
92
  "vfile": "^4.2.0"
94
93
  },
95
94
  "devDependencies": {
96
- "@ember/optional-features": "^1.3.0",
97
- "@glimmer/component": "^1.0.1",
98
- "@glimmer/tracking": "^1.0.0",
95
+ "@ember/optional-features": "^2.0.0",
96
+ "@ember/test-helpers": "^2.6.0",
97
+ "@embroider/test-setup": "^1.0.0",
98
+ "@glimmer/component": "^1.0.4",
99
+ "@glimmer/tracking": "^1.0.4",
99
100
  "@types/ember": "^3.16.0",
100
- "@types/ember-qunit": "^3.4.9",
101
- "@types/ember-resolver": "^5.0.9",
102
- "@types/ember__test-helpers": "^1.7.2",
103
- "@types/qunit": "^2.9.1",
101
+ "@types/ember-qunit": "^5.0.0",
102
+ "@types/ember-resolver": "^5.0.11",
103
+ "@types/ember__application": "^4.0.0",
104
+ "@types/ember__array": "^4.0.1",
105
+ "@types/ember__component": "^4.0.4",
106
+ "@types/ember__controller": "^4.0.0",
107
+ "@types/ember__debug": "^4.0.0",
108
+ "@types/ember__engine": "^4.0.0",
109
+ "@types/ember__error": "^4.0.0",
110
+ "@types/ember__object": "^4.0.0",
111
+ "@types/ember__polyfills": "^4.0.0",
112
+ "@types/ember__routing": "^4.0.3",
113
+ "@types/ember__runloop": "^4.0.0",
114
+ "@types/ember__service": "^4.0.0",
115
+ "@types/ember__string": "^3.0.9",
116
+ "@types/ember__template": "^4.0.0",
117
+ "@types/ember__test": "^4.0.0",
118
+ "@types/ember__test-helpers": "^2.6.1",
119
+ "@types/ember__utils": "^4.0.0",
120
+ "@types/htmlbars-inline-precompile": "^3.0.0",
121
+ "@types/qunit": "^2.11.3",
122
+ "@types/rsvp": "^4.0.4",
104
123
  "babel-eslint": "^10.1.0",
105
124
  "broccoli-asset-rev": "^3.0.0",
106
- "ember-cli": "~3.20.0",
125
+ "ember-cli": "~3.28.0",
107
126
  "ember-cli-dependency-checker": "^3.2.0",
108
- "ember-cli-inject-live-reload": "^2.0.2",
127
+ "ember-cli-inject-live-reload": "^2.1.0",
109
128
  "ember-cli-netlify": "^0.4.1",
110
- "ember-cli-postcss": "^7.0.0",
111
- "ember-cli-resolve-asset": "^0.3.0",
112
129
  "ember-cli-sri": "^2.1.1",
113
- "ember-cli-string-helpers": "^5.0.0",
130
+ "ember-cli-string-helpers": "^6.1.0",
131
+ "ember-cli-terser": "^4.0.2",
114
132
  "ember-cli-typescript-blueprints": "^3.0.0",
115
- "ember-cli-uglify": "^3.0.0",
116
133
  "ember-disable-prototype-extensions": "^1.1.3",
117
- "ember-element-helper": "^0.3.1",
118
134
  "ember-export-application-global": "^2.0.1",
119
- "ember-get-config": "^0.3.0",
120
- "ember-load-initializers": "^2.1.1",
135
+ "ember-get-config": "~1.0.2",
136
+ "ember-load-initializers": "^2.1.2",
121
137
  "ember-maybe-import-regenerator": "^0.1.6",
122
- "ember-modifier": "^2.1.1",
123
- "ember-qunit": "^4.6.0",
124
- "ember-resolver": "^8.0.0",
125
- "ember-source": "~3.20.2",
126
- "ember-source-channel-url": "^2.0.1",
127
- "ember-string-helpers": "^1.0.2",
128
- "ember-template-lint": "^2.9.1",
138
+ "ember-page-title": "^6.2.2",
139
+ "ember-qunit": "^5.1.4",
140
+ "ember-resolver": "^8.0.2",
141
+ "ember-source": "~3.28.0",
142
+ "ember-source-channel-url": "^3.0.0",
143
+ "ember-template-lint": "^3.6.0",
129
144
  "ember-try": "^1.4.0",
130
- "eslint": "^7.5.0",
131
- "eslint-plugin-ember": "^8.9.1",
145
+ "eslint": "^7.32.0",
146
+ "eslint-config-prettier": "^8.3.0",
147
+ "eslint-plugin-ember": "^10.5.4",
132
148
  "eslint-plugin-node": "^11.1.0",
133
- "eslint-plugin-prettier": "^3.3.1",
149
+ "eslint-plugin-prettier": "^3.4.1",
150
+ "eslint-plugin-qunit": "^6.2.0",
134
151
  "loader.js": "^4.7.0",
135
152
  "lodash-es": "^4.17.21",
136
153
  "mdast-util-to-hast": "^10.0.0",
137
154
  "npm-run-all": "^4.1.5",
138
- "prettier": "^2.2.1",
139
- "qunit-dom": "^1.2.0",
140
- "typescript": "^4.0.3"
155
+ "prettier": "^2.3.2",
156
+ "qunit": "^2.16.0",
157
+ "qunit-dom": "^1.6.0",
158
+ "typescript": "^4.5.5"
141
159
  },
142
160
  "publishConfig": {
143
161
  "access": "public"
144
162
  },
145
163
  "engines": {
146
- "node": ">= 12"
164
+ "node": "12.* || 14.* || >= 16"
147
165
  },
148
166
  "ember": {
149
167
  "edition": "octane"
@@ -154,5 +172,5 @@
154
172
  "volta": {
155
173
  "node": "12.22.1"
156
174
  },
157
- "gitHead": "cd8d70c4fcb1f49e0c2921315fe52b5afffcfbd1"
175
+ "gitHead": "24ca3b05bb2ffb838ab452bb5b2a9794fd8a993f"
158
176
  }
package/.prettierignore DELETED
@@ -1,20 +0,0 @@
1
- # unconventional js
2
- vendor/
3
- public/
4
-
5
- # compiled output
6
- dist/
7
- tmp/
8
-
9
- # dependencies
10
- node_modules/
11
-
12
- # ember-try
13
- .node_modules.ember-try/
14
- bower.json.ember-try
15
- package.json.ember-try
16
-
17
- package.json
18
-
19
- *.html
20
- *.js
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- const Filter = require('broccoli-filter');
4
-
5
- module.exports = class EuiScssFilter extends Filter {
6
- constructor(inputNode) {
7
- super(inputNode, { annotation: 'EuiScssFilter' });
8
-
9
- this.extensions = ['scss'];
10
- this.targetExtension = 'scss';
11
- }
12
-
13
- processString(content) {
14
- return content.replace("@import '../packages/index';", '');
15
- }
16
- };