diff --git a/.ember-cli b/.ember-cli index 465c405..acc2a0e 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": "strict", + + /** + Setting `routeAuthoringFormat` to "strict" will force the blueprint generators to generate GJS + or GTS templates for routes. "loose" is the default + */ + "routeAuthoringFormat": "strict" } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f597bf..37f38bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,11 +18,12 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - name: Install Node + uses: actions/setup-node@v3 with: - node-version: 18.x + node-version: 22 cache: pnpm - name: Install Dependencies run: pnpm install --frozen-lockfile @@ -35,11 +36,12 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 + - name: Install Node + uses: actions/setup-node@v3 with: - node-version: 18.x + node-version: 22 cache: pnpm - name: Install Dependencies run: pnpm install --frozen-lockfile diff --git a/.gitignore b/.gitignore index 71ad79d..812161f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +/tmp/ + # compiled output /dist/ /declarations/ @@ -14,12 +16,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..cc648b2 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,6 +1,9 @@ # unconventional js /blueprints/*/files/ +# vendored bootstrap CSS +/public/vendor/bootstrap.css + # compiled output /dist/ @@ -8,6 +11,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/.stylelintignore b/.stylelintignore index b79927d..34e3100 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -1,11 +1,8 @@ # unconventional files /blueprints/*/files/ +# vendored bootstrap CSS +/public/vendor/bootstrap.css + # compiled output /dist/ - -# addons -/.node_modules.ember-try/ - -# vendor -public/vendor/* 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..578ff69 100644 --- a/app/app.js +++ b/app/app.js @@ -1,13 +1,20 @@ import Application from '@ember/application'; import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; -import config from 'netrunnerdb/config/environment'; +import config from './config/environment'; import './font-awesome'; // Add this import statement for Font Awesome setup +import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros'; + +import compatModules from '@embroider/virtual/compat-modules'; + +if (macroCondition(isDevelopingApp())) { + importSync('./deprecation-workflow'); +} export default class App extends Application { modulePrefix = config.modulePrefix; podModulePrefix = config.podModulePrefix; - Resolver = Resolver; + Resolver = Resolver.withModules(compatModules); } -loadInitializers(App, config.modulePrefix); +loadInitializers(App, config.modulePrefix, compatModules); 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..e5e4208 100644 --- a/app/components/navbar.gjs +++ b/app/components/navbar.gjs @@ -4,10 +4,7 @@ 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 Collapse from 'ember-bootstrap/components/bs-collapse'; import formatMessage from 'ember-intl/helpers/format-message'; @@ -29,8 +26,6 @@ class Navbar extends Component {