@ember-eui/core 3.0.0 → 3.1.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 (29) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +0 -1
  3. package/addon/components/eui-button/index.hbs +2 -0
  4. package/addon/components/eui-button-content/index.hbs +1 -0
  5. package/addon/components/eui-button-empty/index.hbs +2 -0
  6. package/addon/components/eui-button-icon/index.hbs +2 -0
  7. package/addon/components/eui-combo-box/index.hbs +1 -5
  8. package/addon/components/eui-combo-box/index.ts +2 -0
  9. package/addon/components/eui-combo-box/options/index.hbs +10 -5
  10. package/addon/components/eui-combo-box/trigger/index.hbs +2 -2
  11. package/addon/components/eui-icon/index.hbs +19 -2
  12. package/addon/components/eui-icon/index.ts +0 -2
  13. package/addon/components/eui-list-group-item/index.hbs +1 -1
  14. package/addon/components/eui-markdown-editor/index.ts +14 -2
  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 -12
  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 -9
  23. package/addon/components/eui-markdown-format/index.hbs +13 -3
  24. package/app/components/eui-markdown-editor-footer/icons/markdown-logo/index.js +1 -0
  25. package/app/components/eui-markdown-editor-toolbar/icons/markdown-checkmark/index.js +1 -0
  26. package/package.json +3 -2
  27. package/app/components/eui-text-field/index.js +0 -1
  28. package/public/markdown-checkmark.svg +0 -3
  29. package/public/markdown-logo.svg +0 -3
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  ### Master
4
4
 
5
+ ### 3.1.0
6
+ 🚀 Enhancements
7
+ `@ember-eui/*`
8
+ - Embroider ready, in order to use staticComponents you need to have `@embroider` > 1.2.0
9
+
10
+ 🐛 Bug / Fixes
11
+ `@ember-eui/core`
12
+ - `<EuiMarkdownFormat />` and `<EuiMarkdownEditor />` styling bugs and double render issues fixed
13
+
14
+ ### 3.0.2
15
+ `@ember-eui/core`
16
+ 🐛 Bug / Fixes
17
+ - Fix `<EuiMarkdownEditor />` icons compatibility with ember-source < 3.27
18
+
19
+ ### 3.0.1
20
+ `@ember-eui/core`
21
+ 🚀 Enhancements
22
+ - No longer need to add icons from public icons in ember-eui/core
23
+
5
24
  ### 3.0.0
6
25
  💥 Breaking change
7
26
  `@ember-eui/*`
package/README.md CHANGED
@@ -15,7 +15,6 @@ var app = new EmberApp(defaults, {
15
15
  svgJar: {
16
16
  sourceDirs: [
17
17
  'public/assets',
18
- '../node_modules/@ember-eui/core/public',
19
18
  'node_modules/@elastic/eui/lib/components/icon',
20
19
  ],
21
20
  },
@@ -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}}
@@ -54,11 +54,7 @@
54
54
  @allowClear={{@isClearable}}
55
55
  @loadingMessage={{@loadingMessage}}
56
56
  @selectedItemComponent={{@selectedItemComponent}}
57
- @beforeOptionsComponent={{if
58
- @beforeOptionsComponent
59
- @beforeOptionsComponent
60
- null
61
- }}
57
+ @beforeOptionsComponent={{@beforeOptionsComponent}}
62
58
  @placeholder={{@placeholder}}
63
59
  @searchPlaceholder={{@searchPlaceholder}}
64
60
  @optionsComponent={{component "eui-combo-box/options" rowHeight=@rowHeight}}
@@ -66,6 +66,8 @@ export default class EuiComboBoxComponent extends Component<EuiComboBoxArgs> {
66
66
  onCreateOption() {
67
67
  let search = this.select.searchText;
68
68
  this.select.actions.search('');
69
+ this.select.actions.select(search);
70
+ this.select.actions.close();
69
71
  return search;
70
72
  }
71
73
 
@@ -1,4 +1,4 @@
1
- {{#let (component @groupComponent) as |Group|}}
1
+ {{#let (component (ensure-safe-component @groupComponent)) as |Group|}}
2
2
  {{#if @select.loading}}
3
3
  <EuiText @size="xs" class="euiComboBoxOptionsList__empty">
4
4
  <EuiFlexGroup @gutterSize="s" @justifyContent="center">
@@ -23,7 +23,8 @@
23
23
  aria-controls="ember-power-select-trigger-{{@select.uniqueId}}"
24
24
  ...attributes
25
25
  {{did-insert this.addHandlers}}
26
- {{will-destroy this.removeHandlers}} as |opt index|
26
+ {{will-destroy this.removeHandlers}}
27
+ as |opt index|
27
28
  >
28
29
  {{! template-lint-enable }}
29
30
  {{#if (ember-power-select-is-group opt)}}
@@ -31,10 +32,14 @@
31
32
  {{else}}
32
33
  <li
33
34
  class="euiFilterSelectItem
34
- {{if (eq opt @select.highlighted) " euiFilterSelectItem-isFocused"
35
- }}"
36
- aria-selected="{{ember-power-select-is-selected opt @select.selected
35
+ {{if
36
+ (eq opt @select.highlighted)
37
+ ' euiFilterSelectItem-isFocused'
37
38
  }}"
39
+ aria-selected="{{ember-power-select-is-selected
40
+ opt
41
+ @select.selected
42
+ }}"
38
43
  aria-disabled={{if opt.disabled "true"}}
39
44
  aria-current="{{eq opt @select.highlighted}}"
40
45
  data-option-index="{{index}}"
@@ -38,7 +38,7 @@
38
38
  {{#each @select.selected as |opt idx|}}
39
39
  {{#if @selectedItemComponent}}
40
40
  {{component
41
- @selectedItemComponent
41
+ (ensure-safe-component @selectedItemComponent)
42
42
  extra=@extra
43
43
  option=opt
44
44
  select=@select
@@ -48,7 +48,7 @@
48
48
  class="ember-power-select-multiple-option
49
49
  {{if
50
50
  opt.disabled
51
- "ember-power-select-multiple-option--disabled"
51
+ 'ember-power-select-multiple-option--disabled'
52
52
  }}"
53
53
  @option={{opt}}
54
54
  @onClose={{if
@@ -1,6 +1,23 @@
1
- {{#if this.icon.inner}}
1
+ {{#if @useComponent}}
2
2
  {{! has the shape of a curried component }}
3
- {{component this.icon}}
3
+ {{#let (component (ensure-safe-component this.icon)) as |IconComponent|}}
4
+ {{!template-lint-disable}}
5
+ <IconComponent
6
+ class={{class-names
7
+ this.optionalColorClass
8
+ (if this.isAppIcon "euiIcon--app")
9
+ componentName="EuiIcon"
10
+ size=this.size
11
+ }}
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}}
18
+ ...attributes
19
+ />
20
+ {{/let}}
4
21
  {{else}}
5
22
  {{#if this.useImage}}
6
23
  <img
@@ -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
@@ -62,6 +62,6 @@
62
62
  </span>
63
63
  {{/if}}
64
64
  {{#if @extraAction}}
65
- {{component @extraAction}}
65
+ {{component (ensure-safe-component @extraAction)}}
66
66
  {{/if}}
67
67
  </li>
@@ -20,6 +20,7 @@ import {
20
20
  EuiMarkdownAstNode
21
21
  } from '../../utils/markdown/markdown-types';
22
22
  import { Processor } from 'unified';
23
+ import { scheduleOnce } from '@ember/runloop';
23
24
 
24
25
  export interface EuiMarkdownEditorArgs {
25
26
  initialViewMode?: string;
@@ -119,7 +120,11 @@ export default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEdi
119
120
  const resizedTextareaHeight =
120
121
  this.textareaRef.offsetHeight + this.editorFooterHeight;
121
122
 
122
- this.currentHeight = resizedTextareaHeight;
123
+ const update = () => {
124
+ this.currentHeight = resizedTextareaHeight;
125
+ };
126
+
127
+ scheduleOnce('afterRender', this, update);
123
128
  }
124
129
  }
125
130
 
@@ -144,7 +149,13 @@ export default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEdi
144
149
  // then add an extra pixel for safety and because the scrollHeight value is rounded
145
150
  const extraHeight = borderWidth + marginWidth + 1;
146
151
 
147
- this.currentHeight = previewRef.scrollHeight + extraHeight;
152
+ const update = () => {
153
+ if (previewRef) {
154
+ this.currentHeight = previewRef.scrollHeight + extraHeight;
155
+ }
156
+ };
157
+
158
+ scheduleOnce('afterRender', this, update);
148
159
  }
149
160
  }
150
161
  }
@@ -188,6 +199,7 @@ export default class EuiMarkdownEditorComponent extends Component<EuiMarkdownEdi
188
199
  };
189
200
 
190
201
  function identityCompiler(this: Processor) {
202
+ //eslint-disable-next-line
191
203
  this.Compiler = Compiler;
192
204
  }
193
205
  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,21 +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
- //@ts-ignore
13
- const config = getOwner(this).resolveRegistration('config:environment');
14
- const svgPath = config?.['@ember-eui/core']?.svgPath || 'svg/';
15
- return svgPath;
16
- }
17
-
18
- get markdownLogo() {
19
- return `${this.svgPath}markdown-logo`;
20
- }
21
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 (ensure-safe-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,13 +29,6 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
29
29
  }
30
30
  ];
31
31
 
32
- get svgPath() {
33
- //@ts-ignore
34
- const config = getOwner(this).resolveRegistration('config:environment');
35
- const svgPath = config?.['@ember-eui/core']?.svgPath || 'svg/';
36
- return svgPath;
37
- }
38
-
39
32
  @cached
40
33
  get listButtons() {
41
34
  return [
@@ -56,7 +49,10 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
56
49
  label: 'Task list',
57
50
  name: 'tl',
58
51
  useSvg: true,
59
- 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
+ }
60
56
  }
61
57
  ];
62
58
  }
@@ -1,9 +1,19 @@
1
1
  {{! This hbs was inspired by https://github.com/ampatspell/ember-cli-remark-static/blob/v3.0.5/addon/components/remark.hbs }}
2
- <div class="euiMarkdownFormat">
2
+ <EuiText
3
+ class="euiMarkdownFormat"
4
+ @color={{@color}}
5
+ @grow={{@grow}}
6
+ @size={{@textSize}}
7
+ @textAlign={{@textAlign}}
8
+ ...attributes
9
+ >
3
10
  {{this.result.element}}
4
11
  {{#each this.result.components as |CompNode|}}
5
12
  {{#in-element CompNode.element}}
6
- {{#let (component CompNode.componentName) as |DynamicComponent|}}
13
+ {{#let
14
+ (component (ensure-safe-component CompNode.componentName))
15
+ as |DynamicComponent|
16
+ }}
7
17
  <DynamicComponent
8
18
  @replaceNode={{optional @replaceNode}}
9
19
  @node={{CompNode}}
@@ -11,4 +21,4 @@
11
21
  {{/let}}
12
22
  {{/in-element}}
13
23
  {{/each}}
14
- </div>
24
+ </EuiText>
@@ -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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-eui/core",
3
- "version": "3.0.0",
3
+ "version": "3.1.2",
4
4
  "description": "Ember Components for Elastic UI",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -95,6 +95,7 @@
95
95
  "@ember/optional-features": "^2.0.0",
96
96
  "@ember/test-helpers": "^2.6.0",
97
97
  "@embroider/test-setup": "^1.0.0",
98
+ "@embroider/util": "^1.2.0",
98
99
  "@glimmer/component": "^1.0.4",
99
100
  "@glimmer/tracking": "^1.0.4",
100
101
  "@types/ember": "^3.16.0",
@@ -172,5 +173,5 @@
172
173
  "volta": {
173
174
  "node": "12.22.1"
174
175
  },
175
- "gitHead": "24ca3b05bb2ffb838ab452bb5b2a9794fd8a993f"
176
+ "gitHead": "633cd0a90771e3a801f28a168fe64c0e645775f9"
176
177
  }
@@ -1 +0,0 @@
1
- export { default } from '@ember-eui/core/components/eui-text-field';
@@ -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>