diff --git a/.ember-cli b/.ember-cli index 8c1812cff8..465c4050de 100644 --- a/.ember-cli +++ b/.ember-cli @@ -1,12 +1,4 @@ { - /** - Ember CLI sends analytics information by default. The data is completely - anonymous, but there are times when you might want to disable this behavior. - - Setting `disableAnalytics` to true will prevent any data from being sent. - */ - "disableAnalytics": false, - /** Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript rather than JavaScript by default, when a TypeScript version of a given blueprint is available. diff --git a/.eslintignore b/.eslintignore index 67828e3854..5202ae906d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,28 +1,18 @@ # unconventional js /blueprints/*/files/ -/vendor/ # compiled output +/declarations/ /dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ # misc /coverage/ +/vendor/ !.* .*/ -.eslintcache # ember-try /.node_modules.ember-try/ -/bower.json.ember-try -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try # ember-inspector specific /dist_prev/ diff --git a/.eslintrc.js b/.eslintrc.js index dd8e8716f1..a333225c0f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,10 +4,13 @@ module.exports = { root: true, parser: '@babel/eslint-parser', parserOptions: { - ecmaVersion: 2020, + ecmaVersion: 'latest', sourceType: 'module', - ecmaFeatures: { - legacyDecorators: true, + requireConfigFile: false, + babelOptions: { + plugins: [ + ['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }], + ], }, }, plugins: ['ember'], @@ -32,10 +35,12 @@ module.exports = { // Temporarily turn these off 'ember/classic-decorator-hooks': 'off', 'ember/classic-decorator-no-classic-methods': 'off', + 'ember/no-at-ember-render-modifiers': 'off', 'ember/no-classic-classes': 'off', 'ember/no-classic-components': 'off', 'ember/no-computed-properties-in-native-classes': 'off', 'ember/no-get': 'off', + 'ember/no-runloop': 'off', // Best practice 'no-duplicate-imports': 'error', @@ -65,13 +70,7 @@ module.exports = { browser: false, node: true, }, - plugins: ['node'], - extends: ['plugin:node/recommended'], - rules: { - // this can be removed once the following is fixed - // https://github.com/mysticatea/eslint-plugin-node/issues/77 - 'node/no-unpublished-require': 'off', - }, + extends: ['plugin:n/recommended'], }, { // test files diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 744bd1e76b..2af3b67d15 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -87,6 +87,8 @@ jobs: - ember-lts-3.20 - ember-lts-3.24 - ember-lts-3.28 + - ember-lts-4.8 + - ember-lts-4.12 - ember-release - ember-beta - ember-canary diff --git a/.gitignore b/.gitignore index 8551d2bbbf..741b8e7b8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,19 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - # compiled output /dist/ /tmp/ /dist_prev .DS_Store +/declarations/ # dependencies -/bower_components/ /node_modules/ # misc /.env* /.pnp* -/.sass-cache /.eslintcache -/connect.lock /coverage/ -/libpeerconnection.log /npm-debug.log* /testem.log /yarn-error.log @@ -28,7 +23,6 @@ config/secrets.json # ember-try /.node_modules.ember-try/ -/bower.json.ember-try /npm-shrinkwrap.json.ember-try /package.json.ember-try /package-lock.json.ember-try diff --git a/.prettierignore b/.prettierignore index 4178fd571e..9385391f21 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,25 +1,13 @@ # unconventional js /blueprints/*/files/ -/vendor/ # compiled output /dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ # misc /coverage/ !.* -.eslintcache -.lint-todo/ +.*/ # ember-try /.node_modules.ember-try/ -/bower.json.ember-try -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try diff --git a/.prettierrc.js b/.prettierrc.js index 05dad564ae..e5f7b6d1ee 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,13 +1,11 @@ 'use strict'; module.exports = { - singleQuote: true, overrides: [ { - files: '**/*.hbs', + files: '*.{js,ts}', options: { - parser: 'glimmer', - singleQuote: false, + singleQuote: true, }, }, ], diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000000..a0cf71cbd1 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,8 @@ +# unconventional files +/blueprints/*/files/ + +# compiled output +/dist/ + +# addons +/.node_modules.ember-try/ diff --git a/.stylelintrc.js b/.stylelintrc.js index e856f9df91..35dccc7997 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -1,3 +1,12 @@ +'use strict'; + module.exports = { - extends: 'stylelint-config-ship-shape', + extends: ['stylelint-config-standard-scss', 'stylelint-prettier/recommended'], + rules: { + 'color-hex-length': null, + 'no-descending-specificity': null, + 'no-invalid-position-at-import-rule': null, + 'number-max-precision': null, + 'property-no-vendor-prefix': null, + }, }; diff --git a/.template-lintrc.js b/.template-lintrc.js index 7f33089ff0..025d8f2a27 100644 --- a/.template-lintrc.js +++ b/.template-lintrc.js @@ -3,10 +3,11 @@ module.exports = { extends: 'recommended', rules: { - 'no-down-event-binding': false, + 'no-at-ember-render-modifiers': false, 'no-negated-condition': false, // TODO: enable these rules + 'no-builtin-form-components': false, 'no-positive-tabindex': false, }, }; diff --git a/.tool-versions b/.tool-versions index efd7d59260..43f2e2c15e 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -nodejs 18.18.2 -pnpm 8.10.2 +nodejs 18.20.4 +pnpm 9.12.1 diff --git a/.watchmanconfig b/.watchmanconfig index e7834e3e4f..f9c3d8f84f 100644 --- a/.watchmanconfig +++ b/.watchmanconfig @@ -1,3 +1,3 @@ { - "ignore_dirs": ["tmp", "dist"] + "ignore_dirs": ["dist"] } diff --git a/app/components/app-picker.hbs b/app/components/app-picker.hbs index 633f66b5d2..6621f45003 100644 --- a/app/components/app-picker.hbs +++ b/app/components/app-picker.hbs @@ -16,9 +16,9 @@ {{#if @collapsed}} - {{svg-jar "e-logo" width="15" height="13" class="dropdown__collapsed-icon fill-current absolute pointer-events-none"}} + {{svg-jar "e-logo" width="15" height="13" class="dropdown-collapsed-icon fill-current absolute pointer-events-none"}} {{/if}} - {{svg-jar "dropdown-arrow" class="dropdown__arrow fill-current absolute opacity-75 pointer-events-none"}} + {{svg-jar "dropdown-arrow" class="dropdown-arrow fill-current absolute opacity-75 pointer-events-none"}} diff --git a/app/components/component-tree-item.hbs b/app/components/component-tree-item.hbs index aa7ceab593..610d6e82da 100644 --- a/app/components/component-tree-item.hbs +++ b/app/components/component-tree-item.hbs @@ -4,9 +4,9 @@ class=" component-tree-item relative flex items-center mx-1 rounded {{if @item.hasInstance "cursor-pointer" "cursor-default"}} - {{if @item.isComponent "component-tree-item--component"}} - {{if @item.isPinned "component-tree-item--pinned"}} - {{if @item.isHighlighted "component-tree-item--highlighted"}}" + {{if @item.isComponent "component-tree-item-component"}} + {{if @item.isPinned "component-tree-item-pinned"}} + {{if @item.isHighlighted "component-tree-item-highlighted"}}" {{on "click" @item.toggleInspection}} {{on "mouseenter" @item.showPreview}} {{on "mouseleave" @item.hidePreview}} @@ -14,7 +14,7 @@