From 893644ea25009ba86cc54fa914661b5acb0c1125 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 21 May 2024 12:12:33 -0700 Subject: [PATCH 01/22] fix(components): update pre-publish script to run build correctly --- .changeset/rare-suns-love.md | 5 +++++ packages/components/package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/rare-suns-love.md diff --git a/.changeset/rare-suns-love.md b/.changeset/rare-suns-love.md new file mode 100644 index 0000000000..144bb021f0 --- /dev/null +++ b/.changeset/rare-suns-love.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": patch +--- + +update pre-publish script to run build correctly diff --git a/packages/components/package.json b/packages/components/package.json index d7c8d1223d..7cfb1e101e 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -20,7 +20,7 @@ "build": "concurrently 'npm:build:*'", "build:js": "rollup --config", "build:types": "glint --declaration", - "prepublishOnly": "yarn workspace @hashicorp/ember-flight-icons build && rollup --config && test -f 'dist/styles/@hashicorp/design-system-components.css' || (echo 'The pre-compiled CSS file was not found' && exit 1)", + "prepublishOnly": "yarn workspace @hashicorp/ember-flight-icons build && yarn build && test -f 'dist/styles/@hashicorp/design-system-components.css' || (echo 'The pre-compiled CSS file was not found' && exit 1)", "start": "rollup --config --watch --environment development", "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", From a19b6f929ad47a450a2f5bf79bde44b5f15fc5df Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 21 May 2024 14:06:33 -0700 Subject: [PATCH 02/22] chore(components): add new eslint rule --- packages/components/.eslintrc.cjs | 58 ++++++++++++++++++++++++++ packages/components/.eslintrc.js | 67 ------------------------------- packages/components/package.json | 9 +++-- 3 files changed, 63 insertions(+), 71 deletions(-) create mode 100644 packages/components/.eslintrc.cjs delete mode 100644 packages/components/.eslintrc.js diff --git a/packages/components/.eslintrc.cjs b/packages/components/.eslintrc.cjs new file mode 100644 index 0000000000..e08fb41150 --- /dev/null +++ b/packages/components/.eslintrc.cjs @@ -0,0 +1,58 @@ +'use strict'; + +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 'latest', + }, + plugins: ['ember', 'import'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:prettier/recommended', + ], + env: { + browser: true, + }, + rules: {}, + overrides: [ + // ts files + { + files: ['**/*.ts', '**/*.gts'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + ], + rules: { + // Add any custom rules here + }, + }, + // require relative imports use full extensions + { + files: ['src/**/*.{js,ts,gjs,gts}'], + rules: { + 'import/extensions': ['error', 'always', { ignorePackages: true }], + }, + }, + // node files + { + files: [ + './.eslintrc.cjs', + './.prettierrc.cjs', + './.template-lintrc.cjs', + './addon-main.cjs', + '.stylelintrc.js', + ], + parserOptions: { + sourceType: 'script', + }, + env: { + browser: false, + node: true, + }, + plugins: ['n'], + extends: ['plugin:n/recommended'], + }, + ], +}; diff --git a/packages/components/.eslintrc.js b/packages/components/.eslintrc.js deleted file mode 100644 index 6b9b40843c..0000000000 --- a/packages/components/.eslintrc.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 2018, - ecmaFeatures: { - legacyDecorators: true, - }, - requireConfigFile: false, - babelOptions: { - plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]], - }, - }, - plugins: ['ember'], - extends: [ - 'eslint:recommended', - 'plugin:ember/recommended', - 'plugin:prettier/recommended', - ], - env: { - browser: true, - }, - rules: {}, - overrides: [ - // node files - { - files: ['**/*.ts', '**/*.gts'], - extends: [ - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - ], - }, - { - files: [ - './.eslintrc.js', - './.prettierrc.js', - './.stylelintrc.js', - './.template-lintrc.js', - './ember-cli-build.js', - './addon-main.js', - './testem.js', - './blueprints/*/index.js', - './config/**/*.js', - './tests/dummy/config/**/*.js', - ], - parserOptions: { - sourceType: 'script', - }, - env: { - browser: false, - node: true, - }, - plugins: ['node'], - extends: ['plugin:node/recommended'], - }, - { - // test files - files: ['tests/**/*-test.{js,ts}'], - extends: ['plugin:qunit/recommended'], - rules: { - 'qunit/require-expect': 'off', - }, - }, - ], -}; diff --git a/packages/components/package.json b/packages/components/package.json index d7c8d1223d..18221dbd92 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -88,7 +88,8 @@ "eslint": "^8.52.0", "eslint-config-prettier": "^8.10.0", "eslint-plugin-ember": "^11.11.1", - "eslint-plugin-node": "^11.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-n": "^17.7.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-qunit": "^8.0.1", "npm-run-all": "^4.1.5", @@ -109,7 +110,7 @@ "edition": "octane" }, "ember-addon": { - "main": "addon-main.js", + "main": "addon-main.cjs", "type": "addon", "version": 2, "app-js": { @@ -292,7 +293,7 @@ "types": "./declarations/*.d.ts", "default": "./dist/*" }, - "./addon-main.js": "./addon-main.js" + "./addon-main.js": "./addon-main.cjs" }, "typesVersions": { "*": { @@ -302,7 +303,7 @@ } }, "files": [ - "addon-main.js", + "addon-main.cjs", "declarations", "dist" ], From 17f31a3f62b2d36647337b56378b0bb58a007ea6 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 21 May 2024 14:07:19 -0700 Subject: [PATCH 03/22] chore(components): update file extensions to align with latest blueprint --- packages/components/{.prettierrc.js => .prettierrc.cjs} | 0 packages/components/{.template-lintrc.js => .template-lintrc.cjs} | 0 packages/components/{addon-main.js => addon-main.cjs} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename packages/components/{.prettierrc.js => .prettierrc.cjs} (100%) rename packages/components/{.template-lintrc.js => .template-lintrc.cjs} (100%) rename packages/components/{addon-main.js => addon-main.cjs} (100%) diff --git a/packages/components/.prettierrc.js b/packages/components/.prettierrc.cjs similarity index 100% rename from packages/components/.prettierrc.js rename to packages/components/.prettierrc.cjs diff --git a/packages/components/.template-lintrc.js b/packages/components/.template-lintrc.cjs similarity index 100% rename from packages/components/.template-lintrc.js rename to packages/components/.template-lintrc.cjs diff --git a/packages/components/addon-main.js b/packages/components/addon-main.cjs similarity index 100% rename from packages/components/addon-main.js rename to packages/components/addon-main.cjs From 24022e8d9c72321c4c46a5f259bda16f4461c6cd Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 21 May 2024 14:07:41 -0700 Subject: [PATCH 04/22] chore(components): remove unused files --- packages/components/config/environment.d.ts | 19 ------------------- packages/components/config/environment.js | 10 ---------- 2 files changed, 29 deletions(-) delete mode 100644 packages/components/config/environment.d.ts delete mode 100644 packages/components/config/environment.js diff --git a/packages/components/config/environment.d.ts b/packages/components/config/environment.d.ts deleted file mode 100644 index d7110d08e1..0000000000 --- a/packages/components/config/environment.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -/** - * Type declarations for - * import config from 'my-app/config/environment' - */ -declare const config: { - environment: string; - modulePrefix: string; - podModulePrefix: string; - locationType: 'history' | 'hash' | 'none' | 'auto'; - rootURL: string; - APP: Record; -}; - -export default config; diff --git a/packages/components/config/environment.js b/packages/components/config/environment.js deleted file mode 100644 index 4532464b6f..0000000000 --- a/packages/components/config/environment.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -'use strict'; - -module.exports = function (/* environment, appConfig */) { - return {}; -}; From 9102f2cb91923c0b4581fe88d550ae5f981fb8e6 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 21 May 2024 14:09:14 -0700 Subject: [PATCH 05/22] =?UTF-8?q?fix(components):=20linter=20=F0=9F=92=85?= =?UTF-8?q?=F0=9F=8F=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hds/dropdown/list-item/checkbox.js | 2 +- .../hds/dropdown/list-item/radio.js | 2 +- .../src/components/hds/flyout/index.js | 2 +- .../src/components/hds/form/field/index.js | 4 +- .../src/components/hds/form/fieldset/index.js | 4 +- .../components/hds/form/masked-input/base.js | 2 +- .../components/hds/form/radio-card/index.js | 2 +- .../hds/form/super-select/multiple/base.js | 2 +- .../hds/form/super-select/multiple/field.js | 2 +- .../hds/form/super-select/single/base.js | 2 +- .../hds/form/super-select/single/field.js | 2 +- .../src/components/hds/modal/index.js | 2 +- .../components/hds/popover-primitive/index.js | 6 +- .../src/components/hds/rich-tooltip/bubble.js | 2 +- .../src/components/hds/rich-tooltip/index.js | 2 +- yarn.lock | 718 +++++++++++++++++- 16 files changed, 728 insertions(+), 28 deletions(-) diff --git a/packages/components/src/components/hds/dropdown/list-item/checkbox.js b/packages/components/src/components/hds/dropdown/list-item/checkbox.js index 93926aa263..1653255d41 100644 --- a/packages/components/src/components/hds/dropdown/list-item/checkbox.js +++ b/packages/components/src/components/hds/dropdown/list-item/checkbox.js @@ -4,7 +4,7 @@ */ import Component from '@glimmer/component'; -import { getElementId } from '../../../../utils/hds-get-element-id'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; export default class HdsDropdownListItemCheckboxComponent extends Component { /** diff --git a/packages/components/src/components/hds/dropdown/list-item/radio.js b/packages/components/src/components/hds/dropdown/list-item/radio.js index 5e58c6d2d1..6ef9cf945a 100644 --- a/packages/components/src/components/hds/dropdown/list-item/radio.js +++ b/packages/components/src/components/hds/dropdown/list-item/radio.js @@ -4,7 +4,7 @@ */ import Component from '@glimmer/component'; -import { getElementId } from '../../../../utils/hds-get-element-id'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; export default class HdsDropdownListItemRadioComponent extends Component { /** diff --git a/packages/components/src/components/hds/flyout/index.js b/packages/components/src/components/hds/flyout/index.js index 794ee984ad..045bfe78ac 100644 --- a/packages/components/src/components/hds/flyout/index.js +++ b/packages/components/src/components/hds/flyout/index.js @@ -7,7 +7,7 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { assert } from '@ember/debug'; -import { getElementId } from '../../../utils/hds-get-element-id'; +import { getElementId } from '../../../utils/hds-get-element-id.js'; import { buildWaiter } from '@ember/test-waiters'; let waiter = buildWaiter('@hashicorp/design-system-components:flyout'); diff --git a/packages/components/src/components/hds/form/field/index.js b/packages/components/src/components/hds/form/field/index.js index 37e2db0967..c004fa7b2b 100644 --- a/packages/components/src/components/hds/form/field/index.js +++ b/packages/components/src/components/hds/form/field/index.js @@ -8,8 +8,8 @@ import { tracked } from '@glimmer/tracking'; import { assert } from '@ember/debug'; import { action } from '@ember/object'; import { schedule } from '@ember/runloop'; -import { getElementId } from '../../../../utils/hds-get-element-id'; -import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; +import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by.js'; export const LAYOUT_TYPES = ['vertical', 'flag']; diff --git a/packages/components/src/components/hds/form/fieldset/index.js b/packages/components/src/components/hds/form/fieldset/index.js index cc52e07512..a1c6ccd361 100644 --- a/packages/components/src/components/hds/form/fieldset/index.js +++ b/packages/components/src/components/hds/form/fieldset/index.js @@ -6,8 +6,8 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; -import { getElementId } from '../../../../utils/hds-get-element-id'; -import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; +import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by.js'; export default class HdsFormFieldsetIndexComponent extends Component { @tracked ariaDescribedBy = this.args.extraAriaDescribedBy; diff --git a/packages/components/src/components/hds/form/masked-input/base.js b/packages/components/src/components/hds/form/masked-input/base.js index 09ba8715a8..84c067f806 100644 --- a/packages/components/src/components/hds/form/masked-input/base.js +++ b/packages/components/src/components/hds/form/masked-input/base.js @@ -6,7 +6,7 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; -import { getElementId } from '../../../../utils/hds-get-element-id'; +import { getElementId } from '../../../../utils/hds-get-element-id.js'; export default class HdsFormMaskedInputBaseComponent extends Component { @tracked isContentMasked = this.args.isContentMasked ?? true; diff --git a/packages/components/src/components/hds/form/radio-card/index.js b/packages/components/src/components/hds/form/radio-card/index.js index 35ca166bf8..6b59943ae2 100644 --- a/packages/components/src/components/hds/form/radio-card/index.js +++ b/packages/components/src/components/hds/form/radio-card/index.js @@ -8,7 +8,7 @@ import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { assert } from '@ember/debug'; import { schedule } from '@ember/runloop'; -import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by'; +import { setAriaDescribedBy } from '../../../../utils/hds-set-aria-described-by.js'; export const DEFAULT_CONTROL_POSITION = 'bottom'; export const DEFAULT_ALIGNMENT = 'left'; diff --git a/packages/components/src/components/hds/form/super-select/multiple/base.js b/packages/components/src/components/hds/form/super-select/multiple/base.js index 873f6a00b0..422db227bd 100644 --- a/packages/components/src/components/hds/form/super-select/multiple/base.js +++ b/packages/components/src/components/hds/form/super-select/multiple/base.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position'; +import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position.js'; import { action } from '@ember/object'; import { tracked } from '@glimmer/tracking'; diff --git a/packages/components/src/components/hds/form/super-select/multiple/field.js b/packages/components/src/components/hds/form/super-select/multiple/field.js index 1023fc8b72..3a13a5bb74 100644 --- a/packages/components/src/components/hds/form/super-select/multiple/field.js +++ b/packages/components/src/components/hds/form/super-select/multiple/field.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import { ID_PREFIX } from '../../label/index'; +import { ID_PREFIX } from '../../label/index.js'; export default class HdsSuperSelectMultipleFieldComponent extends PowerSelectComponent { get idPrefix() { diff --git a/packages/components/src/components/hds/form/super-select/single/base.js b/packages/components/src/components/hds/form/super-select/single/base.js index 4571c9c9bf..0f916b7116 100644 --- a/packages/components/src/components/hds/form/super-select/single/base.js +++ b/packages/components/src/components/hds/form/super-select/single/base.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position'; +import anchoredPositionModifier from '../../../../../modifiers/hds-anchored-position.js'; import { action } from '@ember/object'; const DEFAULT_HORIZONTAL_POSITION = 'bottom-start'; diff --git a/packages/components/src/components/hds/form/super-select/single/field.js b/packages/components/src/components/hds/form/super-select/single/field.js index 3c2b7cbd19..24144ae09e 100644 --- a/packages/components/src/components/hds/form/super-select/single/field.js +++ b/packages/components/src/components/hds/form/super-select/single/field.js @@ -4,7 +4,7 @@ */ import PowerSelectComponent from 'ember-power-select/components/power-select'; -import { ID_PREFIX } from '../../label/index'; +import { ID_PREFIX } from '../../label/index.js'; export default class HdsSuperSelectSingleFieldComponent extends PowerSelectComponent { get idPrefix() { diff --git a/packages/components/src/components/hds/modal/index.js b/packages/components/src/components/hds/modal/index.js index 12978ff733..74feb026f4 100644 --- a/packages/components/src/components/hds/modal/index.js +++ b/packages/components/src/components/hds/modal/index.js @@ -7,7 +7,7 @@ import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; import { action } from '@ember/object'; import { assert } from '@ember/debug'; -import { getElementId } from '../../../utils/hds-get-element-id'; +import { getElementId } from '../../../utils/hds-get-element-id.js'; import { buildWaiter } from '@ember/test-waiters'; let waiter = buildWaiter('@hashicorp/design-system-components:modal'); diff --git a/packages/components/src/components/hds/popover-primitive/index.js b/packages/components/src/components/hds/popover-primitive/index.js index 6235df58bf..81f8f28db9 100644 --- a/packages/components/src/components/hds/popover-primitive/index.js +++ b/packages/components/src/components/hds/popover-primitive/index.js @@ -11,8 +11,8 @@ import { next } from '@ember/runloop'; import { guidFor } from '@ember/object/internals'; import { modifier } from 'ember-modifier'; -import registerEvent from '../../../modifiers/hds-register-event'; -import anchoredPositionModifier from '../../../modifiers/hds-anchored-position'; +import registerEvent from '../../../modifiers/hds-register-event.js'; +import anchoredPositionModifier from '../../../modifiers/hds-anchored-position.js'; // https://github.com/oddbird/popover-polyfill?tab=readme-ov-file#with-npm // this is needed until Firefox releases the version 126 (up to 125 didn't support the Popover API) @@ -30,7 +30,7 @@ import { export { PLACEMENTS, DEFAULT_PLACEMENT, -} from '../../../modifiers/hds-anchored-position'; +} from '../../../modifiers/hds-anchored-position.js'; export default class HdsPopoverPrimitiveComponent extends Component { @tracked isOpen = this.args.isOpen ?? false; diff --git a/packages/components/src/components/hds/rich-tooltip/bubble.js b/packages/components/src/components/hds/rich-tooltip/bubble.js index ec28f71400..de866ead60 100644 --- a/packages/components/src/components/hds/rich-tooltip/bubble.js +++ b/packages/components/src/components/hds/rich-tooltip/bubble.js @@ -6,7 +6,7 @@ import Component from '@glimmer/component'; import { assert } from '@ember/debug'; -import { PLACEMENTS as PRIMITIVE_PLACEMENTS } from '../popover-primitive/index'; +import { PLACEMENTS as PRIMITIVE_PLACEMENTS } from '../popover-primitive/index.js'; export const DEFAULT_PLACEMENT = 'bottom'; export const PLACEMENTS = [...PRIMITIVE_PLACEMENTS]; diff --git a/packages/components/src/components/hds/rich-tooltip/index.js b/packages/components/src/components/hds/rich-tooltip/index.js index 16d05fcfc4..ac9e43cea3 100644 --- a/packages/components/src/components/hds/rich-tooltip/index.js +++ b/packages/components/src/components/hds/rich-tooltip/index.js @@ -4,7 +4,7 @@ */ import Component from '@glimmer/component'; -import { getElementId } from '../../../utils/hds-get-element-id'; +import { getElementId } from '../../../utils/hds-get-element-id.js'; export default class HdsRichTooltipIndexComponent extends Component { elementId = getElementId(this); diff --git a/yarn.lock b/yarn.lock index ee7f2b226d..69b5f38754 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2975,7 +2975,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -2986,7 +2986,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 8c36169c815fc5d726078e8c71a5b592957ee60d08c6470f9ce0187c8046af1a00afbda0a065cc40ff18d5d83f82aed9793c6818f7304a74a7488dc9f3ecbd42 @@ -3673,7 +3673,8 @@ __metadata: eslint: "npm:^8.52.0" eslint-config-prettier: "npm:^8.10.0" eslint-plugin-ember: "npm:^11.11.1" - eslint-plugin-node: "npm:^11.1.0" + eslint-plugin-import: "npm:^2.29.1" + eslint-plugin-n: "npm:^17.7.0" eslint-plugin-prettier: "npm:^4.2.1" eslint-plugin-qunit: "npm:^8.0.1" npm-run-all: "npm:^4.1.5" @@ -5481,6 +5482,13 @@ __metadata: languageName: node linkType: hard +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: 4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56 + languageName: node + linkType: hard + "@types/jsonfile@npm:*": version: 6.1.4 resolution: "@types/jsonfile@npm:6.1.4" @@ -6777,6 +6785,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.5" + is-array-buffer: "npm:^3.0.4" + checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + languageName: node + linkType: hard + "array-equal@npm:^1.0.0": version: 1.0.2 resolution: "array-equal@npm:1.0.2" @@ -6798,6 +6816,20 @@ __metadata: languageName: node linkType: hard +"array-includes@npm:^3.1.7": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + is-string: "npm:^1.0.7" + checksum: 290b206c9451f181fb2b1f79a3bf1c0b66bb259791290ffbada760c79b284eef6f5ae2aeb4bcff450ebc9690edd25732c4c73a3c2b340fcc0f4563aed83bf488 + languageName: node + linkType: hard + "array-timsort@npm:^1.0.3": version: 1.0.3 resolution: "array-timsort@npm:1.0.3" @@ -6851,7 +6883,21 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.2.3": +"array.prototype.findlastindex@npm:^1.2.3": + version: 1.2.5 + resolution: "array.prototype.findlastindex@npm:1.2.5" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 7c5c821f357cd53ab6cc305de8086430dd8d7a2485db87b13f843e868055e9582b1fd338f02338f67fc3a1603ceaf9610dd2a470b0b506f9d18934780f95b246 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.2.3, array.prototype.flat@npm:^1.3.2": version: 1.3.2 resolution: "array.prototype.flat@npm:1.3.2" dependencies: @@ -6863,6 +6909,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.flatmap@npm:^1.3.2": + version: 1.3.2 + resolution: "array.prototype.flatmap@npm:1.3.2" + dependencies: + call-bind: "npm:^1.0.2" + define-properties: "npm:^1.2.0" + es-abstract: "npm:^1.22.1" + es-shim-unscopables: "npm:^1.0.0" + checksum: 33f20006686e0cbe844fde7fd290971e8366c6c5e3380681c2df15738b1df766dd02c7784034aeeb3b037f65c496ee54de665388288edb323a2008bb550f77ea + languageName: node + linkType: hard + "array.prototype.reduce@npm:^1.0.6": version: 1.0.6 resolution: "array.prototype.reduce@npm:1.0.6" @@ -6891,6 +6949,22 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.2.1" + get-intrinsic: "npm:^1.2.3" + is-array-buffer: "npm:^3.0.4" + is-shared-array-buffer: "npm:^1.0.2" + checksum: 0221f16c1e3ec7b67da870ee0e1f12b825b5f9189835392b59a22990f715827561a4f4cd5330dc7507de272d8df821be6cd4b0cb569babf5ea4be70e365a2f3d + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -7068,6 +7142,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab + languageName: node + linkType: hard + "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" @@ -9212,6 +9295,19 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7 + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.2 resolution: "call-me-maybe@npm:1.0.2" @@ -10946,6 +11042,39 @@ __metadata: languageName: node linkType: hard +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 5919a39a18ee919573336158fd162fdf8ada1bc23a139f28543fd45fac48e0ea4a3ad3bfde91de124d4106e65c4a7525f6a84c20ba0797ec890a77a96d13a82a + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: f33c65e58d8d0432ad79761f2e8a579818d724b5dc6dc4e700489b762d963ab30873c0f1c37d8f2ed12ef51c706d1195f64422856d25f067457aeec50cc40aac + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 96f34f151bf02affb7b9f98762fb7aca1dd5f4553cb57b80bce750ca609c15d33ca659568ef1d422f7e35680736cbccb893a3d4b012760c758c1446bbdc4c6db + languageName: node + linkType: hard + "dataloader@npm:^1.4.0": version: 1.4.0 resolution: "dataloader@npm:1.4.0" @@ -11142,6 +11271,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae + languageName: node + linkType: hard + "define-lazy-prop@npm:^3.0.0": version: 3.0.0 resolution: "define-lazy-prop@npm:3.0.0" @@ -11347,6 +11487,15 @@ __metadata: languageName: node linkType: hard +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474 + languageName: node + linkType: hard + "doctrine@npm:^3.0.0": version: 3.0.0 resolution: "doctrine@npm:3.0.0" @@ -13226,6 +13375,60 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": + version: 1.23.3 + resolution: "es-abstract@npm:1.23.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + arraybuffer.prototype.slice: "npm:^1.0.3" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + data-view-buffer: "npm:^1.0.1" + data-view-byte-length: "npm:^1.0.1" + data-view-byte-offset: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-set-tostringtag: "npm:^2.0.3" + es-to-primitive: "npm:^1.2.1" + function.prototype.name: "npm:^1.1.6" + get-intrinsic: "npm:^1.2.4" + get-symbol-description: "npm:^1.0.2" + globalthis: "npm:^1.0.3" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.0.3" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.0.7" + is-array-buffer: "npm:^3.0.4" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.1" + is-negative-zero: "npm:^2.0.3" + is-regex: "npm:^1.1.4" + is-shared-array-buffer: "npm:^1.0.3" + is-string: "npm:^1.0.7" + is-typed-array: "npm:^1.1.13" + is-weakref: "npm:^1.0.2" + object-inspect: "npm:^1.13.1" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.5" + regexp.prototype.flags: "npm:^1.5.2" + safe-array-concat: "npm:^1.1.2" + safe-regex-test: "npm:^1.0.3" + string.prototype.trim: "npm:^1.2.9" + string.prototype.trimend: "npm:^1.0.8" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.2" + typed-array-byte-length: "npm:^1.0.1" + typed-array-byte-offset: "npm:^1.0.2" + typed-array-length: "npm:^1.0.6" + unbox-primitive: "npm:^1.0.2" + which-typed-array: "npm:^1.1.15" + checksum: 2da795a6a1ac5fc2c452799a409acc2e3692e06dc6440440b076908617188899caa562154d77263e3053bcd9389a07baa978ab10ac3b46acc399bd0c77be04cb + languageName: node + linkType: hard + "es-array-method-boxes-properly@npm:^1.0.0": version: 1.0.0 resolution: "es-array-method-boxes-properly@npm:1.0.0" @@ -13233,6 +13436,22 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + +"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 + languageName: node + linkType: hard + "es-module-lexer@npm:^1.2.1": version: 1.4.1 resolution: "es-module-lexer@npm:1.4.1" @@ -13240,6 +13459,15 @@ __metadata: languageName: node linkType: hard +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + checksum: f8910cf477e53c0615f685c5c96210591841850871b81924fcf256bfbaa68c254457d994a4308c60d15b20805e7f61ce6abc669375e01a5349391a8c1767584f + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.2 resolution: "es-set-tostringtag@npm:2.0.2" @@ -13251,7 +13479,18 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: "npm:^1.2.4" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.1" + checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: @@ -13331,6 +13570,17 @@ __metadata: languageName: node linkType: hard +"eslint-compat-utils@npm:^0.5.0": + version: 0.5.0 + resolution: "eslint-compat-utils@npm:0.5.0" + dependencies: + semver: "npm:^7.5.4" + peerDependencies: + eslint: ">=6.0.0" + checksum: 3f305ca4d9af42ff536cb9abedd4fddecb36809ee04772d5f16c5e4437b169fcfa02c5e6a1554df092dceb67864d0d4516d2db4b3a91131bb8dbbafe00d7b209 + languageName: node + linkType: hard + "eslint-config-prettier@npm:^8.10.0": version: 8.10.0 resolution: "eslint-config-prettier@npm:8.10.0" @@ -13353,6 +13603,29 @@ __metadata: languageName: node linkType: hard +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: "npm:^3.2.7" + is-core-module: "npm:^2.13.0" + resolve: "npm:^1.22.4" + checksum: d52e08e1d96cf630957272e4f2644dcfb531e49dcfd1edd2e07e43369eb2ec7a7d4423d417beee613201206ff2efa4eb9a582b5825ee28802fc7c71fcd53ca83 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.8.0": + version: 2.8.1 + resolution: "eslint-module-utils@npm:2.8.1" + dependencies: + debug: "npm:^3.2.7" + peerDependenciesMeta: + eslint: + optional: true + checksum: 3e7892c0a984c963632da56b30ccf8254c29b535467138f91086c2ecdb2ebd10e2be61b54e553f30e5abf1d14d47a7baa0dac890e3a658fd3cd07dca63afbe6d + languageName: node + linkType: hard + "eslint-plugin-ember@npm:^11.11.1": version: 11.11.1 resolution: "eslint-plugin-ember@npm:11.11.1" @@ -13376,6 +13649,19 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-es-x@npm:^7.5.0": + version: 7.6.0 + resolution: "eslint-plugin-es-x@npm:7.6.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.1.2" + "@eslint-community/regexpp": "npm:^4.6.0" + eslint-compat-utils: "npm:^0.5.0" + peerDependencies: + eslint: ">=8" + checksum: f1a0ea3da3a68263dd2ec8cf01c9e27583650c6acce62934a3a4f10d192f5b60773671f1f42de4bbe8b28443333074836a7e2426249d5adbfc3fc0d68c49d990 + languageName: node + linkType: hard + "eslint-plugin-es@npm:^3.0.0": version: 3.0.1 resolution: "eslint-plugin-es@npm:3.0.1" @@ -13388,6 +13674,51 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-import@npm:^2.29.1": + version: 2.29.1 + resolution: "eslint-plugin-import@npm:2.29.1" + dependencies: + array-includes: "npm:^3.1.7" + array.prototype.findlastindex: "npm:^1.2.3" + array.prototype.flat: "npm:^1.3.2" + array.prototype.flatmap: "npm:^1.3.2" + debug: "npm:^3.2.7" + doctrine: "npm:^2.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-module-utils: "npm:^2.8.0" + hasown: "npm:^2.0.0" + is-core-module: "npm:^2.13.1" + is-glob: "npm:^4.0.3" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.7" + object.groupby: "npm:^1.0.1" + object.values: "npm:^1.1.7" + semver: "npm:^6.3.1" + tsconfig-paths: "npm:^3.15.0" + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + checksum: 5865f05c38552145423c535326ec9a7113ab2305c7614c8b896ff905cfabc859c8805cac21e979c9f6f742afa333e6f62f812eabf891a7e8f5f0b853a32593c1 + languageName: node + linkType: hard + +"eslint-plugin-n@npm:^17.7.0": + version: 17.7.0 + resolution: "eslint-plugin-n@npm:17.7.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + enhanced-resolve: "npm:^5.15.0" + eslint-plugin-es-x: "npm:^7.5.0" + get-tsconfig: "npm:^4.7.0" + globals: "npm:^15.0.0" + ignore: "npm:^5.2.4" + minimatch: "npm:^9.0.0" + semver: "npm:^7.5.3" + peerDependencies: + eslint: ">=8.23.0" + checksum: 5fad81e4ed2e83754f2c7499756360fd1f829737c68fb384b83f82f92347e4b755014dcdbe17a88db2360c69da332a56c5b82480377cd0d562b187d97861f7e3 + languageName: node + linkType: hard + "eslint-plugin-node@npm:^11.1.0": version: 11.1.0 resolution: "eslint-plugin-node@npm:11.1.0" @@ -15027,6 +15358,19 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 85bbf4b234c3940edf8a41f4ecbd4e25ce78e5e6ad4e24ca2f77037d983b9ef943fd72f00f3ee97a49ec622a506b67db49c36246150377efcda1c9eb03e5f06d + languageName: node + linkType: hard + "get-package-type@npm:^0.1.0": version: 0.1.0 resolution: "get-package-type@npm:0.1.0" @@ -15090,6 +15434,26 @@ __metadata: languageName: node linkType: hard +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + languageName: node + linkType: hard + +"get-tsconfig@npm:^4.7.0": + version: 4.7.5 + resolution: "get-tsconfig@npm:4.7.5" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: de7de5e4978354e8e6d9985baf40ea32f908a13560f793bc989930c229cc8d5c3f7b6b2896d8e43eb1a9b4e9e30018ef4b506752fd2a4b4d0dfee4af6841b119 + languageName: node + linkType: hard + "get-value@npm:^2.0.3, get-value@npm:^2.0.6": version: 2.0.6 resolution: "get-value@npm:2.0.6" @@ -15286,6 +15650,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^15.0.0": + version: 15.3.0 + resolution: "globals@npm:15.3.0" + checksum: ad4e845884e045d211fd7c4511f51a3484d6db8438d7a8ec9366919771f802596964aaa514f2561bd375ee7d0d57e83a056ef50996eee5a676400534c75e4d06 + languageName: node + linkType: hard + "globals@npm:^9.18.0": version: 9.18.0 resolution: "globals@npm:9.18.0" @@ -15594,6 +15965,15 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2 + languageName: node + linkType: hard + "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" @@ -15601,6 +15981,13 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.0.3": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a + languageName: node + linkType: hard + "has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -15617,6 +16004,15 @@ __metadata: languageName: node linkType: hard +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe + languageName: node + linkType: hard + "has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" @@ -15686,6 +16082,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + "hast-util-from-parse5@npm:^8.0.0": version: 8.0.1 resolution: "hast-util-from-parse5@npm:8.0.1" @@ -16415,6 +16820,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.0" + side-channel: "npm:^1.0.4" + checksum: 3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053 + languageName: node + linkType: hard + "invariant@npm:^2.2.2": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -16489,6 +16905,16 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" + dependencies: + call-bind: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.1" + checksum: 34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -16545,7 +16971,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -16563,6 +16989,15 @@ __metadata: languageName: node linkType: hard +"is-data-view@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-view@npm:1.0.1" + dependencies: + is-typed-array: "npm:^1.1.13" + checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -16748,6 +17183,13 @@ __metadata: languageName: node linkType: hard +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: 8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5 + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -16880,6 +17322,15 @@ __metadata: languageName: node linkType: hard +"is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + checksum: bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe + languageName: node + linkType: hard + "is-stream@npm:^1.1.0": version: 1.1.0 resolution: "is-stream@npm:1.1.0" @@ -16953,6 +17404,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: "npm:^1.1.14" + checksum: f850ba08286358b9a11aee6d93d371a45e3c59b5953549ee1c1a9a55ba5c1dd1bd9952488ae194ad8f32a9cf5e79c8fa5f0cc4d78c00720aa0bbcf238b38062d + languageName: node + linkType: hard + "is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -17953,6 +18413,17 @@ __metadata: languageName: node linkType: hard +"json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: "npm:^1.2.0" + bin: + json5: lib/cli.js + checksum: a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6 + languageName: node + linkType: hard + "json5@npm:^2.1.1, json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" @@ -19791,6 +20262,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.0": + version: 9.0.4 + resolution: "minimatch@npm:9.0.4" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 4cdc18d112b164084513e890d6323370db14c22249d536ad1854539577a895e690a27513dc346392f61a4a50afbbd8abc88f3f25558bfbbbb862cd56508b20f5 + languageName: node + linkType: hard + "minimist-options@npm:^3.0.1": version: 3.0.2 resolution: "minimist-options@npm:3.0.2" @@ -20454,7 +20934,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4": +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -20466,6 +20946,18 @@ __metadata: languageName: node linkType: hard +"object.fromentries@npm:^2.0.7": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92 + languageName: node + linkType: hard + "object.getownpropertydescriptors@npm:^2.1.0": version: 2.1.7 resolution: "object.getownpropertydescriptors@npm:2.1.7" @@ -20479,6 +20971,17 @@ __metadata: languageName: node linkType: hard +"object.groupby@npm:^1.0.1": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + checksum: 44cb86dd2c660434be65f7585c54b62f0425b0c96b5c948d2756be253ef06737da7e68d7106e35506ce4a44d16aa85a413d11c5034eb7ce5579ec28752eb42d0 + languageName: node + linkType: hard + "object.pick@npm:^1.3.0": version: 1.3.0 resolution: "object.pick@npm:1.3.0" @@ -20499,6 +21002,17 @@ __metadata: languageName: node linkType: hard +"object.values@npm:^1.1.7": + version: 1.2.0 + resolution: "object.values@npm:1.2.0" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: db2e498019c354428c5dd30d02980d920ac365b155fce4dcf63eb9433f98ccf0f72624309e182ce7cc227c95e45d474e1d483418e60de2293dd23fa3ebe34903 + languageName: node + linkType: hard + "on-finished@npm:2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" @@ -21266,6 +21780,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: 8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af + languageName: node + linkType: hard + "postcss-html@npm:^0.36.0": version: 0.36.0 resolution: "postcss-html@npm:0.36.0" @@ -22243,6 +22764,18 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.2": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" + dependencies: + call-bind: "npm:^1.0.6" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + set-function-name: "npm:^2.0.1" + checksum: 9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c + languageName: node + linkType: hard + "regexpp@npm:^3.0.0, regexpp@npm:^3.1.0": version: 3.2.0 resolution: "regexpp@npm:3.2.0" @@ -22703,6 +23236,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e + languageName: node + linkType: hard + "resolve-url@npm:^0.2.1": version: 0.2.1 resolution: "resolve-url@npm:0.2.1" @@ -22717,7 +23257,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.11.1, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.8, resolve@npm:^1.3.3, resolve@npm:^1.4.0, resolve@npm:^1.5.0, resolve@npm:^1.8.1": +"resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.11.1, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.22.8, resolve@npm:^1.3.3, resolve@npm:^1.4.0, resolve@npm:^1.5.0, resolve@npm:^1.8.1": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -22730,7 +23270,7 @@ __metadata: languageName: node linkType: hard -? "resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.11.1#optional!builtin, resolve@patch:resolve@npm%3A^1.13.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.3.3#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin, resolve@patch:resolve@npm%3A^1.5.0#optional!builtin, resolve@patch:resolve@npm%3A^1.8.1#optional!builtin" +? "resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.11.1#optional!builtin, resolve@patch:resolve@npm%3A^1.13.1#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.3.3#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin, resolve@patch:resolve@npm%3A^1.5.0#optional!builtin, resolve@patch:resolve@npm%3A^1.8.1#optional!builtin" : version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" @@ -23130,6 +23670,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.1.2": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" + dependencies: + call-bind: "npm:^1.0.7" + get-intrinsic: "npm:^1.2.4" + has-symbols: "npm:^1.0.3" + isarray: "npm:^2.0.5" + checksum: a54f8040d7cb696a1ee38d19cc71ab3cfb654b9b81bae00c6459618cfad8214ece7e6666592f9c925aafef43d0a20c5e6fbb3413a2b618e1ce9d516a2e6dcfc5 + languageName: node + linkType: hard + "safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -23162,6 +23714,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.1.4" + checksum: b04de61114b10274d92e25b6de7ccb5de07f11ea15637ff636de4b5190c0f5cd8823fe586dde718504cf78055437d70fd8804976894df502fcf5a210c970afb3 + languageName: node + linkType: hard + "safe-regex@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex@npm:1.1.0" @@ -23403,6 +23966,20 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d + languageName: node + linkType: hard + "set-function-name@npm:^2.0.0": version: 2.0.1 resolution: "set-function-name@npm:2.0.1" @@ -23414,6 +23991,18 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.1": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 + languageName: node + linkType: hard + "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -24277,6 +24866,18 @@ __metadata: languageName: node linkType: hard +"string.prototype.trim@npm:^1.2.9": + version: 1.2.9 + resolution: "string.prototype.trim@npm:1.2.9" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.0" + es-object-atoms: "npm:^1.0.0" + checksum: b2170903de6a2fb5a49bb8850052144e04b67329d49f1343cdc6a87cb24fb4e4b8ad00d3e273a399b8a3d8c32c89775d93a8f43cb42fbff303f25382079fb58a + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimend@npm:1.0.7" @@ -24288,6 +24889,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimend@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimend@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: c2e862ae724f95771da9ea17c27559d4eeced9208b9c20f69bbfcd1b9bc92375adf8af63a103194dba17c4cc4a5cb08842d929f415ff9d89c062d44689c8761b + languageName: node + linkType: hard + "string.prototype.trimstart@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimstart@npm:1.0.7" @@ -24299,6 +24911,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674 + languageName: node + linkType: hard + "string_decoder@npm:0.10, string_decoder@npm:~0.10.x": version: 0.10.31 resolution: "string_decoder@npm:0.10.31" @@ -25489,6 +26112,18 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" + dependencies: + "@types/json5": "npm:^0.0.29" + json5: "npm:^1.0.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14 + languageName: node + linkType: hard + "tslib@npm:^1.8.1, tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -25633,6 +26268,17 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.13" + checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + languageName: node + linkType: hard + "typed-array-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-length@npm:1.0.0" @@ -25645,6 +26291,19 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: e4a38329736fe6a73b52a09222d4a9e8de14caaa4ff6ad8e55217f6705b017d9815b7284c85065b3b8a7704e226ccff1372a72b78c2a5b6b71b7bf662308c903 + languageName: node + linkType: hard + "typed-array-byte-offset@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-offset@npm:1.0.0" @@ -25658,6 +26317,20 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-offset@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-byte-offset@npm:1.0.2" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: ac26d720ebb2aacbc45e231347c359e6649f52e0cfe0e76e62005912f8030d68e4cb7b725b1754e8fdd48e433cb68df5a8620a3e420ad1457d666e8b29bf9150 + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -25669,6 +26342,20 @@ __metadata: languageName: node linkType: hard +"typed-array-length@npm:^1.0.6": + version: 1.0.6 + resolution: "typed-array-length@npm:1.0.6" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + checksum: 05e96cf4ff836743ebfc593d86133b8c30e83172cb5d16c56814d7bacfed57ce97e87ada9c4b2156d9aaa59f75cdef01c25bd9081c7826e0b869afbefc3e8c39 + languageName: node + linkType: hard + "typedarray-to-buffer@npm:^3.1.5": version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" @@ -26867,6 +27554,19 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + checksum: c3b6a99beadc971baa53c3ee5b749f2b9bdfa3b3b9a70650dd8511a48b61d877288b498d424712e9991d16019633086bd8b5923369460d93463c5825fa36c448 + languageName: node + linkType: hard + "which@npm:^1.2.14, which@npm:^1.2.9, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" From 6bfaecdcd207c04b5e0df9acf21043c4c25229e8 Mon Sep 17 00:00:00 2001 From: Cristiano Rastelli Date: Tue, 21 May 2024 22:30:22 +0100 Subject: [PATCH 06/22] fixed typo for `BadgeCount` in the template registry file --- packages/components/src/template-registry.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/components/src/template-registry.ts b/packages/components/src/template-registry.ts index d3bddc799b..8fe168099c 100644 --- a/packages/components/src/template-registry.ts +++ b/packages/components/src/template-registry.ts @@ -98,6 +98,7 @@ export default interface HdsComponentsRegistry { 'Hds::AppFooter::StatusLink': typeof HdsAppFooterStatusLinkComponent; 'hds/app-footer/status-link': typeof HdsAppFooterStatusLinkComponent; HdsAppFooterStatusLink: typeof HdsAppFooterStatusLinkComponent; + // App Frame 'Hds::AppFrame': typeof HdsAppFrameComponent; 'hds/app-frame': typeof HdsAppFrameComponent; @@ -129,7 +130,7 @@ export default interface HdsComponentsRegistry { HdsBadge: typeof HdsBadgeComponent; // BadgeCount - 'Hds::Badge::Count': typeof HdsBadgeCountComponent; + 'Hds::BadgeCount': typeof HdsBadgeCountComponent; 'hds/badge-count': typeof HdsBadgeCountComponent; HdsBadgeCount: typeof HdsBadgeCountComponent; From 41899184932ca81642200d6158e3acbbf295ec0f Mon Sep 17 00:00:00 2001 From: Cristiano Rastelli Date: Tue, 21 May 2024 22:31:35 +0100 Subject: [PATCH 07/22] changeset --- .changeset/tiny-apes-sin.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/tiny-apes-sin.md diff --git a/.changeset/tiny-apes-sin.md b/.changeset/tiny-apes-sin.md new file mode 100644 index 0000000000..1c9f1689db --- /dev/null +++ b/.changeset/tiny-apes-sin.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": patch +--- + +`Hds::BadgeCount` - Fixed typo in template registry declaration From 77c230b7f3bb4eefb87992abe4baffe8d8d742f0 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 22 May 2024 11:09:25 +0100 Subject: [PATCH 08/22] Apply suggestions from code review --- .changeset/rare-suns-love.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/rare-suns-love.md b/.changeset/rare-suns-love.md index 144bb021f0..bcfe2ef1c5 100644 --- a/.changeset/rare-suns-love.md +++ b/.changeset/rare-suns-love.md @@ -2,4 +2,4 @@ "@hashicorp/design-system-components": patch --- -update pre-publish script to run build correctly +Fix missing TypeScript `declaration` From 678dfb9510398e4ccd8444e81e024c8e83ed9991 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Thu, 16 May 2024 14:01:04 -0700 Subject: [PATCH 09/22] feat(showcase): add typescript tooling --- .github/workflows/ci-components.yml | 12 ++-- showcase/.editorconfig | 19 ++++++ showcase/.ember-cli | 6 +- showcase/.eslintignore | 12 ---- showcase/.eslintrc.js | 35 ++++------ showcase/.gitignore | 7 -- showcase/.prettierignore | 14 +--- showcase/.prettierrc.js | 10 ++- showcase/.stylelintignore | 22 +------ showcase/app/{app.js => app.ts} | 0 showcase/app/config/environment.d.ts | 4 +- showcase/app/{router.js => router.ts} | 0 .../blueprints/hds-component-test/index.js | 2 +- showcase/blueprints/hds-component/index.js | 2 +- showcase/config/ember-cli-update.json | 5 +- showcase/ember-cli-build.js | 4 ++ showcase/package.json | 21 +++--- showcase/tests/helpers/{index.js => index.ts} | 8 ++- .../tests/{test-helper.js => test-helper.ts} | 1 + showcase/tsconfig.json | 3 - showcase/types/dummy/index.d.ts | 7 -- showcase/types/global.d.ts | 66 +++++++++++-------- showcase/types/showcase/index.d.ts | 1 + 23 files changed, 117 insertions(+), 144 deletions(-) create mode 100644 showcase/.editorconfig rename showcase/app/{app.js => app.ts} (100%) rename showcase/app/{router.js => router.ts} (100%) rename showcase/tests/helpers/{index.js => index.ts} (81%) rename showcase/tests/{test-helper.js => test-helper.ts} (97%) delete mode 100644 showcase/types/dummy/index.d.ts diff --git a/.github/workflows/ci-components.yml b/.github/workflows/ci-components.yml index c3c48213b2..f736ef9b86 100644 --- a/.github/workflows/ci-components.yml +++ b/.github/workflows/ci-components.yml @@ -42,18 +42,18 @@ jobs: cache-dependency-path: yarn.lock - name: Install Dependencies run: yarn install --immutable - - name: Lint Showcase - run: yarn run lint - working-directory: showcase - - name: Lint Components - run: yarn run lint - working-directory: packages/components - name: Build Icons run: yarn build working-directory: packages/ember-flight-icons - name: Build Components run: yarn build working-directory: packages/components + - name: Lint Showcase + run: yarn run lint + working-directory: showcase + - name: Lint Components + run: yarn run lint + working-directory: packages/components - name: Run Tests run: yarn run test:ember:percy working-directory: showcase diff --git a/showcase/.editorconfig b/showcase/.editorconfig new file mode 100644 index 0000000000..c35a002406 --- /dev/null +++ b/showcase/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/showcase/.ember-cli b/showcase/.ember-cli index 335a1d39ad..d9ce3fd9df 100644 --- a/showcase/.ember-cli +++ b/showcase/.ember-cli @@ -8,8 +8,8 @@ "disableAnalytics": true, /** - 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. + 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. */ - "isTypeScriptProject": false + "isTypeScriptProject": true } diff --git a/showcase/.eslintignore b/showcase/.eslintignore index d474a40bd5..9385391f21 100644 --- a/showcase/.eslintignore +++ b/showcase/.eslintignore @@ -1,25 +1,13 @@ # unconventional js /blueprints/*/files/ -/vendor/ # compiled output /dist/ -/tmp/ - -# dependencies -/bower_components/ -/node_modules/ # misc /coverage/ !.* .*/ -.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 diff --git a/showcase/.eslintrc.js b/showcase/.eslintrc.js index 864d4ad09f..e1005bd03c 100644 --- a/showcase/.eslintrc.js +++ b/showcase/.eslintrc.js @@ -2,19 +2,11 @@ module.exports = { root: true, - parser: '@babel/eslint-parser', + parser: '@typescript-eslint/parser', parserOptions: { - ecmaVersion: 2018, - sourceType: 'module', - ecmaFeatures: { - legacyDecorators: true, - }, - requireConfigFile: false, - babelOptions: { - plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]], - }, + ecmaVersion: 'latest', }, - plugins: ['ember'], + plugins: ['ember', '@typescript-eslint'], extends: [ 'eslint:recommended', 'plugin:ember/recommended', @@ -25,6 +17,15 @@ module.exports = { }, rules: {}, overrides: [ + // ts files + { + files: ['**/*.ts'], + extends: [ + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + ], + rules: {}, + }, // node files { files: [ @@ -33,26 +34,16 @@ module.exports = { './.stylelintrc.js', './.template-lintrc.js', './ember-cli-build.js', - './index.js', './testem.js', './blueprints/*/index.js', './config/**/*.js', './tests/dummy/config/**/*.js', ], - parserOptions: { - sourceType: 'script', - }, env: { 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/showcase/.gitignore b/showcase/.gitignore index 59552cfc57..71ad79d02e 100644 --- a/showcase/.gitignore +++ b/showcase/.gitignore @@ -1,28 +1,21 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - # compiled output /dist/ /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 # 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/showcase/.prettierignore b/showcase/.prettierignore index 4178fd571e..9385391f21 100644 --- a/showcase/.prettierignore +++ b/showcase/.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/showcase/.prettierrc.js b/showcase/.prettierrc.js index 09c56faf0c..457d0b302f 100644 --- a/showcase/.prettierrc.js +++ b/showcase/.prettierrc.js @@ -1,19 +1,17 @@ 'use strict'; module.exports = { - singleQuote: true, overrides: [ { - files: '*.hbs', + files: '*.{js,ts}', options: { - singleQuote: false, - printWidth: 120, + singleQuote: true, }, }, { - files: '*.scss', + files: '*.hbs', options: { - singleQuote: false, + printWidth: 120, }, }, ], diff --git a/showcase/.stylelintignore b/showcase/.stylelintignore index b806359ddd..a0cf71cbd1 100644 --- a/showcase/.stylelintignore +++ b/showcase/.stylelintignore @@ -1,26 +1,8 @@ -# unconventional js +# unconventional files /blueprints/*/files/ -/vendor/ # compiled output /dist/ -/tmp/ -# dependencies -/bower_components/ -/node_modules/ - -# misc -/coverage/ -!.* -.*/ -.eslintcache -.lint-todo/ - -# ember-try +# addons /.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 \ No newline at end of file diff --git a/showcase/app/app.js b/showcase/app/app.ts similarity index 100% rename from showcase/app/app.js rename to showcase/app/app.ts diff --git a/showcase/app/config/environment.d.ts b/showcase/app/config/environment.d.ts index a8f92b9feb..73d022a3e0 100644 --- a/showcase/app/config/environment.d.ts +++ b/showcase/app/config/environment.d.ts @@ -1,12 +1,12 @@ /** * Type declarations for - * import config from 'my-app/config/environment' + * import config from 'showcase/config/environment' */ declare const config: { environment: string; modulePrefix: string; podModulePrefix: string; - locationType: 'history' | 'hash' | 'none' | 'auto'; + locationType: 'history' | 'hash' | 'none'; rootURL: string; APP: Record; }; diff --git a/showcase/app/router.js b/showcase/app/router.ts similarity index 100% rename from showcase/app/router.js rename to showcase/app/router.ts diff --git a/showcase/blueprints/hds-component-test/index.js b/showcase/blueprints/hds-component-test/index.js index af9f722f30..e790d1ce0c 100644 --- a/showcase/blueprints/hds-component-test/index.js +++ b/showcase/blueprints/hds-component-test/index.js @@ -4,7 +4,7 @@ */ /* eslint-disable ember/no-string-prototype-extensions */ -/* eslint-disable node/no-extraneous-require */ +/* eslint-disable n/no-extraneous-require */ 'use strict'; const stringUtil = require('ember-cli-string-utils'); diff --git a/showcase/blueprints/hds-component/index.js b/showcase/blueprints/hds-component/index.js index ff520c1af5..0743c9b2ba 100644 --- a/showcase/blueprints/hds-component/index.js +++ b/showcase/blueprints/hds-component/index.js @@ -4,7 +4,7 @@ */ /* eslint-disable ember/no-string-prototype-extensions */ -/* eslint-disable node/no-extraneous-require */ +/* eslint-disable n/no-extraneous-require */ 'use strict'; const stringUtil = require('ember-cli-string-utils'); diff --git a/showcase/config/ember-cli-update.json b/showcase/config/ember-cli-update.json index bc6cc28efe..094d3f2e4a 100644 --- a/showcase/config/ember-cli-update.json +++ b/showcase/config/ember-cli-update.json @@ -11,7 +11,10 @@ "codemodsSource": "ember-app-codemods-manifest@1", "isBaseBlueprint": true, "options": [ - "--ci-provider=github" + "--no-welcome", + "--yarn", + "--ci-provider=github", + "--typescript" ] } ] diff --git a/showcase/ember-cli-build.js b/showcase/ember-cli-build.js index c73cb46974..ea15158c0d 100644 --- a/showcase/ember-cli-build.js +++ b/showcase/ember-cli-build.js @@ -9,6 +9,10 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app'); module.exports = function (defaults) { const app = new EmberApp(defaults, { + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, + // See https://github.com/adopted-ember-addons/ember-cli-sass sassOptions: { precision: 4, diff --git a/showcase/package.json b/showcase/package.json index aa272fa717..e295f128a1 100644 --- a/showcase/package.json +++ b/showcase/package.json @@ -16,18 +16,17 @@ "scripts": { "build": "yarn build:packages && ember build --environment=production", "build:packages": "yarn workspace @hashicorp/ember-flight-icons build && yarn workspace @hashicorp/design-system-components build", - "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", - "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", + "lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"", + "lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"", "lint:css": "stylelint \"app/styles/**/*.scss\"", - "lint:css:fix": "npm-run-all \"lint:css --fix\"", + "lint:css:fix": "concurrently \"npm:lint:css -- --fix\"", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", - "lint:glint": "glint", - "lint:types": "tsc --noEmit", + "lint:types": "glint", "start": "yarn build:packages && ember serve", - "test": "npm-run-all lint test:*", + "test": "concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"", "test:ember": "yarn build:packages && ember test", "test:ember-compatibility": "ember try:each", "test:ember:percy": "percy exec ember test", @@ -36,8 +35,6 @@ }, "devDependencies": { "@babel/core": "^7.24.5", - "@babel/eslint-parser": "^7.22.15", - "@babel/plugin-proposal-decorators": "^7.23.2", "@ember/optional-features": "^2.0.0", "@ember/string": "^3.1.1", "@ember/test-helpers": "^3.2.0", @@ -56,7 +53,10 @@ "@tsconfig/ember": "^3.0.6", "@types/qunit": "^2.19.10", "@types/rsvp": "^4.0.9", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "broccoli-asset-rev": "^3.0.0", + "concurrently": "^8.2.1", "ember-a11y-testing": "^6.1.1", "ember-auto-import": "^2.6.3", "ember-basic-dropdown": "^8.1.0", @@ -75,6 +75,7 @@ "ember-concurrency": "^4.0.2", "ember-deep-tracked": "^2.0.0", "ember-load-initializers": "^2.1.2", + "ember-modifier": "^4.1.0", "ember-page-title": "^8.0.0", "ember-power-select": "^8.2.0", "ember-qunit": "^8.0.1", @@ -90,11 +91,10 @@ "eslint": "^8.52.0", "eslint-config-prettier": "^8.10.0", "eslint-plugin-ember": "^11.11.1", - "eslint-plugin-node": "^11.1.0", + "eslint-plugin-n": "^16.1.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-qunit": "^8.0.1", "loader.js": "^4.7.0", - "npm-run-all": "^4.1.5", "prettier": "^2.8.8", "qunit": "^2.20.0", "qunit-dom": "^3.0.0", @@ -103,6 +103,7 @@ "stylelint": "^16.3.1", "stylelint-config-rational-order": "^0.1.2", "stylelint-config-standard-scss": "^13.1.0", + "tracked-built-ins": "^3.2.0", "typescript": "^5.4.2", "webpack": "^5.89.0" }, diff --git a/showcase/tests/helpers/index.js b/showcase/tests/helpers/index.ts similarity index 81% rename from showcase/tests/helpers/index.js rename to showcase/tests/helpers/index.ts index d1c00b3cf1..d1dfbee54f 100644 --- a/showcase/tests/helpers/index.js +++ b/showcase/tests/helpers/index.ts @@ -9,11 +9,13 @@ import { setupTest as upstreamSetupTest, } from 'ember-qunit'; +import type { SetupTestOptions } from 'ember-qunit'; + // This file exists to provide wrappers around ember-qunit's // test setup functions. This way, you can easily extend the setup that is // needed per test type. -function setupApplicationTest(hooks, options) { +function setupApplicationTest(hooks: NestedHooks, options?: SetupTestOptions) { upstreamSetupApplicationTest(hooks, options); // Additional setup for application tests can be done here. @@ -32,13 +34,13 @@ function setupApplicationTest(hooks, options) { // setupMirage(hooks); // ember-cli-mirage } -function setupRenderingTest(hooks, options) { +function setupRenderingTest(hooks: NestedHooks, options?: SetupTestOptions) { upstreamSetupRenderingTest(hooks, options); // Additional setup for rendering tests can be done here. } -function setupTest(hooks, options) { +function setupTest(hooks: NestedHooks, options?: SetupTestOptions) { upstreamSetupTest(hooks, options); // Additional setup for unit tests can be done here. diff --git a/showcase/tests/test-helper.js b/showcase/tests/test-helper.ts similarity index 97% rename from showcase/tests/test-helper.js rename to showcase/tests/test-helper.ts index 3a5ac32a11..238075b67f 100644 --- a/showcase/tests/test-helper.js +++ b/showcase/tests/test-helper.ts @@ -43,6 +43,7 @@ setRunOptions({ 'best-practice', ], }, + // @ts-expect-error: This is a valid option include: [['#ember-testing-container']], exclude: [['.flight-sprite-container'], ['.shw-page-main']], }); diff --git a/showcase/tsconfig.json b/showcase/tsconfig.json index 61b46631f3..1a73d9937e 100644 --- a/showcase/tsconfig.json +++ b/showcase/tsconfig.json @@ -8,9 +8,6 @@ "baseUrl": ".", "allowJs": true, "skipLibCheck": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "noPropertyAccessFromIndexSignature": false, "paths": { "showcase/tests/*": [ "tests/*" diff --git a/showcase/types/dummy/index.d.ts b/showcase/types/dummy/index.d.ts deleted file mode 100644 index ea06c205ff..0000000000 --- a/showcase/types/dummy/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import 'ember-source/types'; -import '@glint/environment-ember-loose'; diff --git a/showcase/types/global.d.ts b/showcase/types/global.d.ts index 3b83d0dbfa..b31b96b4f7 100644 --- a/showcase/types/global.d.ts +++ b/showcase/types/global.d.ts @@ -1,6 +1,8 @@ +/* eslint-disable ember/require-tagless-components */ +/* eslint-disable @typescript-eslint/ban-types */ + import '@glint/environment-ember-loose'; -import 'ember-source/types'; -import Component from '@ember/component'; +import Component from '@glimmer/component'; export interface ShwTxtSignature { Args: { @@ -11,8 +13,8 @@ export interface ShwTxtSignature { }; Element: HTMLElement; Blocks: { - default: [] - } + default: []; + }; } export class ShwTxt extends Component {} @@ -20,8 +22,8 @@ export interface ShwLabelSignature { Args: {}; Element: HTMLParagraphElement; Blocks: { - default: [] - } + default: []; + }; } export class ShwLabel extends Component {} @@ -32,10 +34,12 @@ export interface ShwFlexItemSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - }] - } + default: [ + { + Label: typeof ShwLabel; + } + ]; + }; } export class ShwFlexItem extends Component {} @@ -47,11 +51,13 @@ export interface ShwFlexSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - Item: typeof ShwFlexItem; - }] - } + default: [ + { + Label: typeof ShwLabel; + Item: typeof ShwFlexItem; + } + ]; + }; } export class ShwFlex extends Component {} @@ -63,10 +69,12 @@ export interface ShwGridItemSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - }] - } + default: [ + { + Label: typeof ShwLabel; + } + ]; + }; } export class ShwGridItem extends Component {} @@ -77,11 +85,13 @@ export interface ShwGridSignature { }; Element: HTMLDivElement; Blocks: { - default: [{ - Label: typeof ShwLabel; - Item: typeof ShwGridItem; - }] - } + default: [ + { + Label: typeof ShwLabel; + Item: typeof ShwGridItem; + } + ]; + }; } export class ShwGrid extends Component {} @@ -96,8 +106,8 @@ export interface ShwOutlinerSignature { Args: {}; Element: HTMLDivElement; Blocks: { - default: [] - } + default: []; + }; } export class ShwOutliner extends Component {} @@ -117,7 +127,9 @@ export default interface EmberStyleModifierRegistry { } declare module '@glint/environment-ember-loose/registry' { - export default interface Registry extends EmberStyleModifierRegistry, HdsComponentsRegistry { + export default interface Registry + extends EmberStyleModifierRegistry, + HdsComponentsRegistry { 'Shw::Text': typeof ShwTxt; 'Shw::Text::H1': typeof ShwTxt; 'Shw::Text::H2': typeof ShwTxt; diff --git a/showcase/types/showcase/index.d.ts b/showcase/types/showcase/index.d.ts index d2f5fc1b01..bbc63a4cdc 100644 --- a/showcase/types/showcase/index.d.ts +++ b/showcase/types/showcase/index.d.ts @@ -1,3 +1,4 @@ +import 'ember-source/types'; import Ember from 'ember'; declare global { From aa68a1acd5879084ac1f034f994705c6e94ac6b7 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Thu, 16 May 2024 14:01:04 -0700 Subject: [PATCH 10/22] feat(showcase): add typescript tooling From 990e8c4278bc5dbc64015c8df6d3579b68237ead Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Fri, 17 May 2024 21:05:57 -0700 Subject: [PATCH 11/22] feat(showcase): enable `glint` --- showcase/tsconfig.json | 1 - showcase/types/global.d.ts | 18 +++++++++--------- showcase/types/showcase/index.d.ts | 9 --------- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/showcase/tsconfig.json b/showcase/tsconfig.json index 1a73d9937e..27e50b83f0 100644 --- a/showcase/tsconfig.json +++ b/showcase/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@tsconfig/ember/tsconfig.json", "compilerOptions": { - // The combination of `baseUrl` with `paths` allows Ember's classic package // layout, which is not resolvable with the Node resolution algorithm, to // work with TypeScript. diff --git a/showcase/types/global.d.ts b/showcase/types/global.d.ts index b31b96b4f7..7c03253288 100644 --- a/showcase/types/global.d.ts +++ b/showcase/types/global.d.ts @@ -1,9 +1,16 @@ +/** + * Copyright (c) HashiCorp, Inc. + * SPDX-License-Identifier: MPL-2.0 + */ + /* eslint-disable ember/require-tagless-components */ /* eslint-disable @typescript-eslint/ban-types */ import '@glint/environment-ember-loose'; import Component from '@glimmer/component'; +import type PageTitle from 'ember-page-title/template-registry'; + export interface ShwTxtSignature { Args: { tag?: string; @@ -111,14 +118,6 @@ export interface ShwOutlinerSignature { } export class ShwOutliner extends Component {} -// Types for compiled templates -declare module 'showcase/templates/*' { - import { TemplateFactory } from 'ember-cli-htmlbars'; - - const tmpl: TemplateFactory; - export default tmpl; -} - import type HdsComponentsRegistry from '@hashicorp/design-system-components/template-registry'; import type EmberStyleModifier from 'ember-style-modifier'; @@ -129,7 +128,8 @@ export default interface EmberStyleModifierRegistry { declare module '@glint/environment-ember-loose/registry' { export default interface Registry extends EmberStyleModifierRegistry, - HdsComponentsRegistry { + HdsComponentsRegistry, + PageTitle { 'Shw::Text': typeof ShwTxt; 'Shw::Text::H1': typeof ShwTxt; 'Shw::Text::H2': typeof ShwTxt; diff --git a/showcase/types/showcase/index.d.ts b/showcase/types/showcase/index.d.ts index bbc63a4cdc..a2e5977540 100644 --- a/showcase/types/showcase/index.d.ts +++ b/showcase/types/showcase/index.d.ts @@ -1,12 +1,3 @@ import 'ember-source/types'; -import Ember from 'ember'; - -declare global { - // Prevents ESLint from "fixing" this via its auto-fix to turn it into a type - // alias (e.g. after running any Ember CLI generator) - // eslint-disable-next-line @typescript-eslint/no-empty-interface - interface Array extends Ember.ArrayPrototypeExtensions {} - // interface Function extends Ember.FunctionPrototypeExtensions {} -} export {}; From 69f816b055b9fa11dae87f28791fd17ecef7d60f Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Fri, 17 May 2024 21:06:47 -0700 Subject: [PATCH 12/22] feat(showcase): add `glint` patch for classic components --- ...ronment-ember-loose-npm-1.4.0-31c2f31bcb.patch | 15 +++++++++++++++ package.json | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch diff --git a/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch b/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch new file mode 100644 index 0000000000..388ce0aa6d --- /dev/null +++ b/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch @@ -0,0 +1,15 @@ +diff --git a/-private/environment/index.js b/-private/environment/index.js +index 217583f4bae53f6f72db8d3debd0f31b3dac2b8e..aa2c1a2a665005d8c95b9e3018640fdf7e317861 100644 +--- a/-private/environment/index.js ++++ b/-private/environment/index.js +@@ -46,10 +46,6 @@ function emberLooseEnvironment(options) { + // Pod component/controller/route + candidates.push(templatePath.replace(REGEXES.POD_TEMPLATE, '/component.ts'), templatePath.replace(REGEXES.POD_TEMPLATE, '/controller.ts'), templatePath.replace(REGEXES.POD_TEMPLATE, '/route.ts')); + } +- else if (templatePath.includes('/templates/components/')) { +- // Classic component +- candidates.push(colocatedTsScriptPath.replace('/templates/components/', '/components/')); +- } + else if (templatePath.includes('/templates/')) { + // Classic controller/route + candidates.push(colocatedTsScriptPath.replace('/templates/', '/controllers/'), colocatedTsScriptPath.replace('/templates/', '/routes/')); diff --git a/package.json b/package.json index db63b5cbcf..b1f2c1de1c 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "packageManager": "yarn@4.0.2", "resolutions": { - "broccoli-asset-rewrite@^2.0.0": "patch:broccoli-asset-rewrite@npm%3A2.0.0#./.yarn/patches/broccoli-asset-rewrite-npm-2.0.0-c4ce42084a.patch" + "broccoli-asset-rewrite@^2.0.0": "patch:broccoli-asset-rewrite@npm%3A2.0.0#./.yarn/patches/broccoli-asset-rewrite-npm-2.0.0-c4ce42084a.patch", + "@glint/environment-ember-loose": "patch:@glint/environment-ember-loose@npm%3A1.4.0#~/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch" } } From 5328434e3cee223e23409a63fe66d10ed08fad94 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Sun, 19 May 2024 15:14:08 -0700 Subject: [PATCH 13/22] feat(showcase): bump `ember-page-title` --- showcase/package.json | 2 +- website/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/showcase/package.json b/showcase/package.json index e295f128a1..2be0540ce8 100644 --- a/showcase/package.json +++ b/showcase/package.json @@ -76,7 +76,7 @@ "ember-deep-tracked": "^2.0.0", "ember-load-initializers": "^2.1.2", "ember-modifier": "^4.1.0", - "ember-page-title": "^8.0.0", + "ember-page-title": "^8.2.3", "ember-power-select": "^8.2.0", "ember-qunit": "^8.0.1", "ember-resolver": "^11.0.1", diff --git a/website/package.json b/website/package.json index 86938b46f9..21c56a17cf 100644 --- a/website/package.json +++ b/website/package.json @@ -82,7 +82,7 @@ "ember-math-helpers": "^3.0.0", "ember-meta": "^2.0.0", "ember-modifier": "^4.1.0", - "ember-page-title": "^8.0.0", + "ember-page-title": "^8.2.3", "ember-power-select": "^8.2.0", "ember-prism": "^0.13.0", "ember-qunit": "^8.0.1", From 33af7f6270a73301bd89583fbeba9c7e75229fa2 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Fri, 17 May 2024 21:10:07 -0700 Subject: [PATCH 14/22] feat(showcase): remove `@glint-nocheck` from route templates --- showcase/app/templates/components/accordion.hbs | 1 - showcase/app/templates/components/alert.hbs | 1 - showcase/app/templates/components/app-footer.hbs | 1 - showcase/app/templates/components/application-state.hbs | 1 - showcase/app/templates/components/badge-count.hbs | 1 - showcase/app/templates/components/badge.hbs | 1 - showcase/app/templates/components/button-set.hbs | 1 - showcase/app/templates/components/button.hbs | 1 - showcase/app/templates/components/card.hbs | 1 - showcase/app/templates/components/code-block.hbs | 5 ++--- showcase/app/templates/components/copy/button.hbs | 1 - showcase/app/templates/components/copy/snippet.hbs | 1 - showcase/app/templates/components/dropdown.hbs | 1 - showcase/app/templates/components/flyout.hbs | 1 - showcase/app/templates/components/form/base-elements.hbs | 1 - showcase/app/templates/components/form/checkbox.hbs | 1 - showcase/app/templates/components/form/file-input.hbs | 1 - showcase/app/templates/components/form/masked-input.hbs | 1 - showcase/app/templates/components/form/radio-card.hbs | 1 - showcase/app/templates/components/form/radio.hbs | 1 - showcase/app/templates/components/form/select.hbs | 1 - showcase/app/templates/components/form/text-input.hbs | 1 - showcase/app/templates/components/form/textarea.hbs | 1 - showcase/app/templates/components/form/toggle.hbs | 1 - showcase/app/templates/components/icon-tile.hbs | 1 - showcase/app/templates/components/link/inline.hbs | 1 - showcase/app/templates/components/link/standalone.hbs | 1 - showcase/app/templates/components/modal.hbs | 1 - showcase/app/templates/components/page-header.hbs | 1 - showcase/app/templates/components/pagination.hbs | 1 - showcase/app/templates/components/reveal.hbs | 1 - showcase/app/templates/components/rich-tooltip.hbs | 1 - showcase/app/templates/components/segmented-group.hbs | 1 - showcase/app/templates/components/separator.hbs | 1 - showcase/app/templates/components/side-nav.hbs | 1 - showcase/app/templates/components/stepper.hbs | 1 - showcase/app/templates/components/table.hbs | 1 - showcase/app/templates/components/tabs.hbs | 1 - showcase/app/templates/components/tag.hbs | 1 - showcase/app/templates/components/text.hbs | 1 - showcase/app/templates/components/toast.hbs | 1 - showcase/app/templates/components/tooltip.hbs | 1 - showcase/app/templates/index.hbs | 6 +++--- showcase/app/templates/utilities/interactive.hbs | 1 - showcase/app/templates/utilities/popover-primitive.hbs | 1 - 45 files changed, 5 insertions(+), 49 deletions(-) diff --git a/showcase/app/templates/components/accordion.hbs b/showcase/app/templates/components/accordion.hbs index 3cc869c8c0..d7ca22a674 100644 --- a/showcase/app/templates/components/accordion.hbs +++ b/showcase/app/templates/components/accordion.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/alert.hbs b/showcase/app/templates/components/alert.hbs index d4caf7472f..1bce209ccd 100644 --- a/showcase/app/templates/components/alert.hbs +++ b/showcase/app/templates/components/alert.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/app-footer.hbs b/showcase/app/templates/components/app-footer.hbs index 4269632e55..711f6ef0c2 100644 --- a/showcase/app/templates/components/app-footer.hbs +++ b/showcase/app/templates/components/app-footer.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/application-state.hbs b/showcase/app/templates/components/application-state.hbs index bb3f5ab5f3..231b09a023 100644 --- a/showcase/app/templates/components/application-state.hbs +++ b/showcase/app/templates/components/application-state.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/badge-count.hbs b/showcase/app/templates/components/badge-count.hbs index 73bf2c9307..156a8d35b8 100644 --- a/showcase/app/templates/components/badge-count.hbs +++ b/showcase/app/templates/components/badge-count.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/badge.hbs b/showcase/app/templates/components/badge.hbs index b43cb0b654..8cc9afe3f4 100644 --- a/showcase/app/templates/components/badge.hbs +++ b/showcase/app/templates/components/badge.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/button-set.hbs b/showcase/app/templates/components/button-set.hbs index 4805726ba3..8fe0164f60 100644 --- a/showcase/app/templates/components/button-set.hbs +++ b/showcase/app/templates/components/button-set.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/button.hbs b/showcase/app/templates/components/button.hbs index fff4c4d404..6b352f3d50 100644 --- a/showcase/app/templates/components/button.hbs +++ b/showcase/app/templates/components/button.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/card.hbs b/showcase/app/templates/components/card.hbs index 2a3d18ba3a..e1542bfeb8 100644 --- a/showcase/app/templates/components/card.hbs +++ b/showcase/app/templates/components/card.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/code-block.hbs b/showcase/app/templates/components/code-block.hbs index 04d6623d1a..febe47b7e1 100644 --- a/showcase/app/templates/components/code-block.hbs +++ b/showcase/app/templates/components/code-block.hbs @@ -1,7 +1,6 @@ -{{! @glint-nocheck: not typesafe yet }} {{! -Copyright (c) HashiCorp, Inc. -SPDX-License-Identifier: MPL-2.0 + Copyright (c) HashiCorp, Inc. + SPDX-License-Identifier: MPL-2.0 }} {{page-title "CodeBlock Component"}} diff --git a/showcase/app/templates/components/copy/button.hbs b/showcase/app/templates/components/copy/button.hbs index c9f7115605..3834e64377 100644 --- a/showcase/app/templates/components/copy/button.hbs +++ b/showcase/app/templates/components/copy/button.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/copy/snippet.hbs b/showcase/app/templates/components/copy/snippet.hbs index 1a572a5022..2310ba87ae 100644 --- a/showcase/app/templates/components/copy/snippet.hbs +++ b/showcase/app/templates/components/copy/snippet.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/dropdown.hbs b/showcase/app/templates/components/dropdown.hbs index 37435370e8..b8c8f817c7 100644 --- a/showcase/app/templates/components/dropdown.hbs +++ b/showcase/app/templates/components/dropdown.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/flyout.hbs b/showcase/app/templates/components/flyout.hbs index 9ae8373228..a0852c8a75 100644 --- a/showcase/app/templates/components/flyout.hbs +++ b/showcase/app/templates/components/flyout.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/base-elements.hbs b/showcase/app/templates/components/form/base-elements.hbs index aef87b3d26..8aed3f1b06 100644 --- a/showcase/app/templates/components/form/base-elements.hbs +++ b/showcase/app/templates/components/form/base-elements.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/checkbox.hbs b/showcase/app/templates/components/form/checkbox.hbs index d080f7d01c..f02ccc74f8 100644 --- a/showcase/app/templates/components/form/checkbox.hbs +++ b/showcase/app/templates/components/form/checkbox.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/file-input.hbs b/showcase/app/templates/components/form/file-input.hbs index afd82ad2e6..13c525d70b 100644 --- a/showcase/app/templates/components/form/file-input.hbs +++ b/showcase/app/templates/components/form/file-input.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/masked-input.hbs b/showcase/app/templates/components/form/masked-input.hbs index 03e5898bc8..a5ee2c0c64 100644 --- a/showcase/app/templates/components/form/masked-input.hbs +++ b/showcase/app/templates/components/form/masked-input.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/radio-card.hbs b/showcase/app/templates/components/form/radio-card.hbs index 0d3fa079f4..98b8e1b102 100644 --- a/showcase/app/templates/components/form/radio-card.hbs +++ b/showcase/app/templates/components/form/radio-card.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/radio.hbs b/showcase/app/templates/components/form/radio.hbs index f752ca27e4..4286d53fd9 100644 --- a/showcase/app/templates/components/form/radio.hbs +++ b/showcase/app/templates/components/form/radio.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/select.hbs b/showcase/app/templates/components/form/select.hbs index 8766d55e6b..cf70f42376 100644 --- a/showcase/app/templates/components/form/select.hbs +++ b/showcase/app/templates/components/form/select.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/text-input.hbs b/showcase/app/templates/components/form/text-input.hbs index c0156c853f..366676fc0e 100644 --- a/showcase/app/templates/components/form/text-input.hbs +++ b/showcase/app/templates/components/form/text-input.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/textarea.hbs b/showcase/app/templates/components/form/textarea.hbs index 4a0f8428c2..5ae961144b 100644 --- a/showcase/app/templates/components/form/textarea.hbs +++ b/showcase/app/templates/components/form/textarea.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/form/toggle.hbs b/showcase/app/templates/components/form/toggle.hbs index fd8e89ed09..1b5143e733 100644 --- a/showcase/app/templates/components/form/toggle.hbs +++ b/showcase/app/templates/components/form/toggle.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/icon-tile.hbs b/showcase/app/templates/components/icon-tile.hbs index afef1df28b..2b2363648d 100644 --- a/showcase/app/templates/components/icon-tile.hbs +++ b/showcase/app/templates/components/icon-tile.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/link/inline.hbs b/showcase/app/templates/components/link/inline.hbs index 6d794ba395..bc68d2f9e3 100644 --- a/showcase/app/templates/components/link/inline.hbs +++ b/showcase/app/templates/components/link/inline.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/link/standalone.hbs b/showcase/app/templates/components/link/standalone.hbs index 45c767493e..f4bc8234bd 100644 --- a/showcase/app/templates/components/link/standalone.hbs +++ b/showcase/app/templates/components/link/standalone.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/modal.hbs b/showcase/app/templates/components/modal.hbs index b8b1258fbd..aec8dfcfa7 100644 --- a/showcase/app/templates/components/modal.hbs +++ b/showcase/app/templates/components/modal.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/page-header.hbs b/showcase/app/templates/components/page-header.hbs index 75b203fac4..dc972832b0 100644 --- a/showcase/app/templates/components/page-header.hbs +++ b/showcase/app/templates/components/page-header.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/pagination.hbs b/showcase/app/templates/components/pagination.hbs index bfd1f9cdbb..9de2b190cf 100644 --- a/showcase/app/templates/components/pagination.hbs +++ b/showcase/app/templates/components/pagination.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/reveal.hbs b/showcase/app/templates/components/reveal.hbs index d520d16420..fb6a2fec50 100644 --- a/showcase/app/templates/components/reveal.hbs +++ b/showcase/app/templates/components/reveal.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/rich-tooltip.hbs b/showcase/app/templates/components/rich-tooltip.hbs index 1def75c90f..536edd24f0 100644 --- a/showcase/app/templates/components/rich-tooltip.hbs +++ b/showcase/app/templates/components/rich-tooltip.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/segmented-group.hbs b/showcase/app/templates/components/segmented-group.hbs index 4f262fc19a..dc61e9776d 100644 --- a/showcase/app/templates/components/segmented-group.hbs +++ b/showcase/app/templates/components/segmented-group.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/separator.hbs b/showcase/app/templates/components/separator.hbs index 4547e56052..ff6c7af742 100644 --- a/showcase/app/templates/components/separator.hbs +++ b/showcase/app/templates/components/separator.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/side-nav.hbs b/showcase/app/templates/components/side-nav.hbs index 3c9d4a69d9..e57d06012e 100644 --- a/showcase/app/templates/components/side-nav.hbs +++ b/showcase/app/templates/components/side-nav.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/stepper.hbs b/showcase/app/templates/components/stepper.hbs index 7b4de495c5..4231989312 100644 --- a/showcase/app/templates/components/stepper.hbs +++ b/showcase/app/templates/components/stepper.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/table.hbs b/showcase/app/templates/components/table.hbs index 29e652bdd8..c26c45e7ef 100644 --- a/showcase/app/templates/components/table.hbs +++ b/showcase/app/templates/components/table.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/tabs.hbs b/showcase/app/templates/components/tabs.hbs index 80f1cc38b1..1a99ac8d74 100644 --- a/showcase/app/templates/components/tabs.hbs +++ b/showcase/app/templates/components/tabs.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/tag.hbs b/showcase/app/templates/components/tag.hbs index 2fdd00aaba..35fe7ba82a 100644 --- a/showcase/app/templates/components/tag.hbs +++ b/showcase/app/templates/components/tag.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/text.hbs b/showcase/app/templates/components/text.hbs index 94936281fc..a3b66f51ac 100644 --- a/showcase/app/templates/components/text.hbs +++ b/showcase/app/templates/components/text.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/toast.hbs b/showcase/app/templates/components/toast.hbs index 9d7c9df1e6..5ee5c33d5e 100644 --- a/showcase/app/templates/components/toast.hbs +++ b/showcase/app/templates/components/toast.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/components/tooltip.hbs b/showcase/app/templates/components/tooltip.hbs index 29618457d1..9b7edaf94c 100644 --- a/showcase/app/templates/components/tooltip.hbs +++ b/showcase/app/templates/components/tooltip.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/index.hbs b/showcase/app/templates/index.hbs index e940442101..95ab7d6553 100644 --- a/showcase/app/templates/index.hbs +++ b/showcase/app/templates/index.hbs @@ -1,8 +1,8 @@ -{{! @glint-nocheck: not typesafe yet }} {{! -Copyright (c) HashiCorp, Inc. -SPDX-License-Identifier: MPL-2.0 + Copyright (c) HashiCorp, Inc. + SPDX-License-Identifier: MPL-2.0 }} +
Foundations diff --git a/showcase/app/templates/utilities/interactive.hbs b/showcase/app/templates/utilities/interactive.hbs index f1b15d8000..1394183213 100644 --- a/showcase/app/templates/utilities/interactive.hbs +++ b/showcase/app/templates/utilities/interactive.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 diff --git a/showcase/app/templates/utilities/popover-primitive.hbs b/showcase/app/templates/utilities/popover-primitive.hbs index 26850af0d0..66c6cc66c9 100644 --- a/showcase/app/templates/utilities/popover-primitive.hbs +++ b/showcase/app/templates/utilities/popover-primitive.hbs @@ -1,4 +1,3 @@ -{{! @glint-nocheck: not typesafe yet }} {{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 From 0b51c099d174e53d55f4de286d1ada4afa13775a Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 21 May 2024 22:38:45 -0700 Subject: [PATCH 15/22] fix(components): add comment and ref to the `glint` patch --- ...glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch b/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch index 388ce0aa6d..e693550d42 100644 --- a/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch +++ b/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch @@ -1,8 +1,8 @@ diff --git a/-private/environment/index.js b/-private/environment/index.js -index 217583f4bae53f6f72db8d3debd0f31b3dac2b8e..aa2c1a2a665005d8c95b9e3018640fdf7e317861 100644 +index 217583f4bae53f6f72db8d3debd0f31b3dac2b8e..8caf5463cf2be2248952c2347c738b98d2b7e22b 100644 --- a/-private/environment/index.js +++ b/-private/environment/index.js -@@ -46,10 +46,6 @@ function emberLooseEnvironment(options) { +@@ -46,10 +46,8 @@ function emberLooseEnvironment(options) { // Pod component/controller/route candidates.push(templatePath.replace(REGEXES.POD_TEMPLATE, '/component.ts'), templatePath.replace(REGEXES.POD_TEMPLATE, '/controller.ts'), templatePath.replace(REGEXES.POD_TEMPLATE, '/route.ts')); } @@ -10,6 +10,8 @@ index 217583f4bae53f6f72db8d3debd0f31b3dac2b8e..aa2c1a2a665005d8c95b9e3018640fdf - // Classic component - candidates.push(colocatedTsScriptPath.replace('/templates/components/', '/components/')); - } ++ // we no longer need this as it remnant of classic components and it interferes with our route stricture in showcase up ++ // upstream PR: https://github.com/typed-ember/glint/pull/721 else if (templatePath.includes('/templates/')) { // Classic controller/route candidates.push(colocatedTsScriptPath.replace('/templates/', '/controllers/'), colocatedTsScriptPath.replace('/templates/', '/routes/')); From a992df640612ebfe5b48321e67893967dee7f4a4 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 22 May 2024 11:31:10 +0100 Subject: [PATCH 16/22] Update yarn.lock --- yarn.lock | 127 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 109 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index 69b5f38754..ef9fd1e18e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -707,7 +707,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-decorators@npm:^7.13.5, @babel/plugin-proposal-decorators@npm:^7.16.7, @babel/plugin-proposal-decorators@npm:^7.20.13, @babel/plugin-proposal-decorators@npm:^7.23.2, @babel/plugin-proposal-decorators@npm:^7.23.7": +"@babel/plugin-proposal-decorators@npm:^7.13.5, @babel/plugin-proposal-decorators@npm:^7.16.7, @babel/plugin-proposal-decorators@npm:^7.20.13, @babel/plugin-proposal-decorators@npm:^7.23.7": version: 7.23.7 resolution: "@babel/plugin-proposal-decorators@npm:7.23.7" dependencies: @@ -3549,7 +3549,7 @@ __metadata: languageName: node linkType: hard -"@glint/environment-ember-loose@npm:^1.4.0": +"@glint/environment-ember-loose@npm:1.4.0": version: 1.4.0 resolution: "@glint/environment-ember-loose@npm:1.4.0" peerDependencies: @@ -3581,6 +3581,38 @@ __metadata: languageName: node linkType: hard +"@glint/environment-ember-loose@patch:@glint/environment-ember-loose@npm%3A1.4.0#~/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch": + version: 1.4.0 + resolution: "@glint/environment-ember-loose@patch:@glint/environment-ember-loose@npm%3A1.4.0#~/.yarn/patches/@glint-environment-ember-loose-npm-1.4.0-31c2f31bcb.patch::version=1.4.0&hash=023960" + peerDependencies: + "@glimmer/component": ^1.1.2 + "@glint/template": ^1.4.0 + "@types/ember__array": ^4.0.2 + "@types/ember__component": ^4.0.10 + "@types/ember__controller": ^4.0.2 + "@types/ember__object": ^4.0.4 + "@types/ember__routing": ^4.0.11 + ember-cli-htmlbars: ^6.0.1 + ember-modifier: ^3.2.7 || ^4.0.0 + peerDependenciesMeta: + "@types/ember__array": + optional: true + "@types/ember__component": + optional: true + "@types/ember__controller": + optional: true + "@types/ember__object": + optional: true + "@types/ember__routing": + optional: true + ember-cli-htmlbars: + optional: true + ember-modifier: + optional: true + checksum: 025b200db337ee0353f70e7561a792250ccd530ace9916336faaaafa10670cb05828e613d94b6c5015276bf135148a730bf9d2e416bcd5380804f0ae22d55325 + languageName: node + linkType: hard + "@glint/template@npm:^1.4.0": version: 1.4.0 resolution: "@glint/template@npm:1.4.0" @@ -5895,7 +5927,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.14.0": +"@typescript-eslint/eslint-plugin@npm:^6.14.0, @typescript-eslint/eslint-plugin@npm:^6.21.0": version: 6.21.0 resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" dependencies: @@ -5953,7 +5985,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.14.0": +"@typescript-eslint/parser@npm:^6.14.0, @typescript-eslint/parser@npm:^6.21.0": version: 6.21.0 resolution: "@typescript-eslint/parser@npm:6.21.0" dependencies: @@ -9184,6 +9216,13 @@ __metadata: languageName: node linkType: hard +"builtin-modules@npm:^3.3.0": + version: 3.3.0 + resolution: "builtin-modules@npm:3.3.0" + checksum: 62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e + languageName: node + linkType: hard + "builtins@npm:^5.0.0": version: 5.0.1 resolution: "builtins@npm:5.0.1" @@ -9193,6 +9232,15 @@ __metadata: languageName: node linkType: hard +"builtins@npm:^5.0.1": + version: 5.1.0 + resolution: "builtins@npm:5.1.0" + dependencies: + semver: "npm:^7.0.0" + checksum: 60aa9969f69656bf6eab82cd74b23ab805f112ae46a54b912bccc1533875760f2d2ce95e0a7d13144e35ada9f0386f17ed4961908bc9434b5a5e21375b1902b2 + languageName: node + linkType: hard + "bundle-name@npm:^3.0.0": version: 3.0.0 resolution: "bundle-name@npm:3.0.0" @@ -10235,7 +10283,7 @@ __metadata: languageName: node linkType: hard -"concurrently@npm:^8.2.2": +"concurrently@npm:^8.2.1, concurrently@npm:^8.2.2": version: 8.2.2 resolution: "concurrently@npm:8.2.2" dependencies: @@ -12718,14 +12766,15 @@ __metadata: languageName: node linkType: hard -"ember-page-title@npm:^8.0.0": - version: 8.1.0 - resolution: "ember-page-title@npm:8.1.0" +"ember-page-title@npm:^8.2.3": + version: 8.2.3 + resolution: "ember-page-title@npm:8.2.3" dependencies: - "@embroider/addon-shim": "npm:^1.8.6" + "@embroider/addon-shim": "npm:^1.8.7" + "@simple-dom/document": "npm:^1.4.0" peerDependencies: ember-source: ">= 3.28.0" - checksum: d86ceaf06ae7e3787d39a6efcf326459fe8c565daf282ae630598bd8295acf937563180d72450472f3e5ced8e8d739f8cd9bd41651a1bb155c22bc9ee7a16c91 + checksum: 2cceab289fce8ff4d6424ece57d2635edf98ecda6575311e325ef4669b83a76e4e39affe4d3b1e9512f39000aa3133383656b8a740b1532ec57e23e8102849b4 languageName: node linkType: hard @@ -13701,6 +13750,27 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-n@npm:^16.1.0": + version: 16.6.2 + resolution: "eslint-plugin-n@npm:16.6.2" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + builtins: "npm:^5.0.1" + eslint-plugin-es-x: "npm:^7.5.0" + get-tsconfig: "npm:^4.7.0" + globals: "npm:^13.24.0" + ignore: "npm:^5.2.4" + is-builtin-module: "npm:^3.2.1" + is-core-module: "npm:^2.12.1" + minimatch: "npm:^3.1.2" + resolve: "npm:^1.22.2" + semver: "npm:^7.5.3" + peerDependencies: + eslint: ">=7.0.0" + checksum: e0f600d03d3a3df57e9a811648b1b534a6d67c90ea9406340ddf3763c2b87cf5ef910b390f787ca5cb27c8d8ff36aad42d70209b54e2a1cb4cc2507ca417229a + languageName: node + linkType: hard + "eslint-plugin-n@npm:^17.7.0": version: 17.7.0 resolution: "eslint-plugin-n@npm:17.7.0" @@ -15641,7 +15711,7 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0, globals@npm:^13.6.0, globals@npm:^13.9.0": +"globals@npm:^13.19.0, globals@npm:^13.24.0, globals@npm:^13.6.0, globals@npm:^13.9.0": version: 13.24.0 resolution: "globals@npm:13.24.0" dependencies: @@ -16964,6 +17034,15 @@ __metadata: languageName: node linkType: hard +"is-builtin-module@npm:^3.2.1": + version: 3.2.1 + resolution: "is-builtin-module@npm:3.2.1" + dependencies: + builtin-modules: "npm:^3.3.0" + checksum: e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88 + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -16971,7 +17050,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": +"is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -24089,8 +24168,6 @@ __metadata: resolution: "showcase@workspace:showcase" dependencies: "@babel/core": "npm:^7.24.5" - "@babel/eslint-parser": "npm:^7.22.15" - "@babel/plugin-proposal-decorators": "npm:^7.23.2" "@ember/optional-features": "npm:^2.0.0" "@ember/string": "npm:^3.1.1" "@ember/test-helpers": "npm:^3.2.0" @@ -24109,7 +24186,10 @@ __metadata: "@tsconfig/ember": "npm:^3.0.6" "@types/qunit": "npm:^2.19.10" "@types/rsvp": "npm:^4.0.9" + "@typescript-eslint/eslint-plugin": "npm:^6.21.0" + "@typescript-eslint/parser": "npm:^6.21.0" broccoli-asset-rev: "npm:^3.0.0" + concurrently: "npm:^8.2.1" ember-a11y-testing: "npm:^6.1.1" ember-auto-import: "npm:^2.6.3" ember-basic-dropdown: "npm:^8.1.0" @@ -24128,7 +24208,8 @@ __metadata: ember-concurrency: "npm:^4.0.2" ember-deep-tracked: "npm:^2.0.0" ember-load-initializers: "npm:^2.1.2" - ember-page-title: "npm:^8.0.0" + ember-modifier: "npm:^4.1.0" + ember-page-title: "npm:^8.2.3" ember-power-select: "npm:^8.2.0" ember-qunit: "npm:^8.0.1" ember-resolver: "npm:^11.0.1" @@ -24143,11 +24224,10 @@ __metadata: eslint: "npm:^8.52.0" eslint-config-prettier: "npm:^8.10.0" eslint-plugin-ember: "npm:^11.11.1" - eslint-plugin-node: "npm:^11.1.0" + eslint-plugin-n: "npm:^16.1.0" eslint-plugin-prettier: "npm:^4.2.1" eslint-plugin-qunit: "npm:^8.0.1" loader.js: "npm:^4.7.0" - npm-run-all: "npm:^4.1.5" prettier: "npm:^2.8.8" qunit: "npm:^2.20.0" qunit-dom: "npm:^3.0.0" @@ -24156,6 +24236,7 @@ __metadata: stylelint: "npm:^16.3.1" stylelint-config-rational-order: "npm:^0.1.2" stylelint-config-standard-scss: "npm:^13.1.0" + tracked-built-ins: "npm:^3.2.0" typescript: "npm:^5.4.2" webpack: "npm:^5.89.0" languageName: unknown @@ -25951,6 +26032,16 @@ __metadata: languageName: node linkType: hard +"tracked-built-ins@npm:^3.2.0": + version: 3.3.0 + resolution: "tracked-built-ins@npm:3.3.0" + dependencies: + "@embroider/addon-shim": "npm:^1.8.3" + ember-tracked-storage-polyfill: "npm:^1.0.0" + checksum: e3c9b838e95b04c4bfab705ba95b08763e783a89cd4652f6c06a6843081367aa7562a293e74c3ca1281c1b46851b412d62936d8efae33585bc20eea9387bf0bb + languageName: node + linkType: hard + "tracked-maps-and-sets@npm:^3.0.1": version: 3.0.2 resolution: "tracked-maps-and-sets@npm:3.0.2" @@ -27352,7 +27443,7 @@ __metadata: ember-math-helpers: "npm:^3.0.0" ember-meta: "npm:^2.0.0" ember-modifier: "npm:^4.1.0" - ember-page-title: "npm:^8.0.0" + ember-page-title: "npm:^8.2.3" ember-power-select: "npm:^8.2.0" ember-prism: "npm:^0.13.0" ember-qunit: "npm:^8.0.1" From f96806fedf92d5171c234a2fff197b10bf1dc868 Mon Sep 17 00:00:00 2001 From: Cristiano Rastelli Date: Wed, 22 May 2024 08:58:52 +0100 Subject: [PATCH 17/22] removed redundant entries in the template registry --- packages/components/src/template-registry.ts | 41 -------------------- 1 file changed, 41 deletions(-) diff --git a/packages/components/src/template-registry.ts b/packages/components/src/template-registry.ts index 8fe168099c..81b35bed79 100644 --- a/packages/components/src/template-registry.ts +++ b/packages/components/src/template-registry.ts @@ -51,185 +51,144 @@ export default interface HdsComponentsRegistry { // Accordion 'Hds::Accordion': typeof HdsAccordionComponent; 'hds/accordion': typeof HdsAccordionComponent; - HdsAccordion: typeof HdsAccordionComponent; 'Hds::Accordion::Item': typeof HdsAccordionItemComponent; 'hds/accordion/item': typeof HdsAccordionItemComponent; - HdsAccordionItem: typeof HdsAccordionItemComponent; 'Hds::Accordion::Item::Button': typeof HdsAccordionItemButtonComponent; 'hds/accordion/item/button': typeof HdsAccordionItemButtonComponent; - HdsAccordionItemButton: typeof HdsAccordionItemButtonComponent; // Alert 'Hds::Alert': typeof HdsAlertComponent; 'hds/alert': typeof HdsAlertComponent; - HdsAlert: typeof HdsAlertComponent; 'Hds::Alert::Description': typeof HdsAlertDescriptionComponent; 'hds/alert/description': typeof HdsAlertDescriptionComponent; - HdsAlertDescription: typeof HdsAlertDescriptionComponent; 'Hds::Alert::Title': typeof HdsAlertTitleComponent; 'hds/alert/title': typeof HdsAlertTitleComponent; - HdsAlertTitle: typeof HdsAlertTitleComponent; // AppFooter 'Hds::AppFooter': typeof HdsAppFooterComponent; 'hds/app-footer': typeof HdsAppFooterComponent; - HdsAppFooter: typeof HdsAppFooterComponent; 'Hds::AppFooter::Copyright': typeof HdsAppFooterCopyrightComponent; 'hds/app-footer/copyright': typeof HdsAppFooterCopyrightComponent; - HdsAppFooterCopyright: typeof HdsAppFooterCopyrightComponent; 'Hds::AppFooter::Item': typeof HdsAppFooterItemComponent; 'hds/app-footer/item': typeof HdsAppFooterItemComponent; - HdsAppFooterItem: typeof HdsAppFooterItemComponent; 'Hds::AppFooter::LegalLinks': typeof HdsAppFooterLegalLinksComponent; 'hds/app-footer/legal-links': typeof HdsAppFooterLegalLinksComponent; - HdsAppFooterLegalLinks: typeof HdsAppFooterLegalLinksComponent; 'Hds::AppFooter::Link': typeof HdsAppFooterLinkComponent; 'hds/app-footer/link': typeof HdsAppFooterLinkComponent; - HdsAppFooterLink: typeof HdsAppFooterLinkComponent; 'Hds::AppFooter::StatusLink': typeof HdsAppFooterStatusLinkComponent; 'hds/app-footer/status-link': typeof HdsAppFooterStatusLinkComponent; - HdsAppFooterStatusLink: typeof HdsAppFooterStatusLinkComponent; // App Frame 'Hds::AppFrame': typeof HdsAppFrameComponent; 'hds/app-frame': typeof HdsAppFrameComponent; - HdsAppFrame: typeof HdsAppFrameComponent; 'Hds::AppFrame::Footer': typeof HdsAppFrameFooterComponent; 'hds/app-frame/parts/footer': typeof HdsAppFrameFooterComponent; - HdsAppFrameFooter: typeof HdsAppFrameFooterComponent; 'Hds::AppFrame::Header': typeof HdsAppFrameHeaderComponent; 'hds/app-frame/parts/header': typeof HdsAppFrameHeaderComponent; - HdsAppFrameHeader: typeof HdsAppFrameHeaderComponent; 'Hds::AppFrame::Main': typeof HdsAppFrameMainComponent; 'hds/app-frame/parts/main': typeof HdsAppFrameMainComponent; - HdsAppFrameMain: typeof HdsAppFrameMainComponent; 'Hds::AppFrame::Modals': typeof HdsAppFrameModalsComponent; 'hds/app-frame/parts/modals': typeof HdsAppFrameModalsComponent; - HdsAppFrameModals: typeof HdsAppFrameModalsComponent; 'Hds::AppFrame::Sidebar': typeof HdsAppFrameSidebarComponent; 'hds/app-frame/parts/sidebar': typeof HdsAppFrameSidebarComponent; - HdsAppFrameSidebar: typeof HdsAppFrameSidebarComponent; // Badge 'Hds::Badge': typeof HdsBadgeComponent; 'hds/badge': typeof HdsBadgeComponent; - HdsBadge: typeof HdsBadgeComponent; // BadgeCount 'Hds::BadgeCount': typeof HdsBadgeCountComponent; 'hds/badge-count': typeof HdsBadgeCountComponent; - HdsBadgeCount: typeof HdsBadgeCountComponent; // Button 'Hds::Button': typeof HdsButtonComponent; 'hds/button': typeof HdsButtonComponent; - HdsButton: typeof HdsButtonComponent; // ButtonSet 'Hds::ButtonSet': typeof HdsButtonSetComponent; 'hds/button-set': typeof HdsButtonSetComponent; - HdsButtonSet: typeof HdsButtonSetComponent; // Card 'Hds::Card': typeof HdsCardContainerComponent; 'hds/card': typeof HdsCardContainerComponent; - HdsCard: typeof HdsCardContainerComponent; // Disclosure Primitive 'Hds::DisclosurePrimitive': typeof HdsDisclosurePrimitiveComponent; 'hds/disclosure-primitive': typeof HdsDisclosurePrimitiveComponent; - HdsDisclosurePrimitive: typeof HdsDisclosurePrimitiveComponent; // Dismiss button 'Hds::DismissButton': typeof HdsDismissButtonComponent; 'hds/dismiss-button': typeof HdsDismissButtonComponent; - HdsDismissButton: typeof HdsDismissButtonComponent; // IconTile 'Hds::IconTile': typeof HdsIconTileComponent; 'hds/icon-tile': typeof HdsIconTileComponent; - HdsIconTile: typeof HdsIconTileComponent; // Interactive 'Hds::Interactive': typeof HdsInteractiveComponent; 'hds/interactive': typeof HdsInteractiveComponent; - HdsInteractive: typeof HdsInteractiveComponent; // Link Inline 'Hds::Link::Inline': typeof HdsLinkInlineComponent; 'hds/link/inline': typeof HdsLinkInlineComponent; - HdsLinkInline: typeof HdsLinkInlineComponent; // Link Standalone 'Hds::Link::Standalone': typeof HdsLinkStandaloneComponent; 'hds/link/standalone': typeof HdsLinkStandaloneComponent; - HdsLinkStandalone: typeof HdsLinkStandaloneComponent; // Reveal 'Hds::Reveal': typeof HdsRevealComponent; 'hds/reveal': typeof HdsRevealComponent; - HdsReveal: typeof HdsRevealComponent; 'Hds::Reveal::Toggle::Button': typeof HdsRevealToggleButtonComponent; 'hds/reveal/toggle/button': typeof HdsRevealToggleButtonComponent; - HdsRevealToggleButtonComponent: typeof HdsRevealToggleButtonComponent; // Separator 'Hds::Separator': typeof HdsSeparatorComponent; 'hds/separator': typeof HdsSeparatorComponent; - HdsSeparator: typeof HdsSeparatorComponent; // Stepper 'Hds::Stepper::Step::Indicator': typeof HdsStepperStepIndicatorComponent; 'hds/stepper/step/indicator': typeof HdsStepperStepIndicatorComponent; - HdsStepperStepIndicator: typeof HdsStepperStepIndicatorComponent; 'Hds::Stepper::Task::Indicator': typeof HdsStepperTaskIndicatorComponent; 'hds/stepper/task/indicator': typeof HdsStepperTaskIndicatorComponent; - HdsStepperTaskIndicator: typeof HdsStepperTaskIndicatorComponent; // Text 'Hds::Text': typeof HdsTextComponent; 'hds/text': typeof HdsTextComponent; - HdsText: typeof HdsTextComponent; 'Hds::Text::Body': typeof HdsTextBodyComponent; 'hds/text/body': typeof HdsTextBodyComponent; - HdsTextBody: typeof HdsTextBodyComponent; 'Hds::Text::Display': typeof HdsTextDisplayComponent; 'hds/text/display': typeof HdsTextDisplayComponent; - HdsTextDisplay: typeof HdsTextDisplayComponent; 'Hds::Text::Code': typeof HdsTextCodeComponent; 'hds/text/code': typeof HdsTextCodeComponent; - HdsTextCode: typeof HdsTextCodeComponent; // Tag 'Hds::Tag': typeof HdsTagComponent; 'hds/tag': typeof HdsTagComponent; - HdsTag: typeof HdsTagComponent; // Toast 'Hds::Toast': typeof HdsToastComponent; 'hds/toast': typeof HdsToastComponent; - HdsToast: typeof HdsToastComponent; // Yield 'Hds::Yield': typeof HdsYieldComponent; 'hds/yield': typeof HdsYieldComponent; - HdsYield: typeof HdsYieldComponent; // Helpers 'hds-link-to-models': typeof HdsLinkToModelsHelper; From 877df6520feec4c2159be9bf01e210ddaf318e00 Mon Sep 17 00:00:00 2001 From: Cristiano Rastelli Date: Wed, 22 May 2024 09:04:56 +0100 Subject: [PATCH 18/22] changeset --- .changeset/lucky-stingrays-call.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/lucky-stingrays-call.md diff --git a/.changeset/lucky-stingrays-call.md b/.changeset/lucky-stingrays-call.md new file mode 100644 index 0000000000..390bf72638 --- /dev/null +++ b/.changeset/lucky-stingrays-call.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": patch +--- + +Template Registry - Removed redundant entries From aceb52396bfb0cfb18cce95150978c16f060f9be Mon Sep 17 00:00:00 2001 From: Brian Runnells <1672302+Dhaulagiri@users.noreply.github.com> Date: Fri, 17 May 2024 14:18:20 -0500 Subject: [PATCH 19/22] create event tracking service --- website/app/services/event-tracking.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 website/app/services/event-tracking.js diff --git a/website/app/services/event-tracking.js b/website/app/services/event-tracking.js new file mode 100644 index 0000000000..595287184a --- /dev/null +++ b/website/app/services/event-tracking.js @@ -0,0 +1,16 @@ +import Service from '@ember/service'; +import { inject as service } from '@ember/service'; +import { action } from '@ember/object'; + +export default class EventService extends Service { + @service fastboot; + + @action + trackEvent(eventName) { + // Only attempt to do something if we are in the right environment + if (!this.fastboot.isFastBoot && window.fathom && eventName) { + // https://usefathom.com/docs/features/events + window.fathom.trackEvent(eventName); + } + } +} From 9655d4ba5cb4ee183563134052a981a2d6ce1d60 Mon Sep 17 00:00:00 2001 From: Brian Runnells <1672302+Dhaulagiri@users.noreply.github.com> Date: Fri, 17 May 2024 14:26:25 -0500 Subject: [PATCH 20/22] wire up hero link tracking events --- .../app/components/doc/link-with-icon/index.hbs | 17 +++++++++++++++-- .../app/components/doc/link-with-icon/index.js | 3 +++ website/app/templates/index.hbs | 3 +++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/website/app/components/doc/link-with-icon/index.hbs b/website/app/components/doc/link-with-icon/index.hbs index 8668556e80..47b8d628de 100644 --- a/website/app/components/doc/link-with-icon/index.hbs +++ b/website/app/components/doc/link-with-icon/index.hbs @@ -4,13 +4,26 @@ }} {{#if @route}} - + {{@label}} {{/if}} {{#if @href}} - + {{@label}} diff --git a/website/app/components/doc/link-with-icon/index.js b/website/app/components/doc/link-with-icon/index.js index f192637b7c..2ce6724700 100644 --- a/website/app/components/doc/link-with-icon/index.js +++ b/website/app/components/doc/link-with-icon/index.js @@ -4,8 +4,11 @@ */ import Component from '@glimmer/component'; +import { inject as service } from '@ember/service'; export default class DocLinkWithIconComponent extends Component { + @service eventTracking; + get models() { // we need to use this trick to overcome the problem of `` going beserk if we pass // a `@model` argument which is undefined (while an empty `@models` array is OK) diff --git a/website/app/templates/index.hbs b/website/app/templates/index.hbs index 98164520c3..98c2a34bbc 100644 --- a/website/app/templates/index.hbs +++ b/website/app/templates/index.hbs @@ -16,18 +16,21 @@ @label="Release Notes" @icon="arrow-right" @isAnimated={{true}} + @eventName="Hero - Release Notes" />
From a27e6018538a7221a20946f9b9585b475cbcd28c Mon Sep 17 00:00:00 2001 From: Brian Runnells <1672302+Dhaulagiri@users.noreply.github.com> Date: Fri, 17 May 2024 14:32:39 -0500 Subject: [PATCH 21/22] add events to homepage cards --- website/app/templates/index.hbs | 1 + 1 file changed, 1 insertion(+) diff --git a/website/app/templates/index.hbs b/website/app/templates/index.hbs index 98c2a34bbc..7669721a16 100644 --- a/website/app/templates/index.hbs +++ b/website/app/templates/index.hbs @@ -47,6 +47,7 @@ @fillParent={{true}} @isAnimated={{true}} aria-label={{concat "Explore " card.title ": " card.description}} + @eventName={{concat "Card - " card.title}} /> {{/each}} From 98fd5c57b4b2484b6b630df24455b1f9fa4599f3 Mon Sep 17 00:00:00 2001 From: Kristin Bradley Date: Thu, 23 May 2024 08:35:31 -0700 Subject: [PATCH 22/22] `hds-clipboard` modifier: convert to TypeScript (HDS-3344) (#2120) Co-authored-by: Alex Co-authored-by: Cristiano Rastelli --- .changeset/unlucky-oranges-tickle.md | 5 + .../{hds-clipboard.js => hds-clipboard.ts} | 109 +++++++++++------- packages/components/src/template-registry.ts | 6 + 3 files changed, 77 insertions(+), 43 deletions(-) create mode 100644 .changeset/unlucky-oranges-tickle.md rename packages/components/src/modifiers/{hds-clipboard.js => hds-clipboard.ts} (63%) diff --git a/.changeset/unlucky-oranges-tickle.md b/.changeset/unlucky-oranges-tickle.md new file mode 100644 index 0000000000..c43522b006 --- /dev/null +++ b/.changeset/unlucky-oranges-tickle.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": minor +--- + +`hds-clipboard` - Converted modifier to TypeScript diff --git a/packages/components/src/modifiers/hds-clipboard.js b/packages/components/src/modifiers/hds-clipboard.ts similarity index 63% rename from packages/components/src/modifiers/hds-clipboard.js rename to packages/components/src/modifiers/hds-clipboard.ts index f2eaf0eead..7b568ed86f 100644 --- a/packages/components/src/modifiers/hds-clipboard.js +++ b/packages/components/src/modifiers/hds-clipboard.ts @@ -6,8 +6,25 @@ import { modifier } from 'ember-modifier'; import { assert, warn } from '@ember/debug'; -export const getTextToCopy = (text) => { - let textToCopy; +type TextToCopy = string | number | bigint; +type TargetToCopy = HTMLElement; + +export interface HdsClipboardModifierSignature { + Element: HTMLElement; + Args: { + Named: { + text?: TextToCopy; + target?: TargetToCopy; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onSuccess?: (...args: any[]) => void; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onError?: (...args: any[]) => void; + }; + }; +} + +export const getTextToCopy = (text: TextToCopy) => { + let textToCopy: string = ''; if (text) { if (typeof text === 'string') { @@ -27,8 +44,9 @@ export const getTextToCopy = (text) => { return textToCopy; }; -export const getTargetElement = (target) => { - let targetElement; +export const getTargetElement = (target: string | Node) => { + let targetElement: HTMLElement | null; + if (typeof target === 'string') { targetElement = document.querySelector(target); @@ -39,7 +57,7 @@ export const getTargetElement = (target) => { ); return; } - } else if (target instanceof Node && target.nodeType === Node.ELEMENT_NODE) { + } else if (target instanceof HTMLElement) { targetElement = target; } else { if (target instanceof NodeList) { @@ -55,12 +73,10 @@ export const getTargetElement = (target) => { return targetElement; }; -export const getTextToCopyFromTargetElement = (targetElement) => { - let textToCopy; - if ( - targetElement instanceof Node && - targetElement.nodeType === Node.ELEMENT_NODE - ) { +export const getTextToCopyFromTargetElement = (targetElement: TargetToCopy) => { + let textToCopy: string = ''; + + if (targetElement instanceof HTMLElement) { if ( targetElement instanceof HTMLInputElement || // targetElement.nodeName === 'INPUT' || targetElement instanceof HTMLTextAreaElement || // targetElement.nodeName === 'TEXTAREA' || @@ -84,7 +100,7 @@ export const getTextToCopyFromTargetElement = (targetElement) => { return textToCopy; }; -export const writeTextToClipboard = async (textToCopy) => { +export const writeTextToClipboard = async (textToCopy: string) => { // finally copy the text to the clipboard using the Clipboard API // https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API if (textToCopy) { @@ -108,14 +124,19 @@ export const writeTextToClipboard = async (textToCopy) => { } }; -export const copyToClipboard = async (text, target) => { - let textToCopy; +export const copyToClipboard = async ( + text?: TextToCopy, + target?: TargetToCopy +) => { + let textToCopy: string = ''; if (text) { textToCopy = getTextToCopy(text); } else if (target) { const targetElement = getTargetElement(target); - textToCopy = getTextToCopyFromTargetElement(targetElement); + if (targetElement) { + textToCopy = getTextToCopyFromTargetElement(targetElement); + } } else { assert( '`hds-clipboard` modifier - either a `text` or a `target` argument is required' @@ -129,35 +150,37 @@ export const copyToClipboard = async (text, target) => { // because it's quite simple in its logic, and doesn't require injecting services // see: https://github.com/ember-modifier/ember-modifier#function-based-modifiers -export default modifier((element, positional, named) => { - assert( - '`hds-clipboard` modifier - the modifier must be applied to an element', - element - ); - - const { text, target, onSuccess, onError } = named; - - const onClick = async (event) => { - const trigger = event.currentTarget; - const success = await copyToClipboard(text, target); +export default modifier( + (element, _positional, named) => { + assert( + '`hds-clipboard` modifier - the modifier must be applied to an element', + element + ); - // fire the `onSuccess/onError` callbacks (if provided) - if (success) { - if (typeof onSuccess === 'function') { - onSuccess({ trigger, text, target }); - } - } else { - if (typeof onError === 'function') { - onError({ trigger, text, target }); + const { text, target, onSuccess, onError } = named; + + const onClick = async (event: MouseEvent) => { + const trigger = event.currentTarget; + const success = await copyToClipboard(text, target); + + // fire the `onSuccess/onError` callbacks (if provided) + if (success) { + if (typeof onSuccess === 'function') { + onSuccess({ trigger, text, target }); + } + } else { + if (typeof onError === 'function') { + onError({ trigger, text, target }); + } } - } - }; + }; - // add the "onClick" event listener to the element - element.addEventListener('click', onClick); + // add the "onClick" event listener to the element + element.addEventListener('click', onClick); - // this (teardown) function is run when the element is removed - return () => { - element.removeEventListener('click', onClick); - }; -}); + // this (teardown) function is run when the element is removed + return () => { + element.removeEventListener('click', onClick); + }; + } +); diff --git a/packages/components/src/template-registry.ts b/packages/components/src/template-registry.ts index 81b35bed79..85fb579333 100644 --- a/packages/components/src/template-registry.ts +++ b/packages/components/src/template-registry.ts @@ -44,9 +44,12 @@ import type HdsTagComponent from './components/hds/tag'; import type HdsToastComponent from './components/hds/toast'; import type HdsTextCodeComponent from './components/hds/text/code'; import type HdsYieldComponent from './components/hds/yield'; + import type HdsLinkToModelsHelper from './helpers/hds-link-to-models'; import type HdsLinkToQueryHelper from './helpers/hds-link-to-query'; +import type HdsClipboardModifier from './modifiers/hds-clipboard.ts'; + export default interface HdsComponentsRegistry { // Accordion 'Hds::Accordion': typeof HdsAccordionComponent; @@ -193,4 +196,7 @@ export default interface HdsComponentsRegistry { // Helpers 'hds-link-to-models': typeof HdsLinkToModelsHelper; 'hds-link-to-query': typeof HdsLinkToQueryHelper; + + // Modifiers + 'hds-clipboard': typeof HdsClipboardModifier; }