From 6f50f4ea42efd4b1c1d82385ed61c2b233f96645 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Wed, 17 Sep 2025 18:04:46 -0400 Subject: [PATCH 01/22] init commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4f98f324b50..609e335cfb0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ + + From 3fc011acd1ff46f8e9857c6e8bc7ac28c369de94 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Fri, 19 Sep 2025 15:18:10 -0400 Subject: [PATCH 02/22] `HdsAdvancedTableTh` Remove `@isVisuallyHidden` argument (#3210) --- .changeset/hot-owls-rescue.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/hot-owls-rescue.md diff --git a/.changeset/hot-owls-rescue.md b/.changeset/hot-owls-rescue.md new file mode 100644 index 00000000000..582a7dff51a --- /dev/null +++ b/.changeset/hot-owls-rescue.md @@ -0,0 +1,7 @@ +--- +"@hashicorp/design-system-components": major +--- + + +`AdvancedTable` - Removed the `@isVisuallyHidden` argument from `HdsAdvancedTableTh` component. This setting is supported via setting `isVisuallyHidden` in the corresponding `@columns` item's configuration. + From d2a969f12514cc7163e08249d854386fe9037bbc Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Mon, 22 Sep 2025 10:01:05 -0400 Subject: [PATCH 03/22] Fix `service` import deprecation (#3181) --- change.diff | 302 ++++++++++++++++++++ website/app/services/head-data.js | 1 - website/docs/components/pagination/index.js | 12 +- website/docs/components/tabs/index.js | 2 +- 4 files changed, 309 insertions(+), 8 deletions(-) create mode 100644 change.diff diff --git a/change.diff b/change.diff new file mode 100644 index 00000000000..6076ae750ae --- /dev/null +++ b/change.diff @@ -0,0 +1,302 @@ +diff --git a/packages/components/addon-main.cjs b/packages/components/addon-main.cjs +index 797c851c5..da24a0b99 100644 +--- a/packages/components/addon-main.cjs ++++ b/packages/components/addon-main.cjs +@@ -4,19 +4,14 @@ + */ + + const { addonV1Shim } = require('@embroider/addon-shim'); +-const flightIconSprite = require('@hashicorp/flight-icons/svg-sprite/svg-sprite-module'); + + module.exports = { + ...addonV1Shim(__dirname), +- contentFor(type, config) { +- if ( +- !config.flightIconsSpriteLazyEmbed && +- !config.__flightIconsSpriteLoaded && +- type === 'body-footer' +- ) { +- config.__flightIconsSpriteLoaded = true; +- +- return flightIconSprite; +- } ++ options: { ++ '@embroider/macros': { ++ setOwnConfig: { ++ flightIconsSpriteLazyEmbed: true, ++ }, ++ }, + }, + }; +diff --git a/packages/components/package.json b/packages/components/package.json +index 60704a074..da4d2473e 100644 +--- a/packages/components/package.json ++++ b/packages/components/package.json +@@ -62,7 +62,6 @@ + "ember-concurrency": "^4.0.4", + "ember-element-helper": "^0.8.6", + "ember-focus-trap": "^1.1.1", +- "ember-get-config": "^2.1.1", + "ember-modifier": "^4.2.2", + "ember-power-select": "^8.7.1", + "ember-stargate": "^1.0.2", +diff --git a/packages/components/src/instance-initializers/load-sprite.ts b/packages/components/src/instance-initializers/load-sprite.ts +index a88ecd9ec..f98dd61fc 100644 +--- a/packages/components/src/instance-initializers/load-sprite.ts ++++ b/packages/components/src/instance-initializers/load-sprite.ts +@@ -3,19 +3,21 @@ + * SPDX-License-Identifier: MPL-2.0 + */ + +-import config from 'ember-get-config'; ++import { macroCondition, isTesting, getOwnConfig } from '@embroider/macros'; ++ ++interface Config { ++ flightIconsSpriteLazyEmbed: boolean; ++} + + export async function initialize() { +- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access +- if (config?.flightIconsSpriteLazyEmbed) { ++ if (macroCondition(getOwnConfig().flightIconsSpriteLazyEmbed)) { + const { default: svgSprite } = await import( + '@hashicorp/flight-icons/svg-sprite/svg-sprite-module' + ); + + // in test environments we can inject the sprite directly into the ember testing container + // to avoid issues with tools like Percy that only consider content inside that element +- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access +- if (config.environment === 'test') { ++ if (macroCondition(isTesting())) { + const container = window.document?.getElementById('ember-testing'); + + if (container && !container.querySelector('.flight-sprite-container')) { +diff --git a/packages/components/src/modifiers/hds-code-editor.ts b/packages/components/src/modifiers/hds-code-editor.ts +index 39f7d60ae..f0c74de7a 100644 +--- a/packages/components/src/modifiers/hds-code-editor.ts ++++ b/packages/components/src/modifiers/hds-code-editor.ts +@@ -7,7 +7,7 @@ import Modifier from 'ember-modifier'; + import { assert, warn } from '@ember/debug'; + import { registerDestructor } from '@ember/destroyable'; + import { task } from 'ember-concurrency'; +-import config from 'ember-get-config'; ++import { macroCondition, isTesting } from '@embroider/macros'; + import { Compartment } from '@codemirror/state'; + import { EditorView } from '@codemirror/view'; + import { guidFor } from '@ember/object/internals'; +@@ -208,8 +208,7 @@ export default class HdsCodeEditorModifier extends Modifier= 18'} + peerDependencies: + '@ember/string': ^3.1.1 || ^4.0.0 ++ ember-basic-dropdown: ^7.3.0 || ^8.6.1 + ember-engines: '>= 0.11.0' + ember-intl: ^7.3.0 + peerDependenciesMeta: +@@ -6425,10 +6417,6 @@ packages: + resolution: {integrity: sha512-gWG1k8+hio1rndJXxzIYhayL7ITof3ebkZ7HwFzFDaz3NARb8MjcVloKj1PFCheu8ZbY8iP8QTRPqb+J+N+Izg==} + engines: {node: '>= 18'} + +- ember-unique-id-helper-polyfill@1.2.2: +- resolution: {integrity: sha512-gjcwTBkCDUA0iYFS7aArfJub+eos/itxEsC399JUbdKNIBJLesB/1OHnmxLLwExZHp7gyHuiDFOPcknafhFm3g==} +- engines: {node: 12.* || 14.* || >= 16} +- + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} +@@ -9840,7 +9828,6 @@ packages: + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + deprecated: |- + You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. +- + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) + + qs@6.13.0: +@@ -14158,10 +14145,10 @@ snapshots: + codemirror-lang-hcl: 0.0.0-beta.2 + decorator-transforms: 2.3.0(@babel/core@7.28.0) + ember-a11y-refocus: 5.1.0(@babel/core@7.28.0)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ++ ember-basic-dropdown: 8.6.2(@babel/core@7.28.0)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-concurrency: 4.0.4(@babel/core@7.28.0)(@glint/template@1.5.2) + ember-element-helper: 0.8.8 + ember-focus-trap: 1.1.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) +- ember-get-config: 2.1.1(@glint/template@1.5.2) + ember-modifier: 4.2.2(@babel/core@7.28.0) + ember-power-select: 8.7.3(@babel/core@7.28.0)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-basic-dropdown@8.6.2(@babel/core@7.28.0)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(ember-concurrency@4.0.4(@babel/core@7.28.0)(@glint/template@1.5.2))(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-stargate: 1.0.2(@babel/core@7.28.0)(@glimmer/component@2.0.0)(@glint/template@1.5.2) +@@ -14180,7 +14167,6 @@ snapshots: + - '@glimmer/component' + - '@glint/environment-ember-loose' + - '@glint/template' +- - ember-basic-dropdown + - ember-source + - supports-color + +@@ -14213,10 +14199,10 @@ snapshots: + codemirror-lang-hcl: 0.0.0-beta.2 + decorator-transforms: 2.3.0(@babel/core@7.28.0) + ember-a11y-refocus: 5.1.0(@babel/core@7.28.0)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ++ ember-basic-dropdown: 8.6.2(@babel/core@7.28.0)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-concurrency: 4.0.4(@babel/core@7.28.0)(@glint/template@1.5.2) + ember-element-helper: 0.8.8 + ember-focus-trap: 1.1.1(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) +- ember-get-config: 2.1.1(@glint/template@1.5.2) + ember-modifier: 4.2.2(@babel/core@7.28.0) + ember-power-select: 8.7.3(@babel/core@7.28.0)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-basic-dropdown@8.6.2(@babel/core@7.28.0)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(ember-concurrency@4.0.4(@babel/core@7.28.0)(@glint/template@1.5.2))(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + ember-stargate: 1.0.2(@babel/core@7.28.0)(@glimmer/component@2.0.0)(@glint/template@1.5.2) +@@ -14235,7 +14221,6 @@ snapshots: + - '@glimmer/component' + - '@glint/environment-ember-loose' + - '@glint/template' +- - ember-basic-dropdown + - ember-source + - supports-color + +@@ -19832,14 +19817,6 @@ snapshots: + - encoding + - supports-color + +- ember-unique-id-helper-polyfill@1.2.2: +- dependencies: +- broccoli-funnel: 3.0.8 +- ember-cli-babel: 7.26.11 +- ember-cli-version-checker: 5.1.2 +- transitivePeerDependencies: +- - supports-color +- + emittery@0.13.1: {} + + emoji-regex@10.4.0: {} +diff --git a/showcase/ember-cli-build.js b/showcase/ember-cli-build.js +index 72fd59252..5e70ce95e 100644 +--- a/showcase/ember-cli-build.js ++++ b/showcase/ember-cli-build.js +@@ -9,6 +9,14 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + + module.exports = function (defaults) { + const app = new EmberApp(defaults, { ++ '@embroider/macros': { ++ setConfig: { ++ '@hashicorp/design-system-components': { ++ flightIconsSpriteLazyEmbed: true, ++ }, ++ }, ++ }, ++ + 'ember-cli-babel': { + enableTypeScriptTransform: true, + }, +diff --git a/showcase/package.json b/showcase/package.json +index 9f0cf932a..5ec97a5c4 100644 +--- a/showcase/package.json ++++ b/showcase/package.json +@@ -101,7 +101,6 @@ + "ember-template-lint": "^7.7.0", + "ember-truth-helpers": "^4.0.3", + "ember-try": "^4.0.0", +- "ember-unique-id-helper-polyfill": "^1.2.2", + "eslint": "^9.27.0", + "eslint-config-prettier": "^10.1.5", + "eslint-plugin-ember": "^12.5.0", +diff --git a/website/app/routes/application.js b/website/app/routes/application.js +index 024690b0d..342c9f60f 100644 +--- a/website/app/routes/application.js ++++ b/website/app/routes/application.js +@@ -1,6 +1,7 @@ + import Route from '@ember/routing/route'; + import fetch from 'fetch'; +-import config from 'ember-get-config'; ++ ++import config from '../config/environment'; + + export default class ApplicationRoute extends Route { + model() { +diff --git a/website/app/routes/show.js b/website/app/routes/show.js +index b5f5155e4..df8c2e036 100644 +--- a/website/app/routes/show.js ++++ b/website/app/routes/show.js +@@ -6,11 +6,12 @@ import { + isUnauthorizedResponse, + isNotFoundResponse, + } from 'ember-fetch/errors'; +-import config from 'ember-get-config'; + import { service } from '@ember/service'; + import { action } from '@ember/object'; + import { reject } from 'rsvp'; + ++import config from '../config/environment'; ++ + export default class ShowRoute extends Route { + @service router; + queryParams = { +diff --git a/website/app/services/head-data.js b/website/app/services/head-data.js +index c885741b6..3c2020f99 100644 +--- a/website/app/services/head-data.js ++++ b/website/app/services/head-data.js +@@ -4,9 +4,10 @@ + */ + + import HeadDataService from 'ember-meta/services/head-data'; +-import config from 'ember-get-config'; + import { service } from '@ember/service'; + ++import config from '../config/environment'; ++ + export default class CustomHeadDataService extends HeadDataService { + @service router; + +diff --git a/website/package.json b/website/package.json +index c2b6cca59..901654ac9 100644 +--- a/website/package.json ++++ b/website/package.json +@@ -90,7 +90,6 @@ + "ember-cli-terser": "^4.0.2", + "ember-concurrency": "^4.0.4", + "ember-fetch": "^8.1.2", +- "ember-get-config": "^2.1.1", + "ember-load-initializers": "^3.0.1", + "ember-math-helpers": "^4.2.1", + "ember-meta": "^2.0.0", diff --git a/website/app/services/head-data.js b/website/app/services/head-data.js index 9511232e20c..855a39a855f 100644 --- a/website/app/services/head-data.js +++ b/website/app/services/head-data.js @@ -5,7 +5,6 @@ import HeadDataService from 'ember-meta/services/head-data'; import { service } from '@ember/service'; - import config from 'website/config/environment'; export default class CustomHeadDataService extends HeadDataService { diff --git a/website/docs/components/pagination/index.js b/website/docs/components/pagination/index.js index 843074d4de6..b87714c7830 100644 --- a/website/docs/components/pagination/index.js +++ b/website/docs/components/pagination/index.js @@ -14,7 +14,7 @@ const getCursorParts = (cursor, records) => { const direction = tokenParts[0]; const cursorID = parseInt(tokenParts[1]); const cursorIndex = records.findIndex( - (element) => element.id === parseInt(cursorID) + (element) => element.id === parseInt(cursorID), ); return { direction, cursorID, cursorIndex }; }; @@ -63,13 +63,13 @@ export default class Index extends Component { get demoCurrentPage() { return parseInt( - this.router?.currentRoute?.queryParams?.demoCurrentPage ?? 1 + this.router?.currentRoute?.queryParams?.demoCurrentPage ?? 1, ); } get demoCurrentPageSize() { return parseInt( - this.router?.currentRoute?.queryParams?.demoCurrentPageSize ?? 5 + this.router?.currentRoute?.queryParams?.demoCurrentPageSize ?? 5, ); } @@ -372,7 +372,7 @@ export default class Index extends Component { let { newPrevCursor, newNextCursor } = getNewPrevNextCursors( this.demoCurrentCursor, this.demoCurrentPageSize, - this.model.records + this.model.records, ); return { newPrevCursor, @@ -413,7 +413,7 @@ export default class Index extends Component { get demoPaginatedDataCompact() { const { direction, cursorIndex } = getCursorParts( this.demoCurrentCursor, - this.model.records + this.model.records, ); let start; @@ -440,7 +440,7 @@ export default class Index extends Component { console.log( pageSize !== undefined ? `Page changed to "${page}" with page size equal to "${pageSize}"!` - : `Page changed to "${page}"!` + : `Page changed to "${page}"!`, ); } diff --git a/website/docs/components/tabs/index.js b/website/docs/components/tabs/index.js index dfa35888d6a..39243ff0b7e 100644 --- a/website/docs/components/tabs/index.js +++ b/website/docs/components/tabs/index.js @@ -19,7 +19,7 @@ export default class Index extends Component { get demoSelectedTab() { return parseInt( - this.router?.currentRoute?.queryParams?.demoSelectedTab ?? 0 + this.router?.currentRoute?.queryParams?.demoSelectedTab ?? 0, ); } From 6631806008633ecebcc10d94c2c0bdfcbdca98f4 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Wed, 24 Sep 2025 14:27:47 -0400 Subject: [PATCH 04/22] Remove deprecated `HdsMenuPrimitive` component (#3224) --- .changeset/legal-swans-occur.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/legal-swans-occur.md diff --git a/.changeset/legal-swans-occur.md b/.changeset/legal-swans-occur.md new file mode 100644 index 00000000000..6b641130ada --- /dev/null +++ b/.changeset/legal-swans-occur.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": major +--- + +Removed the deprecated `MenuPrimitive` component From 4b5d78240b071afc3cbc3c0271ad2d0c6fcaa6cd Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Tue, 30 Sep 2025 21:38:25 -0400 Subject: [PATCH 05/22] Remove unneeded sass-related dependencies (#3206) --- .changeset/full-showers-kiss.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/full-showers-kiss.md diff --git a/.changeset/full-showers-kiss.md b/.changeset/full-showers-kiss.md new file mode 100644 index 00000000000..d5426a68e97 --- /dev/null +++ b/.changeset/full-showers-kiss.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": major +--- + +- Removed `sass` and `ember-cli-sass` dependencies. Consumers using `sass` in their projects should make sure it's added as a direct dependency to their project. From 52d5dfa5b464070a9806475b1685cda042739d9a Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Tue, 30 Sep 2025 21:52:06 -0400 Subject: [PATCH 06/22] `HdsDropdownListItemInteractive` - Remove deprecated `@text` argument (#3212) --- .changeset/cold-worlds-notice.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .changeset/cold-worlds-notice.md diff --git a/.changeset/cold-worlds-notice.md b/.changeset/cold-worlds-notice.md new file mode 100644 index 00000000000..26319a386e3 --- /dev/null +++ b/.changeset/cold-worlds-notice.md @@ -0,0 +1,11 @@ +--- +"@hashicorp/design-system-components": major +--- + + + +`Dropdown` - Removed the deprecated `@text` argument from the `HdsDropdownListItemInteractive` component. + +To migrate run the codemod `v4/dropdown-list-item-interactive` (see [readme file](https://github.com/hashicorp/design-system/tree/main/packages/codemods/transforms/v4/dropdown-list-item-interactive)) + + From 7a9d9c66d5bbad7ab51bd207861ddf87197e4a6b Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Tue, 30 Sep 2025 22:13:10 -0400 Subject: [PATCH 07/22] `HdsSideNav` deprecations (#3230) --- .changeset/spicy-ads-roll.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .changeset/spicy-ads-roll.md diff --git a/.changeset/spicy-ads-roll.md b/.changeset/spicy-ads-roll.md new file mode 100644 index 00000000000..b0af1b042a1 --- /dev/null +++ b/.changeset/spicy-ads-roll.md @@ -0,0 +1,10 @@ +--- +"@hashicorp/design-system-components": major +--- + + +`SideNav` - Removed deprecated features +- Removed the `@ariaLabel` argument +- Removed the `HdsSideNavHeaderIconButton` component +- Updated the deprecation removal version from `5.0.0` to `6.0.0` + From 5f40d016aa00e2bd340e79479806c9a387261b43 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Wed, 1 Oct 2025 08:49:01 -0400 Subject: [PATCH 08/22] Update `ember-try` matrix (#3202) --- .changeset/fluffy-places-ask.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fluffy-places-ask.md diff --git a/.changeset/fluffy-places-ask.md b/.changeset/fluffy-places-ask.md new file mode 100644 index 00000000000..b11a17ba1c9 --- /dev/null +++ b/.changeset/fluffy-places-ask.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": major +--- + +Removed support for Ember 3.28. New minimum support target is Ember 4.12. From 101dbcaedc637f11eb4e3dec05f74b3dba246619 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Wed, 1 Oct 2025 19:08:34 -0400 Subject: [PATCH 09/22] Deprecate `HdsModal` and `HdsFlyout` yielded subcomponents (#3222) --- .changeset/bitter-baboons-tease.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .changeset/bitter-baboons-tease.md diff --git a/.changeset/bitter-baboons-tease.md b/.changeset/bitter-baboons-tease.md new file mode 100644 index 00000000000..fe7f31e6d73 --- /dev/null +++ b/.changeset/bitter-baboons-tease.md @@ -0,0 +1,11 @@ +--- +"@hashicorp/design-system-components": major +--- + + +`Flyout` - Removed deprecated `HdsFlyoutHeader`, `HdsFlyoutBody`, `HdsFlyoutDescription`, and `HdsFlyoutFooter` subcomponents. + + + +`Modal` - Removed deprecated `HdsModalHeader`, `HdsModalBody`, and `HdsModalFooter` subcomponents. + From c5ac019de6796b7203b35b5ce740dd4eaa6c1fa5 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Fri, 3 Oct 2025 16:10:39 -0400 Subject: [PATCH 10/22] Remove deprecated `ember-flight-icon` `lazyEmbed` flag (#3272) --- .changeset/young-meals-knock.md | 5 +++++ packages/components/addon-main.cjs | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .changeset/young-meals-knock.md diff --git a/.changeset/young-meals-knock.md b/.changeset/young-meals-knock.md new file mode 100644 index 00000000000..b46136cbbb0 --- /dev/null +++ b/.changeset/young-meals-knock.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": major +--- + +Removed support for deprecated `ember-flight-icons` `lazyEmbed` config diff --git a/packages/components/addon-main.cjs b/packages/components/addon-main.cjs index 9ac61cf88ca..797c851c5f9 100644 --- a/packages/components/addon-main.cjs +++ b/packages/components/addon-main.cjs @@ -8,7 +8,6 @@ const flightIconSprite = require('@hashicorp/flight-icons/svg-sprite/svg-sprite- module.exports = { ...addonV1Shim(__dirname), - contentFor(type, config) { if ( !config.flightIconsSpriteLazyEmbed && From 695e630985b1812a35004646a2682a4a4ae4cef2 Mon Sep 17 00:00:00 2001 From: Helios HashiBot <105800889+hashibot-hds@users.noreply.github.com> Date: Fri, 3 Oct 2025 14:45:08 -0700 Subject: [PATCH 11/22] Updated export of icons from Figma (#3269) Co-authored-by: jorytindall <2200899+jorytindall@users.noreply.github.com> Co-authored-by: Jory Tindall --- .changeset/solid-dolls-strive.md | 5 +++++ packages/flight-icons/svg/index.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/solid-dolls-strive.md diff --git a/.changeset/solid-dolls-strive.md b/.changeset/solid-dolls-strive.md new file mode 100644 index 00000000000..b6eee38f128 --- /dev/null +++ b/.changeset/solid-dolls-strive.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/flight-icons": major +--- + +Renamed `volume-2` to `volume-up`. diff --git a/packages/flight-icons/svg/index.js b/packages/flight-icons/svg/index.js index a77bb56e17d..791e21078f0 100644 --- a/packages/flight-icons/svg/index.js +++ b/packages/flight-icons/svg/index.js @@ -3,4 +3,4 @@ * SPDX-License-Identifier: MPL-2.0 */ -export const iconNames = [ 'loading', 'loading-static', 'running', 'running-static', 'apple', 'apple-color', 'alibaba', 'alibaba-color', 'amazon-ecs', 'amazon-ecs-color', 'amazon-eks', 'amazon-eks-color', 'auth0', 'auth0-color', 'aws', 'aws-color', 'aws-cdk', 'aws-cdk-color', 'aws-cloudwatch', 'aws-cloudwatch-color', 'aws-ec2', 'aws-ec2-color', 'aws-lambda', 'aws-lambda-color', 'aws-s3', 'aws-s3-color', 'azure', 'azure-color', 'azure-aks', 'azure-aks-color', 'azure-blob-storage', 'azure-blob-storage-color', 'azure-devops', 'azure-devops-color', 'azure-vms', 'azure-vms-color', 'bitbucket', 'bitbucket-color', 'bridgecrew', 'bridgecrew-color', 'cisco', 'cisco-color', 'codepen', 'codepen-color', 'confluence', 'confluence-color', 'confluent', 'confluent-color', 'datadog', 'datadog-color', 'digital-ocean', 'digital-ocean-color', 'docker', 'docker-color', 'duo', 'duo-color', 'elastic-observability', 'elastic-observability-color', 'f5', 'f5-color', 'facebook', 'facebook-color', 'figma', 'figma-color', 'gcp', 'gcp-color', 'git', 'git-color', 'gitlab', 'gitlab-color', 'github', 'github-color', 'google', 'google-color', 'google-docs', 'google-docs-color', 'google-drive', 'google-drive-color', 'google-forms', 'google-forms-color', 'google-sheets', 'google-sheets-color', 'google-slides', 'google-slides-color', 'grafana', 'grafana-color', 'helm', 'helm-color', 'infracost', 'infracost-color', 'jenkins', 'jenkins-color', 'jfrog', 'jfrog-color', 'jira', 'jira-color', 'jwt', 'jwt-color', 'kubernetes', 'kubernetes-color', 'lightlytics', 'lightlytics-color', 'linkedin', 'linkedin-color', 'linode', 'linode-color', 'linux', 'linux-color', 'loom', 'loom-color', 'meetup', 'meetup-color', 'microsoft', 'microsoft-color', 'microsoft-teams', 'microsoft-teams-color', 'minio', 'minio-color', 'mongodb', 'mongodb-color', 'new-relic', 'new-relic-color', 'okta', 'okta-color', 'oracle', 'oracle-color', 'opa', 'opa-color', 'openid', 'openid-color', 'openstack', 'openstack-color', 'pack', 'pack-color', 'pager-duty', 'pager-duty-color', 'ping-identity ', 'ping-identity-color', 'postgres', 'postgres-color', 'rabbitmq', 'rabbitmq-color', 'saml', 'saml-color', 'service-now', 'service-now-color', 'slack', 'slack-color', 'snyk', 'snyk-color', 'splunk', 'splunk-color', 'twilio', 'twilio-color', 'twitch', 'twitch-color', 'twitter', 'twitter-color', 'twitter-x', 'twitter-x-color', 'vantage', 'vantage-color', 'venafi', 'venafi-color', 'vercel', 'vercel-color', 'vmware', 'vmware-color', 'youtube', 'youtube-color', 'boundary', 'boundary-color', 'boundary-fill', 'boundary-fill-color', 'boundary-square', 'boundary-square-color', 'consul', 'consul-color', 'consul-fill', 'consul-fill-color', 'consul-square', 'consul-square-color', 'nomad', 'nomad-color', 'nomad-fill', 'nomad-fill-color', 'nomad-square', 'nomad-square-color', 'packer', 'packer-color', 'packer-fill', 'packer-fill-color', 'packer-square', 'packer-square-color', 'terraform', 'terraform-color', 'terraform-fill', 'terraform-fill-color', 'terraform-square', 'terraform-square-color', 'vagrant', 'vagrant-color', 'vagrant-fill', 'vagrant-fill-color', 'vagrant-square', 'vagrant-square-color', 'vault', 'vault-color', 'vault-fill', 'vault-fill-color', 'vault-square', 'vault-square-color', 'vault-radar', 'vault-radar-color', 'vault-radar-fill', 'vault-radar-fill-color', 'vault-radar-square', 'vault-radar-square-color', 'vault-secrets', 'vault-secrets-color', 'vault-secrets-fill', 'vault-secrets-fill-color', 'vault-secrets-square', 'vault-secrets-square-color', 'waypoint', 'waypoint-color', 'waypoint-fill', 'waypoint-fill-color', 'waypoint-square', 'waypoint-square-color', 'hashicorp', 'hashicorp-color', 'hashicorp-fill', 'hashicorp-fill-color', 'hashicorp-square', 'hashicorp-square-color', 'hcp', 'hcp-color', 'hcp-fill', 'hcp-fill-color', 'hcp-square', 'hcp-square-color', 'accessibility', 'folder-users', 'frown', 'identity-service', 'identity-user', 'meh', 'robot', 'smile', 'user', 'user-check', 'user-circle', 'user-circle-fill', 'user-minus', 'user-plus', 'user-x', 'users', 'ampersand', 'beaker', 'bucket', 'bulb', 'circle', 'circle-dot', 'circle-fill', 'circle-half', 'diamond', 'diamond-fill', 'disc', 'dot', 'dot-half', 'droplet', 'flag', 'gift', 'government', 'handshake', 'hash', 'hexagon', 'hexagon-fill', 'labyrinth', 'layers', 'moon', 'octagon', 'outline', 'random', 'rocket', 'sparkle', 'square', 'square-fill', 'sun', 'triangle', 'triangle-fill', 'truck', 'wand', 'zap', 'zap-off', 'docs', 'docs-download', 'docs-link', 'guide', 'guide-link', 'help', 'info', 'info-fill', 'learn', 'learn-link', 'support', 'alert-circle', 'alert-circle-fill', 'alert-diamond', 'alert-diamond-fill', 'alert-octagon', 'alert-octagon-fill', 'alert-triangle', 'alert-triangle-fill', 'check', 'check-circle', 'check-circle-fill', 'check-diamond', 'check-diamond-fill', 'check-hexagon', 'check-hexagon-fill', 'check-square', 'check-square-fill', 'skip', 'x', 'x-circle', 'x-circle-fill', 'x-diamond', 'x-diamond-fill', 'x-hexagon', 'x-hexagon-fill', 'x-square', 'x-square-fill', 'bug', 'certificate', 'eye', 'eye-off', 'fingerprint', 'key', 'keychain', 'lock', 'lock-fill', 'lock-off', 'shield', 'shield-alert', 'shield-check', 'shield-off', 'shield-x', 'token', 'unlock', 'verified', 'wall', 'minus', 'minus-circle', 'minus-circle-fill', 'minus-plus', 'minus-plus-circle', 'minus-plus-square', 'minus-square', 'minus-square-fill', 'plus', 'plus-circle', 'plus-circle-fill', 'plus-square', 'camera', 'camera-off', 'cast', 'closed-caption', 'fast-forward', 'film', 'headphones', 'image', 'music', 'pause', 'pause-circle', 'play', 'play-circle', 'radio', 'rewind', 'rss', 'skip-back', 'skip-forward', 'speaker', 'stop-circle', 'volume', 'volume-down', 'volume-up', 'volume-x', 'wifi', 'wifi-off', 'compass', 'crosshair', 'map', 'map-pin', 'navigation', 'navigation-alt', 'redirect', 'target', 'align-center', 'align-justify', 'align-left', 'align-right', 'battery', 'battery-charging', 'bookmark', 'bookmark-add', 'bookmark-add-fill', 'bookmark-fill', 'bookmark-remove', 'bookmark-remove-fill', 'bottom', 'top', 'start', 'end', 'command', 'crop', 'dashboard', 'delete', 'download', 'edit', 'entry-point', 'exit-point', 'external-link', 'filter', 'filter-circle', 'filter-fill', 'grid', 'grid-alt', 'home', 'jump-link', 'layout', 'link', 'list', 'maximize', 'maximize-alt', 'menu', 'minimize', 'minimize-alt', 'more-horizontal', 'more-vertical', 'mouse-pointer', 'move-horizontal', 'paperclip', 'pen-tool', 'pencil-tool', 'pin', 'pin-off', 'power', 'printer', 'reload', 'repeat', 'resize-column', 'rotate-cw', 'rotate-ccw', 'search', 'share', 'sidebar', 'sidebar-hide', 'sidebar-show', 'sign-in', 'sign-out', 'slash', 'slash-square', 'sort-asc', 'sort-desc', 'switcher', 'sync', 'sync-alert', 'sync-reverse', 'tag', 'toggle-left', 'toggle-right', 'trash', 'type', 'text-wrap', 'unfold-close', 'unfold-open', 'upload', 'zoom-in', 'zoom-out', 'archive', 'clipboard', 'clipboard-checked', 'clipboard-copy', 'clipboard-x', 'file', 'file-change', 'file-check', 'file-diff', 'file-minus', 'file-plus', 'file-source', 'file-text', 'file-x', 'files', 'folder', 'folder-fill', 'folder-minus', 'folder-minus-fill', 'folder-plus', 'folder-plus-fill', 'folder-star', 'inbox', 'api', 'auto-apply', 'build', 'change', 'change-circle', 'change-square', 'channel', 'cloud', 'cloud-check', 'cloud-download', 'cloud-lightning', 'cloud-lock', 'cloud-off', 'cloud-upload', 'cloud-x', 'code', 'connection', 'connection-gateway', 'cpu', 'duplicate', 'gateway', 'git-branch', 'git-commit', 'git-merge', 'git-pull-request', 'git-repo', 'hammer', 'key-values', 'mainframe', 'mesh', 'module', 'monitor', 'network', 'network-alt', 'node', 'path', 'pipeline', 'plug', 'replication-direct', 'replication-perf', 'scissors', 'server', 'server-cluster', 'serverless', 'service', 'settings', 'sliders', 'smartphone', 'socket', 'step', 'tablet', 'terminal', 'terminal-screen', 'test', 'tools', 'transform-data', 'tv', 'webhook', 'wrench', 'calendar', 'clock', 'clock-filled', 'delay', 'event', 'history', 'hourglass', 'watch', 'bar-chart', 'bar-chart-alt', 'box', 'collections', 'database', 'hard-drive', 'line-chart', 'line-chart-up', 'logs', 'package', 'pie-chart', 'queue', 'save', 'trend-down', 'trend-up', 'activity', 'at-sign', 'award', 'bell', 'bell-active', 'bell-active-fill', 'bell-off', 'discussion-circle', 'discussion-square', 'heart', 'heart-fill', 'heart-off', 'mail', 'mail-open', 'message-circle', 'message-circle-fill', 'message-square', 'message-square-fill', 'mic', 'mic-off', 'newspaper', 'phone', 'phone-call', 'phone-off', 'send', 'star', 'star-circle', 'star-fill', 'star-off', 'thumbs-down', 'thumbs-up', 'video', 'video-off', 'bank-vault', 'briefcase', 'credit-card', 'dollar-sign', 'enterprise', 'globe', 'globe-private', 'org', 'provider', 'shopping-bag', 'shopping-cart', 'arrow-down', 'arrow-down-circle', 'arrow-down-left', 'arrow-down-right', 'arrow-left', 'arrow-left-circle', 'arrow-right', 'arrow-right-circle', 'arrow-up', 'arrow-up-circle', 'arrow-up-left', 'arrow-up-right', 'caret', 'chevron-down', 'chevron-left', 'chevron-right', 'chevron-up', 'chevrons-down', 'chevrons-left', 'chevrons-right', 'chevrons-up', 'corner-down-left', 'corner-down-right', 'corner-left-down', 'corner-left-up', 'corner-right-down', 'corner-right-up', 'corner-up-left', 'corner-up-right', 'load-balancer', 'migrate', 'move', 'shuffle', 'swap-horizontal', 'swap-vertical' ]; \ No newline at end of file +export const iconNames = [ 'loading', 'loading-static', 'running', 'running-static', 'apple', 'apple-color', 'alibaba', 'alibaba-color', 'amazon-ecs', 'amazon-ecs-color', 'amazon-eks', 'amazon-eks-color', 'auth0', 'auth0-color', 'aws', 'aws-color', 'aws-cdk', 'aws-cdk-color', 'aws-cloudwatch', 'aws-cloudwatch-color', 'aws-ec2', 'aws-ec2-color', 'aws-lambda', 'aws-lambda-color', 'aws-s3', 'aws-s3-color', 'azure', 'azure-color', 'azure-aks', 'azure-aks-color', 'azure-blob-storage', 'azure-blob-storage-color', 'azure-devops', 'azure-devops-color', 'azure-vms', 'azure-vms-color', 'bitbucket', 'bitbucket-color', 'bridgecrew', 'bridgecrew-color', 'cisco', 'cisco-color', 'codepen', 'codepen-color', 'confluence', 'confluence-color', 'confluent', 'confluent-color', 'datadog', 'datadog-color', 'digital-ocean', 'digital-ocean-color', 'docker', 'docker-color', 'duo', 'duo-color', 'elastic-observability', 'elastic-observability-color', 'f5', 'f5-color', 'facebook', 'facebook-color', 'figma', 'figma-color', 'gcp', 'gcp-color', 'git', 'git-color', 'gitlab', 'gitlab-color', 'github', 'github-color', 'google', 'google-color', 'google-docs', 'google-docs-color', 'google-drive', 'google-drive-color', 'google-forms', 'google-forms-color', 'google-sheets', 'google-sheets-color', 'google-slides', 'google-slides-color', 'grafana', 'grafana-color', 'helm', 'helm-color', 'infracost', 'infracost-color', 'jenkins', 'jenkins-color', 'jfrog', 'jfrog-color', 'jira', 'jira-color', 'jwt', 'jwt-color', 'kubernetes', 'kubernetes-color', 'lightlytics', 'lightlytics-color', 'linkedin', 'linkedin-color', 'linode', 'linode-color', 'linux', 'linux-color', 'loom', 'loom-color', 'meetup', 'meetup-color', 'microsoft', 'microsoft-color', 'microsoft-teams', 'microsoft-teams-color', 'minio', 'minio-color', 'mongodb', 'mongodb-color', 'new-relic', 'new-relic-color', 'okta', 'okta-color', 'oracle', 'oracle-color', 'opa', 'opa-color', 'openid', 'openid-color', 'openstack', 'openstack-color', 'pack', 'pack-color', 'pager-duty', 'pager-duty-color', 'ping-identity ', 'ping-identity-color', 'postgres', 'postgres-color', 'rabbitmq', 'rabbitmq-color', 'saml', 'saml-color', 'service-now', 'service-now-color', 'slack', 'slack-color', 'snyk', 'snyk-color', 'splunk', 'splunk-color', 'twilio', 'twilio-color', 'twitch', 'twitch-color', 'twitter', 'twitter-color', 'twitter-x', 'twitter-x-color', 'vantage', 'vantage-color', 'venafi', 'venafi-color', 'vercel', 'vercel-color', 'vmware', 'vmware-color', 'youtube', 'youtube-color', 'boundary', 'boundary-color', 'boundary-fill', 'boundary-fill-color', 'boundary-square', 'boundary-square-color', 'consul', 'consul-color', 'consul-fill', 'consul-fill-color', 'consul-square', 'consul-square-color', 'nomad', 'nomad-color', 'nomad-fill', 'nomad-fill-color', 'nomad-square', 'nomad-square-color', 'packer', 'packer-color', 'packer-fill', 'packer-fill-color', 'packer-square', 'packer-square-color', 'terraform', 'terraform-color', 'terraform-fill', 'terraform-fill-color', 'terraform-square', 'terraform-square-color', 'vagrant', 'vagrant-color', 'vagrant-fill', 'vagrant-fill-color', 'vagrant-square', 'vagrant-square-color', 'vault', 'vault-color', 'vault-fill', 'vault-fill-color', 'vault-square', 'vault-square-color', 'vault-radar', 'vault-radar-color', 'vault-radar-fill', 'vault-radar-fill-color', 'vault-radar-square', 'vault-radar-square-color', 'vault-secrets', 'vault-secrets-color', 'vault-secrets-fill', 'vault-secrets-fill-color', 'vault-secrets-square', 'vault-secrets-square-color', 'waypoint', 'waypoint-color', 'waypoint-fill', 'waypoint-fill-color', 'waypoint-square', 'waypoint-square-color', 'hashicorp', 'hashicorp-color', 'hashicorp-fill', 'hashicorp-fill-color', 'hashicorp-square', 'hashicorp-square-color', 'hcp', 'hcp-color', 'hcp-fill', 'hcp-fill-color', 'hcp-square', 'hcp-square-color', 'accessibility', 'folder-users', 'frown', 'identity-service', 'identity-user', 'meh', 'robot', 'smile', 'user', 'user-check', 'user-circle', 'user-circle-fill', 'user-minus', 'user-plus', 'user-x', 'users', 'ampersand', 'beaker', 'bucket', 'bulb', 'circle', 'circle-dot', 'circle-fill', 'circle-half', 'diamond', 'diamond-fill', 'disc', 'dot', 'dot-half', 'droplet', 'flag', 'gift', 'government', 'handshake', 'hash', 'hexagon', 'hexagon-fill', 'labyrinth', 'layers', 'moon', 'octagon', 'outline', 'random', 'rocket', 'sparkle', 'square', 'square-fill', 'sun', 'triangle', 'triangle-fill', 'truck', 'wand', 'zap', 'zap-off', 'docs', 'docs-download', 'docs-link', 'guide', 'guide-link', 'help', 'info', 'info-fill', 'learn', 'learn-link', 'support', 'alert-circle', 'alert-circle-fill', 'alert-diamond', 'alert-diamond-fill', 'alert-octagon', 'alert-octagon-fill', 'alert-triangle', 'alert-triangle-fill', 'check', 'check-circle', 'check-circle-fill', 'check-diamond', 'check-diamond-fill', 'check-hexagon', 'check-hexagon-fill', 'check-square', 'check-square-fill', 'skip', 'x', 'x-circle', 'x-circle-fill', 'x-diamond', 'x-diamond-fill', 'x-hexagon', 'x-hexagon-fill', 'x-square', 'x-square-fill', 'bug', 'certificate', 'eye', 'eye-off', 'fingerprint', 'key', 'keychain', 'lock', 'lock-fill', 'lock-off', 'shield', 'shield-alert', 'shield-check', 'shield-off', 'shield-x', 'token', 'unlock', 'verified', 'wall', 'minus', 'minus-circle', 'minus-circle-fill', 'minus-plus', 'minus-plus-circle', 'minus-plus-square', 'minus-square', 'minus-square-fill', 'plus', 'plus-circle', 'plus-circle-fill', 'plus-square', 'camera', 'camera-off', 'cast', 'closed-caption', 'fast-forward', 'film', 'headphones', 'image', 'music', 'pause', 'pause-circle', 'play', 'play-circle', 'radio', 'rewind', 'rss', 'skip-back', 'skip-forward', 'speaker', 'stop-circle', 'volume', 'volume-down', 'volume-up', 'volume-x', 'wifi', 'wifi-off', 'compass', 'crosshair', 'map', 'map-pin', 'navigation', 'navigation-alt', 'redirect', 'target', 'align-center', 'align-justify', 'align-left', 'align-right', 'battery', 'battery-charging', 'bookmark', 'bookmark-add', 'bookmark-add-fill', 'bookmark-fill', 'bookmark-remove', 'bookmark-remove-fill', 'bottom', 'top', 'start', 'end', 'command', 'crop', 'dashboard', 'delete', 'download', 'edit', 'entry-point', 'exit-point', 'external-link', 'filter', 'filter-circle', 'filter-fill', 'grid', 'grid-alt', 'home', 'jump-link', 'layout', 'link', 'list', 'maximize', 'maximize-alt', 'menu', 'minimize', 'minimize-alt', 'more-horizontal', 'more-vertical', 'mouse-pointer', 'move-horizontal', 'paperclip', 'pen-tool', 'pencil-tool', 'pin', 'pin-off', 'power', 'printer', 'reload', 'repeat', 'resize-column', 'rotate-cw', 'rotate-ccw', 'search', 'share', 'sidebar', 'sidebar-hide', 'sidebar-show', 'sign-in', 'sign-out', 'slash', 'slash-square', 'sort-asc', 'sort-desc', 'switcher', 'sync', 'sync-alert', 'sync-reverse', 'tag', 'toggle-left', 'toggle-right', 'trash', 'type', 'text-wrap', 'unfold-close', 'unfold-open', 'upload', 'zoom-in', 'zoom-out', 'archive', 'clipboard', 'clipboard-checked', 'clipboard-copy', 'clipboard-x', 'file', 'file-change', 'file-check', 'file-diff', 'file-minus', 'file-plus', 'file-source', 'file-text', 'file-x', 'files', 'folder', 'folder-fill', 'folder-minus', 'folder-minus-fill', 'folder-plus', 'folder-plus-fill', 'folder-star', 'inbox', 'api', 'auto-apply', 'build', 'change', 'change-circle', 'change-square', 'channel', 'cloud', 'cloud-check', 'cloud-download', 'cloud-lightning', 'cloud-lock', 'cloud-off', 'cloud-upload', 'cloud-x', 'code', 'connection', 'connection-gateway', 'cpu', 'duplicate', 'gateway', 'git-branch', 'git-commit', 'git-merge', 'git-pull-request', 'git-repo', 'hammer', 'key-values', 'mainframe', 'mesh', 'module', 'monitor', 'network', 'network-alt', 'node', 'path', 'pipeline', 'plug', 'replication-direct', 'replication-perf', 'scissors', 'server', 'server-cluster', 'serverless', 'service', 'settings', 'sliders', 'smartphone', 'socket', 'step', 'tablet', 'terminal', 'terminal-screen', 'test', 'tools', 'transform-data', 'tv', 'webhook', 'wrench', 'calendar', 'clock', 'clock-filled', 'delay', 'event', 'history', 'hourglass', 'watch', 'bar-chart', 'bar-chart-alt', 'box', 'collections', 'database', 'hard-drive', 'line-chart', 'line-chart-up', 'logs', 'package', 'pie-chart', 'queue', 'save', 'trend-down', 'trend-up', 'activity', 'at-sign', 'award', 'bell', 'bell-active', 'bell-active-fill', 'bell-off', 'discussion-circle', 'discussion-square', 'heart', 'heart-fill', 'heart-off', 'mail', 'mail-open', 'message-circle', 'message-circle-fill', 'message-square', 'message-square-fill', 'mic', 'mic-off', 'newspaper', 'phone', 'phone-call', 'phone-off', 'send', 'star', 'star-circle', 'star-fill', 'star-off', 'thumbs-down', 'thumbs-up', 'video', 'video-off', 'bank-vault', 'briefcase', 'credit-card', 'dollar-sign', 'enterprise', 'globe', 'globe-private', 'org', 'provider', 'shopping-bag', 'shopping-cart', 'arrow-down', 'arrow-down-circle', 'arrow-down-left', 'arrow-down-right', 'arrow-left', 'arrow-left-circle', 'arrow-right', 'arrow-right-circle', 'arrow-up', 'arrow-up-circle', 'arrow-up-left', 'arrow-up-right', 'caret', 'chevron-down', 'chevron-left', 'chevron-right', 'chevron-up', 'chevrons-down', 'chevrons-left', 'chevrons-right', 'chevrons-up', 'corner-down-left', 'corner-down-right', 'corner-left-down', 'corner-left-up', 'corner-right-down', 'corner-right-up', 'corner-up-left', 'corner-up-right', 'load-balancer', 'migrate', 'move', 'shuffle', 'swap-horizontal', 'swap-vertical' ]; From 80174e820229f9b4eec261a6afa0f86bcd703846 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Mon, 6 Oct 2025 08:39:10 -0400 Subject: [PATCH 12/22] Add changeset for `volume-2` icon rename (#3276) --- .changeset/sweet-mangos-relate.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/sweet-mangos-relate.md diff --git a/.changeset/sweet-mangos-relate.md b/.changeset/sweet-mangos-relate.md new file mode 100644 index 00000000000..4b63c1dc06f --- /dev/null +++ b/.changeset/sweet-mangos-relate.md @@ -0,0 +1,7 @@ +--- +"@hashicorp/design-system-components": major +--- + + +`Icon` - Renamed the `volume-2` icon to `volume-up` + From 4ac425461332464127f6ae5889b26056772d6e23 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Mon, 6 Oct 2025 10:20:24 -0400 Subject: [PATCH 13/22] `ApplicationState` - Remove center alignment rule (#3205) Co-authored-by: Cristiano Rastelli --- .changeset/easy-owls-create.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/easy-owls-create.md diff --git a/.changeset/easy-owls-create.md b/.changeset/easy-owls-create.md new file mode 100644 index 00000000000..0132b4a71e1 --- /dev/null +++ b/.changeset/easy-owls-create.md @@ -0,0 +1,8 @@ +--- +"@hashicorp/design-system-components": major +--- + + + +`ApplicationState` - Replaced the default opinionated `margin: 0 auto;` rule from the component's root element and replaced it with a new `@isAutoCentered` argument (which defaults to `true, to preserve the existing centering behavior) to delegate the horizontal alignment control to the consumers, allowing them to disable it when needed. + From 5fede4134b916de8a995cac20678fc852c2e081b Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Mon, 6 Oct 2025 11:56:55 -0400 Subject: [PATCH 14/22] Remove incorrect `HdsCard` invocation path (#3275) --- .changeset/seven-windows-crash.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/seven-windows-crash.md diff --git a/.changeset/seven-windows-crash.md b/.changeset/seven-windows-crash.md new file mode 100644 index 00000000000..88a5222a1d4 --- /dev/null +++ b/.changeset/seven-windows-crash.md @@ -0,0 +1,6 @@ +--- +"@hashicorp/design-system-components": major +--- + +`Card` - Removed the component invocation paths `Hds::Card` and `hds/card`. Consumers must update their templates to use `` or `{{hds/card/container}}` + \ No newline at end of file From 62ab10e8240d5d48a1d4042e41193097af4e4b1e Mon Sep 17 00:00:00 2001 From: Lee White Date: Tue, 7 Oct 2025 17:46:57 -0400 Subject: [PATCH 15/22] Upgrade `ember-a11y-refocus` to `v5.1.0` (#3234) Co-authored-by: shleewhite Co-authored-by: Alexey Kulakov --- .changeset/khaki-bananas-know.md | 11 +++++++++++ .changeset/puny-months-sit.md | 6 ++++++ 2 files changed, 17 insertions(+) create mode 100644 .changeset/khaki-bananas-know.md create mode 100644 .changeset/puny-months-sit.md diff --git a/.changeset/khaki-bananas-know.md b/.changeset/khaki-bananas-know.md new file mode 100644 index 00000000000..32c66407441 --- /dev/null +++ b/.changeset/khaki-bananas-know.md @@ -0,0 +1,11 @@ +--- +"@hashicorp/design-system-components": patch +--- + + +`SideNav` - Fixed the type of `@a11yRefocusRouteChangeValidator` to match the expected type from `ember-a11y-refocus`. The new type is `(transition: Transition) => boolean` instead of `string`. + + + +`AppHeader` - Fixed the type of `@a11yRefocusRouteChangeValidator` to match the expected type from `ember-a11y-refocus`. The new type is `(transition: Transition) => boolean` instead of `string`. + diff --git a/.changeset/puny-months-sit.md b/.changeset/puny-months-sit.md new file mode 100644 index 00000000000..a4b6a6e4841 --- /dev/null +++ b/.changeset/puny-months-sit.md @@ -0,0 +1,6 @@ +--- +"@hashicorp/design-system-components": major +--- + +Upgraded `ember-a11y-refocus` dependency to version `5.0` +Upgraded `@glimmer/component` dependency to version `2.0` From f8e2b29bedce1c916038063139a6cc6352627149 Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Fri, 10 Oct 2025 11:41:11 -0400 Subject: [PATCH 16/22] Add `ember-basic-dropdown` as a peer dependency (#3282) Co-authored-by: Alex --- .changeset/dull-showers-dream.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/dull-showers-dream.md diff --git a/.changeset/dull-showers-dream.md b/.changeset/dull-showers-dream.md new file mode 100644 index 00000000000..d2a1dd09d34 --- /dev/null +++ b/.changeset/dull-showers-dream.md @@ -0,0 +1,5 @@ +--- +"@hashicorp/design-system-components": major +--- + +Added `ember-basic-dropdown` as a peer dependency required by `ember-power-select`. To migrate, if your application uses `SuperSelect`, make sure to add this dependency. From fddfbd28d3e795821cdf05bf3236a3ce402a020d Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Sun, 26 Oct 2025 22:25:30 -0400 Subject: [PATCH 17/22] Adds a11y guardrails in Dropdown ToggleIcon component --- .changeset/deep-wings-arrive.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .changeset/deep-wings-arrive.md diff --git a/.changeset/deep-wings-arrive.md b/.changeset/deep-wings-arrive.md new file mode 100644 index 00000000000..7d0365c7825 --- /dev/null +++ b/.changeset/deep-wings-arrive.md @@ -0,0 +1,9 @@ +--- +"@hashicorp/design-system-components": major +--- + + + +`Dropdown` - Added assertion to the `ToggleIcon` to provide improved developer guidance for the `hasChevron` attribute + + From 80d7f613555ede309a7d7d7327d84ec0de2ff3c8 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 4 Nov 2025 11:04:28 -0800 Subject: [PATCH 18/22] feat(components): remove `ember-get-config` (#3277) --- packages/components/addon-main.cjs | 1 + website/app/services/head-data.js | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/components/addon-main.cjs b/packages/components/addon-main.cjs index 797c851c5f9..9ac61cf88ca 100644 --- a/packages/components/addon-main.cjs +++ b/packages/components/addon-main.cjs @@ -8,6 +8,7 @@ const flightIconSprite = require('@hashicorp/flight-icons/svg-sprite/svg-sprite- module.exports = { ...addonV1Shim(__dirname), + contentFor(type, config) { if ( !config.flightIconsSpriteLazyEmbed && diff --git a/website/app/services/head-data.js b/website/app/services/head-data.js index 855a39a855f..d51951f064d 100644 --- a/website/app/services/head-data.js +++ b/website/app/services/head-data.js @@ -7,6 +7,8 @@ import HeadDataService from 'ember-meta/services/head-data'; import { service } from '@ember/service'; import config from 'website/config/environment'; +import config from 'website/config/environment'; + export default class CustomHeadDataService extends HeadDataService { @service router; From 47ac354ce90243879a810f73f0184b79e2d240df Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Mon, 22 Sep 2025 10:01:05 -0400 Subject: [PATCH 19/22] Fix `service` import deprecation (#3181) From cdcbda3a92792f717e728939f12b044df450dbff Mon Sep 17 00:00:00 2001 From: Zack Moore Date: Wed, 24 Sep 2025 14:27:47 -0400 Subject: [PATCH 20/22] Remove deprecated `HdsMenuPrimitive` component (#3224) From b3cb4b7357d0b52dc3f6675a479e124d8ccf51ca Mon Sep 17 00:00:00 2001 From: Helios HashiBot <105800889+hashibot-hds@users.noreply.github.com> Date: Fri, 3 Oct 2025 14:45:08 -0700 Subject: [PATCH 21/22] Updated export of icons from Figma (#3269) Co-authored-by: jorytindall <2200899+jorytindall@users.noreply.github.com> Co-authored-by: Jory Tindall From 99445eb5ee3a3c903ad27accb9c8faf8fe516f02 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 4 Nov 2025 16:17:17 -0800 Subject: [PATCH 22/22] feat(showcase): vite --- pnpm-lock.yaml | 751 ++++++++++++++++++++++------- showcase/.gitignore | 2 + showcase/app/app.ts | 12 +- showcase/app/config/environment.js | 3 + showcase/app/router.ts | 2 +- showcase/babel.config.cjs | 50 ++ showcase/ember-cli-build.js | 19 +- showcase/eslint.config.mjs | 11 - showcase/{app => }/index.html | 13 +- showcase/package.json | 59 ++- showcase/testem.js | 45 +- showcase/tests/index.html | 21 +- showcase/tests/test-helper.ts | 91 ++-- showcase/types/global.d.ts | 3 +- showcase/vite.config.mjs | 15 + website/app/services/head-data.js | 2 - 16 files changed, 785 insertions(+), 314 deletions(-) create mode 100644 showcase/app/config/environment.js create mode 100644 showcase/babel.config.cjs rename showcase/{app => }/index.html (62%) create mode 100644 showcase/vite.config.mjs diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ad1b87b62f9..8effe3a26e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -111,7 +111,7 @@ importers: version: 1.10.0 '@embroider/macros': specifier: ^1.18.1 - version: 1.18.1(@glint/template@1.5.2) + version: 1.19.2(@glint/template@1.5.2) '@embroider/util': specifier: ^1.13.4 version: 1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) @@ -193,7 +193,7 @@ importers: version: 7.28.0(@babel/core@7.28.0) '@babel/runtime': specifier: ^7.27.1 - version: 7.28.2 + version: 7.28.4 '@ember/string': specifier: ^4.0.1 version: 4.0.1 @@ -370,7 +370,7 @@ importers: version: 7.0.1 chalk: specifier: ^5.4.0 - version: 5.4.1 + version: 5.6.2 del: specifier: ^8.0.0 version: 8.0.0 @@ -485,9 +485,15 @@ importers: '@babel/eslint-parser': specifier: ^7.27.1 version: 7.28.0(@babel/core@7.28.0)(eslint@9.32.0) - '@babel/plugin-proposal-decorators': + '@babel/plugin-transform-runtime': + specifier: ^7.28.3 + version: 7.28.3(@babel/core@7.28.0) + '@babel/plugin-transform-typescript': specifier: ^7.27.1 version: 7.28.0(@babel/core@7.28.0) + '@babel/runtime': + specifier: ^7.27.1 + version: 7.28.4 '@codemirror/lint': specifier: ^6.8.4 version: 6.8.5 @@ -509,12 +515,30 @@ importers: '@ember/test-waiters': specifier: ^3.1.0 version: 3.1.0 + '@embroider/compat': + specifier: ^4.1.8 + version: 4.1.8(@embroider/core@4.2.5(@glint/template@1.5.2))(@glint/template@1.5.2) + '@embroider/config-meta-loader': + specifier: ^1.0.0 + version: 1.0.0 + '@embroider/core': + specifier: ^4.2.5 + version: 4.2.5(@glint/template@1.5.2) + '@embroider/legacy-inspector-support': + specifier: ^0.1.3 + version: 0.1.3 '@embroider/macros': - specifier: ^1.18.1 - version: 1.18.1(@glint/template@1.5.2) + specifier: ^1.19.2 + version: 1.19.2(@glint/template@1.5.2) + '@embroider/router': + specifier: ^3.0.4 + version: 3.0.4(@embroider/core@4.2.5(@glint/template@1.5.2)) '@embroider/test-setup': specifier: ^4.0.0 - version: 4.0.0(@embroider/core@3.5.7(@glint/template@1.5.2)) + version: 4.0.0(@embroider/compat@4.1.8(@embroider/core@4.2.5(@glint/template@1.5.2))(@glint/template@1.5.2))(@embroider/core@4.2.5(@glint/template@1.5.2)) + '@embroider/vite': + specifier: ^1.3.4 + version: 1.3.4(@embroider/core@4.2.5(@glint/template@1.5.2))(@glint/template@1.5.2)(rollup@4.46.2)(vite@6.4.0(@types/node@22.17.0)(sass@1.89.2)(sugarss@2.0.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0)) '@eslint/js': specifier: ^9.27.0 version: 9.32.0 @@ -549,8 +573,11 @@ importers: specifier: ^1.30.5 version: 1.31.1(typescript@5.9.2) '@percy/ember': - specifier: ^4.2.0 - version: 4.2.0 + specifier: ^5.0.0 + version: 5.0.0(@babel/core@7.28.0)(@glint/template@1.5.2)(webpack@5.101.0) + '@rollup/plugin-babel': + specifier: ^6.0.4 + version: 6.0.4(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@4.46.2) '@tsconfig/ember': specifier: ^3.0.10 version: 3.0.11 @@ -560,12 +587,15 @@ importers: '@types/rsvp': specifier: ^4.0.9 version: 4.0.9 - broccoli-asset-rev: - specifier: ^3.0.0 - version: 3.0.0 + babel-plugin-ember-template-compilation: + specifier: ^2.4.1 + version: 2.4.1 concurrently: specifier: ^9.1.2 version: 9.2.0 + decorator-transforms: + specifier: ^2.3.0 + version: 2.3.0(@babel/core@7.28.0) ember-a11y-testing: specifier: ^7.1.2 version: 7.1.2(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1)(webpack@5.101.0) @@ -587,38 +617,23 @@ importers: ember-cli-babel: specifier: ^8.2.0 version: 8.2.0(@babel/core@7.28.0) - ember-cli-clean-css: - specifier: ^3.0.0 - version: 3.0.0 - ember-cli-dependency-checker: - specifier: ^3.3.3 - version: 3.3.3(ember-cli@6.5.0(babel-core@6.26.3)(handlebars@4.7.8)(underscore@1.13.7)) ember-cli-deprecation-workflow: specifier: ^3.3.0 version: 3.4.0(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-cli-htmlbars: specifier: ^6.3.0 version: 6.3.0 - ember-cli-inject-live-reload: - specifier: ^2.1.0 - version: 2.1.0 ember-cli-sass: specifier: ^11.0.1 version: 11.0.1 - ember-cli-sri: - specifier: ^2.1.1 - version: 2.1.1 ember-cli-string-helpers: specifier: ^8.0.1 version: 8.0.1(@babel/core@7.28.0)(@ember/string@4.0.1) ember-cli-string-utils: specifier: ^1.1.0 version: 1.1.0 - ember-cli-terser: - specifier: ^4.0.2 - version: 4.0.2 ember-concurrency: - specifier: ^4.0.4 + specifier: ^4.0.2 version: 4.0.4(@babel/core@7.28.0)(@glint/template@1.5.2) ember-deep-tracked: specifier: ^2.0.1 @@ -630,22 +645,22 @@ importers: specifier: ^3.0.1 version: 3.0.1(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-math-helpers: - specifier: ^5.0.0 - version: 5.0.0(@babel/core@7.28.0)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) + specifier: ^3.0.0 + version: 3.0.0 ember-modifier: - specifier: ^4.2.2 + specifier: ^4.2.0 version: 4.2.2(@babel/core@7.28.0) ember-page-title: - specifier: ^9.0.2 - version: 9.0.2 + specifier: ^8.2.3 + version: 8.2.4(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-power-select: - specifier: ^8.7.1 + specifier: ^8.6.2 version: 8.7.3(@babel/core@7.28.0)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-basic-dropdown@8.6.2(@babel/core@7.28.0)(@ember/string@4.0.1)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glimmer/component@2.0.0)(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)))(ember-concurrency@4.0.4(@babel/core@7.28.0)(@glint/template@1.5.2))(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) ember-qunit: specifier: ^9.0.3 version: 9.0.3(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glint/template@1.5.2)(qunit@2.24.1) ember-resolver: - specifier: ^13.1.1 + specifier: ^13.1.0 version: 13.1.1 ember-router-generator: specifier: ^2.0.0 @@ -662,9 +677,6 @@ importers: ember-style-modifier: specifier: ^4.4.0 version: 4.4.0(@babel/core@7.28.0)(@ember/string@4.0.1)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) - ember-template-imports: - specifier: ^4.3.0 - version: 4.3.0 ember-template-lint: specifier: ^7.7.0 version: 7.9.1 @@ -695,9 +707,6 @@ importers: globals: specifier: ^16.1.0 version: 16.3.0 - loader.js: - specifier: ^4.7.0 - version: 4.7.0 postcss: specifier: ^8.5.3 version: 8.5.6 @@ -740,9 +749,9 @@ importers: typescript-eslint: specifier: ^8.32.1 version: 8.38.0(eslint@9.32.0)(typescript@5.9.2) - webpack: - specifier: ^5.99.9 - version: 5.101.0 + vite: + specifier: ^6.3.5 + version: 6.4.0(@types/node@22.17.0)(sass@1.89.2)(sugarss@2.0.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) website: devDependencies: @@ -778,7 +787,7 @@ importers: version: 5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2) '@embroider/macros': specifier: ^1.18.1 - version: 1.18.1(@glint/template@1.5.2) + version: 1.19.2(@glint/template@1.5.2) '@embroider/util': specifier: ^1.13.4 version: 1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) @@ -826,7 +835,7 @@ importers: version: 3.0.0 chalk: specifier: ^5.4.0 - version: 5.4.1 + version: 5.6.2 concurrently: specifier: ^9.1.2 version: 9.2.0 @@ -1181,8 +1190,8 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.2': - resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} engines: {node: '>=6.9.0'} '@babel/core@7.28.0': @@ -1220,8 +1229,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + '@babel/helper-define-polyfill-provider@0.6.5': + resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -1396,6 +1405,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-flow@7.26.0': resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==} engines: {node: '>=6.9.0'} @@ -1736,8 +1750,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.26.10': - resolution: {integrity: sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==} + '@babel/plugin-transform-runtime@7.28.3': + resolution: {integrity: sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1838,8 +1852,8 @@ packages: '@babel/runtime@7.12.18': resolution: {integrity: sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==} - '@babel/runtime@7.28.2': - resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} '@babel/template@7.27.2': @@ -2322,10 +2336,27 @@ packages: resolution: {integrity: sha512-gcJuHiXgnrzaU8NyU+2bMbtS6PNOr5v5B8OXBqaBvTCsMpXLvKo8OBOQFCoUN0rPX2J6VaFqrbi/371sMvzZug==} engines: {node: 12.* || 14.* || >= 16} + '@embroider/compat@4.1.8': + resolution: {integrity: sha512-YNPMTYViccpQafTpmZ1NknqcB8X+lPgEEF0r4F7//JZTNl9P+4PvJYqfGQeSvw5KWE7kn0ju/vdL4WrneA9Flw==} + engines: {node: 12.* || 14.* || >= 16} + peerDependencies: + '@embroider/core': ^4.2.5 + + '@embroider/config-meta-loader@1.0.0': + resolution: {integrity: sha512-qznkdjgEGPe6NM94hZNXvOm/WhrJwBh8FtSQZ+nGjh9TOjY42tOiTEevFuM0onNXUn6bpdGzmjwKo2xY2jxQxQ==} + engines: {node: 12.* || 14.* || >= 16} + '@embroider/core@3.5.7': resolution: {integrity: sha512-0oytko2+iaYS31TG9Axj7Py0e0FAccUhu9J1h7ldEnQegK+Eu5+OINU0dYQgt0ijp6f2yF4+o3J7u9CJCLZ1gw==} engines: {node: 12.* || 14.* || >= 16} + '@embroider/core@4.2.5': + resolution: {integrity: sha512-e51BLGoG0YFEZSnEMeYqlQryi3lDCIrW4mHhti3lrnKEyIO30nPkrlCe6Z4zcBkMJPi4rJo1cecQc8UuJU5f+w==} + engines: {node: 12.* || 14.* || >= 16} + + '@embroider/legacy-inspector-support@0.1.3': + resolution: {integrity: sha512-0VzD1xExkT78a1CUiW8wZ5VZDL4bVyMSc3t8E/RiAW1X6TlyKIA/m6zoQgsQtQIiiTPPxH0/1Tdd0F7b5//etw==} + '@embroider/macros@1.16.13': resolution: {integrity: sha512-2oGZh0m1byBYQFWEa8b2cvHJB2LzaF3DdMCLCqcRAccABMROt1G3sultnNCT30NhfdGWMEsJOT3Jm4nFxXmTRw==} engines: {node: 12.* || 14.* || >= 16} @@ -2335,8 +2366,8 @@ packages: '@glint/template': optional: true - '@embroider/macros@1.18.1': - resolution: {integrity: sha512-hOQyzFBT1Rd6RdY4AbRSSGSeXyUzUrU9o6GWGD/kxg7cggKQax4R486KE10ZVSPRNqhRiNUcqe2VWc/+e8Z0MQ==} + '@embroider/macros@1.19.2': + resolution: {integrity: sha512-lCG8Y58ZGz9kFvvEJjs3c8VDKDtLYV6iszEuQDyBgOtf1F+zizuZJFchLHSP4Vw5ND3Q4iF5I7tFQLGh0wODDg==} engines: {node: 12.* || 14.* || >= 16} peerDependencies: '@glint/template': ^1.0.0 @@ -2344,6 +2375,17 @@ packages: '@glint/template': optional: true + '@embroider/reverse-exports@0.1.2': + resolution: {integrity: sha512-TgjQalfB42RnwdRVApjcvHSVjBe+7MJfCZV0Cs1jv2QgnFGr/6f5X19PKvmF4FU4xbBf7yOsIWrVvYvidWnXlw==} + + '@embroider/router@3.0.4': + resolution: {integrity: sha512-kSygi43vpyqaX7gOaIPFY6WkqHm0NlvMSFJBG98Z2DNxjalGFI3+vzVEmguzQd5fgiMiZcXVAug4yjn1CKdXTA==} + peerDependencies: + '@embroider/core': ^2.0.0||^3.0.0||^4.0.0-alpha.0 + peerDependenciesMeta: + '@embroider/core': + optional: true + '@embroider/shared-internals@2.9.0': resolution: {integrity: sha512-8untWEvGy6av/oYibqZWMz/yB+LHsKxEOoUZiLvcpFwWj2Sipc0DcXeTJQZQZ++otNkLCWyDrDhOLrOkgjOPSg==} engines: {node: 12.* || 14.* || >= 16} @@ -2352,8 +2394,8 @@ packages: resolution: {integrity: sha512-8PJBsa37GD++SAfHf8rcJzlwDwuAQCBo0fr+eGxg9l8XhBXsTnE/7706dM4OqWew9XNqRXn39wfIGHZoBpjNMw==} engines: {node: 12.* || 14.* || >= 16} - '@embroider/shared-internals@3.0.0': - resolution: {integrity: sha512-5J5ipUMCAinQS38WW7wedruq5Z4VnHvNo+ZgOduw0PtI9w0CQWx7/HE+98PBDW8jclikeF+aHwF317vc1hwuzg==} + '@embroider/shared-internals@3.0.1': + resolution: {integrity: sha512-d7RQwDwqqHo7YvjE9t1rtIrCCYtbSoO0uRq2ikVhRh4hGS5OojZNu2ZtS0Wqrg+V72CRtMFr/hibTvHNsRM2Lg==} engines: {node: 12.* || 14.* || >= 16} '@embroider/test-setup@4.0.0': @@ -2384,6 +2426,12 @@ packages: '@glint/template': optional: true + '@embroider/vite@1.3.4': + resolution: {integrity: sha512-/GmtYVDuEOfa0gmlTQDeMa6dhOCW/o0/FPY19Jx2ACwv6gS//0g3VuxZdqp34WfuffgO5bKU2n7XZFks4bXEwQ==} + peerDependencies: + '@embroider/core': ^4.2.5 + vite: '>= 5.2.0' + '@esbuild/aix-ppc64@0.25.8': resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} engines: {node: '>=18'} @@ -3201,9 +3249,9 @@ packages: '@percy/dom@1.31.1': resolution: {integrity: sha512-JZ3m0/9+SPlKSNdBJXEs3uaIioXnJjvFRBN6cD9Fu+M0yl0mzNNNU+hmXSeNiUq9rvBEpbkkfehPJVKuRy2QPQ==} - '@percy/ember@4.2.0': - resolution: {integrity: sha512-D/WckDD2tQetdn8uq46nQA1rOVgov8jsZG4uN7snAq6SrOpxNxacONg37QPwczmICBc7o/NlipCAUteukmtKzg==} - engines: {node: '>= 14'} + '@percy/ember@5.0.0': + resolution: {integrity: sha512-Nod2k3zMUQKnAK29dO9Xp4tdIMUiLrEffntLXjHtQroEq2wqCTeS6gfLLEjV++TgPE0q2ehex/fd2QXzgKFKEA==} + engines: {node: '>= 16'} '@percy/env@1.31.1': resolution: {integrity: sha512-2Df042p8p0j6DwtYAUQ9nRCXFkpk/JJUvd8xV/S1bmvcD9LTmOzGfEu8kcA8ndDaeMcJJM2b12PNFxjVCEsmog==} @@ -3514,6 +3562,9 @@ packages: '@types/archiver@6.0.3': resolution: {integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==} + '@types/babel__code-frame@7.0.6': + resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -4350,6 +4401,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-plugin-debug-macros@2.0.0: + resolution: {integrity: sha512-7ZaLtXIY01PAPhLyjV3OACePnl+X5iQO7F4O/sOJHTfMf/36zyu14uVUxNiZmOUntYBsyT/VVplf1LrH6NcwvQ==} + engines: {node: '>=16'} + peerDependencies: + '@babel/core': ^7.0.0 + babel-plugin-ember-data-packages-polyfill@0.1.2: resolution: {integrity: sha512-kTHnOwoOXfPXi00Z8yAgyD64+jdSXk3pknnS7NlqnCKAU6YDkXZ4Y7irl66kaZjZn0FBBt0P4YOZFZk85jYOww==} engines: {node: 6.* || 8.* || 10.* || >= 12.*} @@ -4370,6 +4427,10 @@ packages: resolution: {integrity: sha512-n+ktQ3JeyWrpRutSyPn2PsHeH+A94SVm+iUoogzf9VUqpP47FfWem24gpQXhn+p6+x5/BpuFJXMLXWt7ZoYAKA==} engines: {node: '>= 12.*'} + babel-plugin-ember-template-compilation@3.0.1: + resolution: {integrity: sha512-3fUgnv+azabsl2PMd+SpkV8E7vvp7oRLaXv+OJIe36G3niSVYDKJ+7n6WaPyh+z7gqeAKSBj7Bdc5dYbhEMsgQ==} + engines: {node: '>= 18.*'} + babel-plugin-htmlbars-inline-precompile@5.3.1: resolution: {integrity: sha512-QWjjFgSKtSRIcsBhJmEwS2laIdrA6na8HAlc/pEAhjHgQsah/gMiBFRZvbQTy//hWxR4BMwV7/Mya7q5H8uHeA==} engines: {node: 10.* || >= 12.*} @@ -4389,8 +4450,8 @@ packages: babel-plugin-module-resolver@5.0.2: resolution: {integrity: sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==} - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + babel-plugin-polyfill-corejs2@0.4.14: + resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -4399,8 +4460,13 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.5: + resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -4565,6 +4631,10 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} + baseline-browser-mapping@2.8.16: + resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} + hasBin: true + basic-auth@2.0.1: resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} engines: {node: '>= 0.8'} @@ -4584,6 +4654,9 @@ packages: resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==} engines: {node: '>=0.8'} + bind-decorator@1.0.11: + resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -4798,12 +4871,19 @@ packages: browser-process-hrtime@1.0.0: resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + browserslist-to-esbuild@2.1.1: + resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + browserslist: '*' + browserslist@3.2.8: resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==} hasBin: true - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4902,8 +4982,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001692: - resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==} + caniuse-lite@1.0.30001750: + resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -4935,8 +5015,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.4.1: - resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@5.4.4: @@ -5471,8 +5551,8 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} - core-js-compat@3.41.0: - resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} + core-js-compat@3.46.0: + resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} core-js@2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} @@ -5983,8 +6063,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.80: - resolution: {integrity: sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw==} + electron-to-chromium@1.5.237: + resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} ember-a11y-refocus@5.1.0: resolution: {integrity: sha512-Z6wl3bAMvDuFxQQnppbsT4RY5tUAlKRQo1PVqsFYRYE8gyRWDlLqR2Stspp4rdkXaaFn2JpNA3zzbIy1aTG5GA==} @@ -6270,18 +6350,16 @@ packages: peerDependencies: ember-source: '>= 5' + ember-math-helpers@3.0.0: + resolution: {integrity: sha512-sVbrU4glI89LL7/h0SOQxdthzs4a0FmvxZ0lXYwi43bNkcSw5YfEtXpIEvgABR0CJxjRZ7GjPy10Jcvv47RIaA==} + engines: {node: 14.* || 16.* || >= 18} + ember-math-helpers@4.2.1: resolution: {integrity: sha512-/pOFz6tQ67mh0faiD7nzOCYRXHElg2d/SvQnYB8vdYoj7BLCkNHLjdo3F0oa5Qz/6J/+k3ie5ZGBjMumvlOeIw==} engines: {node: '>= 18'} peerDependencies: ember-source: '>= 4.0.0' - ember-math-helpers@5.0.0: - resolution: {integrity: sha512-UKChQuu1Ki57NGMFF0V1mbRJ5LtkZ+EMIdCl5w+3nrwCOzn8GpePQDgtQqgdE3tFrm3TsHfLgHtfa38uNSSG6w==} - engines: {node: '>= 18'} - peerDependencies: - ember-source: '>= 4.12.0' - ember-meta@2.0.0: resolution: {integrity: sha512-6CDkAsIuoGK4CDyWCVbJ3VNcr8ONl61c0F57/daebK2Sha+bmHfg4VV9M9m9qmvvc/iX5VHBEY9zaMAyiPXSAQ==} engines: {node: 10.* || >= 12} @@ -6293,6 +6371,12 @@ packages: ember-modifier@4.2.2: resolution: {integrity: sha512-pPYBAGyczX0hedGWQFQOEiL9s45KS9efKxJxUQkMLjQyh+1Uef1mcmAGsdw2KmvNupITkE/nXxmVO1kZ9tt3ag==} + ember-page-title@8.2.4: + resolution: {integrity: sha512-ZZ912IRItIEfD5+35w65DT9TmqppK+suXJeaJenD5OSuvujUnYl6KxBpyAbfjw4mYtURwJO/TmSe+4GGJbsJ0w==} + engines: {node: 16.* || >= 18} + peerDependencies: + ember-source: '>= 3.28.0' + ember-page-title@9.0.2: resolution: {integrity: sha512-ACklH6hemNB6tDAiwGo4e0tFIqVrAkTNqRmlLtLABlh+GynH7xkWm9q4fyc4Ysg9R1jP8OrsKcxWRittshRatA==} engines: {node: 16.* || >= 18} @@ -8319,6 +8403,15 @@ packages: canvas: optional: true + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -8772,6 +8865,10 @@ packages: resolution: {integrity: sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==} engines: {node: '>=8'} + mem@8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} + memfs@4.17.0: resolution: {integrity: sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==} engines: {node: '>= 4.0.0'} @@ -8927,6 +9024,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + mimic-function@5.0.1: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} @@ -9097,8 +9198,8 @@ packages: node-notifier@10.0.1: resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.23: + resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} node-watch@0.7.3: resolution: {integrity: sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==} @@ -10360,6 +10461,10 @@ packages: engines: {node: '>=10'} hasBin: true + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -11391,8 +11496,8 @@ packages: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} - update-browserslist-db@1.1.2: - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -11482,6 +11587,46 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite@6.4.0: + resolution: {integrity: sha512-oLnWs9Hak/LOlKjeSpOwD6JMks8BeICEdYMJBf6P4Lac/pO9tKiv/XhXnAM7nNfSkZahjlCZu9sS50zL8fSnsw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vscode-jsonrpc@8.1.0: resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} engines: {node: '>=14.0.0'} @@ -11970,7 +12115,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.27.2': {} + '@babel/compat-data@7.28.4': {} '@babel/core@7.28.0': dependencies: @@ -12014,9 +12159,9 @@ snapshots: '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.27.2 + '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.24.4 + browserslist: 4.26.3 lru-cache: 5.1.1 semver: 6.3.1 @@ -12040,7 +12185,7 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.28.0)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 @@ -12244,6 +12389,11 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -12599,14 +12749,14 @@ snapshots: '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.26.10(@babel/core@7.28.0)': + '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -12680,7 +12830,7 @@ snapshots: '@babel/preset-env@7.26.9(@babel/core@7.28.0)': dependencies: - '@babel/compat-data': 7.27.2 + '@babel/compat-data': 7.28.4 '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 @@ -12745,10 +12895,10 @@ snapshots: '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.28.0) '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.28.0) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.28.0) - core-js-compat: 3.41.0 + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) + core-js-compat: 3.46.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -12791,7 +12941,7 @@ snapshots: dependencies: regenerator-runtime: 0.13.11 - '@babel/runtime@7.28.2': {} + '@babel/runtime@7.28.4': {} '@babel/template@7.27.2': dependencies: @@ -13409,7 +13559,7 @@ snapshots: '@ember/render-modifiers@2.1.0(@babel/core@7.28.0)(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': dependencies: - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) ember-cli-babel: 7.26.11 ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.28.0) ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) @@ -13422,7 +13572,7 @@ snapshots: '@ember/render-modifiers@3.0.0(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': dependencies: '@babel/core': 7.28.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) ember-cli-babel: 8.2.0(@babel/core@7.28.0) ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.28.0) ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) @@ -13434,7 +13584,7 @@ snapshots: '@ember/render-modifiers@3.0.0(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': dependencies: '@babel/core': 7.28.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) ember-cli-babel: 8.2.0(@babel/core@7.28.0) ember-modifier-manager-polyfill: 1.2.0(@babel/core@7.28.0) ember-source: 6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5) @@ -13449,7 +13599,7 @@ snapshots: dependencies: '@ember/test-waiters': 3.1.0 '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@simple-dom/interface': 1.4.0 decorator-transforms: 2.3.0(@babel/core@7.28.0) dom-element-descriptors: 0.5.1 @@ -13463,7 +13613,7 @@ snapshots: dependencies: '@ember/test-waiters': 3.1.0 '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@simple-dom/interface': 1.4.0 decorator-transforms: 2.3.0(@babel/core@7.28.0) dom-element-descriptors: 0.5.1 @@ -13503,13 +13653,68 @@ snapshots: '@embroider/addon-shim@1.10.0': dependencies: - '@embroider/shared-internals': 3.0.0 + '@embroider/shared-internals': 3.0.1 broccoli-funnel: 3.0.8 common-ancestor-path: 1.0.1 semver: 7.7.2 transitivePeerDependencies: - supports-color + '@embroider/compat@4.1.8(@embroider/core@4.2.5(@glint/template@1.5.2))(@glint/template@1.5.2)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.0 + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.28.0) + '@babel/preset-env': 7.26.9(@babel/core@7.28.0) + '@babel/runtime': 7.28.4 + '@babel/traverse': 7.28.0 + '@embroider/core': 4.2.5(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) + '@types/babel__code-frame': 7.0.6 + assert-never: 1.4.0 + babel-import-util: 3.0.1 + babel-plugin-debug-macros: 2.0.0(@babel/core@7.28.0) + babel-plugin-ember-template-compilation: 3.0.1 + babel-plugin-ember-template-compilation-2: babel-plugin-ember-template-compilation@2.4.1 + babel-plugin-syntax-dynamic-import: 6.18.0 + babylon: 6.18.0 + bind-decorator: 1.0.11 + broccoli: 3.5.2 + broccoli-concat: 4.2.5 + broccoli-file-creator: 2.1.1 + broccoli-funnel: 3.0.8 + broccoli-merge-trees: 4.2.0 + broccoli-persistent-filter: 3.1.3 + broccoli-plugin: 4.0.7 + broccoli-source: 3.0.1 + chalk: 4.1.2 + debug: 4.4.1 + fast-sourcemap-concat: 2.1.1 + fs-extra: 9.1.0 + fs-tree-diff: 2.0.1 + jsdom: 26.1.0 + lodash: 4.17.21 + pkg-up: 3.1.0 + resolve: 1.22.10 + resolve-package-path: 4.0.3 + resolve.exports: 2.0.3 + semver: 7.7.2 + symlink-or-copy: 1.3.1 + tree-sync: 2.1.0 + typescript-memoize: 1.1.1 + walk-sync: 3.0.0 + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - supports-color + - utf-8-validate + + '@embroider/config-meta-loader@1.0.0': {} + '@embroider/core@3.5.7(@glint/template@1.5.2)': dependencies: '@babel/core': 7.28.0 @@ -13544,6 +13749,48 @@ snapshots: - supports-color - utf-8-validate + '@embroider/core@4.2.5(@glint/template@1.5.2)': + dependencies: + '@babel/core': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/traverse': 7.28.0 + '@embroider/macros': 1.19.2(@glint/template@1.5.2) + '@embroider/reverse-exports': 0.1.2 + '@embroider/shared-internals': 3.0.1 + assert-never: 1.4.0 + babel-plugin-ember-template-compilation: 3.0.1 + broccoli-node-api: 1.7.0 + broccoli-persistent-filter: 3.1.3 + broccoli-plugin: 4.0.7 + broccoli-source: 3.0.1 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + fast-sourcemap-concat: 2.1.1 + fs-extra: 9.1.0 + fs-tree-diff: 2.0.1 + handlebars: 4.7.8 + js-string-escape: 1.0.1 + jsdom: 25.0.1 + lodash: 4.17.21 + resolve: 1.22.10 + resolve-package-path: 4.0.3 + resolve.exports: 2.0.3 + semver: 7.7.2 + typescript-memoize: 1.1.1 + walk-sync: 3.0.0 + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - supports-color + - utf-8-validate + + '@embroider/legacy-inspector-support@0.1.3': + dependencies: + '@embroider/addon-shim': 1.10.0 + transitivePeerDependencies: + - supports-color + '@embroider/macros@1.16.13(@glint/template@1.5.2)': dependencies: '@embroider/shared-internals': 2.9.0 @@ -13559,9 +13806,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@embroider/macros@1.18.1(@glint/template@1.5.2)': + '@embroider/macros@1.19.2(@glint/template@1.5.2)': dependencies: - '@embroider/shared-internals': 3.0.0 + '@embroider/shared-internals': 3.0.1 assert-never: 1.4.0 babel-import-util: 3.0.1 ember-cli-babel: 7.26.11 @@ -13574,6 +13821,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@embroider/reverse-exports@0.1.2': + dependencies: + mem: 8.1.1 + resolve.exports: 2.0.3 + + '@embroider/router@3.0.4(@embroider/core@4.2.5(@glint/template@1.5.2))': + dependencies: + '@ember/test-waiters': 3.1.0 + '@embroider/addon-shim': 1.10.0 + optionalDependencies: + '@embroider/core': 4.2.5(@glint/template@1.5.2) + transitivePeerDependencies: + - supports-color + '@embroider/shared-internals@2.9.0': dependencies: babel-import-util: 2.1.1 @@ -13608,7 +13869,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@embroider/shared-internals@3.0.0': + '@embroider/shared-internals@3.0.1': dependencies: babel-import-util: 3.0.1 debug: 4.4.1 @@ -13626,16 +13887,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@embroider/test-setup@4.0.0(@embroider/core@3.5.7(@glint/template@1.5.2))': + '@embroider/test-setup@4.0.0(@embroider/compat@4.1.8(@embroider/core@4.2.5(@glint/template@1.5.2))(@glint/template@1.5.2))(@embroider/core@4.2.5(@glint/template@1.5.2))': dependencies: lodash: 4.17.21 resolve: 1.22.10 optionalDependencies: - '@embroider/core': 3.5.7(@glint/template@1.5.2) + '@embroider/compat': 4.1.8(@embroider/core@4.2.5(@glint/template@1.5.2))(@glint/template@1.5.2) + '@embroider/core': 4.2.5(@glint/template@1.5.2) '@embroider/util@1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': dependencies: - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) @@ -13647,7 +13909,7 @@ snapshots: '@embroider/util@1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5))': dependencies: - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) broccoli-funnel: 3.0.8 ember-cli-babel: 7.26.11 ember-source: 6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5) @@ -13657,6 +13919,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@embroider/vite@1.3.4(@embroider/core@4.2.5(@glint/template@1.5.2))(@glint/template@1.5.2)(rollup@4.46.2)(vite@6.4.0(@types/node@22.17.0)(sass@1.89.2)(sugarss@2.0.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0))': + dependencies: + '@babel/core': 7.28.0 + '@embroider/core': 4.2.5(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) + '@embroider/reverse-exports': 0.1.2 + '@rollup/pluginutils': 5.1.4(rollup@4.46.2) + assert-never: 1.4.0 + browserslist: 4.26.3 + browserslist-to-esbuild: 2.1.1(browserslist@4.26.3) + chalk: 5.6.2 + content-tag: 3.1.3 + debug: 4.4.1 + fast-glob: 3.3.3 + fs-extra: 10.1.0 + jsdom: 25.0.1 + send: 0.18.0 + source-map-url: 0.4.1 + terser: 5.39.0 + vite: 6.4.0(@types/node@22.17.0)(sass@1.89.2)(sugarss@2.0.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0) + transitivePeerDependencies: + - '@glint/template' + - bufferutil + - canvas + - rollup + - supports-color + - utf-8-validate + '@esbuild/aix-ppc64@0.25.8': optional: true @@ -14135,7 +14425,7 @@ snapshots: '@ember/string': 4.0.1 '@ember/test-waiters': 3.1.0 '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@embroider/util': 1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@floating-ui/dom': 1.7.3 '@hashicorp/design-system-tokens': file:packages/tokens @@ -14189,7 +14479,7 @@ snapshots: '@ember/string': 4.0.1 '@ember/test-waiters': 3.1.0 '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@embroider/util': 1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@floating-ui/dom': 1.7.3 '@hashicorp/design-system-tokens': file:packages/tokens @@ -14552,14 +14842,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -14806,12 +15096,16 @@ snapshots: '@percy/dom@1.31.1': {} - '@percy/ember@4.2.0': + '@percy/ember@5.0.0(@babel/core@7.28.0)(@glint/template@1.5.2)(webpack@5.101.0)': dependencies: '@percy/sdk-utils': 1.31.1 - ember-cli-babel: 7.26.11 + ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.101.0) + ember-cli-babel: 8.2.0(@babel/core@7.28.0) transitivePeerDependencies: + - '@babel/core' + - '@glint/template' - supports-color + - webpack '@percy/env@1.31.1': dependencies: @@ -15074,6 +15368,8 @@ snapshots: dependencies: '@types/readdir-glob': 1.1.5 + '@types/babel__code-frame@7.0.6': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.0 @@ -15999,8 +16295,8 @@ snapshots: autoprefixer@9.8.8: dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001692 + browserslist: 4.26.3 + caniuse-lite: 1.0.30001750 normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 @@ -16205,6 +16501,12 @@ snapshots: '@babel/core': 7.28.0 semver: 5.7.2 + babel-plugin-debug-macros@2.0.0(@babel/core@7.28.0): + dependencies: + '@babel/core': 7.28.0 + babel-import-util: 2.1.1 + semver: 7.7.2 + babel-plugin-ember-data-packages-polyfill@0.1.2: dependencies: '@ember-data/rfc395-data': 0.0.4 @@ -16227,6 +16529,12 @@ snapshots: '@glimmer/syntax': 0.94.9 babel-import-util: 3.0.1 + babel-plugin-ember-template-compilation@3.0.1: + dependencies: + '@glimmer/syntax': 0.94.9 + babel-import-util: 3.0.1 + import-meta-resolve: 4.1.0 + babel-plugin-htmlbars-inline-precompile@5.3.1: dependencies: babel-plugin-ember-modules-api-polyfill: 3.5.0 @@ -16268,11 +16576,11 @@ snapshots: reselect: 4.1.8 resolve: 1.22.10 - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.28.0): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0): dependencies: - '@babel/compat-data': 7.27.2 + '@babel/compat-data': 7.28.4 '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.28.0) + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -16280,15 +16588,23 @@ snapshots: babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.28.0) - core-js-compat: 3.41.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + core-js-compat: 3.46.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.28.0): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0): dependencies: '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.28.0) + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + core-js-compat: 3.46.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0): + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) transitivePeerDependencies: - supports-color @@ -16625,6 +16941,8 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 + baseline-browser-mapping@2.8.16: {} + basic-auth@2.0.1: dependencies: safe-buffer: 5.1.2 @@ -16639,6 +16957,8 @@ snapshots: binaryextensions@2.3.0: {} + bind-decorator@1.0.11: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -17214,17 +17534,23 @@ snapshots: browser-process-hrtime@1.0.0: {} + browserslist-to-esbuild@2.1.1(browserslist@4.26.3): + dependencies: + browserslist: 4.26.3 + meow: 13.2.0 + browserslist@3.2.8: dependencies: - caniuse-lite: 1.0.30001692 - electron-to-chromium: 1.5.80 + caniuse-lite: 1.0.30001750 + electron-to-chromium: 1.5.237 - browserslist@4.24.4: + browserslist@4.26.3: dependencies: - caniuse-lite: 1.0.30001692 - electron-to-chromium: 1.5.80 - node-releases: 2.0.19 - update-browserslist-db: 1.1.2(browserslist@4.24.4) + baseline-browser-mapping: 2.8.16 + caniuse-lite: 1.0.30001750 + electron-to-chromium: 1.5.237 + node-releases: 2.0.23 + update-browserslist-db: 1.1.3(browserslist@4.26.3) bser@2.1.1: dependencies: @@ -17330,12 +17656,12 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001692 + browserslist: 4.26.3 + caniuse-lite: 1.0.30001750 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001692: {} + caniuse-lite@1.0.30001750: {} capture-exit@2.0.0: dependencies: @@ -17352,7 +17678,7 @@ snapshots: chalk-template@1.1.0: dependencies: - chalk: 5.4.1 + chalk: 5.6.2 chalk@1.1.3: dependencies: @@ -17373,7 +17699,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.4.1: {} + chalk@5.6.2: {} change-case@5.4.4: {} @@ -17754,9 +18080,9 @@ snapshots: copy-descriptor@0.1.1: {} - core-js-compat@3.41.0: + core-js-compat@3.46.0: dependencies: - browserslist: 4.24.4 + browserslist: 4.26.3 core-js@2.6.12: {} @@ -17920,7 +18246,7 @@ snapshots: '@cspell/cspell-types': 8.19.4 '@cspell/dynamic-import': 8.19.4 '@cspell/url': 8.19.4 - chalk: 5.4.1 + chalk: 5.6.2 chalk-template: 1.1.0 commander: 13.1.0 cspell-dictionary: 8.19.4 @@ -18319,7 +18645,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.80: {} + electron-to-chromium@1.5.237: {} ember-a11y-refocus@5.1.0(@babel/core@7.28.0)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: @@ -18380,7 +18706,7 @@ snapshots: ember-arg-types@1.1.0(@glint/template@1.5.2)(webpack@5.101.0): dependencies: - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.101.0) ember-cli-babel: 7.26.11 ember-cli-typescript: 5.3.0 @@ -18413,7 +18739,7 @@ snapshots: '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.0) '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.28.0) '@babel/preset-env': 7.26.9(@babel/core@7.28.0) - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@embroider/shared-internals': 2.9.1 babel-loader: 8.4.1(@babel/core@7.28.0)(webpack@5.101.0) babel-plugin-ember-modules-api-polyfill: 3.5.0 @@ -18452,7 +18778,7 @@ snapshots: dependencies: '@ember/test-helpers': 4.0.5(@babel/core@7.28.0)(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@embroider/util': 1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@glimmer/component': 2.0.0 decorator-transforms: 2.3.0(@babel/core@7.28.0) @@ -18473,7 +18799,7 @@ snapshots: dependencies: '@ember/test-helpers': 5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2) '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@embroider/util': 1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@glimmer/component': 2.0.0 decorator-transforms: 2.3.0(@babel/core@7.28.0) @@ -18494,7 +18820,7 @@ snapshots: dependencies: '@ember/test-helpers': 5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2) '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@embroider/util': 1.13.4(@glint/environment-ember-loose@1.5.2(@glimmer/component@2.0.0)(@glint/template@1.5.2)(ember-cli-htmlbars@6.3.0)(ember-modifier@4.2.2(@babel/core@7.28.0)))(@glint/template@1.5.2)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)) '@glimmer/component': 2.0.0 decorator-transforms: 2.3.0(@babel/core@7.28.0) @@ -18564,7 +18890,7 @@ snapshots: '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.28.0) '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.28.0) '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.28.0) + '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.28.0) '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) '@babel/polyfill': 7.12.1 '@babel/preset-env': 7.26.9(@babel/core@7.28.0) @@ -18600,7 +18926,7 @@ snapshots: '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.28.0) '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.28.0) '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.28.0) + '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.28.0) '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0) '@babel/preset-env': 7.26.9(@babel/core@7.28.0) '@babel/runtime': 7.12.18 @@ -18634,7 +18960,7 @@ snapshots: ember-cli-clipboard@1.3.0(@babel/core@7.28.0)(@ember/test-helpers@5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2))(@glint/template@1.5.2)(webpack@5.101.0): dependencies: '@ember/test-helpers': 5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2) - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) clipboard: 2.0.11 ember-arg-types: 1.1.0(@glint/template@1.5.2)(webpack@5.101.0) ember-auto-import: 2.10.0(@glint/template@1.5.2)(webpack@5.101.0) @@ -18657,15 +18983,6 @@ snapshots: resolve: 1.22.10 semver: 5.7.2 - ember-cli-dependency-checker@3.3.3(ember-cli@6.5.0(babel-core@6.26.3)(handlebars@4.7.8)(underscore@1.13.7)): - dependencies: - chalk: 2.4.2 - ember-cli: 6.5.0(babel-core@6.26.3)(handlebars@4.7.8)(underscore@1.13.7) - find-yarn-workspace-root: 2.0.0 - is-git-url: 1.0.0 - resolve: 1.22.10 - semver: 5.7.2 - ember-cli-deprecation-workflow@3.4.0(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: '@babel/core': 7.28.0 @@ -19207,7 +19524,7 @@ snapshots: ember-deep-tracked@2.0.1(@glint/template@1.5.2): dependencies: '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) ember-tracked-storage-polyfill: 1.0.0 transitivePeerDependencies: - '@glint/template' @@ -19307,7 +19624,7 @@ snapshots: ember-get-config@2.1.1(@glint/template@1.5.2): dependencies: - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) ember-cli-babel: 7.26.11 transitivePeerDependencies: - '@glint/template' @@ -19398,20 +19715,19 @@ snapshots: dependencies: ember-source: 6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5) - ember-math-helpers@4.2.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-math-helpers@3.0.0: dependencies: - '@embroider/addon-shim': 1.10.0 - ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + broccoli-funnel: 3.0.8 + ember-cli-babel: 7.26.11 + ember-cli-htmlbars: 6.3.0 transitivePeerDependencies: - supports-color - ember-math-helpers@5.0.0(@babel/core@7.28.0)(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + ember-math-helpers@4.2.1(ember-source@6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): dependencies: '@embroider/addon-shim': 1.10.0 - decorator-transforms: 2.3.0(@babel/core@7.28.0) - ember-source: 6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + ember-source: 6.4.0(@glimmer/component@2.0.0)(rsvp@4.8.5) transitivePeerDependencies: - - '@babel/core' - supports-color ember-meta@2.0.0: @@ -19442,6 +19758,14 @@ snapshots: - '@babel/core' - supports-color + ember-page-title@8.2.4(ember-source@6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5)): + dependencies: + '@embroider/addon-shim': 1.10.0 + '@simple-dom/document': 1.4.0 + ember-source: 6.5.0(@glimmer/component@2.0.0)(rsvp@4.8.5) + transitivePeerDependencies: + - supports-color + ember-page-title@9.0.2: dependencies: '@embroider/addon-shim': 1.10.0 @@ -19529,7 +19853,7 @@ snapshots: dependencies: '@ember/test-helpers': 5.2.2(@babel/core@7.28.0)(@glint/template@1.5.2) '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) qunit: 2.24.1 qunit-theme-ember: 1.0.0 transitivePeerDependencies: @@ -19545,7 +19869,7 @@ snapshots: ember-resources@7.0.7(@glimmer/component@2.0.0)(@glint/template@1.5.2): dependencies: '@embroider/addon-shim': 1.10.0 - '@embroider/macros': 1.18.1(@glint/template@1.5.2) + '@embroider/macros': 1.19.2(@glint/template@1.5.2) '@glint/template': 1.5.2 optionalDependencies: '@glimmer/component': 2.0.0 @@ -21792,7 +22116,7 @@ snapshots: is-language-code@3.1.0: dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 is-map@2.0.3: {} @@ -22417,6 +22741,33 @@ snapshots: - supports-color - utf-8-validate + jsdom@26.1.0: + dependencies: + cssstyle: 4.6.0 + data-urls: 5.0.0 + decimal.js: 10.6.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.21 + parse5: 7.3.0 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.18.3 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsesc@0.5.0: {} jsesc@1.3.0: {} @@ -22649,7 +23000,7 @@ snapshots: log-symbols@6.0.0: dependencies: - chalk: 5.4.1 + chalk: 5.6.2 is-unicode-supported: 1.3.0 longest-streak@2.0.4: {} @@ -22915,6 +23266,11 @@ snapshots: mimic-fn: 2.1.0 p-is-promise: 2.1.0 + mem@8.1.1: + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 3.1.0 + memfs@4.17.0: dependencies: '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1) @@ -23201,6 +23557,8 @@ snapshots: mimic-fn@2.1.0: {} + mimic-fn@3.1.0: {} + mimic-function@5.0.1: {} mimic-response@1.0.1: {} @@ -23359,7 +23717,7 @@ snapshots: uuid: 8.3.2 which: 2.0.2 - node-releases@2.0.19: {} + node-releases@2.0.23: {} node-watch@0.7.3: {} @@ -23546,7 +23904,7 @@ snapshots: ora@8.2.0: dependencies: - chalk: 5.4.1 + chalk: 5.6.2 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -24262,7 +24620,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 regex-not@1.0.2: dependencies: @@ -24755,6 +25113,24 @@ snapshots: semver@7.7.2: {} + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + send@0.19.0: dependencies: debug: 2.6.9 @@ -25270,7 +25646,7 @@ snapshots: '@bundled-es-modules/glob': 11.0.3 '@bundled-es-modules/memfs': 4.9.4 '@zip.js/zip.js': 2.7.54 - chalk: 5.4.1 + chalk: 5.6.2 change-case: 5.4.4 commander: 12.1.0 is-plain-obj: 4.1.0 @@ -26119,9 +26495,9 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.2(browserslist@4.24.4): + update-browserslist-db@1.1.3(browserslist@4.26.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.26.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -26224,6 +26600,23 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 + vite@6.4.0(@types/node@22.17.0)(sass@1.89.2)(sugarss@2.0.0)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.0): + dependencies: + esbuild: 0.25.8 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.2 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 22.17.0 + fsevents: 2.3.3 + sass: 1.89.2 + sugarss: 2.0.0 + terser: 5.39.0 + tsx: 4.20.3 + yaml: 2.8.0 + vscode-jsonrpc@8.1.0: {} vscode-languageserver-protocol@3.17.3: @@ -26324,7 +26717,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.15.0 acorn-import-phases: 1.0.4(acorn@8.15.0) - browserslist: 4.24.4 + browserslist: 4.26.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 es-module-lexer: 1.6.0 diff --git a/showcase/.gitignore b/showcase/.gitignore index f0dde6db94f..812161fb53a 100644 --- a/showcase/.gitignore +++ b/showcase/.gitignore @@ -1,3 +1,5 @@ +/tmp/ + # compiled output /dist/ /declarations/ diff --git a/showcase/app/app.ts b/showcase/app/app.ts index b62757efaec..9fc38e9c551 100644 --- a/showcase/app/app.ts +++ b/showcase/app/app.ts @@ -6,17 +6,21 @@ import Application from '@ember/application'; import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; +import compatModules from '@embroider/virtual/compat-modules'; import config from 'showcase/config/environment'; -import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros'; +import { isDevelopingApp, macroCondition } from '@embroider/macros'; +import setupInspector from '@embroider/legacy-inspector-support/ember-source-4.12'; if (macroCondition(isDevelopingApp())) { - importSync('./deprecation-workflow'); + await import('./deprecation-workflow'); } export default class App extends Application { modulePrefix = config.modulePrefix; podModulePrefix = config.podModulePrefix; - Resolver = Resolver; + Resolver = Resolver.withModules(compatModules); + + inspector = setupInspector(this); } -loadInitializers(App, config.modulePrefix); +loadInitializers(App, config.modulePrefix, compatModules); diff --git a/showcase/app/config/environment.js b/showcase/app/config/environment.js new file mode 100644 index 00000000000..684023ca70b --- /dev/null +++ b/showcase/app/config/environment.js @@ -0,0 +1,3 @@ +import loadConfigFromMeta from '@embroider/config-meta-loader'; + +export default loadConfigFromMeta('showcase'); diff --git a/showcase/app/router.ts b/showcase/app/router.ts index d83532978cf..59ad5ba4223 100644 --- a/showcase/app/router.ts +++ b/showcase/app/router.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: MPL-2.0 */ -import EmberRouter from '@ember/routing/router'; +import EmberRouter from '@embroider/router'; import config from 'showcase/config/environment'; export default class Router extends EmberRouter { diff --git a/showcase/babel.config.cjs b/showcase/babel.config.cjs new file mode 100644 index 00000000000..957298726c7 --- /dev/null +++ b/showcase/babel.config.cjs @@ -0,0 +1,50 @@ +const { + babelCompatSupport, + templateCompatSupport, +} = require('@embroider/compat/babel'); + +module.exports = { + plugins: [ + [ + '@babel/plugin-transform-typescript', + { + allExtensions: true, + onlyRemoveTypeImports: true, + allowDeclareFields: true, + }, + ], + [ + 'babel-plugin-ember-template-compilation', + { + compilerPath: 'ember-source/dist/ember-template-compiler.js', + enableLegacyModules: [ + 'ember-cli-htmlbars', + 'ember-cli-htmlbars-inline-precompile', + 'htmlbars-inline-precompile', + ], + transforms: [...templateCompatSupport()], + }, + ], + [ + 'module:decorator-transforms', + { + runtime: { + import: require.resolve('decorator-transforms/runtime-esm'), + }, + }, + ], + [ + '@babel/plugin-transform-runtime', + { + absoluteRuntime: __dirname, + useESModules: true, + regenerator: false, + }, + ], + ...babelCompatSupport(), + ], + + generatorOpts: { + compact: false, + }, +}; diff --git a/showcase/ember-cli-build.js b/showcase/ember-cli-build.js index 72fd5925260..b1ca15a469b 100644 --- a/showcase/ember-cli-build.js +++ b/showcase/ember-cli-build.js @@ -4,10 +4,13 @@ */ 'use strict'; - const EmberApp = require('ember-cli/lib/broccoli/ember-app'); -module.exports = function (defaults) { +const { compatBuild } = require('@embroider/compat'); + +module.exports = async function (defaults) { + const { buildOnce } = await import('@embroider/vite'); + const app = new EmberApp(defaults, { 'ember-cli-babel': { enableTypeScriptTransform: true, @@ -37,15 +40,5 @@ module.exports = function (defaults) { behave. You most likely want to be modifying `./index.js` or app's build file */ - const { maybeEmbroider } = require('@embroider/test-setup'); - return maybeEmbroider(app, { - skipBabel: [ - { - package: 'qunit', - }, - { - package: '@hashicorp/flight-icons', - }, - ], - }); + return compatBuild(app, buildOnce); }; diff --git a/showcase/eslint.config.mjs b/showcase/eslint.config.mjs index e07c87a0998..5a83e083fab 100644 --- a/showcase/eslint.config.mjs +++ b/showcase/eslint.config.mjs @@ -35,15 +35,6 @@ const parserOptions = { js: { ecmaFeatures: { modules: true }, ecmaVersion: 'latest', - requireConfigFile: false, - babelOptions: { - plugins: [ - [ - '@babel/plugin-proposal-decorators', - { decoratorsBeforeExport: true }, - ], - ], - }, }, ts: { projectService: true, @@ -109,10 +100,8 @@ export default ts.config( files: [ '**/*.cjs', 'config/**/*.js', - 'tests/dummy/config/**/*.js', 'testem.js', 'testem*.js', - 'index.js', '.prettierrc.js', '.stylelintrc.js', '.template-lintrc.js', diff --git a/showcase/app/index.html b/showcase/index.html similarity index 62% rename from showcase/app/index.html rename to showcase/index.html index 116b91e14f9..2166aa48dfa 100644 --- a/showcase/app/index.html +++ b/showcase/index.html @@ -14,8 +14,8 @@ {{content-for "head"}} - - + + @@ -24,8 +24,13 @@ {{content-for "body"}} - - + + {{content-for "body-footer"}} diff --git a/showcase/package.json b/showcase/package.json index 5ec97a5c457..385dd020a7f 100644 --- a/showcase/package.json +++ b/showcase/package.json @@ -10,11 +10,15 @@ }, "license": "MPL-2.0", "author": "HashiCorp Design Systems ", + "exports": { + "./tests/*": "./tests/*", + "./*": "./app/*" + }, "directories": { "test": "tests" }, "scripts": { - "build": "pnpm build:packages && ember build --environment=production", + "build": "pnpm build:packages && vite build", "build:packages": "pnpm -F @hashicorp/design-system-components build", "format": "prettier . --cache --write", "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto", @@ -27,18 +31,20 @@ "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", "lint:types": "glint", - "start": "pnpm build:packages && ember serve", + "start": "pnpm build:packages && vite", "test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\"", - "test:ember": "pnpm build:packages && ember test", - "test:ember-compatibility": "ember try:each", - "test:ember:percy": "percy exec ember test", "test:a11y": "pnpm build:packages && ENABLE_A11Y_AUDIT=true ember test --server -f=\"Acceptance\"", - "test:a11y-report": "pnpm build:packages && ENABLE_A11Y_AUDIT=true ENABLE_A11Y_MIDDLEWARE_REPORTER=true ember test -f=\"Acceptance\"" + "test:a11y-report": "pnpm build:packages && ENABLE_A11Y_AUDIT=true ENABLE_A11Y_MIDDLEWARE_REPORTER=true ember test -f=\"Acceptance\"", + "test:ember": "vite build --mode test && ember test --path dist", + "test:ember-compatibility": "ember try:each", + "test:ember:percy": "percy exec ember test" }, "devDependencies": { "@babel/core": "^7.27.1", "@babel/eslint-parser": "^7.27.1", - "@babel/plugin-proposal-decorators": "^7.27.1", + "@babel/plugin-transform-runtime": "^7.28.3", + "@babel/plugin-transform-typescript": "^7.27.1", + "@babel/runtime": "^7.27.1", "@codemirror/lint": "^6.8.4", "@codemirror/state": "^6.5.0", "@ember/optional-features": "^2.2.0", @@ -46,8 +52,14 @@ "@ember/string": "^4.0.1", "@ember/test-helpers": "^5.2.1", "@ember/test-waiters": "^3.1.0", - "@embroider/macros": "^1.18.1", + "@embroider/compat": "^4.1.8", + "@embroider/config-meta-loader": "^1.0.0", + "@embroider/core": "^4.2.5", + "@embroider/legacy-inspector-support": "^0.1.3", + "@embroider/macros": "^1.19.2", + "@embroider/router": "^3.0.4", "@embroider/test-setup": "^4.0.0", + "@embroider/vite": "^1.3.4", "@eslint/js": "^9.27.0", "@glimmer/component": "^2.0.0", "@glimmer/tracking": "^1.1.2", @@ -59,12 +71,14 @@ "@hashicorp/design-system-tokens": "workspace:*", "@nullvoxpopuli/ember-composable-helpers": "^5.2.11", "@percy/cli": "^1.30.5", - "@percy/ember": "^4.2.0", + "@percy/ember": "^5.0.0", + "@rollup/plugin-babel": "^6.0.4", "@tsconfig/ember": "^3.0.10", "@types/qunit": "^2.19.12", "@types/rsvp": "^4.0.9", - "broccoli-asset-rev": "^3.0.0", + "babel-plugin-ember-template-compilation": "^2.4.1", "concurrently": "^9.1.2", + "decorator-transforms": "^2.3.0", "ember-a11y-testing": "^7.1.2", "ember-auto-import": "^2.10.0", "ember-basic-dropdown": "^8.6.1", @@ -72,32 +86,26 @@ "ember-cli": "~6.5.0", "ember-cli-app-version": "^7.0.0", "ember-cli-babel": "^8.2.0", - "ember-cli-clean-css": "^3.0.0", - "ember-cli-dependency-checker": "^3.3.3", "ember-cli-deprecation-workflow": "^3.3.0", "ember-cli-htmlbars": "^6.3.0", - "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sass": "^11.0.1", - "ember-cli-sri": "^2.1.1", "ember-cli-string-helpers": "^8.0.1", "ember-cli-string-utils": "^1.1.0", - "ember-cli-terser": "^4.0.2", - "ember-concurrency": "^4.0.4", + "ember-concurrency": "^4.0.2", "ember-deep-tracked": "^2.0.1", "ember-intl": "^7.3.0", "ember-load-initializers": "^3.0.1", - "ember-math-helpers": "^5.0.0", - "ember-modifier": "^4.2.2", - "ember-page-title": "^9.0.2", - "ember-power-select": "^8.7.1", + "ember-math-helpers": "^3.0.0", + "ember-modifier": "^4.2.0", + "ember-page-title": "^8.2.3", + "ember-power-select": "^8.6.2", "ember-qunit": "^9.0.3", - "ember-resolver": "^13.1.1", + "ember-resolver": "^13.1.0", "ember-router-generator": "^2.0.0", "ember-set-helper": "^3.0.1", "ember-source": "~6.5.0", "ember-source-channel-url": "^3.0.0", "ember-style-modifier": "^4.4.0", - "ember-template-imports": "^4.3.0", "ember-template-lint": "^7.7.0", "ember-truth-helpers": "^4.0.3", "ember-try": "^4.0.0", @@ -108,7 +116,6 @@ "eslint-plugin-qunit": "^8.1.2", "fs-extra": "^11.3.0", "globals": "^16.1.0", - "loader.js": "^4.7.0", "postcss": "^8.5.3", "prettier": "^3.5.3", "prettier-plugin-ember-template-tag": "^2.0.5", @@ -123,12 +130,16 @@ "tracked-built-ins": "^4.0.0", "typescript": "^5.8.3", "typescript-eslint": "^8.32.1", - "webpack": "^5.99.9" + "vite": "^6.3.5" }, "engines": { "node": ">= 22" }, "ember": { "edition": "octane" + }, + "ember-addon": { + "type": "app", + "version": 2 } } diff --git a/showcase/testem.js b/showcase/testem.js index 3b807279db2..ce22ada0af5 100644 --- a/showcase/testem.js +++ b/showcase/testem.js @@ -4,26 +4,27 @@ */ 'use strict'; - -module.exports = { - test_page: 'tests/index.html?hidepassed', - disable_watching: true, - launch_in_ci: ['Chrome'], - launch_in_dev: ['Chrome'], - browser_disconnect_timeout: 20, - browser_start_timeout: 120, - browser_args: { - Chrome: { - ci: [ - // --no-sandbox is needed when running Chrome inside a container - process.env.CI ? '--no-sandbox' : null, - '--headless', - '--disable-dev-shm-usage', - '--disable-software-rasterizer', - '--mute-audio', - '--remote-debugging-port=0', - '--window-size=1440,900', - ].filter(Boolean), +if (typeof module !== 'undefined') { + module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: ['Chrome'], + launch_in_dev: ['Chrome'], + browser_disconnect_timeout: 20, + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? '--no-sandbox' : null, + '--headless', + '--disable-dev-shm-usage', + '--disable-software-rasterizer', + '--mute-audio', + '--remote-debugging-port=0', + '--window-size=1440,900', + ].filter(Boolean), + }, }, - }, -}; + }; +} diff --git a/showcase/tests/index.html b/showcase/tests/index.html index 5fa64784feb..72acf1e30df 100644 --- a/showcase/tests/index.html +++ b/showcase/tests/index.html @@ -14,9 +14,9 @@ {{content-for "head"}} {{content-for "test-head"}} - - - + + + {{content-for "head-footer"}} {{content-for "test-head-footer"}} @@ -34,12 +34,17 @@ - - - - + + + + + {{content-for "body-footer"}} - {{content-for "test-body-footer"}} + diff --git a/showcase/tests/test-helper.ts b/showcase/tests/test-helper.ts index e18858128a1..de82db3ce80 100644 --- a/showcase/tests/test-helper.ts +++ b/showcase/tests/test-helper.ts @@ -8,8 +8,7 @@ import config from 'showcase/config/environment'; import * as QUnit from 'qunit'; import { setApplication } from '@ember/test-helpers'; import { setup } from 'qunit-dom'; -import { loadTests } from 'ember-qunit/test-loader'; -import { start, setupEmberOnerrorValidation } from 'ember-qunit'; +import { start as qunitStart, setupEmberOnerrorValidation } from 'ember-qunit'; import { DEFAULT_A11Y_TEST_HELPER_NAMES, setRunOptions, @@ -20,50 +19,52 @@ import { setupMiddlewareReporter, } from 'ember-a11y-testing/test-support'; -setApplication(Application.create(config.APP)); +export function start() { + setApplication(Application.create(config.APP)); -setupGlobalA11yHooks(() => true, { - helpers: [ - ...DEFAULT_A11Y_TEST_HELPER_NAMES, - 'render', - 'tab', - 'focus', - 'select', - ], -}); - -setRunOptions({ - runOnly: { - type: 'tag', - values: [ - 'wcag2a', - 'wcag2aa', - 'wcag21a', - 'wcag21aa', - 'wcag22aa', - 'best-practice', + setupGlobalA11yHooks(() => true, { + helpers: [ + ...DEFAULT_A11Y_TEST_HELPER_NAMES, + 'render', + 'tab', + 'focus', + 'select', ], - }, - // @ts-expect-error: This is a valid option - include: [['#ember-testing-container']], - exclude: [['.flight-sprite-container'], ['.shw-page-main']], -}); + }); -// This will be used by developers to run the tests locally -// Either with the `enableA11yAudit` as a query param in the URL -// or `pnpm test:a11y` in the CLI -// Note: if you want to filter what test is run from the start, use the --filter flag: `pnpm test:a11y --filter="alert"` -// Docs: https://guides.emberjs.com/release/testing/#toc_how-to-filter-tests -if (shouldForceAudit()) { - setEnableA11yAudit(true); -} -// Note, as a convenience, useMiddlewareReporter automatically forces audits, thus explicitly specifying the enableA11yAudit query param or the ENABLE_A11Y_AUDIT environment variable is unnecessary. -if (useMiddlewareReporter()) { - // Only runs if `enableA11yMiddlewareReporter` is set in URL - setupMiddlewareReporter(); -} + setRunOptions({ + runOnly: { + type: 'tag', + values: [ + 'wcag2a', + 'wcag2aa', + 'wcag21a', + 'wcag21aa', + 'wcag22aa', + 'best-practice', + ], + }, + // @ts-expect-error: This is a valid option + include: [['#ember-testing-container']], + exclude: [['.flight-sprite-container'], ['.shw-page-main']], + }); -setup(QUnit.assert); -setupEmberOnerrorValidation(); -loadTests(); -start(); + // This will be used by developers to run the tests locally + // Either with the `enableA11yAudit` as a query param in the URL + // or `pnpm test:a11y` in the CLI + // Note: if you want to filter what test is run from the start, use the --filter flag: `pnpm test:a11y --filter="alert"` + // Docs: https://guides.emberjs.com/release/testing/#toc_how-to-filter-tests + if (shouldForceAudit()) { + setEnableA11yAudit(true); + } + // Note, as a convenience, useMiddlewareReporter automatically forces audits, thus explicitly specifying the enableA11yAudit query param or the ENABLE_A11Y_AUDIT environment variable is unnecessary. + if (useMiddlewareReporter()) { + // Only runs if `enableA11yMiddlewareReporter` is set in URL + setupMiddlewareReporter(); + } + + setup(QUnit.assert); + + setupEmberOnerrorValidation(); + qunitStart(); +} diff --git a/showcase/types/global.d.ts b/showcase/types/global.d.ts index 7855d716470..8d540a2adc0 100644 --- a/showcase/types/global.d.ts +++ b/showcase/types/global.d.ts @@ -2,6 +2,7 @@ * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ - +/// +/// import '@glint/environment-ember-loose'; import '@glint/environment-ember-template-imports'; diff --git a/showcase/vite.config.mjs b/showcase/vite.config.mjs new file mode 100644 index 00000000000..219253dbea9 --- /dev/null +++ b/showcase/vite.config.mjs @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import { extensions, classicEmberSupport, ember } from '@embroider/vite'; +import { babel } from '@rollup/plugin-babel'; + +export default defineConfig({ + plugins: [ + classicEmberSupport(), + ember(), + // extra plugins here + babel({ + babelHelpers: 'runtime', + extensions, + }), + ], +}); diff --git a/website/app/services/head-data.js b/website/app/services/head-data.js index d51951f064d..855a39a855f 100644 --- a/website/app/services/head-data.js +++ b/website/app/services/head-data.js @@ -7,8 +7,6 @@ import HeadDataService from 'ember-meta/services/head-data'; import { service } from '@ember/service'; import config from 'website/config/environment'; -import config from 'website/config/environment'; - export default class CustomHeadDataService extends HeadDataService { @service router;