├── .changeset ├── config.json └── format-changelogs.cjs ├── .github ├── ISSUE_TEMPLATE │ ├── ask-for-better-documentation.md │ ├── ask-for-new-feature-or-refactor.md │ ├── report-bug.md │ └── report-outdated-dependency.md └── workflows │ └── CI.yml ├── .gitignore ├── .npmignore ├── .prettierignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── bin └── ember-codemod-args-to-signature.ts ├── build.sh ├── eslint.config.mjs ├── package.json ├── pnpm-lock.yaml ├── prettier.config.mjs ├── src ├── blueprints │ └── ember-cli │ │ └── template-only-component.ts ├── index.ts ├── steps │ ├── analyze-project.ts │ ├── analyze-project │ │ ├── analyze-components.ts │ │ ├── analyze-components │ │ │ ├── find-arguments.ts │ │ │ ├── find-blocks.ts │ │ │ ├── find-element.ts │ │ │ └── index.ts │ │ ├── filter-components.ts │ │ ├── find-components.ts │ │ └── index.ts │ ├── create-options.ts │ ├── create-registries.ts │ ├── create-registries │ │ ├── create-registry.ts │ │ ├── has-registry.ts │ │ ├── index.ts │ │ ├── rename-component.ts │ │ └── rename-component │ │ │ ├── index.ts │ │ │ ├── pass-component-name-to-base-component.ts │ │ │ └── update-references.ts │ ├── create-signatures.ts │ ├── create-signatures │ │ ├── create-signature.ts │ │ ├── create-signature │ │ │ ├── builders.ts │ │ │ ├── index.ts │ │ │ ├── is-signature.ts │ │ │ ├── pass-signature-to-base-component.ts │ │ │ ├── update-constructor.ts │ │ │ └── update-reference.ts │ │ └── index.ts │ ├── create-template-only-components.ts │ ├── index.ts │ ├── update-signatures.ts │ └── update-signatures │ │ ├── builders.ts │ │ ├── index.ts │ │ └── update-signature.ts ├── types │ └── index.ts └── utils │ ├── blueprints.ts │ ├── blueprints │ └── blueprints-root.ts │ ├── components.ts │ └── components │ ├── analyze-file-paths.ts │ ├── get-base-component.ts │ ├── get-block-parameter.type.ts │ ├── get-component-file-path.ts │ ├── get-html-interface.ts │ └── normalize-block-name.ts ├── tests ├── fixtures │ ├── classic-components │ │ ├── index.ts │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.js │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.hbs │ │ │ │ └── tracks.js │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.js │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.hbs │ │ │ └── tracks.js │ ├── ember-container-query-addon │ │ ├── index.ts │ │ ├── input │ │ │ └── addon │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.d.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ ├── list.ts │ │ │ │ ├── table.d.ts │ │ │ │ └── table.hbs │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── information.d.ts │ │ │ │ │ ├── information.hbs │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-1 │ │ │ │ ├── item.d.ts │ │ │ │ └── item.hbs │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ ├── tour-schedule.hbs │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ ├── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ │ ├── actions.hbs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── body.hbs │ │ │ │ │ ├── body.ts │ │ │ │ │ ├── header.hbs │ │ │ │ │ └── header.ts │ │ │ │ ├── widget-5.d.ts │ │ │ │ └── widget-5.hbs │ │ └── output │ │ │ └── addon │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.d.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ ├── list.ts │ │ │ ├── table.d.ts │ │ │ ├── table.hbs │ │ │ └── table.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── information.d.ts │ │ │ │ ├── information.hbs │ │ │ │ ├── information.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-1 │ │ │ ├── item.d.ts │ │ │ ├── item.hbs │ │ │ └── item.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ ├── tour-schedule.d.ts │ │ │ ├── tour-schedule.hbs │ │ │ ├── tour-schedule.ts │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ ├── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ │ ├── widget-5.d.ts │ │ │ ├── widget-5.hbs │ │ │ └── widget-5.ts │ ├── ember-container-query-glint │ │ ├── index.ts │ │ ├── input │ │ │ └── src │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ ├── list.ts │ │ │ │ ├── table.hbs │ │ │ │ └── table.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── information.hbs │ │ │ │ │ ├── information.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-1 │ │ │ │ ├── item.hbs │ │ │ │ └── item.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ ├── tour-schedule.hbs │ │ │ │ ├── tour-schedule.ts │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ ├── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ │ ├── actions.hbs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── body.hbs │ │ │ │ │ ├── body.ts │ │ │ │ │ ├── header.hbs │ │ │ │ │ └── header.ts │ │ │ │ ├── widget-5.hbs │ │ │ │ └── widget-5.ts │ │ └── output │ │ │ └── src │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ ├── list.ts │ │ │ ├── table.hbs │ │ │ └── table.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── information.hbs │ │ │ │ ├── information.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-1 │ │ │ ├── item.hbs │ │ │ └── item.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ ├── tour-schedule.hbs │ │ │ ├── tour-schedule.ts │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ ├── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ │ ├── widget-5.hbs │ │ │ └── widget-5.ts │ ├── ember-container-query-nested │ │ ├── index.ts │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ │ └── image │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ ├── tracks │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.hbs │ │ │ │ ├── list │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ └── table │ │ │ │ │ ├── index.d.ts │ │ │ │ │ └── index.hbs │ │ │ │ ├── ui │ │ │ │ ├── form │ │ │ │ │ ├── checkbox │ │ │ │ │ │ ├── index.hbs │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── field │ │ │ │ │ │ ├── index.hbs │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.hbs │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── information │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ └── index.hbs │ │ │ │ │ ├── input │ │ │ │ │ │ ├── index.hbs │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── textarea │ │ │ │ │ │ ├── index.hbs │ │ │ │ │ │ └── index.ts │ │ │ │ └── page │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1 │ │ │ │ ├── index.hbs │ │ │ │ ├── index.ts │ │ │ │ └── item │ │ │ │ │ ├── index.d.ts │ │ │ │ │ └── index.hbs │ │ │ │ ├── widget-2 │ │ │ │ ├── captions │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ ├── index.hbs │ │ │ │ ├── index.ts │ │ │ │ └── stacked-chart │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ ├── widget-3 │ │ │ │ ├── index.hbs │ │ │ │ ├── index.ts │ │ │ │ └── tour-schedule │ │ │ │ │ ├── index.d.ts │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── responsive-image │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ ├── widget-4 │ │ │ │ ├── index.hbs │ │ │ │ ├── index.ts │ │ │ │ └── memo │ │ │ │ │ ├── actions │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ │ ├── body │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ │ ├── header │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ └── widget-5 │ │ │ │ ├── index.d.ts │ │ │ │ └── index.hbs │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu │ │ │ ├── index.hbs │ │ │ └── index.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ │ └── image │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ ├── tracks │ │ │ ├── index.d.ts │ │ │ ├── index.hbs │ │ │ ├── index.ts │ │ │ ├── list │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ └── table │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ ├── ui │ │ │ ├── form │ │ │ │ ├── checkbox │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ ├── field │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ ├── index.hbs │ │ │ │ ├── index.ts │ │ │ │ ├── information │ │ │ │ │ ├── index.d.ts │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ ├── input │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ │ └── textarea │ │ │ │ │ ├── index.hbs │ │ │ │ │ └── index.ts │ │ │ └── page │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ └── widgets │ │ │ ├── widget-1 │ │ │ ├── index.hbs │ │ │ ├── index.ts │ │ │ └── item │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ ├── widget-2 │ │ │ ├── captions │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ ├── index.hbs │ │ │ ├── index.ts │ │ │ └── stacked-chart │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ ├── widget-3 │ │ │ ├── index.hbs │ │ │ ├── index.ts │ │ │ └── tour-schedule │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.hbs │ │ │ │ ├── index.ts │ │ │ │ └── responsive-image │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ ├── widget-4 │ │ │ ├── index.hbs │ │ │ ├── index.ts │ │ │ └── memo │ │ │ │ ├── actions │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ │ ├── body │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ │ ├── header │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ │ ├── index.hbs │ │ │ │ └── index.ts │ │ │ └── widget-5 │ │ │ ├── index.d.ts │ │ │ ├── index.hbs │ │ │ └── index.ts │ ├── ember-container-query-no-args │ │ ├── index.ts │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ ├── list.ts │ │ │ │ └── table.hbs │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── information.hbs │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-1 │ │ │ │ └── item.hbs │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ ├── tour-schedule.hbs │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ ├── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ │ ├── actions.hbs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── body.hbs │ │ │ │ │ ├── body.ts │ │ │ │ │ ├── header.hbs │ │ │ │ │ └── header.ts │ │ │ │ └── widget-5.hbs │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ ├── list.ts │ │ │ ├── table.hbs │ │ │ └── table.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── information.hbs │ │ │ │ ├── information.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-1 │ │ │ ├── item.hbs │ │ │ └── item.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ ├── tour-schedule.hbs │ │ │ ├── tour-schedule.ts │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ ├── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ │ ├── widget-5.hbs │ │ │ └── widget-5.ts │ ├── ember-container-query │ │ ├── index.ts │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.d.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ ├── list.ts │ │ │ │ ├── table.d.ts │ │ │ │ └── table.hbs │ │ │ │ ├── types.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── information.d.ts │ │ │ │ │ ├── information.hbs │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-1 │ │ │ │ ├── item.d.ts │ │ │ │ └── item.hbs │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ ├── tour-schedule.hbs │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ ├── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ │ ├── actions.hbs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── body.hbs │ │ │ │ │ ├── body.ts │ │ │ │ │ ├── header.hbs │ │ │ │ │ └── header.ts │ │ │ │ ├── widget-5.d.ts │ │ │ │ └── widget-5.hbs │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.d.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ ├── list.ts │ │ │ ├── table.d.ts │ │ │ ├── table.hbs │ │ │ └── table.ts │ │ │ ├── types.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── information.d.ts │ │ │ │ ├── information.hbs │ │ │ │ ├── information.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-1 │ │ │ ├── item.d.ts │ │ │ ├── item.hbs │ │ │ └── item.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ ├── tour-schedule.d.ts │ │ │ ├── tour-schedule.hbs │ │ │ ├── tour-schedule.ts │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ ├── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ │ ├── widget-5.d.ts │ │ │ ├── widget-5.hbs │ │ │ └── widget-5.ts │ └── steps │ │ ├── create-registries │ │ ├── has-backing-class │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── navigation-menu.hbs │ │ │ │ │ ├── navigation-menu.ts │ │ │ │ │ ├── products │ │ │ │ │ └── product │ │ │ │ │ │ ├── card.hbs │ │ │ │ │ │ ├── card.ts │ │ │ │ │ │ ├── image.hbs │ │ │ │ │ │ └── image.ts │ │ │ │ │ ├── tracks │ │ │ │ │ ├── list.hbs │ │ │ │ │ └── list.ts │ │ │ │ │ ├── ui │ │ │ │ │ ├── form.hbs │ │ │ │ │ ├── form.ts │ │ │ │ │ ├── form │ │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ │ ├── field.hbs │ │ │ │ │ │ ├── field.ts │ │ │ │ │ │ ├── input.hbs │ │ │ │ │ │ ├── input.ts │ │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ │ └── textarea.ts │ │ │ │ │ ├── page.hbs │ │ │ │ │ └── page.ts │ │ │ │ │ └── widgets │ │ │ │ │ ├── widget-1.hbs │ │ │ │ │ ├── widget-1.ts │ │ │ │ │ ├── widget-2.hbs │ │ │ │ │ ├── widget-2.ts │ │ │ │ │ ├── widget-2 │ │ │ │ │ ├── captions.hbs │ │ │ │ │ ├── captions.ts │ │ │ │ │ ├── stacked-chart.hbs │ │ │ │ │ └── stacked-chart.ts │ │ │ │ │ ├── widget-3.hbs │ │ │ │ │ ├── widget-3.ts │ │ │ │ │ ├── widget-3 │ │ │ │ │ └── tour-schedule │ │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ │ └── responsive-image.ts │ │ │ │ │ ├── widget-4.hbs │ │ │ │ │ ├── widget-4.ts │ │ │ │ │ └── widget-4 │ │ │ │ │ ├── memo.hbs │ │ │ │ │ ├── memo.ts │ │ │ │ │ └── memo │ │ │ │ │ ├── actions.hbs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── body.hbs │ │ │ │ │ ├── body.ts │ │ │ │ │ ├── header.hbs │ │ │ │ │ └── header.ts │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ └── list.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ └── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ ├── has-declaration-file │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── tracks.d.ts │ │ │ │ │ ├── tracks.hbs │ │ │ │ │ ├── tracks.ts │ │ │ │ │ └── widgets │ │ │ │ │ └── widget-3 │ │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ │ ├── tour-schedule.hbs │ │ │ │ │ └── tour-schedule.ts │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── tracks.d.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ └── widgets │ │ │ │ └── widget-3 │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ ├── tour-schedule.hbs │ │ │ │ └── tour-schedule.ts │ │ ├── has-hbs-file-only │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── ui │ │ │ │ │ └── form │ │ │ │ │ │ ├── information.hbs │ │ │ │ │ │ └── information.ts │ │ │ │ │ └── widgets │ │ │ │ │ ├── widget-5.hbs │ │ │ │ │ └── widget-5.ts │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── ui │ │ │ │ └── form │ │ │ │ │ ├── information.hbs │ │ │ │ │ └── information.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-5.hbs │ │ │ │ └── widget-5.ts │ │ └── has-no-args │ │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ └── list.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ └── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ └── list.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ └── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ ├── actions.hbs │ │ │ ├── actions.ts │ │ │ ├── body.hbs │ │ │ ├── body.ts │ │ │ ├── header.hbs │ │ │ └── header.ts │ │ ├── create-signatures │ │ ├── has-backing-class │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── navigation-menu.hbs │ │ │ │ │ ├── navigation-menu.ts │ │ │ │ │ ├── products │ │ │ │ │ └── product │ │ │ │ │ │ ├── card.hbs │ │ │ │ │ │ ├── card.ts │ │ │ │ │ │ ├── image.hbs │ │ │ │ │ │ └── image.ts │ │ │ │ │ ├── tracks │ │ │ │ │ ├── list.hbs │ │ │ │ │ └── list.ts │ │ │ │ │ ├── ui │ │ │ │ │ ├── form.hbs │ │ │ │ │ ├── form.ts │ │ │ │ │ ├── form │ │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ │ ├── field.hbs │ │ │ │ │ │ ├── field.ts │ │ │ │ │ │ ├── input.hbs │ │ │ │ │ │ ├── input.ts │ │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ │ └── textarea.ts │ │ │ │ │ ├── page.hbs │ │ │ │ │ └── page.ts │ │ │ │ │ └── widgets │ │ │ │ │ ├── widget-1.hbs │ │ │ │ │ ├── widget-1.ts │ │ │ │ │ ├── widget-2.hbs │ │ │ │ │ ├── widget-2.ts │ │ │ │ │ ├── widget-2 │ │ │ │ │ ├── captions.hbs │ │ │ │ │ ├── captions.ts │ │ │ │ │ ├── stacked-chart.hbs │ │ │ │ │ └── stacked-chart.ts │ │ │ │ │ ├── widget-3.hbs │ │ │ │ │ ├── widget-3.ts │ │ │ │ │ ├── widget-3 │ │ │ │ │ └── tour-schedule │ │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ │ └── responsive-image.ts │ │ │ │ │ ├── widget-4.hbs │ │ │ │ │ ├── widget-4.ts │ │ │ │ │ └── widget-4 │ │ │ │ │ ├── memo.hbs │ │ │ │ │ ├── memo.ts │ │ │ │ │ └── memo │ │ │ │ │ ├── actions.hbs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── body.hbs │ │ │ │ │ ├── body.ts │ │ │ │ │ ├── header.hbs │ │ │ │ │ └── header.ts │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ └── list.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ └── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ ├── has-declaration-file │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── tracks.d.ts │ │ │ │ │ ├── tracks.hbs │ │ │ │ │ ├── tracks.ts │ │ │ │ │ └── widgets │ │ │ │ │ └── widget-3 │ │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ │ ├── tour-schedule.hbs │ │ │ │ │ └── tour-schedule.ts │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── tracks.d.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ └── widgets │ │ │ │ └── widget-3 │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ ├── tour-schedule.hbs │ │ │ │ └── tour-schedule.ts │ │ ├── has-hbs-file-only │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── ui │ │ │ │ │ └── form │ │ │ │ │ │ ├── information.hbs │ │ │ │ │ │ └── information.ts │ │ │ │ │ └── widgets │ │ │ │ │ ├── widget-5.hbs │ │ │ │ │ └── widget-5.ts │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── ui │ │ │ │ └── form │ │ │ │ │ ├── information.hbs │ │ │ │ │ └── information.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-5.hbs │ │ │ │ └── widget-5.ts │ │ └── has-no-args │ │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ └── list.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ └── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ └── list.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ └── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ ├── actions.hbs │ │ │ ├── actions.ts │ │ │ ├── body.hbs │ │ │ ├── body.ts │ │ │ ├── header.hbs │ │ │ └── header.ts │ │ ├── create-template-only-components │ │ ├── has-backing-class │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── navigation-menu.hbs │ │ │ │ │ ├── navigation-menu.ts │ │ │ │ │ ├── products │ │ │ │ │ └── product │ │ │ │ │ │ ├── card.hbs │ │ │ │ │ │ ├── card.ts │ │ │ │ │ │ ├── image.hbs │ │ │ │ │ │ └── image.ts │ │ │ │ │ ├── tracks │ │ │ │ │ ├── list.hbs │ │ │ │ │ └── list.ts │ │ │ │ │ ├── ui │ │ │ │ │ ├── form.hbs │ │ │ │ │ ├── form.ts │ │ │ │ │ ├── form │ │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ │ ├── field.hbs │ │ │ │ │ │ ├── field.ts │ │ │ │ │ │ ├── input.hbs │ │ │ │ │ │ ├── input.ts │ │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ │ └── textarea.ts │ │ │ │ │ ├── page.hbs │ │ │ │ │ └── page.ts │ │ │ │ │ └── widgets │ │ │ │ │ ├── widget-1.hbs │ │ │ │ │ ├── widget-1.ts │ │ │ │ │ ├── widget-2.hbs │ │ │ │ │ ├── widget-2.ts │ │ │ │ │ ├── widget-2 │ │ │ │ │ ├── captions.hbs │ │ │ │ │ ├── captions.ts │ │ │ │ │ ├── stacked-chart.hbs │ │ │ │ │ └── stacked-chart.ts │ │ │ │ │ ├── widget-3.hbs │ │ │ │ │ ├── widget-3.ts │ │ │ │ │ ├── widget-3 │ │ │ │ │ └── tour-schedule │ │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ │ └── responsive-image.ts │ │ │ │ │ ├── widget-4.hbs │ │ │ │ │ ├── widget-4.ts │ │ │ │ │ └── widget-4 │ │ │ │ │ ├── memo.hbs │ │ │ │ │ ├── memo.ts │ │ │ │ │ └── memo │ │ │ │ │ ├── actions.hbs │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── body.hbs │ │ │ │ │ ├── body.ts │ │ │ │ │ ├── header.hbs │ │ │ │ │ └── header.ts │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ └── list.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ └── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ ├── has-declaration-file │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── tracks.d.ts │ │ │ │ │ ├── tracks.hbs │ │ │ │ │ └── widgets │ │ │ │ │ └── widget-3 │ │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ │ └── tour-schedule.hbs │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── tracks.d.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ └── widgets │ │ │ │ └── widget-3 │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ ├── tour-schedule.hbs │ │ │ │ └── tour-schedule.ts │ │ ├── has-hbs-file-only │ │ │ ├── input │ │ │ │ └── app │ │ │ │ │ └── components │ │ │ │ │ ├── ui │ │ │ │ │ └── form │ │ │ │ │ │ └── information.hbs │ │ │ │ │ └── widgets │ │ │ │ │ └── widget-5.hbs │ │ │ └── output │ │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── ui │ │ │ │ └── form │ │ │ │ │ ├── information.hbs │ │ │ │ │ └── information.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-5.hbs │ │ │ │ └── widget-5.ts │ │ └── has-no-args │ │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ └── list.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ └── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ └── list.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ └── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ ├── actions.hbs │ │ │ ├── actions.ts │ │ │ ├── body.hbs │ │ │ ├── body.ts │ │ │ ├── header.hbs │ │ │ └── header.ts │ │ └── update-signatures │ │ ├── has-backing-class │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── navigation-menu.hbs │ │ │ │ ├── navigation-menu.ts │ │ │ │ ├── products │ │ │ │ └── product │ │ │ │ │ ├── card.hbs │ │ │ │ │ ├── card.ts │ │ │ │ │ ├── image.hbs │ │ │ │ │ └── image.ts │ │ │ │ ├── tracks │ │ │ │ ├── list.hbs │ │ │ │ └── list.ts │ │ │ │ ├── ui │ │ │ │ ├── form.hbs │ │ │ │ ├── form.ts │ │ │ │ ├── form │ │ │ │ │ ├── checkbox.hbs │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── field.hbs │ │ │ │ │ ├── field.ts │ │ │ │ │ ├── input.hbs │ │ │ │ │ ├── input.ts │ │ │ │ │ ├── textarea.hbs │ │ │ │ │ └── textarea.ts │ │ │ │ ├── page.hbs │ │ │ │ └── page.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-1.hbs │ │ │ │ ├── widget-1.ts │ │ │ │ ├── widget-2.hbs │ │ │ │ ├── widget-2.ts │ │ │ │ ├── widget-2 │ │ │ │ ├── captions.hbs │ │ │ │ ├── captions.ts │ │ │ │ ├── stacked-chart.hbs │ │ │ │ └── stacked-chart.ts │ │ │ │ ├── widget-3.hbs │ │ │ │ ├── widget-3.ts │ │ │ │ ├── widget-3 │ │ │ │ └── tour-schedule │ │ │ │ │ ├── responsive-image.hbs │ │ │ │ │ └── responsive-image.ts │ │ │ │ ├── widget-4.hbs │ │ │ │ ├── widget-4.ts │ │ │ │ └── widget-4 │ │ │ │ ├── memo.hbs │ │ │ │ ├── memo.ts │ │ │ │ └── memo │ │ │ │ ├── actions.hbs │ │ │ │ ├── actions.ts │ │ │ │ ├── body.hbs │ │ │ │ ├── body.ts │ │ │ │ ├── header.hbs │ │ │ │ └── header.ts │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ └── list.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ └── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ ├── actions.hbs │ │ │ ├── actions.ts │ │ │ ├── body.hbs │ │ │ ├── body.ts │ │ │ ├── header.hbs │ │ │ └── header.ts │ │ ├── has-declaration-file │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── tracks.d.ts │ │ │ │ ├── tracks.hbs │ │ │ │ ├── tracks.ts │ │ │ │ └── widgets │ │ │ │ └── widget-3 │ │ │ │ ├── tour-schedule.d.ts │ │ │ │ ├── tour-schedule.hbs │ │ │ │ └── tour-schedule.ts │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── tracks.d.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ └── widgets │ │ │ └── widget-3 │ │ │ ├── tour-schedule.d.ts │ │ │ ├── tour-schedule.hbs │ │ │ └── tour-schedule.ts │ │ ├── has-hbs-file-only │ │ ├── input │ │ │ └── app │ │ │ │ └── components │ │ │ │ ├── ui │ │ │ │ └── form │ │ │ │ │ ├── information.hbs │ │ │ │ │ └── information.ts │ │ │ │ └── widgets │ │ │ │ ├── widget-5.hbs │ │ │ │ └── widget-5.ts │ │ └── output │ │ │ └── app │ │ │ └── components │ │ │ ├── ui │ │ │ └── form │ │ │ │ ├── information.hbs │ │ │ │ └── information.ts │ │ │ └── widgets │ │ │ ├── widget-5.hbs │ │ │ └── widget-5.ts │ │ └── has-no-args │ │ ├── input │ │ └── app │ │ │ └── components │ │ │ ├── navigation-menu.hbs │ │ │ ├── navigation-menu.ts │ │ │ ├── products │ │ │ └── product │ │ │ │ ├── card.hbs │ │ │ │ ├── card.ts │ │ │ │ ├── image.hbs │ │ │ │ └── image.ts │ │ │ ├── tracks.hbs │ │ │ ├── tracks.ts │ │ │ ├── tracks │ │ │ ├── list.hbs │ │ │ └── list.ts │ │ │ ├── ui │ │ │ ├── form.hbs │ │ │ ├── form.ts │ │ │ ├── form │ │ │ │ ├── checkbox.hbs │ │ │ │ ├── checkbox.ts │ │ │ │ ├── field.hbs │ │ │ │ ├── field.ts │ │ │ │ ├── input.hbs │ │ │ │ ├── input.ts │ │ │ │ ├── textarea.hbs │ │ │ │ └── textarea.ts │ │ │ ├── page.hbs │ │ │ └── page.ts │ │ │ └── widgets │ │ │ ├── widget-1.hbs │ │ │ ├── widget-1.ts │ │ │ ├── widget-2.hbs │ │ │ ├── widget-2.ts │ │ │ ├── widget-2 │ │ │ ├── captions.hbs │ │ │ ├── captions.ts │ │ │ ├── stacked-chart.hbs │ │ │ └── stacked-chart.ts │ │ │ ├── widget-3.hbs │ │ │ ├── widget-3.ts │ │ │ ├── widget-3 │ │ │ └── tour-schedule │ │ │ │ ├── responsive-image.hbs │ │ │ │ └── responsive-image.ts │ │ │ ├── widget-4.hbs │ │ │ ├── widget-4.ts │ │ │ └── widget-4 │ │ │ ├── memo.hbs │ │ │ ├── memo.ts │ │ │ └── memo │ │ │ ├── actions.hbs │ │ │ ├── actions.ts │ │ │ ├── body.hbs │ │ │ ├── body.ts │ │ │ ├── header.hbs │ │ │ └── header.ts │ │ └── output │ │ └── app │ │ └── components │ │ ├── navigation-menu.hbs │ │ ├── navigation-menu.ts │ │ ├── products │ │ └── product │ │ │ ├── card.hbs │ │ │ ├── card.ts │ │ │ ├── image.hbs │ │ │ └── image.ts │ │ ├── tracks.hbs │ │ ├── tracks.ts │ │ ├── tracks │ │ ├── list.hbs │ │ └── list.ts │ │ ├── ui │ │ ├── form.hbs │ │ ├── form.ts │ │ ├── form │ │ │ ├── checkbox.hbs │ │ │ ├── checkbox.ts │ │ │ ├── field.hbs │ │ │ ├── field.ts │ │ │ ├── input.hbs │ │ │ ├── input.ts │ │ │ ├── textarea.hbs │ │ │ └── textarea.ts │ │ ├── page.hbs │ │ └── page.ts │ │ └── widgets │ │ ├── widget-1.hbs │ │ ├── widget-1.ts │ │ ├── widget-2.hbs │ │ ├── widget-2.ts │ │ ├── widget-2 │ │ ├── captions.hbs │ │ ├── captions.ts │ │ ├── stacked-chart.hbs │ │ └── stacked-chart.ts │ │ ├── widget-3.hbs │ │ ├── widget-3.ts │ │ ├── widget-3 │ │ └── tour-schedule │ │ │ ├── responsive-image.hbs │ │ │ └── responsive-image.ts │ │ ├── widget-4.hbs │ │ ├── widget-4.ts │ │ └── widget-4 │ │ ├── memo.hbs │ │ ├── memo.ts │ │ └── memo │ │ ├── actions.hbs │ │ ├── actions.ts │ │ ├── body.hbs │ │ ├── body.ts │ │ ├── header.hbs │ │ └── header.ts ├── helpers │ └── shared-test-setups │ │ ├── classic-components.ts │ │ ├── ember-container-query-addon.ts │ │ ├── ember-container-query-glint.ts │ │ ├── ember-container-query-nested.ts │ │ ├── ember-container-query-no-args.ts │ │ ├── ember-container-query.ts │ │ ├── has-backing-class.ts │ │ ├── has-declaration-file.ts │ │ ├── has-hbs-file-only.ts │ │ └── has-no-args.ts ├── index │ ├── classic-components.test.ts │ ├── ember-container-query-addon.test.ts │ ├── ember-container-query-glint.test.ts │ ├── ember-container-query-nested.test.ts │ ├── ember-container-query-no-args.test.ts │ └── ember-container-query.test.ts ├── steps │ ├── analyze-project │ │ ├── classic-components.test.ts │ │ ├── ember-container-query-addon.test.ts │ │ ├── ember-container-query-glint.test.ts │ │ ├── ember-container-query-nested.test.ts │ │ ├── ember-container-query-no-args.test.ts │ │ ├── ember-container-query.test.ts │ │ ├── has-backing-class.test.ts │ │ ├── has-declaration-file.test.ts │ │ ├── has-hbs-file-only.test.ts │ │ └── has-no-args.test.ts │ ├── create-options │ │ ├── classic-components.test.ts │ │ ├── ember-container-query-addon.test.ts │ │ ├── ember-container-query-glint.test.ts │ │ ├── ember-container-query-nested.test.ts │ │ ├── ember-container-query-no-args.test.ts │ │ └── ember-container-query.test.ts │ ├── create-registries │ │ ├── has-backing-class.test.ts │ │ ├── has-declaration-file.test.ts │ │ ├── has-hbs-file-only.test.ts │ │ └── has-no-args.test.ts │ ├── create-signatures │ │ ├── has-backing-class.test.ts │ │ ├── has-declaration-file.test.ts │ │ ├── has-hbs-file-only.test.ts │ │ └── has-no-args.test.ts │ ├── create-template-only-components │ │ ├── has-backing-class.test.ts │ │ ├── has-declaration-file.test.ts │ │ ├── has-hbs-file-only.test.ts │ │ └── has-no-args.test.ts │ └── update-signatures │ │ ├── has-backing-class.test.ts │ │ ├── has-declaration-file.test.ts │ │ ├── has-hbs-file-only.test.ts │ │ └── has-no-args.test.ts └── utils │ ├── blueprints │ └── blueprints-root.test.ts │ └── components │ ├── analyze-file-paths │ └── base-case.test.ts │ ├── get-base-component │ ├── classic-component.test.ts │ ├── edge-case-file-is-empty.test.ts │ ├── edge-case-file-is-not-component-class.test.ts │ ├── edge-case-import-is-incorrect.test.ts │ ├── glimmer-component.test.ts │ └── template-only-component.test.ts │ ├── get-block-parameter-type │ ├── base-case.test.ts │ └── edge-case-recast-type-is-unknown.test.ts │ ├── get-component-file-path │ ├── flat-component-structure.test.ts │ └── nested-component-structure.test.ts │ ├── get-html-interface │ ├── base-case.test.ts │ └── edge-case-element-tag-is-unknown.test.ts │ └── normalize-block-name │ ├── base-case.test.ts │ ├── edge-case-block-name-is-undefined.test.ts │ └── edge-case-else-block.test.ts ├── tsconfig.build.json ├── tsconfig.json └── update-test-fixtures.sh /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", 3 | "changelog": "./format-changelogs.cjs", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # compiled output 2 | dist/ 3 | dist-for-testing/ 4 | tmp/ 5 | 6 | # dependencies 7 | node_modules/ 8 | 9 | # misc 10 | .DS_Store 11 | .env* 12 | .eslintcache 13 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # compiled output 2 | /dist-for-testing/ 3 | /tmp/ 4 | 5 | # dependencies 6 | /node_modules/ 7 | 8 | # misc 9 | /.DS_Store 10 | /.env* 11 | /.eslintcache 12 | /.git/ 13 | /.github/ 14 | /.gitignore 15 | /.pnpm-debug.log 16 | /.prettierignore 17 | /build.sh 18 | /CONTRIBUTING.md 19 | /eslint.config.mjs 20 | /prettier.config.mjs 21 | /tests/ 22 | /update-test-fixtures.sh 23 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # compiled output 2 | /dist/ 3 | /dist-for-testing/ 4 | /tmp/ 5 | 6 | # misc 7 | /src/blueprints/ 8 | /tests/fixtures/ 9 | !.* 10 | .*/ 11 | CONTRIBUTING.md 12 | README.md 13 | pnpm-lock.yaml 14 | 15 | # specific to this package 16 | -------------------------------------------------------------------------------- /prettier.config.mjs: -------------------------------------------------------------------------------- 1 | export { default } from '@ijlee2-frontend-configs/prettier/node'; 2 | -------------------------------------------------------------------------------- /src/blueprints/ember-cli/template-only-component.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface <%= entity.pascalizedName %>Signature {} 4 | 5 | const <%= entity.pascalizedName %>Component = 6 | templateOnlyComponent<<%= entity.pascalizedName %>Signature>(); 7 | 8 | export default <%= entity.pascalizedName %>Component; 9 | -------------------------------------------------------------------------------- /src/steps/analyze-project/analyze-components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './find-arguments.js'; 2 | export * from './find-blocks.js'; 3 | export * from './find-element.js'; 4 | -------------------------------------------------------------------------------- /src/steps/analyze-project/index.ts: -------------------------------------------------------------------------------- 1 | export * from './analyze-components.js'; 2 | export * from './filter-components.js'; 3 | export * from './find-components.js'; 4 | -------------------------------------------------------------------------------- /src/steps/create-options.ts: -------------------------------------------------------------------------------- 1 | import type { CodemodOptions, Options } from '../types/index.js'; 2 | 3 | export function createOptions(codemodOptions: CodemodOptions): Options { 4 | const { componentStructure, projectRoot, src } = codemodOptions; 5 | 6 | return { 7 | componentStructure, 8 | projectRoot, 9 | src, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /src/steps/create-registries/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-registry.js'; 2 | export * from './has-registry.js'; 3 | export * from './rename-component.js'; 4 | -------------------------------------------------------------------------------- /src/steps/create-registries/rename-component/index.ts: -------------------------------------------------------------------------------- 1 | export * from './pass-component-name-to-base-component.js'; 2 | export * from './update-references.js'; 3 | -------------------------------------------------------------------------------- /src/steps/create-signatures/create-signature/index.ts: -------------------------------------------------------------------------------- 1 | export * from './pass-signature-to-base-component.js'; 2 | export * from './update-constructor.js'; 3 | export * from './update-reference.js'; 4 | -------------------------------------------------------------------------------- /src/steps/create-signatures/create-signature/is-signature.ts: -------------------------------------------------------------------------------- 1 | type Node = { 2 | key: { 3 | name: string; 4 | }; 5 | }; 6 | 7 | function getKeys(nodes: unknown[]): Set { 8 | return new Set((nodes as Node[]).map(({ key }) => key.name)); 9 | } 10 | 11 | export function isSignature(nodes: unknown[]): boolean { 12 | const keys = getKeys(nodes); 13 | 14 | return keys.has('Args') || keys.has('Blocks') || keys.has('Element'); 15 | } 16 | -------------------------------------------------------------------------------- /src/steps/create-signatures/index.ts: -------------------------------------------------------------------------------- 1 | export * from './create-signature.js'; 2 | -------------------------------------------------------------------------------- /src/steps/index.ts: -------------------------------------------------------------------------------- 1 | export * from './analyze-project.js'; 2 | export * from './create-options.js'; 3 | export * from './create-registries.js'; 4 | export * from './create-signatures.js'; 5 | export * from './create-template-only-components.js'; 6 | export * from './update-signatures.js'; 7 | -------------------------------------------------------------------------------- /src/steps/update-signatures/index.ts: -------------------------------------------------------------------------------- 1 | export * from './update-signature.js'; 2 | -------------------------------------------------------------------------------- /src/utils/blueprints.ts: -------------------------------------------------------------------------------- 1 | export * from './blueprints/blueprints-root.js'; 2 | -------------------------------------------------------------------------------- /src/utils/blueprints/blueprints-root.ts: -------------------------------------------------------------------------------- 1 | import { join } from 'node:path'; 2 | 3 | import { getFilePath } from '@codemod-utils/blueprints'; 4 | 5 | const fileURL = import.meta.url; 6 | 7 | export const blueprintsRoot: string = join( 8 | getFilePath(fileURL), 9 | '../../blueprints', 10 | ); 11 | -------------------------------------------------------------------------------- /src/utils/components.ts: -------------------------------------------------------------------------------- 1 | export * from './components/analyze-file-paths.js'; 2 | export * from './components/get-base-component.js'; 3 | export * from './components/get-block-parameter.type.js'; 4 | export * from './components/get-component-file-path.js'; 5 | export * from './components/get-html-interface.js'; 6 | export * from './components/normalize-block-name.js'; 7 | -------------------------------------------------------------------------------- /src/utils/components/normalize-block-name.ts: -------------------------------------------------------------------------------- 1 | export function normalizeBlockName(blockName: string | undefined): string { 2 | switch (blockName) { 3 | case undefined: { 4 | return 'default'; 5 | } 6 | 7 | case 'else': 8 | case 'inverse': { 9 | return 'else'; 10 | } 11 | 12 | default: { 13 | return blockName; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/index.ts: -------------------------------------------------------------------------------- 1 | import { convertFixtureToJson } from '@codemod-utils/tests'; 2 | 3 | const inputProject = convertFixtureToJson('classic-components/input'); 4 | const outputProject = convertFixtureToJson('classic-components/output'); 5 | 6 | export { inputProject, outputProject }; 7 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/input/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName: '', 5 | }); 6 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/input/app/components/products/product/card.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName: '', 5 | }); 6 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 11 | 12 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/classic-components/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { tagName } from '@ember-decorators/component'; 3 | import config from 'docs-app/config/environment'; 4 | 5 | @tagName('') 6 | export default class TracksComponent extends Component { 7 | isTestEnvironment = config.environment === 'test'; 8 | } 9 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/input/app/components/tracks.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { tagName } from '@ember-decorators/component'; 3 | 4 | @tagName('') 5 | export default class TracksComponent extends Component {} 6 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/output/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/output/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName: '', 5 | }); 6 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/output/app/components/products/product/card.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName: '', 5 | }); 6 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 11 | 12 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/classic-components/output/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { tagName } from '@ember-decorators/component'; 3 | import config from 'docs-app/config/environment'; 4 | 5 | @tagName('') 6 | export default class TracksComponent extends Component { 7 | isTestEnvironment = config.environment === 'test'; 8 | } 9 | -------------------------------------------------------------------------------- /tests/fixtures/classic-components/output/app/components/tracks.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { tagName } from '@ember-decorators/component'; 3 | 4 | @tagName('') 5 | export default class TracksComponent extends Component {} 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/index.ts: -------------------------------------------------------------------------------- 1 | import { convertFixtureToJson } from '@codemod-utils/tests'; 2 | 3 | const inputProject = convertFixtureToJson('ember-container-query-addon/input'); 4 | const outputProject = convertFixtureToJson('ember-container-query-addon/output'); 5 | 6 | export { inputProject, outputProject }; 7 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface Args { 9 | menuItems: MenuItem[]; 10 | name?: string; 11 | } 12 | 13 | const NavigationMenu = templateOnlyComponent(); 14 | 15 | export default NavigationMenu; 16 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../data/products'; 4 | 5 | const Component = templateOnlyComponent<{ 6 | product: Product; 7 | redirectTo?: string; 8 | }>(); 9 | 10 | export default Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 11 | 12 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageArgs { 5 | src: string; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/tracks/table.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../data/album'; 2 | 3 | export interface TracksTableComponentArgs { 4 | tracks?: Track[]; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldComponentArgs { 5 | errorMessage?: string; 6 | isInline?: boolean; 7 | isWide?: boolean; 8 | } 9 | 10 | export default class extends Component { 11 | inputId = guidFor(this); 12 | } 13 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/ui/form/information.d.ts: -------------------------------------------------------------------------------- 1 | export interface Args { 2 | formId: string; 3 | instructions?: string; 4 | title?: string; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
7 | {{yield}} 8 |
9 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageComponentArgs { 4 | title: string; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent<{}>(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-1/item.d.ts: -------------------------------------------------------------------------------- 1 | export interface ItemComponentArgs { 2 | title: string; 3 | } 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartArgs { 6 | data: Data[]; 7 | } 8 | 9 | export default class WidgetsWidget2StackedChartComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type WidgetsWidget4Args = {}; 4 | 5 | const WidgetsWidget4Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4Component; 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface Args {} 4 | 5 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4MemoComponent; 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsArgs { 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | } 7 | 8 | export default templateOnlyComponent(); 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Body = class extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Body; 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Header = class FooComponent extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Header; 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/input/addon/components/widgets/widget-5.d.ts: -------------------------------------------------------------------------------- 1 | export type WidgetsWidget5Args = {}; 2 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 11 | 12 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/tracks/table.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../data/album'; 2 | 3 | export interface TracksTableComponentArgs { 4 | tracks?: Track[]; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/ui/form/information.d.ts: -------------------------------------------------------------------------------- 1 | export interface Args { 2 | formId: string; 3 | instructions?: string; 4 | title?: string; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
7 | {{yield}} 8 |
9 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-1/item.d.ts: -------------------------------------------------------------------------------- 1 | export interface ItemComponentArgs { 2 | title: string; 3 | } 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-addon/output/addon/components/widgets/widget-5.d.ts: -------------------------------------------------------------------------------- 1 | export type WidgetsWidget5Args = {}; 2 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/index.ts: -------------------------------------------------------------------------------- 1 | import { convertFixtureToJson } from '@codemod-utils/tests'; 2 | 3 | const inputProject = convertFixtureToJson('ember-container-query-glint/input'); 4 | const outputProject = convertFixtureToJson('ember-container-query-glint/output'); 5 | 6 | export { inputProject, outputProject }; 7 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4Signature {} 4 | 5 | const WidgetsWidget4Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4Component; 8 | 9 | declare module '@glint/environment-ember-loose/registry' { 10 | export default interface Registry { 11 | 'Widgets::Widget-4': typeof WidgetsWidget4Component; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/input/src/components/widgets/widget-5.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget5Signature {} 4 | 5 | const WidgetsWidget5Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget5Component; 8 | 9 | declare module '@glint/environment-ember-loose/registry' { 10 | export default interface Registry { 11 | 'Widgets::Widget-5': typeof WidgetsWidget5Component; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-glint/output/src/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/index.ts: -------------------------------------------------------------------------------- 1 | import { convertFixtureToJson } from '@codemod-utils/tests'; 2 | 3 | const inputProject = convertFixtureToJson('ember-container-query-nested/input'); 4 | const outputProject = convertFixtureToJson('ember-container-query-nested/output'); 5 | 6 | export { inputProject, outputProject }; 7 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/navigation-menu/index.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/navigation-menu/index.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface Args { 9 | menuItems: MenuItem[]; 10 | name?: string; 11 | } 12 | 13 | const NavigationMenu = templateOnlyComponent(); 14 | 15 | export default NavigationMenu; 16 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/products/product/card/index.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../../data/products'; 4 | 5 | const Component = templateOnlyComponent<{ 6 | product: Product; 7 | redirectTo?: string; 8 | }>(); 9 | 10 | export default Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/products/product/image/index.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/products/product/image/index.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageArgs { 5 | src: string; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/tracks/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/tracks/table/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../../data/album'; 2 | 3 | export interface TracksTableComponentArgs { 4 | tracks?: Track[]; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/ui/form/field/index.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldComponentArgs { 5 | errorMessage?: string; 6 | isInline?: boolean; 7 | isWide?: boolean; 8 | } 9 | 10 | export default class extends Component { 11 | inputId = guidFor(this); 12 | } 13 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/ui/form/information/index.d.ts: -------------------------------------------------------------------------------- 1 | export interface Args { 2 | formId: string; 3 | instructions?: string; 4 | title?: string; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/ui/page/index.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/ui/page/index.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageComponentArgs { 4 | title: string; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-1/index.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent<{}>(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-1/item/index.d.ts: -------------------------------------------------------------------------------- 1 | export interface ItemComponentArgs { 2 | title: string; 3 | } 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-1/item/index.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-2/stacked-chart/index.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-2/stacked-chart/index.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartArgs { 6 | data: Data[]; 7 | } 8 | 9 | export default class WidgetsWidget2StackedChartComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-3/tour-schedule/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-3/tour-schedule/responsive-image/index.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-4/index.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-4/index.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type WidgetsWidget4Args = {}; 4 | 5 | const WidgetsWidget4Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4Component; 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-4/memo/actions/index.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsArgs { 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | } 7 | 8 | export default templateOnlyComponent(); 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-4/memo/body/index.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Body = class extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Body; 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-4/memo/header/index.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Header = class FooComponent extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Header; 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-4/memo/index.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface Args {} 4 | 5 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4MemoComponent; 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/input/app/components/widgets/widget-5/index.d.ts: -------------------------------------------------------------------------------- 1 | export type WidgetsWidget5Args = {}; 2 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/navigation-menu/index.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/products/product/image/index.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/tracks/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/tracks/table/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../../data/album'; 2 | 3 | export interface TracksTableComponentArgs { 4 | tracks?: Track[]; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/ui/form/information/index.d.ts: -------------------------------------------------------------------------------- 1 | export interface Args { 2 | formId: string; 3 | instructions?: string; 4 | title?: string; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/ui/page/index.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/widgets/widget-1/item/index.d.ts: -------------------------------------------------------------------------------- 1 | export interface ItemComponentArgs { 2 | title: string; 3 | } 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/widgets/widget-1/item/index.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/widgets/widget-2/stacked-chart/index.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/widgets/widget-3/tour-schedule/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/widgets/widget-3/tour-schedule/responsive-image/index.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/widgets/widget-4/index.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-nested/output/app/components/widgets/widget-5/index.d.ts: -------------------------------------------------------------------------------- 1 | export type WidgetsWidget5Args = {}; 2 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/index.ts: -------------------------------------------------------------------------------- 1 | import { convertFixtureToJson } from '@codemod-utils/tests'; 2 | 3 | const inputProject = convertFixtureToJson('ember-container-query-no-args/input'); 4 | const outputProject = convertFixtureToJson('ember-container-query-no-args/output'); 5 | 6 | export { inputProject, outputProject }; 7 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const NavigationMenu = templateOnlyComponent(); 4 | 5 | export default NavigationMenu; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const Component = templateOnlyComponent(); 4 | 5 | export default Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | class ProductsProductImage extends Component { 5 | isTestEnvironment = config.environment === 'test'; 6 | } 7 | 8 | export default ProductsProductImage; 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class TracksComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | export default class extends Component { 5 | inputId = guidFor(this); 6 | } 7 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class UiPageComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class WidgetsWidget2StackedChartComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4MemoComponent; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | export default templateOnlyComponent(); 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Body = class extends Component {} 4 | 5 | export default Body; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Header = class FooComponent extends Component {} 4 | 5 | export default Header; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query-no-args/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/index.ts: -------------------------------------------------------------------------------- 1 | import { convertFixtureToJson } from '@codemod-utils/tests'; 2 | 3 | const inputProject = convertFixtureToJson('ember-container-query/input'); 4 | const outputProject = convertFixtureToJson('ember-container-query/output'); 5 | 6 | export { inputProject, outputProject }; 7 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface Args { 9 | menuItems: MenuItem[]; 10 | name?: string; 11 | } 12 | 13 | const NavigationMenu = templateOnlyComponent(); 14 | 15 | export default NavigationMenu; 16 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../data/products'; 4 | 5 | const Component = templateOnlyComponent<{ 6 | product: Product; 7 | redirectTo?: string; 8 | }>(); 9 | 10 | export default Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageArgs { 5 | src: string; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/tracks/table.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../data/album'; 2 | 3 | export interface TracksTableComponentArgs { 4 | tracks?: Track[]; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldComponentArgs { 5 | errorMessage?: string; 6 | isInline?: boolean; 7 | isWide?: boolean; 8 | } 9 | 10 | export default class extends Component { 11 | inputId = guidFor(this); 12 | } 13 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/ui/form/information.d.ts: -------------------------------------------------------------------------------- 1 | export interface Args { 2 | formId: string; 3 | instructions?: string; 4 | title?: string; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageComponentArgs { 4 | title: string; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent<{}>(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-1/item.d.ts: -------------------------------------------------------------------------------- 1 | export interface ItemComponentArgs { 2 | title: string; 3 | } 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartArgs { 6 | data: Data[]; 7 | } 8 | 9 | export default class WidgetsWidget2StackedChartComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type WidgetsWidget4Args = {}; 4 | 5 | const WidgetsWidget4Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4Component; 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface Args {} 4 | 5 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4MemoComponent; 8 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsArgs { 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | } 7 | 8 | export default templateOnlyComponent(); 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Body = class extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Body; 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Header = class FooComponent extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Header; 9 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/input/app/components/widgets/widget-5.d.ts: -------------------------------------------------------------------------------- 1 | export type WidgetsWidget5Args = {}; 2 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/tracks/table.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../../data/album'; 2 | 3 | export interface TracksTableComponentArgs { 4 | tracks?: Track[]; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/ui/form/information.d.ts: -------------------------------------------------------------------------------- 1 | export interface Args { 2 | formId: string; 3 | instructions?: string; 4 | title?: string; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-1/item.d.ts: -------------------------------------------------------------------------------- 1 | export interface ItemComponentArgs { 2 | title: string; 3 | } 4 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-1/item.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-3.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 3

4 | 5 | 10 |
11 | 12 |
13 | 16 |
17 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/ember-container-query/output/app/components/widgets/widget-5.d.ts: -------------------------------------------------------------------------------- 1 | export type WidgetsWidget5Args = {}; 2 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface NavigationMenuSignature { 9 | Args: { 10 | menuItems: MenuItem[]; 11 | name?: string; 12 | }; 13 | } 14 | 15 | const NavigationMenu = templateOnlyComponent(); 16 | 17 | export default NavigationMenu; 18 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../data/products'; 4 | 5 | interface ProductsProductCardSignature { 6 | Args: { 7 | product: Product; 8 | redirectTo?: string; 9 | }; 10 | } 11 | 12 | const Component = templateOnlyComponent(); 13 | 14 | export default Component; 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageSignature { 5 | Args: { 6 | src: string; 7 | }; 8 | } 9 | 10 | class ProductsProductImage extends Component { 11 | isTestEnvironment = config.environment === 'test'; 12 | } 13 | 14 | export default ProductsProductImage; 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldSignature { 5 | Args: { 6 | errorMessage?: string; 7 | isInline?: boolean; 8 | isWide?: boolean; 9 | }; 10 | } 11 | 12 | export default class extends Component { 13 | inputId = guidFor(this); 14 | } 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: { 5 | title: string; 6 | }; 7 | } 8 | 9 | export default class UiPageComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget1Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget1Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget1Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartSignature { 6 | Args: { 7 | data: Data[]; 8 | }; 9 | } 10 | 11 | export default class WidgetsWidget2StackedChartComponent extends Component {} 12 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4MemoSignature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4MemoComponent; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsSignature { 5 | Args: { 6 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 7 | }; 8 | } 9 | 10 | export default templateOnlyComponent(); 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoBodySignature { 5 | Args: { 6 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 7 | }; 8 | } 9 | 10 | const Body = class extends Component {} 11 | 12 | export default Body; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoHeaderSignature { 5 | Args: { 6 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 7 | }; 8 | } 9 | 10 | const Header = class FooComponent extends Component {} 11 | 12 | export default Header; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/output/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: { 5 | title: string; 6 | }; 7 | } 8 | 9 | export default class UiPageComponent extends Component {} 10 | 11 | declare module '@glint/environment-ember-loose/registry' { 12 | export default interface Registry { 13 | 'Ui::Page': typeof UiPageComponent; 14 | 'ui/page': typeof UiPageComponent; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-backing-class/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-declaration-file/input/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-declaration-file/input/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface TracksSignature { 4 | Args: {}; 5 | } 6 | 7 | const TracksComponent = 8 | templateOnlyComponent(); 9 | 10 | export default TracksComponent; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-declaration-file/input/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-declaration-file/input/app/components/widgets/widget-3/tour-schedule.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget3TourScheduleSignature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget3TourScheduleComponent = 8 | templateOnlyComponent(); 9 | 10 | export default WidgetsWidget3TourScheduleComponent; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-declaration-file/output/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-declaration-file/output/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-hbs-file-only/input/app/components/ui/form/information.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface UiFormInformationSignature { 4 | Args: {}; 5 | } 6 | 7 | const UiFormInformationComponent = 8 | templateOnlyComponent(); 9 | 10 | export default UiFormInformationComponent; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-hbs-file-only/input/app/components/widgets/widget-5.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget5Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget5Component = 8 | templateOnlyComponent(); 9 | 10 | export default WidgetsWidget5Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface NavigationMenuSignature { 4 | Args: {}; 5 | } 6 | 7 | const NavigationMenu = templateOnlyComponent(); 8 | 9 | export default NavigationMenu; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface ProductsProductCardSignature { 4 | Args: {}; 5 | } 6 | 7 | const Component = templateOnlyComponent(); 8 | 9 | export default Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageSignature { 5 | Args: {}; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface TracksSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class TracksComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldSignature { 5 | Args: {}; 6 | } 7 | 8 | export default class extends Component { 9 | inputId = guidFor(this); 10 | } 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget1Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget1Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget1Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface WidgetsWidget2StackedChartSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class WidgetsWidget2StackedChartComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4MemoSignature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4MemoComponent; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4MemoActionsSignature { 4 | Args: {}; 5 | } 6 | 7 | export default templateOnlyComponent(); 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface WidgetsWidget4MemoBodySignature { 4 | Args: {}; 5 | } 6 | 7 | const Body = class extends Component {} 8 | 9 | export default Body; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface WidgetsWidget4MemoHeaderSignature { 4 | Args: {}; 5 | } 6 | 7 | const Header = class FooComponent extends Component {} 8 | 9 | export default Header; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface TracksSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class TracksComponent extends Component {} 8 | 9 | declare module '@glint/environment-ember-loose/registry' { 10 | export default interface Registry { 11 | 'Tracks': typeof TracksComponent; 12 | 'tracks': typeof TracksComponent; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | 9 | declare module '@glint/environment-ember-loose/registry' { 10 | export default interface Registry { 11 | 'Ui::Page': typeof UiPageComponent; 12 | 'ui/page': typeof UiPageComponent; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-registries/has-no-args/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface Args { 9 | menuItems: MenuItem[]; 10 | name?: string; 11 | } 12 | 13 | const NavigationMenu = templateOnlyComponent(); 14 | 15 | export default NavigationMenu; 16 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../data/products'; 4 | 5 | const Component = templateOnlyComponent<{ 6 | product: Product; 7 | redirectTo?: string; 8 | }>(); 9 | 10 | export default Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageArgs { 5 | src: string; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldComponentArgs { 5 | errorMessage?: string; 6 | isInline?: boolean; 7 | isWide?: boolean; 8 | } 9 | 10 | export default class extends Component { 11 | inputId = guidFor(this); 12 | } 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageComponentArgs { 4 | title: string; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent<{}>(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartArgs { 6 | data: Data[]; 7 | } 8 | 9 | export default class WidgetsWidget2StackedChartComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type WidgetsWidget4Args = {}; 4 | 5 | const WidgetsWidget4Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4Component; 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface Args {} 4 | 5 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4MemoComponent; 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsArgs { 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | } 7 | 8 | export default templateOnlyComponent(); 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Body = class extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Body; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Header = class FooComponent extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Header; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface NavigationMenuSignature { 9 | Args: { 10 | menuItems: MenuItem[]; 11 | name?: string; 12 | }; 13 | } 14 | 15 | const NavigationMenu = templateOnlyComponent(); 16 | 17 | export default NavigationMenu; 18 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../data/products'; 4 | 5 | interface ProductsProductCardSignature { 6 | Args: { 7 | product: Product; 8 | redirectTo?: string; 9 | }; 10 | } 11 | 12 | const Component = templateOnlyComponent(); 13 | 14 | export default Component; 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageSignature { 5 | Args: { 6 | src: string; 7 | }; 8 | } 9 | 10 | class ProductsProductImage extends Component { 11 | isTestEnvironment = config.environment === 'test'; 12 | } 13 | 14 | export default ProductsProductImage; 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldSignature { 5 | Args: { 6 | errorMessage?: string; 7 | isInline?: boolean; 8 | isWide?: boolean; 9 | }; 10 | } 11 | 12 | export default class extends Component { 13 | inputId = guidFor(this); 14 | } 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: { 5 | title: string; 6 | }; 7 | } 8 | 9 | export default class UiPageComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget1Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget1Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget1Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartSignature { 6 | Args: { 7 | data: Data[]; 8 | }; 9 | } 10 | 11 | export default class WidgetsWidget2StackedChartComponent extends Component {} 12 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4MemoSignature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4MemoComponent; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsSignature { 5 | Args: { 6 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 7 | }; 8 | } 9 | 10 | export default templateOnlyComponent(); 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoBodySignature { 5 | Args: { 6 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 7 | }; 8 | } 9 | 10 | const Body = class extends Component {} 11 | 12 | export default Body; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-backing-class/output/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoHeaderSignature { 5 | Args: { 6 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 7 | }; 8 | } 9 | 10 | const Header = class FooComponent extends Component {} 11 | 12 | export default Header; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/input/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/input/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface TracksSignature {} 4 | 5 | const TracksComponent = 6 | templateOnlyComponent(); 7 | 8 | export default TracksComponent; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/input/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/input/app/components/widgets/widget-3/tour-schedule.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget3TourScheduleSignature {} 4 | 5 | const WidgetsWidget3TourScheduleComponent = 6 | templateOnlyComponent(); 7 | 8 | export default WidgetsWidget3TourScheduleComponent; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/output/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/output/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface TracksSignature { 4 | Args: {}; 5 | } 6 | 7 | const TracksComponent = 8 | templateOnlyComponent(); 9 | 10 | export default TracksComponent; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/output/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-declaration-file/output/app/components/widgets/widget-3/tour-schedule.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget3TourScheduleSignature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget3TourScheduleComponent = 8 | templateOnlyComponent(); 9 | 10 | export default WidgetsWidget3TourScheduleComponent; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-hbs-file-only/input/app/components/ui/form/information.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface UiFormInformationSignature {} 4 | 5 | const UiFormInformationComponent = 6 | templateOnlyComponent(); 7 | 8 | export default UiFormInformationComponent; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-hbs-file-only/input/app/components/widgets/widget-5.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget5Signature {} 4 | 5 | const WidgetsWidget5Component = 6 | templateOnlyComponent(); 7 | 8 | export default WidgetsWidget5Component; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-hbs-file-only/output/app/components/ui/form/information.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface UiFormInformationSignature { 4 | Args: {}; 5 | } 6 | 7 | const UiFormInformationComponent = 8 | templateOnlyComponent(); 9 | 10 | export default UiFormInformationComponent; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-hbs-file-only/output/app/components/widgets/widget-5.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget5Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget5Component = 8 | templateOnlyComponent(); 9 | 10 | export default WidgetsWidget5Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const NavigationMenu = templateOnlyComponent(); 4 | 5 | export default NavigationMenu; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const Component = templateOnlyComponent(); 4 | 5 | export default Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | class ProductsProductImage extends Component { 5 | isTestEnvironment = config.environment === 'test'; 6 | } 7 | 8 | export default ProductsProductImage; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class TracksComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | export default class extends Component { 5 | inputId = guidFor(this); 6 | } 7 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class UiPageComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class WidgetsWidget2StackedChartComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4MemoComponent; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | export default templateOnlyComponent(); 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Body = class extends Component {} 4 | 5 | export default Body; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Header = class FooComponent extends Component {} 4 | 5 | export default Header; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface NavigationMenuSignature { 4 | Args: {}; 5 | } 6 | 7 | const NavigationMenu = templateOnlyComponent(); 8 | 9 | export default NavigationMenu; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface ProductsProductCardSignature { 4 | Args: {}; 5 | } 6 | 7 | const Component = templateOnlyComponent(); 8 | 9 | export default Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageSignature { 5 | Args: {}; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface TracksSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class TracksComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldSignature { 5 | Args: {}; 6 | } 7 | 8 | export default class extends Component { 9 | inputId = guidFor(this); 10 | } 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget1Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget1Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget1Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface WidgetsWidget2StackedChartSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class WidgetsWidget2StackedChartComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4Signature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4Component = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4Component; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4MemoSignature { 4 | Args: {}; 5 | } 6 | 7 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 8 | 9 | export default WidgetsWidget4MemoComponent; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget4MemoActionsSignature { 4 | Args: {}; 5 | } 6 | 7 | export default templateOnlyComponent(); 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface WidgetsWidget4MemoBodySignature { 4 | Args: {}; 5 | } 6 | 7 | const Body = class extends Component {} 8 | 9 | export default Body; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-signatures/has-no-args/output/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface WidgetsWidget4MemoHeaderSignature { 4 | Args: {}; 5 | } 6 | 7 | const Header = class FooComponent extends Component {} 8 | 9 | export default Header; 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface Args { 9 | menuItems: MenuItem[]; 10 | name?: string; 11 | } 12 | 13 | const NavigationMenu = templateOnlyComponent(); 14 | 15 | export default NavigationMenu; 16 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../data/products'; 4 | 5 | const Component = templateOnlyComponent<{ 6 | product: Product; 7 | redirectTo?: string; 8 | }>(); 9 | 10 | export default Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageArgs { 5 | src: string; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldComponentArgs { 5 | errorMessage?: string; 6 | isInline?: boolean; 7 | isWide?: boolean; 8 | } 9 | 10 | export default class extends Component { 11 | inputId = guidFor(this); 12 | } 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageComponentArgs { 4 | title: string; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent<{}>(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartArgs { 6 | data: Data[]; 7 | } 8 | 9 | export default class WidgetsWidget2StackedChartComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type WidgetsWidget4Args = {}; 4 | 5 | const WidgetsWidget4Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4Component; 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface Args {} 4 | 5 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4MemoComponent; 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsArgs { 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | } 7 | 8 | export default templateOnlyComponent(); 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Body = class extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Body; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Header = class FooComponent extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Header; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type MenuItem = { 4 | label: string; 5 | route: string; 6 | }; 7 | 8 | interface Args { 9 | menuItems: MenuItem[]; 10 | name?: string; 11 | } 12 | 13 | const NavigationMenu = templateOnlyComponent(); 14 | 15 | export default NavigationMenu; 16 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | import type { Product } from '../../../data/products'; 4 | 5 | const Component = templateOnlyComponent<{ 6 | product: Product; 7 | redirectTo?: string; 8 | }>(); 9 | 10 | export default Component; 11 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | interface ProductsProductImageArgs { 5 | src: string; 6 | } 7 | 8 | class ProductsProductImage extends Component { 9 | isTestEnvironment = config.environment === 'test'; 10 | } 11 | 12 | export default ProductsProductImage; 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | interface UiFormFieldComponentArgs { 5 | errorMessage?: string; 6 | isInline?: boolean; 7 | isWide?: boolean; 8 | } 9 | 10 | export default class extends Component { 11 | inputId = guidFor(this); 12 | } 13 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageComponentArgs { 4 | title: string; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent<{}>(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | import type { Data } from '../../../utils/components/widgets/widget-2'; 4 | 5 | interface WidgetsWidget2StackedChartArgs { 6 | data: Data[]; 7 | } 8 | 9 | export default class WidgetsWidget2StackedChartComponent extends Component {} 10 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | type WidgetsWidget4Args = {}; 4 | 5 | const WidgetsWidget4Component = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4Component; 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface Args {} 4 | 5 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 6 | 7 | export default WidgetsWidget4MemoComponent; 8 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | interface WidgetsWidget4MemoActionsArgs { 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | } 7 | 8 | export default templateOnlyComponent(); 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Body = class extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Body; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-backing-class/output/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import type { QueryResults } from 'ember-container-query'; 3 | 4 | const Header = class FooComponent extends Component<{ 5 | cqFeatures?: QueryResults<'small' | 'large' | 'short'>; 6 | }> {} 7 | 8 | export default Header; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-declaration-file/input/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-declaration-file/input/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-declaration-file/output/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-declaration-file/output/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface TracksSignature {} 4 | 5 | const TracksComponent = 6 | templateOnlyComponent(); 7 | 8 | export default TracksComponent; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-declaration-file/output/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-declaration-file/output/app/components/widgets/widget-3/tour-schedule.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget3TourScheduleSignature {} 4 | 5 | const WidgetsWidget3TourScheduleComponent = 6 | templateOnlyComponent(); 7 | 8 | export default WidgetsWidget3TourScheduleComponent; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-hbs-file-only/output/app/components/ui/form/information.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface UiFormInformationSignature {} 4 | 5 | const UiFormInformationComponent = 6 | templateOnlyComponent(); 7 | 8 | export default UiFormInformationComponent; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-hbs-file-only/output/app/components/widgets/widget-5.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | interface WidgetsWidget5Signature {} 4 | 5 | const WidgetsWidget5Component = 6 | templateOnlyComponent(); 7 | 8 | export default WidgetsWidget5Component; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const NavigationMenu = templateOnlyComponent(); 4 | 5 | export default NavigationMenu; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const Component = templateOnlyComponent(); 4 | 5 | export default Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | class ProductsProductImage extends Component { 5 | isTestEnvironment = config.environment === 'test'; 6 | } 7 | 8 | export default ProductsProductImage; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class TracksComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | export default class extends Component { 5 | inputId = guidFor(this); 6 | } 7 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class UiPageComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class WidgetsWidget2StackedChartComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4MemoComponent; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | export default templateOnlyComponent(); 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Body = class extends Component {} 4 | 5 | export default Body; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/input/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Header = class FooComponent extends Component {} 4 | 5 | export default Header; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/navigation-menu.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const NavigationMenu = templateOnlyComponent(); 4 | 5 | export default NavigationMenu; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/products/product/card.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const Component = templateOnlyComponent(); 4 | 5 | export default Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/products/product/image.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import config from 'docs-app/config/environment'; 3 | 4 | class ProductsProductImage extends Component { 5 | isTestEnvironment = config.environment === 'test'; 6 | } 7 | 8 | export default ProductsProductImage; 9 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class TracksComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/ui/form/field.ts: -------------------------------------------------------------------------------- 1 | import { guidFor } from '@ember/object/internals'; 2 | import Component from '@glimmer/component'; 3 | 4 | export default class extends Component { 5 | inputId = guidFor(this); 6 | } 7 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class UiPageComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-1.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget1Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget1Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-2/stacked-chart.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | export default class WidgetsWidget2StackedChartComponent extends Component {} 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-4.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4Component = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4Component; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-4/memo.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | const WidgetsWidget4MemoComponent = templateOnlyComponent(); 4 | 5 | export default WidgetsWidget4MemoComponent; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-4/memo/actions.ts: -------------------------------------------------------------------------------- 1 | import templateOnlyComponent from '@ember/component/template-only'; 2 | 3 | export default templateOnlyComponent(); 4 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-4/memo/body.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Body = class extends Component {} 4 | 5 | export default Body; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/create-template-only-components/has-no-args/output/app/components/widgets/widget-4/memo/header.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | const Header = class FooComponent extends Component {} 4 | 5 | export default Header; 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: { 5 | title: string; 6 | }; 7 | } 8 | 9 | export default class UiPageComponent extends Component {} 10 | 11 | declare module '@glint/environment-ember-loose/registry' { 12 | export default interface Registry { 13 | 'Ui::Page': typeof UiPageComponent; 14 | 'ui/page': typeof UiPageComponent; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-backing-class/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-declaration-file/input/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-declaration-file/input/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-declaration-file/output/app/components/tracks.d.ts: -------------------------------------------------------------------------------- 1 | import type { Track } from '../data/album'; 2 | 3 | export interface TracksComponentArgs { 4 | tracks?: Array; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-declaration-file/output/app/components/widgets/widget-3/tour-schedule.d.ts: -------------------------------------------------------------------------------- 1 | import type { Concert } from '../../../data/concert'; 2 | 3 | export interface WidgetsWidget3TourScheduleComponentArgs { 4 | concert: Concert; 5 | } 6 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/tracks.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface TracksSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class TracksComponent extends Component {} 8 | 9 | declare module '@glint/environment-ember-loose/registry' { 10 | export default interface Registry { 11 | 'Tracks': typeof TracksComponent; 12 | 'tracks': typeof TracksComponent; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/ui/page.ts: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | 3 | interface UiPageSignature { 4 | Args: {}; 5 | } 6 | 7 | export default class UiPageComponent extends Component {} 8 | 9 | declare module '@glint/environment-ember-loose/registry' { 10 | export default interface Registry { 11 | 'Ui::Page': typeof UiPageComponent; 12 | 'ui/page': typeof UiPageComponent; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/input/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/output/app/components/navigation-menu.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/output/app/components/products/product/image.hbs: -------------------------------------------------------------------------------- 1 | {{#if this.isTestEnvironment}} 2 |
3 | 4 | {{else}} 5 | 12 | 13 | {{/if}} -------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/output/app/components/ui/page.hbs: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{@title}} 4 |

5 | 6 |
12 | {{yield}} 13 |
14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/output/app/components/widgets/widget-2/stacked-chart.hbs: -------------------------------------------------------------------------------- 1 |
5 | 6 | 7 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/output/app/components/widgets/widget-3/tour-schedule/responsive-image.hbs: -------------------------------------------------------------------------------- 1 |
5 | {{#if this.imageSource}} 6 | 13 | {{/if}} 14 |
-------------------------------------------------------------------------------- /tests/fixtures/steps/update-signatures/has-no-args/output/app/components/widgets/widget-4.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Widget 4

4 |
5 | 6 |
7 | 8 |
9 | 10 | 15 |
-------------------------------------------------------------------------------- /tests/steps/analyze-project/has-backing-class.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { context } from '../../helpers/shared-test-setups/has-backing-class.js'; 4 | 5 | test('steps | analyze-project > has-backing-class', function () { 6 | const entityNames1 = Array.from(context.extensionMap.keys()); 7 | const entityNames2 = Array.from(context.signatureMap.keys()); 8 | 9 | assert.deepStrictEqual(entityNames1, entityNames2); 10 | }); 11 | -------------------------------------------------------------------------------- /tests/steps/analyze-project/has-declaration-file.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { context } from '../../helpers/shared-test-setups/has-declaration-file.js'; 4 | 5 | test('steps | analyze-project > has-declaration-file', function () { 6 | const entityNames1 = Array.from(context.extensionMap.keys()); 7 | const entityNames2 = Array.from(context.signatureMap.keys()); 8 | 9 | assert.deepStrictEqual(entityNames1, entityNames2); 10 | }); 11 | -------------------------------------------------------------------------------- /tests/steps/analyze-project/has-hbs-file-only.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { context } from '../../helpers/shared-test-setups/has-hbs-file-only.js'; 4 | 5 | test('steps | analyze-project > has-hbs-file-only', function () { 6 | const entityNames1 = Array.from(context.extensionMap.keys()); 7 | const entityNames2 = Array.from(context.signatureMap.keys()); 8 | 9 | assert.deepStrictEqual(entityNames1, entityNames2); 10 | }); 11 | -------------------------------------------------------------------------------- /tests/steps/analyze-project/has-no-args.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { context } from '../../helpers/shared-test-setups/has-no-args.js'; 4 | 5 | test('steps | analyze-project > has-no-args', function () { 6 | const entityNames1 = Array.from(context.extensionMap.keys()); 7 | const entityNames2 = Array.from(context.signatureMap.keys()); 8 | 9 | assert.deepStrictEqual(entityNames1, entityNames2); 10 | }); 11 | -------------------------------------------------------------------------------- /tests/steps/create-options/classic-components.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { createOptions } from '../../../src/steps/index.js'; 4 | import { 5 | codemodOptions, 6 | options, 7 | } from '../../helpers/shared-test-setups/classic-components.js'; 8 | 9 | test('steps | create-options > classic-components', function () { 10 | assert.deepStrictEqual(createOptions(codemodOptions), options); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/steps/create-options/ember-container-query-addon.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { createOptions } from '../../../src/steps/index.js'; 4 | import { 5 | codemodOptions, 6 | options, 7 | } from '../../helpers/shared-test-setups/ember-container-query-addon.js'; 8 | 9 | test('steps | create-options > ember-container-query-addon', function () { 10 | assert.deepStrictEqual(createOptions(codemodOptions), options); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/steps/create-options/ember-container-query-glint.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { createOptions } from '../../../src/steps/index.js'; 4 | import { 5 | codemodOptions, 6 | options, 7 | } from '../../helpers/shared-test-setups/ember-container-query-glint.js'; 8 | 9 | test('steps | create-options > ember-container-query-glint', function () { 10 | assert.deepStrictEqual(createOptions(codemodOptions), options); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/steps/create-options/ember-container-query-nested.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { createOptions } from '../../../src/steps/index.js'; 4 | import { 5 | codemodOptions, 6 | options, 7 | } from '../../helpers/shared-test-setups/ember-container-query-nested.js'; 8 | 9 | test('steps | create-options > ember-container-query-nested', function () { 10 | assert.deepStrictEqual(createOptions(codemodOptions), options); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/steps/create-options/ember-container-query-no-args.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { createOptions } from '../../../src/steps/index.js'; 4 | import { 5 | codemodOptions, 6 | options, 7 | } from '../../helpers/shared-test-setups/ember-container-query-no-args.js'; 8 | 9 | test('steps | create-options > ember-container-query-no-args', function () { 10 | assert.deepStrictEqual(createOptions(codemodOptions), options); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/steps/create-options/ember-container-query.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { createOptions } from '../../../src/steps/index.js'; 4 | import { 5 | codemodOptions, 6 | options, 7 | } from '../../helpers/shared-test-setups/ember-container-query.js'; 8 | 9 | test('steps | create-options > ember-container-query', function () { 10 | assert.deepStrictEqual(createOptions(codemodOptions), options); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/utils/blueprints/blueprints-root.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { blueprintsRoot } from '../../../src/utils/blueprints.js'; 4 | 5 | test('utils | blueprints | blueprints-root', function () { 6 | assert.strictEqual(blueprintsRoot.endsWith('src/blueprints'), true); 7 | }); 8 | -------------------------------------------------------------------------------- /tests/utils/components/get-base-component/edge-case-file-is-empty.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { getBaseComponent } from '../../../../src/utils/components.js'; 4 | 5 | test('utils | components | get-base-component > edge case (file is empty)', function () { 6 | const file = ''; 7 | 8 | assert.deepStrictEqual(getBaseComponent(file), { 9 | baseComponentName: undefined, 10 | importPath: undefined, 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/utils/components/get-base-component/edge-case-import-is-incorrect.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { getBaseComponent } from '../../../../src/utils/components.js'; 4 | 5 | test('utils | components | get-base-component > edge case (import is incorrect)', function () { 6 | const file = `import { foo } from '@glimmer/component';\n`; 7 | 8 | assert.deepStrictEqual(getBaseComponent(file), { 9 | baseComponentName: undefined, 10 | importPath: undefined, 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/utils/components/get-block-parameter-type/edge-case-recast-type-is-unknown.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { getBlockParameterType } from '../../../../src/utils/components.js'; 4 | 5 | test('utils | components | get-block-parameter-type > edge case (recast type is unknown)', function () { 6 | assert.strictEqual(getBlockParameterType('BrandNewType'), 'unknown'); 7 | }); 8 | -------------------------------------------------------------------------------- /tests/utils/components/normalize-block-name/base-case.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { normalizeBlockName } from '../../../../src/utils/components.js'; 4 | 5 | test('utils | components | normalize-block-name > base case', function () { 6 | assert.strictEqual(normalizeBlockName('default'), 'default'); 7 | assert.strictEqual(normalizeBlockName('header'), 'header'); 8 | assert.strictEqual(normalizeBlockName('footer'), 'footer'); 9 | }); 10 | -------------------------------------------------------------------------------- /tests/utils/components/normalize-block-name/edge-case-block-name-is-undefined.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { normalizeBlockName } from '../../../../src/utils/components.js'; 4 | 5 | test('utils | components | normalize-block-name > edge case (block name is undefined)', function () { 6 | assert.strictEqual(normalizeBlockName(undefined), 'default'); 7 | }); 8 | -------------------------------------------------------------------------------- /tests/utils/components/normalize-block-name/edge-case-else-block.test.ts: -------------------------------------------------------------------------------- 1 | import { assert, test } from '@codemod-utils/tests'; 2 | 3 | import { normalizeBlockName } from '../../../../src/utils/components.js'; 4 | 5 | test('utils | components | normalize-block-name > edge case (else block)', function () { 6 | assert.strictEqual(normalizeBlockName('else'), 'else'); 7 | assert.strictEqual(normalizeBlockName('inverse'), 'else'); 8 | }); 9 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@tsconfig/node20/tsconfig", "@tsconfig/strictest/tsconfig"], 3 | "compilerOptions": { 4 | "declaration": false, 5 | "module": "nodenext", 6 | "moduleResolution": "nodenext", 7 | "outDir": "dist", 8 | "verbatimModuleSyntax": true 9 | }, 10 | "include": ["bin", "src"], 11 | "exclude": ["src/blueprints"] 12 | } 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@tsconfig/node20/tsconfig", "@tsconfig/strictest/tsconfig"], 3 | "compilerOptions": { 4 | "declaration": false, 5 | "module": "nodenext", 6 | "moduleResolution": "nodenext", 7 | "outDir": "dist-for-testing", 8 | "verbatimModuleSyntax": true 9 | }, 10 | "include": ["bin", "src", "tests"], 11 | "exclude": ["src/blueprints", "tests/fixtures"] 12 | } 13 | --------------------------------------------------------------------------------