@ember-eui/core 1.6.3 → 3.0.2

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +6 -13
  3. package/addon/components/eui-badge/index.hbs +3 -3
  4. package/addon/components/eui-button/index.hbs +2 -0
  5. package/addon/components/eui-button-content/index.hbs +1 -0
  6. package/addon/components/eui-button-empty/index.hbs +2 -0
  7. package/addon/components/eui-button-icon/index.hbs +2 -0
  8. package/addon/components/eui-card/eui-card-select/index.hbs +1 -1
  9. package/addon/components/eui-card/index.hbs +1 -1
  10. package/addon/components/eui-combo-box/create-option/index.ts +1 -1
  11. package/addon/components/eui-icon/index.hbs +39 -20
  12. package/addon/components/eui-icon/index.ts +2 -6
  13. package/addon/components/eui-image/index.ts +1 -1
  14. package/addon/components/eui-markdown-editor/index.ts +1 -0
  15. package/addon/components/eui-markdown-editor-footer/icons/markdown-logo/index.d.ts +4 -0
  16. package/addon/components/eui-markdown-editor-footer/icons/markdown-logo/index.hbs +16 -0
  17. package/addon/components/eui-markdown-editor-footer/index.hbs +3 -1
  18. package/addon/components/eui-markdown-editor-footer/index.ts +0 -11
  19. package/addon/components/eui-markdown-editor-toolbar/icons/markdown-checkmark/index.d.ts +4 -0
  20. package/addon/components/eui-markdown-editor-toolbar/icons/markdown-checkmark/index.hbs +16 -0
  21. package/addon/components/eui-markdown-editor-toolbar/index.hbs +6 -1
  22. package/addon/components/eui-markdown-editor-toolbar/index.ts +5 -8
  23. package/addon/components/eui-tabbed-content/index.hbs +19 -13
  24. package/addon/helpers/class-names.ts +3 -1
  25. package/addon/styles/ember-eui.css +28 -0
  26. package/app/components/eui-markdown-editor-footer/icons/markdown-logo/index.js +1 -0
  27. package/app/components/eui-markdown-editor-toolbar/icons/markdown-checkmark/index.js +1 -0
  28. package/app/styles/ember-eui.scss +0 -29
  29. package/config/environment.js +2 -2
  30. package/docs/display/icons-demo/demo1.md +46 -42
  31. package/index.js +6 -56
  32. package/package.json +69 -51
  33. package/.prettierignore +0 -20
  34. package/lib/elastic-eui-scss-filter.js +0 -16
  35. package/public/markdown-checkmark.svg +0 -3
  36. package/public/markdown-logo.svg +0 -3
package/CHANGELOG.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  ### Master
4
4
 
5
+ ### 3.0.2
6
+ `@ember-eui/core`
7
+ 🐛 Bug / Fixes
8
+ - Fix `<EuiMarkdownEditor />` icons compatibility with ember-source < 3.27
9
+
10
+ ### 3.0.1
11
+ `@ember-eui/core`
12
+ 🚀 Enhancements
13
+ - No longer need to add icons from public icons in ember-eui/core
14
+
15
+ ### 3.0.0
16
+ 💥 Breaking change
17
+ `@ember-eui/*`
18
+ - Drops support for ember-source < v3.20.0
19
+ - Drops support for node 10
20
+ - 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
21
+
22
+ 🏠 Internal
23
+ `@ember-eui/*`
24
+ - `ember-cli-update --to=3.28.0` on all packages
25
+ - Update ember-cli-typescript
26
+ - Remove some deprecations like new imports paths and helpers usage and `#with` helper
27
+
28
+ ### 2.0.0
29
+ 💥 Breaking change
30
+ `@ember-eui/core`
31
+ - Deprecate `ember-svg-jar` `hbs` strategy for now, just use stock `ember-svg-jar`
32
+
5
33
  ### 1.6.3
6
34
  🐛 Bug / Fixes
7
35
  `@ember-eui/core`
package/README.md CHANGED
@@ -1,25 +1,18 @@
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',
25
18
  'node_modules/@elastic/eui/lib/components/icon',
@@ -30,15 +23,15 @@ var app = new EmberApp(defaults, {
30
23
 
31
24
  ```
32
25
 
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
26
  ## Compatibility
36
27
 
37
- - Ember.js v3.12 or above
38
- - Ember CLI v2.13 or above
39
- - Node.js v10 or above
28
+ * Ember.js v3.20 or above
29
+ * Ember CLI v3.20 or above
30
+ * Node.js v12 or above
31
+
40
32
 
41
- ## Installation
33
+ Installation
34
+ ------------------------------------------------------------------------------
42
35
 
43
36
  ```
44
37
  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}}
@@ -21,6 +21,7 @@
21
21
  @iconSide={{@iconSide}}
22
22
  @iconClasses={{@iconClasses}}
23
23
  @useSvg={{@useSvg}}
24
+ @useComponent={{@useComponent}}
24
25
  @textClasses={{class-names "euiButton__text" @textClasses}}
25
26
  >
26
27
  {{yield}}
@@ -48,6 +49,7 @@
48
49
  @iconSide={{@iconSide}}
49
50
  @iconClasses={{@iconClasses}}
50
51
  @useSvg={{@useSvg}}
52
+ @useComponent={{@useComponent}}
51
53
  @textClasses={{class-names "euiButton__text" @textClasses}}
52
54
  >
53
55
  {{yield}}
@@ -13,6 +13,7 @@
13
13
  @type={{@iconType}}
14
14
  @size="m"
15
15
  @useSvg={{@useSvg}}
16
+ @useComponent={{@useComponent}}
16
17
  />
17
18
  {{/if}}
18
19
  <span class={{@textClasses}}>
@@ -18,6 +18,7 @@
18
18
  @iconSide={{@iconSide}}
19
19
  @iconClasses={{@iconClasses}}
20
20
  @useSvg={{@useSvg}}
21
+ @useComponent={{@useComponent}}
21
22
  @textClasses={{class-names "euiButtonEmpty__text" @textClasses}}
22
23
  >
23
24
  {{yield}}
@@ -44,6 +45,7 @@
44
45
  @iconSide={{@iconSide}}
45
46
  @iconClasses={{@iconClasses}}
46
47
  @useSvg={{@useSvg}}
48
+ @useComponent={{@useComponent}}
47
49
  @textClasses={{class-names "euiButtonEmpty__text" @textClasses}}
48
50
  >
49
51
  {{yield}}
@@ -11,6 +11,7 @@
11
11
  @type={{@iconType}}
12
12
  @size={{arg-or-default @iconSize "m"}}
13
13
  @useSvg={{@useSvg}}
14
+ @useComponent={{@useComponent}}
14
15
  aria-hidden="true"
15
16
  />
16
17
  {{/if}}
@@ -29,6 +30,7 @@
29
30
  @type={{@iconType}}
30
31
  @size={{@iconSize}}
31
32
  @useSvg={{@useSvg}}
33
+ @useComponent={{@useComponent}}
32
34
  aria-hidden="true"
33
35
  />
34
36
  {{/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 = {
@@ -1,39 +1,58 @@
1
- {{#if this.icon.inner}}
1
+ {{#if @useComponent}}
2
2
  {{! has the shape of a curried component }}
3
- {{component this.icon}}
4
- {{else}}
5
- {{#if this.useImage}}
6
- <img
7
- src={{this.icon}}
3
+ {{#let (component this.icon) as |IconComponent|}}
4
+ {{!template-lint-disable}}
5
+ <IconComponent
8
6
  class={{class-names
9
7
  this.optionalColorClass
10
8
  (if this.isAppIcon "euiIcon--app")
11
9
  componentName="EuiIcon"
12
10
  size=this.size
13
11
  }}
14
- alt={{if @title @title}}
15
- tabIndex={{@tabIndex}}
12
+ role="image"
13
+ aria-hidden={{if this.isAriaHidden "true"}}
14
+ aria-label={{if @aria-label @aria-label this.titleId}}
15
+ aria-labelledby={{if @aria-labelledby @aria-labelledby this.titleId}}
16
+ tabindex={{this.tabIndex}}
17
+ style={{this.optionalCustomStyles}}
16
18
  ...attributes
17
19
  />
18
- {{else}}
19
- <Svg
20
- @name={{this.icon}}
21
- @loadingSvg={{this.emptyIcon}}
20
+ {{/let}}
21
+ {{else}}
22
+ {{#if this.useImage}}
23
+ <img
24
+ src={{this.icon}}
22
25
  class={{class-names
23
26
  this.optionalColorClass
24
27
  (if this.isAppIcon "euiIcon--app")
25
28
  componentName="EuiIcon"
26
29
  size=this.size
27
30
  }}
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}}
31
+ alt={{if @title @title}}
32
+ tabIndex={{@tabIndex}}
36
33
  ...attributes
37
34
  />
35
+ {{else}}
36
+ <div
37
+ class={{class-names "euiIcon" (if this.isAppIcon "euiIcon--app")}}
38
+ ...attributes
39
+ >
40
+ {{svg-jar
41
+ this.icon
42
+ class=(class-names
43
+ this.optionalColorClass
44
+ (if this.isAppIcon "euiIcon--app")
45
+ componentName="EuiIcon"
46
+ addBase=false
47
+ size=this.size
48
+ )
49
+ role="image"
50
+ aria-hidden=(if this.isAriaHidden "true")
51
+ aria-label=(if @aria-label @aria-label this.titleId)
52
+ aria-labelledby=(if @aria-labelledby @aria-labelledby this.titleId)
53
+ tabindex=this.tabIndex
54
+ style=this.optionalCustomStyles
55
+ }}
56
+ </div>
38
57
  {{/if}}
39
58
  {{/if}}
@@ -29,8 +29,6 @@ type IconColor = string | NamedColor;
29
29
 
30
30
  export type IconSize = keyof typeof sizeToClassNameMap;
31
31
 
32
- // const SVG_PREI : string | undefined = config['ember-eui'].svgPath || 'svg/assets';
33
-
34
32
  export type EuiIconArgs = CommonArgs & {
35
33
  /**
36
34
  * `Enum` is any of the named icons listed in the docs, `string` is usually a URL to an SVG file, and `elementType` is any Ember Icon SVG component
@@ -90,6 +88,7 @@ export default class EuiIcon extends Component<EuiIconArgs> {
90
88
  }
91
89
 
92
90
  get useSvg(): boolean {
91
+ //@ts-ignore
93
92
  const config = getOwner(this).resolveRegistration('config:environment');
94
93
  return (
95
94
  this.args.useSvg ??
@@ -118,10 +117,7 @@ export default class EuiIcon extends Component<EuiIconArgs> {
118
117
  }
119
118
 
120
119
  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}`;
120
+ return typeToPathMap[type].replace('tokens/', '');
125
121
  }
126
122
 
127
123
  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';
@@ -188,6 +188,7 @@ export default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEdi
188
188
  };
189
189
 
190
190
  function identityCompiler(this: Processor) {
191
+ //eslint-disable-next-line
191
192
  this.Compiler = Compiler;
192
193
  }
193
194
  return unified().use(this.parsingPluginList).use(identityCompiler);
@@ -0,0 +1,4 @@
1
+ import templateOnlyComponent from '@ember/component/template-only';
2
+
3
+ export type EuiMarkdownEditorToolbarIconsMarkdownLogo =
4
+ typeof templateOnlyComponent;
@@ -0,0 +1,16 @@
1
+ <svg
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="26"
4
+ height="16"
5
+ fill="none"
6
+ viewBox="0 0 26 16"
7
+ aria-labelledby={{@titleId}}
8
+ ...attributes
9
+ >
10
+ {{#if @title}}
11
+ <title id={{@titleId}}>{{@title}}</title>
12
+ {{/if}}
13
+ <path
14
+ d="M1.25 1.875c0-.345.28-.625.625-.625h22.25c.345 0 .625.28.625.625v12.25c0 .345-.28.625-.625.625H1.875a.625.625 0 01-.625-.625V1.875zM1.875 0C.839 0 0 .84 0 1.875v12.25C0 15.161.84 16 1.875 16h22.25C25.16 16 26 15.16 26 14.125V1.875C26 .839 25.16 0 24.125 0H1.875zM3.75 3.75v8.5h2.5V7.375l2.5 3.125 2.5-3.125v4.875h2.5v-8.5h-2.5l-2.5 3.125-2.5-3.125h-2.5zm11.875 4.375l3.75 4.125 3.75-4.125h-2.5V3.75h-2.5v4.375h-2.5z"
15
+ ></path>
16
+ </svg>
@@ -5,6 +5,7 @@
5
5
  {{! pending implementation}}
6
6
  <EuiButtonIcon
7
7
  @iconType={{component "eui-loading-spinner"}}
8
+ @useComponent={{true}}
8
9
  {{! aria-label={ariaLabels.uploadingFiles} }}
9
10
  />
10
11
  {{/if}}
@@ -29,7 +30,8 @@
29
30
  </div>
30
31
  <EuiButtonIcon
31
32
  class="euiMarkdownEditorFooter__help"
32
- @iconType={{this.markdownLogo}}
33
+ @iconType={{component "eui-markdown-editor-footer/icons/markdown-logo"}}
34
+ @useComponent={{true}}
33
35
  @color="text"
34
36
  @useSvg={{true}}
35
37
  {{! aria-label={ariaLabels.showMarkdownHelp} }}
@@ -1,20 +1,9 @@
1
1
  import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
- import { getOwner } from '@ember/application';
4
3
 
5
4
  export interface EuiMarkdownEditorFooterArgs {}
6
5
 
7
6
  export default class EuiMarkdownEditorFooterComponent extends Component<EuiMarkdownEditorFooterArgs> {
8
7
  @tracked isPopoverOpen = false;
9
8
  @tracked isShowingHelp = false;
10
-
11
- get svgPath() {
12
- const config = getOwner(this).resolveRegistration('config:environment');
13
- const svgPath = config?.['@ember-eui/core']?.svgPath || 'svg/';
14
- return svgPath;
15
- }
16
-
17
- get markdownLogo() {
18
- return `${this.svgPath}markdown-logo`;
19
- }
20
9
  }
@@ -0,0 +1,4 @@
1
+ import templateOnlyComponent from '@ember/component/template-only';
2
+
3
+ export type EuiMarkdownEditorToolbarIconsMarkdownCheckmark =
4
+ typeof templateOnlyComponent;
@@ -0,0 +1,16 @@
1
+ <svg
2
+ xmlns="http://www.w3.org/2000/svg"
3
+ width="16"
4
+ height="16"
5
+ fill="none"
6
+ viewBox="0 0 16 16"
7
+ aria-labelledby={{@titleId}}
8
+ ...attributes
9
+ >
10
+ {{#if @title}}
11
+ <title id={{@titleId}}>{{@title}}</title>
12
+ {{/if}}
13
+ <path
14
+ d="M11.828 13H4.172A1.173 1.173 0 013 11.828V4.172C3 3.526 3.526 3 4.172 3h7.656C12.474 3 13 3.526 13 4.172v7.656c0 .646-.526 1.172-1.172 1.172zM4.172 3.781a.391.391 0 00-.39.39v7.657c0 .216.175.39.39.39h7.656a.39.39 0 00.39-.39V4.172a.391.391 0 00-.39-.39H4.172zm7.244 2.175l-.582-.521L7.22 9.469 5.125 7.476l-.539.566 2.68 2.548 4.15-4.634z"
15
+ ></path>
16
+ </svg>
@@ -18,7 +18,12 @@
18
18
  <EuiButtonIcon
19
19
  @color="text"
20
20
  {{on "click" (fn this.handleMdButtonClick item.id)}}
21
- @iconType={{item.iconType}}
21
+ @iconType={{if
22
+ item.iconType.component
23
+ (component item.iconType.component)
24
+ item.iconType
25
+ }}
26
+ @useComponent={{item.iconType.component}}
22
27
  aria-label={{item.label}}
23
28
  @useSvg={{item.useSvg}}
24
29
  @isDisabled={{this.isPreviewing}}
@@ -3,7 +3,7 @@ import { action } from '@ember/object';
3
3
  import type MarkdownActions from '../../utils/markdown/markdown-actions';
4
4
  import { MODE_VIEWING } from '../../utils/markdown/markdown-modes';
5
5
  import { cached } from '@glimmer/tracking';
6
- import { getOwner } from '@ember/application';
6
+
7
7
  import { Plugin } from 'unified';
8
8
 
9
9
  export interface EuiMarkdownEditorToolbarArgs {
@@ -29,12 +29,6 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
29
29
  }
30
30
  ];
31
31
 
32
- get svgPath() {
33
- const config = getOwner(this).resolveRegistration('config:environment');
34
- const svgPath = config?.['@ember-eui/core']?.svgPath || 'svg/';
35
- return svgPath;
36
- }
37
-
38
32
  @cached
39
33
  get listButtons() {
40
34
  return [
@@ -55,7 +49,10 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
55
49
  label: 'Task list',
56
50
  name: 'tl',
57
51
  useSvg: true,
58
- iconType: `${this.svgPath}markdown-checkmark`
52
+ iconType: {
53
+ // this should't be needed when we drop support for 3.24.0
54
+ component: 'eui-markdown-editor-toolbar/icons/markdown-checkmark'
55
+ }
59
56
  }
60
57
  ];
61
58
  }
@@ -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}}
@@ -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
+ }
@@ -0,0 +1 @@
1
+ export { default } from '@ember-eui/core/components/eui-markdown-editor-footer/icons/markdown-logo';
@@ -0,0 +1 @@
1
+ export { default } from '@ember-eui/core/components/eui-markdown-editor-toolbar/icons/markdown-checkmark';
@@ -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.3",
3
+ "version": "3.0.2",
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": "9a24c611ad631adc96733da28942a10301abb05e"
175
+ "gitHead": "4954f174f17915ab6fa301a875071705ef3a6d0b"
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
- };
@@ -1,3 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewBox="0 0 16 16">
2
- <path d="M11.828 13H4.172A1.173 1.173 0 013 11.828V4.172C3 3.526 3.526 3 4.172 3h7.656C12.474 3 13 3.526 13 4.172v7.656c0 .646-.526 1.172-1.172 1.172zM4.172 3.781a.391.391 0 00-.39.39v7.657c0 .216.175.39.39.39h7.656a.39.39 0 00.39-.39V4.172a.391.391 0 00-.39-.39H4.172zm7.244 2.175l-.582-.521L7.22 9.469 5.125 7.476l-.539.566 2.68 2.548 4.15-4.634z" />
3
- </svg>
@@ -1,3 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="26" height="16" fill="none" viewBox="0 0 26 16">
2
- <path d="M1.25 1.875c0-.345.28-.625.625-.625h22.25c.345 0 .625.28.625.625v12.25c0 .345-.28.625-.625.625H1.875a.625.625 0 01-.625-.625V1.875zM1.875 0C.839 0 0 .84 0 1.875v12.25C0 15.161.84 16 1.875 16h22.25C25.16 16 26 15.16 26 14.125V1.875C26 .839 25.16 0 24.125 0H1.875zM3.75 3.75v8.5h2.5V7.375l2.5 3.125 2.5-3.125v4.875h2.5v-8.5h-2.5l-2.5 3.125-2.5-3.125h-2.5zm11.875 4.375l3.75 4.125 3.75-4.125h-2.5V3.75h-2.5v4.375h-2.5z" />
3
- </svg>