@ember-eui/core 3.0.1 → 4.0.1

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,8 +2,36 @@
2
2
 
3
3
  ### Master
4
4
 
5
- ### 3.0.1
5
+ ### 4.0.0
6
6
  💥 Breaking change
7
+ `@ember-eui/*`
8
+ - Your application must depend on `ember-auto-import` > v2.0.0, please refer to the [migration guides](https://github.com/ef4/ember-auto-import/blob/main/docs/upgrade-guide-2.0.md)
9
+
10
+ 🚀 Enhancements
11
+ `@ember-eui/*`
12
+ - ember v4.1.0 support!
13
+
14
+ 🏠 Internal
15
+ `@ember-eui/*`
16
+ - `ember-cli-update` on all packages for ember >v4.1.0
17
+ - Update ember-cli-typescript
18
+ - Update docs dependencies for ember 4 support
19
+
20
+ ### 3.1.0
21
+ 🚀 Enhancements
22
+ `@ember-eui/*`
23
+ - Embroider ready, in order to use staticComponents you need to have `@embroider` > 1.2.0
24
+
25
+ 🐛 Bug / Fixes
26
+ `@ember-eui/core`
27
+ - `<EuiMarkdownFormat />` and `<EuiMarkdownEditor />` styling bugs and double render issues fixed
28
+
29
+ ### 3.0.2
30
+ `@ember-eui/core`
31
+ 🐛 Bug / Fixes
32
+ - Fix `<EuiMarkdownEditor />` icons compatibility with ember-source < 3.27
33
+
34
+ ### 3.0.1
7
35
  `@ember-eui/core`
8
36
  🚀 Enhancements
9
37
  - No longer need to add icons from public icons in ember-eui/core
@@ -25,6 +53,11 @@
25
53
  💥 Breaking change
26
54
  `@ember-eui/core`
27
55
  - Deprecate `ember-svg-jar` `hbs` strategy for now, just use stock `ember-svg-jar`
56
+ ### 1.6.4
57
+ 🐛 Bug / Fixes
58
+ `@ember-eui/core`
59
+ - `<EuiComboBox />` hide clear button when disabled
60
+ - `<EuiComboBox />` close options dropdown after creating option
28
61
 
29
62
  ### 1.6.3
30
63
  🐛 Bug / Fixes
package/README.md CHANGED
@@ -25,8 +25,8 @@ var app = new EmberApp(defaults, {
25
25
 
26
26
  ## Compatibility
27
27
 
28
- * Ember.js v3.20 or above
29
- * Ember CLI v3.20 or above
28
+ * Ember.js v3.24 or above
29
+ * Ember CLI v3.24 or above
30
30
  * Node.js v12 or above
31
31
 
32
32
 
@@ -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}}
@@ -27,7 +27,7 @@
27
27
  onCreateOption=(if
28
28
  @onCreateOption (pipe this.onCreateOption @onCreateOption)
29
29
  )
30
- isClearable=@isClearable
30
+ isClearable=(and @isClearable (not @disabled))
31
31
  }}
32
32
  @matcher={{@matcher}}
33
33
  @initiallyOpen={{@initiallyOpen}}
@@ -51,14 +51,10 @@
51
51
  @triggerRole={{@triggerRole}}
52
52
  @title={{@title}}
53
53
  @triggerId={{@triggerId}}
54
- @allowClear={{@isClearable}}
54
+ @allowClear={{and @isClearable (not @disabled)}}
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}}
@@ -86,4 +82,4 @@
86
82
  as |option i|
87
83
  >
88
84
  {{yield option i}}
89
- </PowerSelectMultiple>
85
+ </PowerSelectMultiple>
@@ -66,6 +66,7 @@ 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.close();
69
70
  return search;
70
71
  }
71
72
 
@@ -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,6 @@
1
- {{#if this.icon.moduleName}}
1
+ {{#if @useComponent}}
2
2
  {{! has the shape of a curried component }}
3
- {{#let (component this.icon) as |IconComponent|}}
3
+ {{#let (component (ensure-safe-component this.icon)) as |IconComponent|}}
4
4
  {{!template-lint-disable}}
5
5
  <IconComponent
6
6
  class={{class-names
@@ -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
  }
@@ -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,14 +1,9 @@
1
1
  import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
- import MarkdownLogoComponent from './icons/markdown-logo';
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 markdownLogo() {
12
- return MarkdownLogoComponent;
13
- }
14
9
  }
@@ -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,6 @@ 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 MarkdownCheckmarkComponent from './icons/markdown-checkmark';
7
6
 
8
7
  import { Plugin } from 'unified';
9
8
 
@@ -50,7 +49,10 @@ export default class EuiMarkdownEditorToolbarComponent extends Component<EuiMark
50
49
  label: 'Task list',
51
50
  name: 'tl',
52
51
  useSvg: true,
53
- iconType: MarkdownCheckmarkComponent
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
+ }
54
56
  }
55
57
  ];
56
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>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-eui/core",
3
- "version": "3.0.1",
3
+ "version": "4.0.1",
4
4
  "description": "Ember Components for Elastic UI",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -53,20 +53,19 @@
53
53
  "dependencies": {
54
54
  "@elastic/eui": "31.0.0",
55
55
  "@ember/render-modifiers": "^2.0.4",
56
- "@html-next/vertical-collection": "^2.1.0",
56
+ "@html-next/vertical-collection": "html-next/vertical-collection#v3.0.0-0",
57
57
  "@types/lodash-es": "^4.17.4",
58
58
  "chroma-js": "^2.1.0",
59
- "ember-auto-import": "^1.11.3",
59
+ "ember-auto-import": "^2.2.4",
60
60
  "ember-cached-decorator-polyfill": "^0.1.1",
61
- "ember-cli-babel": "^7.26.6",
62
- "ember-cli-htmlbars": "^5.7.1",
61
+ "ember-cli-babel": "^7.26.11",
62
+ "ember-cli-htmlbars": "^6.0.1",
63
63
  "ember-cli-typescript": "4.2.1",
64
64
  "ember-composable-helpers": "^4.4.1",
65
65
  "ember-element-helper": "^0.5.5",
66
66
  "ember-focus-trap": "^0.7.0",
67
- "ember-href-to": "^4.1.0",
68
67
  "ember-in-element-polyfill": "^1.0.0",
69
- "ember-keyboard": "^6.0.2",
68
+ "ember-keyboard": "^7.0.1",
70
69
  "ember-math-helpers": "^2.15.0",
71
70
  "ember-modifier": "^2.1.2",
72
71
  "ember-named-blocks-polyfill": "^0.2.3",
@@ -95,6 +94,7 @@
95
94
  "@ember/optional-features": "^2.0.0",
96
95
  "@ember/test-helpers": "^2.6.0",
97
96
  "@embroider/test-setup": "^1.0.0",
97
+ "@embroider/util": "^1.2.0",
98
98
  "@glimmer/component": "^1.0.4",
99
99
  "@glimmer/tracking": "^1.0.4",
100
100
  "@types/ember": "^3.16.0",
@@ -122,7 +122,7 @@
122
122
  "@types/rsvp": "^4.0.4",
123
123
  "babel-eslint": "^10.1.0",
124
124
  "broccoli-asset-rev": "^3.0.0",
125
- "ember-cli": "~3.28.0",
125
+ "ember-cli": "~4.1.1",
126
126
  "ember-cli-dependency-checker": "^3.2.0",
127
127
  "ember-cli-inject-live-reload": "^2.1.0",
128
128
  "ember-cli-netlify": "^0.4.1",
@@ -134,28 +134,28 @@
134
134
  "ember-export-application-global": "^2.0.1",
135
135
  "ember-get-config": "~1.0.2",
136
136
  "ember-load-initializers": "^2.1.2",
137
- "ember-maybe-import-regenerator": "^0.1.6",
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",
137
+ "ember-page-title": "^7.0.0",
138
+ "ember-qunit": "^5.1.5",
139
+ "ember-resolver": "^8.0.3",
140
+ "ember-source": "~4.1.0",
142
141
  "ember-source-channel-url": "^3.0.0",
143
- "ember-template-lint": "^3.6.0",
144
- "ember-try": "^1.4.0",
142
+ "ember-template-lint": "^3.15.0",
143
+ "ember-try": "^2.0.0",
145
144
  "eslint": "^7.32.0",
146
145
  "eslint-config-prettier": "^8.3.0",
147
- "eslint-plugin-ember": "^10.5.4",
146
+ "eslint-plugin-ember": "^10.5.8",
148
147
  "eslint-plugin-node": "^11.1.0",
149
- "eslint-plugin-prettier": "^3.4.1",
150
- "eslint-plugin-qunit": "^6.2.0",
148
+ "eslint-plugin-prettier": "^4.0.0",
149
+ "eslint-plugin-qunit": "^7.2.0",
151
150
  "loader.js": "^4.7.0",
152
151
  "lodash-es": "^4.17.21",
153
152
  "mdast-util-to-hast": "^10.0.0",
154
153
  "npm-run-all": "^4.1.5",
155
- "prettier": "^2.3.2",
156
- "qunit": "^2.16.0",
157
- "qunit-dom": "^1.6.0",
158
- "typescript": "^4.5.5"
154
+ "prettier": "^2.5.1",
155
+ "qunit": "^2.17.2",
156
+ "qunit-dom": "^2.0.0",
157
+ "typescript": "^4.5.5",
158
+ "webpack": "^5.65.0"
159
159
  },
160
160
  "publishConfig": {
161
161
  "access": "public"
@@ -170,7 +170,7 @@
170
170
  "configPath": "tests/dummy/config"
171
171
  },
172
172
  "volta": {
173
- "node": "12.22.1"
173
+ "extends": "../../package.json"
174
174
  },
175
- "gitHead": "b8340ca971032258b196e04693f73b4b1c35b0e1"
175
+ "gitHead": "ab324804766c49f4991f91c8b988868c4a826208"
176
176
  }
@@ -1 +0,0 @@
1
- export { default } from '@ember-eui/core/components/eui-text-field';