diff --git a/.ember-cli b/.ember-cli index 465c405..c53e7f4 100644 --- a/.ember-cli +++ b/.ember-cli @@ -3,5 +3,17 @@ Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript rather than JavaScript by default, when a TypeScript version of a given blueprint is available. */ - "isTypeScriptProject": false + "isTypeScriptProject": false, + + /** + Setting `componentAuthoringFormat` to "strict" will force the blueprint generators to generate GJS + or GTS files for the component and the component rendering test. "loose" is the default. + */ + "componentAuthoringFormat": "loose", + + /** + Setting `routeAuthoringFormat` to "strict" will force the blueprint generators to generate GJS + or GTS templates for routes. "loose" is the default + */ + "routeAuthoringFormat": "loose" } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f597bf..34efc4c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 24.x cache: pnpm - name: Install Dependencies run: pnpm install --frozen-lockfile @@ -39,7 +39,7 @@ jobs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 24.x cache: pnpm - name: Install Dependencies run: pnpm install --frozen-lockfile diff --git a/.gitignore b/.gitignore index 71ad79d..f0dde6d 100644 --- a/.gitignore +++ b/.gitignore @@ -14,12 +14,5 @@ /testem.log /yarn-error.log -# ember-try -/.node_modules.ember-try/ -/npm-shrinkwrap.json.ember-try -/package.json.ember-try -/package-lock.json.ember-try -/yarn.lock.ember-try - # broccoli-debug /DEBUG/ diff --git a/.prettierignore b/.prettierignore index 9385391..d7ab459 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,6 +8,6 @@ /coverage/ !.* .*/ - -# ember-try -/.node_modules.ember-try/ +/pnpm-lock.yaml +ember-cli-update.json +*.html diff --git a/.prettierrc.js b/.prettierrc.js index 3a658b9..071d4eb 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -4,9 +4,10 @@ module.exports = { plugins: ['prettier-plugin-ember-template-tag'], overrides: [ { - files: '*.{js,ts,gjs,gts}', + files: '*.{js,gjs,ts,gts,mjs,mts,cjs,cts}', options: { singleQuote: true, + templateSingleQuote: true, }, }, // ... diff --git a/.stylelintrc.js b/.stylelintrc.js index 2fe27d2..66f4d36 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -1,7 +1,7 @@ 'use strict'; module.exports = { - extends: ['stylelint-config-standard', 'stylelint-prettier/recommended'], + extends: ['stylelint-config-standard'], rules: { 'custom-property-pattern': null, 'block-no-empty': null, diff --git a/app/app.js b/app/app.js index cc8c9ac..09d6553 100644 --- a/app/app.js +++ b/app/app.js @@ -3,6 +3,11 @@ import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; import config from 'netrunnerdb/config/environment'; import './font-awesome'; // Add this import statement for Font Awesome setup +import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros'; + +if (macroCondition(isDevelopingApp())) { + importSync('./deprecation-workflow'); +} export default class App extends Application { modulePrefix = config.modulePrefix; diff --git a/app/components/banlist/banned.gjs b/app/components/banlist/banned.gjs index 688e63e..23e948f 100644 --- a/app/components/banlist/banned.gjs +++ b/app/components/banlist/banned.gjs @@ -1,10 +1,11 @@ import Component from '@glimmer/component'; +import { cached } from '@glimmer/tracking'; import CardLinkTo from '../card/link-to'; const capitalize = 'text-transform: capitalize'; export default class Banned extends Component { - get bannedCards() { + @cached get bannedCards() { return this.args.restriction.verdicts.banned .map((cardId) => { return this.args.cards.get(cardId); diff --git a/app/components/decklist-box.gjs b/app/components/decklist-box.gjs index 8452850..2bd8964 100644 --- a/app/components/decklist-box.gjs +++ b/app/components/decklist-box.gjs @@ -3,7 +3,7 @@ import { tracked } from '@glimmer/tracking'; import { LinkTo } from '@ember/routing'; import { service } from '@ember/service'; import FaIcon from '@fortawesome/ember-fontawesome/components/fa-icon'; -import { faCardsBlank } from '@fortawesome/free-solid-svg-icons'; +import { faLayerGroup } from '@fortawesome/free-solid-svg-icons'; import { GetIdentityTitle, @@ -71,7 +71,7 @@ export default class DecklistBoxComponent extends Component { }})

- + {{@decklist.numCards}} cards (min {{@decklist.identityCard.minimumDeckSize}}) diff --git a/app/components/navbar.gjs b/app/components/navbar.gjs index ee11ad7..24923f4 100644 --- a/app/components/navbar.gjs +++ b/app/components/navbar.gjs @@ -4,10 +4,8 @@ import { action } from '@ember/object'; import { LinkTo } from '@ember/routing'; import { on } from '@ember/modifier'; import FaIcon from '@fortawesome/ember-fontawesome/components/fa-icon'; -import { - faBars, - faFantasyFlightGames, -} from '@fortawesome/free-solid-svg-icons'; +import { faBars } from '@fortawesome/free-solid-svg-icons'; +import { faFantasyFlightGames } from '@fortawesome/free-brands-svg-icons'; import Collapse from 'ember-bootstrap/components/bs-collapse'; import formatMessage from 'ember-intl/helpers/format-message'; diff --git a/app/deprecation-workflow.js b/app/deprecation-workflow.js new file mode 100644 index 0000000..274a689 --- /dev/null +++ b/app/deprecation-workflow.js @@ -0,0 +1,24 @@ +import setupDeprecationWorkflow from 'ember-cli-deprecation-workflow'; + +/** + * Docs: https://github.com/ember-cli/ember-cli-deprecation-workflow + */ +setupDeprecationWorkflow({ + /** + false by default, but if a developer / team wants to be more aggressive about being proactive with + handling their deprecations, this should be set to "true" + */ + throwOnUnhandled: false, + workflow: [ + /* ... handlers ... */ + /* to generate this list, run your app for a while (or run the test suite), + * and then run in the browser console: + * + * deprecationWorkflow.flushDeprecations() + * + * And copy the handlers here + */ + /* example: */ + /* { handler: 'silence', matchId: 'template-action' }, */ + ], +}); diff --git a/app/templates/formats/format.gjs b/app/templates/formats/format.gjs index b077c9f..7ceecb7 100644 --- a/app/templates/formats/format.gjs +++ b/app/templates/formats/format.gjs @@ -8,31 +8,31 @@ import Navbar from 'netrunnerdb/components/navbar'; import FancyHeader from 'netrunnerdb/components/fancy-header'; const FormatSection =