@ember-eui/core 2.0.0 → 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,24 @@
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
+
5
23
  ### 1.6.3
6
24
  🐛 Bug / Fixes
7
25
  `@ember-eui/core`
package/README.md CHANGED
@@ -1,7 +1,6 @@
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:
@@ -27,11 +26,13 @@ var app = new EmberApp(defaults, {
27
26
 
28
27
  ## Compatibility
29
28
 
30
- - Ember.js v3.12 or above
31
- - Ember CLI v2.13 or above
32
- - 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
+
33
33
 
34
- ## Installation
34
+ Installation
35
+ ------------------------------------------------------------------------------
35
36
 
36
37
  ```
37
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 = {
@@ -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 ??
@@ -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';
@@ -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;
@@ -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,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
+ );
@@ -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,16 +1,6 @@
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
6
- demand!
7
- <EuiIcon @type={{this.icon}} />
8
- <EuiIcon @type={{this.icon}} @size='m' />
9
- <EuiIcon @type={{this.icon}} @size='l' />
10
- <EuiIcon @type={{this.icon}} @size='xl' />
11
- <EuiIcon @type={{this.icon}} @size='xxl' />
12
- </EuiText>
13
- <br />
14
4
  <EuiIcon @type='logoGolang' />
15
5
  <EuiIcon @type='logoGolang' @size='m' />
16
6
  <EuiIcon @type='logoGolang' @size='l' />
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": "2.0.0",
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
77
  "ember-svg-jar": "^2.3.4",
79
- "ember-truth-helpers": "^2.1.0",
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": "a225f53d9f2212e3eb5ab0c28daeabc5624031ab"
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
- };