diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index ecb4255..0000000 --- a/.eslintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": [ - "@aurodesignsystem/eslint-config" - ], - "rules": { - "no-magic-numbers": [ - "error", - { - "ignore": [0, 1, 13, 32], - "ignoreArrayIndexes": true - } - ] - } -} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..015edd7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "cSpell.words": [ + "noncomponent", + "ondark", + "WCSS" + ] +} diff --git a/README.md b/README.md index d3fe599..805a973 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ In cases where the project is not able to process JS assets, there are pre-proce ```html - + ``` diff --git a/apiExamples/basic-ondark.html b/apiExamples/basic-ondark.html new file mode 100644 index 0000000..1e3428b --- /dev/null +++ b/apiExamples/basic-ondark.html @@ -0,0 +1,2 @@ +No href supplied
+Welcome to Alaska Airlines. diff --git a/apiExamples/cta-ondark.html b/apiExamples/cta-ondark.html new file mode 100644 index 0000000..eb19a73 --- /dev/null +++ b/apiExamples/cta-ondark.html @@ -0,0 +1,11 @@ +CTA Button +CTA Button +CTA Button + +CTA Button +CTA Button +CTA Button + +CTA Button +CTA Button +CTA Button diff --git a/apiExamples/external-ondark.html b/apiExamples/external-ondark.html new file mode 100644 index 0000000..a8b0c84 --- /dev/null +++ b/apiExamples/external-ondark.html @@ -0,0 +1,18 @@ +Example link with + + external target + +but same domain + +
+Example link with + + external target + + with external domain diff --git a/apiExamples/external-referrer-ondark.html b/apiExamples/external-referrer-ondark.html new file mode 100644 index 0000000..55bec68 --- /dev/null +++ b/apiExamples/external-referrer-ondark.html @@ -0,0 +1,9 @@ +Example link with + + external target + + , external domain with referrerpolicy attribute diff --git a/apiExamples/navPattern-ondark.html b/apiExamples/navPattern-ondark.html new file mode 100644 index 0000000..32a8ae1 --- /dev/null +++ b/apiExamples/navPattern-ondark.html @@ -0,0 +1,9 @@ + + + Click here to go back + + + + Click here to go forward + + diff --git a/apiExamples/navStyle-ondark.html b/apiExamples/navStyle-ondark.html new file mode 100644 index 0000000..ae2596e --- /dev/null +++ b/apiExamples/navStyle-ondark.html @@ -0,0 +1,6 @@ + + Navigation style link + diff --git a/apiExamples/roleButton-ondark.html b/apiExamples/roleButton-ondark.html new file mode 100644 index 0000000..c53b497 --- /dev/null +++ b/apiExamples/roleButton-ondark.html @@ -0,0 +1 @@ +Cancel button diff --git a/apiExamples/roleButton.js b/apiExamples/roleButton.js index 84338ff..53d6f57 100644 --- a/apiExamples/roleButton.js +++ b/apiExamples/roleButton.js @@ -1,11 +1,18 @@ export function roleButtonExample() { const roleButton = document.getElementById('roleButton'); + const roleButtonOndark = document.getElementById('roleButton-ondark'); roleButton.addEventListener('click', () => { alert(`You clicked the role button!`); }); roleButton.addEventListener('keydown', handleKeyPress); + + roleButtonOndark.addEventListener('click', () => { + alert(`You clicked the role button!`); + }); + + roleButtonOndark.addEventListener('keydown', handleKeyPress); } function handleKeyPress(event) { diff --git a/demo/api.html b/demo/api.html index 1566c41..8da8a8e 100644 --- a/demo/api.html +++ b/demo/api.html @@ -26,6 +26,11 @@ +
diff --git a/demo/api.md b/demo/api.md index 3464254..1e59344 100644 --- a/demo/api.md +++ b/demo/api.md @@ -42,6 +42,13 @@ Welcome to Alaska Airlines. +
+ + + No href supplied
+ Welcome to Alaska Airlines. + +
See code @@ -51,6 +58,14 @@ No href supplied
Welcome to Alaska Airlines. ``` + + + + +```html +No href supplied
+Welcome to Alaska Airlines. +```
@@ -81,6 +96,29 @@ For link security purposes, when using the `target="_blank"` attribute, this imp with external domain +
+ + + Example link with + + external target + + but same domain + +
+ Example link with + + external target + + with external domain + +
See code @@ -104,6 +142,30 @@ Example link with with external domain ``` + + + + +```html +Example link with + + external target + +but same domain + +
+Example link with + + external target + + with external domain +```
@@ -128,6 +190,20 @@ Example link with , external domain with referrerpolicy attribute +
+ + +Example link with + + external target + + , external domain with referrerpolicy attribute + +
See code @@ -143,6 +219,21 @@ Example link with , external domain with referrerpolicy attribute ``` + + + + +```html +Example link with + + external target + + , external domain with referrerpolicy attribute +``` @@ -160,6 +251,17 @@ When using `auro-hyperlink` as a navigation style, use `type="nav"` for the alte +
+ + + + Navigation style link + + +
See code @@ -172,6 +274,18 @@ When using `auro-hyperlink` as a navigation style, use `type="nav"` for the alte Navigation style link ``` + + + + +```html + + Navigation style link + +``` @@ -294,6 +408,20 @@ CTA buttons share the same icon support as the standard hyperlink for targets th CTA Button +
+ + + CTA Button + CTA Button + CTA Button + CTA Button + CTA Button + CTA Button + CTA Button + CTA Button + CTA Button + +
See code @@ -310,6 +438,21 @@ CTA buttons share the same icon support as the standard hyperlink for targets th CTA Button CTA Button ``` + + + + +```html +CTA Button +CTA Button +CTA Button +CTA Button +CTA Button +CTA Button +CTA Button +CTA Button +CTA Button +``` diff --git a/demo/api.min.js b/demo/api.min.js index 6a3b8be..3ebedf7 100644 --- a/demo/api.min.js +++ b/demo/api.min.js @@ -1,4 +1,3 @@ function initHyperlinkApiExamples(initCount) { } -export { initHyperlinkApiExamples }; diff --git a/demo/index.html b/demo/index.html index 4a4b585..698b281 100644 --- a/demo/index.html +++ b/demo/index.html @@ -26,6 +26,11 @@ +
diff --git a/demo/index.md b/demo/index.md index d54d8ad..237d381 100644 --- a/demo/index.md +++ b/demo/index.md @@ -18,6 +18,13 @@ If the `href` attribute is not added, the hyperlink element will render back sim Welcome to Alaska Airlines. +
+ + + No href supplied
+ Welcome to Alaska Airlines. + +
See code @@ -27,6 +34,14 @@ If the `href` attribute is not added, the hyperlink element will render back sim No href supplied
Welcome to Alaska Airlines. ``` + + + + +```html +No href supplied
+Welcome to Alaska Airlines. +```
@@ -49,6 +64,19 @@ The `auro-icon` element comes with some pre-defined opinions, but these are easi +
+ + + + + Click here to go back + + + Click here to go forward + + + +
See code @@ -64,6 +92,20 @@ The `auro-icon` element comes with some pre-defined opinions, but these are easi ``` + + + + +```html + + + Click here to go back + + + Click here to go forward + + +``` @@ -81,6 +123,12 @@ Aside from the standard hyperlink use-case, the `auro-hyperlink` element is inte Cancel button +
+ + + Cancel button + +
See code @@ -89,6 +137,13 @@ Aside from the standard hyperlink use-case, the `auro-hyperlink` element is inte ```html Cancel button ``` + + + + +```html +Cancel button +``` @@ -96,12 +151,19 @@ Aside from the standard hyperlink use-case, the `auro-hyperlink` element is inte ```js export function roleButtonExample() { const roleButton = document.getElementById('roleButton'); + const roleButtonOndark = document.getElementById('roleButton-ondark'); roleButton.addEventListener('click', () => { alert(`You clicked the role button!`); }); roleButton.addEventListener('keydown', handleKeyPress); + + roleButtonOndark.addEventListener('click', () => { + alert(`You clicked the role button!`); + }); + + roleButtonOndark.addEventListener('keydown', handleKeyPress); } function handleKeyPress(event) { diff --git a/demo/index.min.js b/demo/index.min.js index fe89585..6edaf5e 100644 --- a/demo/index.min.js +++ b/demo/index.min.js @@ -1,11 +1,18 @@ function roleButtonExample() { const roleButton = document.getElementById('roleButton'); + const roleButtonOndark = document.getElementById('roleButton-ondark'); roleButton.addEventListener('click', () => { alert(`You clicked the role button!`); }); roleButton.addEventListener('keydown', handleKeyPress); + + roleButtonOndark.addEventListener('click', () => { + alert(`You clicked the role button!`); + }); + + roleButtonOndark.addEventListener('keydown', handleKeyPress); } function handleKeyPress(event) { @@ -34,4 +41,3 @@ function initHyperlinkIndexExamples(initCount) { } } -export { initHyperlinkIndexExamples }; diff --git a/docs/partials/api.md b/docs/partials/api.md index dc7bc3e..0f5dd8d 100644 --- a/docs/partials/api.md +++ b/docs/partials/api.md @@ -10,11 +10,18 @@ +
+ + +
+ See code + + @@ -29,11 +36,18 @@ For link security purposes, when using the `target="_blank"` attribute, this imp +
+ + +
+ See code + + @@ -50,11 +64,18 @@ This will also set the `rel` attribute to `external`. +
+ + +
+ See code + + @@ -67,11 +88,18 @@ When using `auro-hyperlink` as a navigation style, use `type="nav"` for the alte +
+ + +
+ See code + + @@ -152,11 +180,18 @@ CTA buttons share the same icon support as the standard hyperlink for targets th +
+ + +
+ See code + + diff --git a/docs/partials/index.md b/docs/partials/index.md index 06aaad7..dc9cac9 100644 --- a/docs/partials/index.md +++ b/docs/partials/index.md @@ -16,11 +16,18 @@ If the `href` attribute is not added, the hyperlink element will render back sim +
+ + +
+ See code + + @@ -35,11 +42,18 @@ The `auro-icon` element comes with some pre-defined opinions, but these are easi +
+ + +
+ See code + + @@ -56,11 +70,18 @@ Aside from the standard hyperlink use-case, the `auro-hyperlink` element is inte +
+ + +
+ See code + + diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..946928f --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,21 @@ +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [...compat.extends("@aurodesignsystem/eslint-config"), { + rules: { + "no-magic-numbers": ["error", { + ignore: [0, 1, 13, 32], + ignoreArrayIndexes: true, + }], + }, +}]; diff --git a/package-lock.json b/package-lock.json index 5458abc..5af2bf4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,17 +16,19 @@ "devDependencies": { "@alaskaairux/icons": "^4.41.1", "@aurodesignsystem/auro-library": "^2.6.0", - "@aurodesignsystem/design-tokens": "^4.7.0", + "@aurodesignsystem/design-tokens": "^4.9.0", "@aurodesignsystem/eslint-config": "^1.3.1", "@aurodesignsystem/webcorestylesheets": "^5.1.1", "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.6.0", "@open-wc/testing": "^4.0.0", "@rollup/plugin-node-resolve": "^15.2.3", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "@semantic-release/npm": "^12.0.1", - "@web/dev-server": "^0.4.5", + "@web/dev-server": "^0.4.6", "@web/test-runner": "^0.18.2", "@webcomponents/webcomponentsjs": "^2.8.0", "autoprefixer": "^10.4.19", @@ -35,28 +37,28 @@ "concurrently": "^8.2.2", "copyfiles": "^2.4.1", "core-js": "^3.37.1", - "eslint": "^8.56.0", - "eslint-plugin-jsdoc": "^48.2.12", + "eslint": "^9.6.0", + "eslint-plugin-jsdoc": "^48.6.0", "fs-extra": "^11.2.0", "husky": "^9.0.11", "lodash": "^4.17.21", "markdown-magic": "^2.6.1", "nodemon": "^3.1.4", "npm-run-all": "^4.1.5", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "postcss-discard-comments": "^7.0.1", "postcss-selector-replace": "^1.0.2", - "rollup": "^4.18.0", + "rollup": "^4.18.1", "rollup-plugin-serve": "^2.0.2", - "sass": "^1.77.6", + "sass": "^1.77.7", "semantic-release": "^24.0.0", "stylelint": "^16.6.1", "stylelint-config-idiomatic-order": "^10.0.0", "stylelint-config-standard": "^36.0.1", "stylelint-config-standard-scss": "^13.1.0", "stylelint-order": "^6.0.4", - "stylelint-scss": "^6.3.2", - "typescript": "^5.5.2", + "stylelint-scss": "^6.4.1", + "typescript": "^5.5.3", "wc-sass-render": "^1.4.0", "web-component-analyzer": "^2.0.0", "whatwg-fetch": "^3.6.20", @@ -67,7 +69,6 @@ }, "peerDependencies": { "@alaskaairux/icons": "^4.40.2", - "@aurodesignsystem/design-tokens": "^4.3.1", "@aurodesignsystem/webcorestylesheets": "^5.1.0" } }, @@ -193,9 +194,9 @@ } }, "node_modules/@aurodesignsystem/design-tokens": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@aurodesignsystem/design-tokens/-/design-tokens-4.7.0.tgz", - "integrity": "sha512-+25gYSsPy1a6CJuuuO3VK9PEbak6WCIwymDzyHPqBnIIeEoIjxmkCr69cMbG+xhwoOKpxVX2aygZ7H4wg4lU5A==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@aurodesignsystem/design-tokens/-/design-tokens-4.9.0.tgz", + "integrity": "sha512-rJWcSCOFwtJ2O8e1jKnFch92cPqeXiLfqgtKpv1B0D4bqMfWgGPVXWizn3M0aMOHrEjCgFmVBXpZFXfsbpOW1A==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -741,14 +742,13 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.43.1", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz", - "integrity": "sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.45.0.tgz", + "integrity": "sha512-U8T5eXLkP78Sr12rR91494GhlEgp8jqs7OaUHbdUffADxU1JQmKjZm5uSyAEGv2oolDMJ+wce7yylfnnwOevtA==", "dev": true, "dependencies": { "@types/eslint": "^8.56.5", "@types/estree": "^1.0.5", - "@typescript-eslint/types": "^7.2.0", "comment-parser": "1.4.1", "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" @@ -781,16 +781,30 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.0.tgz", + "integrity": "sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -798,7 +812,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -827,12 +841,21 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.6.0.tgz", + "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@esm-bundle/chai": { @@ -844,20 +867,6 @@ "@types/chai": "^4.2.12" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -871,11 +880,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", @@ -1145,6 +1161,18 @@ "lit-html": "^2.0.0 || ^3.0.0" } }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -1256,9 +1284,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", + "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", "cpu": [ "arm" ], @@ -1269,9 +1297,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", + "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", "cpu": [ "arm64" ], @@ -1282,9 +1310,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", + "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", "cpu": [ "arm64" ], @@ -1295,9 +1323,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", + "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", "cpu": [ "x64" ], @@ -1308,9 +1336,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", + "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", "cpu": [ "arm" ], @@ -1321,9 +1349,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", + "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", "cpu": [ "arm" ], @@ -1334,9 +1362,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", + "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", "cpu": [ "arm64" ], @@ -1347,9 +1375,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", + "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", "cpu": [ "arm64" ], @@ -1360,9 +1388,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", + "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", "cpu": [ "ppc64" ], @@ -1373,9 +1401,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", + "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", "cpu": [ "riscv64" ], @@ -1386,9 +1414,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", + "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", "cpu": [ "s390x" ], @@ -1399,9 +1427,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", + "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", "cpu": [ "x64" ], @@ -1412,9 +1440,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", + "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", "cpu": [ "x64" ], @@ -1425,9 +1453,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", + "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", "cpu": [ "arm64" ], @@ -1438,9 +1466,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", + "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", "cpu": [ "ia32" ], @@ -1451,9 +1479,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", + "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", "cpu": [ "x64" ], @@ -2550,25 +2578,6 @@ "@types/node": "*" } }, - "node_modules/@typescript-eslint/types": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.1.tgz", - "integrity": "sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, "node_modules/@web/browser-logs": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.0.tgz", @@ -2591,9 +2600,9 @@ } }, "node_modules/@web/dev-server": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.5.tgz", - "integrity": "sha512-R11sODOLFcm51f2uir51KE4QXRSYakDaeBeJdrUutPCmYUDEk86GjYBR3R1wslimnwGPIjhFDsXNMfASxYfgAQ==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.6.tgz", + "integrity": "sha512-jj/1bcElAy5EZet8m2CcUdzxT+CRvUjIXGh8Lt7vxtthkN9PzY9wlhWx/9WOs5iwlnG1oj0VGo6f/zvbPO0s9w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.11", @@ -2606,7 +2615,7 @@ "command-line-usage": "^7.0.1", "debounce": "^1.2.0", "deepmerge": "^4.2.2", - "ip": "^2.0.1", + "internal-ip": "^6.2.0", "nanocolors": "^0.2.1", "open": "^8.0.2", "portfinder": "^1.0.32" @@ -2829,9 +2838,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -4947,6 +4956,101 @@ "node": ">=0.10.0" } }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/default-gateway/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/default-gateway/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -5083,18 +5187,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -5397,9 +5489,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true }, "node_modules/es-object-atoms": { @@ -5504,41 +5596,37 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/config-array": "^0.17.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.6.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.1", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -5552,10 +5640,10 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" } }, "node_modules/eslint-plugin-detect-bad-words": { @@ -5572,19 +5660,21 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "48.2.12", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.12.tgz", - "integrity": "sha512-sO9sKkJx5ovWoRk9hV0YiNzXQ4Z6j27CqE/po2E3wddZVuy9wvKPSTiIhpxMTrP/qURvKayJIDB2+o9kyCW1Fw==", + "version": "48.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.6.0.tgz", + "integrity": "sha512-UsOdFYWeyYaiGW1OzJaKvRpb88JPF0HGpDkmMDvhfWbTGu3B4TYKhGH3cPGiRjMDxKPA3fJ/+tL823argNxOkA==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.43.1", + "@es-joy/jsdoccomment": "~0.45.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", - "debug": "^4.3.4", + "debug": "^4.3.5", "escape-string-regexp": "^4.0.0", - "esquery": "^1.5.0", + "esquery": "^1.6.0", + "parse-imports": "^2.1.1", "semver": "^7.6.2", - "spdx-expression-parse": "^4.0.0" + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.0" }, "engines": { "node": ">=18" @@ -5593,6 +5683,23 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, + "node_modules/eslint-plugin-jsdoc/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/eslint-plugin-jsdoc/node_modules/semver": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", @@ -5700,16 +5807,16 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", + "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5792,6 +5899,18 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -5905,17 +6024,29 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -5935,9 +6066,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -6175,15 +6306,15 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -6256,17 +6387,16 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { @@ -6676,15 +6806,12 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6795,12 +6922,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", @@ -7274,6 +7395,24 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/internal-ip": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", + "integrity": "sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==", + "dev": true, + "dependencies": { + "default-gateway": "^6.0.0", + "ipaddr.js": "^1.9.1", + "is-ip": "^3.1.0", + "p-event": "^4.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/internal-ip?sponsor=1" + } + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -7323,6 +7462,24 @@ "node": ">= 12" } }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -7581,6 +7738,18 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "dev": true, + "dependencies": { + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-local-path": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-local-path/-/is-local-path-0.1.6.tgz", @@ -12583,6 +12752,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-filter": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", @@ -12598,6 +12782,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/p-is-promise": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", @@ -12658,6 +12851,18 @@ "node": ">=8" } }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -12735,6 +12940,19 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/parse-imports": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.1.1.tgz", + "integrity": "sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==", + "dev": true, + "dependencies": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -12992,9 +13210,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "dev": true, "funding": [ { @@ -13012,7 +13230,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -13867,25 +14085,10 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -13898,22 +14101,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", "fsevents": "~2.3.2" } }, @@ -14013,9 +14216,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "version": "1.77.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.7.tgz", + "integrity": "sha512-9ywH75cO+rLjbrZ6en3Gp8qAMwPGBapFtlsMJoDTkcMU/bSe5a6cjKVUn5Jr4Gzg5GbP3HE8cm+02pLCgcoMow==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -14514,6 +14717,12 @@ "node": ">=8" } }, + "node_modules/slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", + "dev": true + }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -15082,12 +15291,12 @@ } }, "node_modules/stylelint-scss": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.3.2.tgz", - "integrity": "sha512-pNk9mXOVKkQtd+SROPC9io8ISSgX+tOVPhFdBE+LaKQnJMLdWPbGKAGYv4Wmf/RrnOjkutunNTN9kKMhkdE5qA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.4.1.tgz", + "integrity": "sha512-+clI2bQC2FPOt06ZwUlXZZ95IO2C5bKTP0GLN1LNQPVvISfSNcgMKv/VTwym1mK9vnqhHbOk8lO4rj4nY7L9pw==", "dev": true, "dependencies": { - "known-css-properties": "^0.31.0", + "known-css-properties": "^0.34.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.1.0", @@ -15100,6 +15309,12 @@ "stylelint": "^16.0.2" } }, + "node_modules/stylelint-scss/node_modules/known-css-properties": { + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz", + "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==", + "dev": true + }, "node_modules/stylelint/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -15301,6 +15516,22 @@ "get-port": "^3.1.0" } }, + "node_modules/synckit": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz", + "integrity": "sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/table": { "version": "6.8.2", "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", @@ -15674,18 +15905,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -15799,9 +16018,9 @@ } }, "node_modules/typescript": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", - "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index f3bd5c4..0a7e0b9 100644 --- a/package.json +++ b/package.json @@ -25,23 +25,25 @@ }, "peerDependencies": { "@alaskaairux/icons": "^4.40.2", - "@aurodesignsystem/design-tokens": "^4.3.1", - "@aurodesignsystem/webcorestylesheets": "^5.1.0" + "@aurodesignsystem/webcorestylesheets": "^5.1.0", + "@aurodesignsystem/design-tokens": "^4.9.0" }, "devDependencies": { "@alaskaairux/icons": "^4.41.1", "@aurodesignsystem/auro-library": "^2.6.0", - "@aurodesignsystem/design-tokens": "^4.7.0", + "@aurodesignsystem/design-tokens": "^4.9.0", "@aurodesignsystem/eslint-config": "^1.3.1", "@aurodesignsystem/webcorestylesheets": "^5.1.1", "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.6.0", "@open-wc/testing": "^4.0.0", "@rollup/plugin-node-resolve": "^15.2.3", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "@semantic-release/npm": "^12.0.1", - "@web/dev-server": "^0.4.5", + "@web/dev-server": "^0.4.6", "@web/test-runner": "^0.18.2", "@webcomponents/webcomponentsjs": "^2.8.0", "autoprefixer": "^10.4.19", @@ -50,28 +52,28 @@ "concurrently": "^8.2.2", "copyfiles": "^2.4.1", "core-js": "^3.37.1", - "eslint": "^8.56.0", - "eslint-plugin-jsdoc": "^48.2.12", + "eslint": "^9.6.0", + "eslint-plugin-jsdoc": "^48.6.0", "fs-extra": "^11.2.0", "husky": "^9.0.11", "lodash": "^4.17.21", "markdown-magic": "^2.6.1", "nodemon": "^3.1.4", "npm-run-all": "^4.1.5", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "postcss-discard-comments": "^7.0.1", "postcss-selector-replace": "^1.0.2", - "rollup": "^4.18.0", + "rollup": "^4.18.1", "rollup-plugin-serve": "^2.0.2", - "sass": "^1.77.6", + "sass": "^1.77.7", "semantic-release": "^24.0.0", "stylelint": "^16.6.1", "stylelint-config-idiomatic-order": "^10.0.0", "stylelint-config-standard": "^36.0.1", "stylelint-config-standard-scss": "^13.1.0", "stylelint-order": "^6.0.4", - "stylelint-scss": "^6.3.2", - "typescript": "^5.5.2", + "stylelint-scss": "^6.4.1", + "typescript": "^5.5.3", "wc-sass-render": "^1.4.0", "web-component-analyzer": "^2.0.0", "whatwg-fetch": "^3.6.20", @@ -142,9 +144,9 @@ "web components" ], "scripts": { - "build": "npm-run-all build:sass sass:render", + "build": "npm-run-all build:sass sass:render build:api build:docs types bundler build:demoScripts", "build:test": "npm-run-all test linters", - "build:release": "npm-run-all build build:test build:api build:docs build:demoScripts bundler types postinstall", + "build:release": "npm-run-all build build:test postinstall", "build:ci": "npm-run-all sweep build:release", "build:api": "wca analyze 'src/auro-hyperlink.js' --outFiles docs/api.md", "build:dev:assets": "npm-run-all build:sass:component postCss:component sass:render build:docs", diff --git a/src/auro-hyperlink.js b/src/auro-hyperlink.js index c334c88..61537b5 100644 --- a/src/auro-hyperlink.js +++ b/src/auro-hyperlink.js @@ -10,6 +10,8 @@ import ComponentBase from './component-base.mjs'; // import the processed CSS file into the scope of the component import styleCss from "./style-css.js"; +import colorCss from "./color-css.js"; +import tokensCss from "./tokens-css.js"; // See https://git.io/JJ6SJ for "How to document your components using JSDoc" /** @@ -41,7 +43,11 @@ export class AuroHyperlink extends ComponentBase { } static get styles() { - return [styleCss]; + return [ + styleCss, + colorCss, + tokensCss + ]; } /** diff --git a/src/color.scss b/src/color.scss new file mode 100644 index 0000000..ba3eefd --- /dev/null +++ b/src/color.scss @@ -0,0 +1,142 @@ +// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license. +// See LICENSE in the project root for license information. + +// --------------------------------------------------------------------- + +/* stylelint-disable + order/properties-order, + selector-class-pattern, + selector-max-class, + scss/no-duplicate-dollar-variables, + at-rule-empty-line-before, + scss/dollar-variable-first-in-block, + scss/dollar-variable-pattern, + scss/double-slash-comment-empty-line-before, + selector-not-notation */ + +// Support for fallback values +@import './../node_modules/@aurodesignsystem/design-tokens/dist/tokens/SCSSVariables.scss'; + +// layout styles - define any layout specifications for UI that is contained WITHIN the component +// never define layout that would cause effect on element outside the scope of this component + +@mixin color-variant($mode, $nav: false, $cta: false, $secondary: false, $tertiary: false) { + $nav-str: ''; + $cta-str: ''; + $secondary-str: ''; + $tertiary-str: ''; + $mode: '-' + $mode; + + @if $nav { + $nav-str: '-nav'; + } + + @if $cta { + $cta-str: '-cta'; + } + + @if $secondary { + $secondary-str: '-secondary'; + } + + @if $tertiary { + $tertiary-str: '-tertiary'; + } + + // text colors + $c: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -default-color + $mode); + $cV: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -visited-color + $mode); + $cF: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -focus-color + $mode); + $cH: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -hover-color + $mode); + + // background colors + $bg: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -default-container-color + $mode); + $bgV: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -visited-container-color + $mode); + $bgF: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -focus-container-color + $mode); + $bgH: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -hover-container-color + $mode); + + // outline colors + $o: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -default-outline-color + $mode); + $oV: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -visited-outline-color + $mode); + $oF: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -focus-outline-color + $mode); + $oH: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -hover-outline-color + $mode); + + // border colors + $b: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -default-border-color + $mode); + $bV: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -visited-border-color + $mode); + $bF: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -focus-border-color + $mode); + $bH: var(--ds-auro-hyperlink + $nav-str + $cta-str + $secondary-str + $tertiary-str + -hover-border-color + $mode); + + a { + color: $c; + background-color: $bg; + outline-color: $o; + border-color: $b; + + &:visited { + color: $cV; + background-color: $bgV; + outline-color: $oV; + border-color: $bV; + } + + &:focus-visible { + color: $cF; + background-color: $bgF; + outline-color: $oF; + border-color: $bF; + } + + @media (hover: hover) { + &:hover { + color: $cH; + background-color: $bgH; + outline-color: $oH; + border-color: $bH; + } + } + } +} + +:host(:not([type="cta"]):not([type="nav"]):not([ondark])) { + @include color-variant($mode: 'default'); +} + +:host(:not([type="cta"]):not([type="nav"])[ondark]) { + @include color-variant($mode: 'inverse'); +} + +:host([type="nav"]:not([ondark])) { + @include color-variant($mode: 'default', $nav: true); +} + +:host([type="nav"][ondark]) { + @include color-variant($mode: 'inverse', $nav: true); +} + +// Default CTA +:host([type="cta"]:not([ondark]):not([secondary]):not([tertiary])) { + @include color-variant($mode: 'default', $cta: true); +} + +:host([type="cta"][ondark]:not([secondary]):not([tertiary])) { + @include color-variant($mode: 'inverse', $cta: true); +} + +// Secondary CTA +:host([type="cta"][secondary]:not([ondark])) { + @include color-variant($mode: 'default', $cta: true, $secondary: true); +} + +:host([type="cta"][secondary][ondark]) { + @include color-variant($mode: 'inverse', $cta: true, $secondary: true); +} + +// Tertiary CTA +:host([type="cta"][tertiary]:not([ondark])) { + @include color-variant($mode: 'default', $cta: true, $tertiary: true); +} + +:host([type="cta"][tertiary][ondark]) { + @include color-variant($mode: 'inverse', $cta: true, $tertiary: true); +} diff --git a/src/style.scss b/src/style.scss index 77dc0d4..e33eee1 100644 --- a/src/style.scss +++ b/src/style.scss @@ -19,8 +19,7 @@ // layout styles - define any layout specifications for UI that is contained WITHIN the component // never define layout that would cause effect on element outside the scope of this component -/* stylelint-disable - declaration-empty-line-before, +/* stylelint-disable declaration-empty-line-before, no-descending-specificity, order/properties-order, selector-class-pattern, @@ -55,32 +54,10 @@ .hyperlink { @include auro_transition(all, .15s, ease); - color: var(--ds-color-ui-default-default, $ds-color-ui-default-default); text-decoration: underline; - // applying a focus UI when using .focus() - &:focus { - text-decoration: none; - } - - &:visited { - color: var(--ds-color-ui-default-default, $ds-color-ui-default-default); - } - - &:focus-visible { - background-color: var(--ds-color-ui-default-default, $ds-color-ui-default-default); - color: var(--ds-color-text-primary-inverse, $ds-color-text-primary-inverse); - outline: var(--ds-color-ui-default-default, $ds-color-ui-default-default) solid var(--ds-size-50, $ds-size-50); - outline-offset: unset; - - &:hover { - color: var(--ds-color-text-primary-inverse, $ds-color-text-primary-inverse); - } - } - @media (hover: hover) { &:hover { - color: var(--ds-color-ui-hover-default, $ds-color-ui-hover-default); text-decoration: none; } @@ -89,12 +66,6 @@ text-decoration: underline; } } - - &--ondark { - &:hover { - color: var(--ds-color-ui-hover-inverse, $ds-color-ui-hover-inverse); - } - } } &--button { @@ -104,15 +75,18 @@ &--nav { display: block; text-decoration: none; + + &:focus-visible { + outline-style: solid; + outline-width: var(--ds-size-50, $ds-size-50); + outline-offset: unset; + } } &--cta { - @include auro_anchorButton(css, noncomponent, block); - - border: 1px solid var(--ds-color-ui-default-default, $ds-color-ui-default-default); + border-style: solid; + border-width: 1px; border-radius: var(--ds-border-radius, $ds-border-radius); - background-color: var(--ds-color-ui-default-default, $ds-color-ui-default-default); - color: var(--ds-color-text-primary-inverse, $ds-color-text-primary-inverse); font-family: var(--ds-font-family-default, $ds-font-family-default); font-size: var(--ds-text-body-size-default, $ds-text-body-size-default); font-weight: var(--ds-text-body-default-weight, $ds-text-body-default-weight); @@ -124,24 +98,32 @@ vertical-align: middle; + @include auro_anchorButton(css, noncomponent, block); &:active { transform: scale(.95); } + &:focus-visible { + outline-style: solid; + outline-width: var(--ds-size-50, $ds-size-50); + outline-offset: calc(-1 * (var(--ds-size-50, $ds-size-50) + var(--ds-size-25, $ds-size-25))); + } + + &.hyperlink--secondary { + outline-offset: calc(-1 * (var(--ds-size-50, $ds-size-50))); + } + + &.hyperlink--tertiary { + outline-offset: calc(-1 * (var(--ds-size-50, $ds-size-50))); + } + @media (hover: hover) { &:hover { - border: 1px solid var(--ds-color-ui-hover-default, $ds-color-ui-hover-default); - background-image: linear-gradient(var(--ds-color-ui-hover-default, $ds-color-ui-hover-default), var(--ds-color-ui-hover-default, $ds-color-ui-hover-default)); - color: var(--ds-color-text-primary-inverse, $ds-color-text-primary-inverse); text-decoration: none; } } - &:visited { - color: var(--ds-color-text-primary-inverse, $ds-color-text-primary-inverse); - } - @include auro_breakpoint--sm { display: inline-block; @@ -151,102 +133,11 @@ padding: 0 var(--ds-size-300, $ds-size-300); } - &.hyperlink--secondary { - border: 1px solid var(--ds-color-ui-default-default, $ds-color-ui-default-default); - background-color: var(--ds-color-background-lightest, $ds-color-background-lightest); - color: var(--ds-color-text-link-default, $ds-color-text-link-default); - - @media (hover: hover) { - &:hover { - border: 1px solid var(--ds-color-ui-default-default, $ds-color-ui-default-default); - background-image: linear-gradient(var(--ds-color-background-lighter, $ds-color-background-lighter), var(--ds-color-background-lighter, $ds-color-background-lighter)); - color: var(--ds-color-text-link-default, $ds-color-text-link-default); - } - } - - &.hyperlink--ondark { - border: 1px solid var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - background-color: transparent; - color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - - - @media (hover: hover) { - &:hover { - border: 1px solid var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - background-image: linear-gradient(var(--ds-color-base-black-opacity-15, $ds-color-base-black-opacity-15), var(--ds-color-base-black-opacity-15, $ds-color-base-black-opacity-15)); - color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - } - - &:visited { - color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - } - } - } - } - - &.hyperlink--tertiary { - border: 1px solid transparent; - background-color: color-mix(in srgb, var(--ds-color-base-black, $ds-color-base-black) 3%, transparent); - color: var(--ds-color-text-link-default, $ds-color-text-link-default); - - @media (hover: hover) { - &:hover { - background-image: linear-gradient(var(--ds-color-ui-bkg-hover-default, $ds-color-ui-bkg-hover-default), var(--ds-color-ui-bkg-hover-default, $ds-color-ui-bkg-hover-default)); - color: var(--ds-color-text-link-default, $ds-color-text-link-default); - } - } - - &.hyperlink--ondark { - border: 1px solid transparent; - background-color: color-mix(in srgb, var(--ds-color-base-white, $ds-color-base-white) 3%, transparent); - color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - - - @media (hover: hover) { - &:hover { - background-image: linear-gradient(var(--ds-color-ui-bkg-hover-inverse, $ds-color-ui-bkg-hover-inverse), var(--ds-color-ui-bkg-hover-inverse, $ds-color-ui-bkg-hover-inverse)); - background-color: var(--ds-color-ui-bkg-hover-inverse, $ds-color-ui-bkg-hover-inverse); - color: color-mix(in srgb, var(--ds-color-ui-hover-inverse, $ds-color-ui-hover-inverse) 40%, transparent); - } - - &:visited { - color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - } - - &:focus-visible { - color: var(--ds-color-text-link-inverse, $ds-color-text-link-inverse); - outline: var(--ds-color-border-active-inverse, $ds-color-border-active-inverse) solid var(--ds-size-50, $ds-size-50); - outline-offset: unset; - } - } - } - } - - // CTA ondark + &.hyperlink--secondary, + &.hyperlink--tertiary, &.hyperlink--ondark { - border: 1px solid var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - background-color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); - - @media (hover: hover) { - &:hover { - border: 1px solid var(--ds-color-ui-hover-inverse, $ds-color-ui-hover-inverse); - background-image: linear-gradient(var(--ds-color-ui-hover-inverse, $ds-color-ui-hover-inverse), var(--ds-color-ui-hover-inverse, $ds-color-ui-hover-inverse)); - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); - } - - &:visited { - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); - } - } - } - } - - &--ondark { - color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); - - &:visited { - color: var(--ds-color-ui-default-inverse, $ds-color-ui-default-inverse); + border-style: solid; + border-width: 1px; } } } diff --git a/src/tokens.scss b/src/tokens.scss new file mode 100644 index 0000000..48b9e5f --- /dev/null +++ b/src/tokens.scss @@ -0,0 +1,221 @@ +/* stylelint-disable custom-property-empty-line-before */ + +@import './../node_modules/@aurodesignsystem/design-tokens/dist/tokens/SCSSVariables.scss'; + +:host { + // default hyperlink + --ds-auro-hyperlink-default-color-default: var(--ds-color-text-ui-default-default, #{ds-color-text-ui-default-default}); + --ds-auro-hyperlink-default-container-color-default: transparent; + --ds-auro-hyperlink-default-outline-color-default: transparent; + --ds-auro-hyperlink-default-border-color-default: transparent; + + --ds-auro-hyperlink-visited-color-default: var(--ds-color-text-ui-default-default, #{ds-color-text-ui-default-default}); + --ds-auro-hyperlink-visited-container-color-default: transparent; + --ds-auro-hyperlink-visited-outline-color-default: transparent; + --ds-auro-hyperlink-visited-border-color-default: transparent; + + --ds-auro-hyperlink-focus-color-default: var(--ds-color-text-ui-focus-default, #{ds-color-text-ui-focus-default}); + --ds-auro-hyperlink-focus-container-color-default: transparent; + --ds-auro-hyperlink-focus-outline-color-default: transparent; + --ds-auro-hyperlink-focus-border-color-default: transparent; + + --ds-auro-hyperlink-hover-color-default: var(--ds-color-text-ui-hover-default, #{$ds-color-text-ui-hover-default}); + --ds-auro-hyperlink-hover-container-color-default: transparent; + --ds-auro-hyperlink-hover-outline-color-default: transparent; + --ds-auro-hyperlink-hover-border-color-default: transparent; + + // default ondark hyperlink + --ds-auro-hyperlink-default-color-inverse: var(--ds-color-text-ui-default-inverse, #{ds-color-text-ui-default-inverse}); + --ds-auro-hyperlink-default-container-color-inverse: transparent; + --ds-auro-hyperlink-default-outline-color-inverse: transparent; + --ds-auro-hyperlink-default-border-color-inverse: transparent; + + --ds-auro-hyperlink-visited-color-inverse: var(--ds-color-text-ui-default-inverse, #{ds-color-text-ui-default-inverse}); + --ds-auro-hyperlink-visited-container-color-inverse: transparent; + --ds-auro-hyperlink-visited-outline-color-inverse: transparent; + --ds-auro-hyperlink-visited-border-color-inverse: transparent; + + --ds-auro-hyperlink-focus-color-inverse: var(--ds-color-text-ui-focus-inverse, #{ds-color-text-ui-focus-inverse}); + --ds-auro-hyperlink-focus-container-color-inverse: transparent; + --ds-auro-hyperlink-focus-outline-color-inverse: transparent; + --ds-auro-hyperlink-focus-border-color-inverse: transparent; + + --ds-auro-hyperlink-hover-color-inverse: var(--ds-color-text-ui-hover-inverse, #{$ds-color-text-ui-hover-inverse}); + --ds-auro-hyperlink-hover-container-color-inverse: transparent; + --ds-auro-hyperlink-hover-outline-color-inverse: transparent; + --ds-auro-hyperlink-hover-border-color-inverse: transparent; + + // nav hyperlink + --ds-auro-hyperlink-nav-default-color-default: var(--ds-color-text-ui-default-default, #{ds-color-text-ui-default-default}); + --ds-auro-hyperlink-nav-default-container-color-default: transparent; + --ds-auro-hyperlink-nav-default-outline-color-default: transparent; + --ds-auro-hyperlink-nav-default-border-color-default: transparent; + + --ds-auro-hyperlink-nav-visited-color-default: var(--ds-color-text-ui-default-default, #{ds-color-text-ui-default-default}); + --ds-auro-hyperlink-nav-visited-container-color-default: transparent; + --ds-auro-hyperlink-nav-visited-outline-color-default: transparent; + --ds-auro-hyperlink-nav-visited-border-color-default: transparent; + + --ds-auro-hyperlink-nav-focus-color-default: var(--ds-color-text-primary-inverse, #{ds-color-text-primary-inverse}); + --ds-auro-hyperlink-nav-focus-container-color-default: var(--ds-color-container-ui-primary-default-default, #{ds-color-container-ui-primary-default-default}); + --ds-auro-hyperlink-nav-focus-outline-color-default: var(--ds-color-container-ui-primary-default-default, #{ds-color-container-ui-primary-default-default}); + --ds-auro-hyperlink-nav-focus-border-color-default: var(--ds-color-container-ui-primary-default-default, #{ds-color-container-ui-primary-default-default}); + + --ds-auro-hyperlink-nav-hover-color-default: var(--ds-color-text-ui-hover-default, #{$ds-color-text-ui-hover-default}); + --ds-auro-hyperlink-nav-hover-container-color-default: transparent; + --ds-auro-hyperlink-nav-hover-outline-color-default: transparent; + --ds-auro-hyperlink-nav-hover-border-color-default: transparent; + + // nav ondark hyperlink + --ds-auro-hyperlink-nav-default-color-inverse: var(--ds-color-text-ui-default-inverse, #{ds-color-text-ui-default-inverse}); + --ds-auro-hyperlink-nav-default-container-color-inverse: transparent; + --ds-auro-hyperlink-nav-default-outline-color-inverse: transparent; + --ds-auro-hyperlink-nav-default-border-color-inverse: transparent; + + --ds-auro-hyperlink-nav-visited-color-inverse: var(--ds-color-text-ui-default-inverse, #{ds-color-text-ui-default-inverse}); + --ds-auro-hyperlink-nav-visited-container-color-inverse: transparent; + --ds-auro-hyperlink-nav-visited-outline-color-inverse: transparent; + --ds-auro-hyperlink-nav-visited-border-color-inverse: transparent; + + --ds-auro-hyperlink-nav-focus-color-inverse: var(--ds-color-text-primary-inverse, #{ds-color-text-primary-inverse}); + --ds-auro-hyperlink-nav-focus-container-color-inverse: var(--ds-color-container-ui-primary-focus-inverse, #{ds-color-container-ui-primary-focus-inverse}); + --ds-auro-hyperlink-nav-focus-outline-color-inverse: var(--ds-color-border-ui-default-inverse, #{ds-color-border-ui-default-inverse}); + --ds-auro-hyperlink-nav-focus-border-color-inverse: var(--ds-color-border-ui-default-inverse, #{ds-color-border-ui-default-inverse}); + + --ds-auro-hyperlink-nav-hover-color-inverse: var(--ds-color-text-ui-hover-inverse, #{$ds-color-text-ui-hover-inverse}); + --ds-auro-hyperlink-nav-hover-container-color-inverse: transparent; + --ds-auro-hyperlink-nav-hover-outline-color-inverse: transparent; + --ds-auro-hyperlink-nav-hover-border-color-inverse: transparent; + + // cta hyperlink - default + + --ds-auro-hyperlink-cta-default-color-default: var(--ds-color-text-primary-inverse, #{$ds-color-text-primary-inverse}); + --ds-auro-hyperlink-cta-default-container-color-default: var(--ds-color-ui-default-default, #{$ds-color-ui-default-default}); + --ds-auro-hyperlink-cta-default-outline-color-default: var(--ds-color-ui-default-default, #{$ds-color-ui-default-default}); + --ds-auro-hyperlink-cta-default-border-color-default: var(--ds-color-ui-default-default, #{$ds-color-ui-default-default}); + + --ds-auro-hyperlink-cta-visited-color-default: var(--ds-color-text-primary-inverse, #{$ds-color-text-primary-inverse}); + --ds-auro-hyperlink-cta-visited-container-color-default: var(--ds-color-ui-default-default, #{$ds-color-ui-default-default}); + --ds-auro-hyperlink-cta-visited-outline-color-default: var(--ds-color-ui-default-default, #{$ds-color-ui-default-default}); + --ds-auro-hyperlink-cta-visited-border-color-default: var(--ds-color-ui-default-default, #{$ds-color-ui-default-default}); + + --ds-auro-hyperlink-cta-focus-color-default: var(--ds-color-text-primary-inverse, #{$ds-color-text-primary-inverse}); + --ds-auro-hyperlink-cta-focus-container-color-default: var(--ds-color-ui-default-default, #{$ds-color-ui-default-default}); + --ds-auro-hyperlink-cta-focus-outline-color-default: var(--ds-color-container-ui-secondary-default-default, #{ds-color-container-ui-secondary-default-default}); + --ds-auro-hyperlink-cta-focus-border-color-default: var(--ds-color-border-ui-focus-default, #{ds-color-border-ui-focus-default}); + + --ds-auro-hyperlink-cta-hover-color-default: var(--ds-color-text-primary-inverse, #{$ds-color-text-primary-inverse}); + --ds-auro-hyperlink-cta-hover-container-color-default: var(--ds-color-container-ui-primary-hover-default, #{ds-color-container-ui-primary-hover-default}); + --ds-auro-hyperlink-cta-hover-outline-color-default: var(--ds-color-border-ui-hover-default, #{ds-color-border-ui-hover-default}); + --ds-auro-hyperlink-cta-hover-border-color-default: var(--ds-color-border-ui-hover-default, #{ds-color-border-ui-hover-default}); + + // cta hyperlink - default ondark + + --ds-auro-hyperlink-cta-default-color-inverse: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); + --ds-auro-hyperlink-cta-default-container-color-inverse: var(--ds-color-ui-default-inverse, #{$ds-color-ui-default-inverse}); + --ds-auro-hyperlink-cta-default-outline-color-inverse: var(--ds-color-ui-default-inverse, #{$ds-color-ui-default-inverse}); + --ds-auro-hyperlink-cta-default-border-color-inverse: var(--ds-color-ui-default-inverse, #{$ds-color-ui-default-inverse}); + + --ds-auro-hyperlink-cta-visited-color-inverse: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); + --ds-auro-hyperlink-cta-visited-container-color-inverse: var(--ds-color-ui-default-inverse, #{$ds-color-ui-default-inverse}); + --ds-auro-hyperlink-cta-visited-outline-color-inverse: var(--ds-color-ui-default-inverse, #{$ds-color-ui-default-inverse}); + --ds-auro-hyperlink-cta-visited-border-color-inverse: var(--ds-color-ui-default-inverse, #{$ds-color-ui-default-inverse}); + + --ds-auro-hyperlink-cta-focus-color-inverse: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); + --ds-auro-hyperlink-cta-focus-container-color-inverse: var(--ds-color-ui-default-inverse, #{$ds-color-ui-default-inverse}); + --ds-auro-hyperlink-cta-focus-outline-color-inverse: var(--ds-color-container-ui-secondary-default-default, #{ds-color-container-ui-secondary-default-default}); + --ds-auro-hyperlink-cta-focus-border-color-inverse: var(--ds-color-border-ui-focus-inverse, #{ds-color-border-ui-focus-inverse}); + + --ds-auro-hyperlink-cta-hover-color-inverse: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); + --ds-auro-hyperlink-cta-hover-container-color-inverse: var(--ds-color-container-ui-primary-hover-inverse, #{ds-color-container-ui-primary-hover-inverse}); + --ds-auro-hyperlink-cta-hover-outline-color-inverse: var(--ds-color-border-ui-hover-inverse, #{ds-color-border-ui-hover-inverse}); + --ds-auro-hyperlink-cta-hover-border-color-inverse: var(--ds-color-border-ui-hover-inverse, #{ds-color-border-ui-hover-inverse}); + + // cta hyperlink - secondary + + --ds-auro-hyperlink-cta-secondary-default-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-secondary-default-container-color-default: var(--ds-color-background-lightest, $ds-color-background-lightest); + --ds-auro-hyperlink-cta-secondary-default-outline-color-default: var(--ds-color-text-link-default, $ds-color-text-link-default); + --ds-auro-hyperlink-cta-secondary-default-border-color-default: var(--ds-color-text-link-default, $ds-color-text-link-default); + + --ds-auro-hyperlink-cta-secondary-visited-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-secondary-visited-container-color-default: var(--ds-color-background-lightest, $ds-color-background-lightest); + --ds-auro-hyperlink-cta-secondary-visited-outline-color-default: var(--ds-color-text-link-default, $ds-color-text-link-default); + --ds-auro-hyperlink-cta-secondary-visited-border-color-default: var(--ds-color-text-link-default, $ds-color-text-link-default); + + --ds-auro-hyperlink-cta-secondary-focus-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-secondary-focus-container-color-default: var(--ds-color-container-ui-secondary-default-inverse, #{ds-color-container-ui-secondary-default-inverse}); + --ds-auro-hyperlink-cta-secondary-focus-outline-color-default: var(--ds-color-border-ui-focus-default, #{ds-color-border-ui-focus-default}); + --ds-auro-hyperlink-cta-secondary-focus-border-color-default: var(--ds-color-border-ui-focus-default, #{ds-color-border-ui-focus-default}); + + --ds-auro-hyperlink-cta-secondary-hover-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-secondary-hover-container-color-default: var(--ds-color-container-ui-tertiary-hover-default, #{ds-color-container-ui-tertiary-hover-default}); + --ds-auro-hyperlink-cta-secondary-hover-outline-color-default: var(--ds-color-border-ui-hover-default, #{ds-color-border-ui-hover-default}); + --ds-auro-hyperlink-cta-secondary-hover-border-color-default: var(--ds-color-border-ui-hover-default, #{ds-color-border-ui-hover-default}); + + // cta hyperlink - secondary ondark + + --ds-auro-hyperlink-cta-secondary-default-color-inverse: var(--ds-color-text-ui-default-inverse, #{$ds-color-text-ui-default-inverse}); + --ds-auro-hyperlink-cta-secondary-default-container-color-inverse: var(--ds-color-container-ui-secondary-default-inverse, #{$ds-color-container-ui-secondary-default-inverse}); + --ds-auro-hyperlink-cta-secondary-default-outline-color-inverse: var(--ds-color-border-ui-focus-inverse, #{$ds-color-border-ui-focus-inverse}); + --ds-auro-hyperlink-cta-secondary-default-border-color-inverse: var(--ds-color-border-ui-focus-inverse, #{$ds-color-border-ui-focus-inverse}); + + --ds-auro-hyperlink-cta-secondary-visited-color-inverse: var(--ds-color-text-ui-default-inverse, #{$ds-color-text-ui-default-inverse}); + --ds-auro-hyperlink-cta-secondary-visited-container-color-inverse: var(--ds-color-container-ui-secondary-default-inverse, #{$ds-color-container-ui-secondary-default-inverse}); + --ds-auro-hyperlink-cta-secondary-visited-outline-color-inverse: var(--ds-color-border-ui-focus-inverse, #{$ds-color-border-ui-focus-inverse}); + --ds-auro-hyperlink-cta-secondary-visited-border-color-inverse: var(--ds-color-border-ui-focus-inverse, #{$ds-color-border-ui-focus-inverse}); + + --ds-auro-hyperlink-cta-secondary-focus-color-inverse: var(--ds-color-text-ui-default-inverse, #{$ds-color-text-ui-default-inverse}); + --ds-auro-hyperlink-cta-secondary-focus-container-color-inverse: var(--ds-color-container-ui-secondary-default-inverse, #{$ds-color-container-ui-secondary-default-inverse}); + --ds-auro-hyperlink-cta-secondary-focus-outline-color-inverse: var(--ds-color-border-ui-focus-inverse, #{$ds-color-border-ui-focus-inverse}); + --ds-auro-hyperlink-cta-secondary-focus-border-color-inverse: var(--ds-color-border-ui-focus-inverse, #{$ds-color-border-ui-focus-inverse}); + + --ds-auro-hyperlink-cta-secondary-hover-color-inverse: var(--ds-color-text-ui-hover-inverse, #{$ds-color-text-ui-hover-inverse}); + --ds-auro-hyperlink-cta-secondary-hover-container-color-inverse: var(--ds-color-container-ui-secondary-hover-inverse, #{ds-color-container-ui-secondary-hover-inverse}); + --ds-auro-hyperlink-cta-secondary-hover-outline-color-inverse: var(--ds-color-border-ui-hover-inverse, #{ds-color-border-ui-hover-inverse}); + --ds-auro-hyperlink-cta-secondary-hover-border-color-inverse: var(--ds-color-border-ui-hover-inverse, #{ds-color-border-ui-hover-inverse}); + + // cta hyperlink - tertiary + + --ds-auro-hyperlink-cta-tertiary-default-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-tertiary-default-container-color-default: color-mix(in srgb, var(--ds-color-base-black, $ds-color-base-black) 3%, transparent); + --ds-auro-hyperlink-cta-tertiary-default-outline-color-default: transparent; + --ds-auro-hyperlink-cta-tertiary-default-border-color-default: transparent; + + --ds-auro-hyperlink-cta-tertiary-visited-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-tertiary-visited-container-color-default: color-mix(in srgb, var(--ds-color-base-black, $ds-color-base-black) 3%, transparent); + --ds-auro-hyperlink-cta-tertiary-visited-outline-color-default: transparent; + --ds-auro-hyperlink-cta-tertiary-visited-border-color-default: transparent; + + --ds-auro-hyperlink-cta-tertiary-focus-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-tertiary-focus-container-color-default: color-mix(in srgb, var(--ds-color-base-black, $ds-color-base-black) 3%, transparent); + --ds-auro-hyperlink-cta-tertiary-focus-outline-color-default: var(--ds-color-border-ui-focus-default, #{ds-color-border-ui-focus-default}); + --ds-auro-hyperlink-cta-tertiary-focus-border-color-default: transparent; + + --ds-auro-hyperlink-cta-tertiary-hover-color-default: var(--ds-color-ui-default-default, $ds-color-ui-default-default); + --ds-auro-hyperlink-cta-tertiary-hover-container-color-default: var(--ds-color-base-black-400, $ds-color-base-black-400); + --ds-auro-hyperlink-cta-tertiary-hover-outline-color-default: transparent; + --ds-auro-hyperlink-cta-tertiary-hover-border-color-default: transparent; + + // cta hyperlink - tertiary ondark + + --ds-auro-hyperlink-cta-tertiary-default-color-inverse: var(--ds-color-text-ui-default-inverse, $ds-color-text-ui-default-inverse); + --ds-auro-hyperlink-cta-tertiary-default-container-color-inverse: color-mix(in srgb, var(--ds-color-base-black, $ds-color-base-black) 3%, transparent); + --ds-auro-hyperlink-cta-tertiary-default-outline-color-inverse: transparent; + --ds-auro-hyperlink-cta-tertiary-default-border-color-inverse: transparent; + + --ds-auro-hyperlink-cta-tertiary-visited-color-inverse: var(--ds-color-text-ui-default-inverse, $ds-color-text-ui-default-inverse); + --ds-auro-hyperlink-cta-tertiary-visited-container-color-inverse: color-mix(in srgb, var(--ds-color-base-black, $ds-color-base-black) 3%, transparent); + --ds-auro-hyperlink-cta-tertiary-visited-outline-color-inverse: transparent; + --ds-auro-hyperlink-cta-tertiary-visited-border-color-inverse: transparent; + + --ds-auro-hyperlink-cta-tertiary-focus-color-inverse: var(--ds-color-text-ui-default-inverse, $ds-color-text-ui-default-inverse); + --ds-auro-hyperlink-cta-tertiary-focus-container-color-inverse: color-mix(in srgb, var(--ds-color-base-black, $ds-color-base-black) 3%, transparent); + --ds-auro-hyperlink-cta-tertiary-focus-outline-color-inverse: var(--ds-color-border-ui-focus-inverse, #{-ds-color-border-ui-focus-inverse}); + --ds-auro-hyperlink-cta-tertiary-focus-border-color-inverse: transparent; + + --ds-auro-hyperlink-cta-tertiary-hover-color-inverse: var(--ds-color-text-ui-default-inverse, $ds-color-text-ui-default-inverse); + --ds-auro-hyperlink-cta-tertiary-hover-container-color-inverse: var(--ds-color-base-black-400, $ds-color-base-black-400); + --ds-auro-hyperlink-cta-tertiary-hover-outline-color-inverse: transparent; + --ds-auro-hyperlink-cta-tertiary-hover-border-color-inverse: transparent; +}