From fed5932d5c93e144ef44311d10cdf673dea8852e Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 26 Apr 2024 17:46:35 +0100 Subject: [PATCH 01/28] make all packages modules, and build with `pkgroll` to local dist --- .changeset/config.json | 2 +- .changeset/lovely-moose-thank.md | 23 + .eslintrc.cjs | 27 +- .../actions/prepare-for-changesets/action.yml | 31 - .github/dependabot.yml | 2 - .github/workflows/changesets.yml | 3 - .lintstagedrc.js | 2 +- Makefile | 48 - README.md | 12 - apps/github-pages/astro.config.mjs | 15 - apps/github-pages/package.json | 1 + configs/{jest.config.ts => jest.config.js} | 5 +- libs/@guardian/ab-core/.eslintrc.cjs | 7 +- libs/@guardian/ab-core/jest.config.js | 11 + libs/@guardian/ab-core/jest.config.ts | 13 - .../jest.dist.setup.js} | 4 +- libs/@guardian/ab-core/package.json | 36 +- libs/@guardian/ab-core/tsconfig.json | 5 +- libs/@guardian/ab-core/tsconfig.spec.json | 2 +- libs/@guardian/ab-react/.eslintrc.cjs | 7 +- .../{jest.config.ts => jest.config.js} | 7 +- .../jest.dist.setup.js} | 4 +- libs/@guardian/ab-react/package.json | 36 +- libs/@guardian/ab-react/tsconfig.json | 1 - .../browserslist-config/.eslintrc.cjs | 6 +- .../browserslist-config/dist.test.js | 8 - .../browserslist-config/jest.config.ts | 16 - .../browserslist-config/package.json | 29 +- libs/@guardian/cobalt-plugin-ts/.eslintrc.cjs | 6 +- .../cobalt-plugin-ts/{index.mjs => index.js} | 2 +- libs/@guardian/cobalt-plugin-ts/package.json | 16 +- .../{.eslintrc.js => .eslintrc.cjs} | 7 +- .../{jest.config.ts => jest.config.js} | 7 +- .../jest.dist.setup.js} | 4 +- .../core-web-vitals/jest.dist.setup.ts | 8 - libs/@guardian/core-web-vitals/package.json | 36 +- libs/@guardian/core-web-vitals/tsconfig.json | 5 +- .../core-web-vitals/tsconfig.spec.json | 2 +- libs/@guardian/design-tokens/.eslintrc.cjs | 7 +- libs/@guardian/design-tokens/package.json | 36 +- libs/@guardian/design-tokens/tokens.config.js | 4 +- libs/@guardian/design-tokens/tokens.d.ts | 1678 ----------------- libs/@guardian/design-tokens/tokens.js | 1650 ---------------- .../design-tokens/{src => }/tokens.json | 0 libs/@guardian/design-tokens/variables.css | 1622 ---------------- .../eslint-config-typescript/.eslintrc.cjs | 6 +- .../eslint-config-typescript/dist.test.js | 8 - .../eslint-config-typescript/jest.config.ts | 16 - .../eslint-config-typescript/package.json | 23 +- libs/@guardian/eslint-config/.eslintrc.cjs | 6 +- libs/@guardian/eslint-config/dist.test.js | 8 - libs/@guardian/eslint-config/jest.config.ts | 16 - libs/@guardian/eslint-config/package.json | 23 +- .../.eslintrc.cjs | 7 +- .../{jest.config.ts => jest.config.js} | 7 +- .../jest.dist.setup.js} | 3 +- .../package.json | 36 +- .../tsconfig.json | 5 +- .../tsconfig.spec.json | 2 +- .../.eslintrc.cjs | 7 +- .../{jest.config.ts => jest.config.js} | 7 +- .../jest.dist.setup.js} | 3 +- .../jest.dist.setup.ts | 9 - .../package.json | 36 +- .../tsconfig.json | 5 +- .../tsconfig.spec.json | 2 +- .../identity-auth-frontend/.eslintrc.cjs | 7 +- .../{jest.config.ts => jest.config.js} | 7 +- .../jest.dist.setup.js} | 4 +- .../identity-auth-frontend/jest.dist.setup.ts | 8 - .../identity-auth-frontend/package.json | 36 +- .../identity-auth-frontend/tsconfig.json | 5 +- .../identity-auth-frontend/tsconfig.spec.json | 2 +- libs/@guardian/identity-auth/.eslintrc.cjs | 7 +- .../{jest.config.ts => jest.config.js} | 7 +- .../identity-auth/jest.dist.setup.js | 6 + libs/@guardian/identity-auth/package.json | 36 +- libs/@guardian/identity-auth/tsconfig.json | 5 +- .../identity-auth/tsconfig.spec.json | 2 +- libs/@guardian/libs/.eslintrc.cjs | 7 +- libs/@guardian/libs/.lintstagedrc.js | 4 +- .../{cypress.config.js => cypress.config.mjs} | 2 +- .../cypress/plugins/{index.js => index.mjs} | 0 .../libs/{jest.config.ts => jest.config.js} | 7 +- ...est.dist.config.ts => jest.dist.config.js} | 10 +- libs/@guardian/libs/jest.dist.setup.js | 6 + libs/@guardian/libs/jest.testEnvironment.js | 4 +- libs/@guardian/libs/package.json | 36 +- libs/@guardian/libs/tsconfig.json | 10 +- libs/@guardian/libs/tsconfig.spec.json | 2 +- libs/@guardian/newsletter-types/.eslintrc.cjs | 7 +- libs/@guardian/newsletter-types/package.json | 34 +- libs/@guardian/newsletter-types/tsconfig.json | 5 +- libs/@guardian/prettier/.eslintrc.cjs | 6 +- libs/@guardian/prettier/dist.test.js | 8 - libs/@guardian/prettier/jest.config.ts | 13 - libs/@guardian/prettier/package.json | 24 +- .../source-foundations/.eslintrc.cjs | 8 +- .../{jest.config.ts => jest.config.js} | 7 +- ...{jest.dist.setup.ts => jest.dist.setup.js} | 5 +- .../@guardian/source-foundations/package.json | 36 +- .../source-foundations/tsconfig.json | 5 +- .../source-foundations/tsconfig.spec.json | 2 +- .../.eslintrc.cjs | 8 +- .../{jest.config.ts => jest.config.js} | 7 +- .../jest.dist.setup.js | 7 + .../jest.dist.setup.ts | 9 - .../package.json | 36 +- .../tsconfig.json | 5 +- .../tsconfig.spec.json | 2 +- .../source-react-components/.eslintrc.cjs | 14 +- .../{jest.config.ts => jest.config.js} | 7 +- .../jest.dist.setup.js | 6 + .../source-react-components/package.json | 36 +- .../source-react-components/tsconfig.json | 5 +- .../tsconfig.spec.json | 2 +- libs/@guardian/tsconfig/.eslintrc.cjs | 6 +- libs/@guardian/tsconfig/dist.test.js | 8 - libs/@guardian/tsconfig/jest.config.ts | 15 - libs/@guardian/tsconfig/package.json | 23 +- nx.json | 6 + package.json | 1 + pnpm-lock.yaml | 115 +- tools/nx-plugins/npm-package/.eslintrc.js | 16 - .../npm-package/build/get-compiler-options.ts | 36 - .../npm-package/build/get-declared-deps.ts | 23 - tools/nx-plugins/npm-package/build/index.ts | 179 -- .../nx-plugins/npm-package/build/schema.d.ts | 8 - .../nx-plugins/npm-package/build/schema.json | 40 - .../npm-package/build/set-package-defaults.ts | 88 - .../build/write-resolved-package-json.ts | 56 - tools/nx-plugins/npm-package/executors.json | 10 - tools/nx-plugins/npm-package/package.json | 48 - tools/nx-plugins/npm-package/tsconfig.json | 3 - tsconfig.base.json | 33 - 135 files changed, 699 insertions(+), 6227 deletions(-) create mode 100644 .changeset/lovely-moose-thank.md delete mode 100644 .github/actions/prepare-for-changesets/action.yml rename configs/{jest.config.ts => jest.config.js} (82%) create mode 100644 libs/@guardian/ab-core/jest.config.js delete mode 100644 libs/@guardian/ab-core/jest.config.ts rename libs/@guardian/{libs/jest.dist.setup.ts => ab-core/jest.dist.setup.js} (51%) rename libs/@guardian/ab-react/{jest.config.ts => jest.config.js} (62%) rename libs/@guardian/{ab-core/jest.dist.setup.ts => ab-react/jest.dist.setup.js} (51%) delete mode 100644 libs/@guardian/browserslist-config/dist.test.js delete mode 100644 libs/@guardian/browserslist-config/jest.config.ts rename libs/@guardian/cobalt-plugin-ts/{index.mjs => index.js} (97%) rename libs/@guardian/core-web-vitals/{.eslintrc.js => .eslintrc.cjs} (79%) rename libs/@guardian/core-web-vitals/{jest.config.ts => jest.config.js} (63%) rename libs/@guardian/{ab-react/jest.dist.setup.ts => core-web-vitals/jest.dist.setup.js} (51%) delete mode 100644 libs/@guardian/core-web-vitals/jest.dist.setup.ts delete mode 100644 libs/@guardian/design-tokens/tokens.d.ts delete mode 100644 libs/@guardian/design-tokens/tokens.js rename libs/@guardian/design-tokens/{src => }/tokens.json (100%) delete mode 100644 libs/@guardian/design-tokens/variables.css delete mode 100644 libs/@guardian/eslint-config-typescript/dist.test.js delete mode 100644 libs/@guardian/eslint-config-typescript/jest.config.ts delete mode 100644 libs/@guardian/eslint-config/dist.test.js delete mode 100644 libs/@guardian/eslint-config/jest.config.ts rename libs/@guardian/eslint-plugin-source-foundations/{jest.config.ts => jest.config.js} (63%) rename libs/@guardian/{source-react-components/jest.dist.setup.ts => eslint-plugin-source-foundations/jest.dist.setup.js} (75%) rename libs/@guardian/eslint-plugin-source-react-components/{jest.config.ts => jest.config.js} (63%) rename libs/@guardian/{eslint-plugin-source-foundations/jest.dist.setup.ts => eslint-plugin-source-react-components/jest.dist.setup.js} (73%) delete mode 100644 libs/@guardian/eslint-plugin-source-react-components/jest.dist.setup.ts rename libs/@guardian/identity-auth-frontend/{jest.config.ts => jest.config.js} (64%) rename libs/@guardian/{identity-auth/jest.dist.setup.ts => identity-auth-frontend/jest.dist.setup.js} (50%) delete mode 100644 libs/@guardian/identity-auth-frontend/jest.dist.setup.ts rename libs/@guardian/identity-auth/{jest.config.ts => jest.config.js} (63%) create mode 100644 libs/@guardian/identity-auth/jest.dist.setup.js rename libs/@guardian/libs/{cypress.config.js => cypress.config.mjs} (89%) rename libs/@guardian/libs/cypress/plugins/{index.js => index.mjs} (100%) rename libs/@guardian/libs/{jest.config.ts => jest.config.js} (62%) rename libs/@guardian/libs/{jest.dist.config.ts => jest.dist.config.js} (55%) create mode 100644 libs/@guardian/libs/jest.dist.setup.js delete mode 100644 libs/@guardian/prettier/dist.test.js delete mode 100644 libs/@guardian/prettier/jest.config.ts rename libs/@guardian/source-foundations/{jest.config.ts => jest.config.js} (70%) rename libs/@guardian/source-foundations/{jest.dist.setup.ts => jest.dist.setup.js} (61%) rename libs/@guardian/source-react-components-development-kitchen/{jest.config.ts => jest.config.js} (64%) create mode 100644 libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.js delete mode 100644 libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.ts rename libs/@guardian/source-react-components/{jest.config.ts => jest.config.js} (62%) create mode 100644 libs/@guardian/source-react-components/jest.dist.setup.js delete mode 100644 libs/@guardian/tsconfig/dist.test.js delete mode 100644 libs/@guardian/tsconfig/jest.config.ts delete mode 100644 tools/nx-plugins/npm-package/.eslintrc.js delete mode 100644 tools/nx-plugins/npm-package/build/get-compiler-options.ts delete mode 100644 tools/nx-plugins/npm-package/build/get-declared-deps.ts delete mode 100644 tools/nx-plugins/npm-package/build/index.ts delete mode 100644 tools/nx-plugins/npm-package/build/schema.d.ts delete mode 100644 tools/nx-plugins/npm-package/build/schema.json delete mode 100644 tools/nx-plugins/npm-package/build/set-package-defaults.ts delete mode 100644 tools/nx-plugins/npm-package/build/write-resolved-package-json.ts delete mode 100644 tools/nx-plugins/npm-package/executors.json delete mode 100644 tools/nx-plugins/npm-package/package.json delete mode 100644 tools/nx-plugins/npm-package/tsconfig.json diff --git a/.changeset/config.json b/.changeset/config.json index 7a78b803d..31a3b7581 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -8,7 +8,7 @@ "baseBranch": "main", "updateInternalDependencies": "patch", "bumpVersionsWithWorkspaceProtocolOnly": true, - "ignore": ["@csnx/*"], + "ignore": ["github-pages"], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true } diff --git a/.changeset/lovely-moose-thank.md b/.changeset/lovely-moose-thank.md new file mode 100644 index 000000000..0a493bb0f --- /dev/null +++ b/.changeset/lovely-moose-thank.md @@ -0,0 +1,23 @@ +--- +'@guardian/source-react-components-development-kitchen': patch +'@guardian/eslint-plugin-source-react-components': patch +'@guardian/eslint-plugin-source-foundations': patch +'@guardian/eslint-config-typescript': patch +'@guardian/source-react-components': patch +'@guardian/identity-auth-frontend': patch +'@guardian/browserslist-config': patch +'@guardian/source-foundations': patch +'@guardian/cobalt-plugin-ts': patch +'@guardian/newsletter-types': patch +'@guardian/core-web-vitals': patch +'@guardian/design-tokens': patch +'@guardian/eslint-config': patch +'@guardian/identity-auth': patch +'@guardian/ab-react': patch +'@guardian/prettier': patch +'@guardian/tsconfig': patch +'@guardian/ab-core': patch +'@guardian/libs': patch +--- + +Now bundled using [`pkgroll`](https://www.npmjs.com/package/pkgroll). diff --git a/.eslintrc.cjs b/.eslintrc.cjs index d10ab8b00..ea9641b0c 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -6,32 +6,19 @@ module.exports = { // disable eslint on all files by default, for perf reasons // re-enabled in each projects own eslint config (ignorePatterns: ['!**/*']) ignorePatterns: ['**/*'], - plugins: ['@nx'], + parser: '@typescript-eslint/parser', + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020, + }, overrides: [ - { - files: ['*.ts', '*.tsx', '*.js', '*.jsx'], - rules: { - '@nx/enforce-module-boundaries': [ - 'error', - { - enforceBuildableLibDependency: true, - depConstraints: [ - { - sourceTag: '*', - onlyDependOnLibsWithTags: ['*'], - }, - ], - }, - ], - }, - }, { files: ['*.js', '*.jsx', '*.mjs', '*.cjs'], - extends: ['plugin:@nx/javascript', '@guardian/eslint-config'], + extends: ['@guardian/eslint-config'], }, { files: ['*.ts', '*.tsx', '*.mts', '*.cts', '*.d.ts'], - extends: ['plugin:@nx/typescript', '@guardian/eslint-config-typescript'], + extends: ['@guardian/eslint-config-typescript'], settings: { 'import/resolver': { typescript: { diff --git a/.github/actions/prepare-for-changesets/action.yml b/.github/actions/prepare-for-changesets/action.yml deleted file mode 100644 index 582f23b0d..000000000 --- a/.github/actions/prepare-for-changesets/action.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: 'Prepare Nx project for changesets' -description: 'Sets things up so that changesets can run alongside Nx' - -runs: - using: 'composite' - steps: - # The Nx convention is to build projects to a root `dist` directory - # (outside their source directories), but changesets uses pnpm's workspace - # to look for the source directory of candidate packages when trying to - # publish. - # - # Therefore, after building the packages we are going to publish, we will - # rewrite the pnpm workspace file to point to the root `dist` directory - # instead. - # - # This will allow changesets to find the newly built assets to publish. - # - # Inspired by this article: - # https://dev.to/jmcdo29/automating-your-package-deployment-in-an-nx-monorepo-with-changeset-4em8 - - name: Prepare workspace for publishing - run: echo -e "packages:\n - 'dist/libs/**'" > pnpm-workspace.yaml - shell: bash - - # This is a workaround for bug in changesets where it throws if you tell - # it ignore a package it cannot find. We're ignoring @csnx/* packages to - # stop it trying to create release PRs for them, which works fine. But at - # this point in the lifecycle, we don't build any @csnx/* packages, so it - # throws an error looking for them in `dist/libs` (see above) to ignore. - - name: Create fake @csnx package (workaround for changesets bug) - run: mkdir -p dist/libs/@csnx/null && echo -e "{\"name\":\"@csnx/null\",\"private\":true}" > dist/libs/@csnx/null/package.json - shell: bash diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f82b9e566..1c3b53870 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -67,8 +67,6 @@ updates: dependencies: dependency-type: 'production' update-types: ['minor', 'patch'] - exclude-patterns: - - '@csnx*' # don't treat csnx packages as public devDependencies: dependency-type: 'development' update-types: ['minor', 'patch'] diff --git a/.github/workflows/changesets.yml b/.github/workflows/changesets.yml index 222aa3c8f..4123c288a 100644 --- a/.github/workflows/changesets.yml +++ b/.github/workflows/changesets.yml @@ -30,9 +30,6 @@ jobs: - run: pnpm nx run-many --target=build --all=true - - name: Prepare Nx project for changesets - uses: ./.github/actions/prepare-for-changesets - # down to business... - name: Use GitHub App Token uses: actions/create-github-app-token@v1 diff --git a/.lintstagedrc.js b/.lintstagedrc.js index ca70b04d9..c63f31f0e 100644 --- a/.lintstagedrc.js +++ b/.lintstagedrc.js @@ -1,4 +1,4 @@ -module.exports = { +export default { '*': 'prettier --ignore-unknown --write --cache', 'package.json': 'sort-package-json', }; diff --git a/Makefile b/Makefile index 5ff6ba6b5..a2b853462 100644 --- a/Makefile +++ b/Makefile @@ -182,10 +182,6 @@ install: check-node-version @guardian/ab-react\:verify-dist: env @corepack pnpm nx run @guardian/ab-react:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/browserslist-config\:build -@guardian/browserslist-config\:build: env - @corepack pnpm nx run @guardian/browserslist-config:build --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/browserslist-config\:fix @guardian/browserslist-config\:fix: env @corepack pnpm nx run @guardian/browserslist-config:fix --skip-nx-cache=$(SKIP_NX_CACHE) @@ -198,14 +194,6 @@ install: check-node-version @guardian/browserslist-config\:update-readme: env @corepack pnpm nx run @guardian/browserslist-config:update-readme --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/browserslist-config\:verify-dist -@guardian/browserslist-config\:verify-dist: env - @corepack pnpm nx run @guardian/browserslist-config:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE) - -.PHONY: @guardian/cobalt-plugin-ts\:build -@guardian/cobalt-plugin-ts\:build: env - @corepack pnpm nx run @guardian/cobalt-plugin-ts:build --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/cobalt-plugin-ts\:fix @guardian/cobalt-plugin-ts\:fix: env @corepack pnpm nx run @guardian/cobalt-plugin-ts:fix --skip-nx-cache=$(SKIP_NX_CACHE) @@ -246,18 +234,10 @@ install: check-node-version @guardian/design-tokens\:fix: env @corepack pnpm nx run @guardian/design-tokens:fix --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/design-tokens\:generate-tokens -@guardian/design-tokens\:generate-tokens: env - @corepack pnpm nx run @guardian/design-tokens:generate-tokens --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/design-tokens\:lint @guardian/design-tokens\:lint: env @corepack pnpm nx run @guardian/design-tokens:lint --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/eslint-config\:build -@guardian/eslint-config\:build: env - @corepack pnpm nx run @guardian/eslint-config:build --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/eslint-config\:fix @guardian/eslint-config\:fix: env @corepack pnpm nx run @guardian/eslint-config:fix --skip-nx-cache=$(SKIP_NX_CACHE) @@ -266,14 +246,6 @@ install: check-node-version @guardian/eslint-config\:lint: env @corepack pnpm nx run @guardian/eslint-config:lint --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/eslint-config\:verify-dist -@guardian/eslint-config\:verify-dist: env - @corepack pnpm nx run @guardian/eslint-config:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE) - -.PHONY: @guardian/eslint-config-typescript\:build -@guardian/eslint-config-typescript\:build: env - @corepack pnpm nx run @guardian/eslint-config-typescript:build --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/eslint-config-typescript\:fix @guardian/eslint-config-typescript\:fix: env @corepack pnpm nx run @guardian/eslint-config-typescript:fix --skip-nx-cache=$(SKIP_NX_CACHE) @@ -282,10 +254,6 @@ install: check-node-version @guardian/eslint-config-typescript\:lint: env @corepack pnpm nx run @guardian/eslint-config-typescript:lint --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/eslint-config-typescript\:verify-dist -@guardian/eslint-config-typescript\:verify-dist: env - @corepack pnpm nx run @guardian/eslint-config-typescript:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/eslint-plugin-source-foundations\:build @guardian/eslint-plugin-source-foundations\:build: env @corepack pnpm nx run @guardian/eslint-plugin-source-foundations:build --skip-nx-cache=$(SKIP_NX_CACHE) @@ -426,10 +394,6 @@ install: check-node-version @guardian/newsletter-types\:lint: env @corepack pnpm nx run @guardian/newsletter-types:lint --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/prettier\:build -@guardian/prettier\:build: env - @corepack pnpm nx run @guardian/prettier:build --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/prettier\:fix @guardian/prettier\:fix: env @corepack pnpm nx run @guardian/prettier:fix --skip-nx-cache=$(SKIP_NX_CACHE) @@ -438,10 +402,6 @@ install: check-node-version @guardian/prettier\:lint: env @corepack pnpm nx run @guardian/prettier:lint --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/prettier\:verify-dist -@guardian/prettier\:verify-dist: env - @corepack pnpm nx run @guardian/prettier:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/source-foundations\:build @guardian/source-foundations\:build: env @corepack pnpm nx run @guardian/source-foundations:build --skip-nx-cache=$(SKIP_NX_CACHE) @@ -546,10 +506,6 @@ install: check-node-version @guardian/source-react-components-development-kitchen\:verify-dist: env @corepack pnpm nx run @guardian/source-react-components-development-kitchen:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/tsconfig\:build -@guardian/tsconfig\:build: env - @corepack pnpm nx run @guardian/tsconfig:build --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: @guardian/tsconfig\:fix @guardian/tsconfig\:fix: env @corepack pnpm nx run @guardian/tsconfig:fix --skip-nx-cache=$(SKIP_NX_CACHE) @@ -558,10 +514,6 @@ install: check-node-version @guardian/tsconfig\:lint: env @corepack pnpm nx run @guardian/tsconfig:lint --skip-nx-cache=$(SKIP_NX_CACHE) -.PHONY: @guardian/tsconfig\:verify-dist -@guardian/tsconfig\:verify-dist: env - @corepack pnpm nx run @guardian/tsconfig:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE) - .PHONY: github-pages\:build github-pages\:build: env @corepack pnpm nx run github-pages:build --skip-nx-cache=$(SKIP_NX_CACHE) diff --git a/README.md b/README.md index b430a2828..7ecfc6356 100644 --- a/README.md +++ b/README.md @@ -93,15 +93,12 @@ Project-specific tasks are defined as `scripts` in a `package.json` or `targets` #### @guardian/browserslist-config -- `make @guardian/browserslist-config:build` - `make @guardian/browserslist-config:fix` - `make @guardian/browserslist-config:lint` - `make @guardian/browserslist-config:update-readme` -- `make @guardian/browserslist-config:verify-dist` #### @guardian/cobalt-plugin-ts -- `make @guardian/cobalt-plugin-ts:build` - `make @guardian/cobalt-plugin-ts:fix` - `make @guardian/cobalt-plugin-ts:lint` @@ -118,22 +115,17 @@ Project-specific tasks are defined as `scripts` in a `package.json` or `targets` - `make @guardian/design-tokens:build` - `make @guardian/design-tokens:fix` -- `make @guardian/design-tokens:generate-tokens` - `make @guardian/design-tokens:lint` #### @guardian/eslint-config -- `make @guardian/eslint-config:build` - `make @guardian/eslint-config:fix` - `make @guardian/eslint-config:lint` -- `make @guardian/eslint-config:verify-dist` #### @guardian/eslint-config-typescript -- `make @guardian/eslint-config-typescript:build` - `make @guardian/eslint-config-typescript:fix` - `make @guardian/eslint-config-typescript:lint` -- `make @guardian/eslint-config-typescript:verify-dist` #### @guardian/eslint-plugin-source-foundations @@ -190,10 +182,8 @@ Project-specific tasks are defined as `scripts` in a `package.json` or `targets` #### @guardian/prettier -- `make @guardian/prettier:build` - `make @guardian/prettier:fix` - `make @guardian/prettier:lint` -- `make @guardian/prettier:verify-dist` #### @guardian/source-foundations @@ -232,10 +222,8 @@ Project-specific tasks are defined as `scripts` in a `package.json` or `targets` #### @guardian/tsconfig -- `make @guardian/tsconfig:build` - `make @guardian/tsconfig:fix` - `make @guardian/tsconfig:lint` -- `make @guardian/tsconfig:verify-dist` #### github-pages diff --git a/apps/github-pages/astro.config.mjs b/apps/github-pages/astro.config.mjs index aa034e6da..ab480910d 100644 --- a/apps/github-pages/astro.config.mjs +++ b/apps/github-pages/astro.config.mjs @@ -1,25 +1,10 @@ import { defineConfig } from 'astro/config'; -import tsConfig from '../../tsconfig.base.json'; -import path from 'node:path'; import svelte from '@astrojs/svelte'; -// duplicate the aliases defined in tsconfig.base.json -let alias = {}; -for (const [module, modulePath] of Object.entries( - tsConfig.compilerOptions.paths, -)) { - alias[module] = path.resolve('../../' + modulePath[0] + '.ts'); -} - // https://astro.build/config export default defineConfig({ site: 'https://guardian.github.io', base: '/csnx', integrations: [svelte()], - vite: { - resolve: { - alias, - }, - }, }); diff --git a/apps/github-pages/package.json b/apps/github-pages/package.json index f12803399..85c770ed2 100644 --- a/apps/github-pages/package.json +++ b/apps/github-pages/package.json @@ -11,6 +11,7 @@ "devDependencies": { "@astrojs/check": "0.5.6", "@astrojs/svelte": "5.3.0", + "@guardian/libs": "workspace:*", "astro": "4.5.16", "svelte": "4.2.12", "typescript": "5.3.3", diff --git a/configs/jest.config.ts b/configs/jest.config.js similarity index 82% rename from configs/jest.config.ts rename to configs/jest.config.js index 18bab67cc..87c64736f 100644 --- a/configs/jest.config.ts +++ b/configs/jest.config.js @@ -1,6 +1,5 @@ -import type { Config } from 'jest'; - -export const config: Config = { +/** @typedef {import("jest").Config} Config */ +export const config = { clearMocks: true, moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], diff --git a/libs/@guardian/ab-core/.eslintrc.cjs b/libs/@guardian/ab-core/.eslintrc.cjs index 3154fa87b..4702175fa 100644 --- a/libs/@guardian/ab-core/.eslintrc.cjs +++ b/libs/@guardian/ab-core/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/ab-core/jest.config.js b/libs/@guardian/ab-core/jest.config.js new file mode 100644 index 000000000..33743cea6 --- /dev/null +++ b/libs/@guardian/ab-core/jest.config.js @@ -0,0 +1,11 @@ +import { config as baseConfig } from '../../../configs/jest.config.js'; + +/** @typedef {import("jest").Config} Config */ +const config = { + ...baseConfig, + displayName: '@guardian/ab-core', + testEnvironment: 'jest-environment-jsdom', +}; + +// eslint-disable-next-line import/no-default-export -- that's what jest likes +export default config; diff --git a/libs/@guardian/ab-core/jest.config.ts b/libs/@guardian/ab-core/jest.config.ts deleted file mode 100644 index d00f0c031..000000000 --- a/libs/@guardian/ab-core/jest.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ -/* eslint-disable import/no-default-export -- that's what jest likes */ - -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; - -const config: Config = { - ...baseConfig, - displayName: '@guardian/ab-core', - testEnvironment: 'jest-environment-jsdom', -}; - -export default config; diff --git a/libs/@guardian/libs/jest.dist.setup.ts b/libs/@guardian/ab-core/jest.dist.setup.js similarity index 51% rename from libs/@guardian/libs/jest.dist.setup.ts rename to libs/@guardian/ab-core/jest.dist.setup.js index ecd545f93..96fd6cc4b 100644 --- a/libs/@guardian/libs/jest.dist.setup.ts +++ b/libs/@guardian/ab-core/jest.dist.setup.js @@ -1,8 +1,6 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - // Mock `./src/index` with whatever `package.json` points at in dist. // This means we can run the unit tests against `dist` instead. -import * as dist from '../../../dist/libs/@guardian/libs'; +import * as dist from '.'; jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/ab-core/package.json b/libs/@guardian/ab-core/package.json index f85b065f7..2b32c394f 100644 --- a/libs/@guardian/ab-core/package.json +++ b/libs/@guardian/ab-core/package.json @@ -5,14 +5,29 @@ "description": "A client-side library for A/B & multivariate testing", "license": "Apache-2.0", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { + "pkgroll": "2.0.2", "tslib": "2.6.2", "typescript": "5.3.3" }, @@ -31,19 +46,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/ab-core/tsconfig.json b/libs/@guardian/ab-core/tsconfig.json index 978f6e1b9..9663b1b93 100644 --- a/libs/@guardian/ab-core/tsconfig.json +++ b/libs/@guardian/ab-core/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/ab-core/tsconfig.spec.json b/libs/@guardian/ab-core/tsconfig.spec.json index d42f10920..1b175b148 100644 --- a/libs/@guardian/ab-core/tsconfig.spec.json +++ b/libs/@guardian/ab-core/tsconfig.spec.json @@ -6,7 +6,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/ab-react/.eslintrc.cjs b/libs/@guardian/ab-react/.eslintrc.cjs index 3154fa87b..4702175fa 100644 --- a/libs/@guardian/ab-react/.eslintrc.cjs +++ b/libs/@guardian/ab-react/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/ab-react/jest.config.ts b/libs/@guardian/ab-react/jest.config.js similarity index 62% rename from libs/@guardian/ab-react/jest.config.ts rename to libs/@guardian/ab-react/jest.config.js index 7e4e8cc26..677cc698b 100644 --- a/libs/@guardian/ab-react/jest.config.ts +++ b/libs/@guardian/ab-react/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/ab-react', testEnvironment: 'jest-environment-jsdom', diff --git a/libs/@guardian/ab-core/jest.dist.setup.ts b/libs/@guardian/ab-react/jest.dist.setup.js similarity index 51% rename from libs/@guardian/ab-core/jest.dist.setup.ts rename to libs/@guardian/ab-react/jest.dist.setup.js index c635ed17f..96fd6cc4b 100644 --- a/libs/@guardian/ab-core/jest.dist.setup.ts +++ b/libs/@guardian/ab-react/jest.dist.setup.js @@ -1,8 +1,6 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - // Mock `./src/index` with whatever `package.json` points at in dist. // This means we can run the unit tests against `dist` instead. -import * as dist from '../../../dist/libs/@guardian/ab-core'; +import * as dist from '.'; jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/ab-react/package.json b/libs/@guardian/ab-react/package.json index 1adc58c75..9b12782db 100644 --- a/libs/@guardian/ab-react/package.json +++ b/libs/@guardian/ab-react/package.json @@ -5,17 +5,32 @@ "description": "A React library for A/B & multivariate testing", "license": "Apache-2.0", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { "@guardian/ab-core": "7.0.0", "@testing-library/react": "14.2.1", "@types/react": "18.2.11", + "pkgroll": "2.0.2", "react": "18.2.0", "react-dom": "18.2.0", "tslib": "2.6.2", @@ -39,19 +54,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/ab-react/tsconfig.json b/libs/@guardian/ab-react/tsconfig.json index 5ddfffb73..583450c7e 100644 --- a/libs/@guardian/ab-react/tsconfig.json +++ b/libs/@guardian/ab-react/tsconfig.json @@ -1,6 +1,5 @@ { "extends": "../../../tsconfig.base.json", - "files": [], "include": ["."], "compilerOptions": { "jsxImportSource": "react" diff --git a/libs/@guardian/browserslist-config/.eslintrc.cjs b/libs/@guardian/browserslist-config/.eslintrc.cjs index c160d51bf..4f01fa8a4 100644 --- a/libs/@guardian/browserslist-config/.eslintrc.cjs +++ b/libs/@guardian/browserslist-config/.eslintrc.cjs @@ -1,6 +1,10 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/browserslist-config/dist.test.js b/libs/@guardian/browserslist-config/dist.test.js deleted file mode 100644 index 00cbb8813..000000000 --- a/libs/@guardian/browserslist-config/dist.test.js +++ /dev/null @@ -1,8 +0,0 @@ -const bundleExports = require('../../../dist/libs/@guardian/browserslist-config'); -const srcExports = require('.'); - -describe('The bundle', () => { - it('exports everything it should', () => { - expect(srcExports).toEqual(bundleExports); - }); -}); diff --git a/libs/@guardian/browserslist-config/jest.config.ts b/libs/@guardian/browserslist-config/jest.config.ts deleted file mode 100644 index 6a03f7522..000000000 --- a/libs/@guardian/browserslist-config/jest.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ -/* eslint-disable import/no-default-export -- that's what jest likes */ - -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; - -const config: Config = { - ...baseConfig, - displayName: '@guardian/browserslist-config', - testEnvironment: 'node', - transform: { - '^.+\\.[tj]sx?$': 'ts-jest', - }, -}; - -export default config; diff --git a/libs/@guardian/browserslist-config/package.json b/libs/@guardian/browserslist-config/package.json index 577893f8c..b142b8332 100644 --- a/libs/@guardian/browserslist-config/package.json +++ b/libs/@guardian/browserslist-config/package.json @@ -3,11 +3,14 @@ "version": "6.1.0", "description": "Browserslist config for Guardian websites", "main": "browserslist.js", + "files": [ + ".browserslistrc", + "browserslist-stats.json" + ], "scripts": { "fix": "pnpm lint --fix", "lint": "eslint --cache .", - "update-readme": "node ./scripts/update-readme.mjs", - "verify-dist": "jest" + "update-readme": "node ./scripts/update-readme.mjs" }, "devDependencies": { "@guardian/browserslist-config": "workspace:*", @@ -23,22 +26,6 @@ }, "nx": { "targets": { - "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "packageJson": "{projectRoot}/package.json", - "assets": [ - "{projectRoot}/.browserslistrc", - "{projectRoot}/browserslist-stats.json", - "{projectRoot}/browserslist.js", - "{projectRoot}/*.md" - ] - } - }, "lint": { "inputs": [ "{projectRoot}/**", @@ -53,12 +40,6 @@ "outputs": [ "{projectRoot}" ] - }, - "verify-dist": { - "inputs": [ - "{projectRoot}/**", - "{workspaceRoot}/jest.*" - ] } } } diff --git a/libs/@guardian/cobalt-plugin-ts/.eslintrc.cjs b/libs/@guardian/cobalt-plugin-ts/.eslintrc.cjs index 0c139e643..ce9ae37cd 100644 --- a/libs/@guardian/cobalt-plugin-ts/.eslintrc.cjs +++ b/libs/@guardian/cobalt-plugin-ts/.eslintrc.cjs @@ -1,6 +1,10 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + ], overrides: [ { files: ['*.d.ts'], diff --git a/libs/@guardian/cobalt-plugin-ts/index.mjs b/libs/@guardian/cobalt-plugin-ts/index.js similarity index 97% rename from libs/@guardian/cobalt-plugin-ts/index.mjs rename to libs/@guardian/cobalt-plugin-ts/index.js index beb7980dd..6a099d5e1 100644 --- a/libs/@guardian/cobalt-plugin-ts/index.mjs +++ b/libs/@guardian/cobalt-plugin-ts/index.js @@ -13,7 +13,7 @@ import ts from 'typescript'; export default function pluginTS(options) { return { name: 'plugin-ts', - // eslint-disable-next-line @typescript-eslint/no-empty-function -- it needs to be present + config(/* config */) {}, async build({ tokens /* metadata, rawSchema */ }) { const header = `/** diff --git a/libs/@guardian/cobalt-plugin-ts/package.json b/libs/@guardian/cobalt-plugin-ts/package.json index bd3607c3c..d4b0f462f 100644 --- a/libs/@guardian/cobalt-plugin-ts/package.json +++ b/libs/@guardian/cobalt-plugin-ts/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "type": "module", - "main": "./index.mjs", + "main": "./index.js", "scripts": { "fix": "pnpm lint --fix", "lint": "eslint --cache ." @@ -22,20 +22,6 @@ }, "nx": { "targets": { - "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md", - "{projectRoot}/index.mjs" - ] - } - }, "lint": { "inputs": [ "{projectRoot}/**", diff --git a/libs/@guardian/core-web-vitals/.eslintrc.js b/libs/@guardian/core-web-vitals/.eslintrc.cjs similarity index 79% rename from libs/@guardian/core-web-vitals/.eslintrc.js rename to libs/@guardian/core-web-vitals/.eslintrc.cjs index 9bee1e043..54325ff0a 100644 --- a/libs/@guardian/core-web-vitals/.eslintrc.js +++ b/libs/@guardian/core-web-vitals/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/core-web-vitals/jest.config.ts b/libs/@guardian/core-web-vitals/jest.config.js similarity index 63% rename from libs/@guardian/core-web-vitals/jest.config.ts rename to libs/@guardian/core-web-vitals/jest.config.js index f53c9bdb1..546cc2f3d 100644 --- a/libs/@guardian/core-web-vitals/jest.config.ts +++ b/libs/@guardian/core-web-vitals/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/core-web-vitals', testEnvironment: 'jest-environment-jsdom', diff --git a/libs/@guardian/ab-react/jest.dist.setup.ts b/libs/@guardian/core-web-vitals/jest.dist.setup.js similarity index 51% rename from libs/@guardian/ab-react/jest.dist.setup.ts rename to libs/@guardian/core-web-vitals/jest.dist.setup.js index 4cf2af25c..96fd6cc4b 100644 --- a/libs/@guardian/ab-react/jest.dist.setup.ts +++ b/libs/@guardian/core-web-vitals/jest.dist.setup.js @@ -1,8 +1,6 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - // Mock `./src/index` with whatever `package.json` points at in dist. // This means we can run the unit tests against `dist` instead. -import * as dist from '../../../dist/libs/@guardian/ab-react'; +import * as dist from '.'; jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/core-web-vitals/jest.dist.setup.ts b/libs/@guardian/core-web-vitals/jest.dist.setup.ts deleted file mode 100644 index 76367df8d..000000000 --- a/libs/@guardian/core-web-vitals/jest.dist.setup.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - -// Mock `./src/index` with whatever `package.json` points at in dist. -// This means we can run the unit tests against `dist` instead. - -import * as dist from '../../../dist/libs/@guardian/core-web-vitals'; - -jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/core-web-vitals/package.json b/libs/@guardian/core-web-vitals/package.json index c3947bf2c..09c654461 100644 --- a/libs/@guardian/core-web-vitals/package.json +++ b/libs/@guardian/core-web-vitals/package.json @@ -4,15 +4,30 @@ "private": false, "description": "Methods to help with the implementation of Google's Core Web Vitals", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { "@guardian/libs": "16.0.0", + "pkgroll": "2.0.2", "tslib": "2.6.2", "typescript": "5.3.3", "web-vitals": "3.5.0" @@ -34,19 +49,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/core-web-vitals/tsconfig.json b/libs/@guardian/core-web-vitals/tsconfig.json index 978f6e1b9..9663b1b93 100644 --- a/libs/@guardian/core-web-vitals/tsconfig.json +++ b/libs/@guardian/core-web-vitals/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/core-web-vitals/tsconfig.spec.json b/libs/@guardian/core-web-vitals/tsconfig.spec.json index d42f10920..1b175b148 100644 --- a/libs/@guardian/core-web-vitals/tsconfig.spec.json +++ b/libs/@guardian/core-web-vitals/tsconfig.spec.json @@ -6,7 +6,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/design-tokens/.eslintrc.cjs b/libs/@guardian/design-tokens/.eslintrc.cjs index 89b52e2ab..1577d2f42 100644 --- a/libs/@guardian/design-tokens/.eslintrc.cjs +++ b/libs/@guardian/design-tokens/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['tokens.d.ts'], diff --git a/libs/@guardian/design-tokens/package.json b/libs/@guardian/design-tokens/package.json index b221b0f67..c2ff5cb2d 100644 --- a/libs/@guardian/design-tokens/package.json +++ b/libs/@guardian/design-tokens/package.json @@ -3,10 +3,13 @@ "version": "0.1.0--pre.0", "private": true, "type": "module", - "main": "./tokens.js", + "main": "./dist/tokens.js", + "files": [ + "dist" + ], "scripts": { + "build": "co build && prettier --write dist/**", "fix": "pnpm lint --fix", - "generate-tokens": "co build && prettier --write tokens.d.ts tokens.js variables.css", "lint": "eslint --cache ." }, "devDependencies": { @@ -20,36 +23,15 @@ }, "nx": { "targets": { - "generate-tokens": { + "build": { "inputs": [ - "{projectRoot}/!(tokens|node_modules)/*", - "!{projectRoot}/**/*.md" + "{projectRoot}/tokens.config.js", + "{projectRoot}/package.json" ], "outputs": [ - "{projectRoot}/tokens.js", - "{projectRoot}/tokens.d.ts", - "{projectRoot}/variables.css" + "{projectRoot}/dist" ] }, - "build": { - "dependsOn": [ - "generate-tokens" - ], - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md", - "{projectRoot}/tokens.js", - "{projectRoot}/tokens.d.ts", - "{projectRoot}/variables.css" - ] - } - }, "lint": { "inputs": [ "{projectRoot}/**", diff --git a/libs/@guardian/design-tokens/tokens.config.js b/libs/@guardian/design-tokens/tokens.config.js index 5a18153f3..ef5af5620 100644 --- a/libs/@guardian/design-tokens/tokens.config.js +++ b/libs/@guardian/design-tokens/tokens.config.js @@ -24,8 +24,8 @@ const pxToRem = (token) => { /** @type {import('@cobalt-ui/core').Config} */ export default { - tokens: 'src/tokens.json', - outDir: '.', + tokens: 'tokens.json', + outDir: './dist', plugins: [ pluginCSS({ p3: false, diff --git a/libs/@guardian/design-tokens/tokens.d.ts b/libs/@guardian/design-tokens/tokens.d.ts deleted file mode 100644 index add8dd002..000000000 --- a/libs/@guardian/design-tokens/tokens.d.ts +++ /dev/null @@ -1,1678 +0,0 @@ -/** - * Design Tokens - * Autogenerated from tokens.json. - * DO NOT EDIT! - */ - -export declare const breakpoint: { - readonly desktop: '980px'; - readonly leftCol: '1140px'; - readonly mobile: '320px'; - readonly mobileLandscape: '480px'; - readonly mobileMedium: '375px'; - readonly phablet: '660px'; - readonly tablet: '740px'; - readonly wide: '1300px'; -}; -export declare const height: { - readonly ctaMedium: '44px'; - readonly ctaSmall: '36px'; - readonly ctaXSmall: '24px'; - readonly iconMedium: '30px'; - readonly iconSmall: '26px'; - readonly iconXSmall: '20px'; - readonly inputMedium: '44px'; - readonly inputXSmall: '24px'; -}; -export declare const palette: { - readonly brand: { - readonly '100': '#001536'; - readonly '300': '#041F4A'; - readonly '400': '#052962'; - readonly '500': '#0077B6'; - readonly '600': '#506991'; - readonly '800': '#C1D8FC'; - }; - readonly brandAlt: { - readonly '200': '#F3C100'; - readonly '300': '#FFD900'; - readonly '400': '#FFE500'; - }; - readonly culture: { - readonly '50': '#2B2625'; - readonly '100': '#3E3323'; - readonly '200': '#574835'; - readonly '300': '#6B5840'; - readonly '350': '#866D50'; - readonly '400': '#866D50'; - readonly '450': '#A1845C'; - readonly '500': '#EACCA0'; - readonly '600': '#E7D4B9'; - readonly '700': '#EFE8DD'; - readonly '800': '#FBF6EF'; - }; - readonly error: { - readonly '400': '#C70000'; - readonly '500': '#FF9081'; - }; - readonly focus: { - readonly '400': '#0077B6'; - }; - readonly labs: { - readonly '200': '#0C7A73'; - readonly '300': '#65A897'; - readonly '400': '#69D1CA'; - }; - readonly lifestyle: { - readonly '100': '#510043'; - readonly '200': '#650054'; - readonly '300': '#7D0068'; - readonly '400': '#BB3B80'; - readonly '450': '#F37ABC'; - readonly '500': '#FFABDB'; - readonly '600': '#FEC8D3'; - readonly '800': '#FEEEF7'; - }; - readonly neutral: { - readonly '0': '#000000'; - readonly '7': '#121212'; - readonly '10': '#1A1A1A'; - readonly '20': '#333333'; - readonly '38': '#606060'; - readonly '46': '#707070'; - readonly '60': '#999999'; - readonly '86': '#DCDCDC'; - readonly '93': '#EDEDED'; - readonly '97': '#F6F6F6'; - readonly '100': '#FFFFFF'; - }; - readonly news: { - readonly '100': '#660505'; - readonly '200': '#8B0000'; - readonly '300': '#AB0613'; - readonly '400': '#C70000'; - readonly '500': '#FF5943'; - readonly '550': '#FF9081'; - readonly '600': '#FFBAC8'; - readonly '800': '#FFF4F2'; - }; - readonly opinion: { - readonly '100': '#672005'; - readonly '200': '#8D2700'; - readonly '300': '#C74600'; - readonly '400': '#C74600'; - readonly '450': '#E05E00'; - readonly '500': '#FF7F0F'; - readonly '550': '#FF9941'; - readonly '600': '#F9B376'; - readonly '800': '#FEF9F5'; - }; - readonly specialReport: { - readonly '100': '#222527'; - readonly '200': '#303538'; - readonly '300': '#3F464A'; - readonly '400': '#595C5F'; - readonly '450': '#9DA0A2'; - readonly '500': '#ABC2C9'; - readonly '700': '#E4E5E8'; - readonly '800': '#EFF1F2'; - }; - readonly specialReportAlt: { - readonly '100': '#2B2B2A'; - readonly '200': '#B9300A'; - readonly '300': '#FF663D'; - readonly '700': '#EBE6E1'; - readonly '800': '#F5F0EB'; - }; - readonly sport: { - readonly '100': '#003C60'; - readonly '200': '#004E7C'; - readonly '300': '#005689'; - readonly '400': '#0077B6'; - readonly '500': '#00B2FF'; - readonly '600': '#90DCFF'; - readonly '800': '#F1F8FC'; - }; - readonly success: { - readonly '400': '#22874D'; - readonly '500': '#58D08B'; - }; -}; -export declare const size: { - readonly icon: { - readonly medium: '30px'; - readonly small: '26px'; - readonly xSmall: '20px'; - }; - readonly medium: '44px'; - readonly small: '36px'; - readonly xSmall: '24px'; -}; -export declare const space: { - readonly '0': '2px'; - readonly '1': '4px'; - readonly '2': '8px'; - readonly '3': '12px'; - readonly '4': '16px'; - readonly '5': '20px'; - readonly '6': '24px'; - readonly '8': '32px'; - readonly '9': '36px'; - readonly '10': '40px'; - readonly '12': '48px'; - readonly '14': '56px'; - readonly '16': '64px'; - readonly '18': '72px'; - readonly '24': '96px'; -}; -export declare const typography: { - readonly body: { - readonly medium: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.4; - readonly fontWeight: 400; - }; - readonly small: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.4; - readonly fontWeight: 400; - }; - readonly xSmall: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.4; - readonly fontWeight: 400; - }; - }; - readonly fontFamily: { - readonly body: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly headline: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly textSans: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly titlepiece: readonly [ - 'GT Guardian Titlepiece', - 'Georgia', - 'serif', - ]; - }; - readonly fontSize: { - readonly '12': '12px'; - readonly '14': '14px'; - readonly '15': '15px'; - readonly '17': '17px'; - readonly '20': '20px'; - readonly '24': '24px'; - readonly '28': '28px'; - readonly '34': '34px'; - readonly '42': '42px'; - readonly '50': '50px'; - readonly '70': '70px'; - }; - readonly fontWeight: { - readonly bold: 700; - readonly light: 300; - readonly medium: 500; - readonly regular: 400; - }; - readonly headline: { - readonly large: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - }; - readonly medium: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - }; - readonly small: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - }; - readonly xLarge: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - }; - readonly xSmall: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - }; - readonly xxSmall: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - }; - readonly xxxSmall: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - }; - }; - readonly lineHeight: { - readonly loose: 1.4; - readonly regular: 1.3; - readonly tight: 1.15; - }; - readonly textDecorationThicknessForFontSize: { - readonly '12': '2px'; - readonly '14': '2px'; - readonly '15': '2px'; - readonly '17': '2px'; - readonly '20': '3px'; - readonly '24': '3px'; - readonly '28': '3px'; - readonly '34': '4px'; - readonly '42': '5px'; - readonly '50': '6px'; - readonly '70': '6px'; - }; - readonly textSans: { - readonly large: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - readonly medium: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - readonly small: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - readonly xLarge: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - readonly xSmall: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - readonly xxLarge: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - readonly xxSmall: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '12px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - readonly xxxLarge: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - }; - }; - readonly titlepiece: { - readonly large: { - readonly fontFamily: readonly [ - 'GT Guardian Titlepiece', - 'Georgia', - 'serif', - ]; - readonly fontSize: '70px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - }; - readonly medium: { - readonly fontFamily: readonly [ - 'GT Guardian Titlepiece', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - }; - readonly small: { - readonly fontFamily: readonly [ - 'GT Guardian Titlepiece', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - }; - }; -}; -export declare const typographyPresets: { - readonly article15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.4; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly article17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.4; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly articleBold15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.4; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly articleBold17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.4; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly articleBoldItalic15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.4; - readonly fontWeight: 700; - readonly fontStyle: 'italic'; - }; - readonly articleBoldItalic17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.4; - readonly fontWeight: 700; - readonly fontStyle: 'italic'; - }; - readonly articleItalic15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.4; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly articleItalic17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.4; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly headlineBold14: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold17: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold20: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold24: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold28: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold34: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold42: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold50: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineBold70: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '70px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly headlineLight14: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight17: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight20: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight24: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight28: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight34: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight42: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight50: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLight70: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '70px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'normal'; - }; - readonly headlineLightItalic14: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic17: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic20: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic24: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic28: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic34: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic42: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic50: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineLightItalic70: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '70px'; - readonly lineHeight: 1.15; - readonly fontWeight: 300; - readonly fontStyle: 'italic'; - }; - readonly headlineMedium14: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium17: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium20: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium24: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium28: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium34: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium42: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium50: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMedium70: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '70px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'normal'; - }; - readonly headlineMediumItalic14: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic17: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic20: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic24: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic28: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic34: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic42: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic50: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 500; - readonly fontStyle: 'italic'; - }; - readonly headlineMediumItalic70: { - readonly fontFamily: readonly [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '70px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'italic'; - }; - readonly textEgyptian14: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textEgyptian15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textEgyptian17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textEgyptianBold14: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textEgyptianBold15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textEgyptianBold17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textEgyptianBoldItalic14: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'italic'; - }; - readonly textEgyptianBoldItalic15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'italic'; - }; - readonly textEgyptianBoldItalic17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'italic'; - }; - readonly textEgyptianItalic14: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textEgyptianItalic15: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textEgyptianItalic17: { - readonly fontFamily: readonly [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSans12: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '12px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSans14: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSans15: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSans17: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSans20: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSans24: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSans28: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSans34: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'normal'; - }; - readonly textSansBold12: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '12px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansBold14: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansBold15: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansBold17: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansBold20: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansBold24: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansBold28: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansBold34: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.3; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly textSansItalic12: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '12px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSansItalic14: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '14px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSansItalic15: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '15px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSansItalic17: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '17px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSansItalic20: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '20px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSansItalic24: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '24px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSansItalic28: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '28px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly textSansItalic34: { - readonly fontFamily: readonly [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ]; - readonly fontSize: '34px'; - readonly lineHeight: 1.3; - readonly fontWeight: 400; - readonly fontStyle: 'italic'; - }; - readonly titlepiece42: { - readonly fontFamily: readonly [ - 'GT Guardian Titlepiece', - 'Georgia', - 'serif', - ]; - readonly fontSize: '42px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly titlepiece50: { - readonly fontFamily: readonly [ - 'GT Guardian Titlepiece', - 'Georgia', - 'serif', - ]; - readonly fontSize: '50px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; - readonly titlepiece70: { - readonly fontFamily: readonly [ - 'GT Guardian Titlepiece', - 'Georgia', - 'serif', - ]; - readonly fontSize: '70px'; - readonly lineHeight: 1.15; - readonly fontWeight: 700; - readonly fontStyle: 'normal'; - }; -}; -export declare const width: { - readonly ctaMedium: '44px'; - readonly ctaSmall: '36px'; - readonly ctaXSmall: '24px'; - readonly iconMedium: '30px'; - readonly iconSmall: '26px'; - readonly iconXSmall: '20px'; - readonly inputXSmall: '24px'; -}; diff --git a/libs/@guardian/design-tokens/tokens.js b/libs/@guardian/design-tokens/tokens.js deleted file mode 100644 index c4445bf26..000000000 --- a/libs/@guardian/design-tokens/tokens.js +++ /dev/null @@ -1,1650 +0,0 @@ -/** - * Design Tokens - * Autogenerated from tokens.json. - * DO NOT EDIT! - */ - -export const breakpoint = { - desktop: '980px', - leftCol: '1140px', - mobile: '320px', - mobileLandscape: '480px', - mobileMedium: '375px', - phablet: '660px', - tablet: '740px', - wide: '1300px', -}; -export const height = { - ctaMedium: '44px', - ctaSmall: '36px', - ctaXSmall: '24px', - iconMedium: '30px', - iconSmall: '26px', - iconXSmall: '20px', - inputMedium: '44px', - inputXSmall: '24px', -}; -export const palette = { - brand: { - 100: '#001536', - 300: '#041F4A', - 400: '#052962', - 500: '#0077B6', - 600: '#506991', - 800: '#C1D8FC', - }, - brandAlt: { - 200: '#F3C100', - 300: '#FFD900', - 400: '#FFE500', - }, - culture: { - 50: '#2B2625', - 100: '#3E3323', - 200: '#574835', - 300: '#6B5840', - 350: '#866D50', - 400: '#866D50', - 450: '#A1845C', - 500: '#EACCA0', - 600: '#E7D4B9', - 700: '#EFE8DD', - 800: '#FBF6EF', - }, - error: { - 400: '#C70000', - 500: '#FF9081', - }, - focus: { - 400: '#0077B6', - }, - labs: { - 200: '#0C7A73', - 300: '#65A897', - 400: '#69D1CA', - }, - lifestyle: { - 100: '#510043', - 200: '#650054', - 300: '#7D0068', - 400: '#BB3B80', - 450: '#F37ABC', - 500: '#FFABDB', - 600: '#FEC8D3', - 800: '#FEEEF7', - }, - neutral: { - 0: '#000000', - 7: '#121212', - 10: '#1A1A1A', - 20: '#333333', - 38: '#606060', - 46: '#707070', - 60: '#999999', - 86: '#DCDCDC', - 93: '#EDEDED', - 97: '#F6F6F6', - 100: '#FFFFFF', - }, - news: { - 100: '#660505', - 200: '#8B0000', - 300: '#AB0613', - 400: '#C70000', - 500: '#FF5943', - 550: '#FF9081', - 600: '#FFBAC8', - 800: '#FFF4F2', - }, - opinion: { - 100: '#672005', - 200: '#8D2700', - 300: '#C74600', - 400: '#C74600', - 450: '#E05E00', - 500: '#FF7F0F', - 550: '#FF9941', - 600: '#F9B376', - 800: '#FEF9F5', - }, - specialReport: { - 100: '#222527', - 200: '#303538', - 300: '#3F464A', - 400: '#595C5F', - 450: '#9DA0A2', - 500: '#ABC2C9', - 700: '#E4E5E8', - 800: '#EFF1F2', - }, - specialReportAlt: { - 100: '#2B2B2A', - 200: '#B9300A', - 300: '#FF663D', - 700: '#EBE6E1', - 800: '#F5F0EB', - }, - sport: { - 100: '#003C60', - 200: '#004E7C', - 300: '#005689', - 400: '#0077B6', - 500: '#00B2FF', - 600: '#90DCFF', - 800: '#F1F8FC', - }, - success: { - 400: '#22874D', - 500: '#58D08B', - }, -}; -export const size = { - icon: { - medium: '30px', - small: '26px', - xSmall: '20px', - }, - medium: '44px', - small: '36px', - xSmall: '24px', -}; -export const space = { - 0: '2px', - 1: '4px', - 2: '8px', - 3: '12px', - 4: '16px', - 5: '20px', - 6: '24px', - 8: '32px', - 9: '36px', - 10: '40px', - 12: '48px', - 14: '56px', - 16: '64px', - 18: '72px', - 24: '96px', -}; -export const typography = { - body: { - medium: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.4, - fontWeight: 400, - }, - small: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.4, - fontWeight: 400, - }, - xSmall: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.4, - fontWeight: 400, - }, - }, - fontFamily: { - body: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - headline: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - textSans: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - titlepiece: ['GT Guardian Titlepiece', 'Georgia', 'serif'], - }, - fontSize: { - 12: '12px', - 14: '14px', - 15: '15px', - 17: '17px', - 20: '20px', - 24: '24px', - 28: '28px', - 34: '34px', - 42: '42px', - 50: '50px', - 70: '70px', - }, - fontWeight: { - bold: 700, - light: 300, - medium: 500, - regular: 400, - }, - headline: { - large: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 500, - }, - medium: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '34px', - lineHeight: 1.15, - fontWeight: 500, - }, - small: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '28px', - lineHeight: 1.15, - fontWeight: 500, - }, - xLarge: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 500, - }, - xSmall: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '24px', - lineHeight: 1.15, - fontWeight: 500, - }, - xxSmall: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '20px', - lineHeight: 1.15, - fontWeight: 500, - }, - xxxSmall: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.15, - fontWeight: 500, - }, - }, - lineHeight: { - loose: 1.4, - regular: 1.3, - tight: 1.15, - }, - textDecorationThicknessForFontSize: { - 12: '2px', - 14: '2px', - 15: '2px', - 17: '2px', - 20: '3px', - 24: '3px', - 28: '3px', - 34: '4px', - 42: '5px', - 50: '6px', - 70: '6px', - }, - textSans: { - large: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '20px', - lineHeight: 1.3, - fontWeight: 400, - }, - medium: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 400, - }, - small: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 400, - }, - xLarge: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '24px', - lineHeight: 1.3, - fontWeight: 400, - }, - xSmall: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 400, - }, - xxLarge: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '28px', - lineHeight: 1.3, - fontWeight: 400, - }, - xxSmall: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '12px', - lineHeight: 1.3, - fontWeight: 400, - }, - xxxLarge: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '34px', - lineHeight: 1.3, - fontWeight: 400, - }, - }, - titlepiece: { - large: { - fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], - fontSize: '70px', - lineHeight: 1.15, - fontWeight: 700, - }, - medium: { - fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 700, - }, - small: { - fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 700, - }, - }, -}; -export const typographyPresets = { - article15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.4, - fontWeight: 400, - fontStyle: 'normal', - }, - article17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.4, - fontWeight: 400, - fontStyle: 'normal', - }, - articleBold15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.4, - fontWeight: 700, - fontStyle: 'normal', - }, - articleBold17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.4, - fontWeight: 700, - fontStyle: 'normal', - }, - articleBoldItalic15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.4, - fontWeight: 700, - fontStyle: 'italic', - }, - articleBoldItalic17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.4, - fontWeight: 700, - fontStyle: 'italic', - }, - articleItalic15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.4, - fontWeight: 400, - fontStyle: 'italic', - }, - articleItalic17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.4, - fontWeight: 400, - fontStyle: 'italic', - }, - headlineBold14: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold17: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold20: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '20px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold24: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '24px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold28: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '28px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold34: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '34px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold42: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold50: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineBold70: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '70px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - headlineLight14: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight17: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight20: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '20px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight24: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '24px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight28: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '28px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight34: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '34px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight42: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight50: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLight70: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '70px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'normal', - }, - headlineLightItalic14: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic17: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic20: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '20px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic24: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '24px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic28: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '28px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic34: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '34px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic42: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic50: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineLightItalic70: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '70px', - lineHeight: 1.15, - fontWeight: 300, - fontStyle: 'italic', - }, - headlineMedium14: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium17: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium20: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '20px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium24: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '24px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium28: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '28px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium34: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '34px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium42: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium50: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMedium70: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '70px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'normal', - }, - headlineMediumItalic14: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic17: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic20: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '20px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic24: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '24px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic28: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '28px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic34: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '34px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic42: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic50: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 500, - fontStyle: 'italic', - }, - headlineMediumItalic70: { - fontFamily: [ - 'GH Guardian Headline', - 'Guardian Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '70px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'italic', - }, - textEgyptian14: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textEgyptian15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textEgyptian17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textEgyptianBold14: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textEgyptianBold15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textEgyptianBold17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textEgyptianBoldItalic14: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'italic', - }, - textEgyptianBoldItalic15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'italic', - }, - textEgyptianBoldItalic17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'italic', - }, - textEgyptianItalic14: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textEgyptianItalic15: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textEgyptianItalic17: { - fontFamily: [ - 'GuardianTextEgyptian', - 'Guardian Text Egyptian Web', - 'Georgia', - 'serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSans12: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '12px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSans14: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSans15: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSans17: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSans20: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '20px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSans24: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '24px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSans28: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '28px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSans34: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '34px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'normal', - }, - textSansBold12: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '12px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansBold14: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansBold15: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansBold17: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansBold20: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '20px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansBold24: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '24px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansBold28: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '28px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansBold34: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '34px', - lineHeight: 1.3, - fontWeight: 700, - fontStyle: 'normal', - }, - textSansItalic12: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '12px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSansItalic14: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '14px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSansItalic15: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '15px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSansItalic17: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '17px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSansItalic20: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '20px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSansItalic24: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '24px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSansItalic28: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '28px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - textSansItalic34: { - fontFamily: [ - 'GuardianTextSans', - 'Guardian Text Sans Web', - 'Helvetica Neue', - 'Helvetica', - 'Arial', - 'Lucida Grande', - 'sans-serif', - ], - fontSize: '34px', - lineHeight: 1.3, - fontWeight: 400, - fontStyle: 'italic', - }, - titlepiece42: { - fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], - fontSize: '42px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - titlepiece50: { - fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], - fontSize: '50px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, - titlepiece70: { - fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], - fontSize: '70px', - lineHeight: 1.15, - fontWeight: 700, - fontStyle: 'normal', - }, -}; -export const width = { - ctaMedium: '44px', - ctaSmall: '36px', - ctaXSmall: '24px', - iconMedium: '30px', - iconSmall: '26px', - iconXSmall: '20px', - inputXSmall: '24px', -}; diff --git a/libs/@guardian/design-tokens/src/tokens.json b/libs/@guardian/design-tokens/tokens.json similarity index 100% rename from libs/@guardian/design-tokens/src/tokens.json rename to libs/@guardian/design-tokens/tokens.json diff --git a/libs/@guardian/design-tokens/variables.css b/libs/@guardian/design-tokens/variables.css deleted file mode 100644 index fa68712ae..000000000 --- a/libs/@guardian/design-tokens/variables.css +++ /dev/null @@ -1,1622 +0,0 @@ -/** - * Design Tokens - * Autogenerated from tokens.json. - * DO NOT EDIT! - */ - -:root { - --source-breakpoint-desktop: 61.25rem; - --source-breakpoint-leftCol: 71.25rem; - --source-breakpoint-mobile: 20rem; - --source-breakpoint-mobileLandscape: 30rem; - --source-breakpoint-mobileMedium: 23.4375rem; - --source-breakpoint-phablet: 41.25rem; - --source-breakpoint-tablet: 46.25rem; - --source-breakpoint-wide: 81.25rem; - --source-height-ctaMedium: 2.75rem; - --source-height-ctaSmall: 2.25rem; - --source-height-ctaXSmall: 1.5rem; - --source-height-iconMedium: 1.875rem; - --source-height-iconSmall: 1.625rem; - --source-height-iconXSmall: 1.25rem; - --source-height-inputMedium: 2.75rem; - --source-height-inputXSmall: 1.5rem; - --source-palette-brand-100: #001536; - --source-palette-brand-300: #041f4a; - --source-palette-brand-400: #052962; - --source-palette-brand-500: #0077b6; - --source-palette-brand-600: #506991; - --source-palette-brand-800: #c1d8fc; - --source-palette-brandAlt-200: #f3c100; - --source-palette-brandAlt-300: #ffd900; - --source-palette-brandAlt-400: #ffe500; - --source-palette-culture-50: #2b2625; - --source-palette-culture-100: #3e3323; - --source-palette-culture-200: #574835; - --source-palette-culture-300: #6b5840; - --source-palette-culture-350: #866d50; - --source-palette-culture-400: #866d50; - --source-palette-culture-450: #a1845c; - --source-palette-culture-500: #eacca0; - --source-palette-culture-600: #e7d4b9; - --source-palette-culture-700: #efe8dd; - --source-palette-culture-800: #fbf6ef; - --source-palette-error-400: #c70000; - --source-palette-error-500: #ff9081; - --source-palette-focus-400: #0077b6; - --source-palette-labs-200: #0c7a73; - --source-palette-labs-300: #65a897; - --source-palette-labs-400: #69d1ca; - --source-palette-lifestyle-100: #510043; - --source-palette-lifestyle-200: #650054; - --source-palette-lifestyle-300: #7d0068; - --source-palette-lifestyle-400: #bb3b80; - --source-palette-lifestyle-450: #f37abc; - --source-palette-lifestyle-500: #ffabdb; - --source-palette-lifestyle-600: #fec8d3; - --source-palette-lifestyle-800: #feeef7; - --source-palette-neutral-0: #000000; - --source-palette-neutral-7: #121212; - --source-palette-neutral-10: #1a1a1a; - --source-palette-neutral-20: #333333; - --source-palette-neutral-38: #606060; - --source-palette-neutral-46: #707070; - --source-palette-neutral-60: #999999; - --source-palette-neutral-86: #dcdcdc; - --source-palette-neutral-93: #ededed; - --source-palette-neutral-97: #f6f6f6; - --source-palette-neutral-100: #ffffff; - --source-palette-news-100: #660505; - --source-palette-news-200: #8b0000; - --source-palette-news-300: #ab0613; - --source-palette-news-400: #c70000; - --source-palette-news-500: #ff5943; - --source-palette-news-550: #ff9081; - --source-palette-news-600: #ffbac8; - --source-palette-news-800: #fff4f2; - --source-palette-opinion-100: #672005; - --source-palette-opinion-200: #8d2700; - --source-palette-opinion-300: #c74600; - --source-palette-opinion-400: #c74600; - --source-palette-opinion-450: #e05e00; - --source-palette-opinion-500: #ff7f0f; - --source-palette-opinion-550: #ff9941; - --source-palette-opinion-600: #f9b376; - --source-palette-opinion-800: #fef9f5; - --source-palette-specialReport-100: #222527; - --source-palette-specialReport-200: #303538; - --source-palette-specialReport-300: #3f464a; - --source-palette-specialReport-400: #595c5f; - --source-palette-specialReport-450: #9da0a2; - --source-palette-specialReport-500: #abc2c9; - --source-palette-specialReport-700: #e4e5e8; - --source-palette-specialReport-800: #eff1f2; - --source-palette-specialReportAlt-100: #2b2b2a; - --source-palette-specialReportAlt-200: #b9300a; - --source-palette-specialReportAlt-300: #ff663d; - --source-palette-specialReportAlt-700: #ebe6e1; - --source-palette-specialReportAlt-800: #f5f0eb; - --source-palette-sport-100: #003c60; - --source-palette-sport-200: #004e7c; - --source-palette-sport-300: #005689; - --source-palette-sport-400: #0077b6; - --source-palette-sport-500: #00b2ff; - --source-palette-sport-600: #90dcff; - --source-palette-sport-800: #f1f8fc; - --source-palette-success-400: #22874d; - --source-palette-success-500: #58d08b; - --source-size-icon-medium: 1.875rem; - --source-size-icon-small: 1.625rem; - --source-size-icon-xSmall: 1.25rem; - --source-size-medium: 2.75rem; - --source-size-small: 2.25rem; - --source-size-xSmall: 1.5rem; - --source-space-0: 0.125rem; - --source-space-1: 0.25rem; - --source-space-2: 0.5rem; - --source-space-3: 0.75rem; - --source-space-4: 1rem; - --source-space-5: 1.25rem; - --source-space-6: 1.5rem; - --source-space-8: 2rem; - --source-space-9: 2.25rem; - --source-space-10: 2.5rem; - --source-space-12: 3rem; - --source-space-14: 3.5rem; - --source-space-16: 4rem; - --source-space-18: 4.5rem; - --source-space-24: 6rem; - --source-typography-body-medium-font-family: var( - --source-typography-fontFamily-body - ); - --source-typography-body-medium-font-size: var( - --source-typography-fontSize-17 - ); - --source-typography-body-medium-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-body-medium-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typography-body-small-font-family: var( - --source-typography-fontFamily-body - ); - --source-typography-body-small-font-size: var( - --source-typography-fontSize-15 - ); - --source-typography-body-small-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-body-small-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typography-body-xSmall-font-family: var( - --source-typography-fontFamily-body - ); - --source-typography-body-xSmall-font-size: var( - --source-typography-fontSize-14 - ); - --source-typography-body-xSmall-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-body-xSmall-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typography-fontFamily-body: GuardianTextEgyptian, - 'Guardian Text Egyptian Web', Georgia, serif; - --source-typography-fontFamily-headline: 'GH Guardian Headline', - 'Guardian Egyptian Web', Georgia, serif; - --source-typography-fontFamily-textSans: GuardianTextSans, - 'Guardian Text Sans Web', 'Helvetica Neue', Helvetica, Arial, - 'Lucida Grande', sans-serif; - --source-typography-fontFamily-titlepiece: 'GT Guardian Titlepiece', Georgia, - serif; - --source-typography-fontSize-12: 0.75rem; - --source-typography-fontSize-14: 0.875rem; - --source-typography-fontSize-15: 0.9375rem; - --source-typography-fontSize-17: 1.0625rem; - --source-typography-fontSize-20: 1.25rem; - --source-typography-fontSize-24: 1.5rem; - --source-typography-fontSize-28: 1.75rem; - --source-typography-fontSize-34: 2.125rem; - --source-typography-fontSize-42: 2.625rem; - --source-typography-fontSize-50: 3.125rem; - --source-typography-fontSize-70: 4.375rem; - --source-typography-fontWeight-bold: 700; - --source-typography-fontWeight-light: 300; - --source-typography-fontWeight-medium: 500; - --source-typography-fontWeight-regular: 400; - --source-typography-headline-large-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typography-headline-large-font-size: var( - --source-typography-fontSize-42 - ); - --source-typography-headline-large-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typography-headline-large-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-headline-medium-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typography-headline-medium-font-size: var( - --source-typography-fontSize-34 - ); - --source-typography-headline-medium-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typography-headline-medium-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-headline-small-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typography-headline-small-font-size: var( - --source-typography-fontSize-28 - ); - --source-typography-headline-small-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typography-headline-small-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-headline-xLarge-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typography-headline-xLarge-font-size: var( - --source-typography-fontSize-50 - ); - --source-typography-headline-xLarge-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typography-headline-xLarge-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-headline-xSmall-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typography-headline-xSmall-font-size: var( - --source-typography-fontSize-24 - ); - --source-typography-headline-xSmall-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typography-headline-xSmall-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-headline-xxSmall-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typography-headline-xxSmall-font-size: var( - --source-typography-fontSize-20 - ); - --source-typography-headline-xxSmall-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typography-headline-xxSmall-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-headline-xxxSmall-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typography-headline-xxxSmall-font-size: var( - --source-typography-fontSize-17 - ); - --source-typography-headline-xxxSmall-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typography-headline-xxxSmall-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-lineHeight-loose: 1.4; - --source-typography-lineHeight-regular: 1.3; - --source-typography-lineHeight-tight: 1.15; - --source-typography-textDecorationThicknessForFontSize-12: 0.125rem; - --source-typography-textDecorationThicknessForFontSize-14: 0.125rem; - --source-typography-textDecorationThicknessForFontSize-15: 0.125rem; - --source-typography-textDecorationThicknessForFontSize-17: 0.125rem; - --source-typography-textDecorationThicknessForFontSize-20: 0.1875rem; - --source-typography-textDecorationThicknessForFontSize-24: 0.1875rem; - --source-typography-textDecorationThicknessForFontSize-28: 0.1875rem; - --source-typography-textDecorationThicknessForFontSize-34: 0.25rem; - --source-typography-textDecorationThicknessForFontSize-42: 0.3125rem; - --source-typography-textDecorationThicknessForFontSize-50: 0.375rem; - --source-typography-textDecorationThicknessForFontSize-70: 0.375rem; - --source-typography-textSans-large-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-large-font-size: var( - --source-typography-fontSize-20 - ); - --source-typography-textSans-large-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-large-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-textSans-medium-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-medium-font-size: var( - --source-typography-fontSize-17 - ); - --source-typography-textSans-medium-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-medium-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-textSans-small-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-small-font-size: var( - --source-typography-fontSize-15 - ); - --source-typography-textSans-small-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-small-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-textSans-xLarge-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-xLarge-font-size: var( - --source-typography-fontSize-24 - ); - --source-typography-textSans-xLarge-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-xLarge-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-textSans-xSmall-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-xSmall-font-size: var( - --source-typography-fontSize-14 - ); - --source-typography-textSans-xSmall-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-xSmall-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-textSans-xxLarge-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-xxLarge-font-size: var( - --source-typography-fontSize-28 - ); - --source-typography-textSans-xxLarge-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-xxLarge-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-textSans-xxSmall-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-xxSmall-font-size: var( - --source-typography-fontSize-12 - ); - --source-typography-textSans-xxSmall-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-xxSmall-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-textSans-xxxLarge-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typography-textSans-xxxLarge-font-size: var( - --source-typography-fontSize-34 - ); - --source-typography-textSans-xxxLarge-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typography-textSans-xxxLarge-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typography-titlepiece-large-font-family: var( - --source-typography-fontFamily-titlepiece - ); - --source-typography-titlepiece-large-font-size: var( - --source-typography-fontSize-70 - ); - --source-typography-titlepiece-large-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typography-titlepiece-large-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-titlepiece-medium-font-family: var( - --source-typography-fontFamily-titlepiece - ); - --source-typography-titlepiece-medium-font-size: var( - --source-typography-fontSize-50 - ); - --source-typography-titlepiece-medium-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typography-titlepiece-medium-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typography-titlepiece-small-font-family: var( - --source-typography-fontFamily-titlepiece - ); - --source-typography-titlepiece-small-font-size: var( - --source-typography-fontSize-42 - ); - --source-typography-titlepiece-small-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typography-titlepiece-small-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-article15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-article15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-article15-font-style: normal; - --source-typographyPresets-article15-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-article15-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-article17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-article17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-article17-font-style: normal; - --source-typographyPresets-article17-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-article17-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-articleBold15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-articleBold15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-articleBold15-font-style: normal; - --source-typographyPresets-articleBold15-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-articleBold15-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-articleBold17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-articleBold17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-articleBold17-font-style: normal; - --source-typographyPresets-articleBold17-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-articleBold17-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-articleBoldItalic15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-articleBoldItalic15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-articleBoldItalic15-font-style: italic; - --source-typographyPresets-articleBoldItalic15-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-articleBoldItalic15-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-articleBoldItalic17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-articleBoldItalic17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-articleBoldItalic17-font-style: italic; - --source-typographyPresets-articleBoldItalic17-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-articleBoldItalic17-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-articleItalic15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-articleItalic15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-articleItalic15-font-style: italic; - --source-typographyPresets-articleItalic15-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-articleItalic15-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-articleItalic17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-articleItalic17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-articleItalic17-font-style: italic; - --source-typographyPresets-articleItalic17-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-articleItalic17-line-height: var( - --source-typography-lineHeight-loose - ); - --source-typographyPresets-headlineBold14-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-headlineBold14-font-style: normal; - --source-typographyPresets-headlineBold14-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold14-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold17-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-headlineBold17-font-style: normal; - --source-typographyPresets-headlineBold17-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold17-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold20-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-headlineBold20-font-style: normal; - --source-typographyPresets-headlineBold20-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold20-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold24-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-headlineBold24-font-style: normal; - --source-typographyPresets-headlineBold24-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold24-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold28-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-headlineBold28-font-style: normal; - --source-typographyPresets-headlineBold28-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold28-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold34-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-headlineBold34-font-style: normal; - --source-typographyPresets-headlineBold34-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold34-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold42-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold42-font-size: var( - --source-typography-fontSize-42 - ); - --source-typographyPresets-headlineBold42-font-style: normal; - --source-typographyPresets-headlineBold42-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold42-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold50-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold50-font-size: var( - --source-typography-fontSize-50 - ); - --source-typographyPresets-headlineBold50-font-style: normal; - --source-typographyPresets-headlineBold50-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold50-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineBold70-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineBold70-font-size: var( - --source-typography-fontSize-70 - ); - --source-typographyPresets-headlineBold70-font-style: normal; - --source-typographyPresets-headlineBold70-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineBold70-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight14-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-headlineLight14-font-style: normal; - --source-typographyPresets-headlineLight14-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight14-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight17-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-headlineLight17-font-style: normal; - --source-typographyPresets-headlineLight17-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight17-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight20-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-headlineLight20-font-style: normal; - --source-typographyPresets-headlineLight20-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight20-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight24-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-headlineLight24-font-style: normal; - --source-typographyPresets-headlineLight24-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight24-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight28-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-headlineLight28-font-style: normal; - --source-typographyPresets-headlineLight28-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight28-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight34-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-headlineLight34-font-style: normal; - --source-typographyPresets-headlineLight34-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight34-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight42-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight42-font-size: var( - --source-typography-fontSize-42 - ); - --source-typographyPresets-headlineLight42-font-style: normal; - --source-typographyPresets-headlineLight42-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight42-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight50-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight50-font-size: var( - --source-typography-fontSize-50 - ); - --source-typographyPresets-headlineLight50-font-style: normal; - --source-typographyPresets-headlineLight50-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight50-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLight70-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLight70-font-size: var( - --source-typography-fontSize-70 - ); - --source-typographyPresets-headlineLight70-font-style: normal; - --source-typographyPresets-headlineLight70-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLight70-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic14-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-headlineLightItalic14-font-style: italic; - --source-typographyPresets-headlineLightItalic14-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic14-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic17-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-headlineLightItalic17-font-style: italic; - --source-typographyPresets-headlineLightItalic17-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic17-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic20-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-headlineLightItalic20-font-style: italic; - --source-typographyPresets-headlineLightItalic20-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic20-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic24-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-headlineLightItalic24-font-style: italic; - --source-typographyPresets-headlineLightItalic24-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic24-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic28-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-headlineLightItalic28-font-style: italic; - --source-typographyPresets-headlineLightItalic28-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic28-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic34-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-headlineLightItalic34-font-style: italic; - --source-typographyPresets-headlineLightItalic34-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic34-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic42-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic42-font-size: var( - --source-typography-fontSize-42 - ); - --source-typographyPresets-headlineLightItalic42-font-style: italic; - --source-typographyPresets-headlineLightItalic42-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic42-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic50-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic50-font-size: var( - --source-typography-fontSize-50 - ); - --source-typographyPresets-headlineLightItalic50-font-style: italic; - --source-typographyPresets-headlineLightItalic50-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic50-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineLightItalic70-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineLightItalic70-font-size: var( - --source-typography-fontSize-70 - ); - --source-typographyPresets-headlineLightItalic70-font-style: italic; - --source-typographyPresets-headlineLightItalic70-font-weight: var( - --source-typography-fontWeight-light - ); - --source-typographyPresets-headlineLightItalic70-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium14-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-headlineMedium14-font-style: normal; - --source-typographyPresets-headlineMedium14-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium14-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium17-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-headlineMedium17-font-style: normal; - --source-typographyPresets-headlineMedium17-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium17-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium20-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-headlineMedium20-font-style: normal; - --source-typographyPresets-headlineMedium20-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium20-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium24-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-headlineMedium24-font-style: normal; - --source-typographyPresets-headlineMedium24-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium24-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium28-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-headlineMedium28-font-style: normal; - --source-typographyPresets-headlineMedium28-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium28-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium34-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-headlineMedium34-font-style: normal; - --source-typographyPresets-headlineMedium34-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium34-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium42-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium42-font-size: var( - --source-typography-fontSize-42 - ); - --source-typographyPresets-headlineMedium42-font-style: normal; - --source-typographyPresets-headlineMedium42-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium42-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium50-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium50-font-size: var( - --source-typography-fontSize-50 - ); - --source-typographyPresets-headlineMedium50-font-style: normal; - --source-typographyPresets-headlineMedium50-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium50-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMedium70-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMedium70-font-size: var( - --source-typography-fontSize-70 - ); - --source-typographyPresets-headlineMedium70-font-style: normal; - --source-typographyPresets-headlineMedium70-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMedium70-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic14-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-headlineMediumItalic14-font-style: italic; - --source-typographyPresets-headlineMediumItalic14-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic14-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic17-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-headlineMediumItalic17-font-style: italic; - --source-typographyPresets-headlineMediumItalic17-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic17-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic20-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-headlineMediumItalic20-font-style: italic; - --source-typographyPresets-headlineMediumItalic20-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic20-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic24-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-headlineMediumItalic24-font-style: italic; - --source-typographyPresets-headlineMediumItalic24-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic24-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic28-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-headlineMediumItalic28-font-style: italic; - --source-typographyPresets-headlineMediumItalic28-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic28-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic34-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-headlineMediumItalic34-font-style: italic; - --source-typographyPresets-headlineMediumItalic34-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic34-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic42-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic42-font-size: var( - --source-typography-fontSize-42 - ); - --source-typographyPresets-headlineMediumItalic42-font-style: italic; - --source-typographyPresets-headlineMediumItalic42-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic42-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic50-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic50-font-size: var( - --source-typography-fontSize-50 - ); - --source-typographyPresets-headlineMediumItalic50-font-style: italic; - --source-typographyPresets-headlineMediumItalic50-font-weight: var( - --source-typography-fontWeight-medium - ); - --source-typographyPresets-headlineMediumItalic50-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-headlineMediumItalic70-font-family: var( - --source-typography-fontFamily-headline - ); - --source-typographyPresets-headlineMediumItalic70-font-size: var( - --source-typography-fontSize-70 - ); - --source-typographyPresets-headlineMediumItalic70-font-style: italic; - --source-typographyPresets-headlineMediumItalic70-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-headlineMediumItalic70-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-textEgyptian14-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptian14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-textEgyptian14-font-style: normal; - --source-typographyPresets-textEgyptian14-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textEgyptian14-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptian15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptian15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-textEgyptian15-font-style: normal; - --source-typographyPresets-textEgyptian15-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textEgyptian15-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptian17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptian17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-textEgyptian17-font-style: normal; - --source-typographyPresets-textEgyptian17-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textEgyptian17-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianBold14-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianBold14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-textEgyptianBold14-font-style: normal; - --source-typographyPresets-textEgyptianBold14-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textEgyptianBold14-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianBold15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianBold15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-textEgyptianBold15-font-style: normal; - --source-typographyPresets-textEgyptianBold15-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textEgyptianBold15-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianBold17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianBold17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-textEgyptianBold17-font-style: normal; - --source-typographyPresets-textEgyptianBold17-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textEgyptianBold17-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianBoldItalic14-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianBoldItalic14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-textEgyptianBoldItalic14-font-style: italic; - --source-typographyPresets-textEgyptianBoldItalic14-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textEgyptianBoldItalic14-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianBoldItalic15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianBoldItalic15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-textEgyptianBoldItalic15-font-style: italic; - --source-typographyPresets-textEgyptianBoldItalic15-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textEgyptianBoldItalic15-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianBoldItalic17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianBoldItalic17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-textEgyptianBoldItalic17-font-style: italic; - --source-typographyPresets-textEgyptianBoldItalic17-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textEgyptianBoldItalic17-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianItalic14-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianItalic14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-textEgyptianItalic14-font-style: italic; - --source-typographyPresets-textEgyptianItalic14-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textEgyptianItalic14-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianItalic15-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianItalic15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-textEgyptianItalic15-font-style: italic; - --source-typographyPresets-textEgyptianItalic15-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textEgyptianItalic15-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textEgyptianItalic17-font-family: var( - --source-typography-fontFamily-body - ); - --source-typographyPresets-textEgyptianItalic17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-textEgyptianItalic17-font-style: italic; - --source-typographyPresets-textEgyptianItalic17-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textEgyptianItalic17-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans12-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans12-font-size: var( - --source-typography-fontSize-12 - ); - --source-typographyPresets-textSans12-font-style: normal; - --source-typographyPresets-textSans12-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans12-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans14-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-textSans14-font-style: normal; - --source-typographyPresets-textSans14-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans14-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans15-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-textSans15-font-style: normal; - --source-typographyPresets-textSans15-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans15-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans17-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-textSans17-font-style: normal; - --source-typographyPresets-textSans17-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans17-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans20-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-textSans20-font-style: normal; - --source-typographyPresets-textSans20-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans20-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans24-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-textSans24-font-style: normal; - --source-typographyPresets-textSans24-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans24-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans28-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-textSans28-font-style: normal; - --source-typographyPresets-textSans28-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans28-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSans34-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSans34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-textSans34-font-style: normal; - --source-typographyPresets-textSans34-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSans34-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold12-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold12-font-size: var( - --source-typography-fontSize-12 - ); - --source-typographyPresets-textSansBold12-font-style: normal; - --source-typographyPresets-textSansBold12-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold12-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold14-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-textSansBold14-font-style: normal; - --source-typographyPresets-textSansBold14-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold14-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold15-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-textSansBold15-font-style: normal; - --source-typographyPresets-textSansBold15-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold15-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold17-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-textSansBold17-font-style: normal; - --source-typographyPresets-textSansBold17-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold17-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold20-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-textSansBold20-font-style: normal; - --source-typographyPresets-textSansBold20-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold20-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold24-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-textSansBold24-font-style: normal; - --source-typographyPresets-textSansBold24-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold24-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold28-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-textSansBold28-font-style: normal; - --source-typographyPresets-textSansBold28-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold28-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansBold34-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansBold34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-textSansBold34-font-style: normal; - --source-typographyPresets-textSansBold34-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-textSansBold34-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic12-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic12-font-size: var( - --source-typography-fontSize-12 - ); - --source-typographyPresets-textSansItalic12-font-style: italic; - --source-typographyPresets-textSansItalic12-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic12-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic14-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic14-font-size: var( - --source-typography-fontSize-14 - ); - --source-typographyPresets-textSansItalic14-font-style: italic; - --source-typographyPresets-textSansItalic14-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic14-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic15-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic15-font-size: var( - --source-typography-fontSize-15 - ); - --source-typographyPresets-textSansItalic15-font-style: italic; - --source-typographyPresets-textSansItalic15-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic15-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic17-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic17-font-size: var( - --source-typography-fontSize-17 - ); - --source-typographyPresets-textSansItalic17-font-style: italic; - --source-typographyPresets-textSansItalic17-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic17-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic20-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic20-font-size: var( - --source-typography-fontSize-20 - ); - --source-typographyPresets-textSansItalic20-font-style: italic; - --source-typographyPresets-textSansItalic20-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic20-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic24-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic24-font-size: var( - --source-typography-fontSize-24 - ); - --source-typographyPresets-textSansItalic24-font-style: italic; - --source-typographyPresets-textSansItalic24-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic24-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic28-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic28-font-size: var( - --source-typography-fontSize-28 - ); - --source-typographyPresets-textSansItalic28-font-style: italic; - --source-typographyPresets-textSansItalic28-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic28-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-textSansItalic34-font-family: var( - --source-typography-fontFamily-textSans - ); - --source-typographyPresets-textSansItalic34-font-size: var( - --source-typography-fontSize-34 - ); - --source-typographyPresets-textSansItalic34-font-style: italic; - --source-typographyPresets-textSansItalic34-font-weight: var( - --source-typography-fontWeight-regular - ); - --source-typographyPresets-textSansItalic34-line-height: var( - --source-typography-lineHeight-regular - ); - --source-typographyPresets-titlepiece42-font-family: var( - --source-typography-fontFamily-titlepiece - ); - --source-typographyPresets-titlepiece42-font-size: var( - --source-typography-fontSize-42 - ); - --source-typographyPresets-titlepiece42-font-style: normal; - --source-typographyPresets-titlepiece42-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-titlepiece42-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-titlepiece50-font-family: var( - --source-typography-fontFamily-titlepiece - ); - --source-typographyPresets-titlepiece50-font-size: var( - --source-typography-fontSize-50 - ); - --source-typographyPresets-titlepiece50-font-style: normal; - --source-typographyPresets-titlepiece50-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-titlepiece50-line-height: var( - --source-typography-lineHeight-tight - ); - --source-typographyPresets-titlepiece70-font-family: var( - --source-typography-fontFamily-titlepiece - ); - --source-typographyPresets-titlepiece70-font-size: var( - --source-typography-fontSize-70 - ); - --source-typographyPresets-titlepiece70-font-style: normal; - --source-typographyPresets-titlepiece70-font-weight: var( - --source-typography-fontWeight-bold - ); - --source-typographyPresets-titlepiece70-line-height: var( - --source-typography-lineHeight-tight - ); - --source-width-ctaMedium: 2.75rem; - --source-width-ctaSmall: 2.25rem; - --source-width-ctaXSmall: 1.5rem; - --source-width-iconMedium: 1.875rem; - --source-width-iconSmall: 1.625rem; - --source-width-iconXSmall: 1.25rem; - --source-width-inputXSmall: 1.5rem; -} diff --git a/libs/@guardian/eslint-config-typescript/.eslintrc.cjs b/libs/@guardian/eslint-config-typescript/.eslintrc.cjs index c160d51bf..4f01fa8a4 100644 --- a/libs/@guardian/eslint-config-typescript/.eslintrc.cjs +++ b/libs/@guardian/eslint-config-typescript/.eslintrc.cjs @@ -1,6 +1,10 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/eslint-config-typescript/dist.test.js b/libs/@guardian/eslint-config-typescript/dist.test.js deleted file mode 100644 index f1cf6ab15..000000000 --- a/libs/@guardian/eslint-config-typescript/dist.test.js +++ /dev/null @@ -1,8 +0,0 @@ -const bundleExports = require('../../../dist/libs/@guardian/eslint-config-typescript'); -const srcExports = require('.'); - -describe('The bundle', () => { - it('exports everything it should', () => { - expect(srcExports).toEqual(bundleExports); - }); -}); diff --git a/libs/@guardian/eslint-config-typescript/jest.config.ts b/libs/@guardian/eslint-config-typescript/jest.config.ts deleted file mode 100644 index 08a436666..000000000 --- a/libs/@guardian/eslint-config-typescript/jest.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ -/* eslint-disable import/no-default-export -- that's what jest likes */ - -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; - -const config: Config = { - ...baseConfig, - displayName: '@guardian/eslint-config-typescript', - testEnvironment: 'node', - transform: { - '^.+\\.[tj]sx?$': 'ts-jest', - }, -}; - -export default config; diff --git a/libs/@guardian/eslint-config-typescript/package.json b/libs/@guardian/eslint-config-typescript/package.json index eafc416e5..d3e0c5d34 100644 --- a/libs/@guardian/eslint-config-typescript/package.json +++ b/libs/@guardian/eslint-config-typescript/package.json @@ -5,8 +5,7 @@ "main": "index.js", "scripts": { "fix": "pnpm lint --fix", - "lint": "eslint --cache .", - "verify-dist": "jest" + "lint": "eslint --cache ." }, "dependencies": { "@guardian/eslint-config": "workspace:*", @@ -27,20 +26,6 @@ }, "nx": { "targets": { - "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "packageJson": "{projectRoot}/package.json", - "assets": [ - "{projectRoot}/index.js", - "{projectRoot}/*.md" - ] - } - }, "lint": { "inputs": [ "{projectRoot}/**", @@ -55,12 +40,6 @@ "outputs": [ "{projectRoot}" ] - }, - "verify-dist": { - "inputs": [ - "{projectRoot}/**", - "{workspaceRoot}/jest.*" - ] } } } diff --git a/libs/@guardian/eslint-config/.eslintrc.cjs b/libs/@guardian/eslint-config/.eslintrc.cjs index c160d51bf..4f01fa8a4 100644 --- a/libs/@guardian/eslint-config/.eslintrc.cjs +++ b/libs/@guardian/eslint-config/.eslintrc.cjs @@ -1,6 +1,10 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/eslint-config/dist.test.js b/libs/@guardian/eslint-config/dist.test.js deleted file mode 100644 index abe0b80c0..000000000 --- a/libs/@guardian/eslint-config/dist.test.js +++ /dev/null @@ -1,8 +0,0 @@ -const bundleExports = require('../../../dist/libs/@guardian/eslint-config'); -const srcExports = require('.'); - -describe('The bundle', () => { - it('exports everything it should', () => { - expect(srcExports).toEqual(bundleExports); - }); -}); diff --git a/libs/@guardian/eslint-config/jest.config.ts b/libs/@guardian/eslint-config/jest.config.ts deleted file mode 100644 index 963f4667d..000000000 --- a/libs/@guardian/eslint-config/jest.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ -/* eslint-disable import/no-default-export -- that's what jest likes */ - -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; - -const config: Config = { - ...baseConfig, - displayName: '@guardian/eslint-config', - testEnvironment: 'node', - transform: { - '^.+\\.[tj]sx?$': 'ts-jest', - }, -}; - -export default config; diff --git a/libs/@guardian/eslint-config/package.json b/libs/@guardian/eslint-config/package.json index 8d51cdc13..dfb1ea672 100644 --- a/libs/@guardian/eslint-config/package.json +++ b/libs/@guardian/eslint-config/package.json @@ -5,8 +5,7 @@ "main": "index.js", "scripts": { "fix": "pnpm lint --fix", - "lint": "eslint --cache .", - "verify-dist": "jest" + "lint": "eslint --cache ." }, "dependencies": { "eslint-config-prettier": "9.1.0", @@ -23,20 +22,6 @@ }, "nx": { "targets": { - "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "packageJson": "{projectRoot}/package.json", - "assets": [ - "{projectRoot}/index.js", - "{projectRoot}/*.md" - ] - } - }, "lint": { "inputs": [ "{projectRoot}/**", @@ -51,12 +36,6 @@ "outputs": [ "{projectRoot}" ] - }, - "verify-dist": { - "inputs": [ - "{projectRoot}/**", - "{workspaceRoot}/jest.*" - ] } } } diff --git a/libs/@guardian/eslint-plugin-source-foundations/.eslintrc.cjs b/libs/@guardian/eslint-plugin-source-foundations/.eslintrc.cjs index 58d4db8c4..ef983a648 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/.eslintrc.cjs +++ b/libs/@guardian/eslint-plugin-source-foundations/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/eslint-plugin-source-foundations/jest.config.ts b/libs/@guardian/eslint-plugin-source-foundations/jest.config.js similarity index 63% rename from libs/@guardian/eslint-plugin-source-foundations/jest.config.ts rename to libs/@guardian/eslint-plugin-source-foundations/jest.config.js index c7a6e0f6f..cb1055048 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/jest.config.ts +++ b/libs/@guardian/eslint-plugin-source-foundations/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/eslint-plugin-source-foundations', testEnvironment: 'node', diff --git a/libs/@guardian/source-react-components/jest.dist.setup.ts b/libs/@guardian/eslint-plugin-source-foundations/jest.dist.setup.js similarity index 75% rename from libs/@guardian/source-react-components/jest.dist.setup.ts rename to libs/@guardian/eslint-plugin-source-foundations/jest.dist.setup.js index 61e0fd40b..f17485880 100644 --- a/libs/@guardian/source-react-components/jest.dist.setup.ts +++ b/libs/@guardian/eslint-plugin-source-foundations/jest.dist.setup.js @@ -3,7 +3,6 @@ // Mock `src/index` with whatever the dist `package.json` points at. // This means we can run `src/index.test.ts` against `dist` instead. -// @ts-ignore -import * as dist from '../../../dist/libs/@guardian/source-react-components'; +import * as dist from '.'; jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/eslint-plugin-source-foundations/package.json b/libs/@guardian/eslint-plugin-source-foundations/package.json index 676b4c01b..24be3843b 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/package.json +++ b/libs/@guardian/eslint-plugin-source-foundations/package.json @@ -2,12 +2,26 @@ "name": "@guardian/eslint-plugin-source-foundations", "version": "18.0.0", "description": "ESLint plugin for Guardian projects using the `@guardian/source-foundations` package.", + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "dependencies": { "@typescript-eslint/eslint-plugin": "6.21.0", @@ -20,6 +34,7 @@ "@types/eslint": "8.56.1", "@types/estree": "1.0.5", "eslint": "8.56.0", + "pkgroll": "2.0.2", "tslib": "2.6.2", "typescript": "5.3.3", "wireit": "0.14.4" @@ -39,19 +54,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json b/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json index 978f6e1b9..9663b1b93 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json +++ b/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/eslint-plugin-source-foundations/tsconfig.spec.json b/libs/@guardian/eslint-plugin-source-foundations/tsconfig.spec.json index 4e7173011..914db19cb 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/tsconfig.spec.json +++ b/libs/@guardian/eslint-plugin-source-foundations/tsconfig.spec.json @@ -7,7 +7,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/eslint-plugin-source-react-components/.eslintrc.cjs b/libs/@guardian/eslint-plugin-source-react-components/.eslintrc.cjs index 58d4db8c4..ef983a648 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/.eslintrc.cjs +++ b/libs/@guardian/eslint-plugin-source-react-components/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/eslint-plugin-source-react-components/jest.config.ts b/libs/@guardian/eslint-plugin-source-react-components/jest.config.js similarity index 63% rename from libs/@guardian/eslint-plugin-source-react-components/jest.config.ts rename to libs/@guardian/eslint-plugin-source-react-components/jest.config.js index a0392a7fa..8a01fa633 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/jest.config.ts +++ b/libs/@guardian/eslint-plugin-source-react-components/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/eslint-plugin-source-react-components', testEnvironment: 'node', diff --git a/libs/@guardian/eslint-plugin-source-foundations/jest.dist.setup.ts b/libs/@guardian/eslint-plugin-source-react-components/jest.dist.setup.js similarity index 73% rename from libs/@guardian/eslint-plugin-source-foundations/jest.dist.setup.ts rename to libs/@guardian/eslint-plugin-source-react-components/jest.dist.setup.js index f6b8c6bdf..f17485880 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/jest.dist.setup.ts +++ b/libs/@guardian/eslint-plugin-source-react-components/jest.dist.setup.js @@ -3,7 +3,6 @@ // Mock `src/index` with whatever the dist `package.json` points at. // This means we can run `src/index.test.ts` against `dist` instead. -// @ts-ignore -import * as dist from '../../../dist/libs/@guardian/eslint-plugin-source-foundations'; +import * as dist from '.'; jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/eslint-plugin-source-react-components/jest.dist.setup.ts b/libs/@guardian/eslint-plugin-source-react-components/jest.dist.setup.ts deleted file mode 100644 index c98cf5cf9..000000000 --- a/libs/@guardian/eslint-plugin-source-react-components/jest.dist.setup.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - -// Mock `src/index` with whatever the dist `package.json` points at. -// This means we can run `src/index.test.ts` against `dist` instead. - -// @ts-ignore -import * as dist from '../../../dist/libs/@guardian/eslint-plugin-source-react-components'; - -jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/eslint-plugin-source-react-components/package.json b/libs/@guardian/eslint-plugin-source-react-components/package.json index ce784fa86..034178dcf 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/package.json +++ b/libs/@guardian/eslint-plugin-source-react-components/package.json @@ -2,12 +2,26 @@ "name": "@guardian/eslint-plugin-source-react-components", "version": "24.0.0", "description": "ESLint plugin for Guardian projects using the `@guardian/source-react-components` package.", + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "dependencies": { "@typescript-eslint/eslint-plugin": "6.21.0", @@ -21,6 +35,7 @@ "@types/eslint": "8.56.1", "@types/estree": "1.0.5", "eslint": "8.56.0", + "pkgroll": "2.0.2", "react": "18.2.0", "tslib": "2.6.2", "typescript": "5.3.3" @@ -41,19 +56,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json b/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json index 978f6e1b9..9663b1b93 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json +++ b/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/eslint-plugin-source-react-components/tsconfig.spec.json b/libs/@guardian/eslint-plugin-source-react-components/tsconfig.spec.json index 4e7173011..914db19cb 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/tsconfig.spec.json +++ b/libs/@guardian/eslint-plugin-source-react-components/tsconfig.spec.json @@ -7,7 +7,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/identity-auth-frontend/.eslintrc.cjs b/libs/@guardian/identity-auth-frontend/.eslintrc.cjs index 571c2fbc2..bd301cafc 100644 --- a/libs/@guardian/identity-auth-frontend/.eslintrc.cjs +++ b/libs/@guardian/identity-auth-frontend/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/identity-auth-frontend/jest.config.ts b/libs/@guardian/identity-auth-frontend/jest.config.js similarity index 64% rename from libs/@guardian/identity-auth-frontend/jest.config.ts rename to libs/@guardian/identity-auth-frontend/jest.config.js index 0c019c353..f80176f5e 100644 --- a/libs/@guardian/identity-auth-frontend/jest.config.ts +++ b/libs/@guardian/identity-auth-frontend/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/identity-auth-frontend', testEnvironment: 'jest-environment-jsdom', diff --git a/libs/@guardian/identity-auth/jest.dist.setup.ts b/libs/@guardian/identity-auth-frontend/jest.dist.setup.js similarity index 50% rename from libs/@guardian/identity-auth/jest.dist.setup.ts rename to libs/@guardian/identity-auth-frontend/jest.dist.setup.js index e7b958288..96fd6cc4b 100644 --- a/libs/@guardian/identity-auth/jest.dist.setup.ts +++ b/libs/@guardian/identity-auth-frontend/jest.dist.setup.js @@ -1,8 +1,6 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - // Mock `./src/index` with whatever `package.json` points at in dist. // This means we can run the unit tests against `dist` instead. -import * as dist from '../../../dist/libs/@guardian/identity-auth'; +import * as dist from '.'; jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/identity-auth-frontend/jest.dist.setup.ts b/libs/@guardian/identity-auth-frontend/jest.dist.setup.ts deleted file mode 100644 index 6468f1c6d..000000000 --- a/libs/@guardian/identity-auth-frontend/jest.dist.setup.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - -// Mock `./src/index` with whatever `package.json` points at in dist. -// This means we can run the unit tests against `dist` instead. - -import * as dist from '../../../dist/libs/@guardian/identity-auth-frontend'; - -jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/identity-auth-frontend/package.json b/libs/@guardian/identity-auth-frontend/package.json index 5be91a14d..b93d6fde8 100644 --- a/libs/@guardian/identity-auth-frontend/package.json +++ b/libs/@guardian/identity-auth-frontend/package.json @@ -5,17 +5,32 @@ "description": "", "license": "Apache-2.0", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { "@guardian/identity-auth": "2.1.0", "@guardian/libs": "16.0.0", "jest-fetch-mock": "3.0.3", + "pkgroll": "2.0.2", "tslib": "2.6.2", "typescript": "5.3.3" }, @@ -36,19 +51,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/identity-auth-frontend/tsconfig.json b/libs/@guardian/identity-auth-frontend/tsconfig.json index 978f6e1b9..9663b1b93 100644 --- a/libs/@guardian/identity-auth-frontend/tsconfig.json +++ b/libs/@guardian/identity-auth-frontend/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/identity-auth-frontend/tsconfig.spec.json b/libs/@guardian/identity-auth-frontend/tsconfig.spec.json index a3093a7c2..fde3b6ad9 100644 --- a/libs/@guardian/identity-auth-frontend/tsconfig.spec.json +++ b/libs/@guardian/identity-auth-frontend/tsconfig.spec.json @@ -5,5 +5,5 @@ "module": "commonjs", "types": ["jest", "node"] }, - "include": ["jest.config.ts", "**/*.test.ts", "**/*.d.ts"] + "include": ["jest.config.js", "**/*.test.ts", "**/*.d.ts"] } diff --git a/libs/@guardian/identity-auth/.eslintrc.cjs b/libs/@guardian/identity-auth/.eslintrc.cjs index 3154fa87b..4702175fa 100644 --- a/libs/@guardian/identity-auth/.eslintrc.cjs +++ b/libs/@guardian/identity-auth/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/identity-auth/jest.config.ts b/libs/@guardian/identity-auth/jest.config.js similarity index 63% rename from libs/@guardian/identity-auth/jest.config.ts rename to libs/@guardian/identity-auth/jest.config.js index 40e5b008a..880d757b6 100644 --- a/libs/@guardian/identity-auth/jest.config.ts +++ b/libs/@guardian/identity-auth/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/identity-auth', testEnvironment: 'jest-environment-jsdom', diff --git a/libs/@guardian/identity-auth/jest.dist.setup.js b/libs/@guardian/identity-auth/jest.dist.setup.js new file mode 100644 index 000000000..96fd6cc4b --- /dev/null +++ b/libs/@guardian/identity-auth/jest.dist.setup.js @@ -0,0 +1,6 @@ +// Mock `./src/index` with whatever `package.json` points at in dist. +// This means we can run the unit tests against `dist` instead. + +import * as dist from '.'; + +jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/identity-auth/package.json b/libs/@guardian/identity-auth/package.json index 89537f5b5..43136a96e 100644 --- a/libs/@guardian/identity-auth/package.json +++ b/libs/@guardian/identity-auth/package.json @@ -5,18 +5,33 @@ "description": "", "license": "Apache-2.0", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { "@guardian/libs": "16.0.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-fetch-mock": "3.0.3", + "pkgroll": "2.0.2", "ts-jest": "29.1.1", "tslib": "2.6.2", "typescript": "5.3.3" @@ -37,19 +52,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/identity-auth/tsconfig.json b/libs/@guardian/identity-auth/tsconfig.json index 978f6e1b9..9663b1b93 100644 --- a/libs/@guardian/identity-auth/tsconfig.json +++ b/libs/@guardian/identity-auth/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/identity-auth/tsconfig.spec.json b/libs/@guardian/identity-auth/tsconfig.spec.json index d42f10920..1b175b148 100644 --- a/libs/@guardian/identity-auth/tsconfig.spec.json +++ b/libs/@guardian/identity-auth/tsconfig.spec.json @@ -6,7 +6,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/libs/.eslintrc.cjs b/libs/@guardian/libs/.eslintrc.cjs index 795f8bd13..3898e5d33 100644 --- a/libs/@guardian/libs/.eslintrc.cjs +++ b/libs/@guardian/libs/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/libs/.lintstagedrc.js b/libs/@guardian/libs/.lintstagedrc.js index 98e6ac5d9..fbf888c04 100644 --- a/libs/@guardian/libs/.lintstagedrc.js +++ b/libs/@guardian/libs/.lintstagedrc.js @@ -1,6 +1,6 @@ -const config = require('../../../.lintstagedrc.js'); +import config from '../../../.lintstagedrc.js'; -module.exports = { +export default { 'src/logger/**/*|scripts/generateSvg.logger.subscriptions.*': 'node -r @swc-node/register scripts/generateSvg.logger.subscriptions.ts', ...config, diff --git a/libs/@guardian/libs/cypress.config.js b/libs/@guardian/libs/cypress.config.mjs similarity index 89% rename from libs/@guardian/libs/cypress.config.js rename to libs/@guardian/libs/cypress.config.mjs index 2449efa77..0bec5a8f5 100644 --- a/libs/@guardian/libs/cypress.config.js +++ b/libs/@guardian/libs/cypress.config.mjs @@ -1,6 +1,6 @@ /* eslint-disable import/no-default-export -- that's what cypress likes */ import { defineConfig } from 'cypress'; -import plugins from './cypress/plugins/index'; +import plugins from './cypress/plugins/index.mjs'; export default defineConfig({ viewportWidth: 1440, diff --git a/libs/@guardian/libs/cypress/plugins/index.js b/libs/@guardian/libs/cypress/plugins/index.mjs similarity index 100% rename from libs/@guardian/libs/cypress/plugins/index.js rename to libs/@guardian/libs/cypress/plugins/index.mjs diff --git a/libs/@guardian/libs/jest.config.ts b/libs/@guardian/libs/jest.config.js similarity index 62% rename from libs/@guardian/libs/jest.config.ts rename to libs/@guardian/libs/jest.config.js index 8bb16b257..ee0e36782 100644 --- a/libs/@guardian/libs/jest.config.ts +++ b/libs/@guardian/libs/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/libs', testEnvironment: './jest.testEnvironment.js', diff --git a/libs/@guardian/libs/jest.dist.config.ts b/libs/@guardian/libs/jest.dist.config.js similarity index 55% rename from libs/@guardian/libs/jest.dist.config.ts rename to libs/@guardian/libs/jest.dist.config.js index f814bf03d..e2bed9d32 100644 --- a/libs/@guardian/libs/jest.dist.config.ts +++ b/libs/@guardian/libs/jest.dist.config.js @@ -1,8 +1,12 @@ /* eslint-disable import/no-default-export -- it's what jest likes */ -import config from './jest.config'; -export default { - ...config, +import devConfig from './jest.config.js'; + +/** @typedef {import("jest").Config} Config */ +const config = { + ...devConfig, // only run tests in the src root in e2e mode testMatch: ['/src/?(*.)+(spec|test).[jt]s?(x)'], }; + +export default config; diff --git a/libs/@guardian/libs/jest.dist.setup.js b/libs/@guardian/libs/jest.dist.setup.js new file mode 100644 index 000000000..96fd6cc4b --- /dev/null +++ b/libs/@guardian/libs/jest.dist.setup.js @@ -0,0 +1,6 @@ +// Mock `./src/index` with whatever `package.json` points at in dist. +// This means we can run the unit tests against `dist` instead. + +import * as dist from '.'; + +jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/libs/jest.testEnvironment.js b/libs/@guardian/libs/jest.testEnvironment.js index e91d44dbd..3fae66145 100644 --- a/libs/@guardian/libs/jest.testEnvironment.js +++ b/libs/@guardian/libs/jest.testEnvironment.js @@ -2,9 +2,9 @@ // https://stackoverflow.com/questions/74945569/cannot-access-built-in-node-js-fetch-function-from-jest-tests -import JSDOMEnvironment from 'jest-environment-jsdom'; +import { TestEnvironment } from 'jest-environment-jsdom'; -export default class FixJSDOMEnvironment extends JSDOMEnvironment { +export default class FixJSDOMEnvironment extends TestEnvironment { constructor(...args) { super(...args); this.global.fetch = fetch; diff --git a/libs/@guardian/libs/package.json b/libs/@guardian/libs/package.json index ee3f480de..5d6242625 100644 --- a/libs/@guardian/libs/package.json +++ b/libs/@guardian/libs/package.json @@ -4,13 +4,27 @@ "private": false, "description": "A collection of JavaScript libraries and TypeScript types for Guardian projects", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "e2e": "wireit", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "test": "jest", - "verify-dist": "jest -c=./jest.dist.config.ts --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest -c=./jest.dist.config.js --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { "@types/wcag-contrast": "3.0.3", @@ -19,6 +33,7 @@ "eslint-plugin-cypress": "2.15.1", "jest-fetch-mock": "3.0.3", "mockdate": "3.0.5", + "pkgroll": "2.0.2", "tslib": "2.6.2", "typescript": "5.3.3", "wcag-contrast": "3.0.0", @@ -39,19 +54,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/libs/tsconfig.json b/libs/@guardian/libs/tsconfig.json index 978f6e1b9..655863075 100644 --- a/libs/@guardian/libs/tsconfig.json +++ b/libs/@guardian/libs/tsconfig.json @@ -6,5 +6,13 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + }, + "ts-node": { + "moduleTypes": { + "jest.config.ts": "cjs" + } + } } diff --git a/libs/@guardian/libs/tsconfig.spec.json b/libs/@guardian/libs/tsconfig.spec.json index d42f10920..1b175b148 100644 --- a/libs/@guardian/libs/tsconfig.spec.json +++ b/libs/@guardian/libs/tsconfig.spec.json @@ -6,7 +6,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/newsletter-types/.eslintrc.cjs b/libs/@guardian/newsletter-types/.eslintrc.cjs index 9bee1e043..54325ff0a 100644 --- a/libs/@guardian/newsletter-types/.eslintrc.cjs +++ b/libs/@guardian/newsletter-types/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/newsletter-types/package.json b/libs/@guardian/newsletter-types/package.json index 445daeca6..e78f28411 100644 --- a/libs/@guardian/newsletter-types/package.json +++ b/libs/@guardian/newsletter-types/package.json @@ -4,12 +4,27 @@ "private": false, "description": "A set of types describing the output of the Guardian newsletters API", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache ." }, "devDependencies": { + "pkgroll": "2.0.2", "tslib": "2.6.2", "typescript": "5.3.3" }, @@ -28,19 +43,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/newsletter-types/tsconfig.json b/libs/@guardian/newsletter-types/tsconfig.json index 978f6e1b9..9663b1b93 100644 --- a/libs/@guardian/newsletter-types/tsconfig.json +++ b/libs/@guardian/newsletter-types/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/prettier/.eslintrc.cjs b/libs/@guardian/prettier/.eslintrc.cjs index c160d51bf..4f01fa8a4 100644 --- a/libs/@guardian/prettier/.eslintrc.cjs +++ b/libs/@guardian/prettier/.eslintrc.cjs @@ -1,6 +1,10 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/prettier/dist.test.js b/libs/@guardian/prettier/dist.test.js deleted file mode 100644 index ba6f7cf53..000000000 --- a/libs/@guardian/prettier/dist.test.js +++ /dev/null @@ -1,8 +0,0 @@ -const bundleExports = require('../../../dist/libs/@guardian/prettier'); -const srcExports = require('.'); - -describe('The bundle', () => { - it('exports everything it should', () => { - expect(srcExports).toEqual(bundleExports); - }); -}); diff --git a/libs/@guardian/prettier/jest.config.ts b/libs/@guardian/prettier/jest.config.ts deleted file mode 100644 index 1414d0ccb..000000000 --- a/libs/@guardian/prettier/jest.config.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ -/* eslint-disable import/no-default-export -- that's what jest likes */ - -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; - -const config: Config = { - ...baseConfig, - displayName: '@guardian/source-react-components', - testEnvironment: 'node', -}; - -export default config; diff --git a/libs/@guardian/prettier/package.json b/libs/@guardian/prettier/package.json index f266d993e..26ba9776a 100644 --- a/libs/@guardian/prettier/package.json +++ b/libs/@guardian/prettier/package.json @@ -3,6 +3,9 @@ "version": "8.0.0", "description": "Prettier config for Guardian JavaScript & TypeScript projects", "main": "index.js", + "files": [ + "index.d.ts" + ], "scripts": { "fix": "pnpm lint --fix", "lint": "eslint --cache ." @@ -17,21 +20,6 @@ }, "nx": { "targets": { - "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/index.js", - "{projectRoot}/index.d.ts", - "{projectRoot}/*.md" - ] - } - }, "lint": { "inputs": [ "{projectRoot}/**", @@ -46,12 +34,6 @@ "outputs": [ "{projectRoot}" ] - }, - "verify-dist": { - "inputs": [ - "{projectRoot}/**", - "{workspaceRoot}/jest.*" - ] } } } diff --git a/libs/@guardian/source-foundations/.eslintrc.cjs b/libs/@guardian/source-foundations/.eslintrc.cjs index 794f35dc9..067569d20 100644 --- a/libs/@guardian/source-foundations/.eslintrc.cjs +++ b/libs/@guardian/source-foundations/.eslintrc.cjs @@ -1,6 +1,12 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules', '.wireit'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/source-foundations/jest.config.ts b/libs/@guardian/source-foundations/jest.config.js similarity index 70% rename from libs/@guardian/source-foundations/jest.config.ts rename to libs/@guardian/source-foundations/jest.config.js index 8b08452b0..0a6d674dd 100644 --- a/libs/@guardian/source-foundations/jest.config.ts +++ b/libs/@guardian/source-foundations/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/source-foundations', testEnvironment: 'node', diff --git a/libs/@guardian/source-foundations/jest.dist.setup.ts b/libs/@guardian/source-foundations/jest.dist.setup.js similarity index 61% rename from libs/@guardian/source-foundations/jest.dist.setup.ts rename to libs/@guardian/source-foundations/jest.dist.setup.js index ad9ce4156..3184b2909 100644 --- a/libs/@guardian/source-foundations/jest.dist.setup.ts +++ b/libs/@guardian/source-foundations/jest.dist.setup.js @@ -1,10 +1,7 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - // Mock `src/index` with whatever the dist `package.json` points at. // This means we can run `src/index.test.ts` against `dist` instead. -// @ts-ignore -import * as dist from '../../../dist/libs/@guardian/source-foundations'; +import * as dist from '.'; // Register our custom Jest matcher. import './lib/jest-matchers/toBeValidCSS'; diff --git a/libs/@guardian/source-foundations/package.json b/libs/@guardian/source-foundations/package.json index 830a5ff49..38e324f23 100644 --- a/libs/@guardian/source-foundations/package.json +++ b/libs/@guardian/source-foundations/package.json @@ -3,14 +3,28 @@ "version": "15.0.0", "license": "Apache-2.0", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "build-storybook": "wireit", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "storybook": "storybook dev --port 4401", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "dependencies": { "mini-svg-data-uri": "1.4.4" @@ -19,6 +33,7 @@ "@emotion/react": "11.11.1", "@guardian/design-tokens": "workspace:*", "lightningcss": "1.24.0", + "pkgroll": "2.0.2", "react": "18.2.0", "react-dom": "18.2.0", "tslib": "2.6.2", @@ -38,19 +53,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/source-foundations/tsconfig.json b/libs/@guardian/source-foundations/tsconfig.json index aba5a541f..ba8e49ae9 100644 --- a/libs/@guardian/source-foundations/tsconfig.json +++ b/libs/@guardian/source-foundations/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/source-foundations/tsconfig.spec.json b/libs/@guardian/source-foundations/tsconfig.spec.json index 4e7173011..914db19cb 100644 --- a/libs/@guardian/source-foundations/tsconfig.spec.json +++ b/libs/@guardian/source-foundations/tsconfig.spec.json @@ -7,7 +7,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs b/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs index 0894444d4..4168c3cc1 100644 --- a/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs +++ b/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs @@ -1,6 +1,12 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules', '.wireit'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/source-react-components-development-kitchen/jest.config.ts b/libs/@guardian/source-react-components-development-kitchen/jest.config.js similarity index 64% rename from libs/@guardian/source-react-components-development-kitchen/jest.config.ts rename to libs/@guardian/source-react-components-development-kitchen/jest.config.js index 7eb51e96a..9bedfcfa2 100644 --- a/libs/@guardian/source-react-components-development-kitchen/jest.config.ts +++ b/libs/@guardian/source-react-components-development-kitchen/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/source-react-components-development-kitchen', testEnvironment: 'node', diff --git a/libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.js b/libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.js new file mode 100644 index 000000000..2370d2e46 --- /dev/null +++ b/libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.js @@ -0,0 +1,7 @@ +// Mock `src/index` with whatever the dist `package.json` points at. +// This means we can run `src/index.test.ts` against `dist` instead. + +// @ts-ignore +import * as dist from '.'; + +jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.ts b/libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.ts deleted file mode 100644 index a5f561c1a..000000000 --- a/libs/@guardian/source-react-components-development-kitchen/jest.dist.setup.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable -- this file will break unless the project is built, so let's not worry about it */ - -// Mock `src/index` with whatever the dist `package.json` points at. -// This means we can run `src/index.test.ts` against `dist` instead. - -// @ts-ignore -import * as dist from '../../../dist/libs/@guardian/source-react-components-development-kitchen'; - -jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index 3cc38acf2..7ee9bc832 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -2,14 +2,28 @@ "name": "@guardian/source-react-components-development-kitchen", "version": "20.0.2", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "build-storybook": "wireit", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", "storybook": "storybook dev --port 4403", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { "@babel/core": "7.24.0", @@ -18,6 +32,7 @@ "@guardian/source-foundations": "14.2.2", "@guardian/source-react-components": "23.0.0", "@types/react": "18.2.11", + "pkgroll": "2.0.2", "react": "18.2.0", "tslib": "2.6.2", "typescript": "5.3.3", @@ -40,19 +55,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/source-react-components-development-kitchen/tsconfig.json b/libs/@guardian/source-react-components-development-kitchen/tsconfig.json index aba5a541f..ba8e49ae9 100644 --- a/libs/@guardian/source-react-components-development-kitchen/tsconfig.json +++ b/libs/@guardian/source-react-components-development-kitchen/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/source-react-components-development-kitchen/tsconfig.spec.json b/libs/@guardian/source-react-components-development-kitchen/tsconfig.spec.json index 4e7173011..914db19cb 100644 --- a/libs/@guardian/source-react-components-development-kitchen/tsconfig.spec.json +++ b/libs/@guardian/source-react-components-development-kitchen/tsconfig.spec.json @@ -7,7 +7,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/source-react-components/.eslintrc.cjs b/libs/@guardian/source-react-components/.eslintrc.cjs index cb03c4ffc..ef43a997a 100644 --- a/libs/@guardian/source-react-components/.eslintrc.cjs +++ b/libs/@guardian/source-react-components/.eslintrc.cjs @@ -1,6 +1,11 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + 'dist', + ], overrides: [ { files: ['*.ts', '*.tsx'], @@ -15,12 +20,5 @@ module.exports = { jest: true, }, }, - { - files: ['*.d.ts'], - parserOptions: { - project: ['libs/@guardian/prettier/tsconfig.json'], - }, - rules: {}, - }, ], }; diff --git a/libs/@guardian/source-react-components/jest.config.ts b/libs/@guardian/source-react-components/jest.config.js similarity index 62% rename from libs/@guardian/source-react-components/jest.config.ts rename to libs/@guardian/source-react-components/jest.config.js index 1414d0ccb..0e3cf6752 100644 --- a/libs/@guardian/source-react-components/jest.config.ts +++ b/libs/@guardian/source-react-components/jest.config.js @@ -1,10 +1,9 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ /* eslint-disable import/no-default-export -- that's what jest likes */ -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; +import { config as baseConfig } from '../../../configs/jest.config.js'; -const config: Config = { +/** @typedef {import("jest").Config} Config */ +const config = { ...baseConfig, displayName: '@guardian/source-react-components', testEnvironment: 'node', diff --git a/libs/@guardian/source-react-components/jest.dist.setup.js b/libs/@guardian/source-react-components/jest.dist.setup.js new file mode 100644 index 000000000..0df133ffc --- /dev/null +++ b/libs/@guardian/source-react-components/jest.dist.setup.js @@ -0,0 +1,6 @@ +// Mock `src/index` with whatever the dist `package.json` points at. +// This means we can run `src/index.test.ts` against `dist` instead. + +import * as dist from '.'; + +jest.mock('./src/index', () => dist); diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 0bb8ec538..28691b347 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -3,7 +3,21 @@ "version": "24.0.0", "license": "Apache-2.0", "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "scripts": { + "build": "rm -rf dist && pkgroll", "build-storybook": "wireit", "create-icons": "ts-node scripts/create-icons", "dev": "jest --watch", @@ -11,7 +25,7 @@ "lint": "eslint --cache .", "storybook": "storybook dev --port 4402", "test": "jest", - "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.ts" + "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { "@babel/core": "7.24.0", @@ -29,6 +43,7 @@ "dotenv": "16.4.1", "jest": "29.7.0", "mkdirp": "3.0.1", + "pkgroll": "2.0.2", "prettier": "3.2.2", "react": "18.2.0", "ts-jest": "29.1.1", @@ -52,19 +67,14 @@ "nx": { "targets": { "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" + "inputs": [ + "{projectRoot}/src/**", + "{projectRoot}/package.json", + "{projectRoot}/tsconfig.json" ], - "options": { - "entry": "{projectRoot}/src/index.ts", - "tsConfig": "{projectRoot}/tsconfig.json", - "packageJson": "{projectRoot}/package.json", - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/*.md" - ] - } + "outputs": [ + "{projectRoot}/dist" + ] }, "lint": { "inputs": [ diff --git a/libs/@guardian/source-react-components/tsconfig.json b/libs/@guardian/source-react-components/tsconfig.json index aba5a541f..ba8e49ae9 100644 --- a/libs/@guardian/source-react-components/tsconfig.json +++ b/libs/@guardian/source-react-components/tsconfig.json @@ -6,5 +6,8 @@ { "path": "./tsconfig.spec.json" } - ] + ], + "compilerOptions": { + "incremental": false + } } diff --git a/libs/@guardian/source-react-components/tsconfig.spec.json b/libs/@guardian/source-react-components/tsconfig.spec.json index 4e7173011..914db19cb 100644 --- a/libs/@guardian/source-react-components/tsconfig.spec.json +++ b/libs/@guardian/source-react-components/tsconfig.spec.json @@ -7,7 +7,7 @@ "types": ["jest", "node"] }, "include": [ - "jest.config.ts", + "jest.config.js", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", diff --git a/libs/@guardian/tsconfig/.eslintrc.cjs b/libs/@guardian/tsconfig/.eslintrc.cjs index c160d51bf..4f01fa8a4 100644 --- a/libs/@guardian/tsconfig/.eslintrc.cjs +++ b/libs/@guardian/tsconfig/.eslintrc.cjs @@ -1,6 +1,10 @@ module.exports = { extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], + ignorePatterns: [ + '!**/*', + 'node_modules', + 'jest.dist.*', // depends on build output, so don't lint it + ], overrides: [ { files: ['*.ts', '*.tsx'], diff --git a/libs/@guardian/tsconfig/dist.test.js b/libs/@guardian/tsconfig/dist.test.js deleted file mode 100644 index 5963e898b..000000000 --- a/libs/@guardian/tsconfig/dist.test.js +++ /dev/null @@ -1,8 +0,0 @@ -const bundleExports = require('../../../dist/libs/@guardian/tsconfig'); -const srcExports = require('.'); - -describe('The bundle', () => { - it('exports everything it should', () => { - expect(srcExports).toEqual(bundleExports); - }); -}); diff --git a/libs/@guardian/tsconfig/jest.config.ts b/libs/@guardian/tsconfig/jest.config.ts deleted file mode 100644 index 38f95c774..000000000 --- a/libs/@guardian/tsconfig/jest.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* eslint-disable @nx/enforce-module-boundaries -- out root config lives in the root */ -/* eslint-disable import/no-default-export -- that's what jest likes */ - -import type { Config } from 'jest'; -import { config as baseConfig } from '../../../configs/jest.config'; - -const config: Config = { - ...baseConfig, - displayName: '@guardian/tsconfig', - transform: { - '^.+\\.[tj]sx?$': 'ts-jest', - }, -}; - -export default config; diff --git a/libs/@guardian/tsconfig/package.json b/libs/@guardian/tsconfig/package.json index 8ad0cdb2a..f147832c3 100644 --- a/libs/@guardian/tsconfig/package.json +++ b/libs/@guardian/tsconfig/package.json @@ -5,25 +5,10 @@ "main": "tsconfig.json", "scripts": { "fix": "pnpm lint --fix", - "lint": "eslint --cache .", - "verify-dist": "jest" + "lint": "eslint --cache ." }, "nx": { "targets": { - "build": { - "executor": "@csnx/npm-package:build", - "outputs": [ - "{options.outputPath}" - ], - "options": { - "outputPath": "{workspaceRoot}/dist/{projectRoot}", - "assets": [ - "{projectRoot}/tsconfig.json", - "{projectRoot}/*.md" - ], - "packageJson": "{projectRoot}/package.json" - } - }, "lint": { "inputs": [ "{projectRoot}/**", @@ -38,12 +23,6 @@ "outputs": [ "{projectRoot}" ] - }, - "verify-dist": { - "inputs": [ - "{projectRoot}/**", - "{workspaceRoot}/jest.*" - ] } } } diff --git a/nx.json b/nx.json index 0598f5504..c8fe95f1b 100644 --- a/nx.json +++ b/nx.json @@ -15,6 +15,12 @@ "test": { "dependsOn": ["^build"] }, + "lint": { + "dependsOn": ["^build"] + }, + "fix": { + "dependsOn": ["^build"] + }, "verify-dist": { "dependsOn": ["build", "^build"] } diff --git a/package.json b/package.json index a773c5fb1..35ed69f08 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "@guardian/csnx", "version": "0.1.0", "private": "true", + "type": "module", "scripts": { "build": "./tools/scripts/use-make-instead", "prepare": "husky", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6595c3e94..4fb50efee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -191,6 +191,9 @@ importers: '@astrojs/svelte': specifier: 5.3.0 version: 5.3.0(astro@4.5.16)(svelte@4.2.12)(typescript@5.3.3)(vite@5.2.11) + '@guardian/libs': + specifier: workspace:* + version: link:../../libs/@guardian/libs astro: specifier: 4.5.16 version: 4.5.16(@types/node@18.19.3)(typescript@5.3.3) @@ -212,6 +215,9 @@ importers: libs/@guardian/ab-core: devDependencies: + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) tslib: specifier: 2.6.2 version: 2.6.2 @@ -230,6 +236,9 @@ importers: '@types/react': specifier: 18.2.11 version: 18.2.11 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 @@ -284,6 +293,9 @@ importers: '@guardian/libs': specifier: 16.0.0 version: 16.0.0(tslib@2.6.2)(typescript@5.3.3) + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) tslib: specifier: 2.6.2 version: 2.6.2 @@ -387,6 +399,9 @@ importers: eslint: specifier: 8.56.0 version: 8.56.0 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) tslib: specifier: 2.6.2 version: 2.6.2 @@ -427,6 +442,9 @@ importers: eslint: specifier: 8.56.0 version: 8.56.0 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 @@ -451,6 +469,9 @@ importers: jest-fetch-mock: specifier: 3.0.3 version: 3.0.3 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) ts-jest: specifier: 29.1.1 version: 29.1.1(@babel/core@7.24.0)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.3.3) @@ -472,6 +493,9 @@ importers: jest-fetch-mock: specifier: 3.0.3 version: 3.0.3 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) tslib: specifier: 2.6.2 version: 2.6.2 @@ -499,6 +523,9 @@ importers: mockdate: specifier: 3.0.5 version: 3.0.5 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) tslib: specifier: 2.6.2 version: 2.6.2 @@ -514,6 +541,9 @@ importers: libs/@guardian/newsletter-types: devDependencies: + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) tslib: specifier: 2.6.2 version: 2.6.2 @@ -545,6 +575,9 @@ importers: lightningcss: specifier: 1.24.0 version: 1.24.0 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 @@ -611,6 +644,9 @@ importers: mkdirp: specifier: 3.0.1 version: 3.0.1 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) prettier: specifier: 3.2.2 version: 3.2.2 @@ -653,6 +689,9 @@ importers: '@types/react': specifier: 18.2.11 version: 18.2.11 + pkgroll: + specifier: 2.0.2 + version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 @@ -4159,6 +4198,19 @@ packages: react: 18.2.0 dev: true + /@rollup/plugin-alias@5.1.0(rollup@4.17.2): + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 4.17.2 + slash: 4.0.0 + dev: true + /@rollup/plugin-commonjs@25.0.7(rollup@4.17.2): resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} engines: {node: '>=14.0.0'} @@ -4175,7 +4227,21 @@ packages: is-reference: 1.2.1 magic-string: 0.30.5 rollup: 4.17.2 - dev: false + + /@rollup/plugin-inject@5.0.5(rollup@4.17.2): + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + estree-walker: 2.0.2 + magic-string: 0.30.8 + rollup: 4.17.2 + dev: true /@rollup/plugin-json@6.1.0(rollup@4.17.2): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} @@ -4188,7 +4254,6 @@ packages: dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.17.2) rollup: 4.17.2 - dev: false /@rollup/plugin-node-resolve@15.2.3(rollup@4.17.2): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} @@ -4206,7 +4271,20 @@ packages: is-module: 1.0.0 resolve: 1.22.8 rollup: 4.17.2 - dev: false + + /@rollup/plugin-replace@5.0.5(rollup@4.17.2): + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + magic-string: 0.30.8 + rollup: 4.17.2 + dev: true /@rollup/pluginutils@5.1.0(rollup@4.17.2): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} @@ -4221,7 +4299,6 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 rollup: 4.17.2 - dev: false /@rollup/rollup-android-arm-eabi@4.17.2: resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} @@ -5856,7 +5933,6 @@ packages: /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - dev: false /@types/resolve@1.20.6: resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -7561,7 +7637,6 @@ packages: /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - dev: false /builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} @@ -9520,7 +9595,6 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: false /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -10253,7 +10327,6 @@ packages: inherits: 2.0.4 minimatch: 5.1.6 once: 1.4.0 - dev: false /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} @@ -10879,7 +10952,6 @@ packages: engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 - dev: false /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -11000,7 +11072,6 @@ packages: /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: false /is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} @@ -11062,7 +11133,6 @@ packages: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: '@types/estree': 1.0.5 - dev: false /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} @@ -13864,6 +13934,29 @@ packages: find-up: 6.3.0 dev: true + /pkgroll@2.0.2(typescript@5.3.3): + resolution: {integrity: sha512-gRQ293zs67H2nN/CKwdLnlxCKpE5qi5rJwVvDUqep8qOLs57PlTl3MAXmLlFztwI2Iv6mP9k5BSlhBjzFJmerg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + typescript: ^4.1 || ^5.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@rollup/plugin-alias': 5.1.0(rollup@4.17.2) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.17.2) + '@rollup/plugin-inject': 5.0.5(rollup@4.17.2) + '@rollup/plugin-json': 6.1.0(rollup@4.17.2) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.17.2) + '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + esbuild: 0.20.2 + magic-string: 0.30.8 + rollup: 4.17.2 + typescript: 5.3.3 + dev: true + /polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} diff --git a/tools/nx-plugins/npm-package/.eslintrc.js b/tools/nx-plugins/npm-package/.eslintrc.js deleted file mode 100644 index 141193947..000000000 --- a/tools/nx-plugins/npm-package/.eslintrc.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: ['!**/*', 'node_modules'], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - project: ['tools/nx-plugins/npm-package/tsconfig.json'], - }, - rules: { - 'import/no-default-export': 'off', // Nx plugins export defaults - '@typescript-eslint/unbound-method': 'off', - }, - }, - ], -}; diff --git a/tools/nx-plugins/npm-package/build/get-compiler-options.ts b/tools/nx-plugins/npm-package/build/get-compiler-options.ts deleted file mode 100644 index 7b07e8842..000000000 --- a/tools/nx-plugins/npm-package/build/get-compiler-options.ts +++ /dev/null @@ -1,36 +0,0 @@ -import path from 'node:path'; -import type { ExecutorContext } from '@nx/devkit'; -import { - findConfigFile, - parseJsonConfigFileContent, - readConfigFile, - sys, -} from 'typescript'; -import type { BuildExecutorOptions } from './schema'; - -export const getCompilerOptions = ( - options: BuildExecutorOptions, - context: ExecutorContext, -) => { - const tsconfigPath = findConfigFile( - context.root, - sys.fileExists, - options.tsConfig, - ); - - if (tsconfigPath) { - // Read tsconfig.json file - const tsconfigFile = readConfigFile(tsconfigPath, sys.readFile); - - // Resolve extends - const parsedTsconfig = parseJsonConfigFileContent( - tsconfigFile.config, - sys, - path.dirname(tsconfigPath), - ); - - return parsedTsconfig.options; - } - - return {}; -}; diff --git a/tools/nx-plugins/npm-package/build/get-declared-deps.ts b/tools/nx-plugins/npm-package/build/get-declared-deps.ts deleted file mode 100644 index 59c1650e0..000000000 --- a/tools/nx-plugins/npm-package/build/get-declared-deps.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { isObject } from '@guardian/libs'; - -export const getDeclaredDeps = async (pkgPath: string) => { - /* eslint-disable @typescript-eslint/no-unsafe-assignment -- - json is an any - */ - const { dependencies, peerDependencies } = await import(pkgPath, { - assert: { type: 'json' }, - }); - - const deps: string[] = []; - - if (isObject(dependencies)) { - deps.push(...Object.keys(dependencies)); - } - - if (isObject(peerDependencies)) { - deps.push(...Object.keys(peerDependencies)); - } - /* eslint-enable @typescript-eslint/no-unsafe-assignment */ - - return deps; -}; diff --git a/tools/nx-plugins/npm-package/build/index.ts b/tools/nx-plugins/npm-package/build/index.ts deleted file mode 100644 index 2c8771ea9..000000000 --- a/tools/nx-plugins/npm-package/build/index.ts +++ /dev/null @@ -1,179 +0,0 @@ -import childProcess from 'node:child_process'; -import path from 'node:path'; -import util from 'node:util'; -import { isObject, isUndefined } from '@guardian/libs'; -import type { ExecutorContext } from '@nx/devkit'; -import { logger } from '@nx/devkit'; -import commonjs from '@rollup/plugin-commonjs'; -import json from '@rollup/plugin-json'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import type Cpy from 'cpy'; -import type { OutputChunk } from 'rollup'; -import { rollup } from 'rollup'; -import ts from 'rollup-plugin-ts'; -import { ScriptTarget } from 'typescript'; -import { getCompilerOptions } from './get-compiler-options'; -import { getDeclaredDeps } from './get-declared-deps'; -import type { BuildExecutorOptions } from './schema'; -import { setPackageDefaults } from './set-package-defaults'; -import { writeResolvedPackageJson } from './write-resolved-package-json'; - -/** - * THIS IS KLUDGE #ES_NODE_MODULES - * - * lifted from https://github.com/nrwl/nx/pull/10414 - * - * @TODO once Nx allows esm imports, it should be removed - */ -// eslint-disable-next-line @typescript-eslint/no-implied-eval -- this is a kludge -const esmModuleImport = new Function('specifier', 'return import(specifier)'); - -const exec = util.promisify(childProcess.exec); - -// the order of these sets the order of the exports in the package.json -const formats = ['esm', 'cjs'] as const; - -type Format = (typeof formats)[number]; -type ImportType = 'import' | 'require'; - -// the exports field of the package.json -export type Exports = Record | undefined>; - -const getRollupConfig = ( - options: BuildExecutorOptions, - context: ExecutorContext, - format: Format, -) => { - const compilerOptions = getCompilerOptions(options, context); - - if (format === 'cjs') { - // Node 14 is eol 2023-04-30, so we should still support it - compilerOptions.target = ScriptTarget.ES2018; - } - - return { - strictDeprecations: true, - output: { - dir: `${options.outputPath}/${format}`, - format, - sourcemap: true, - preserveModules: true, - esModule: true, - }, - plugins: [ - nodeResolve({ - extensions: ['.ts', '.tsx', '.mjs', '.jsx', '.js', '.json'], - }), - ts({ - tsconfig: compilerOptions, - }), - json(), - commonjs(), - ], - }; -}; -export default async function buildExecutor( - options: BuildExecutorOptions, - context: ExecutorContext, -): Promise<{ success: boolean }> { - try { - options.pkgRoot = path.dirname(options.packageJson); - - // remove old build - await exec(`rm -rf ${options.outputPath}`); - - // create dist dir - await exec(`mkdir -p ${options.outputPath}`); - - // copy assets over - const { default: cpy } = (await esmModuleImport('cpy')) as { - default: typeof Cpy; - }; - await cpy(options.assets, options.outputPath, { - cwd: context.root, - flat: true, - }); - - // add a package.json with workspace deps resolved - await writeResolvedPackageJson(options, context); - - const packageExports: Exports = {}; - - if (options.entry) { - if (!options.tsConfig) { - logger.error( - "You must include a 'tsConfig' option when using the 'entry' option", - ); - return { success: false }; - } - - const input = isObject(options.entry) - ? options.entry - : { index: options.entry }; - - if (isUndefined(input.index)) { - logger.error( - "You must include a 'index' field when passing an object to the 'entry' option", - ); - return { success: false }; - } - - if ( - Object.keys(input).some( - (key) => key.startsWith('.') || key.startsWith('/'), - ) - ) { - logger.error("Keys in 'entry' option must not start with '.' or '/'"); - return { success: false }; - } - - // do not bundle dependencies - const deps = await getDeclaredDeps(options.packageJson); - const external = deps.map((dep) => new RegExp(`^${dep}`)); - - // create build for each module type - const builds = await Promise.all( - formats.map(async (format) => { - const { plugins, output } = getRollupConfig(options, context, format); - - const bundle = await rollup({ - input, - plugins, - external, - }); - const artefact = await bundle.write(output); - await bundle.close(); - - const outputs = artefact.output.filter( - (file) => file.type === 'chunk' && file.isEntry, - ) as OutputChunk[]; - - return outputs.map((output) => ({ - name: output.name, - path: `${format}/${output.fileName}`, - format, - })); - }), - ); - - for (const { name, path, format } of builds.flat()) { - const exportName = '.' + (name === 'index' ? '' : '/' + name); - - const packageExport = (packageExports[exportName] ||= {} as Record< - ImportType, - string - >); - - packageExport[format === 'cjs' ? 'require' : 'import'] = './' + path; - } - } - - // remove unwanted fields and set any necessary defaults in the package.json - await setPackageDefaults(options, packageExports); - - return { success: true }; - } catch (e) { - logger.error(e); - return { success: false }; - } -} diff --git a/tools/nx-plugins/npm-package/build/schema.d.ts b/tools/nx-plugins/npm-package/build/schema.d.ts deleted file mode 100644 index 8d37f258e..000000000 --- a/tools/nx-plugins/npm-package/build/schema.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface BuildExecutorOptions { - entry?: string | Record; - outputPath: string; - tsConfig?: string; - packageJson: string; - assets: string[]; - pkgRoot: string; -} diff --git a/tools/nx-plugins/npm-package/build/schema.json b/tools/nx-plugins/npm-package/build/schema.json deleted file mode 100644 index 3d3e1c1f6..000000000 --- a/tools/nx-plugins/npm-package/build/schema.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "$schema": "http://json-schema.org/schema", - "type": "object", - "cli": "nx", - "properties": { - "entry": { - "oneOf": [ - { "type": "string" }, - { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - ], - "description": "The main entry-point file(s)." - }, - "outputPath": { - "type": "string", - "description": "The output path of the generated files." - }, - "tsConfig": { - "type": "string", - "description": "The path to the Typescript configuration file." - }, - "packageJson": { - "type": "string", - "description": "The path to package.json file." - }, - "assets": { - "type": "array", - "description": "List of static assets.", - "default": [], - "items": { - "type": "string" - } - } - }, - "required": ["outputPath", "packageJson"] -} diff --git a/tools/nx-plugins/npm-package/build/set-package-defaults.ts b/tools/nx-plugins/npm-package/build/set-package-defaults.ts deleted file mode 100644 index 063b9b08e..000000000 --- a/tools/nx-plugins/npm-package/build/set-package-defaults.ts +++ /dev/null @@ -1,88 +0,0 @@ -import path from 'node:path'; -import type * as ReadPackage from 'read-pkg'; -import type * as SortPkgJson from 'sort-package-json'; -import type { JsonObject } from 'type-fest'; -import type * as WritePackage from 'write-pkg'; -import type { BuildExecutorOptions } from './schema'; -import type { Exports } from './index'; - -/** - * THIS IS KLUDGE #ES_NODE_MODULES - * - * lifted from https://github.com/nrwl/nx/pull/10414 - * - * @TODO once Nx allows esm imports, it should be removed - */ -// eslint-disable-next-line @typescript-eslint/no-implied-eval -- this is a kludge -const esmModuleImport = new Function('specifier', 'return import(specifier)'); - -/** - * Sets some defaults in the package.json and removes things we - * don't want to publish. - */ -export const setPackageDefaults = async ( - options: BuildExecutorOptions, - packageExports: Exports, -) => { - const { readPackage } = (await esmModuleImport( - 'read-pkg', - )) as typeof ReadPackage; - const { writePackage } = (await esmModuleImport( - 'write-pkg', - )) as typeof WritePackage; - - const pkg = (await readPackage({ cwd: options.outputPath })) as Record< - string, - unknown - >; - - delete pkg.pnpm; - delete pkg.packageManager; - delete pkg.scripts; - delete pkg.devDependencies; - - const pkgDefaults: Record = { - license: 'MIT', - readme: 'README.md', - homepage: `https://github.com/guardian/csnx/tree/main/${options.pkgRoot}#readme`, - bugs: { - url: 'https://github.com/guardian/csnx/issues', - }, - repository: { - type: 'git', - url: 'git+https://github.com/guardian/csnx.git', - }, - }; - - if (!pkg.private) { - pkg.publishConfig = { - access: 'public', - }; - } - - const numberOfExports = Object.keys(packageExports).length; - - if (numberOfExports === 0) { - if (!pkg.main) { - throw new Error( - "You must add a 'main' field to your package.json, or pass an 'entry' option to the build executor", - ); - } - } else if (numberOfExports === 1) { - pkg.main = packageExports['.']?.require; - pkg.module = packageExports['.']?.import; - } else { - pkg.exports = packageExports; - } - - const { default: sortPkgJson } = (await esmModuleImport( - 'sort-package-json', - )) as typeof SortPkgJson; - - const sortedPkg = sortPkgJson({ - ...pkgDefaults, - ...pkg, - }) as JsonObject; - - await writePackage(path.join(options.outputPath, 'package.json'), sortedPkg); -}; diff --git a/tools/nx-plugins/npm-package/build/write-resolved-package-json.ts b/tools/nx-plugins/npm-package/build/write-resolved-package-json.ts deleted file mode 100644 index 790d91603..000000000 --- a/tools/nx-plugins/npm-package/build/write-resolved-package-json.ts +++ /dev/null @@ -1,56 +0,0 @@ -import path from 'node:path'; -import type { ExecutorContext } from '@nx/devkit'; -import type { execa as Execa } from 'execa'; -import type { BuildExecutorOptions } from './schema'; - -/** - * THIS IS KLUDGE #ES_NODE_MODULES - * - * lifted from https://github.com/nrwl/nx/pull/10414 - * - * @TODO once Nx allows esm imports, it should be removed - */ -// eslint-disable-next-line @typescript-eslint/no-implied-eval -- this is a kludge -const esmModuleImport = new Function('specifier', 'return import(specifier)'); - -/** Handles the use of `workspace:*`-style versions for dependencies in the same - * workspace (https://pnpm.io/workspaces). `pnpm` resolves them to the real path - * when running `pnpm publish` or `pnpm pack`, but because we're doing some - * slightly unorthodox stuff with Nx and changesets in the release process, we - * need these pre-resolved in the build output. - * */ -export const writeResolvedPackageJson = async ( - options: BuildExecutorOptions, - context: ExecutorContext, -) => { - const { execa } = (await esmModuleImport('execa')) as { - execa: typeof Execa; - }; - // `pnpm pack` the source package, into the output directory - const { stdout: tarballPath } = await execa( - `corepack`, - [ - `pnpm`, - `pack`, - `--pack-destination`, - path.resolve(context.root, options.outputPath), - ], - { - cwd: options.pkgRoot, - }, - ); - - // extract the package.json into the output directory - await execa(`tar`, [ - `-xvf`, - tarballPath.trim(), - `-C`, - options.outputPath, - `--strip-components`, - `1`, - `package/package.json`, - ]); - - // remove the tarball - await execa(`rm`, [`-rf`, tarballPath.trim()]); -}; diff --git a/tools/nx-plugins/npm-package/executors.json b/tools/nx-plugins/npm-package/executors.json deleted file mode 100644 index 7e474adfc..000000000 --- a/tools/nx-plugins/npm-package/executors.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "http://json-schema.org/schema", - "executors": { - "build": { - "implementation": "./build/index.ts", - "schema": "./build/schema.json", - "description": "Bundles source code into an NPM package for publishing." - } - } -} diff --git a/tools/nx-plugins/npm-package/package.json b/tools/nx-plugins/npm-package/package.json deleted file mode 100644 index 407eaa740..000000000 --- a/tools/nx-plugins/npm-package/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "@csnx/npm-package", - "private": true, - "scripts": { - "fix": "pnpm lint --fix", - "lint": "eslint --cache ." - }, - "dependencies": { - "@guardian/libs": "workspace:*", - "@rollup/plugin-commonjs": "25.0.7", - "@rollup/plugin-json": "6.1.0", - "@rollup/plugin-node-resolve": "15.2.3", - "cpy": "10.1.0", - "execa": "7.1.1", - "read-pkg": "9.0.1", - "rollup": "4.17.2", - "rollup-plugin-ts": "3.4.5", - "sort-package-json": "2.10.0", - "tslib": "2.6.2", - "type-fest": "4.18.2", - "typescript": "5.3.3", - "write-pkg": "7.0.0" - }, - "executors": "./executors.json", - "nx": { - "projectType": "library", - "tags": [ - "scope:tool" - ], - "targets": { - "lint": { - "inputs": [ - "{workspaceRoot}/tools/nx-plugins/npm-package/**/*", - "{workspaceRoot}/.eslintrc.js" - ] - }, - "fix": { - "inputs": [ - "{workspaceRoot}/tools/nx-plugins/npm-package/**/*", - "{workspaceRoot}/.eslintrc.js" - ], - "outputs": [ - "{workspaceRoot}/tools/nx-plugins/npm-package/" - ] - } - } - } -} diff --git a/tools/nx-plugins/npm-package/tsconfig.json b/tools/nx-plugins/npm-package/tsconfig.json deleted file mode 100644 index 3a236aa79..000000000 --- a/tools/nx-plugins/npm-package/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json" -} diff --git a/tsconfig.base.json b/tsconfig.base.json index 02d13de3a..5295eb35e 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -11,39 +11,6 @@ "jsx": "react-jsx", "jsxImportSource": "@emotion/react", "noEmit": true, - "paths": { - "@csnx/eslint": ["tools/nx-plugins/eslint"], - "@csnx/npm-package": ["tools/nx-plugins/npm-package"], - "@guardian/ab-core": ["libs/@guardian/ab-core/src/index"], - "@guardian/ab-react": ["libs/@guardian/ab-react/src/index"], - "@guardian/cobalt-plugin-ts": ["libs/@guardian/cobalt-plugin-ts/index"], - "@guardian/core-web-vitals": ["libs/@guardian/core-web-vitals/src/index"], - "@guardian/design-tokens": ["libs/@guardian/design-tokens/tokens"], - "@guardian/eslint-plugin-source-foundations": [ - "libs/@guardian/eslint-plugin-source-foundations/src/index" - ], - "@guardian/eslint-plugin-source-react-components": [ - "libs/@guardian/eslint-plugin-source-react-components/src/index" - ], - "@guardian/identity-auth": ["libs/@guardian/identity-auth/src/index"], - "@guardian/identity-auth-frontend": [ - "libs/@guardian/identity-auth-frontend/src/index" - ], - "@guardian/libs": ["libs/@guardian/libs/src/index"], - "@guardian/newsletters-types": [ - "libs/@guardian/newsletters-types/src/index" - ], - "@guardian/prettier": ["libs/@guardian/prettier/index"], - "@guardian/source-foundations": [ - "libs/@guardian/source-foundations/src/index" - ], - "@guardian/source-react-components": [ - "libs/@guardian/source-react-components/src/index" - ], - "@guardian/source-react-components-development-kitchen": [ - "libs/@guardian/source-react-components-development-kitchen/src/index" - ] - }, "rootDir": ".", "sourceMap": true, "moduleResolution": "bundler" From 873970c1c34ef2ca745373fc36c802fafbe1f25d Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 26 Apr 2024 18:43:07 +0100 Subject: [PATCH 02/28] `github-pages` depends on `libs` --- apps/github-pages/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/github-pages/package.json b/apps/github-pages/package.json index 85c770ed2..1dde5a12a 100644 --- a/apps/github-pages/package.json +++ b/apps/github-pages/package.json @@ -25,6 +25,9 @@ ], "output": [ "dist" + ], + "dependencies": [ + "../../libs/@guardian/libs:build" ] }, "start": { From 32bef5607f4c7f81e15199ee4a77c071fdf6f707 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 26 Apr 2024 19:20:30 +0100 Subject: [PATCH 03/28] sotrybook needs design-tokens --- libs/@guardian/source-foundations/package.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/@guardian/source-foundations/package.json b/libs/@guardian/source-foundations/package.json index 38e324f23..e12a4c39f 100644 --- a/libs/@guardian/source-foundations/package.json +++ b/libs/@guardian/source-foundations/package.json @@ -108,6 +108,10 @@ "wireit": { "build-storybook": { "command": "NODE_ENV=production storybook build --webpack-stats-json", + "//": "dependency should really be 'build' but that needs to be wireit'd first", + "dependencies": [ + "../design-tokens:build" + ], "files": [ "**/*.{ts,tsx,js,json,mdx,md}", "!storybook-static/**", From 052e09bb325f28d29fd7f370d35333b62678f1ff Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 11:45:22 +0100 Subject: [PATCH 04/28] build tokens to `vendor` Co-authored-by: Oliver Abrahams Co-authored-by: James Mockett <1166188+jamesmockett@users.noreply.github.com> --- libs/@guardian/design-tokens/package.json | 8 +- .../design-tokens/{ => src}/tokens.json | 0 libs/@guardian/design-tokens/tokens.config.js | 4 +- .../design-tokens/vendor/tokens.d.ts | 1678 +++++++++++++++++ libs/@guardian/design-tokens/vendor/tokens.js | 1650 ++++++++++++++++ .../design-tokens/vendor/variables.css | 1622 ++++++++++++++++ 6 files changed, 4956 insertions(+), 6 deletions(-) rename libs/@guardian/design-tokens/{ => src}/tokens.json (100%) create mode 100644 libs/@guardian/design-tokens/vendor/tokens.d.ts create mode 100644 libs/@guardian/design-tokens/vendor/tokens.js create mode 100644 libs/@guardian/design-tokens/vendor/variables.css diff --git a/libs/@guardian/design-tokens/package.json b/libs/@guardian/design-tokens/package.json index c2ff5cb2d..539c501f8 100644 --- a/libs/@guardian/design-tokens/package.json +++ b/libs/@guardian/design-tokens/package.json @@ -3,12 +3,12 @@ "version": "0.1.0--pre.0", "private": true, "type": "module", - "main": "./dist/tokens.js", + "main": "./vendor/tokens.js", "files": [ - "dist" + "vendor" ], "scripts": { - "build": "co build && prettier --write dist/**", + "build": "co build && prettier --write vendor/**", "fix": "pnpm lint --fix", "lint": "eslint --cache ." }, @@ -29,7 +29,7 @@ "{projectRoot}/package.json" ], "outputs": [ - "{projectRoot}/dist" + "{projectRoot}/vendor" ] }, "lint": { diff --git a/libs/@guardian/design-tokens/tokens.json b/libs/@guardian/design-tokens/src/tokens.json similarity index 100% rename from libs/@guardian/design-tokens/tokens.json rename to libs/@guardian/design-tokens/src/tokens.json diff --git a/libs/@guardian/design-tokens/tokens.config.js b/libs/@guardian/design-tokens/tokens.config.js index ef5af5620..47599267e 100644 --- a/libs/@guardian/design-tokens/tokens.config.js +++ b/libs/@guardian/design-tokens/tokens.config.js @@ -24,8 +24,8 @@ const pxToRem = (token) => { /** @type {import('@cobalt-ui/core').Config} */ export default { - tokens: 'tokens.json', - outDir: './dist', + tokens: 'src/tokens.json', + outDir: './vendor', plugins: [ pluginCSS({ p3: false, diff --git a/libs/@guardian/design-tokens/vendor/tokens.d.ts b/libs/@guardian/design-tokens/vendor/tokens.d.ts new file mode 100644 index 000000000..add8dd002 --- /dev/null +++ b/libs/@guardian/design-tokens/vendor/tokens.d.ts @@ -0,0 +1,1678 @@ +/** + * Design Tokens + * Autogenerated from tokens.json. + * DO NOT EDIT! + */ + +export declare const breakpoint: { + readonly desktop: '980px'; + readonly leftCol: '1140px'; + readonly mobile: '320px'; + readonly mobileLandscape: '480px'; + readonly mobileMedium: '375px'; + readonly phablet: '660px'; + readonly tablet: '740px'; + readonly wide: '1300px'; +}; +export declare const height: { + readonly ctaMedium: '44px'; + readonly ctaSmall: '36px'; + readonly ctaXSmall: '24px'; + readonly iconMedium: '30px'; + readonly iconSmall: '26px'; + readonly iconXSmall: '20px'; + readonly inputMedium: '44px'; + readonly inputXSmall: '24px'; +}; +export declare const palette: { + readonly brand: { + readonly '100': '#001536'; + readonly '300': '#041F4A'; + readonly '400': '#052962'; + readonly '500': '#0077B6'; + readonly '600': '#506991'; + readonly '800': '#C1D8FC'; + }; + readonly brandAlt: { + readonly '200': '#F3C100'; + readonly '300': '#FFD900'; + readonly '400': '#FFE500'; + }; + readonly culture: { + readonly '50': '#2B2625'; + readonly '100': '#3E3323'; + readonly '200': '#574835'; + readonly '300': '#6B5840'; + readonly '350': '#866D50'; + readonly '400': '#866D50'; + readonly '450': '#A1845C'; + readonly '500': '#EACCA0'; + readonly '600': '#E7D4B9'; + readonly '700': '#EFE8DD'; + readonly '800': '#FBF6EF'; + }; + readonly error: { + readonly '400': '#C70000'; + readonly '500': '#FF9081'; + }; + readonly focus: { + readonly '400': '#0077B6'; + }; + readonly labs: { + readonly '200': '#0C7A73'; + readonly '300': '#65A897'; + readonly '400': '#69D1CA'; + }; + readonly lifestyle: { + readonly '100': '#510043'; + readonly '200': '#650054'; + readonly '300': '#7D0068'; + readonly '400': '#BB3B80'; + readonly '450': '#F37ABC'; + readonly '500': '#FFABDB'; + readonly '600': '#FEC8D3'; + readonly '800': '#FEEEF7'; + }; + readonly neutral: { + readonly '0': '#000000'; + readonly '7': '#121212'; + readonly '10': '#1A1A1A'; + readonly '20': '#333333'; + readonly '38': '#606060'; + readonly '46': '#707070'; + readonly '60': '#999999'; + readonly '86': '#DCDCDC'; + readonly '93': '#EDEDED'; + readonly '97': '#F6F6F6'; + readonly '100': '#FFFFFF'; + }; + readonly news: { + readonly '100': '#660505'; + readonly '200': '#8B0000'; + readonly '300': '#AB0613'; + readonly '400': '#C70000'; + readonly '500': '#FF5943'; + readonly '550': '#FF9081'; + readonly '600': '#FFBAC8'; + readonly '800': '#FFF4F2'; + }; + readonly opinion: { + readonly '100': '#672005'; + readonly '200': '#8D2700'; + readonly '300': '#C74600'; + readonly '400': '#C74600'; + readonly '450': '#E05E00'; + readonly '500': '#FF7F0F'; + readonly '550': '#FF9941'; + readonly '600': '#F9B376'; + readonly '800': '#FEF9F5'; + }; + readonly specialReport: { + readonly '100': '#222527'; + readonly '200': '#303538'; + readonly '300': '#3F464A'; + readonly '400': '#595C5F'; + readonly '450': '#9DA0A2'; + readonly '500': '#ABC2C9'; + readonly '700': '#E4E5E8'; + readonly '800': '#EFF1F2'; + }; + readonly specialReportAlt: { + readonly '100': '#2B2B2A'; + readonly '200': '#B9300A'; + readonly '300': '#FF663D'; + readonly '700': '#EBE6E1'; + readonly '800': '#F5F0EB'; + }; + readonly sport: { + readonly '100': '#003C60'; + readonly '200': '#004E7C'; + readonly '300': '#005689'; + readonly '400': '#0077B6'; + readonly '500': '#00B2FF'; + readonly '600': '#90DCFF'; + readonly '800': '#F1F8FC'; + }; + readonly success: { + readonly '400': '#22874D'; + readonly '500': '#58D08B'; + }; +}; +export declare const size: { + readonly icon: { + readonly medium: '30px'; + readonly small: '26px'; + readonly xSmall: '20px'; + }; + readonly medium: '44px'; + readonly small: '36px'; + readonly xSmall: '24px'; +}; +export declare const space: { + readonly '0': '2px'; + readonly '1': '4px'; + readonly '2': '8px'; + readonly '3': '12px'; + readonly '4': '16px'; + readonly '5': '20px'; + readonly '6': '24px'; + readonly '8': '32px'; + readonly '9': '36px'; + readonly '10': '40px'; + readonly '12': '48px'; + readonly '14': '56px'; + readonly '16': '64px'; + readonly '18': '72px'; + readonly '24': '96px'; +}; +export declare const typography: { + readonly body: { + readonly medium: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.4; + readonly fontWeight: 400; + }; + readonly small: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.4; + readonly fontWeight: 400; + }; + readonly xSmall: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.4; + readonly fontWeight: 400; + }; + }; + readonly fontFamily: { + readonly body: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly headline: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly textSans: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly titlepiece: readonly [ + 'GT Guardian Titlepiece', + 'Georgia', + 'serif', + ]; + }; + readonly fontSize: { + readonly '12': '12px'; + readonly '14': '14px'; + readonly '15': '15px'; + readonly '17': '17px'; + readonly '20': '20px'; + readonly '24': '24px'; + readonly '28': '28px'; + readonly '34': '34px'; + readonly '42': '42px'; + readonly '50': '50px'; + readonly '70': '70px'; + }; + readonly fontWeight: { + readonly bold: 700; + readonly light: 300; + readonly medium: 500; + readonly regular: 400; + }; + readonly headline: { + readonly large: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + }; + readonly medium: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + }; + readonly small: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + }; + readonly xLarge: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + }; + readonly xSmall: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + }; + readonly xxSmall: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + }; + readonly xxxSmall: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + }; + }; + readonly lineHeight: { + readonly loose: 1.4; + readonly regular: 1.3; + readonly tight: 1.15; + }; + readonly textDecorationThicknessForFontSize: { + readonly '12': '2px'; + readonly '14': '2px'; + readonly '15': '2px'; + readonly '17': '2px'; + readonly '20': '3px'; + readonly '24': '3px'; + readonly '28': '3px'; + readonly '34': '4px'; + readonly '42': '5px'; + readonly '50': '6px'; + readonly '70': '6px'; + }; + readonly textSans: { + readonly large: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + readonly medium: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + readonly small: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + readonly xLarge: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + readonly xSmall: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + readonly xxLarge: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + readonly xxSmall: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '12px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + readonly xxxLarge: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + }; + }; + readonly titlepiece: { + readonly large: { + readonly fontFamily: readonly [ + 'GT Guardian Titlepiece', + 'Georgia', + 'serif', + ]; + readonly fontSize: '70px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + }; + readonly medium: { + readonly fontFamily: readonly [ + 'GT Guardian Titlepiece', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + }; + readonly small: { + readonly fontFamily: readonly [ + 'GT Guardian Titlepiece', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + }; + }; +}; +export declare const typographyPresets: { + readonly article15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.4; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly article17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.4; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly articleBold15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.4; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly articleBold17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.4; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly articleBoldItalic15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.4; + readonly fontWeight: 700; + readonly fontStyle: 'italic'; + }; + readonly articleBoldItalic17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.4; + readonly fontWeight: 700; + readonly fontStyle: 'italic'; + }; + readonly articleItalic15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.4; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly articleItalic17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.4; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly headlineBold14: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold17: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold20: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold24: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold28: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold34: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold42: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold50: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineBold70: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '70px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly headlineLight14: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight17: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight20: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight24: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight28: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight34: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight42: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight50: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLight70: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '70px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'normal'; + }; + readonly headlineLightItalic14: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic17: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic20: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic24: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic28: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic34: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic42: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic50: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineLightItalic70: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '70px'; + readonly lineHeight: 1.15; + readonly fontWeight: 300; + readonly fontStyle: 'italic'; + }; + readonly headlineMedium14: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium17: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium20: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium24: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium28: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium34: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium42: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium50: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMedium70: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '70px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'normal'; + }; + readonly headlineMediumItalic14: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic17: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic20: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic24: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic28: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic34: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic42: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic50: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 500; + readonly fontStyle: 'italic'; + }; + readonly headlineMediumItalic70: { + readonly fontFamily: readonly [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '70px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'italic'; + }; + readonly textEgyptian14: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textEgyptian15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textEgyptian17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textEgyptianBold14: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textEgyptianBold15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textEgyptianBold17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textEgyptianBoldItalic14: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'italic'; + }; + readonly textEgyptianBoldItalic15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'italic'; + }; + readonly textEgyptianBoldItalic17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'italic'; + }; + readonly textEgyptianItalic14: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textEgyptianItalic15: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textEgyptianItalic17: { + readonly fontFamily: readonly [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSans12: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '12px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSans14: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSans15: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSans17: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSans20: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSans24: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSans28: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSans34: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'normal'; + }; + readonly textSansBold12: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '12px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansBold14: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansBold15: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansBold17: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansBold20: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansBold24: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansBold28: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansBold34: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.3; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly textSansItalic12: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '12px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSansItalic14: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '14px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSansItalic15: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '15px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSansItalic17: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '17px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSansItalic20: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '20px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSansItalic24: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '24px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSansItalic28: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '28px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly textSansItalic34: { + readonly fontFamily: readonly [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ]; + readonly fontSize: '34px'; + readonly lineHeight: 1.3; + readonly fontWeight: 400; + readonly fontStyle: 'italic'; + }; + readonly titlepiece42: { + readonly fontFamily: readonly [ + 'GT Guardian Titlepiece', + 'Georgia', + 'serif', + ]; + readonly fontSize: '42px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly titlepiece50: { + readonly fontFamily: readonly [ + 'GT Guardian Titlepiece', + 'Georgia', + 'serif', + ]; + readonly fontSize: '50px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; + readonly titlepiece70: { + readonly fontFamily: readonly [ + 'GT Guardian Titlepiece', + 'Georgia', + 'serif', + ]; + readonly fontSize: '70px'; + readonly lineHeight: 1.15; + readonly fontWeight: 700; + readonly fontStyle: 'normal'; + }; +}; +export declare const width: { + readonly ctaMedium: '44px'; + readonly ctaSmall: '36px'; + readonly ctaXSmall: '24px'; + readonly iconMedium: '30px'; + readonly iconSmall: '26px'; + readonly iconXSmall: '20px'; + readonly inputXSmall: '24px'; +}; diff --git a/libs/@guardian/design-tokens/vendor/tokens.js b/libs/@guardian/design-tokens/vendor/tokens.js new file mode 100644 index 000000000..c4445bf26 --- /dev/null +++ b/libs/@guardian/design-tokens/vendor/tokens.js @@ -0,0 +1,1650 @@ +/** + * Design Tokens + * Autogenerated from tokens.json. + * DO NOT EDIT! + */ + +export const breakpoint = { + desktop: '980px', + leftCol: '1140px', + mobile: '320px', + mobileLandscape: '480px', + mobileMedium: '375px', + phablet: '660px', + tablet: '740px', + wide: '1300px', +}; +export const height = { + ctaMedium: '44px', + ctaSmall: '36px', + ctaXSmall: '24px', + iconMedium: '30px', + iconSmall: '26px', + iconXSmall: '20px', + inputMedium: '44px', + inputXSmall: '24px', +}; +export const palette = { + brand: { + 100: '#001536', + 300: '#041F4A', + 400: '#052962', + 500: '#0077B6', + 600: '#506991', + 800: '#C1D8FC', + }, + brandAlt: { + 200: '#F3C100', + 300: '#FFD900', + 400: '#FFE500', + }, + culture: { + 50: '#2B2625', + 100: '#3E3323', + 200: '#574835', + 300: '#6B5840', + 350: '#866D50', + 400: '#866D50', + 450: '#A1845C', + 500: '#EACCA0', + 600: '#E7D4B9', + 700: '#EFE8DD', + 800: '#FBF6EF', + }, + error: { + 400: '#C70000', + 500: '#FF9081', + }, + focus: { + 400: '#0077B6', + }, + labs: { + 200: '#0C7A73', + 300: '#65A897', + 400: '#69D1CA', + }, + lifestyle: { + 100: '#510043', + 200: '#650054', + 300: '#7D0068', + 400: '#BB3B80', + 450: '#F37ABC', + 500: '#FFABDB', + 600: '#FEC8D3', + 800: '#FEEEF7', + }, + neutral: { + 0: '#000000', + 7: '#121212', + 10: '#1A1A1A', + 20: '#333333', + 38: '#606060', + 46: '#707070', + 60: '#999999', + 86: '#DCDCDC', + 93: '#EDEDED', + 97: '#F6F6F6', + 100: '#FFFFFF', + }, + news: { + 100: '#660505', + 200: '#8B0000', + 300: '#AB0613', + 400: '#C70000', + 500: '#FF5943', + 550: '#FF9081', + 600: '#FFBAC8', + 800: '#FFF4F2', + }, + opinion: { + 100: '#672005', + 200: '#8D2700', + 300: '#C74600', + 400: '#C74600', + 450: '#E05E00', + 500: '#FF7F0F', + 550: '#FF9941', + 600: '#F9B376', + 800: '#FEF9F5', + }, + specialReport: { + 100: '#222527', + 200: '#303538', + 300: '#3F464A', + 400: '#595C5F', + 450: '#9DA0A2', + 500: '#ABC2C9', + 700: '#E4E5E8', + 800: '#EFF1F2', + }, + specialReportAlt: { + 100: '#2B2B2A', + 200: '#B9300A', + 300: '#FF663D', + 700: '#EBE6E1', + 800: '#F5F0EB', + }, + sport: { + 100: '#003C60', + 200: '#004E7C', + 300: '#005689', + 400: '#0077B6', + 500: '#00B2FF', + 600: '#90DCFF', + 800: '#F1F8FC', + }, + success: { + 400: '#22874D', + 500: '#58D08B', + }, +}; +export const size = { + icon: { + medium: '30px', + small: '26px', + xSmall: '20px', + }, + medium: '44px', + small: '36px', + xSmall: '24px', +}; +export const space = { + 0: '2px', + 1: '4px', + 2: '8px', + 3: '12px', + 4: '16px', + 5: '20px', + 6: '24px', + 8: '32px', + 9: '36px', + 10: '40px', + 12: '48px', + 14: '56px', + 16: '64px', + 18: '72px', + 24: '96px', +}; +export const typography = { + body: { + medium: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.4, + fontWeight: 400, + }, + small: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.4, + fontWeight: 400, + }, + xSmall: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.4, + fontWeight: 400, + }, + }, + fontFamily: { + body: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + headline: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + textSans: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + titlepiece: ['GT Guardian Titlepiece', 'Georgia', 'serif'], + }, + fontSize: { + 12: '12px', + 14: '14px', + 15: '15px', + 17: '17px', + 20: '20px', + 24: '24px', + 28: '28px', + 34: '34px', + 42: '42px', + 50: '50px', + 70: '70px', + }, + fontWeight: { + bold: 700, + light: 300, + medium: 500, + regular: 400, + }, + headline: { + large: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 500, + }, + medium: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '34px', + lineHeight: 1.15, + fontWeight: 500, + }, + small: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '28px', + lineHeight: 1.15, + fontWeight: 500, + }, + xLarge: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 500, + }, + xSmall: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '24px', + lineHeight: 1.15, + fontWeight: 500, + }, + xxSmall: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '20px', + lineHeight: 1.15, + fontWeight: 500, + }, + xxxSmall: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.15, + fontWeight: 500, + }, + }, + lineHeight: { + loose: 1.4, + regular: 1.3, + tight: 1.15, + }, + textDecorationThicknessForFontSize: { + 12: '2px', + 14: '2px', + 15: '2px', + 17: '2px', + 20: '3px', + 24: '3px', + 28: '3px', + 34: '4px', + 42: '5px', + 50: '6px', + 70: '6px', + }, + textSans: { + large: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '20px', + lineHeight: 1.3, + fontWeight: 400, + }, + medium: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 400, + }, + small: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 400, + }, + xLarge: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '24px', + lineHeight: 1.3, + fontWeight: 400, + }, + xSmall: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 400, + }, + xxLarge: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '28px', + lineHeight: 1.3, + fontWeight: 400, + }, + xxSmall: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '12px', + lineHeight: 1.3, + fontWeight: 400, + }, + xxxLarge: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '34px', + lineHeight: 1.3, + fontWeight: 400, + }, + }, + titlepiece: { + large: { + fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], + fontSize: '70px', + lineHeight: 1.15, + fontWeight: 700, + }, + medium: { + fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 700, + }, + small: { + fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 700, + }, + }, +}; +export const typographyPresets = { + article15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.4, + fontWeight: 400, + fontStyle: 'normal', + }, + article17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.4, + fontWeight: 400, + fontStyle: 'normal', + }, + articleBold15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.4, + fontWeight: 700, + fontStyle: 'normal', + }, + articleBold17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.4, + fontWeight: 700, + fontStyle: 'normal', + }, + articleBoldItalic15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.4, + fontWeight: 700, + fontStyle: 'italic', + }, + articleBoldItalic17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.4, + fontWeight: 700, + fontStyle: 'italic', + }, + articleItalic15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.4, + fontWeight: 400, + fontStyle: 'italic', + }, + articleItalic17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.4, + fontWeight: 400, + fontStyle: 'italic', + }, + headlineBold14: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold17: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold20: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '20px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold24: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '24px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold28: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '28px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold34: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '34px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold42: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold50: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineBold70: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '70px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + headlineLight14: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight17: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight20: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '20px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight24: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '24px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight28: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '28px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight34: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '34px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight42: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight50: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLight70: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '70px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'normal', + }, + headlineLightItalic14: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic17: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic20: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '20px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic24: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '24px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic28: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '28px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic34: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '34px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic42: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic50: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineLightItalic70: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '70px', + lineHeight: 1.15, + fontWeight: 300, + fontStyle: 'italic', + }, + headlineMedium14: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium17: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium20: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '20px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium24: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '24px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium28: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '28px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium34: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '34px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium42: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium50: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMedium70: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '70px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'normal', + }, + headlineMediumItalic14: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic17: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic20: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '20px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic24: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '24px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic28: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '28px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic34: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '34px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic42: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic50: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 500, + fontStyle: 'italic', + }, + headlineMediumItalic70: { + fontFamily: [ + 'GH Guardian Headline', + 'Guardian Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '70px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'italic', + }, + textEgyptian14: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textEgyptian15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textEgyptian17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textEgyptianBold14: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textEgyptianBold15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textEgyptianBold17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textEgyptianBoldItalic14: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'italic', + }, + textEgyptianBoldItalic15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'italic', + }, + textEgyptianBoldItalic17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'italic', + }, + textEgyptianItalic14: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textEgyptianItalic15: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textEgyptianItalic17: { + fontFamily: [ + 'GuardianTextEgyptian', + 'Guardian Text Egyptian Web', + 'Georgia', + 'serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSans12: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '12px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSans14: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSans15: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSans17: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSans20: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '20px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSans24: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '24px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSans28: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '28px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSans34: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '34px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'normal', + }, + textSansBold12: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '12px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansBold14: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansBold15: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansBold17: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansBold20: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '20px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansBold24: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '24px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansBold28: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '28px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansBold34: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '34px', + lineHeight: 1.3, + fontWeight: 700, + fontStyle: 'normal', + }, + textSansItalic12: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '12px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSansItalic14: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '14px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSansItalic15: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '15px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSansItalic17: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '17px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSansItalic20: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '20px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSansItalic24: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '24px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSansItalic28: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '28px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + textSansItalic34: { + fontFamily: [ + 'GuardianTextSans', + 'Guardian Text Sans Web', + 'Helvetica Neue', + 'Helvetica', + 'Arial', + 'Lucida Grande', + 'sans-serif', + ], + fontSize: '34px', + lineHeight: 1.3, + fontWeight: 400, + fontStyle: 'italic', + }, + titlepiece42: { + fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], + fontSize: '42px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + titlepiece50: { + fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], + fontSize: '50px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, + titlepiece70: { + fontFamily: ['GT Guardian Titlepiece', 'Georgia', 'serif'], + fontSize: '70px', + lineHeight: 1.15, + fontWeight: 700, + fontStyle: 'normal', + }, +}; +export const width = { + ctaMedium: '44px', + ctaSmall: '36px', + ctaXSmall: '24px', + iconMedium: '30px', + iconSmall: '26px', + iconXSmall: '20px', + inputXSmall: '24px', +}; diff --git a/libs/@guardian/design-tokens/vendor/variables.css b/libs/@guardian/design-tokens/vendor/variables.css new file mode 100644 index 000000000..fa68712ae --- /dev/null +++ b/libs/@guardian/design-tokens/vendor/variables.css @@ -0,0 +1,1622 @@ +/** + * Design Tokens + * Autogenerated from tokens.json. + * DO NOT EDIT! + */ + +:root { + --source-breakpoint-desktop: 61.25rem; + --source-breakpoint-leftCol: 71.25rem; + --source-breakpoint-mobile: 20rem; + --source-breakpoint-mobileLandscape: 30rem; + --source-breakpoint-mobileMedium: 23.4375rem; + --source-breakpoint-phablet: 41.25rem; + --source-breakpoint-tablet: 46.25rem; + --source-breakpoint-wide: 81.25rem; + --source-height-ctaMedium: 2.75rem; + --source-height-ctaSmall: 2.25rem; + --source-height-ctaXSmall: 1.5rem; + --source-height-iconMedium: 1.875rem; + --source-height-iconSmall: 1.625rem; + --source-height-iconXSmall: 1.25rem; + --source-height-inputMedium: 2.75rem; + --source-height-inputXSmall: 1.5rem; + --source-palette-brand-100: #001536; + --source-palette-brand-300: #041f4a; + --source-palette-brand-400: #052962; + --source-palette-brand-500: #0077b6; + --source-palette-brand-600: #506991; + --source-palette-brand-800: #c1d8fc; + --source-palette-brandAlt-200: #f3c100; + --source-palette-brandAlt-300: #ffd900; + --source-palette-brandAlt-400: #ffe500; + --source-palette-culture-50: #2b2625; + --source-palette-culture-100: #3e3323; + --source-palette-culture-200: #574835; + --source-palette-culture-300: #6b5840; + --source-palette-culture-350: #866d50; + --source-palette-culture-400: #866d50; + --source-palette-culture-450: #a1845c; + --source-palette-culture-500: #eacca0; + --source-palette-culture-600: #e7d4b9; + --source-palette-culture-700: #efe8dd; + --source-palette-culture-800: #fbf6ef; + --source-palette-error-400: #c70000; + --source-palette-error-500: #ff9081; + --source-palette-focus-400: #0077b6; + --source-palette-labs-200: #0c7a73; + --source-palette-labs-300: #65a897; + --source-palette-labs-400: #69d1ca; + --source-palette-lifestyle-100: #510043; + --source-palette-lifestyle-200: #650054; + --source-palette-lifestyle-300: #7d0068; + --source-palette-lifestyle-400: #bb3b80; + --source-palette-lifestyle-450: #f37abc; + --source-palette-lifestyle-500: #ffabdb; + --source-palette-lifestyle-600: #fec8d3; + --source-palette-lifestyle-800: #feeef7; + --source-palette-neutral-0: #000000; + --source-palette-neutral-7: #121212; + --source-palette-neutral-10: #1a1a1a; + --source-palette-neutral-20: #333333; + --source-palette-neutral-38: #606060; + --source-palette-neutral-46: #707070; + --source-palette-neutral-60: #999999; + --source-palette-neutral-86: #dcdcdc; + --source-palette-neutral-93: #ededed; + --source-palette-neutral-97: #f6f6f6; + --source-palette-neutral-100: #ffffff; + --source-palette-news-100: #660505; + --source-palette-news-200: #8b0000; + --source-palette-news-300: #ab0613; + --source-palette-news-400: #c70000; + --source-palette-news-500: #ff5943; + --source-palette-news-550: #ff9081; + --source-palette-news-600: #ffbac8; + --source-palette-news-800: #fff4f2; + --source-palette-opinion-100: #672005; + --source-palette-opinion-200: #8d2700; + --source-palette-opinion-300: #c74600; + --source-palette-opinion-400: #c74600; + --source-palette-opinion-450: #e05e00; + --source-palette-opinion-500: #ff7f0f; + --source-palette-opinion-550: #ff9941; + --source-palette-opinion-600: #f9b376; + --source-palette-opinion-800: #fef9f5; + --source-palette-specialReport-100: #222527; + --source-palette-specialReport-200: #303538; + --source-palette-specialReport-300: #3f464a; + --source-palette-specialReport-400: #595c5f; + --source-palette-specialReport-450: #9da0a2; + --source-palette-specialReport-500: #abc2c9; + --source-palette-specialReport-700: #e4e5e8; + --source-palette-specialReport-800: #eff1f2; + --source-palette-specialReportAlt-100: #2b2b2a; + --source-palette-specialReportAlt-200: #b9300a; + --source-palette-specialReportAlt-300: #ff663d; + --source-palette-specialReportAlt-700: #ebe6e1; + --source-palette-specialReportAlt-800: #f5f0eb; + --source-palette-sport-100: #003c60; + --source-palette-sport-200: #004e7c; + --source-palette-sport-300: #005689; + --source-palette-sport-400: #0077b6; + --source-palette-sport-500: #00b2ff; + --source-palette-sport-600: #90dcff; + --source-palette-sport-800: #f1f8fc; + --source-palette-success-400: #22874d; + --source-palette-success-500: #58d08b; + --source-size-icon-medium: 1.875rem; + --source-size-icon-small: 1.625rem; + --source-size-icon-xSmall: 1.25rem; + --source-size-medium: 2.75rem; + --source-size-small: 2.25rem; + --source-size-xSmall: 1.5rem; + --source-space-0: 0.125rem; + --source-space-1: 0.25rem; + --source-space-2: 0.5rem; + --source-space-3: 0.75rem; + --source-space-4: 1rem; + --source-space-5: 1.25rem; + --source-space-6: 1.5rem; + --source-space-8: 2rem; + --source-space-9: 2.25rem; + --source-space-10: 2.5rem; + --source-space-12: 3rem; + --source-space-14: 3.5rem; + --source-space-16: 4rem; + --source-space-18: 4.5rem; + --source-space-24: 6rem; + --source-typography-body-medium-font-family: var( + --source-typography-fontFamily-body + ); + --source-typography-body-medium-font-size: var( + --source-typography-fontSize-17 + ); + --source-typography-body-medium-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-body-medium-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typography-body-small-font-family: var( + --source-typography-fontFamily-body + ); + --source-typography-body-small-font-size: var( + --source-typography-fontSize-15 + ); + --source-typography-body-small-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-body-small-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typography-body-xSmall-font-family: var( + --source-typography-fontFamily-body + ); + --source-typography-body-xSmall-font-size: var( + --source-typography-fontSize-14 + ); + --source-typography-body-xSmall-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-body-xSmall-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typography-fontFamily-body: GuardianTextEgyptian, + 'Guardian Text Egyptian Web', Georgia, serif; + --source-typography-fontFamily-headline: 'GH Guardian Headline', + 'Guardian Egyptian Web', Georgia, serif; + --source-typography-fontFamily-textSans: GuardianTextSans, + 'Guardian Text Sans Web', 'Helvetica Neue', Helvetica, Arial, + 'Lucida Grande', sans-serif; + --source-typography-fontFamily-titlepiece: 'GT Guardian Titlepiece', Georgia, + serif; + --source-typography-fontSize-12: 0.75rem; + --source-typography-fontSize-14: 0.875rem; + --source-typography-fontSize-15: 0.9375rem; + --source-typography-fontSize-17: 1.0625rem; + --source-typography-fontSize-20: 1.25rem; + --source-typography-fontSize-24: 1.5rem; + --source-typography-fontSize-28: 1.75rem; + --source-typography-fontSize-34: 2.125rem; + --source-typography-fontSize-42: 2.625rem; + --source-typography-fontSize-50: 3.125rem; + --source-typography-fontSize-70: 4.375rem; + --source-typography-fontWeight-bold: 700; + --source-typography-fontWeight-light: 300; + --source-typography-fontWeight-medium: 500; + --source-typography-fontWeight-regular: 400; + --source-typography-headline-large-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typography-headline-large-font-size: var( + --source-typography-fontSize-42 + ); + --source-typography-headline-large-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typography-headline-large-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-headline-medium-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typography-headline-medium-font-size: var( + --source-typography-fontSize-34 + ); + --source-typography-headline-medium-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typography-headline-medium-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-headline-small-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typography-headline-small-font-size: var( + --source-typography-fontSize-28 + ); + --source-typography-headline-small-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typography-headline-small-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-headline-xLarge-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typography-headline-xLarge-font-size: var( + --source-typography-fontSize-50 + ); + --source-typography-headline-xLarge-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typography-headline-xLarge-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-headline-xSmall-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typography-headline-xSmall-font-size: var( + --source-typography-fontSize-24 + ); + --source-typography-headline-xSmall-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typography-headline-xSmall-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-headline-xxSmall-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typography-headline-xxSmall-font-size: var( + --source-typography-fontSize-20 + ); + --source-typography-headline-xxSmall-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typography-headline-xxSmall-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-headline-xxxSmall-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typography-headline-xxxSmall-font-size: var( + --source-typography-fontSize-17 + ); + --source-typography-headline-xxxSmall-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typography-headline-xxxSmall-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-lineHeight-loose: 1.4; + --source-typography-lineHeight-regular: 1.3; + --source-typography-lineHeight-tight: 1.15; + --source-typography-textDecorationThicknessForFontSize-12: 0.125rem; + --source-typography-textDecorationThicknessForFontSize-14: 0.125rem; + --source-typography-textDecorationThicknessForFontSize-15: 0.125rem; + --source-typography-textDecorationThicknessForFontSize-17: 0.125rem; + --source-typography-textDecorationThicknessForFontSize-20: 0.1875rem; + --source-typography-textDecorationThicknessForFontSize-24: 0.1875rem; + --source-typography-textDecorationThicknessForFontSize-28: 0.1875rem; + --source-typography-textDecorationThicknessForFontSize-34: 0.25rem; + --source-typography-textDecorationThicknessForFontSize-42: 0.3125rem; + --source-typography-textDecorationThicknessForFontSize-50: 0.375rem; + --source-typography-textDecorationThicknessForFontSize-70: 0.375rem; + --source-typography-textSans-large-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-large-font-size: var( + --source-typography-fontSize-20 + ); + --source-typography-textSans-large-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-large-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-textSans-medium-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-medium-font-size: var( + --source-typography-fontSize-17 + ); + --source-typography-textSans-medium-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-medium-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-textSans-small-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-small-font-size: var( + --source-typography-fontSize-15 + ); + --source-typography-textSans-small-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-small-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-textSans-xLarge-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-xLarge-font-size: var( + --source-typography-fontSize-24 + ); + --source-typography-textSans-xLarge-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-xLarge-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-textSans-xSmall-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-xSmall-font-size: var( + --source-typography-fontSize-14 + ); + --source-typography-textSans-xSmall-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-xSmall-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-textSans-xxLarge-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-xxLarge-font-size: var( + --source-typography-fontSize-28 + ); + --source-typography-textSans-xxLarge-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-xxLarge-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-textSans-xxSmall-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-xxSmall-font-size: var( + --source-typography-fontSize-12 + ); + --source-typography-textSans-xxSmall-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-xxSmall-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-textSans-xxxLarge-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typography-textSans-xxxLarge-font-size: var( + --source-typography-fontSize-34 + ); + --source-typography-textSans-xxxLarge-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typography-textSans-xxxLarge-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typography-titlepiece-large-font-family: var( + --source-typography-fontFamily-titlepiece + ); + --source-typography-titlepiece-large-font-size: var( + --source-typography-fontSize-70 + ); + --source-typography-titlepiece-large-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typography-titlepiece-large-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-titlepiece-medium-font-family: var( + --source-typography-fontFamily-titlepiece + ); + --source-typography-titlepiece-medium-font-size: var( + --source-typography-fontSize-50 + ); + --source-typography-titlepiece-medium-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typography-titlepiece-medium-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typography-titlepiece-small-font-family: var( + --source-typography-fontFamily-titlepiece + ); + --source-typography-titlepiece-small-font-size: var( + --source-typography-fontSize-42 + ); + --source-typography-titlepiece-small-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typography-titlepiece-small-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-article15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-article15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-article15-font-style: normal; + --source-typographyPresets-article15-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-article15-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-article17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-article17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-article17-font-style: normal; + --source-typographyPresets-article17-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-article17-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-articleBold15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-articleBold15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-articleBold15-font-style: normal; + --source-typographyPresets-articleBold15-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-articleBold15-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-articleBold17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-articleBold17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-articleBold17-font-style: normal; + --source-typographyPresets-articleBold17-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-articleBold17-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-articleBoldItalic15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-articleBoldItalic15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-articleBoldItalic15-font-style: italic; + --source-typographyPresets-articleBoldItalic15-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-articleBoldItalic15-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-articleBoldItalic17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-articleBoldItalic17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-articleBoldItalic17-font-style: italic; + --source-typographyPresets-articleBoldItalic17-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-articleBoldItalic17-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-articleItalic15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-articleItalic15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-articleItalic15-font-style: italic; + --source-typographyPresets-articleItalic15-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-articleItalic15-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-articleItalic17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-articleItalic17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-articleItalic17-font-style: italic; + --source-typographyPresets-articleItalic17-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-articleItalic17-line-height: var( + --source-typography-lineHeight-loose + ); + --source-typographyPresets-headlineBold14-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-headlineBold14-font-style: normal; + --source-typographyPresets-headlineBold14-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold14-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold17-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-headlineBold17-font-style: normal; + --source-typographyPresets-headlineBold17-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold17-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold20-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-headlineBold20-font-style: normal; + --source-typographyPresets-headlineBold20-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold20-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold24-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-headlineBold24-font-style: normal; + --source-typographyPresets-headlineBold24-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold24-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold28-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-headlineBold28-font-style: normal; + --source-typographyPresets-headlineBold28-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold28-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold34-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-headlineBold34-font-style: normal; + --source-typographyPresets-headlineBold34-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold34-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold42-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold42-font-size: var( + --source-typography-fontSize-42 + ); + --source-typographyPresets-headlineBold42-font-style: normal; + --source-typographyPresets-headlineBold42-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold42-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold50-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold50-font-size: var( + --source-typography-fontSize-50 + ); + --source-typographyPresets-headlineBold50-font-style: normal; + --source-typographyPresets-headlineBold50-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold50-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineBold70-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineBold70-font-size: var( + --source-typography-fontSize-70 + ); + --source-typographyPresets-headlineBold70-font-style: normal; + --source-typographyPresets-headlineBold70-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineBold70-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight14-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-headlineLight14-font-style: normal; + --source-typographyPresets-headlineLight14-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight14-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight17-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-headlineLight17-font-style: normal; + --source-typographyPresets-headlineLight17-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight17-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight20-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-headlineLight20-font-style: normal; + --source-typographyPresets-headlineLight20-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight20-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight24-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-headlineLight24-font-style: normal; + --source-typographyPresets-headlineLight24-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight24-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight28-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-headlineLight28-font-style: normal; + --source-typographyPresets-headlineLight28-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight28-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight34-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-headlineLight34-font-style: normal; + --source-typographyPresets-headlineLight34-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight34-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight42-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight42-font-size: var( + --source-typography-fontSize-42 + ); + --source-typographyPresets-headlineLight42-font-style: normal; + --source-typographyPresets-headlineLight42-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight42-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight50-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight50-font-size: var( + --source-typography-fontSize-50 + ); + --source-typographyPresets-headlineLight50-font-style: normal; + --source-typographyPresets-headlineLight50-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight50-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLight70-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLight70-font-size: var( + --source-typography-fontSize-70 + ); + --source-typographyPresets-headlineLight70-font-style: normal; + --source-typographyPresets-headlineLight70-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLight70-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic14-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-headlineLightItalic14-font-style: italic; + --source-typographyPresets-headlineLightItalic14-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic14-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic17-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-headlineLightItalic17-font-style: italic; + --source-typographyPresets-headlineLightItalic17-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic17-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic20-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-headlineLightItalic20-font-style: italic; + --source-typographyPresets-headlineLightItalic20-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic20-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic24-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-headlineLightItalic24-font-style: italic; + --source-typographyPresets-headlineLightItalic24-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic24-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic28-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-headlineLightItalic28-font-style: italic; + --source-typographyPresets-headlineLightItalic28-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic28-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic34-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-headlineLightItalic34-font-style: italic; + --source-typographyPresets-headlineLightItalic34-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic34-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic42-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic42-font-size: var( + --source-typography-fontSize-42 + ); + --source-typographyPresets-headlineLightItalic42-font-style: italic; + --source-typographyPresets-headlineLightItalic42-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic42-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic50-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic50-font-size: var( + --source-typography-fontSize-50 + ); + --source-typographyPresets-headlineLightItalic50-font-style: italic; + --source-typographyPresets-headlineLightItalic50-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic50-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineLightItalic70-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineLightItalic70-font-size: var( + --source-typography-fontSize-70 + ); + --source-typographyPresets-headlineLightItalic70-font-style: italic; + --source-typographyPresets-headlineLightItalic70-font-weight: var( + --source-typography-fontWeight-light + ); + --source-typographyPresets-headlineLightItalic70-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium14-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-headlineMedium14-font-style: normal; + --source-typographyPresets-headlineMedium14-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium14-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium17-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-headlineMedium17-font-style: normal; + --source-typographyPresets-headlineMedium17-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium17-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium20-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-headlineMedium20-font-style: normal; + --source-typographyPresets-headlineMedium20-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium20-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium24-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-headlineMedium24-font-style: normal; + --source-typographyPresets-headlineMedium24-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium24-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium28-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-headlineMedium28-font-style: normal; + --source-typographyPresets-headlineMedium28-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium28-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium34-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-headlineMedium34-font-style: normal; + --source-typographyPresets-headlineMedium34-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium34-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium42-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium42-font-size: var( + --source-typography-fontSize-42 + ); + --source-typographyPresets-headlineMedium42-font-style: normal; + --source-typographyPresets-headlineMedium42-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium42-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium50-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium50-font-size: var( + --source-typography-fontSize-50 + ); + --source-typographyPresets-headlineMedium50-font-style: normal; + --source-typographyPresets-headlineMedium50-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium50-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMedium70-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMedium70-font-size: var( + --source-typography-fontSize-70 + ); + --source-typographyPresets-headlineMedium70-font-style: normal; + --source-typographyPresets-headlineMedium70-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMedium70-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic14-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-headlineMediumItalic14-font-style: italic; + --source-typographyPresets-headlineMediumItalic14-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic14-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic17-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-headlineMediumItalic17-font-style: italic; + --source-typographyPresets-headlineMediumItalic17-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic17-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic20-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-headlineMediumItalic20-font-style: italic; + --source-typographyPresets-headlineMediumItalic20-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic20-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic24-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-headlineMediumItalic24-font-style: italic; + --source-typographyPresets-headlineMediumItalic24-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic24-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic28-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-headlineMediumItalic28-font-style: italic; + --source-typographyPresets-headlineMediumItalic28-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic28-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic34-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-headlineMediumItalic34-font-style: italic; + --source-typographyPresets-headlineMediumItalic34-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic34-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic42-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic42-font-size: var( + --source-typography-fontSize-42 + ); + --source-typographyPresets-headlineMediumItalic42-font-style: italic; + --source-typographyPresets-headlineMediumItalic42-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic42-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic50-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic50-font-size: var( + --source-typography-fontSize-50 + ); + --source-typographyPresets-headlineMediumItalic50-font-style: italic; + --source-typographyPresets-headlineMediumItalic50-font-weight: var( + --source-typography-fontWeight-medium + ); + --source-typographyPresets-headlineMediumItalic50-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-headlineMediumItalic70-font-family: var( + --source-typography-fontFamily-headline + ); + --source-typographyPresets-headlineMediumItalic70-font-size: var( + --source-typography-fontSize-70 + ); + --source-typographyPresets-headlineMediumItalic70-font-style: italic; + --source-typographyPresets-headlineMediumItalic70-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-headlineMediumItalic70-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-textEgyptian14-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptian14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-textEgyptian14-font-style: normal; + --source-typographyPresets-textEgyptian14-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textEgyptian14-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptian15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptian15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-textEgyptian15-font-style: normal; + --source-typographyPresets-textEgyptian15-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textEgyptian15-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptian17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptian17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-textEgyptian17-font-style: normal; + --source-typographyPresets-textEgyptian17-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textEgyptian17-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianBold14-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianBold14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-textEgyptianBold14-font-style: normal; + --source-typographyPresets-textEgyptianBold14-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textEgyptianBold14-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianBold15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianBold15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-textEgyptianBold15-font-style: normal; + --source-typographyPresets-textEgyptianBold15-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textEgyptianBold15-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianBold17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianBold17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-textEgyptianBold17-font-style: normal; + --source-typographyPresets-textEgyptianBold17-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textEgyptianBold17-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianBoldItalic14-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianBoldItalic14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-textEgyptianBoldItalic14-font-style: italic; + --source-typographyPresets-textEgyptianBoldItalic14-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textEgyptianBoldItalic14-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianBoldItalic15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianBoldItalic15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-textEgyptianBoldItalic15-font-style: italic; + --source-typographyPresets-textEgyptianBoldItalic15-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textEgyptianBoldItalic15-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianBoldItalic17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianBoldItalic17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-textEgyptianBoldItalic17-font-style: italic; + --source-typographyPresets-textEgyptianBoldItalic17-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textEgyptianBoldItalic17-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianItalic14-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianItalic14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-textEgyptianItalic14-font-style: italic; + --source-typographyPresets-textEgyptianItalic14-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textEgyptianItalic14-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianItalic15-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianItalic15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-textEgyptianItalic15-font-style: italic; + --source-typographyPresets-textEgyptianItalic15-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textEgyptianItalic15-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textEgyptianItalic17-font-family: var( + --source-typography-fontFamily-body + ); + --source-typographyPresets-textEgyptianItalic17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-textEgyptianItalic17-font-style: italic; + --source-typographyPresets-textEgyptianItalic17-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textEgyptianItalic17-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans12-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans12-font-size: var( + --source-typography-fontSize-12 + ); + --source-typographyPresets-textSans12-font-style: normal; + --source-typographyPresets-textSans12-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans12-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans14-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-textSans14-font-style: normal; + --source-typographyPresets-textSans14-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans14-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans15-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-textSans15-font-style: normal; + --source-typographyPresets-textSans15-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans15-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans17-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-textSans17-font-style: normal; + --source-typographyPresets-textSans17-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans17-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans20-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-textSans20-font-style: normal; + --source-typographyPresets-textSans20-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans20-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans24-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-textSans24-font-style: normal; + --source-typographyPresets-textSans24-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans24-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans28-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-textSans28-font-style: normal; + --source-typographyPresets-textSans28-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans28-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSans34-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSans34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-textSans34-font-style: normal; + --source-typographyPresets-textSans34-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSans34-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold12-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold12-font-size: var( + --source-typography-fontSize-12 + ); + --source-typographyPresets-textSansBold12-font-style: normal; + --source-typographyPresets-textSansBold12-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold12-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold14-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-textSansBold14-font-style: normal; + --source-typographyPresets-textSansBold14-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold14-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold15-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-textSansBold15-font-style: normal; + --source-typographyPresets-textSansBold15-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold15-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold17-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-textSansBold17-font-style: normal; + --source-typographyPresets-textSansBold17-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold17-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold20-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-textSansBold20-font-style: normal; + --source-typographyPresets-textSansBold20-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold20-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold24-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-textSansBold24-font-style: normal; + --source-typographyPresets-textSansBold24-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold24-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold28-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-textSansBold28-font-style: normal; + --source-typographyPresets-textSansBold28-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold28-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansBold34-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansBold34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-textSansBold34-font-style: normal; + --source-typographyPresets-textSansBold34-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-textSansBold34-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic12-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic12-font-size: var( + --source-typography-fontSize-12 + ); + --source-typographyPresets-textSansItalic12-font-style: italic; + --source-typographyPresets-textSansItalic12-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic12-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic14-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic14-font-size: var( + --source-typography-fontSize-14 + ); + --source-typographyPresets-textSansItalic14-font-style: italic; + --source-typographyPresets-textSansItalic14-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic14-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic15-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic15-font-size: var( + --source-typography-fontSize-15 + ); + --source-typographyPresets-textSansItalic15-font-style: italic; + --source-typographyPresets-textSansItalic15-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic15-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic17-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic17-font-size: var( + --source-typography-fontSize-17 + ); + --source-typographyPresets-textSansItalic17-font-style: italic; + --source-typographyPresets-textSansItalic17-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic17-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic20-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic20-font-size: var( + --source-typography-fontSize-20 + ); + --source-typographyPresets-textSansItalic20-font-style: italic; + --source-typographyPresets-textSansItalic20-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic20-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic24-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic24-font-size: var( + --source-typography-fontSize-24 + ); + --source-typographyPresets-textSansItalic24-font-style: italic; + --source-typographyPresets-textSansItalic24-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic24-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic28-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic28-font-size: var( + --source-typography-fontSize-28 + ); + --source-typographyPresets-textSansItalic28-font-style: italic; + --source-typographyPresets-textSansItalic28-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic28-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-textSansItalic34-font-family: var( + --source-typography-fontFamily-textSans + ); + --source-typographyPresets-textSansItalic34-font-size: var( + --source-typography-fontSize-34 + ); + --source-typographyPresets-textSansItalic34-font-style: italic; + --source-typographyPresets-textSansItalic34-font-weight: var( + --source-typography-fontWeight-regular + ); + --source-typographyPresets-textSansItalic34-line-height: var( + --source-typography-lineHeight-regular + ); + --source-typographyPresets-titlepiece42-font-family: var( + --source-typography-fontFamily-titlepiece + ); + --source-typographyPresets-titlepiece42-font-size: var( + --source-typography-fontSize-42 + ); + --source-typographyPresets-titlepiece42-font-style: normal; + --source-typographyPresets-titlepiece42-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-titlepiece42-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-titlepiece50-font-family: var( + --source-typography-fontFamily-titlepiece + ); + --source-typographyPresets-titlepiece50-font-size: var( + --source-typography-fontSize-50 + ); + --source-typographyPresets-titlepiece50-font-style: normal; + --source-typographyPresets-titlepiece50-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-titlepiece50-line-height: var( + --source-typography-lineHeight-tight + ); + --source-typographyPresets-titlepiece70-font-family: var( + --source-typography-fontFamily-titlepiece + ); + --source-typographyPresets-titlepiece70-font-size: var( + --source-typography-fontSize-70 + ); + --source-typographyPresets-titlepiece70-font-style: normal; + --source-typographyPresets-titlepiece70-font-weight: var( + --source-typography-fontWeight-bold + ); + --source-typographyPresets-titlepiece70-line-height: var( + --source-typography-lineHeight-tight + ); + --source-width-ctaMedium: 2.75rem; + --source-width-ctaSmall: 2.25rem; + --source-width-ctaXSmall: 1.5rem; + --source-width-iconMedium: 1.875rem; + --source-width-iconSmall: 1.625rem; + --source-width-iconXSmall: 1.25rem; + --source-width-inputXSmall: 1.5rem; +} From fb54c6bbe548cf74b733654e9b05da70db76b839 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 12:57:20 +0100 Subject: [PATCH 05/28] order exports from most to least specific `import` and `require` are always exclusive --- libs/@guardian/ab-core/package.json | 8 +++----- libs/@guardian/ab-react/package.json | 8 +++----- libs/@guardian/core-web-vitals/package.json | 8 +++----- .../eslint-plugin-source-foundations/package.json | 8 +++----- .../eslint-plugin-source-react-components/package.json | 8 +++----- libs/@guardian/identity-auth-frontend/package.json | 8 +++----- libs/@guardian/identity-auth/package.json | 8 +++----- libs/@guardian/libs/package.json | 8 +++----- libs/@guardian/newsletter-types/package.json | 8 +++----- libs/@guardian/source-foundations/package.json | 8 +++----- .../package.json | 8 +++----- libs/@guardian/source-react-components/package.json | 8 +++----- 12 files changed, 36 insertions(+), 60 deletions(-) diff --git a/libs/@guardian/ab-core/package.json b/libs/@guardian/ab-core/package.json index 2b32c394f..8b09f646a 100644 --- a/libs/@guardian/ab-core/package.json +++ b/libs/@guardian/ab-core/package.json @@ -7,11 +7,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/ab-react/package.json b/libs/@guardian/ab-react/package.json index 9b12782db..81b1a579d 100644 --- a/libs/@guardian/ab-react/package.json +++ b/libs/@guardian/ab-react/package.json @@ -7,11 +7,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/core-web-vitals/package.json b/libs/@guardian/core-web-vitals/package.json index 09c654461..d552a5085 100644 --- a/libs/@guardian/core-web-vitals/package.json +++ b/libs/@guardian/core-web-vitals/package.json @@ -6,11 +6,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/eslint-plugin-source-foundations/package.json b/libs/@guardian/eslint-plugin-source-foundations/package.json index 24be3843b..6f6a3d267 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/package.json +++ b/libs/@guardian/eslint-plugin-source-foundations/package.json @@ -4,11 +4,9 @@ "description": "ESLint plugin for Guardian projects using the `@guardian/source-foundations` package.", "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/eslint-plugin-source-react-components/package.json b/libs/@guardian/eslint-plugin-source-react-components/package.json index 034178dcf..3ed32e136 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/package.json +++ b/libs/@guardian/eslint-plugin-source-react-components/package.json @@ -4,11 +4,9 @@ "description": "ESLint plugin for Guardian projects using the `@guardian/source-react-components` package.", "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/identity-auth-frontend/package.json b/libs/@guardian/identity-auth-frontend/package.json index b93d6fde8..c3cf23aae 100644 --- a/libs/@guardian/identity-auth-frontend/package.json +++ b/libs/@guardian/identity-auth-frontend/package.json @@ -7,11 +7,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/identity-auth/package.json b/libs/@guardian/identity-auth/package.json index 43136a96e..b09c1d847 100644 --- a/libs/@guardian/identity-auth/package.json +++ b/libs/@guardian/identity-auth/package.json @@ -7,11 +7,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/libs/package.json b/libs/@guardian/libs/package.json index 5d6242625..583d66841 100644 --- a/libs/@guardian/libs/package.json +++ b/libs/@guardian/libs/package.json @@ -6,11 +6,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/newsletter-types/package.json b/libs/@guardian/newsletter-types/package.json index e78f28411..a9beeb391 100644 --- a/libs/@guardian/newsletter-types/package.json +++ b/libs/@guardian/newsletter-types/package.json @@ -6,11 +6,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/source-foundations/package.json b/libs/@guardian/source-foundations/package.json index e12a4c39f..69893049f 100644 --- a/libs/@guardian/source-foundations/package.json +++ b/libs/@guardian/source-foundations/package.json @@ -5,11 +5,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index 7ee9bc832..96d82c5bf 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -4,11 +4,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 28691b347..5568dabce 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -5,11 +5,9 @@ "sideEffects": false, "type": "module", "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/index.d.ts" - } + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", From ebfed701a352dea4c7c94ed02494b35bdba187d9 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 12:59:31 +0100 Subject: [PATCH 06/28] make `@types/react` an optional peerDep --- libs/@guardian/ab-react/package.json | 4 ++++ .../source-react-components-development-kitchen/package.json | 4 ++++ libs/@guardian/source-react-components/package.json | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/libs/@guardian/ab-react/package.json b/libs/@guardian/ab-react/package.json index 81b1a579d..a7bd301e9 100644 --- a/libs/@guardian/ab-react/package.json +++ b/libs/@guardian/ab-react/package.json @@ -36,12 +36,16 @@ }, "peerDependencies": { "@guardian/ab-core": "^7.0.0", + "@types/react": "^18.2.11", "react": "^18.2.0", "react-dom": "^18.2.0", "tslib": "^2.6.2", "typescript": "~5.3.3" }, "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, "typescript": { "optional": true } diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index 96d82c5bf..7ebd2b8b0 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -41,11 +41,15 @@ "@guardian/libs": "^16.0.0", "@guardian/source-foundations": "^14.2.2", "@guardian/source-react-components": "^23.0.0", + "@types/react": "^18.2.11", "react": "^18.2.0", "tslib": "^2.6.2", "typescript": "~5.3.3" }, "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, "typescript": { "optional": true } diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 5568dabce..713449e2b 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -53,11 +53,15 @@ "peerDependencies": { "@emotion/react": "^11.11.1", "@guardian/source-foundations": "^14.2.2", + "@types/react": "^18.2.11", "react": "^18.2.0", "tslib": "^2.6.2", "typescript": "~5.3.3" }, "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, "typescript": { "optional": true } From 18cb5d2de9be5a856eed52c96458465e3ffc0c39 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 14:01:15 +0100 Subject: [PATCH 07/28] add note about fixing cypress failing in CI --- .github/actions/setup-node-env/action.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/actions/setup-node-env/action.yml b/.github/actions/setup-node-env/action.yml index 72bbca767..cdd13880c 100644 --- a/.github/actions/setup-node-env/action.yml +++ b/.github/actions/setup-node-env/action.yml @@ -18,6 +18,13 @@ runs: - run: pnpm install --frozen-lockfile shell: bash + # if cypress tests fail _and_ you have an update to the lockfile, you may + # need to do a single run with this uncommented... + # don't forget to check the version. + # i hate cypress. + # - run: pnpm dlx cypress@13.7.1 install --force + # shell: bash + # Restores cypress binary cache. If the binary is missing, it will be # downloaded and cached for next time. # https://docs.cypress.io/guides/continuous-integration/introduction#Caching @@ -25,4 +32,4 @@ runs: uses: actions/cache@v4 with: path: ~/.cache/Cypress - key: cypress-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} + key: cypress-${{ runner.os }}-cypress-${{ hashFiles('pnpm-lock.yaml') }} From 53ab4d0e5a9320da511f33048ffe1c0385d08a4e Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 16:19:30 +0100 Subject: [PATCH 08/28] remove unessary config --- libs/@guardian/libs/tsconfig.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libs/@guardian/libs/tsconfig.json b/libs/@guardian/libs/tsconfig.json index 655863075..9663b1b93 100644 --- a/libs/@guardian/libs/tsconfig.json +++ b/libs/@guardian/libs/tsconfig.json @@ -9,10 +9,5 @@ ], "compilerOptions": { "incremental": false - }, - "ts-node": { - "moduleTypes": { - "jest.config.ts": "cjs" - } } } From d43394e8cfb266a963d73178a86756f8df3f2789 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 16:40:23 +0100 Subject: [PATCH 09/28] not incremetnal anyway --- libs/@guardian/ab-core/tsconfig.json | 5 +---- libs/@guardian/ab-react/tsconfig.json | 2 +- libs/@guardian/core-web-vitals/tsconfig.json | 5 +---- .../@guardian/eslint-plugin-source-foundations/tsconfig.json | 5 +---- .../eslint-plugin-source-react-components/tsconfig.json | 5 +---- libs/@guardian/identity-auth-frontend/tsconfig.json | 5 +---- libs/@guardian/identity-auth/tsconfig.json | 5 +---- libs/@guardian/libs/tsconfig.json | 5 +---- libs/@guardian/newsletter-types/tsconfig.json | 5 +---- libs/@guardian/source-foundations/tsconfig.json | 5 +---- .../tsconfig.json | 5 +---- libs/@guardian/source-react-components/tsconfig.json | 5 +---- 12 files changed, 12 insertions(+), 45 deletions(-) diff --git a/libs/@guardian/ab-core/tsconfig.json b/libs/@guardian/ab-core/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/ab-core/tsconfig.json +++ b/libs/@guardian/ab-core/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/ab-react/tsconfig.json b/libs/@guardian/ab-react/tsconfig.json index 583450c7e..d2dc36b03 100644 --- a/libs/@guardian/ab-react/tsconfig.json +++ b/libs/@guardian/ab-react/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../../tsconfig.base.json", - "include": ["."], + "include": ["."] "compilerOptions": { "jsxImportSource": "react" } diff --git a/libs/@guardian/core-web-vitals/tsconfig.json b/libs/@guardian/core-web-vitals/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/core-web-vitals/tsconfig.json +++ b/libs/@guardian/core-web-vitals/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json b/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json +++ b/libs/@guardian/eslint-plugin-source-foundations/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json b/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json +++ b/libs/@guardian/eslint-plugin-source-react-components/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/identity-auth-frontend/tsconfig.json b/libs/@guardian/identity-auth-frontend/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/identity-auth-frontend/tsconfig.json +++ b/libs/@guardian/identity-auth-frontend/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/identity-auth/tsconfig.json b/libs/@guardian/identity-auth/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/identity-auth/tsconfig.json +++ b/libs/@guardian/identity-auth/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/libs/tsconfig.json b/libs/@guardian/libs/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/libs/tsconfig.json +++ b/libs/@guardian/libs/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/newsletter-types/tsconfig.json b/libs/@guardian/newsletter-types/tsconfig.json index 9663b1b93..978f6e1b9 100644 --- a/libs/@guardian/newsletter-types/tsconfig.json +++ b/libs/@guardian/newsletter-types/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/source-foundations/tsconfig.json b/libs/@guardian/source-foundations/tsconfig.json index ba8e49ae9..aba5a541f 100644 --- a/libs/@guardian/source-foundations/tsconfig.json +++ b/libs/@guardian/source-foundations/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/source-react-components-development-kitchen/tsconfig.json b/libs/@guardian/source-react-components-development-kitchen/tsconfig.json index ba8e49ae9..aba5a541f 100644 --- a/libs/@guardian/source-react-components-development-kitchen/tsconfig.json +++ b/libs/@guardian/source-react-components-development-kitchen/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } diff --git a/libs/@guardian/source-react-components/tsconfig.json b/libs/@guardian/source-react-components/tsconfig.json index ba8e49ae9..aba5a541f 100644 --- a/libs/@guardian/source-react-components/tsconfig.json +++ b/libs/@guardian/source-react-components/tsconfig.json @@ -6,8 +6,5 @@ { "path": "./tsconfig.spec.json" } - ], - "compilerOptions": { - "incremental": false - } + ] } From 194b51f25cb6f4f4eb180bcf81872d1cb1f202ee Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 16:51:24 +0100 Subject: [PATCH 10/28] make `@types/eslint` an option peerdep --- libs/@guardian/eslint-plugin-source-foundations/package.json | 4 ++++ .../eslint-plugin-source-react-components/package.json | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/libs/@guardian/eslint-plugin-source-foundations/package.json b/libs/@guardian/eslint-plugin-source-foundations/package.json index 6f6a3d267..a6f4fb6a5 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/package.json +++ b/libs/@guardian/eslint-plugin-source-foundations/package.json @@ -40,11 +40,15 @@ "peerDependencies": { "@guardian/libs": "^16.0.0", "@guardian/source-foundations": "^14.1.4", + "@types/eslint": "^8.56.1", "eslint": "^8.56.0", "tslib": "^2.6.2", "typescript": "~5.3.3" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "typescript": { "optional": true } diff --git a/libs/@guardian/eslint-plugin-source-react-components/package.json b/libs/@guardian/eslint-plugin-source-react-components/package.json index 3ed32e136..67109d9ff 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/package.json +++ b/libs/@guardian/eslint-plugin-source-react-components/package.json @@ -41,12 +41,16 @@ "peerDependencies": { "@guardian/libs": "^16.0.0", "@guardian/source-react-components": "^22.0.1", + "@types/eslint": "^8.56.1", "eslint": "^8.56.0", "react": "^18.2.0", "tslib": "^2.6.2", "typescript": "~5.3.3" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "typescript": { "optional": true } From 40c0522b29d0da219a2a18c370a025c45fa176a8 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Mon, 29 Apr 2024 16:53:00 +0100 Subject: [PATCH 11/28] remove ref to `prepare-for-changesets` --- .github/workflows/canaries.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/canaries.yml b/.github/workflows/canaries.yml index 8ebeba59b..abf2b0bbf 100644 --- a/.github/workflows/canaries.yml +++ b/.github/workflows/canaries.yml @@ -27,10 +27,7 @@ jobs: - name: Version run: pnpm changeset version --snapshot canary - - run: pnpm nx run-many --target=build --all=true - - - name: Prepare Nx project for changesets - uses: ./.github/actions/prepare-for-changesets + - run: make build - name: Release uses: changesets/action@v1 From 36f1e1b14ed070e23d6a3aa4d8b9e1e080edc265 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Thu, 2 May 2024 15:55:00 +0100 Subject: [PATCH 12/28] use rollup directly --- .eslintrc.cjs | 6 + configs/package.json | 14 + configs/rollup.config.js | 48 + libs/@guardian/ab-core/package.json | 4 +- libs/@guardian/ab-core/rollup.config.js | 1 + libs/@guardian/ab-react/package.json | 4 +- libs/@guardian/ab-react/rollup.config.js | 1 + libs/@guardian/core-web-vitals/package.json | 4 +- .../core-web-vitals/rollup.config.js | 1 + .../package.json | 4 +- .../rollup.config.js | 1 + .../package.json | 4 +- .../rollup.config.js | 1 + .../identity-auth-frontend/package.json | 4 +- .../identity-auth-frontend/rollup.config.js | 1 + libs/@guardian/identity-auth/package.json | 4 +- libs/@guardian/identity-auth/rollup.config.js | 1 + .../libs/cypress/downloads/downloads.html | 1 + libs/@guardian/libs/package.json | 4 +- libs/@guardian/libs/rollup.config.js | 1 + libs/@guardian/newsletter-types/package.json | 4 +- .../newsletter-types/rollup.config.js | 1 + .../@guardian/source-foundations/package.json | 4 +- .../source-foundations/rollup.config.js | 1 + .../package.json | 4 +- .../rollup.config.js | 1 + .../source-react-components/package.json | 14 +- .../source-react-components/rollup.config.js | 1 + pnpm-lock.yaml | 1258 +++++++++-------- pnpm-workspace.yaml | 1 + 30 files changed, 814 insertions(+), 584 deletions(-) create mode 100644 configs/package.json create mode 100644 configs/rollup.config.js create mode 100644 libs/@guardian/ab-core/rollup.config.js create mode 100644 libs/@guardian/ab-react/rollup.config.js create mode 100644 libs/@guardian/core-web-vitals/rollup.config.js create mode 100644 libs/@guardian/eslint-plugin-source-foundations/rollup.config.js create mode 100644 libs/@guardian/eslint-plugin-source-react-components/rollup.config.js create mode 100644 libs/@guardian/identity-auth-frontend/rollup.config.js create mode 100644 libs/@guardian/identity-auth/rollup.config.js create mode 100644 libs/@guardian/libs/cypress/downloads/downloads.html create mode 100644 libs/@guardian/libs/rollup.config.js create mode 100644 libs/@guardian/newsletter-types/rollup.config.js create mode 100644 libs/@guardian/source-foundations/rollup.config.js create mode 100644 libs/@guardian/source-react-components-development-kitchen/rollup.config.js create mode 100644 libs/@guardian/source-react-components/rollup.config.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index ea9641b0c..3fb5afd03 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -33,6 +33,12 @@ module.exports = { 'import/no-default-export': 'off', }, }, + { + files: ['rollup.config.js'], + rules: { + 'import/no-default-export': 'off', + }, + }, { files: ['*.stories.*'], rules: { diff --git a/configs/package.json b/configs/package.json new file mode 100644 index 000000000..221ad6ce1 --- /dev/null +++ b/configs/package.json @@ -0,0 +1,14 @@ +{ + "name": "config", + "version": "0.1.0", + "type": "module", + "devDependencies": { + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "rollup": "^4.16.4", + "rollup-plugin-dts": "^6.1.0", + "rollup-plugin-esbuild": "^6.1.1", + "rollup-plugin-node-externals": "^7.1.2" + } +} diff --git a/configs/rollup.config.js b/configs/rollup.config.js new file mode 100644 index 000000000..37e76331a --- /dev/null +++ b/configs/rollup.config.js @@ -0,0 +1,48 @@ +import commonjs from '@rollup/plugin-commonjs'; +import json from '@rollup/plugin-json'; +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import { dts } from 'rollup-plugin-dts'; +import esbuild from 'rollup-plugin-esbuild'; +import { nodeExternals } from 'rollup-plugin-node-externals'; + +const config = { + input: 'src/index.ts', + + plugins: [ + nodeResolve({ + extensions: ['.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'], + }), + commonjs(), + json(), + esbuild(), + nodeExternals(), + ], +}; + +export default [ + { + ...config, + output: { + dir: 'dist', + format: 'esm', + preserveModules: true, + }, + }, + { + ...config, + output: { + dir: 'dist', + format: 'cjs', + preserveModules: true, + entryFileNames: '[name].cjs', + }, + }, + { + ...config, + plugins: [dts()], + output: { + dir: 'dist', + preserveModules: true, + }, + }, +]; diff --git a/libs/@guardian/ab-core/package.json b/libs/@guardian/ab-core/package.json index 8b09f646a..705ce7c6c 100644 --- a/libs/@guardian/ab-core/package.json +++ b/libs/@guardian/ab-core/package.json @@ -17,7 +17,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", @@ -25,7 +25,7 @@ "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { - "pkgroll": "2.0.2", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/ab-core/rollup.config.js b/libs/@guardian/ab-core/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/ab-core/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/ab-react/package.json b/libs/@guardian/ab-react/package.json index a7bd301e9..f4fb663f7 100644 --- a/libs/@guardian/ab-react/package.json +++ b/libs/@guardian/ab-react/package.json @@ -17,7 +17,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", @@ -28,9 +28,9 @@ "@guardian/ab-core": "7.0.0", "@testing-library/react": "14.2.1", "@types/react": "18.2.11", - "pkgroll": "2.0.2", "react": "18.2.0", "react-dom": "18.2.0", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/ab-react/rollup.config.js b/libs/@guardian/ab-react/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/ab-react/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/core-web-vitals/package.json b/libs/@guardian/core-web-vitals/package.json index d552a5085..9ba6a7975 100644 --- a/libs/@guardian/core-web-vitals/package.json +++ b/libs/@guardian/core-web-vitals/package.json @@ -16,7 +16,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", @@ -25,7 +25,7 @@ }, "devDependencies": { "@guardian/libs": "16.0.0", - "pkgroll": "2.0.2", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3", "web-vitals": "3.5.0" diff --git a/libs/@guardian/core-web-vitals/rollup.config.js b/libs/@guardian/core-web-vitals/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/core-web-vitals/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/eslint-plugin-source-foundations/package.json b/libs/@guardian/eslint-plugin-source-foundations/package.json index a6f4fb6a5..98e3dcab5 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/package.json +++ b/libs/@guardian/eslint-plugin-source-foundations/package.json @@ -14,7 +14,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", @@ -32,7 +32,7 @@ "@types/eslint": "8.56.1", "@types/estree": "1.0.5", "eslint": "8.56.0", - "pkgroll": "2.0.2", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3", "wireit": "0.14.4" diff --git a/libs/@guardian/eslint-plugin-source-foundations/rollup.config.js b/libs/@guardian/eslint-plugin-source-foundations/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/eslint-plugin-source-foundations/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/eslint-plugin-source-react-components/package.json b/libs/@guardian/eslint-plugin-source-react-components/package.json index 67109d9ff..4b6c28b72 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/package.json +++ b/libs/@guardian/eslint-plugin-source-react-components/package.json @@ -14,7 +14,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", @@ -33,8 +33,8 @@ "@types/eslint": "8.56.1", "@types/estree": "1.0.5", "eslint": "8.56.0", - "pkgroll": "2.0.2", "react": "18.2.0", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/eslint-plugin-source-react-components/rollup.config.js b/libs/@guardian/eslint-plugin-source-react-components/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/eslint-plugin-source-react-components/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/identity-auth-frontend/package.json b/libs/@guardian/identity-auth-frontend/package.json index c3cf23aae..c0f3a6363 100644 --- a/libs/@guardian/identity-auth-frontend/package.json +++ b/libs/@guardian/identity-auth-frontend/package.json @@ -17,7 +17,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", @@ -28,7 +28,7 @@ "@guardian/identity-auth": "2.1.0", "@guardian/libs": "16.0.0", "jest-fetch-mock": "3.0.3", - "pkgroll": "2.0.2", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/identity-auth-frontend/rollup.config.js b/libs/@guardian/identity-auth-frontend/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/identity-auth-frontend/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/identity-auth/package.json b/libs/@guardian/identity-auth/package.json index b09c1d847..36efb7bed 100644 --- a/libs/@guardian/identity-auth/package.json +++ b/libs/@guardian/identity-auth/package.json @@ -17,7 +17,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache .", @@ -29,7 +29,7 @@ "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-fetch-mock": "3.0.3", - "pkgroll": "2.0.2", + "rollup": "^4.16.4", "ts-jest": "29.1.1", "tslib": "2.6.2", "typescript": "5.3.3" diff --git a/libs/@guardian/identity-auth/rollup.config.js b/libs/@guardian/identity-auth/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/identity-auth/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/libs/cypress/downloads/downloads.html b/libs/@guardian/libs/cypress/downloads/downloads.html new file mode 100644 index 000000000..18d3040b4 --- /dev/null +++ b/libs/@guardian/libs/cypress/downloads/downloads.html @@ -0,0 +1 @@ +Cr24 diff --git a/libs/@guardian/libs/package.json b/libs/@guardian/libs/package.json index 583d66841..68d3eb122 100644 --- a/libs/@guardian/libs/package.json +++ b/libs/@guardian/libs/package.json @@ -16,7 +16,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "e2e": "wireit", "fix": "pnpm lint --fix", @@ -31,7 +31,7 @@ "eslint-plugin-cypress": "2.15.1", "jest-fetch-mock": "3.0.3", "mockdate": "3.0.5", - "pkgroll": "2.0.2", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3", "wcag-contrast": "3.0.0", diff --git a/libs/@guardian/libs/rollup.config.js b/libs/@guardian/libs/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/libs/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/newsletter-types/package.json b/libs/@guardian/newsletter-types/package.json index a9beeb391..b77c279d5 100644 --- a/libs/@guardian/newsletter-types/package.json +++ b/libs/@guardian/newsletter-types/package.json @@ -16,13 +16,13 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "dev": "jest --watch", "fix": "pnpm lint --fix", "lint": "eslint --cache ." }, "devDependencies": { - "pkgroll": "2.0.2", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/newsletter-types/rollup.config.js b/libs/@guardian/newsletter-types/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/newsletter-types/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/source-foundations/package.json b/libs/@guardian/source-foundations/package.json index 69893049f..32966f543 100644 --- a/libs/@guardian/source-foundations/package.json +++ b/libs/@guardian/source-foundations/package.json @@ -15,7 +15,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "build-storybook": "wireit", "dev": "jest --watch", "fix": "pnpm lint --fix", @@ -31,9 +31,9 @@ "@emotion/react": "11.11.1", "@guardian/design-tokens": "workspace:*", "lightningcss": "1.24.0", - "pkgroll": "2.0.2", "react": "18.2.0", "react-dom": "18.2.0", + "rollup": "^4.16.4", "tslib": "2.6.2", "tsx": "4.7.1", "typescript": "5.3.3", diff --git a/libs/@guardian/source-foundations/rollup.config.js b/libs/@guardian/source-foundations/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/source-foundations/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index 7ebd2b8b0..09c28a43d 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -14,7 +14,7 @@ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "build-storybook": "wireit", "dev": "jest --watch", "fix": "pnpm lint --fix", @@ -30,8 +30,8 @@ "@guardian/source-foundations": "14.2.2", "@guardian/source-react-components": "23.0.0", "@types/react": "18.2.11", - "pkgroll": "2.0.2", "react": "18.2.0", + "rollup": "^4.16.4", "tslib": "2.6.2", "typescript": "5.3.3", "wireit": "0.14.4" diff --git a/libs/@guardian/source-react-components-development-kitchen/rollup.config.js b/libs/@guardian/source-react-components-development-kitchen/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/source-react-components-development-kitchen/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 713449e2b..7d1c0f793 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -5,17 +5,17 @@ "sideEffects": false, "type": "module", "exports": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "require": "./dist/index.cjs" + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js", + "require": "./dist/src/index.cjs" }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", + "main": "./dist/src/index.js", + "types": "./dist/src/index.d.ts", "files": [ "dist" ], "scripts": { - "build": "rm -rf dist && pkgroll", + "build": "rm -rf dist && rollup -c", "build-storybook": "wireit", "create-icons": "ts-node scripts/create-icons", "dev": "jest --watch", @@ -41,9 +41,9 @@ "dotenv": "16.4.1", "jest": "29.7.0", "mkdirp": "3.0.1", - "pkgroll": "2.0.2", "prettier": "3.2.2", "react": "18.2.0", + "rollup": "^4.16.4", "ts-jest": "29.1.1", "ts-node": "10.9.2", "tslib": "2.6.2", diff --git a/libs/@guardian/source-react-components/rollup.config.js b/libs/@guardian/source-react-components/rollup.config.js new file mode 100644 index 000000000..1ab1d03d6 --- /dev/null +++ b/libs/@guardian/source-react-components/rollup.config.js @@ -0,0 +1 @@ +export * as default from '../../../configs/rollup.config.js'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4fb50efee..53cf16f01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -213,11 +213,35 @@ importers: specifier: 0.14.4 version: 0.14.4 + configs: + devDependencies: + '@rollup/plugin-commonjs': + specifier: ^25.0.7 + version: 25.0.7(rollup@4.17.2) + '@rollup/plugin-json': + specifier: ^6.1.0 + version: 6.1.0(rollup@4.17.2) + '@rollup/plugin-node-resolve': + specifier: ^15.2.3 + version: 15.2.3(rollup@4.17.2) + rollup: + specifier: ^4.16.4 + version: 4.17.2 + rollup-plugin-dts: + specifier: ^6.1.0 + version: 6.1.0(rollup@4.17.2)(typescript@5.3.3) + rollup-plugin-esbuild: + specifier: ^6.1.1 + version: 6.1.1(esbuild@0.20.2)(rollup@4.17.2) + rollup-plugin-node-externals: + specifier: ^7.1.2 + version: 7.1.2(rollup@4.17.2) + libs/@guardian/ab-core: devDependencies: - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -236,15 +260,15 @@ importers: '@types/react': specifier: 18.2.11 version: 18.2.11 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -293,9 +317,9 @@ importers: '@guardian/libs': specifier: 16.0.0 version: 16.0.0(tslib@2.6.2)(typescript@5.3.3) - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -399,9 +423,9 @@ importers: eslint: specifier: 8.56.0 version: 8.56.0 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -442,12 +466,12 @@ importers: eslint: specifier: 8.56.0 version: 8.56.0 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -469,9 +493,9 @@ importers: jest-fetch-mock: specifier: 3.0.3 version: 3.0.3 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) + rollup: + specifier: ^4.16.4 + version: 4.17.2 ts-jest: specifier: 29.1.1 version: 29.1.1(@babel/core@7.24.0)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.3.3) @@ -493,9 +517,9 @@ importers: jest-fetch-mock: specifier: 3.0.3 version: 3.0.3 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -523,9 +547,9 @@ importers: mockdate: specifier: 3.0.5 version: 3.0.5 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -541,9 +565,9 @@ importers: libs/@guardian/newsletter-types: devDependencies: - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -575,15 +599,15 @@ importers: lightningcss: specifier: 1.24.0 version: 1.24.0 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -644,15 +668,15 @@ importers: mkdirp: specifier: 3.0.1 version: 3.0.1 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) prettier: specifier: 3.2.2 version: 3.2.2 react: specifier: 18.2.0 version: 18.2.0 + rollup: + specifier: ^4.16.4 + version: 4.17.2 ts-jest: specifier: 29.1.1 version: 29.1.1(@babel/core@7.24.0)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.3.3) @@ -689,12 +713,12 @@ importers: '@types/react': specifier: 18.2.11 version: 18.2.11 - pkgroll: - specifier: 2.0.2 - version: 2.0.2(typescript@5.3.3) react: specifier: 18.2.0 version: 18.2.0 + rollup: + specifier: ^4.16.4 + version: 4.17.2 tslib: specifier: 2.6.2 version: 2.6.2 @@ -707,51 +731,6 @@ importers: libs/@guardian/tsconfig: {} - tools/nx-plugins/npm-package: - dependencies: - '@guardian/libs': - specifier: workspace:* - version: link:../../../libs/@guardian/libs - '@rollup/plugin-commonjs': - specifier: 25.0.7 - version: 25.0.7(rollup@4.17.2) - '@rollup/plugin-json': - specifier: 6.1.0 - version: 6.1.0(rollup@4.17.2) - '@rollup/plugin-node-resolve': - specifier: 15.2.3 - version: 15.2.3(rollup@4.17.2) - cpy: - specifier: 10.1.0 - version: 10.1.0 - execa: - specifier: 7.1.1 - version: 7.1.1 - read-pkg: - specifier: 9.0.1 - version: 9.0.1 - rollup: - specifier: 4.17.2 - version: 4.17.2 - rollup-plugin-ts: - specifier: 3.4.5 - version: 3.4.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(@babel/preset-typescript@7.24.1)(@swc/core@1.4.0)(@swc/helpers@0.5.3)(rollup@4.17.2)(typescript@5.3.3) - sort-package-json: - specifier: 2.10.0 - version: 2.10.0 - tslib: - specifier: 2.6.2 - version: 2.6.2 - type-fest: - specifier: 4.18.2 - version: 4.18.2 - typescript: - specifier: 5.3.3 - version: 5.3.3 - write-pkg: - specifier: 7.0.0 - version: 7.0.0 - packages: /@aashutoshrathi/word-wrap@1.2.6: @@ -772,6 +751,7 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + dev: true /@assemblyscript/loader@0.10.1: resolution: {integrity: sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==} @@ -917,14 +897,17 @@ packages: dependencies: '@babel/highlight': 7.24.2 picocolors: 1.0.0 + dev: true /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} + dev: true /@babel/compat-data@7.24.4: resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/core@7.24.0: resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} @@ -947,6 +930,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/core@7.24.4: resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} @@ -956,7 +940,7 @@ packages: '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.4) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) '@babel/helpers': 7.24.4 '@babel/parser': 7.24.4 '@babel/template': 7.24.0 @@ -971,6 +955,29 @@ packages: - supports-color dev: true + /@babel/core@7.24.5: + resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helpers': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/generator@7.24.4: resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} @@ -979,6 +986,7 @@ packages: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + dev: true /@babel/generator@7.24.5: resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} @@ -994,13 +1002,15 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} @@ -1011,6 +1021,25 @@ packages: browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.0): + resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.24.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + semver: 6.3.1 + dev: true /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.0): resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} @@ -1028,6 +1057,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.24.5 semver: 6.3.1 + dev: true /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.0): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} @@ -1039,6 +1069,7 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 + dev: true /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.24.0): resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} @@ -1053,6 +1084,7 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-define-polyfill-provider@0.6.0(@babel/core@7.24.0): resolution: {integrity: sha512-efwOM90nCG6YeT8o3PCyBVSxRfmILxCNL+TNI8CGQl7a62M0Wd9VkV+XHwIlkOz1r4b+lxu6gBjdWiOMdUCrCQ==} @@ -1067,6 +1099,7 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.0): resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} @@ -1086,44 +1119,57 @@ packages: /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 + dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + dev: true /@babel/helper-member-expression-to-functions@7.24.5: resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-module-imports@7.21.4: resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + dev: true /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} @@ -1137,6 +1183,21 @@ packages: '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.0): resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} @@ -1150,14 +1211,15 @@ packages: '@babel/helper-simple-access': 7.24.5 '@babel/helper-split-export-declaration': 7.24.5 '@babel/helper-validator-identifier': 7.24.5 + dev: true - /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.4): + /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.4 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.24.3 '@babel/helper-simple-access': 7.24.5 @@ -1170,14 +1232,17 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-plugin-utils@7.24.0: resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-plugin-utils@7.24.5: resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.0): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} @@ -1189,6 +1254,19 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.0): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} @@ -1200,56 +1278,67 @@ packages: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.24.5 '@babel/helper-optimise-call-expression': 7.22.5 + dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 + dev: true /@babel/helper-simple-access@7.24.5: resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 + dev: true /@babel/helper-split-export-declaration@7.24.5: resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-string-parser@7.23.4: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-string-parser@7.24.1: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-identifier@7.24.5: resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} + dev: true /@babel/helper-wrap-function@7.22.20: resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} @@ -1258,6 +1347,7 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 '@babel/types': 7.24.5 + dev: true /@babel/helpers@7.24.4: resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} @@ -1268,22 +1358,35 @@ packages: '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color + dev: true + + /@babel/helpers@7.24.5: + resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + transitivePeerDependencies: + - supports-color + dev: true /@babel/highlight@7.24.2: resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 + dev: true /@babel/parser@7.23.5: resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.24.0 dev: true /@babel/parser@7.24.0: @@ -1291,7 +1394,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.24.0 dev: true /@babel/parser@7.24.4: @@ -1300,6 +1403,7 @@ packages: hasBin: true dependencies: '@babel/types': 7.24.0 + dev: true /@babel/parser@7.24.5: resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} @@ -1317,6 +1421,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} @@ -1328,6 +1433,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) + dev: true /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.24.0): resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} @@ -1338,6 +1444,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} @@ -1358,6 +1465,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 + dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} @@ -1366,6 +1474,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} @@ -1376,6 +1494,15 @@ packages: '@babel/helper-plugin-utils': 7.24.5 dev: true + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -1383,6 +1510,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -1392,6 +1529,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} @@ -1410,6 +1548,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} @@ -1418,6 +1557,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} @@ -1437,6 +1577,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} @@ -1446,6 +1587,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -1454,6 +1596,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -1462,18 +1614,29 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.0): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.5 + dev: true - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): - resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1482,6 +1645,16 @@ packages: '@babel/helper-plugin-utils': 7.24.5 dev: true + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.0): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.5 + dev: true + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1489,6 +1662,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -1497,6 +1680,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -1505,6 +1698,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -1513,6 +1716,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -1521,6 +1734,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -1529,6 +1752,16 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -1538,6 +1771,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -1547,6 +1781,17 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} @@ -1556,6 +1801,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.5 + dev: true /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.0): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -1566,6 +1812,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} @@ -1575,6 +1822,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.24.0): resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} @@ -1587,6 +1835,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} @@ -1598,6 +1847,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} @@ -1607,6 +1857,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} @@ -1616,6 +1867,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} @@ -1624,8 +1876,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} @@ -1645,9 +1898,10 @@ packages: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-classes@7.23.8(@babel/core@7.24.0): resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} @@ -1661,9 +1915,10 @@ packages: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.0) - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 + dev: true /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} @@ -1674,6 +1929,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 + dev: true /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} @@ -1683,6 +1939,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} @@ -1693,6 +1950,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} @@ -1702,6 +1960,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} @@ -1712,6 +1971,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} @@ -1722,6 +1982,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} @@ -1732,6 +1993,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} @@ -1753,6 +2015,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} @@ -1764,6 +2027,7 @@ packages: '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} @@ -1774,6 +2038,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} @@ -1783,6 +2048,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} @@ -1793,6 +2059,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} @@ -1802,6 +2069,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} @@ -1810,8 +2078,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} @@ -1820,9 +2089,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.24.5 + '@babel/helper-simple-access': 7.22.5 + dev: true /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} @@ -1834,6 +2104,7 @@ packages: '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-simple-access': 7.24.5 + dev: true /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.24.0): resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} @@ -1843,9 +2114,10 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-identifier': 7.22.20 + dev: true /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} @@ -1854,8 +2126,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.0): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} @@ -1866,6 +2139,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} @@ -1875,6 +2149,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} @@ -1885,6 +2160,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} @@ -1895,6 +2171,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-object-rest-spread@7.24.0(@babel/core@7.24.0): resolution: {integrity: sha512-y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==} @@ -1908,6 +2185,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} @@ -1917,7 +2195,8 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.0) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} @@ -1928,6 +2207,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} @@ -1939,6 +2219,7 @@ packages: '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} @@ -1948,6 +2229,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} @@ -1956,8 +2238,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.24.0): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} @@ -1967,9 +2250,10 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.0) + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} @@ -1979,6 +2263,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} @@ -2010,7 +2295,7 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.0) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) '@babel/types': 7.24.5 dev: true @@ -2022,10 +2307,10 @@ packages: dependencies: '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) - '@babel/types': 7.24.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.4) + '@babel/types': 7.24.0 dev: true /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.0): @@ -2048,6 +2333,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 + dev: true /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} @@ -2057,6 +2343,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.24.0): resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} @@ -2083,6 +2370,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-spread@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} @@ -2093,6 +2381,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} @@ -2102,6 +2391,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} @@ -2111,6 +2401,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} @@ -2120,6 +2411,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-typescript@7.24.5(@babel/core@7.24.0): resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==} @@ -2132,6 +2424,7 @@ packages: '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.5 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.0) + dev: true /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} @@ -2141,6 +2434,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} @@ -2151,6 +2445,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} @@ -2161,6 +2456,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.24.0): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} @@ -2171,6 +2467,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.0) '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/preset-env@7.24.0(@babel/core@7.24.0): resolution: {integrity: sha512-ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==} @@ -2261,6 +2558,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/preset-flow@7.24.0(@babel/core@7.24.0): resolution: {integrity: sha512-cum/nSi82cDaSJ21I4PgLTVlj0OXovFk6GRguJYe/IKg6y6JHLTbJhybtX4k35WT9wdeJfEVjycTixMhBHd0Dg==} @@ -2281,8 +2579,9 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-plugin-utils': 7.24.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 esutils: 2.0.3 + dev: true /@babel/preset-react@7.24.1(@babel/core@7.24.0): resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} @@ -2311,6 +2610,7 @@ packages: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.0) '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.0) '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.0) + dev: true /@babel/register@7.23.7(@babel/core@7.24.0): resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} @@ -2328,6 +2628,7 @@ packages: /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true /@babel/runtime@7.21.5: resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} @@ -2355,6 +2656,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 + dev: true /@babel/template@7.24.0: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} @@ -2363,6 +2665,7 @@ packages: '@babel/code-frame': 7.24.2 '@babel/parser': 7.24.4 '@babel/types': 7.24.0 + dev: true /@babel/traverse@7.24.1: resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} @@ -2375,11 +2678,12 @@ packages: '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.24.5 '@babel/parser': 7.24.4 - '@babel/types': 7.24.0 + '@babel/types': 7.24.5 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true /@babel/traverse@7.24.5: resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} @@ -2403,8 +2707,8 @@ packages: resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -2415,6 +2719,7 @@ packages: '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + dev: true /@babel/types@7.24.5: resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} @@ -2423,6 +2728,7 @@ packages: '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 + dev: true /@base2/pretty-print-object@1.0.1: resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} @@ -3457,7 +3763,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.19.3)(ts-node@10.9.2) + jest-config: 29.7.0(@types/node@18.19.3) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -3688,14 +3994,17 @@ packages: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 + dev: true /@jridgewell/resolve-uri@3.1.2: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.2.1: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} + dev: true /@jridgewell/source-map@0.3.6: resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} @@ -3706,6 +4015,7 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true /@jridgewell/trace-mapping@0.3.22: resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} @@ -3719,6 +4029,7 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -3774,10 +4085,6 @@ packages: read-yaml-file: 1.1.0 dev: true - /@mdn/browser-compat-data@5.3.25: - resolution: {integrity: sha512-dzZ7Ot5SoiSrqzNR4+YqRrjRxm1K+0XEuTfIdRuUfGrAJp9EMmocLq7pXIJ4aXiX3T5+GZiXmylJzwWsTVYxWQ==} - dev: false - /@mdx-js/react@3.0.1(@types/react@18.2.11)(react@18.2.0): resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} peerDependencies: @@ -3974,7 +4281,7 @@ packages: '@phenomnomnominal/tsquery': 5.0.1(typescript@5.3.3) chalk: 4.1.2 identity-obj-proxy: 3.0.0 - jest-config: 29.7.0(@types/node@18.19.3)(ts-node@10.9.2) + jest-config: 29.7.0(@types/node@18.19.3) jest-resolve: 29.7.0 jest-util: 29.7.0 minimatch: 9.0.3 @@ -4198,19 +4505,6 @@ packages: react: 18.2.0 dev: true - /@rollup/plugin-alias@5.1.0(rollup@4.17.2): - resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - rollup: 4.17.2 - slash: 4.0.0 - dev: true - /@rollup/plugin-commonjs@25.0.7(rollup@4.17.2): resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} engines: {node: '>=14.0.0'} @@ -4225,20 +4519,6 @@ packages: estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.30.5 - rollup: 4.17.2 - - /@rollup/plugin-inject@5.0.5(rollup@4.17.2): - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - estree-walker: 2.0.2 magic-string: 0.30.8 rollup: 4.17.2 dev: true @@ -4254,6 +4534,7 @@ packages: dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.17.2) rollup: 4.17.2 + dev: true /@rollup/plugin-node-resolve@15.2.3(rollup@4.17.2): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} @@ -4271,19 +4552,6 @@ packages: is-module: 1.0.0 resolve: 1.22.8 rollup: 4.17.2 - - /@rollup/plugin-replace@5.0.5(rollup@4.17.2): - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - magic-string: 0.30.8 - rollup: 4.17.2 dev: true /@rollup/pluginutils@5.1.0(rollup@4.17.2): @@ -4299,12 +4567,14 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 rollup: 4.17.2 + dev: true /@rollup/rollup-android-arm-eabi@4.17.2: resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true /@rollup/rollup-android-arm64@4.17.2: @@ -4312,6 +4582,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /@rollup/rollup-darwin-arm64@4.17.2: @@ -4319,6 +4590,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@rollup/rollup-darwin-x64@4.17.2: @@ -4326,6 +4598,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-arm-gnueabihf@4.17.2: @@ -4333,6 +4606,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-arm-musleabihf@4.17.2: @@ -4340,6 +4614,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-arm64-gnu@4.17.2: @@ -4347,6 +4622,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-arm64-musl@4.17.2: @@ -4354,6 +4630,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-powerpc64le-gnu@4.17.2: @@ -4361,6 +4638,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-riscv64-gnu@4.17.2: @@ -4368,6 +4646,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-s390x-gnu@4.17.2: @@ -4375,6 +4654,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-x64-gnu@4.17.2: @@ -4382,6 +4662,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-linux-x64-musl@4.17.2: @@ -4389,6 +4670,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@rollup/rollup-win32-arm64-msvc@4.17.2: @@ -4396,6 +4678,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@rollup/rollup-win32-ia32-msvc@4.17.2: @@ -4403,6 +4686,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@rollup/rollup-win32-x64-msvc@4.17.2: @@ -4410,6 +4694,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@shikijs/core@1.2.4: @@ -4702,7 +4987,7 @@ packages: hasBin: true dependencies: '@babel/core': 7.24.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 '@ndelangen/get-tarball': 3.0.9 '@storybook/codemod': 8.0.5 '@storybook/core-common': 8.0.5 @@ -4758,7 +5043,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/preset-env': 7.24.0(@babel/core@7.24.0) - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 '@storybook/csf': 0.1.2 '@storybook/csf-tools': 8.0.5 '@storybook/node-logger': 8.0.5 @@ -4921,7 +5206,7 @@ packages: '@babel/generator': 7.24.4 '@babel/parser': 7.24.4 '@babel/traverse': 7.24.1 - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 '@storybook/csf': 0.1.2 '@storybook/types': 8.0.5 fs-extra: 11.2.0 @@ -5360,7 +5645,7 @@ packages: resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} engines: {node: '>=14'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 entities: 4.5.0 dev: true @@ -5447,6 +5732,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@swc/core-darwin-x64@1.4.0: @@ -5455,6 +5741,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm-gnueabihf@1.4.0: @@ -5463,6 +5750,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm64-gnu@1.4.0: @@ -5471,6 +5759,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm64-musl@1.4.0: @@ -5479,6 +5768,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-x64-gnu@1.4.0: @@ -5487,6 +5777,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-x64-musl@1.4.0: @@ -5495,6 +5786,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-win32-arm64-msvc@1.4.0: @@ -5503,6 +5795,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core-win32-ia32-msvc@1.4.0: @@ -5511,6 +5804,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core-win32-x64-msvc@1.4.0: @@ -5519,6 +5813,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core@1.4.0(@swc/helpers@0.5.3): @@ -5545,17 +5840,21 @@ packages: '@swc/core-win32-arm64-msvc': 1.4.0 '@swc/core-win32-ia32-msvc': 1.4.0 '@swc/core-win32-x64-msvc': 1.4.0 + dev: true /@swc/counter@0.1.3: resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: true /@swc/helpers@0.5.3: resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==} dependencies: tslib: 2.6.2 + dev: true /@swc/types@0.1.5: resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + dev: true /@swc/types@0.1.6: resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} @@ -5638,20 +5937,20 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.24.0 dev: true /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: '@babel/parser': 7.24.0 - '@babel/types': 7.23.5 + '@babel/types': 7.24.0 dev: true /@types/babel__traverse@7.20.4: resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.24.0 dev: true /@types/babel__traverse@7.20.5: @@ -5744,6 +6043,7 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true /@types/express-serve-static-core@4.17.43: resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} @@ -5867,10 +6167,6 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: false - /@types/node@18.19.3: resolution: {integrity: sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==} dependencies: @@ -5885,10 +6181,7 @@ packages: /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - /@types/object-path@0.11.1: - resolution: {integrity: sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg==} - dev: false + dev: true /@types/parse-json@4.0.2: resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -5933,6 +6226,7 @@ packages: /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + dev: true /@types/resolve@1.20.6: resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -5980,10 +6274,6 @@ packages: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} dev: true - /@types/ua-parser-js@0.7.36: - resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==} - dev: false - /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: true @@ -6635,11 +6925,6 @@ packages: '@xtuc/long': 4.2.2 dev: true - /@wessberg/stringutil@1.0.19: - resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} - engines: {node: '>=8.0.0'} - dev: false - /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} dev: true @@ -6778,14 +7063,6 @@ packages: indent-string: 4.0.0 dev: true - /aggregate-error@4.0.1: - resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} - engines: {node: '>=12'} - dependencies: - clean-stack: 4.2.0 - indent-string: 5.0.0 - dev: false - /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -6840,6 +7117,7 @@ packages: /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} + dev: true /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} @@ -6873,6 +7151,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: true /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -7004,11 +7283,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /arrify@3.0.0: - resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} - engines: {node: '>=12'} - dev: false - /asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -7203,6 +7477,24 @@ packages: - supports-color dev: true + /babel-jest@29.7.0(@babel/core@7.24.5): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.24.5 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.24.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-loader@9.1.3(@babel/core@7.24.0)(webpack@5.91.0): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} @@ -7293,6 +7585,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} @@ -7316,6 +7609,7 @@ packages: core-js-compat: 3.36.0 transitivePeerDependencies: - supports-color + dev: true /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.24.0): resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} @@ -7326,6 +7620,7 @@ packages: '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.24.0) transitivePeerDependencies: - supports-color + dev: true /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.0): resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} @@ -7371,6 +7666,26 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) dev: true + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.5): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) + dev: true + /babel-preset-jest@29.6.3(@babel/core@7.24.0): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7382,6 +7697,17 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) dev: true + /babel-preset-jest@29.6.3(@babel/core@7.24.5): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.5) + dev: true + /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: true @@ -7573,22 +7899,6 @@ packages: pako: 0.2.9 dev: true - /browserslist-generator@2.1.0: - resolution: {integrity: sha512-ZFz4mAOgqm0cbwKaZsfJbYDbTXGoPANlte7qRsRJOfjB9KmmISQrXJxAVrnXG8C8v/QHNzXyeJt0Cfcks6zZvQ==} - engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - dependencies: - '@mdn/browser-compat-data': 5.3.25 - '@types/object-path': 0.11.1 - '@types/semver': 7.5.8 - '@types/ua-parser-js': 0.7.36 - browserslist: 4.23.0 - caniuse-lite: 1.0.30001591 - isbot: 3.7.0 - object-path: 0.11.8 - semver: 7.5.4 - ua-parser-js: 1.0.35 - dev: false - /browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -7598,6 +7908,7 @@ packages: electron-to-chromium: 1.4.715 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) + dev: true /bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} @@ -7637,6 +7948,7 @@ packages: /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} + dev: true /builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} @@ -7704,12 +8016,9 @@ packages: engines: {node: '>=14.16'} dev: true - /caniuse-lite@1.0.30001591: - resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} - dev: false - /caniuse-lite@1.0.30001600: resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + dev: true /case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -7731,6 +8040,7 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: true /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -7851,13 +8161,6 @@ packages: engines: {node: '>=6'} dev: true - /clean-stack@4.2.0: - resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} - engines: {node: '>=12'} - dependencies: - escape-string-regexp: 5.0.0 - dev: false - /cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -7971,6 +8274,7 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 + dev: true /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -7980,6 +8284,7 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -8066,16 +8371,7 @@ packages: /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - /compatfactory@3.0.0(typescript@5.3.3): - resolution: {integrity: sha512-WD5kF7koPwVoyKL8p0LlrmIZtilrD46sQStyzzxzTFinMKN2Dxk1hN+sddLSQU1mGIZvQfU8c+ONSghvvM40jg==} - engines: {node: '>=14.9.0'} - peerDependencies: - typescript: '>=3.x || >= 4.x || >= 5.x' - dependencies: - helpertypes: 0.0.19 - typescript: 5.3.3 - dev: false + dev: true /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} @@ -8133,6 +8429,7 @@ packages: /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} @@ -8147,6 +8444,7 @@ packages: resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} dependencies: browserslist: 4.23.0 + dev: true /core-js-compat@3.37.0: resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} @@ -8200,28 +8498,24 @@ packages: typescript: 5.3.3 dev: true - /cp-file@10.0.0: - resolution: {integrity: sha512-vy2Vi1r2epK5WqxOLnskeKeZkdZvTKfFZQCplE3XWsP+SUJyd5XAUFC9lFgTjjXJF2GMne/UML14iEmkAaDfFg==} - engines: {node: '>=14.16'} + /create-jest@29.7.0(@types/node@18.19.3): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 graceful-fs: 4.2.11 - nested-error-stacks: 2.1.1 - p-event: 5.0.1 - dev: false - - /cpy@10.1.0: - resolution: {integrity: sha512-VC2Gs20JcTyeQob6UViBLnyP0bYHkBh6EiKzot9vi2DmeGlFT9Wd7VG3NBrkNx/jYvFBeyDOMMHdHQhbtKLgHQ==} - engines: {node: '>=16'} - dependencies: - arrify: 3.0.0 - cp-file: 10.0.0 - globby: 13.2.2 - junk: 4.0.1 - micromatch: 4.0.5 - nested-error-stacks: 2.1.1 - p-filter: 3.0.0 - p-map: 6.0.0 - dev: false + jest-config: 29.7.0(@types/node@18.19.3) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true /create-jest@29.7.0(@types/node@18.19.3)(ts-node@10.9.2): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} @@ -8270,13 +8564,6 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /crosspath@2.0.0: - resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} - engines: {node: '>=14.9.0'} - dependencies: - '@types/node': 17.0.45 - dev: false - /crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -8601,14 +8888,10 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge-ts@5.1.0: - resolution: {integrity: sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw==} - engines: {node: '>=16.0.0'} - dev: false - /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + dev: true /default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} @@ -8691,6 +8974,7 @@ packages: /detect-indent@7.0.1: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} + dev: true /detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} @@ -8713,6 +8997,7 @@ packages: /detect-newline@4.0.1: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true /detect-package-manager@2.0.1: resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} @@ -8927,6 +9212,7 @@ packages: /electron-to-chromium@1.4.715: resolution: {integrity: sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==} + dev: true /emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -8977,6 +9263,7 @@ packages: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + dev: false /enhanced-resolve@5.16.0: resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} @@ -9020,6 +9307,7 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: true /es-abstract@1.22.3: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} @@ -9194,6 +9482,7 @@ packages: /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + dev: true /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -9215,6 +9504,7 @@ packages: /escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} + dev: true /escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} @@ -9595,6 +9885,7 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -9658,21 +9949,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: false - /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -10158,6 +10434,7 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /function-bind@1.1.2: @@ -10178,6 +10455,7 @@ packages: /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + dev: true /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} @@ -10212,6 +10490,7 @@ packages: /get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} + dev: true /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} @@ -10223,6 +10502,7 @@ packages: /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + dev: true /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} @@ -10269,6 +10549,7 @@ packages: /git-hooks-list@3.1.0: resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} + dev: true /github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -10327,6 +10608,7 @@ packages: inherits: 2.0.4 minimatch: 5.1.6 once: 1.4.0 + dev: true /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} @@ -10338,6 +10620,7 @@ packages: /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + dev: true /globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} @@ -10371,6 +10654,7 @@ packages: ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 + dev: true /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -10437,6 +10721,7 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -10610,11 +10895,6 @@ packages: hasBin: true dev: true - /helpertypes@0.0.19: - resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} - engines: {node: '>=10.0.0'} - dev: false - /hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: @@ -10630,6 +10910,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: lru-cache: 10.2.2 + dev: true /html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} @@ -10761,11 +11042,6 @@ packages: engines: {node: '>=10.17.0'} dev: true - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: false - /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -10848,14 +11124,10 @@ packages: engines: {node: '>=8'} dev: true - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: false - /index-to-position@0.1.2: resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} engines: {node: '>=18'} + dev: true /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} @@ -10916,6 +11188,7 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -10952,6 +11225,7 @@ packages: engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 + dev: true /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -11072,6 +11346,7 @@ packages: /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true /is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} @@ -11112,6 +11387,7 @@ packages: /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + dev: true /is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} @@ -11133,6 +11409,7 @@ packages: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: '@types/estree': 1.0.5 + dev: true /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} @@ -11164,6 +11441,7 @@ packages: /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -11192,6 +11470,7 @@ packages: /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -11245,11 +11524,6 @@ packages: /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - /isbot@3.7.0: - resolution: {integrity: sha512-9BcjlI89966BqWJmYdTnRub85sit931MyCthSIPtgoOsTjoW7A2MVa09HzPpYE2+G4vyAxfDvR0AbUGV0FInQg==} - engines: {node: '>=12'} - dev: false - /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -11393,10 +11667,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@18.19.3)(ts-node@10.9.2) + create-jest: 29.7.0(@types/node@18.19.3) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@18.19.3)(ts-node@10.9.2) + jest-config: 29.7.0(@types/node@18.19.3) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -11435,7 +11709,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@18.19.3)(ts-node@10.9.2): + /jest-config@29.7.0(@types/node@18.19.3): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -11470,6 +11744,46 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-config@29.7.0(@types/node@18.19.3)(ts-node@10.9.2): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.24.5 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.3 + babel-jest: 29.7.0(@babel/core@7.24.5) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 ts-node: 10.9.2(@swc/core@1.4.0)(@types/node@18.19.3)(typescript@5.3.3) transitivePeerDependencies: - babel-plugin-macros @@ -11488,11 +11802,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.5 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.12.8 - babel-jest: 29.7.0(@babel/core@7.24.0) + babel-jest: 29.7.0(@babel/core@7.24.5) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -11762,7 +12076,7 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/generator': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.0) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.0) '@babel/types': 7.24.5 '@jest/expect-utils': 29.7.0 @@ -11889,6 +12203,7 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -11920,7 +12235,7 @@ packages: '@babel/core': 7.24.0 '@babel/parser': 7.24.5 '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.0) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.0) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.0) '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.24.0) '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.24.0) '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.24.0) @@ -11986,11 +12301,13 @@ packages: /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true + dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + dev: true /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -11999,11 +12316,6 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-parse-even-better-errors@3.0.1: - resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: false - /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -12032,6 +12344,7 @@ packages: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + dev: true /jsonc-eslint-parser@2.4.0: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} @@ -12075,11 +12388,6 @@ packages: verror: 1.10.0 dev: true - /junk@4.0.1: - resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} - engines: {node: '>=12.20'} - dev: false - /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -12236,6 +12544,7 @@ packages: /lines-and-columns@2.0.4: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true /lint-staged@15.2.0: resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==} @@ -12337,6 +12646,7 @@ packages: /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -12414,6 +12724,7 @@ packages: /lru-cache@10.2.2: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} + dev: true /lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -12426,6 +12737,7 @@ packages: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 + dev: true /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -12443,6 +12755,7 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + dev: true /magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} @@ -12703,6 +13016,7 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -12999,6 +13313,7 @@ packages: /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + dev: true /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} @@ -13026,6 +13341,7 @@ packages: engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} @@ -13141,10 +13457,6 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /nested-error-stacks@2.1.1: - resolution: {integrity: sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==} - dev: false - /nice-napi@1.0.2: resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} os: ['!win32'] @@ -13245,6 +13557,7 @@ packages: /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -13255,16 +13568,6 @@ packages: validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.2 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: false - /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -13287,13 +13590,6 @@ packages: path-key: 3.1.1 dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: false - /npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -13425,11 +13721,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - /object-path@0.11.8: - resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} - engines: {node: '>= 10.12.0'} - dev: false - /object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} @@ -13500,6 +13791,7 @@ packages: engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 + dev: true /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} @@ -13578,13 +13870,6 @@ packages: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: true - /p-event@5.0.1: - resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-timeout: 5.1.0 - dev: false - /p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -13592,13 +13877,6 @@ packages: p-map: 2.1.0 dev: true - /p-filter@3.0.0: - resolution: {integrity: sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-map: 5.5.0 - dev: false - /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -13665,18 +13943,6 @@ packages: aggregate-error: 3.1.0 dev: true - /p-map@5.5.0: - resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} - engines: {node: '>=12'} - dependencies: - aggregate-error: 4.0.1 - dev: false - - /p-map@6.0.0: - resolution: {integrity: sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==} - engines: {node: '>=16'} - dev: false - /p-queue@8.0.1: resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} engines: {node: '>=18'} @@ -13685,11 +13951,6 @@ packages: p-timeout: 6.1.2 dev: true - /p-timeout@5.1.0: - resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} - engines: {node: '>=12'} - dev: false - /p-timeout@6.1.2: resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} engines: {node: '>=14.16'} @@ -13731,27 +13992,6 @@ packages: lines-and-columns: 1.2.4 dev: true - /parse-json@7.1.1: - resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} - engines: {node: '>=16'} - dependencies: - '@babel/code-frame': 7.24.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 3.0.1 - lines-and-columns: 2.0.4 - type-fest: 3.13.1 - dev: false - - /parse-json@8.0.1: - resolution: {integrity: sha512-soKUg/q/8bcfuF3+plsbYldE74cVEVEPSC1BUPIGTaX1byXdz6Fo+CVYBdH0jj/5xWsFrNRksl11QkBgHqPQeQ==} - engines: {node: '>=18'} - dependencies: - '@babel/code-frame': 7.24.2 - index-to-position: 0.1.2 - json-parse-even-better-errors: 3.0.1 - type-fest: 4.18.2 - dev: false - /parse-json@8.1.0: resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} @@ -13816,6 +14056,7 @@ packages: /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} + dev: true /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -13870,6 +14111,7 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -13934,29 +14176,6 @@ packages: find-up: 6.3.0 dev: true - /pkgroll@2.0.2(typescript@5.3.3): - resolution: {integrity: sha512-gRQ293zs67H2nN/CKwdLnlxCKpE5qi5rJwVvDUqep8qOLs57PlTl3MAXmLlFztwI2Iv6mP9k5BSlhBjzFJmerg==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - typescript: ^4.1 || ^5.0 - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@rollup/plugin-alias': 5.1.0(rollup@4.17.2) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.17.2) - '@rollup/plugin-inject': 5.0.5(rollup@4.17.2) - '@rollup/plugin-json': 6.1.0(rollup@4.17.2) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.17.2) - '@rollup/plugin-replace': 5.0.5(rollup@4.17.2) - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - esbuild: 0.20.2 - magic-string: 0.30.8 - rollup: 4.17.2 - typescript: 5.3.3 - dev: true - /polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -14408,27 +14627,6 @@ packages: type-fest: 0.6.0 dev: true - /read-pkg@8.1.0: - resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} - engines: {node: '>=16'} - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 6.0.0 - parse-json: 7.1.1 - type-fest: 4.18.2 - dev: false - - /read-pkg@9.0.1: - resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} - engines: {node: '>=18'} - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 6.0.0 - parse-json: 8.0.1 - type-fest: 4.18.2 - unicorn-magic: 0.1.0 - dev: false - /read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -14491,9 +14689,11 @@ packages: engines: {node: '>=4'} dependencies: regenerate: 1.4.2 + dev: true /regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} @@ -14501,11 +14701,13 @@ packages: /regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: true /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: '@babel/runtime': 7.24.5 + dev: true /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -14525,12 +14727,14 @@ packages: regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 + dev: true /regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true dependencies: jsesc: 0.5.0 + dev: true /rehype-external-links@3.0.0: resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} @@ -14805,53 +15009,45 @@ packages: dependencies: glob: 7.2.3 - /rollup-plugin-ts@3.4.5(@babel/core@7.24.0)(@babel/preset-env@7.24.0)(@babel/preset-typescript@7.24.1)(@swc/core@1.4.0)(@swc/helpers@0.5.3)(rollup@4.17.2)(typescript@5.3.3): - resolution: {integrity: sha512-9iCstRJpEZXSRQuXitlSZAzcGlrqTbJg1pE4CMbEi6xYldxVncdPyzA2I+j6vnh73wBymZckerS+Q/iEE/M3Ow==} - engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} - peerDependencies: - '@babel/core': '>=7.x' - '@babel/plugin-transform-runtime': '>=7.x' - '@babel/preset-env': '>=7.x' - '@babel/preset-typescript': '>=7.x' - '@babel/runtime': '>=7.x' - '@swc/core': '>=1.x' - '@swc/helpers': '>=0.2' - rollup: '>=1.x || >=2.x || >=3.x' - typescript: '>=3.2.x || >= 4.x || >= 5.x' - peerDependenciesMeta: - '@babel/core': - optional: true - '@babel/plugin-transform-runtime': - optional: true - '@babel/preset-env': - optional: true - '@babel/preset-typescript': - optional: true - '@babel/runtime': - optional: true - '@swc/core': - optional: true - '@swc/helpers': - optional: true + /rollup-plugin-dts@6.1.0(rollup@4.17.2)(typescript@5.3.3): + resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 dependencies: - '@babel/core': 7.24.0 - '@babel/preset-env': 7.24.0(@babel/core@7.24.0) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.0) - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - '@swc/core': 1.4.0(@swc/helpers@0.5.3) - '@swc/helpers': 0.5.3 - '@wessberg/stringutil': 1.0.19 - ansi-colors: 4.1.3 - browserslist: 4.23.0 - browserslist-generator: 2.1.0 - compatfactory: 3.0.0(typescript@5.3.3) - crosspath: 2.0.0 - magic-string: 0.30.5 + magic-string: 0.30.8 rollup: 4.17.2 - ts-clone-node: 3.0.0(typescript@5.3.3) - tslib: 2.6.2 typescript: 5.3.3 - dev: false + optionalDependencies: + '@babel/code-frame': 7.24.2 + dev: true + + /rollup-plugin-esbuild@6.1.1(esbuild@0.20.2)(rollup@4.17.2): + resolution: {integrity: sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==} + engines: {node: '>=14.18.0'} + peerDependencies: + esbuild: '>=0.18.0' + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + debug: 4.3.4(supports-color@8.1.1) + es-module-lexer: 1.4.2 + esbuild: 0.20.2 + get-tsconfig: 4.7.2 + rollup: 4.17.2 + transitivePeerDependencies: + - supports-color + dev: true + + /rollup-plugin-node-externals@7.1.2(rollup@4.17.2): + resolution: {integrity: sha512-cVJFKs+ulZxpMmn/s+oi431d93Jq5+G7Sc5ixWDrL2k+Gj+MqXg0KMNWgKf8Mw5qpaG4jVDpsvuqFfiCvRcGeA==} + engines: {node: '>= 21 || ^20.6.0 || ^18.19.0'} + peerDependencies: + rollup: ^3.0.0 || ^4.0.0 + dependencies: + rollup: 4.17.2 + dev: true /rollup@4.17.2: resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} @@ -14877,6 +15073,7 @@ packages: '@rollup/rollup-win32-ia32-msvc': 4.17.2 '@rollup/rollup-win32-x64-msvc': 4.17.2 fsevents: 2.3.3 + dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -15105,6 +15302,7 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} @@ -15146,6 +15344,7 @@ packages: /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + dev: true /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} @@ -15201,15 +15400,9 @@ packages: tslib: 2.6.2 dev: true - /sort-keys@5.0.0: - resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} - engines: {node: '>=12'} - dependencies: - is-plain-obj: 4.1.0 - dev: false - /sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + dev: true /sort-package-json@2.10.0: resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} @@ -15223,6 +15416,7 @@ packages: is-plain-obj: 4.1.0 semver: 7.5.4 sort-object-keys: 1.1.3 + dev: true /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} @@ -15276,18 +15470,22 @@ packages: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.17 + dev: true /spdx-exceptions@2.5.0: resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.17 + dev: true /spdx-license-ids@3.0.17: resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} + dev: true /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -15500,6 +15698,7 @@ packages: /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + dev: true /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -15554,6 +15753,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -15813,6 +16013,7 @@ packages: /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + dev: true /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -15879,16 +16080,6 @@ packages: dependencies: typescript: 5.3.3 - /ts-clone-node@3.0.0(typescript@5.3.3): - resolution: {integrity: sha512-egavvyHbIoelkgh1IC2agNB1uMNjB8VJgh0g/cn0bg2XXTcrtjrGMzEk4OD3Fi2hocICjP3vMa56nkzIzq0FRg==} - engines: {node: '>=14.9.0'} - peerDependencies: - typescript: ^3.x || ^4.x || ^5.x - dependencies: - compatfactory: 3.0.0(typescript@5.3.3) - typescript: 5.3.3 - dev: false - /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -16015,7 +16206,7 @@ packages: engines: {node: '>=10.13.0'} dependencies: chalk: 4.1.2 - enhanced-resolve: 5.15.0 + enhanced-resolve: 5.16.0 tsconfig-paths: 4.2.0 dev: true @@ -16144,14 +16335,10 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: false - /type-fest@4.18.2: resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==} engines: {node: '>=16'} + dev: true /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} @@ -16195,12 +16382,6 @@ packages: for-each: 0.3.3 is-typed-array: 1.1.13 - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: false - /typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} dev: true @@ -16216,10 +16397,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - /ua-parser-js@1.0.35: - resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} - dev: false - /ufo@1.5.0: resolution: {integrity: sha512-c7SxU8XB0LTO7hALl6CcE1Q92ZrLzr1iE0IVIsUa9SlFfkn2B2p6YLO6dLxOj7qCWY98PB3Q3EZbN6bEu8p7jA==} dev: true @@ -16251,6 +16428,7 @@ packages: /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} + dev: true /unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} @@ -16258,19 +16436,17 @@ packages: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 + dev: true /unicode-match-property-value-ecmascript@2.1.0: resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} + dev: true /unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - - /unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} - dev: false + dev: true /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} @@ -16434,6 +16610,7 @@ packages: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.0 + dev: true /update-section@0.3.3: resolution: {integrity: sha512-BpRZMZpgXLuTiKeiu7kK0nIPwGdyrqrs6EDSaXtjD/aQ2T+qVo9a5hRC3HN3iJjCMxNT/VxoLGQ7E/OzE5ucnw==} @@ -16509,6 +16686,7 @@ packages: dependencies: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 + dev: true /validate-npm-package-name@5.0.0: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} @@ -17097,15 +17275,6 @@ packages: signal-exit: 3.0.7 dev: true - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: false - /write-file-atomic@4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -17114,28 +17283,6 @@ packages: signal-exit: 3.0.7 dev: true - /write-json-file@5.0.0: - resolution: {integrity: sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - detect-indent: 7.0.1 - is-plain-obj: 4.1.0 - sort-keys: 5.0.0 - write-file-atomic: 3.0.3 - dev: false - - /write-pkg@7.0.0: - resolution: {integrity: sha512-wXBOrcEUstxZxfqy2hQO0O+c7wcwuVkZCCmBfaFtFssa5kcFqf7SQGYL6YtxKXt/O41z6reAPFJcumUyyiYnTQ==} - engines: {node: '>=16'} - deprecated: Renamed to write-package - dependencies: - deepmerge-ts: 5.1.0 - read-pkg: 8.1.0 - sort-keys: 5.0.0 - type-fest: 4.18.2 - write-json-file: 5.0.0 - dev: false - /ws@8.16.0: resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} @@ -17178,6 +17325,7 @@ packages: /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c1b172cad..7a359a0a0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,3 +2,4 @@ packages: - 'apps/**' - 'libs/**' - 'tools/**' + - 'configs' From 37367f2b24f81d1e0ab5121a4761d775a967502f Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Thu, 2 May 2024 16:50:13 +0100 Subject: [PATCH 13/28] add `preserveModulesRoot` and restrtucture config --- configs/rollup.config.js | 53 +++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/configs/rollup.config.js b/configs/rollup.config.js index 37e76331a..8e86f641c 100644 --- a/configs/rollup.config.js +++ b/configs/rollup.config.js @@ -5,44 +5,47 @@ import { dts } from 'rollup-plugin-dts'; import esbuild from 'rollup-plugin-esbuild'; import { nodeExternals } from 'rollup-plugin-node-externals'; -const config = { - input: 'src/index.ts', +/** @type {import("rollup").RollupOptions.input} */ +const input = 'src/index.ts'; - plugins: [ - nodeResolve({ - extensions: ['.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'], - }), - commonjs(), - json(), - esbuild(), - nodeExternals(), - ], +/** @type {import("rollup").RollupOptions.output} */ +const output = { + dir: 'dist', + format: 'esm', + preserveModules: true, + preserveModulesRoot: 'src', }; +/** @type {import("rollup").RollupOptions.plugins} */ +const plugins = [ + nodeResolve({ + extensions: ['.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'], + }), + commonjs(), + json(), + esbuild(), + nodeExternals(), +]; + +/** @type {import("rollup").RollupOptions} */ export default [ { - ...config, - output: { - dir: 'dist', - format: 'esm', - preserveModules: true, - }, + input, + output, + plugins, }, { - ...config, + input, output: { - dir: 'dist', + ...output, format: 'cjs', - preserveModules: true, entryFileNames: '[name].cjs', }, + plugins, }, { - ...config, + input, + output, plugins: [dts()], - output: { - dir: 'dist', - preserveModules: true, - }, }, ]; From a7b0e54e22973ee2d20e992da5476e36b27c46c0 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Thu, 2 May 2024 17:18:27 +0100 Subject: [PATCH 14/28] correct react compoennts entry files --- libs/@guardian/source-react-components/package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 7d1c0f793..69bc05f6e 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -5,12 +5,12 @@ "sideEffects": false, "type": "module", "exports": { - "types": "./dist/src/index.d.ts", - "import": "./dist/src/index.js", - "require": "./dist/src/index.cjs" + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.cjs" }, - "main": "./dist/src/index.js", - "types": "./dist/src/index.d.ts", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "files": [ "dist" ], From 73588c340c47d8fd02b2da56f190884958786c6c Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Thu, 2 May 2024 17:18:41 +0100 Subject: [PATCH 15/28] use object for rollup entry --- configs/rollup.config.js | 2 +- libs/@guardian/ab-react/tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/rollup.config.js b/configs/rollup.config.js index 8e86f641c..d234911b7 100644 --- a/configs/rollup.config.js +++ b/configs/rollup.config.js @@ -6,7 +6,7 @@ import esbuild from 'rollup-plugin-esbuild'; import { nodeExternals } from 'rollup-plugin-node-externals'; /** @type {import("rollup").RollupOptions.input} */ -const input = 'src/index.ts'; +const input = { index: 'src/index.ts' }; /** @type {import("rollup").RollupOptions.output} */ const output = { diff --git a/libs/@guardian/ab-react/tsconfig.json b/libs/@guardian/ab-react/tsconfig.json index d2dc36b03..583450c7e 100644 --- a/libs/@guardian/ab-react/tsconfig.json +++ b/libs/@guardian/ab-react/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "../../../tsconfig.base.json", - "include": ["."] + "include": ["."], "compilerOptions": { "jsxImportSource": "react" } From f3a3957e7d157b1789bfc742b23080dc7e77b8f1 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Thu, 2 May 2024 17:35:13 +0100 Subject: [PATCH 16/28] ignore `configs` in changesets --- .changeset/config.json | 2 +- configs/package.json | 2 +- nx.json | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index 31a3b7581..89689cedb 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -8,7 +8,7 @@ "baseBranch": "main", "updateInternalDependencies": "patch", "bumpVersionsWithWorkspaceProtocolOnly": true, - "ignore": ["github-pages"], + "ignore": ["github-pages", "configs"], "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { "onlyUpdatePeerDependentsWhenOutOfRange": true } diff --git a/configs/package.json b/configs/package.json index 221ad6ce1..79a317f4b 100644 --- a/configs/package.json +++ b/configs/package.json @@ -1,5 +1,5 @@ { - "name": "config", + "name": "configs", "version": "0.1.0", "type": "module", "devDependencies": { diff --git a/nx.json b/nx.json index c8fe95f1b..1f514416f 100644 --- a/nx.json +++ b/nx.json @@ -60,7 +60,8 @@ "{workspaceRoot}/**/tsconfig*.json", "{workspaceRoot}/.storybook/main.js", "{workspaceRoot}/.nvmrc", - "{workspaceRoot}/.eslintrc.*" + "{workspaceRoot}/.eslintrc.*", + "{workspaceRoot}/configs/rollup.config.js" ], "internalTools": [ "{workspaceRoot}/libs/@guardian/eslint-*/**/*", From 23fe4373735ad76bb6b5027c320541197b2847c5 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Thu, 2 May 2024 23:45:35 +0100 Subject: [PATCH 17/28] `configs` is private --- configs/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/package.json b/configs/package.json index 79a317f4b..57008543d 100644 --- a/configs/package.json +++ b/configs/package.json @@ -1,6 +1,7 @@ { "name": "configs", "version": "0.1.0", + "private": true, "type": "module", "devDependencies": { "@rollup/plugin-commonjs": "^25.0.7", From 4d7ed4a0c3632a41a3d594555102fc42fe61a78b Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 3 May 2024 13:34:13 +0100 Subject: [PATCH 18/28] ignore ts paths buidling storybooks --- .storybook/main.js | 8 -------- .../package.json | 4 ++++ .../source-react-components/package.json | 3 +++ package.json | 1 - pnpm-lock.yaml | 16 ++-------------- 5 files changed, 9 insertions(+), 23 deletions(-) diff --git a/.storybook/main.js b/.storybook/main.js index 9b86e7c40..a8fbb2bd9 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,5 +1,4 @@ const path = require('path'); -const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); const nodeModulesExclude = { and: [/node_modules/], not: [/@guardian\//], @@ -49,13 +48,6 @@ module.exports = { ).exclude = nodeModulesExclude; config.resolve.plugins ||= []; - config.resolve.plugins.push( - new TsconfigPathsPlugin({ - configFile: path.resolve(__dirname, '..', 'tsconfig.base.json'), - extensions: config.resolve.extensions, - mainFields: config.resolve.mainFields, - }), - ); return config; }, framework: { diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index 09c28a43d..b5ffcb363 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -104,6 +104,10 @@ "wireit": { "build-storybook": { "command": "NODE_ENV=production storybook build --webpack-stats-json", + "dependencies": [ + "../source-foundations:build", + "../source-react-components:build" + ], "files": [ "**/*.{ts,tsx,js,json,mdx,md}", "!storybook-static/**", diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 69bc05f6e..962b138ff 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -110,6 +110,9 @@ "wireit": { "build-storybook": { "command": "NODE_ENV=production storybook build --webpack-stats-json", + "dependencies": [ + "../source-foundations:build" + ], "files": [ "**/*.{ts,tsx,js,json,mdx,md}", "!storybook-static/**", diff --git a/package.json b/package.json index 35ed69f08..c3dd15b88 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "sort-package-json": "2.10.0", "storybook": "8.0.5", "ts-jest": "29.1.1", - "tsconfig-paths-webpack-plugin": "4.1.0", "typescript": "5.3.3", "update-section": "0.3.3", "webpack": "5.91.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 53cf16f01..0a8be7657 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,9 +170,6 @@ importers: ts-jest: specifier: 29.1.1 version: 29.1.1(@babel/core@7.24.0)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.3.3) - tsconfig-paths-webpack-plugin: - specifier: 4.1.0 - version: 4.1.0 typescript: specifier: 5.3.3 version: 5.3.3 @@ -2293,10 +2290,10 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.5 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 dev: true /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): @@ -16201,15 +16198,6 @@ packages: typescript: 5.3.3 dev: true - /tsconfig-paths-webpack-plugin@4.1.0: - resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} - engines: {node: '>=10.13.0'} - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.16.0 - tsconfig-paths: 4.2.0 - dev: true - /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: From 2b24d04bb1eb6f43acd71c52517778843ff70a49 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 3 May 2024 14:18:16 +0100 Subject: [PATCH 19/28] use relative path --- .../source-foundations/src/typography/stories/typography.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/@guardian/source-foundations/src/typography/stories/typography.mdx b/libs/@guardian/source-foundations/src/typography/stories/typography.mdx index a8b00f657..d346c9f54 100644 --- a/libs/@guardian/source-foundations/src/typography/stories/typography.mdx +++ b/libs/@guardian/source-foundations/src/typography/stories/typography.mdx @@ -97,4 +97,4 @@ _Note:_ this font is not available on [theguardian.com](https://theguardian.com) ### Specimen -import {textEgyptian17} from 'libs/@guardian/source-foundations/vendor/typography/css'; +import {textEgyptian17} from '../../../vendor/typography/css'; From 95db9db009cfd24655462e48e77b69568b18d413 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 3 May 2024 15:31:25 +0100 Subject: [PATCH 20/28] bump `source-react-components` in dev kithcen --- libs/@guardian/libs/cypress/downloads/downloads.html | 1 - .../package.json | 4 ++-- pnpm-lock.yaml | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 libs/@guardian/libs/cypress/downloads/downloads.html diff --git a/libs/@guardian/libs/cypress/downloads/downloads.html b/libs/@guardian/libs/cypress/downloads/downloads.html deleted file mode 100644 index 18d3040b4..000000000 --- a/libs/@guardian/libs/cypress/downloads/downloads.html +++ /dev/null @@ -1 +0,0 @@ -Cr24 diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index b5ffcb363..09c5eeecf 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -28,7 +28,7 @@ "@emotion/react": "11.11.1", "@guardian/libs": "16.0.0", "@guardian/source-foundations": "14.2.2", - "@guardian/source-react-components": "23.0.0", + "@guardian/source-react-components": "23.0.1", "@types/react": "18.2.11", "react": "18.2.0", "rollup": "^4.16.4", @@ -40,7 +40,7 @@ "@emotion/react": "^11.11.1", "@guardian/libs": "^16.0.0", "@guardian/source-foundations": "^14.2.2", - "@guardian/source-react-components": "^23.0.0", + "@guardian/source-react-components": "^23.0.1", "@types/react": "^18.2.11", "react": "^18.2.0", "tslib": "^2.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0a8be7657..4d36bac20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -705,8 +705,8 @@ importers: specifier: 14.2.2 version: 14.2.2(tslib@2.6.2)(typescript@5.3.3) '@guardian/source-react-components': - specifier: 23.0.0 - version: 23.0.0(@emotion/react@11.11.1)(@guardian/source-foundations@14.2.2)(react@18.2.0)(tslib@2.6.2)(typescript@5.3.3) + specifier: 23.0.1 + version: 23.0.1(@emotion/react@11.11.1)(@guardian/source-foundations@14.2.2)(react@18.2.0)(tslib@2.6.2)(typescript@5.3.3) '@types/react': specifier: 18.2.11 version: 18.2.11 @@ -3663,8 +3663,8 @@ packages: typescript: 5.3.3 dev: true - /@guardian/source-react-components@23.0.0(@emotion/react@11.11.1)(@guardian/source-foundations@14.2.2)(react@18.2.0)(tslib@2.6.2)(typescript@5.3.3): - resolution: {integrity: sha512-jBa9fsiG+V4DLfQwmPFy8sleJCDOYP5A1X0SeIPrPhQPDGXBAuwl9qNJMlR7N0MHCv7z1OchgDlHDQUf9S+Qlw==} + /@guardian/source-react-components@23.0.1(@emotion/react@11.11.1)(@guardian/source-foundations@14.2.2)(react@18.2.0)(tslib@2.6.2)(typescript@5.3.3): + resolution: {integrity: sha512-gBxO7c24VZsYBUPXy507LWwNY1xxnh4VwCDibTK3a2AJat9D6+BTEmNaWD5e5S8pzmr3RY6hSrePGanw8bPYyA==} peerDependencies: '@emotion/react': ^11.11.1 '@guardian/source-foundations': ^14.2.2 From fc57b0f6405cd778f5d417eeb52906a2d67ee78d Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 3 May 2024 17:41:42 +0100 Subject: [PATCH 21/28] these use the version in node_modules right now, no need to build --- .../source-react-components-development-kitchen/package.json | 5 +---- libs/@guardian/source-react-components/package.json | 3 --- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index 09c5eeecf..9603b7f38 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -104,10 +104,7 @@ "wireit": { "build-storybook": { "command": "NODE_ENV=production storybook build --webpack-stats-json", - "dependencies": [ - "../source-foundations:build", - "../source-react-components:build" - ], + "dependencies": [], "files": [ "**/*.{ts,tsx,js,json,mdx,md}", "!storybook-static/**", diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 962b138ff..69bc05f6e 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -110,9 +110,6 @@ "wireit": { "build-storybook": { "command": "NODE_ENV=production storybook build --webpack-stats-json", - "dependencies": [ - "../source-foundations:build" - ], "files": [ "**/*.{ts,tsx,js,json,mdx,md}", "!storybook-static/**", From d8bce73b35fbd2973774492cc7a3d8734445c294 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 3 May 2024 17:44:19 +0100 Subject: [PATCH 22/28] pin deps --- configs/package.json | 14 +++---- libs/@guardian/ab-core/package.json | 2 +- libs/@guardian/ab-react/package.json | 2 +- libs/@guardian/core-web-vitals/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- .../identity-auth-frontend/package.json | 2 +- libs/@guardian/identity-auth/package.json | 2 +- libs/@guardian/libs/package.json | 2 +- libs/@guardian/newsletter-types/package.json | 2 +- .../@guardian/source-foundations/package.json | 2 +- .../package.json | 2 +- .../source-react-components/package.json | 2 +- pnpm-lock.yaml | 38 +++++++++---------- 14 files changed, 38 insertions(+), 38 deletions(-) diff --git a/configs/package.json b/configs/package.json index 57008543d..02c857124 100644 --- a/configs/package.json +++ b/configs/package.json @@ -4,12 +4,12 @@ "private": true, "type": "module", "devDependencies": { - "@rollup/plugin-commonjs": "^25.0.7", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^15.2.3", - "rollup": "^4.16.4", - "rollup-plugin-dts": "^6.1.0", - "rollup-plugin-esbuild": "^6.1.1", - "rollup-plugin-node-externals": "^7.1.2" + "@rollup/plugin-commonjs": "25.0.7", + "@rollup/plugin-json": "6.1.0", + "@rollup/plugin-node-resolve": "15.2.3", + "rollup": "4.17.2", + "rollup-plugin-dts": "6.1.0", + "rollup-plugin-esbuild": "6.1.1", + "rollup-plugin-node-externals": "7.1.2" } } diff --git a/libs/@guardian/ab-core/package.json b/libs/@guardian/ab-core/package.json index 705ce7c6c..8136f09c5 100644 --- a/libs/@guardian/ab-core/package.json +++ b/libs/@guardian/ab-core/package.json @@ -25,7 +25,7 @@ "verify-dist": "jest --setupFilesAfterEnv ./jest.dist.setup.js" }, "devDependencies": { - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/ab-react/package.json b/libs/@guardian/ab-react/package.json index f4fb663f7..1614ef3e8 100644 --- a/libs/@guardian/ab-react/package.json +++ b/libs/@guardian/ab-react/package.json @@ -30,7 +30,7 @@ "@types/react": "18.2.11", "react": "18.2.0", "react-dom": "18.2.0", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/core-web-vitals/package.json b/libs/@guardian/core-web-vitals/package.json index 9ba6a7975..e0eba9dce 100644 --- a/libs/@guardian/core-web-vitals/package.json +++ b/libs/@guardian/core-web-vitals/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@guardian/libs": "16.0.0", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3", "web-vitals": "3.5.0" diff --git a/libs/@guardian/eslint-plugin-source-foundations/package.json b/libs/@guardian/eslint-plugin-source-foundations/package.json index 98e3dcab5..167bacd80 100644 --- a/libs/@guardian/eslint-plugin-source-foundations/package.json +++ b/libs/@guardian/eslint-plugin-source-foundations/package.json @@ -32,7 +32,7 @@ "@types/eslint": "8.56.1", "@types/estree": "1.0.5", "eslint": "8.56.0", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3", "wireit": "0.14.4" diff --git a/libs/@guardian/eslint-plugin-source-react-components/package.json b/libs/@guardian/eslint-plugin-source-react-components/package.json index 4b6c28b72..cd7828773 100644 --- a/libs/@guardian/eslint-plugin-source-react-components/package.json +++ b/libs/@guardian/eslint-plugin-source-react-components/package.json @@ -34,7 +34,7 @@ "@types/estree": "1.0.5", "eslint": "8.56.0", "react": "18.2.0", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/identity-auth-frontend/package.json b/libs/@guardian/identity-auth-frontend/package.json index c0f3a6363..c2dac2116 100644 --- a/libs/@guardian/identity-auth-frontend/package.json +++ b/libs/@guardian/identity-auth-frontend/package.json @@ -28,7 +28,7 @@ "@guardian/identity-auth": "2.1.0", "@guardian/libs": "16.0.0", "jest-fetch-mock": "3.0.3", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/identity-auth/package.json b/libs/@guardian/identity-auth/package.json index 36efb7bed..693b79829 100644 --- a/libs/@guardian/identity-auth/package.json +++ b/libs/@guardian/identity-auth/package.json @@ -29,7 +29,7 @@ "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-fetch-mock": "3.0.3", - "rollup": "^4.16.4", + "rollup": "4.17.2", "ts-jest": "29.1.1", "tslib": "2.6.2", "typescript": "5.3.3" diff --git a/libs/@guardian/libs/package.json b/libs/@guardian/libs/package.json index 68d3eb122..5d3ac14e9 100644 --- a/libs/@guardian/libs/package.json +++ b/libs/@guardian/libs/package.json @@ -31,7 +31,7 @@ "eslint-plugin-cypress": "2.15.1", "jest-fetch-mock": "3.0.3", "mockdate": "3.0.5", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3", "wcag-contrast": "3.0.0", diff --git a/libs/@guardian/newsletter-types/package.json b/libs/@guardian/newsletter-types/package.json index b77c279d5..306e73108 100644 --- a/libs/@guardian/newsletter-types/package.json +++ b/libs/@guardian/newsletter-types/package.json @@ -22,7 +22,7 @@ "lint": "eslint --cache ." }, "devDependencies": { - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3" }, diff --git a/libs/@guardian/source-foundations/package.json b/libs/@guardian/source-foundations/package.json index 32966f543..b8417a82b 100644 --- a/libs/@guardian/source-foundations/package.json +++ b/libs/@guardian/source-foundations/package.json @@ -33,7 +33,7 @@ "lightningcss": "1.24.0", "react": "18.2.0", "react-dom": "18.2.0", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "tsx": "4.7.1", "typescript": "5.3.3", diff --git a/libs/@guardian/source-react-components-development-kitchen/package.json b/libs/@guardian/source-react-components-development-kitchen/package.json index 9603b7f38..9f3c763f7 100644 --- a/libs/@guardian/source-react-components-development-kitchen/package.json +++ b/libs/@guardian/source-react-components-development-kitchen/package.json @@ -31,7 +31,7 @@ "@guardian/source-react-components": "23.0.1", "@types/react": "18.2.11", "react": "18.2.0", - "rollup": "^4.16.4", + "rollup": "4.17.2", "tslib": "2.6.2", "typescript": "5.3.3", "wireit": "0.14.4" diff --git a/libs/@guardian/source-react-components/package.json b/libs/@guardian/source-react-components/package.json index 69bc05f6e..6bc7c514a 100644 --- a/libs/@guardian/source-react-components/package.json +++ b/libs/@guardian/source-react-components/package.json @@ -43,7 +43,7 @@ "mkdirp": "3.0.1", "prettier": "3.2.2", "react": "18.2.0", - "rollup": "^4.16.4", + "rollup": "4.17.2", "ts-jest": "29.1.1", "ts-node": "10.9.2", "tslib": "2.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d36bac20..e264c0355 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -213,31 +213,31 @@ importers: configs: devDependencies: '@rollup/plugin-commonjs': - specifier: ^25.0.7 + specifier: 25.0.7 version: 25.0.7(rollup@4.17.2) '@rollup/plugin-json': - specifier: ^6.1.0 + specifier: 6.1.0 version: 6.1.0(rollup@4.17.2) '@rollup/plugin-node-resolve': - specifier: ^15.2.3 + specifier: 15.2.3 version: 15.2.3(rollup@4.17.2) rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 rollup-plugin-dts: - specifier: ^6.1.0 + specifier: 6.1.0 version: 6.1.0(rollup@4.17.2)(typescript@5.3.3) rollup-plugin-esbuild: - specifier: ^6.1.1 + specifier: 6.1.1 version: 6.1.1(esbuild@0.20.2)(rollup@4.17.2) rollup-plugin-node-externals: - specifier: ^7.1.2 + specifier: 7.1.2 version: 7.1.2(rollup@4.17.2) libs/@guardian/ab-core: devDependencies: rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -264,7 +264,7 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -315,7 +315,7 @@ importers: specifier: 16.0.0 version: 16.0.0(tslib@2.6.2)(typescript@5.3.3) rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -421,7 +421,7 @@ importers: specifier: 8.56.0 version: 8.56.0 rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -467,7 +467,7 @@ importers: specifier: 18.2.0 version: 18.2.0 rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -491,7 +491,7 @@ importers: specifier: 3.0.3 version: 3.0.3 rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 ts-jest: specifier: 29.1.1 @@ -515,7 +515,7 @@ importers: specifier: 3.0.3 version: 3.0.3 rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -545,7 +545,7 @@ importers: specifier: 3.0.5 version: 3.0.5 rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -563,7 +563,7 @@ importers: libs/@guardian/newsletter-types: devDependencies: rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -603,7 +603,7 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 @@ -672,7 +672,7 @@ importers: specifier: 18.2.0 version: 18.2.0 rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 ts-jest: specifier: 29.1.1 @@ -714,7 +714,7 @@ importers: specifier: 18.2.0 version: 18.2.0 rollup: - specifier: ^4.16.4 + specifier: 4.17.2 version: 4.17.2 tslib: specifier: 2.6.2 From 642fe5f8008c72803530562082687404a6c10a33 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Tue, 7 May 2024 15:32:12 +0100 Subject: [PATCH 23/28] move generated code to `src` dirs --- libs/@guardian/design-tokens/package.json | 9 +- .../{vendor => src/__generated__}/tokens.d.ts | 0 .../{vendor => src/__generated__}/tokens.js | 0 .../__generated__}/variables.css | 0 libs/@guardian/design-tokens/tokens.config.js | 2 +- .../scripts/build-type-presets.ts | 2 +- .../__generated__}/typography/css.ts | 0 .../__generated__}/typography/objects.ts | 0 .../@guardian/source-foundations/src/index.ts | 4 +- .../source-foundations/src/tokens.test.ts | 4 +- .../typography/stories/TypographyPresets.tsx | 2 +- .../create-icons/create-icon-component.ts | 4 +- .../scripts/create-icons/index.ts | 9 +- .../scripts/vendor/icons/README.md | 12 - .../__generated__}/icons/README.md | 0 .../__generated__}/icons/SvgAlertPhone.tsx | 2 +- .../__generated__}/icons/SvgAlertRound.tsx | 2 +- .../__generated__}/icons/SvgAlertTriangle.tsx | 2 +- .../__generated__}/icons/SvgAppleBrand.tsx | 2 +- .../__generated__}/icons/SvgArrowContract.tsx | 2 +- .../icons/SvgArrowDownStraight.tsx | 2 +- .../__generated__}/icons/SvgArrowExpand.tsx | 2 +- .../icons/SvgArrowLeftStraight.tsx | 2 +- .../__generated__}/icons/SvgArrowOutdent.tsx | 2 +- .../__generated__}/icons/SvgArrowPopOut.tsx | 2 +- .../icons/SvgArrowRightStraight.tsx | 2 +- .../__generated__}/icons/SvgArrowScroll.tsx | 2 +- .../icons/SvgArrowUpAndDownSmall.tsx | 2 +- .../icons/SvgArrowUpStraight.tsx | 2 +- .../icons/SvgArrowUpStraightSmall.tsx | 2 +- .../__generated__}/icons/SvgAsterisk.tsx | 2 +- .../__generated__}/icons/SvgAudio.tsx | 2 +- .../__generated__}/icons/SvgAudioMute.tsx | 2 +- .../__generated__}/icons/SvgBin.tsx | 2 +- .../__generated__}/icons/SvgBookMark.tsx | 2 +- .../__generated__}/icons/SvgBookMarkCross.tsx | 2 +- .../__generated__}/icons/SvgCalendar.tsx | 2 +- .../__generated__}/icons/SvgCamera.tsx | 2 +- .../__generated__}/icons/SvgCheckmark.tsx | 2 +- .../icons/SvgChevronDownDouble.tsx | 2 +- .../icons/SvgChevronDownSingle.tsx | 2 +- .../icons/SvgChevronDownSingleXsmall.tsx | 2 +- .../icons/SvgChevronLeftDouble.tsx | 2 +- .../icons/SvgChevronLeftSingle.tsx | 2 +- .../icons/SvgChevronRightDouble.tsx | 2 +- .../icons/SvgChevronRightSingle.tsx | 2 +- .../icons/SvgChevronUpDouble.tsx | 2 +- .../icons/SvgChevronUpSingle.tsx | 2 +- .../__generated__}/icons/SvgClock.tsx | 2 +- .../icons/SvgClockBaselineSmall.tsx | 2 +- .../__generated__}/icons/SvgCreditCard.tsx | 2 +- .../__generated__}/icons/SvgCross.tsx | 2 +- .../__generated__}/icons/SvgCrossRound.tsx | 2 +- .../icons/SvgCrossedOutCloud.tsx | 2 +- .../__generated__}/icons/SvgCrosswords.tsx | 2 +- .../__generated__}/icons/SvgDirectDebit.tsx | 2 +- .../icons/SvgDirectDebitWide.tsx | 2 +- .../__generated__}/icons/SvgDocument.tsx | 2 +- .../__generated__}/icons/SvgDownload.tsx | 2 +- .../__generated__}/icons/SvgDragHandle.tsx | 2 +- .../__generated__}/icons/SvgEdit.tsx | 2 +- .../__generated__}/icons/SvgEllipsis.tsx | 2 +- .../__generated__}/icons/SvgEnvelope.tsx | 2 +- .../__generated__}/icons/SvgExclamation.tsx | 2 +- .../__generated__}/icons/SvgExternal.tsx | 2 +- .../__generated__}/icons/SvgEye.tsx | 2 +- .../__generated__}/icons/SvgEyeStrike.tsx | 2 +- .../__generated__}/icons/SvgFacebook.tsx | 2 +- .../__generated__}/icons/SvgFacebookBrand.tsx | 2 +- .../icons/SvgFacebookMessenger.tsx | 2 +- .../__generated__}/icons/SvgFilter.tsx | 2 +- .../__generated__}/icons/SvgGift.tsx | 2 +- .../__generated__}/icons/SvgGlobe.tsx | 2 +- .../__generated__}/icons/SvgGoogleBrand.tsx | 2 +- .../__generated__}/icons/SvgGps.tsx | 2 +- .../__generated__}/icons/SvgHandPointed.tsx | 2 +- .../__generated__}/icons/SvgHouse.tsx | 2 +- .../__generated__}/icons/SvgHouseCross.tsx | 2 +- .../__generated__}/icons/SvgHousePlus.tsx | 2 +- .../__generated__}/icons/SvgHouseSetting.tsx | 2 +- .../__generated__}/icons/SvgIndent.tsx | 2 +- .../__generated__}/icons/SvgInfoRound.tsx | 2 +- .../__generated__}/icons/SvgLinkedIn.tsx | 2 +- .../icons/SvgLocationMarker.tsx | 2 +- .../icons/SvgMagnifyingGlass.tsx | 2 +- .../icons/SvgMagnifyingGlassMinus.tsx | 2 +- .../icons/SvgMagnifyingGlassPlus.tsx | 2 +- .../icons/SvgMagnifyingGlassSadFace.tsx | 2 +- .../icons/SvgMediaControlsBack.tsx | 2 +- .../icons/SvgMediaControlsForward.tsx | 2 +- .../icons/SvgMediaControlsPause.tsx | 2 +- .../icons/SvgMediaControlsPlay.tsx | 2 +- .../icons/SvgMediaControlsStop.tsx | 2 +- .../__generated__}/icons/SvgMenu.tsx | 2 +- .../__generated__}/icons/SvgMessage.tsx | 2 +- .../__generated__}/icons/SvgMessageRound.tsx | 2 +- .../__generated__}/icons/SvgMinus.tsx | 2 +- .../__generated__}/icons/SvgMoon.tsx | 2 +- .../__generated__}/icons/SvgNewsletter.tsx | 2 +- .../icons/SvgNotificationsOff.tsx | 2 +- .../icons/SvgNotificationsOffRound.tsx | 2 +- .../icons/SvgNotificationsOn.tsx | 2 +- .../icons/SvgNotificationsOnRound.tsx | 2 +- .../__generated__}/icons/SvgPadlock.tsx | 2 +- .../__generated__}/icons/SvgPartyOfThree.tsx | 2 +- .../__generated__}/icons/SvgPayPalBrand.tsx | 2 +- .../__generated__}/icons/SvgPerson.tsx | 2 +- .../__generated__}/icons/SvgPersonCross.tsx | 2 +- .../__generated__}/icons/SvgPersonPlus.tsx | 2 +- .../__generated__}/icons/SvgPersonRound.tsx | 2 +- .../__generated__}/icons/SvgPersonTick.tsx | 2 +- .../__generated__}/icons/SvgPhone.tsx | 2 +- .../__generated__}/icons/SvgPinned.tsx | 2 +- .../__generated__}/icons/SvgPinterest.tsx | 2 +- .../__generated__}/icons/SvgPlus.tsx | 2 +- .../__generated__}/icons/SvgQuote.tsx | 2 +- .../__generated__}/icons/SvgReload.tsx | 2 +- .../__generated__}/icons/SvgSettings.tsx | 2 +- .../__generated__}/icons/SvgShare.tsx | 2 +- .../__generated__}/icons/SvgShareCallout.tsx | 2 +- .../__generated__}/icons/SvgSignalBrand.tsx | 2 +- .../__generated__}/icons/SvgSpeechBubble.tsx | 2 +- .../icons/SvgSpeechBubbleCross.tsx | 2 +- .../icons/SvgSpeechBubblePlus.tsx | 2 +- .../__generated__}/icons/SvgStar.tsx | 2 +- .../__generated__}/icons/SvgStarOutline.tsx | 2 +- .../__generated__}/icons/SvgTelegramBrand.tsx | 2 +- .../__generated__}/icons/SvgTextLarge.tsx | 2 +- .../__generated__}/icons/SvgTextSize.tsx | 2 +- .../__generated__}/icons/SvgTextSmall.tsx | 2 +- .../__generated__}/icons/SvgTickRound.tsx | 2 +- .../__generated__}/icons/SvgTwitter.tsx | 2 +- .../__generated__}/icons/SvgUpload.tsx | 2 +- .../__generated__}/icons/SvgVideo.tsx | 2 +- .../__generated__}/icons/SvgWhatsApp.tsx | 2 +- .../__generated__}/icons/SvgWhatsAppBrand.tsx | 2 +- .../src/accordion/AccordionRow.tsx | 2 +- .../src/accordion/AccordionRowNoJS.tsx | 2 +- .../src/button/Button.stories.tsx | 2 +- .../src/button/LinkButton.stories.tsx | 2 +- .../src/choice-card/ChoiceCard.stories.tsx | 2 +- .../src/deprecated-exports.ts | 12 +- .../src/footer/BackToTop.tsx | 2 +- .../src/icons/Icons.stories.tsx | 242 +++++++++--------- .../source-react-components/src/index.ts | 236 ++++++++--------- .../src/link/ButtonLink.stories.tsx | 2 +- .../src/link/Link.stories.tsx | 2 +- .../src/select/Select.tsx | 2 +- .../src/user-feedback/InlineError.tsx | 2 +- .../src/user-feedback/InlineSuccess.tsx | 2 +- 150 files changed, 399 insertions(+), 403 deletions(-) rename libs/@guardian/design-tokens/{vendor => src/__generated__}/tokens.d.ts (100%) rename libs/@guardian/design-tokens/{vendor => src/__generated__}/tokens.js (100%) rename libs/@guardian/design-tokens/{vendor => src/__generated__}/variables.css (100%) rename libs/@guardian/source-foundations/{vendor => src/__generated__}/typography/css.ts (100%) rename libs/@guardian/source-foundations/{vendor => src/__generated__}/typography/objects.ts (100%) delete mode 100644 libs/@guardian/source-react-components/scripts/vendor/icons/README.md rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/README.md (100%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgAlertPhone.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgAlertRound.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgAlertTriangle.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgAppleBrand.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowContract.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowDownStraight.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowExpand.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowLeftStraight.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowOutdent.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowPopOut.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowRightStraight.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowScroll.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowUpAndDownSmall.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowUpStraight.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgArrowUpStraightSmall.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgAsterisk.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgAudio.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgAudioMute.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgBin.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgBookMark.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgBookMarkCross.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCalendar.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCamera.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCheckmark.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronDownDouble.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronDownSingle.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronDownSingleXsmall.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronLeftDouble.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronLeftSingle.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronRightDouble.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronRightSingle.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronUpDouble.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgChevronUpSingle.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgClock.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgClockBaselineSmall.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCreditCard.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCross.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCrossRound.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCrossedOutCloud.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgCrosswords.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgDirectDebit.tsx (98%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgDirectDebitWide.tsx (98%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgDocument.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgDownload.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgDragHandle.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgEdit.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgEllipsis.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgEnvelope.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgExclamation.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgExternal.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgEye.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgEyeStrike.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgFacebook.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgFacebookBrand.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgFacebookMessenger.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgFilter.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgGift.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgGlobe.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgGoogleBrand.tsx (98%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgGps.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgHandPointed.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgHouse.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgHouseCross.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgHousePlus.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgHouseSetting.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgIndent.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgInfoRound.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgLinkedIn.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgLocationMarker.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMagnifyingGlass.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMagnifyingGlassMinus.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMagnifyingGlassPlus.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMagnifyingGlassSadFace.tsx (98%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMediaControlsBack.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMediaControlsForward.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMediaControlsPause.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMediaControlsPlay.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMediaControlsStop.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMenu.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMessage.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMessageRound.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMinus.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgMoon.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgNewsletter.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgNotificationsOff.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgNotificationsOffRound.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgNotificationsOn.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgNotificationsOnRound.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPadlock.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPartyOfThree.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPayPalBrand.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPerson.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPersonCross.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPersonPlus.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPersonRound.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPersonTick.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPhone.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPinned.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPinterest.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgPlus.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgQuote.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgReload.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgSettings.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgShare.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgShareCallout.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgSignalBrand.tsx (98%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgSpeechBubble.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgSpeechBubbleCross.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgSpeechBubblePlus.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgStar.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgStarOutline.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgTelegramBrand.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgTextLarge.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgTextSize.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgTextSmall.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgTickRound.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgTwitter.tsx (96%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgUpload.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgVideo.tsx (95%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgWhatsApp.tsx (97%) rename libs/@guardian/source-react-components/{vendor => src/__generated__}/icons/SvgWhatsAppBrand.tsx (98%) diff --git a/libs/@guardian/design-tokens/package.json b/libs/@guardian/design-tokens/package.json index 539c501f8..f8d7fb3cf 100644 --- a/libs/@guardian/design-tokens/package.json +++ b/libs/@guardian/design-tokens/package.json @@ -3,12 +3,13 @@ "version": "0.1.0--pre.0", "private": true, "type": "module", - "main": "./vendor/tokens.js", + "main": "src/__generated__/tokens.js", + "types": "src/__generated__/tokens.d.ts", "files": [ - "vendor" + "src/__generated__" ], "scripts": { - "build": "co build && prettier --write vendor/**", + "build": "co build && prettier --write src/__generated__/**", "fix": "pnpm lint --fix", "lint": "eslint --cache ." }, @@ -29,7 +30,7 @@ "{projectRoot}/package.json" ], "outputs": [ - "{projectRoot}/vendor" + "{projectRoot}/src/__generated__" ] }, "lint": { diff --git a/libs/@guardian/design-tokens/vendor/tokens.d.ts b/libs/@guardian/design-tokens/src/__generated__/tokens.d.ts similarity index 100% rename from libs/@guardian/design-tokens/vendor/tokens.d.ts rename to libs/@guardian/design-tokens/src/__generated__/tokens.d.ts diff --git a/libs/@guardian/design-tokens/vendor/tokens.js b/libs/@guardian/design-tokens/src/__generated__/tokens.js similarity index 100% rename from libs/@guardian/design-tokens/vendor/tokens.js rename to libs/@guardian/design-tokens/src/__generated__/tokens.js diff --git a/libs/@guardian/design-tokens/vendor/variables.css b/libs/@guardian/design-tokens/src/__generated__/variables.css similarity index 100% rename from libs/@guardian/design-tokens/vendor/variables.css rename to libs/@guardian/design-tokens/src/__generated__/variables.css diff --git a/libs/@guardian/design-tokens/tokens.config.js b/libs/@guardian/design-tokens/tokens.config.js index 47599267e..b318beef8 100644 --- a/libs/@guardian/design-tokens/tokens.config.js +++ b/libs/@guardian/design-tokens/tokens.config.js @@ -25,7 +25,7 @@ const pxToRem = (token) => { /** @type {import('@cobalt-ui/core').Config} */ export default { tokens: 'src/tokens.json', - outDir: './vendor', + outDir: './src/__generated__', plugins: [ pluginCSS({ p3: false, diff --git a/libs/@guardian/source-foundations/scripts/build-type-presets.ts b/libs/@guardian/source-foundations/scripts/build-type-presets.ts index 4bc0bbea8..09ede8655 100644 --- a/libs/@guardian/source-foundations/scripts/build-type-presets.ts +++ b/libs/@guardian/source-foundations/scripts/build-type-presets.ts @@ -16,7 +16,7 @@ console.log('Building typography presets…'); const presetTotal = Object.keys(typographyPresets).length; -const outputPath = `${process.cwd()}/vendor/typography`; +const outputPath = `${process.cwd()}/src/__generated__/typography`; fs.mkdirSync(outputPath, { recursive: true }); const cssOutputPath = `${outputPath}/css.ts`; diff --git a/libs/@guardian/source-foundations/vendor/typography/css.ts b/libs/@guardian/source-foundations/src/__generated__/typography/css.ts similarity index 100% rename from libs/@guardian/source-foundations/vendor/typography/css.ts rename to libs/@guardian/source-foundations/src/__generated__/typography/css.ts diff --git a/libs/@guardian/source-foundations/vendor/typography/objects.ts b/libs/@guardian/source-foundations/src/__generated__/typography/objects.ts similarity index 100% rename from libs/@guardian/source-foundations/vendor/typography/objects.ts rename to libs/@guardian/source-foundations/src/__generated__/typography/objects.ts diff --git a/libs/@guardian/source-foundations/src/index.ts b/libs/@guardian/source-foundations/src/index.ts index 7d888637d..36342fc8c 100644 --- a/libs/@guardian/source-foundations/src/index.ts +++ b/libs/@guardian/source-foundations/src/index.ts @@ -33,8 +33,8 @@ export { export { space, remSpace } from './space/space'; // typography -export * from '../vendor/typography/css'; -export * from '../vendor/typography/objects'; +export * from './__generated__/typography/css'; +export * from './__generated__/typography/objects'; // utils export { appearance } from './utils/supports-queries'; diff --git a/libs/@guardian/source-foundations/src/tokens.test.ts b/libs/@guardian/source-foundations/src/tokens.test.ts index d308e013c..a189fea83 100644 --- a/libs/@guardian/source-foundations/src/tokens.test.ts +++ b/libs/@guardian/source-foundations/src/tokens.test.ts @@ -1,5 +1,5 @@ -import * as typePresetCss from '../vendor/typography/css'; -import * as typePresetObject from '../vendor/typography/objects'; +import * as typePresetCss from './__generated__/typography/css'; +import * as typePresetObject from './__generated__/typography/objects'; import { background, border, diff --git a/libs/@guardian/source-foundations/src/typography/stories/TypographyPresets.tsx b/libs/@guardian/source-foundations/src/typography/stories/TypographyPresets.tsx index 14fe52f4f..aa0004aa3 100644 --- a/libs/@guardian/source-foundations/src/typography/stories/TypographyPresets.tsx +++ b/libs/@guardian/source-foundations/src/typography/stories/TypographyPresets.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { typographyPresets } from '@guardian/design-tokens'; -import * as presets from '../../../vendor/typography/css'; +import * as presets from '../../__generated__/typography/css'; import { palette } from '../../colour/palette'; import { space } from '../../space/space'; diff --git a/libs/@guardian/source-react-components/scripts/create-icons/create-icon-component.ts b/libs/@guardian/source-react-components/scripts/create-icons/create-icon-component.ts index f9955eb77..feae9be81 100644 --- a/libs/@guardian/source-react-components/scripts/create-icons/create-icon-component.ts +++ b/libs/@guardian/source-react-components/scripts/create-icons/create-icon-component.ts @@ -76,7 +76,7 @@ export const createIconComponent = async ({ import { css } from '@emotion/react'; import { iconSize, visuallyHidden } from '@guardian/source-foundations'; - import type { IconProps } from '../../src'; + import type { IconProps } from '../..'; ${variables.imports}; @@ -92,7 +92,7 @@ export const createIconComponent = async ({ import { css } from '@emotion/react'; import { iconSize, visuallyHidden } from '@guardian/source-foundations'; - import type { IconProps } from '../../src'; + import type { IconProps } from '../..'; ${variables.imports}; diff --git a/libs/@guardian/source-react-components/scripts/create-icons/index.ts b/libs/@guardian/source-react-components/scripts/create-icons/index.ts index 6275ff9f6..3cff1caf0 100644 --- a/libs/@guardian/source-react-components/scripts/create-icons/index.ts +++ b/libs/@guardian/source-react-components/scripts/create-icons/index.ts @@ -24,7 +24,14 @@ const SPECIAL_CASES = { isWide: ['direct-debit-wide'], }; -const VENDOR_ICON_PATH = path.resolve(__dirname, '..', '..', 'vendor', 'icons'); +const VENDOR_ICON_PATH = path.resolve( + __dirname, + '..', + '..', + 'src', + '__generated__', + 'icons', +); const warning = [ '// DO NOT EDIT', diff --git a/libs/@guardian/source-react-components/scripts/vendor/icons/README.md b/libs/@guardian/source-react-components/scripts/vendor/icons/README.md deleted file mode 100644 index 858853e77..000000000 --- a/libs/@guardian/source-react-components/scripts/vendor/icons/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Icons - -**The contents of this directory are created automatically. Any edits will be -overwritten sooner or later.** - -The SVGs for these icons are automatically pulled in from the [source design file in -Figma](https://www.figma.com/file/Ai7AELHC6KCz38qKZkvuHo/%E2%97%90-Icons?node-id=55%3A2) -using the fetch-icons script via the Figma API: - -```sh -yarn workspace @guardian/source-react-components create-icons -``` diff --git a/libs/@guardian/source-react-components/vendor/icons/README.md b/libs/@guardian/source-react-components/src/__generated__/icons/README.md similarity index 100% rename from libs/@guardian/source-react-components/vendor/icons/README.md rename to libs/@guardian/source-react-components/src/__generated__/icons/README.md diff --git a/libs/@guardian/source-react-components/vendor/icons/SvgAlertPhone.tsx b/libs/@guardian/source-react-components/src/__generated__/icons/SvgAlertPhone.tsx similarity index 96% rename from libs/@guardian/source-react-components/vendor/icons/SvgAlertPhone.tsx rename to libs/@guardian/source-react-components/src/__generated__/icons/SvgAlertPhone.tsx index 1b2dfbc40..bfbd88bc0 100644 --- a/libs/@guardian/source-react-components/vendor/icons/SvgAlertPhone.tsx +++ b/libs/@guardian/source-react-components/src/__generated__/icons/SvgAlertPhone.tsx @@ -2,7 +2,7 @@ // this file is auto-generated by packages/@guardian/source-react-components/scripts/create-icons/index.ts import { css } from '@emotion/react'; import { iconSize, visuallyHidden } from '@guardian/source-foundations'; -import type { IconProps } from '../../src'; +import type { IconProps } from '../..'; const Svg = ({ size, theme }: IconProps) => ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Date: Tue, 7 May 2024 15:37:06 +0100 Subject: [PATCH 24/28] remove wierd line fo code --- .../source-foundations/src/typography/stories/typography.mdx | 1 - 1 file changed, 1 deletion(-) diff --git a/libs/@guardian/source-foundations/src/typography/stories/typography.mdx b/libs/@guardian/source-foundations/src/typography/stories/typography.mdx index d346c9f54..bf4035041 100644 --- a/libs/@guardian/source-foundations/src/typography/stories/typography.mdx +++ b/libs/@guardian/source-foundations/src/typography/stories/typography.mdx @@ -97,4 +97,3 @@ _Note:_ this font is not available on [theguardian.com](https://theguardian.com) ### Specimen -import {textEgyptian17} from '../../../vendor/typography/css'; From 950d22e3d1909ca4f12569263fef7c3d486ad2dc Mon Sep 17 00:00:00 2001 From: oliverabrahams Date: Tue, 7 May 2024 15:48:08 +0100 Subject: [PATCH 25/28] fix chromatic pin version --- .github/workflows/chromatic.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index e5b20a6f1..0587b8e2f 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -35,7 +35,7 @@ jobs: # It's simpler than using github actions cache. - run: make build:storybooks - - uses: chromaui/action@v11 + - uses: chromaui/action@v11.3.0 with: projectToken: ${{ secrets[matrix.token] }} token: ${{ secrets.GITHUB_TOKEN }} From 614e4e8273045caac5df45bbd8091df1a0649ca9 Mon Sep 17 00:00:00 2001 From: oliverabrahams Date: Tue, 7 May 2024 16:41:20 +0100 Subject: [PATCH 26/28] chromatic pin version reverted --- .github/workflows/chromatic.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 0587b8e2f..e5b20a6f1 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -35,7 +35,7 @@ jobs: # It's simpler than using github actions cache. - run: make build:storybooks - - uses: chromaui/action@v11.3.0 + - uses: chromaui/action@v11 with: projectToken: ${{ secrets[matrix.token] }} token: ${{ secrets.GITHUB_TOKEN }} From b259d55c3108ae44f2d9a25a05f7607c659ead58 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Tue, 7 May 2024 16:56:00 +0100 Subject: [PATCH 27/28] fix inmport paths --- .../src/accordion/AccordionRow.tsx | 2 +- .../src/accordion/AccordionRowNoJS.tsx | 2 +- .../src/button/Button.stories.tsx | 2 +- .../src/button/LinkButton.stories.tsx | 2 +- .../src/choice-card/ChoiceCard.stories.tsx | 2 +- .../src/footer/BackToTop.tsx | 2 +- .../src/icons/Icons.stories.tsx | 242 +++++++++--------- .../src/link/ButtonLink.stories.tsx | 2 +- .../src/link/Link.stories.tsx | 2 +- .../src/select/Select.tsx | 2 +- .../src/user-feedback/InlineError.tsx | 2 +- .../src/user-feedback/InlineSuccess.tsx | 2 +- 12 files changed, 132 insertions(+), 132 deletions(-) diff --git a/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx b/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx index 641f35cd7..81f8c45c6 100644 --- a/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx +++ b/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx @@ -2,7 +2,7 @@ import { css } from '@emotion/react'; import { visuallyHidden as _visuallyHidden } from '@guardian/source-foundations'; import { useEffect, useState } from 'react'; import type { HTMLAttributes } from 'react'; -import { SvgChevronDownSingle } from '.././__generated__/icons/SvgChevronDownSingle'; +import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; import type { Props } from '../@types/Props'; import type { Theme } from '../@types/Theme'; import { mergeThemes } from '../utils/themes'; diff --git a/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx b/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx index 216ad5d00..9bda6d1da 100644 --- a/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx +++ b/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { visuallyHidden as _visuallyHidden } from '@guardian/source-foundations'; -import { SvgChevronDownSingle } from '.././__generated__/icons/SvgChevronDownSingle'; +import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; import type { Theme } from '../@types/Theme'; import { mergeThemes } from '../utils/themes'; import type { AccordionRowProps } from './AccordionRow'; diff --git a/libs/@guardian/source-react-components/src/button/Button.stories.tsx b/libs/@guardian/source-react-components/src/button/Button.stories.tsx index 124c03884..5fad83c30 100644 --- a/libs/@guardian/source-react-components/src/button/Button.stories.tsx +++ b/libs/@guardian/source-react-components/src/button/Button.stories.tsx @@ -1,6 +1,6 @@ import { palette } from '@guardian/source-foundations'; import type { Meta, StoryFn } from '@storybook/react'; -import { SvgCross } from '.././__generated__/icons/SvgCross'; +import { SvgCross } from '../__generated__/icons/SvgCross'; import type { ButtonProps } from './Button'; import { Button } from './Button'; import { themeButtonBrand, themeButtonBrandAlt } from './theme'; diff --git a/libs/@guardian/source-react-components/src/button/LinkButton.stories.tsx b/libs/@guardian/source-react-components/src/button/LinkButton.stories.tsx index 23c8515ba..f14b68cee 100644 --- a/libs/@guardian/source-react-components/src/button/LinkButton.stories.tsx +++ b/libs/@guardian/source-react-components/src/button/LinkButton.stories.tsx @@ -1,6 +1,6 @@ import { palette } from '@guardian/source-foundations'; import type { Meta, StoryFn } from '@storybook/react'; -import { SvgArrowRightStraight } from '.././__generated__/icons/SvgArrowRightStraight'; +import { SvgArrowRightStraight } from '../__generated__/icons/SvgArrowRightStraight'; import { LinkButton } from './LinkButton'; import type { LinkButtonProps } from './LinkButton'; diff --git a/libs/@guardian/source-react-components/src/choice-card/ChoiceCard.stories.tsx b/libs/@guardian/source-react-components/src/choice-card/ChoiceCard.stories.tsx index 5a22ab6e8..74d01e782 100644 --- a/libs/@guardian/source-react-components/src/choice-card/ChoiceCard.stories.tsx +++ b/libs/@guardian/source-react-components/src/choice-card/ChoiceCard.stories.tsx @@ -1,6 +1,6 @@ import { palette } from '@guardian/source-foundations'; import type { Meta, StoryFn } from '@storybook/react'; -import { SvgCamera } from '.././__generated__/icons/SvgCamera'; +import { SvgCamera } from '../__generated__/icons/SvgCamera'; import { ChoiceCard } from './ChoiceCard'; import type { ChoiceCardProps } from './ChoiceCard'; diff --git a/libs/@guardian/source-react-components/src/footer/BackToTop.tsx b/libs/@guardian/source-react-components/src/footer/BackToTop.tsx index d662fb0c6..a325e80ec 100644 --- a/libs/@guardian/source-react-components/src/footer/BackToTop.tsx +++ b/libs/@guardian/source-react-components/src/footer/BackToTop.tsx @@ -1,5 +1,5 @@ -import { SvgChevronUpSingle } from '.././__generated__/icons/SvgChevronUpSingle'; import type { Theme } from '../@types/Theme'; +import { SvgChevronUpSingle } from '../__generated__/icons/SvgChevronUpSingle'; import { backToTop, backToTopIcon } from './styles'; export const BackToTop = ( diff --git a/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx b/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx index 0aeb14986..7960cfc18 100644 --- a/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx +++ b/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx @@ -1,126 +1,126 @@ import { palette } from '@guardian/source-foundations'; import type { Meta, StoryFn } from '@storybook/react'; -import { SvgAlertPhone } from '.././__generated__/icons/SvgAlertPhone'; -import { SvgAlertRound } from '.././__generated__/icons/SvgAlertRound'; -import { SvgAlertTriangle } from '.././__generated__/icons/SvgAlertTriangle'; -import { SvgAppleBrand } from '.././__generated__/icons/SvgAppleBrand'; -import { SvgArrowContract } from '.././__generated__/icons/SvgArrowContract'; -import { SvgArrowDownStraight } from '.././__generated__/icons/SvgArrowDownStraight'; -import { SvgArrowExpand } from '.././__generated__/icons/SvgArrowExpand'; -import { SvgArrowLeftStraight } from '.././__generated__/icons/SvgArrowLeftStraight'; -import { SvgArrowOutdent } from '.././__generated__/icons/SvgArrowOutdent'; -import { SvgArrowPopOut } from '.././__generated__/icons/SvgArrowPopOut'; -import { SvgArrowRightStraight } from '.././__generated__/icons/SvgArrowRightStraight'; -import { SvgArrowScroll } from '.././__generated__/icons/SvgArrowScroll'; -import { SvgArrowUpAndDownSmall } from '.././__generated__/icons/SvgArrowUpAndDownSmall'; -import { SvgArrowUpStraight } from '.././__generated__/icons/SvgArrowUpStraight'; -import { SvgArrowUpStraightSmall } from '.././__generated__/icons/SvgArrowUpStraightSmall'; -import { SvgAsterisk } from '.././__generated__/icons/SvgAsterisk'; -import { SvgAudio } from '.././__generated__/icons/SvgAudio'; -import { SvgAudioMute } from '.././__generated__/icons/SvgAudioMute'; -import { SvgBin } from '.././__generated__/icons/SvgBin'; -import { SvgBookMark } from '.././__generated__/icons/SvgBookMark'; -import { SvgBookMarkCross } from '.././__generated__/icons/SvgBookMarkCross'; -import { SvgCalendar } from '.././__generated__/icons/SvgCalendar'; -import { SvgCamera } from '.././__generated__/icons/SvgCamera'; -import { SvgCheckmark } from '.././__generated__/icons/SvgCheckmark'; -import { SvgChevronDownDouble } from '.././__generated__/icons/SvgChevronDownDouble'; -import { SvgChevronDownSingle } from '.././__generated__/icons/SvgChevronDownSingle'; -import { SvgChevronDownSingleXsmall } from '.././__generated__/icons/SvgChevronDownSingleXsmall'; -import { SvgChevronLeftDouble } from '.././__generated__/icons/SvgChevronLeftDouble'; -import { SvgChevronLeftSingle } from '.././__generated__/icons/SvgChevronLeftSingle'; -import { SvgChevronRightDouble } from '.././__generated__/icons/SvgChevronRightDouble'; -import { SvgChevronRightSingle } from '.././__generated__/icons/SvgChevronRightSingle'; -import { SvgChevronUpDouble } from '.././__generated__/icons/SvgChevronUpDouble'; -import { SvgChevronUpSingle } from '.././__generated__/icons/SvgChevronUpSingle'; -import { SvgClock } from '.././__generated__/icons/SvgClock'; -import { SvgClockBaselineSmall } from '.././__generated__/icons/SvgClockBaselineSmall'; -import { SvgCreditCard } from '.././__generated__/icons/SvgCreditCard'; -import { SvgCross } from '.././__generated__/icons/SvgCross'; -import { SvgCrossedOutCloud } from '.././__generated__/icons/SvgCrossedOutCloud'; -import { SvgCrossRound } from '.././__generated__/icons/SvgCrossRound'; -import { SvgCrosswords } from '.././__generated__/icons/SvgCrosswords'; -import { SvgDirectDebit } from '.././__generated__/icons/SvgDirectDebit'; -import { SvgDirectDebitWide } from '.././__generated__/icons/SvgDirectDebitWide'; -import { SvgDocument } from '.././__generated__/icons/SvgDocument'; -import { SvgDownload } from '.././__generated__/icons/SvgDownload'; -import { SvgDragHandle } from '.././__generated__/icons/SvgDragHandle'; -import { SvgEdit } from '.././__generated__/icons/SvgEdit'; -import { SvgEllipsis } from '.././__generated__/icons/SvgEllipsis'; -import { SvgEnvelope } from '.././__generated__/icons/SvgEnvelope'; -import { SvgExclamation } from '.././__generated__/icons/SvgExclamation'; -import { SvgExternal } from '.././__generated__/icons/SvgExternal'; -import { SvgEye } from '.././__generated__/icons/SvgEye'; -import { SvgEyeStrike } from '.././__generated__/icons/SvgEyeStrike'; -import { SvgFacebook } from '.././__generated__/icons/SvgFacebook'; -import { SvgFacebookBrand } from '.././__generated__/icons/SvgFacebookBrand'; -import { SvgFacebookMessenger } from '.././__generated__/icons/SvgFacebookMessenger'; -import { SvgFilter } from '.././__generated__/icons/SvgFilter'; -import { SvgGift } from '.././__generated__/icons/SvgGift'; -import { SvgGlobe } from '.././__generated__/icons/SvgGlobe'; -import { SvgGoogleBrand } from '.././__generated__/icons/SvgGoogleBrand'; -import { SvgGps } from '.././__generated__/icons/SvgGps'; -import { SvgHandPointed } from '.././__generated__/icons/SvgHandPointed'; -import { SvgHouse } from '.././__generated__/icons/SvgHouse'; -import { SvgHouseCross } from '.././__generated__/icons/SvgHouseCross'; -import { SvgHousePlus } from '.././__generated__/icons/SvgHousePlus'; -import { SvgHouseSetting } from '.././__generated__/icons/SvgHouseSetting'; -import { SvgIndent } from '.././__generated__/icons/SvgIndent'; -import { SvgInfoRound } from '.././__generated__/icons/SvgInfoRound'; -import { SvgLinkedIn } from '.././__generated__/icons/SvgLinkedIn'; -import { SvgLocationMarker } from '.././__generated__/icons/SvgLocationMarker'; -import { SvgMagnifyingGlass } from '.././__generated__/icons/SvgMagnifyingGlass'; -import { SvgMagnifyingGlassMinus } from '.././__generated__/icons/SvgMagnifyingGlassMinus'; -import { SvgMagnifyingGlassPlus } from '.././__generated__/icons/SvgMagnifyingGlassPlus'; -import { SvgMagnifyingGlassSadFace } from '.././__generated__/icons/SvgMagnifyingGlassSadFace'; -import { SvgMediaControlsBack } from '.././__generated__/icons/SvgMediaControlsBack'; -import { SvgMediaControlsForward } from '.././__generated__/icons/SvgMediaControlsForward'; -import { SvgMediaControlsPause } from '.././__generated__/icons/SvgMediaControlsPause'; -import { SvgMediaControlsPlay } from '.././__generated__/icons/SvgMediaControlsPlay'; -import { SvgMediaControlsStop } from '.././__generated__/icons/SvgMediaControlsStop'; -import { SvgMenu } from '.././__generated__/icons/SvgMenu'; -import { SvgMessage } from '.././__generated__/icons/SvgMessage'; -import { SvgMessageRound } from '.././__generated__/icons/SvgMessageRound'; -import { SvgMinus } from '.././__generated__/icons/SvgMinus'; -import { SvgMoon } from '.././__generated__/icons/SvgMoon'; -import { SvgNewsletter } from '.././__generated__/icons/SvgNewsletter'; -import { SvgNotificationsOff } from '.././__generated__/icons/SvgNotificationsOff'; -import { SvgNotificationsOffRound } from '.././__generated__/icons/SvgNotificationsOffRound'; -import { SvgNotificationsOn } from '.././__generated__/icons/SvgNotificationsOn'; -import { SvgNotificationsOnRound } from '.././__generated__/icons/SvgNotificationsOnRound'; -import { SvgPadlock } from '.././__generated__/icons/SvgPadlock'; -import { SvgPartyOfThree } from '.././__generated__/icons/SvgPartyOfThree'; -import { SvgPayPalBrand } from '.././__generated__/icons/SvgPayPalBrand'; -import { SvgPerson } from '.././__generated__/icons/SvgPerson'; -import { SvgPersonCross } from '.././__generated__/icons/SvgPersonCross'; -import { SvgPersonPlus } from '.././__generated__/icons/SvgPersonPlus'; -import { SvgPersonRound } from '.././__generated__/icons/SvgPersonRound'; -import { SvgPersonTick } from '.././__generated__/icons/SvgPersonTick'; -import { SvgPhone } from '.././__generated__/icons/SvgPhone'; -import { SvgPinned } from '.././__generated__/icons/SvgPinned'; -import { SvgPinterest } from '.././__generated__/icons/SvgPinterest'; -import { SvgPlus } from '.././__generated__/icons/SvgPlus'; -import { SvgQuote } from '.././__generated__/icons/SvgQuote'; -import { SvgReload } from '.././__generated__/icons/SvgReload'; -import { SvgSettings } from '.././__generated__/icons/SvgSettings'; -import { SvgShare } from '.././__generated__/icons/SvgShare'; -import { SvgShareCallout } from '.././__generated__/icons/SvgShareCallout'; -import { SvgSignalBrand } from '.././__generated__/icons/SvgSignalBrand'; -import { SvgSpeechBubble } from '.././__generated__/icons/SvgSpeechBubble'; -import { SvgSpeechBubbleCross } from '.././__generated__/icons/SvgSpeechBubbleCross'; -import { SvgSpeechBubblePlus } from '.././__generated__/icons/SvgSpeechBubblePlus'; -import { SvgStar } from '.././__generated__/icons/SvgStar'; -import { SvgStarOutline } from '.././__generated__/icons/SvgStarOutline'; -import { SvgTelegramBrand } from '.././__generated__/icons/SvgTelegramBrand'; -import { SvgTextLarge } from '.././__generated__/icons/SvgTextLarge'; -import { SvgTextSize } from '.././__generated__/icons/SvgTextSize'; -import { SvgTextSmall } from '.././__generated__/icons/SvgTextSmall'; -import { SvgTickRound } from '.././__generated__/icons/SvgTickRound'; -import { SvgTwitter } from '.././__generated__/icons/SvgTwitter'; -import { SvgUpload } from '.././__generated__/icons/SvgUpload'; -import { SvgVideo } from '.././__generated__/icons/SvgVideo'; -import { SvgWhatsApp } from '.././__generated__/icons/SvgWhatsApp'; -import { SvgWhatsAppBrand } from '.././__generated__/icons/SvgWhatsAppBrand'; +import { SvgAlertPhone } from '../__generated__/icons/SvgAlertPhone'; +import { SvgAlertRound } from '../__generated__/icons/SvgAlertRound'; +import { SvgAlertTriangle } from '../__generated__/icons/SvgAlertTriangle'; +import { SvgAppleBrand } from '../__generated__/icons/SvgAppleBrand'; +import { SvgArrowContract } from '../__generated__/icons/SvgArrowContract'; +import { SvgArrowDownStraight } from '../__generated__/icons/SvgArrowDownStraight'; +import { SvgArrowExpand } from '../__generated__/icons/SvgArrowExpand'; +import { SvgArrowLeftStraight } from '../__generated__/icons/SvgArrowLeftStraight'; +import { SvgArrowOutdent } from '../__generated__/icons/SvgArrowOutdent'; +import { SvgArrowPopOut } from '../__generated__/icons/SvgArrowPopOut'; +import { SvgArrowRightStraight } from '../__generated__/icons/SvgArrowRightStraight'; +import { SvgArrowScroll } from '../__generated__/icons/SvgArrowScroll'; +import { SvgArrowUpAndDownSmall } from '../__generated__/icons/SvgArrowUpAndDownSmall'; +import { SvgArrowUpStraight } from '../__generated__/icons/SvgArrowUpStraight'; +import { SvgArrowUpStraightSmall } from '../__generated__/icons/SvgArrowUpStraightSmall'; +import { SvgAsterisk } from '../__generated__/icons/SvgAsterisk'; +import { SvgAudio } from '../__generated__/icons/SvgAudio'; +import { SvgAudioMute } from '../__generated__/icons/SvgAudioMute'; +import { SvgBin } from '../__generated__/icons/SvgBin'; +import { SvgBookMark } from '../__generated__/icons/SvgBookMark'; +import { SvgBookMarkCross } from '../__generated__/icons/SvgBookMarkCross'; +import { SvgCalendar } from '../__generated__/icons/SvgCalendar'; +import { SvgCamera } from '../__generated__/icons/SvgCamera'; +import { SvgCheckmark } from '../__generated__/icons/SvgCheckmark'; +import { SvgChevronDownDouble } from '../__generated__/icons/SvgChevronDownDouble'; +import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; +import { SvgChevronDownSingleXsmall } from '../__generated__/icons/SvgChevronDownSingleXsmall'; +import { SvgChevronLeftDouble } from '../__generated__/icons/SvgChevronLeftDouble'; +import { SvgChevronLeftSingle } from '../__generated__/icons/SvgChevronLeftSingle'; +import { SvgChevronRightDouble } from '../__generated__/icons/SvgChevronRightDouble'; +import { SvgChevronRightSingle } from '../__generated__/icons/SvgChevronRightSingle'; +import { SvgChevronUpDouble } from '../__generated__/icons/SvgChevronUpDouble'; +import { SvgChevronUpSingle } from '../__generated__/icons/SvgChevronUpSingle'; +import { SvgClock } from '../__generated__/icons/SvgClock'; +import { SvgClockBaselineSmall } from '../__generated__/icons/SvgClockBaselineSmall'; +import { SvgCreditCard } from '../__generated__/icons/SvgCreditCard'; +import { SvgCross } from '../__generated__/icons/SvgCross'; +import { SvgCrossedOutCloud } from '../__generated__/icons/SvgCrossedOutCloud'; +import { SvgCrossRound } from '../__generated__/icons/SvgCrossRound'; +import { SvgCrosswords } from '../__generated__/icons/SvgCrosswords'; +import { SvgDirectDebit } from '../__generated__/icons/SvgDirectDebit'; +import { SvgDirectDebitWide } from '../__generated__/icons/SvgDirectDebitWide'; +import { SvgDocument } from '../__generated__/icons/SvgDocument'; +import { SvgDownload } from '../__generated__/icons/SvgDownload'; +import { SvgDragHandle } from '../__generated__/icons/SvgDragHandle'; +import { SvgEdit } from '../__generated__/icons/SvgEdit'; +import { SvgEllipsis } from '../__generated__/icons/SvgEllipsis'; +import { SvgEnvelope } from '../__generated__/icons/SvgEnvelope'; +import { SvgExclamation } from '../__generated__/icons/SvgExclamation'; +import { SvgExternal } from '../__generated__/icons/SvgExternal'; +import { SvgEye } from '../__generated__/icons/SvgEye'; +import { SvgEyeStrike } from '../__generated__/icons/SvgEyeStrike'; +import { SvgFacebook } from '../__generated__/icons/SvgFacebook'; +import { SvgFacebookBrand } from '../__generated__/icons/SvgFacebookBrand'; +import { SvgFacebookMessenger } from '../__generated__/icons/SvgFacebookMessenger'; +import { SvgFilter } from '../__generated__/icons/SvgFilter'; +import { SvgGift } from '../__generated__/icons/SvgGift'; +import { SvgGlobe } from '../__generated__/icons/SvgGlobe'; +import { SvgGoogleBrand } from '../__generated__/icons/SvgGoogleBrand'; +import { SvgGps } from '../__generated__/icons/SvgGps'; +import { SvgHandPointed } from '../__generated__/icons/SvgHandPointed'; +import { SvgHouse } from '../__generated__/icons/SvgHouse'; +import { SvgHouseCross } from '../__generated__/icons/SvgHouseCross'; +import { SvgHousePlus } from '../__generated__/icons/SvgHousePlus'; +import { SvgHouseSetting } from '../__generated__/icons/SvgHouseSetting'; +import { SvgIndent } from '../__generated__/icons/SvgIndent'; +import { SvgInfoRound } from '../__generated__/icons/SvgInfoRound'; +import { SvgLinkedIn } from '../__generated__/icons/SvgLinkedIn'; +import { SvgLocationMarker } from '../__generated__/icons/SvgLocationMarker'; +import { SvgMagnifyingGlass } from '../__generated__/icons/SvgMagnifyingGlass'; +import { SvgMagnifyingGlassMinus } from '../__generated__/icons/SvgMagnifyingGlassMinus'; +import { SvgMagnifyingGlassPlus } from '../__generated__/icons/SvgMagnifyingGlassPlus'; +import { SvgMagnifyingGlassSadFace } from '../__generated__/icons/SvgMagnifyingGlassSadFace'; +import { SvgMediaControlsBack } from '../__generated__/icons/SvgMediaControlsBack'; +import { SvgMediaControlsForward } from '../__generated__/icons/SvgMediaControlsForward'; +import { SvgMediaControlsPause } from '../__generated__/icons/SvgMediaControlsPause'; +import { SvgMediaControlsPlay } from '../__generated__/icons/SvgMediaControlsPlay'; +import { SvgMediaControlsStop } from '../__generated__/icons/SvgMediaControlsStop'; +import { SvgMenu } from '../__generated__/icons/SvgMenu'; +import { SvgMessage } from '../__generated__/icons/SvgMessage'; +import { SvgMessageRound } from '../__generated__/icons/SvgMessageRound'; +import { SvgMinus } from '../__generated__/icons/SvgMinus'; +import { SvgMoon } from '../__generated__/icons/SvgMoon'; +import { SvgNewsletter } from '../__generated__/icons/SvgNewsletter'; +import { SvgNotificationsOff } from '../__generated__/icons/SvgNotificationsOff'; +import { SvgNotificationsOffRound } from '../__generated__/icons/SvgNotificationsOffRound'; +import { SvgNotificationsOn } from '../__generated__/icons/SvgNotificationsOn'; +import { SvgNotificationsOnRound } from '../__generated__/icons/SvgNotificationsOnRound'; +import { SvgPadlock } from '../__generated__/icons/SvgPadlock'; +import { SvgPartyOfThree } from '../__generated__/icons/SvgPartyOfThree'; +import { SvgPayPalBrand } from '../__generated__/icons/SvgPayPalBrand'; +import { SvgPerson } from '../__generated__/icons/SvgPerson'; +import { SvgPersonCross } from '../__generated__/icons/SvgPersonCross'; +import { SvgPersonPlus } from '../__generated__/icons/SvgPersonPlus'; +import { SvgPersonRound } from '../__generated__/icons/SvgPersonRound'; +import { SvgPersonTick } from '../__generated__/icons/SvgPersonTick'; +import { SvgPhone } from '../__generated__/icons/SvgPhone'; +import { SvgPinned } from '../__generated__/icons/SvgPinned'; +import { SvgPinterest } from '../__generated__/icons/SvgPinterest'; +import { SvgPlus } from '../__generated__/icons/SvgPlus'; +import { SvgQuote } from '../__generated__/icons/SvgQuote'; +import { SvgReload } from '../__generated__/icons/SvgReload'; +import { SvgSettings } from '../__generated__/icons/SvgSettings'; +import { SvgShare } from '../__generated__/icons/SvgShare'; +import { SvgShareCallout } from '../__generated__/icons/SvgShareCallout'; +import { SvgSignalBrand } from '../__generated__/icons/SvgSignalBrand'; +import { SvgSpeechBubble } from '../__generated__/icons/SvgSpeechBubble'; +import { SvgSpeechBubbleCross } from '../__generated__/icons/SvgSpeechBubbleCross'; +import { SvgSpeechBubblePlus } from '../__generated__/icons/SvgSpeechBubblePlus'; +import { SvgStar } from '../__generated__/icons/SvgStar'; +import { SvgStarOutline } from '../__generated__/icons/SvgStarOutline'; +import { SvgTelegramBrand } from '../__generated__/icons/SvgTelegramBrand'; +import { SvgTextLarge } from '../__generated__/icons/SvgTextLarge'; +import { SvgTextSize } from '../__generated__/icons/SvgTextSize'; +import { SvgTextSmall } from '../__generated__/icons/SvgTextSmall'; +import { SvgTickRound } from '../__generated__/icons/SvgTickRound'; +import { SvgTwitter } from '../__generated__/icons/SvgTwitter'; +import { SvgUpload } from '../__generated__/icons/SvgUpload'; +import { SvgVideo } from '../__generated__/icons/SvgVideo'; +import { SvgWhatsApp } from '../__generated__/icons/SvgWhatsApp'; +import { SvgWhatsAppBrand } from '../__generated__/icons/SvgWhatsAppBrand'; import type { IconProps, IconSize } from '../@types/Icons'; import { SvgSpinner } from './SvgSpinner'; import type { ThemeIcon } from './theme'; diff --git a/libs/@guardian/source-react-components/src/link/ButtonLink.stories.tsx b/libs/@guardian/source-react-components/src/link/ButtonLink.stories.tsx index f9f465454..db3f6446a 100644 --- a/libs/@guardian/source-react-components/src/link/ButtonLink.stories.tsx +++ b/libs/@guardian/source-react-components/src/link/ButtonLink.stories.tsx @@ -1,6 +1,6 @@ import { palette } from '@guardian/source-foundations'; import type { Meta, StoryFn } from '@storybook/react'; -import { SvgExternal } from '.././__generated__/icons/SvgExternal'; +import { SvgExternal } from '../__generated__/icons/SvgExternal'; import type { ButtonLinkProps } from './ButtonLink'; import { ButtonLink } from './ButtonLink'; diff --git a/libs/@guardian/source-react-components/src/link/Link.stories.tsx b/libs/@guardian/source-react-components/src/link/Link.stories.tsx index e4bb83f49..984c08c38 100644 --- a/libs/@guardian/source-react-components/src/link/Link.stories.tsx +++ b/libs/@guardian/source-react-components/src/link/Link.stories.tsx @@ -20,7 +20,7 @@ import { textSans34, } from '@guardian/source-foundations'; import type { Meta, StoryFn } from '@storybook/react'; -import { SvgExternal } from '.././__generated__/icons/SvgExternal'; +import { SvgExternal } from '../__generated__/icons/SvgExternal'; import { Link } from './Link'; import type { LinkProps } from './Link'; import { themeLinkBrand, themeLinkBrandAlt } from './theme'; diff --git a/libs/@guardian/source-react-components/src/select/Select.tsx b/libs/@guardian/source-react-components/src/select/Select.tsx index 0751fc2ff..9a05e0cb5 100644 --- a/libs/@guardian/source-react-components/src/select/Select.tsx +++ b/libs/@guardian/source-react-components/src/select/Select.tsx @@ -1,8 +1,8 @@ import { descriptionId, generateSourceId } from '@guardian/source-foundations'; import type { ReactNode, SelectHTMLAttributes } from 'react'; -import { SvgChevronDownSingle } from '.././__generated__/icons/SvgChevronDownSingle'; import type { Props } from '../@types/Props'; import type { Theme } from '../@types/Theme'; +import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; import { Label } from '../label/Label'; import { InlineError } from '../user-feedback/InlineError'; import { InlineSuccess } from '../user-feedback/InlineSuccess'; diff --git a/libs/@guardian/source-react-components/src/user-feedback/InlineError.tsx b/libs/@guardian/source-react-components/src/user-feedback/InlineError.tsx index 9edce8347..7ba732f09 100644 --- a/libs/@guardian/source-react-components/src/user-feedback/InlineError.tsx +++ b/libs/@guardian/source-react-components/src/user-feedback/InlineError.tsx @@ -1,5 +1,5 @@ -import { SvgAlertRound } from '.././__generated__/icons/SvgAlertRound'; import type { Theme } from '../@types/Theme'; +import { SvgAlertRound } from '../__generated__/icons/SvgAlertRound'; import type { UserFeedbackProps } from './@types/UserFeedbackProps'; import { mergedTheme } from './shared'; import { inlineError } from './styles'; diff --git a/libs/@guardian/source-react-components/src/user-feedback/InlineSuccess.tsx b/libs/@guardian/source-react-components/src/user-feedback/InlineSuccess.tsx index 8b779387e..300efe72f 100644 --- a/libs/@guardian/source-react-components/src/user-feedback/InlineSuccess.tsx +++ b/libs/@guardian/source-react-components/src/user-feedback/InlineSuccess.tsx @@ -1,5 +1,5 @@ -import { SvgTickRound } from '.././__generated__/icons/SvgTickRound'; import type { Theme } from '../@types/Theme'; +import { SvgTickRound } from '../__generated__/icons/SvgTickRound'; import type { UserFeedbackProps } from './@types/UserFeedbackProps'; import { mergedTheme } from './shared'; import { inlineSuccess } from './styles'; From 9275d89e77b9b0b23436ec41d450d65696efd039 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Tue, 7 May 2024 17:02:25 +0100 Subject: [PATCH 28/28] lint fixes --- libs/@guardian/source-foundations/.eslintrc.cjs | 1 + .../source-react-components-development-kitchen/.eslintrc.cjs | 1 + libs/@guardian/source-react-components/.eslintrc.cjs | 1 + .../source-react-components/src/accordion/AccordionRow.tsx | 2 +- .../source-react-components/src/accordion/AccordionRowNoJS.tsx | 2 +- .../source-react-components/src/icons/Icons.stories.tsx | 2 +- 6 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libs/@guardian/source-foundations/.eslintrc.cjs b/libs/@guardian/source-foundations/.eslintrc.cjs index 067569d20..3653d6d3d 100644 --- a/libs/@guardian/source-foundations/.eslintrc.cjs +++ b/libs/@guardian/source-foundations/.eslintrc.cjs @@ -6,6 +6,7 @@ module.exports = { 'jest.dist.*', // depends on build output, so don't lint it '.wireit', 'dist', + 'storybook-static', ], overrides: [ { diff --git a/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs b/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs index 4168c3cc1..f37db6613 100644 --- a/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs +++ b/libs/@guardian/source-react-components-development-kitchen/.eslintrc.cjs @@ -6,6 +6,7 @@ module.exports = { 'jest.dist.*', // depends on build output, so don't lint it '.wireit', 'dist', + 'storybook-static', ], overrides: [ { diff --git a/libs/@guardian/source-react-components/.eslintrc.cjs b/libs/@guardian/source-react-components/.eslintrc.cjs index ef43a997a..918c919f0 100644 --- a/libs/@guardian/source-react-components/.eslintrc.cjs +++ b/libs/@guardian/source-react-components/.eslintrc.cjs @@ -5,6 +5,7 @@ module.exports = { 'node_modules', 'jest.dist.*', // depends on build output, so don't lint it 'dist', + 'storybook-static', ], overrides: [ { diff --git a/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx b/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx index 81f8c45c6..f348adc55 100644 --- a/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx +++ b/libs/@guardian/source-react-components/src/accordion/AccordionRow.tsx @@ -2,9 +2,9 @@ import { css } from '@emotion/react'; import { visuallyHidden as _visuallyHidden } from '@guardian/source-foundations'; import { useEffect, useState } from 'react'; import type { HTMLAttributes } from 'react'; -import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; import type { Props } from '../@types/Props'; import type { Theme } from '../@types/Theme'; +import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; import { mergeThemes } from '../utils/themes'; import { AccordionRowNoJS } from './AccordionRowNoJS'; import { diff --git a/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx b/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx index 9bda6d1da..351b2dfb6 100644 --- a/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx +++ b/libs/@guardian/source-react-components/src/accordion/AccordionRowNoJS.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/react'; import { visuallyHidden as _visuallyHidden } from '@guardian/source-foundations'; -import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; import type { Theme } from '../@types/Theme'; +import { SvgChevronDownSingle } from '../__generated__/icons/SvgChevronDownSingle'; import { mergeThemes } from '../utils/themes'; import type { AccordionRowProps } from './AccordionRow'; import { diff --git a/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx b/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx index 7960cfc18..163b66608 100644 --- a/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx +++ b/libs/@guardian/source-react-components/src/icons/Icons.stories.tsx @@ -1,5 +1,6 @@ import { palette } from '@guardian/source-foundations'; import type { Meta, StoryFn } from '@storybook/react'; +import type { IconProps, IconSize } from '../@types/Icons'; import { SvgAlertPhone } from '../__generated__/icons/SvgAlertPhone'; import { SvgAlertRound } from '../__generated__/icons/SvgAlertRound'; import { SvgAlertTriangle } from '../__generated__/icons/SvgAlertTriangle'; @@ -121,7 +122,6 @@ import { SvgUpload } from '../__generated__/icons/SvgUpload'; import { SvgVideo } from '../__generated__/icons/SvgVideo'; import { SvgWhatsApp } from '../__generated__/icons/SvgWhatsApp'; import { SvgWhatsAppBrand } from '../__generated__/icons/SvgWhatsAppBrand'; -import type { IconProps, IconSize } from '../@types/Icons'; import { SvgSpinner } from './SvgSpinner'; import type { ThemeIcon } from './theme';