diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index bb79d2e..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,244 +0,0 @@ -module.exports = { - "env": { - "browser": true, - "es6": true - }, - "extends": ["eslint:recommended", "plugin:lit/recommended"], - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, - "parserOptions": { - "ecmaVersion": 2018, - "sourceType": "module" - }, - "plugins": ["lit"], - "rules": { - "accessor-pairs": "error", - "array-bracket-newline": "error", - "array-bracket-spacing": "error", - "array-callback-return": "error", - "array-element-newline": "error", - "arrow-body-style": "error", - "arrow-parens": "error", - "arrow-spacing": ["error", { - "after": true, - "before": true - }], - "block-scoped-var": "error", - "block-spacing": "error", - "brace-style": "error", - "callback-return": "error", - "camelcase": "error", - "capitalized-comments": "off", - "class-methods-use-this": "off", - "comma-dangle": "off", - "comma-spacing": ["error", { - "after": true, - "before": false - }], - "comma-style": ["error", "last"], - "complexity": "error", - "computed-property-spacing": "error", - "consistent-return": "error", - "consistent-this": "error", - "curly": "error", - "default-case": "error", - "default-param-last": "error", - "dot-location": "error", - "dot-notation": "error", - "eol-last": "off", - "eqeqeq": "error", - "func-call-spacing": "error", - "func-name-matching": "error", - "func-names": "off", - "func-style": "error", - "function-paren-newline": "error", - "generator-star-spacing": "error", - "global-require": "error", - "grouped-accessor-pairs": "error", - "guard-for-in": "error", - "handle-callback-err": "error", - "id-blacklist": "error", - "id-length": "error", - "id-match": "error", - "implicit-arrow-linebreak": "error", - "indent": "off", - "indent-legacy": "off", - "init-declarations": "error", - "jsx-quotes": "error", - "key-spacing": "off", - "keyword-spacing": ["error", { - "after": true, - "before": true - }], - "line-comment-position": "error", - "linebreak-style": ["error", "unix"], - "lines-around-comment": "error", - "lines-around-directive": "error", - "lines-between-class-members": ["error", "always"], - "max-classes-per-file": "error", - "max-depth": "error", - "max-len": "off", - "max-lines": "error", - "max-lines-per-function": "off", - "max-nested-callbacks": "error", - "max-params": "error", - "max-statements": "error", - "max-statements-per-line": "error", - "multiline-comment-style": "off", - "new-cap": "error", - "new-parens": "error", - "newline-after-var": "error", - "newline-before-return": "error", - "newline-per-chained-call": "error", - "no-alert": "error", - "no-array-constructor": "error", - "no-await-in-loop": "error", - "no-bitwise": "error", - "no-buffer-constructor": "error", - "no-caller": "error", - "no-catch-shadow": "error", - "no-confusing-arrow": "error", - "no-console": "error", - "no-constructor-return": "error", - "no-continue": "error", - "no-div-regex": "error", - "no-dupe-else-if": "error", - "no-duplicate-imports": "error", - "no-else-return": "error", - "no-empty-function": "off", - "no-eq-null": "error", - "no-eval": "error", - "no-extend-native": "error", - "no-extra-bind": "error", - "no-extra-label": "error", - "no-extra-parens": "error", - "no-floating-decimal": "error", - "no-implicit-coercion": "error", - "no-implicit-globals": "error", - "no-implied-eval": "error", - "no-import-assign": "error", - "no-inline-comments": "error", - "no-invalid-this": "off", - "no-iterator": "error", - "no-label-var": "error", - "no-labels": "error", - "no-lone-blocks": "error", - "no-lonely-if": "error", - "no-loop-func": "error", - "no-magic-numbers": "error", - "no-mixed-operators": "error", - "no-mixed-requires": "error", - "no-multi-assign": "error", - "no-multi-spaces": "error", - "no-multi-str": "error", - "no-multiple-empty-lines": "error", - "no-native-reassign": "error", - "no-negated-condition": "error", - "no-negated-in-lhs": "error", - "no-nested-ternary": "error", - "no-new": "error", - "no-new-func": "error", - "no-new-object": "error", - "no-new-require": "error", - "no-new-wrappers": "error", - "no-octal-escape": "error", - "no-param-reassign": "error", - "no-path-concat": "error", - "no-plusplus": "error", - "no-process-env": "error", - "no-process-exit": "error", - "no-proto": "error", - "no-restricted-globals": "error", - "no-restricted-imports": "error", - "no-restricted-modules": "error", - "no-restricted-properties": "error", - "no-restricted-syntax": "error", - "no-return-assign": "error", - "no-return-await": "error", - "no-script-url": "error", - "no-self-compare": "error", - "no-sequences": "error", - "no-setter-return": "error", - "no-shadow": "error", - "no-spaced-func": "error", - "no-sync": "error", - "no-tabs": "error", - "no-template-curly-in-string": "error", - "no-ternary": "off", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef-init": "error", - "no-undefined": "off", - "no-underscore-dangle": "error", - "no-unmodified-loop-condition": "error", - "no-unneeded-ternary": "error", - "no-unused-expressions": "error", - "no-use-before-define": "error", - "no-useless-call": "error", - "no-useless-computed-key": "error", - "no-useless-concat": "error", - "no-useless-constructor": "error", - "no-useless-rename": "error", - "no-useless-return": "error", - "no-var": "error", - "no-void": "error", - "no-warning-comments": "error", - "no-whitespace-before-property": "error", - "nonblock-statement-body-position": "error", - "object-curly-newline": "error", - "object-curly-spacing": "off", - "object-property-newline": "error", - "object-shorthand": "error", - "one-var": "error", - "one-var-declaration-per-line": "error", - "operator-assignment": "error", - "operator-linebreak": "error", - "padded-blocks": "off", - "padding-line-between-statements": "error", - "prefer-arrow-callback": "error", - "prefer-const": "error", - "prefer-destructuring": "error", - "prefer-exponentiation-operator": "error", - "prefer-named-capture-group": "error", - "prefer-numeric-literals": "error", - "prefer-object-spread": "error", - "prefer-promise-reject-errors": "error", - "prefer-reflect": "error", - "prefer-regex-literals": "error", - "prefer-rest-params": "error", - "prefer-spread": "error", - "prefer-template": "error", - "quote-props": "off", - "quotes": "off", - "radix": "error", - "require-await": "error", - "require-jsdoc": "error", - "require-unicode-regexp": "error", - "rest-spread-spacing": ["error", "never"], - "semi": "off", - "semi-spacing": "error", - "semi-style": ["error", "last"], - "sort-keys": "off", - "sort-vars": "error", - "space-before-blocks": "error", - "space-before-function-paren": "off", - "space-in-parens": ["error", "never"], - "space-infix-ops": "error", - "space-unary-ops": "error", - "spaced-comment": ["error", "always"], - "strict": "error", - "switch-colon-spacing": "error", - "symbol-description": "error", - "template-curly-spacing": ["error", "never"], - "template-tag-spacing": ["error", "never"], - "unicode-bom": ["error", "never"], - "valid-jsdoc": "error", - "vars-on-top": "error", - "wrap-iife": "error", - "wrap-regex": "error", - "yield-star-spacing": "error", - "yoda": ["error", "never"] - } -}; diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..70bd3dd --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1 @@ +npx --no-install commitlint --edit "$1" diff --git a/.husky/pre-commit b/.husky/pre-commit index 06563ea..07ace63 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - ./node_modules/.bin/npm-run-all linters test diff --git a/README.md b/README.md index 4b95c01..1716e9a 100644 --- a/README.md +++ b/README.md @@ -82,15 +82,6 @@ The use of any Auro custom element has a dependency on the [Auro Design Tokens]( -### CSS Custom Property fallbacks - - -[CSS custom properties](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) are [not supported](https://auro.alaskaair.com/support/custom-properties) in older browsers. For this, fallback properties are pre-generated and included with the npm. - -Any update to the Auro Design Tokens will be immediately reflected with browsers that support CSS custom properties, legacy browsers will require updated components with pre-generated fallback properties. - - - ### Define dependency in project component @@ -127,9 +118,9 @@ In cases where the project is not able to process JS assets, there are pre-proce ```html - - - + + + ``` diff --git a/apiExamples/label.html b/apiExamples/label.html index 03ee0fa..800ee28 100644 --- a/apiExamples/label.html +++ b/apiExamples/label.html @@ -2,4 +2,3 @@ Danger Success Advisory -Flight 167 diff --git a/demo/api.html b/demo/api.html index cbdc57a..8dda71e 100644 --- a/demo/api.html +++ b/demo/api.html @@ -32,7 +32,7 @@ - diff --git a/demo/apiExamples.md b/demo/api.md similarity index 92% rename from demo/apiExamples.md rename to demo/api.md index c4187db..01df9e2 100644 --- a/demo/apiExamples.md +++ b/demo/api.md @@ -3,7 +3,7 @@ # auro-badge -HTML custom element for the use of drawing attention to additional interface information +HTML custom element for the use of drawing attention to additional interface information. ## Attributes @@ -18,6 +18,7 @@ HTML custom element for the use of drawing attention to additional interface inf | [mvp](#mvp) | `Boolean` | Sets the background color of the badge to the oneworld mvp color | | [mvpgold](#mvpgold) | `Boolean` | Sets the background color of the badge to the oneworld mvpgold color | | `mvpgold75k` | `Boolean` | Sets the background color of the badge to the oneworld mvpgold75k color | +| [ondark](#ondark) | `Boolean` | Enables styles for dark backgrounds | | [pill](#pill) | `Boolean` | Enables pill UI option | | [ruby](#ruby) | `Boolean` | Sets the background color of the badge to the oneworld ruby color | | [sapphire](#sapphire) | `Boolean` | Sets the background color of the badge to the oneworld sapphire color | @@ -262,4 +263,21 @@ Use the `pill` attribute to render a small 'pill size' UI. Flight 99 ``` - + + +## Theme Support + +The component may be restyled using the following code sample and changing the values of the following token(s). + + + + +```css +:host { + --ds-auro-badge-border-color: var(--ds-color-border-subtle-inverse, #326aa5); + --ds-auro-badge-boxshadow-color: var(--ds-color-border-subtle-default, #f0f7fd); + --ds-auro-badge-container-color: var(--ds-color-utility-navy-default, #326aa5); + --ds-auro-badge-text-color: var(--ds-color-text-primary-inverse, #ffffff); +} +``` + diff --git a/demo/index.html b/demo/index.html index 9a56672..afb4954 100644 --- a/demo/index.html +++ b/demo/index.html @@ -9,9 +9,6 @@ type="text/css" href="https://cdn.jsdelivr.net/npm/prismjs@latest/themes/prism.css" /> - - - @@ -39,6 +36,5 @@ - diff --git a/demo/index.md b/demo/index.md index c464627..e46c484 100644 --- a/demo/index.md +++ b/demo/index.md @@ -172,7 +172,6 @@ Use the `label` attribute for a text label experience. The last example illustra Danger Success Advisory - Flight 167 @@ -184,8 +183,7 @@ Use the `label` attribute for a text label experience. The last example illustra Hello World Danger Success -Advisory -Flight 167 +Advisory ``` diff --git a/docs/api.md b/docs/api.md index 6d0802a..51174fa 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,6 +1,6 @@ # auro-badge -HTML custom element for the use of drawing attention to additional interface information +HTML custom element for the use of drawing attention to additional interface information. ## Attributes @@ -15,6 +15,7 @@ HTML custom element for the use of drawing attention to additional interface inf | `mvp` | `Boolean` | Sets the background color of the badge to the oneworld mvp color | | `mvpgold` | `Boolean` | Sets the background color of the badge to the oneworld mvpgold color | | `mvpgold75k` | `Boolean` | Sets the background color of the badge to the oneworld mvpgold75k color | +| `ondark` | `Boolean` | Enables styles for dark backgrounds | | `pill` | `Boolean` | Enables pill UI option | | `ruby` | `Boolean` | Sets the background color of the badge to the oneworld ruby color | | `sapphire` | `Boolean` | Sets the background color of the badge to the oneworld sapphire color | diff --git a/docs/partials/apiExamples.md b/docs/partials/api.md similarity index 94% rename from docs/partials/apiExamples.md rename to docs/partials/api.md index e1a56ca..ad48f5c 100644 --- a/docs/partials/apiExamples.md +++ b/docs/partials/api.md @@ -162,3 +162,10 @@ Use the `pill` attribute to render a small 'pill size' UI. + +## Theme Support + +The component may be restyled using the following code sample and changing the values of the following token(s). + + + diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..775da54 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,14 @@ +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")]; + diff --git a/package-lock.json b/package-lock.json index b7fad83..9b2294c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,25 @@ { "name": "@aurodesignsystem/auro-badge", - "version": "2.4.10", + "version": "2.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@aurodesignsystem/auro-badge", - "version": "2.4.10", + "version": "2.5.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { + "@aurodesignsystem/auro-button": "^7.3.0-beta.6", + "@aurodesignsystem/auro-icon": "^4.5.0-beta.1", "chalk": "^5.3.0", "lit": "^3.1.4" }, "devDependencies": { "@alaskaairux/icons": "^4.41.1", "@aurodesignsystem/auro-library": "^2.6.0", - "@aurodesignsystem/design-tokens": "^4.8.0", + "@aurodesignsystem/design-tokens": "^4.9.0", + "@aurodesignsystem/eslint-config": "^1.3.2", "@aurodesignsystem/webcorestylesheets": "^5.1.1", "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", @@ -33,22 +36,22 @@ "concurrently": "^8.2.2", "copyfiles": "^2.4.1", "core-js": "^3.37.1", - "eslint": "^8.57.0", + "eslint": "^9.7.0", "eslint-plugin-lit": "^1.14.0", - "husky": "^9.0.11", + "husky": "^9.1.1", "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", - "rollup": "^4.18.0", + "rollup": "^4.19.0", "rollup-plugin-serve": "^2.0.2", "semantic-release": "^24.0.0", "sinon": "^18.0.0", - "stylelint": "^16.6.1", + "stylelint": "^16.7.0", "stylelint-config-standard": "^36.0.1", - "typescript": "^5.5.2", + "typescript": "^5.5.4", "wc-sass-render": "^1.4.0", "web-component-analyzer": "^2.0.0", "whatwg-fetch": "^3.6.20", @@ -98,7 +101,6 @@ "version": "4.41.1", "resolved": "https://registry.npmjs.org/@alaskaairux/icons/-/icons-4.41.1.tgz", "integrity": "sha512-XI0bHWM0HGzNoHX1JzGUVlwX3YafqWI3ruEhsugI5DzFyec/zTlgf2/3IA0CBNyhroaU/WyXuPAPlIq1b509aA==", - "dev": true, "hasInstallScript": true, "dependencies": { "chalk": "4.1.2", @@ -112,7 +114,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -127,7 +128,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -143,7 +143,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -154,14 +153,12 @@ "node_modules/@alaskaairux/icons/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@alaskaairux/icons/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -169,6 +166,42 @@ "node": ">=8" } }, + "node_modules/@aurodesignsystem/auro-button": { + "version": "7.3.0-beta.6", + "resolved": "https://registry.npmjs.org/@aurodesignsystem/auro-button/-/auro-button-7.3.0-beta.6.tgz", + "integrity": "sha512-5GFBukUySCAKHQLUpVBV1V8vmzwlnY8tSo8FOmG+HvxiRpVw/kNqsiOEcdS4pMN6IClbhMRkFK/PYumn8owu8w==", + "hasInstallScript": true, + "dependencies": { + "@aurodesignsystem/auro-loader": "^2.1.0-beta.2", + "chalk": "^5.3.0", + "lit": "^3.1.4" + }, + "engines": { + "node": "^18 || ^20" + }, + "peerDependencies": { + "@aurodesignsystem/design-tokens": "^4.3.0", + "@aurodesignsystem/webcorestylesheets": "^5.0.8" + } + }, + "node_modules/@aurodesignsystem/auro-icon": { + "version": "4.5.0-beta.1", + "resolved": "https://registry.npmjs.org/@aurodesignsystem/auro-icon/-/auro-icon-4.5.0-beta.1.tgz", + "integrity": "sha512-R1KETZuTEk8CYllA8+j1BRjB1K7VaqpQx7PfvW/I/u9TW7Rb8A8hI0715pO0qBw+nIqjVcVpa5GD9ByCqvqxfw==", + "hasInstallScript": true, + "dependencies": { + "chalk": "^5.3.0", + "lit": "^3.1.3" + }, + "engines": { + "node": "^18.x || ^20.x" + }, + "peerDependencies": { + "@alaskaairux/icons": "^4.36.0", + "@aurodesignsystem/design-tokens": "^4.3.1", + "@aurodesignsystem/webcorestylesheets": "^5.0.8" + } + }, "node_modules/@aurodesignsystem/auro-library": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/@aurodesignsystem/auro-library/-/auro-library-2.6.0.tgz", @@ -184,11 +217,27 @@ "node": "^18 || ^20" } }, + "node_modules/@aurodesignsystem/auro-loader": { + "version": "2.1.0-beta.2", + "resolved": "https://registry.npmjs.org/@aurodesignsystem/auro-loader/-/auro-loader-2.1.0-beta.2.tgz", + "integrity": "sha512-7x2bjYuROEdZhGWg51uhqsK6DtoEmiBshgmADfdMRZLOwjkC+8YYFtDlMTN50B0K4MauVHEQ+7p82lOzFAfEdg==", + "hasInstallScript": true, + "dependencies": { + "chalk": "^5.3.0", + "lit": "^3.1.4" + }, + "engines": { + "node": "^18.x || ^20.x " + }, + "peerDependencies": { + "@aurodesignsystem/design-tokens": "^4.3.1", + "@aurodesignsystem/webcorestylesheets": "^5.0.8" + } + }, "node_modules/@aurodesignsystem/design-tokens": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@aurodesignsystem/design-tokens/-/design-tokens-4.8.0.tgz", - "integrity": "sha512-CEhUuz1IhfxC94R+3hXBvP33rA8GtJ6JWDKcqMe15rjkSgpwDm5IxPbKEuUI16BJ4tDZCNPc+OULUcIFXprCbA==", - "dev": true, + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@aurodesignsystem/design-tokens/-/design-tokens-4.9.0.tgz", + "integrity": "sha512-rJWcSCOFwtJ2O8e1jKnFch92cPqeXiLfqgtKpv1B0D4bqMfWgGPVXWizn3M0aMOHrEjCgFmVBXpZFXfsbpOW1A==", "hasInstallScript": true, "dependencies": { "chalk": "^5.3.0" @@ -197,11 +246,88 @@ "node": ">=18" } }, + "node_modules/@aurodesignsystem/eslint-config": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@aurodesignsystem/eslint-config/-/eslint-config-1.3.2.tgz", + "integrity": "sha512-z27s4u6M4Z+ZLYhTgnurhqkfnsyfgCf4sBOjNw7sSS+B61zaj06TlUmt+WZbdKX9VwSWK6V5KKSQ8Mgw+k7jvQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chalk": "^4.1.1", + "eslint-plugin-detect-bad-words": "^1.0.7", + "eslint-plugin-jsdoc": "^48.8.3", + "eslint-plugin-lit": "^1.14.0", + "eslint-plugin-lit-a11y": "^4.1.4" + }, + "engines": { + "node": "^18 || ^20" + } + }, + "node_modules/@aurodesignsystem/eslint-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@aurodesignsystem/eslint-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@aurodesignsystem/eslint-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@aurodesignsystem/eslint-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@aurodesignsystem/eslint-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@aurodesignsystem/webcorestylesheets": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@aurodesignsystem/webcorestylesheets/-/webcorestylesheets-5.1.1.tgz", "integrity": "sha512-HEwZQTV2/clC9Ty42gpoXfR8rR0VUJjunZNAKJX78X48f0YKVGg4fFX+nVDZH7xklHelb2q+9bPSgc12IVCBPA==", - "dev": true, "hasInstallScript": true, "dependencies": { "chalk": "^5.3.0" @@ -1087,9 +1213,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", - "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", + "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", "dev": true, "funding": [ { @@ -1105,13 +1231,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", - "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", + "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", "dev": true, "funding": [ { @@ -1128,9 +1254,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", - "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", + "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", "dev": true, "funding": [ { @@ -1146,8 +1272,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1" + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" } }, "node_modules/@csstools/selector-specificity": { @@ -1182,6 +1308,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.46.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.46.0.tgz", + "integrity": "sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==", + "dev": true, + "dependencies": { + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~4.0.0" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -1198,24 +1338,38 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "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", @@ -1223,7 +1377,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" @@ -1252,12 +1406,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.7.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz", + "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", "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": { @@ -1269,20 +1432,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", @@ -1296,11 +1445,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "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", @@ -1570,6 +1726,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", @@ -1681,9 +1849,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz", + "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==", "cpu": [ "arm" ], @@ -1694,9 +1862,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz", + "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==", "cpu": [ "arm64" ], @@ -1707,9 +1875,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz", + "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==", "cpu": [ "arm64" ], @@ -1720,9 +1888,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz", + "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==", "cpu": [ "x64" ], @@ -1733,9 +1901,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz", + "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==", "cpu": [ "arm" ], @@ -1746,9 +1914,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz", + "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==", "cpu": [ "arm" ], @@ -1759,9 +1927,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz", + "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==", "cpu": [ "arm64" ], @@ -1772,9 +1940,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz", + "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==", "cpu": [ "arm64" ], @@ -1785,9 +1953,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz", + "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==", "cpu": [ "ppc64" ], @@ -1798,9 +1966,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz", + "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==", "cpu": [ "riscv64" ], @@ -1811,9 +1979,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz", + "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==", "cpu": [ "s390x" ], @@ -1824,9 +1992,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz", + "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==", "cpu": [ "x64" ], @@ -1837,9 +2005,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz", + "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==", "cpu": [ "x64" ], @@ -1850,9 +2018,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz", + "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==", "cpu": [ "arm64" ], @@ -1863,9 +2031,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz", + "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==", "cpu": [ "ia32" ], @@ -1876,9 +2044,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.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz", + "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==", "cpu": [ "x64" ], @@ -2573,6 +2741,15 @@ "unified": "^9.2.2" } }, + "node_modules/@thepassle/axobject-query": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@thepassle/axobject-query/-/axobject-query-4.0.0.tgz", + "integrity": "sha512-/LHo+2jOdxs2WtbGocr3/lDSzsnjgCV6DSoBf4Y1Q0D24Hu67NPWuneoJimfHu5auqqSWi1fAvtln2013VxVqg==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", @@ -2583,7 +2760,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, "engines": { "node": ">=10.13.0" } @@ -2959,12 +3135,6 @@ "@types/node": "*" } }, - "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", @@ -3219,9 +3389,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" @@ -3338,7 +3508,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3347,6 +3516,15 @@ "node": ">= 8" } }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3359,6 +3537,15 @@ "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", "dev": true }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, "node_modules/array-back": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", @@ -3532,6 +3719,12 @@ "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", "dev": true }, + "node_modules/badwords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/badwords/-/badwords-1.0.0.tgz", + "integrity": "sha512-lvRlf54xyNuIeYHHdNYlLQNVc2l5v91v/3mD92fny4GUXXkdaiTImqSCFRBiPBtOASS7TMZjzkMq0cYsPtAbxA==", + "dev": true + }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -3633,7 +3826,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, "engines": { "node": ">=8" } @@ -3641,8 +3833,7 @@ "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "node_modules/bottleneck": { "version": "2.19.5", @@ -3664,7 +3855,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -3987,7 +4177,6 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, "funding": [ { "type": "individual", @@ -4403,6 +4592,15 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", @@ -5003,7 +5201,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -5019,7 +5216,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -5033,7 +5229,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, "dependencies": { "domelementtype": "^2.3.0" }, @@ -5048,7 +5243,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -5062,7 +5256,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "engines": { "node": ">=0.12" }, @@ -5074,7 +5267,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -5087,7 +5279,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, "engines": { "node": ">= 6" }, @@ -5111,7 +5302,6 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, "dependencies": { "css-tree": "~2.2.0" }, @@ -5124,7 +5314,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -5137,8 +5326,7 @@ "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" }, "node_modules/dargs": { "version": "8.1.0", @@ -5338,6 +5526,15 @@ "node": ">= 0.6.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -5375,18 +5572,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", @@ -5401,11 +5586,36 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, + "node_modules/dom5": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dom5/-/dom5-3.0.1.tgz", + "integrity": "sha512-JPFiouQIr16VQ4dX6i0+Hpbg3H2bMKPmZ+WZgBOSSvOPx9QHwwY8sPzeM2baUtViESYto6wC2nuZOMC/6gulcA==", + "dev": true, + "dependencies": { + "@types/parse5": "^2.2.34", + "clone": "^2.1.0", + "parse5": "^4.0.0" + } + }, + "node_modules/dom5/node_modules/@types/parse5": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-2.2.34.tgz", + "integrity": "sha512-p3qOvaRsRpFyEmaS36RtLzpdxZZnmxGuT1GMgzkTtTJVFuEw7KFjGK83MFODpJExgX1bEzy9r0NYjMC3IMfi7w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/dom5/node_modules/parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, "funding": [ { "type": "github", @@ -5769,9 +5979,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "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-set-tostringtag": { @@ -5864,41 +6074,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.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.7.0.tgz", + "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==", "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-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.7.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.2", + "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", @@ -5912,10 +6118,95 @@ "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": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-detect-bad-words/-/eslint-plugin-detect-bad-words-1.0.7.tgz", + "integrity": "sha512-wuLNf+VoEe60VcR9GIvLicHB5hqKBiQaRNr7gwsRGxIprSZunawpwwWFjO/89YsshXrC+icx5qdqoWoMYrBjLw==", + "dev": true, + "dependencies": { + "badwords": "^1.0.0", + "requireindex": "~1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-detect-bad-words/node_modules/requireindex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz", + "integrity": "sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "48.8.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.8.3.tgz", + "integrity": "sha512-AtIvwwW9D17MRkM0Z0y3/xZYaa9mdAvJrkY6fU/HNUwGbmMtHVvK4qRM9CDixGVtfNrQitb8c6zQtdh6cTOvLg==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.46.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.3.5", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.6.0", + "parse-imports": "^2.1.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "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.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "node_modules/eslint-plugin-lit": { @@ -5935,17 +6226,76 @@ "eslint": ">= 5" } }, + "node_modules/eslint-plugin-lit-a11y": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-4.1.4.tgz", + "integrity": "sha512-u39vE1KNOzO99Nrz51oVGY0Iauzf59l9tZgBluE/cU1l86X9/peBMQHUAeGC536dlV4acFYj5yq/VLPsalvnzA==", + "dev": true, + "dependencies": { + "@thepassle/axobject-query": "^4.0.0", + "aria-query": "^5.1.3", + "axe-core": "^4.3.3", + "dom5": "^3.0.1", + "emoji-regex": "^10.2.1", + "eslint-plugin-lit": "^1.10.1", + "eslint-rule-extender": "0.0.1", + "language-tags": "^1.0.5", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "requireindex": "~1.2.0" + }, + "peerDependencies": { + "eslint": ">= 5" + } + }, + "node_modules/eslint-plugin-lit-a11y/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/eslint-plugin-lit-a11y/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/eslint-rule-extender": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/eslint-rule-extender/-/eslint-rule-extender-0.0.1.tgz", + "integrity": "sha512-F0j1Twve3lamL3J0rRSVAynlp58sDPG39JFcQrM+u9Na7PmCgiPHNODh6YE9mduaGcsn3NBqbf6LZRj0cLr8Ng==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kaicataldo" + } + }, "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.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "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" @@ -6028,6 +6378,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/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -6059,17 +6421,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" @@ -6089,9 +6463,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" @@ -6305,22 +6679,21 @@ } }, "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": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6385,17 +6758,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": { @@ -6522,7 +6894,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -6732,7 +7103,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -6803,15 +7173,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" @@ -6922,13 +7289,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, - "license": "MIT" - }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", @@ -6972,7 +7332,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" } @@ -7223,12 +7582,12 @@ } }, "node_modules/husky": { - "version": "9.0.11", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", - "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.1.tgz", + "integrity": "sha512-fCqlqLXcBnXa/TJXmT93/A36tJsjdJkibQ1MuIiFyCCYUlpYpIaj2mv1w+3KR6Rzu1IC3slFTje5f6DUp2A2rg==", "dev": true, "bin": { - "husky": "bin.mjs" + "husky": "bin.js" }, "engines": { "node": ">=18" @@ -7287,8 +7646,7 @@ "node_modules/immutable": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", - "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", - "dev": true + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -7544,7 +7902,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -7674,7 +8031,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7707,7 +8063,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -7766,7 +8121,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "engines": { "node": ">=0.12.0" } @@ -8085,6 +8439,15 @@ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "dev": true }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/json-alexander": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/json-alexander/-/json-alexander-0.1.10.tgz", @@ -8195,9 +8558,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz", - "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==", + "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/koa": { @@ -8298,6 +8661,24 @@ "ms": "^2.1.1" } }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -8873,8 +9254,7 @@ "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/media-typer": { "version": "0.3.0", @@ -9469,7 +9849,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -12322,7 +12701,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, "dependencies": { "boolbase": "^1.0.0" }, @@ -12669,6 +13047,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", @@ -12780,14 +13171,12 @@ "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "engines": { "node": ">=8.6" }, @@ -12932,9 +13321,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": [ { @@ -12952,7 +13341,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -13429,7 +13818,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -13667,25 +14055,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.19.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz", + "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -13698,22 +14071,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.19.0", + "@rollup/rollup-android-arm64": "4.19.0", + "@rollup/rollup-darwin-arm64": "4.19.0", + "@rollup/rollup-darwin-x64": "4.19.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.0", + "@rollup/rollup-linux-arm-musleabihf": "4.19.0", + "@rollup/rollup-linux-arm64-gnu": "4.19.0", + "@rollup/rollup-linux-arm64-musl": "4.19.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0", + "@rollup/rollup-linux-riscv64-gnu": "4.19.0", + "@rollup/rollup-linux-s390x-gnu": "4.19.0", + "@rollup/rollup-linux-x64-gnu": "4.19.0", + "@rollup/rollup-linux-x64-musl": "4.19.0", + "@rollup/rollup-win32-arm64-msvc": "4.19.0", + "@rollup/rollup-win32-ia32-msvc": "4.19.0", + "@rollup/rollup-win32-x64-msvc": "4.19.0", "fsevents": "~2.3.2" } }, @@ -13816,7 +14189,6 @@ "version": "1.70.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", - "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -14383,6 +14755,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", @@ -14484,7 +14862,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14751,9 +15128,9 @@ } }, "node_modules/stylelint": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.6.1.tgz", - "integrity": "sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==", + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.7.0.tgz", + "integrity": "sha512-Q1ATiXlz+wYr37a7TGsfvqYn2nSR3T/isw3IWlZQzFzCNoACHuGBb6xBplZXz56/uDRJHIygxjh7jbV/8isewA==", "dev": true, "funding": [ { @@ -14766,9 +15143,9 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.3", - "@csstools/css-tokenizer": "^2.3.1", - "@csstools/media-query-list-parser": "^2.1.11", + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1", + "@csstools/media-query-list-parser": "^2.1.13", "@csstools/selector-specificity": "^3.1.1", "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", @@ -14776,7 +15153,7 @@ "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.2", "css-tree": "^2.3.1", - "debug": "^4.3.4", + "debug": "^4.3.5", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^9.0.0", @@ -14787,13 +15164,13 @@ "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.31.0", + "known-css-properties": "^0.34.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.7", "normalize-path": "^3.0.0", "picocolors": "^1.0.1", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", "postcss-selector-parser": "^6.1.0", @@ -14878,6 +15255,23 @@ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, + "node_modules/stylelint/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/stylelint/node_modules/file-entry-cache": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", @@ -15008,7 +15402,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", - "dev": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -15033,7 +15426,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, "engines": { "node": ">= 10" } @@ -15061,6 +15453,22 @@ "get-port": "^3.1.0" } }, + "node_modules/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "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", @@ -15333,7 +15741,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -15447,18 +15854,6 @@ "node": ">=4" } }, - "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", @@ -15544,9 +15939,9 @@ "dev": true }, "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.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/package.json b/package.json index 518f4ba..05de484 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,8 @@ "main": "index.js", "license": "Apache-2.0", "dependencies": { + "@aurodesignsystem/auro-button": "^7.3.0-beta.6", + "@aurodesignsystem/auro-icon": "^4.5.0-beta.1", "chalk": "^5.3.0", "lit": "^3.1.4" }, @@ -33,7 +35,8 @@ "devDependencies": { "@alaskaairux/icons": "^4.41.1", "@aurodesignsystem/auro-library": "^2.6.0", - "@aurodesignsystem/design-tokens": "^4.8.0", + "@aurodesignsystem/design-tokens": "^4.9.0", + "@aurodesignsystem/eslint-config": "^1.3.2", "@aurodesignsystem/webcorestylesheets": "^5.1.1", "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", @@ -50,22 +53,22 @@ "concurrently": "^8.2.2", "copyfiles": "^2.4.1", "core-js": "^3.37.1", - "eslint": "^8.57.0", + "eslint": "^9.7.0", "eslint-plugin-lit": "^1.14.0", - "husky": "^9.0.11", + "husky": "^9.1.1", "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", - "rollup": "^4.18.0", + "rollup": "^4.19.0", "rollup-plugin-serve": "^2.0.2", "semantic-release": "^24.0.0", "sinon": "^18.0.0", - "stylelint": "^16.6.1", + "stylelint": "^16.7.0", "stylelint-config-standard": "^36.0.1", - "typescript": "^5.5.2", + "typescript": "^5.5.4", "wc-sass-render": "^1.4.0", "web-component-analyzer": "^2.0.0", "whatwg-fetch": "^3.6.20", @@ -85,13 +88,17 @@ ] }, "scripts": { - "build": "npm-run-all build:sass sass:render types", - "build:test": "npm-run-all test linters", - "build:release": "npm-run-all build build:test build:api build:docs bundler postinstall", +"build": "npm-run-all build:version build:sass sass:render types", + "build:api": "wca analyze 'src/auro-badge.js' --outFiles docs/api.md", "build:ci": "npm-run-all sweep build:release", "build:dev:assets": "npm-run-all build:sass:component postCss:component sass:render", "build:docs": "node scripts/generateDocs.mjs", - "build:api": "wca analyze 'src/auro-badge.js' --outFiles docs/api.md", + "build:release": "npm-run-all build build:api build:docs bundler postinstall", + "build:sass": "npm-run-all build:sass:component postCss:component sass:render", + "build:sass:dev": "npm-run-all build:sass:component postCss:component sass:render", + "build:sass:component": "sass --no-source-map src:src", + "build:test": "npm-run-all test linters", + "build:version": "node scripts/version.mjs", "build:watch": "nodemon -e scss,js --watch src --exec npm run build:dev:assets", "bundler": "rollup -c", "bundle:test": "rollup -c -w", @@ -106,12 +113,9 @@ "linters": "npm-run-all cssLint esLint", "test": "wtr --coverage", "test:watch": "wtr --watch", - "build:sass": "npm-run-all build:sass:component postCss:component sass:render", - "build:sass:dev": "npm-run-all build:sass:component postCss:component sass:render", - "build:sass:component": "sass --no-source-map src:src", "postCss:component": "node ./scripts/postCss.mjs", "serve": "web-dev-server --open demo/ --node-resolve --watch", - "prepare": "husky install", + "prepare": "husky", "types": "tsc", "postversion": "npm-run-all build:api build:docs" }, @@ -144,8 +148,8 @@ "./CHANGELOG.md", "./README.md", "./docs/api.md", - "./demo/demo.md", - "./demo/apiExamples.md" + "./demo/index.md", + "./demo/api.md" ] } ], @@ -155,7 +159,10 @@ "commitlint": { "extends": [ "@commitlint/config-conventional" - ] + ], + "rules": { + "footer-max-line-length": [1, "always", 100] + } }, "publishConfig": { "access": "public" diff --git a/scripts/generateDocs.mjs b/scripts/generateDocs.mjs index 825800d..2e84e39 100644 --- a/scripts/generateDocs.mjs +++ b/scripts/generateDocs.mjs @@ -14,34 +14,28 @@ const readmeFilePath = dirDocTemplates + '/README.md'; */ function nameExtraction() { - const packageJson = fs.readFileSync('package.json', 'utf8', function(err, data) { - if (err) { - console.log('ERROR: Unable to read package.json file', err); - } - }) - - let pName = JSON.parse(packageJson).name; - let pVersion = JSON.parse(packageJson).version; - let pdtVersion = JSON.parse(packageJson).peerDependencies['\@aurodesignsystem/design-tokens'].substring(1) - let wcssVersion = JSON.parse(packageJson).peerDependencies['\@aurodesignsystem/webcorestylesheets'].substring(1) - - let npmStart = pName.indexOf('@'); - let namespaceStart = pName.indexOf('/'); - let nameStart = pName.indexOf('-'); - - let result = { - 'npm': pName.substring(npmStart, namespaceStart), - 'namespace': pName.substring(namespaceStart + 1, nameStart), - 'namespaceCap': pName.substring(namespaceStart + 1)[0].toUpperCase() + pName.substring(namespaceStart + 2, nameStart), - 'name': pName.substring(nameStart + 1), - 'nameCap': pName.substring(nameStart + 1)[0].toUpperCase() + pName.substring(nameStart + 2), - 'version': pVersion, - 'tokensVersion': pdtVersion, - 'wcssVersion': wcssVersion - }; - - return result; - } + const packageJson = fs.readFileSync('package.json', 'utf8', function(err, data) { + if (err) { + console.log('ERROR: Unable to read package.json file', err); + } + }) + + let pName = JSON.parse(packageJson).name; + + let npmStart = pName.indexOf('@'); + let namespaceStart = pName.indexOf('/'); + let nameStart = pName.indexOf('-'); + + let result = { + 'npm': pName.substring(npmStart, namespaceStart), + 'namespace': pName.substring(namespaceStart + 1, nameStart), + 'namespaceCap': pName.substring(namespaceStart + 1)[0].toUpperCase() + pName.substring(namespaceStart + 2, nameStart), + 'name': pName.substring(nameStart + 1), + 'nameCap': pName.substring(nameStart + 1)[0].toUpperCase() + pName.substring(nameStart + 2) + }; + + return result; +} /** * Replace all instances of [npm], [name], [Name], [namespace] and [Namespace] accordingly @@ -59,9 +53,6 @@ function formatTemplateFileContents(content, destination) { result = result.replace(/\[Name](?!\()/g, nameExtractionData.nameCap); result = result.replace(/\[namespace]/g, nameExtractionData.namespace); result = result.replace(/\[Namespace]/g, nameExtractionData.namespaceCap); - result = result.replace(/\[Version]/g, nameExtractionData.version); - result = result.replace(/\[dtVersion]/g, nameExtractionData.tokensVersion); - result = result.replace(/\[wcssVersion]/g, nameExtractionData.wcssVersion); /** * Cleanup line breaks @@ -91,8 +82,8 @@ function formatApiTableContents(content, destination) { fs.writeFileSync(destination, result, { encoding: 'utf8'}); - fs.readFile('./demo/apiExamples.md', 'utf8', function(err, data) { - formatTemplateFileContents(data, './demo/apiExamples.md'); + fs.readFile('./demo/api.md', 'utf8', function(err, data) { + formatTemplateFileContents(data, './demo/api.md'); }); } @@ -123,7 +114,7 @@ function processReadme() { } /** - * Compiles `./docTemplates/demo.md` -> `./demo/index.md` + * Compiles `./docs/partials/index.md` -> `./demo/index.md` */ function processDemo() { @@ -148,17 +139,17 @@ function processDemo() { } /** - * Compiles `./docTemplates/apiExamples.md` -> `./demo/apiExamples.md` + * Compiles `./docs/partials/api.md` -> `./demo/api.md` */ function processApiExamples() { const callback = function(updatedContent, outputConfig) { - if (fs.existsSync('./demo/apiExamples.md')) { - fs.readFile('./demo/apiExamples.md', 'utf8', function(err, data) { - formatApiTableContents(data, './demo/apiExamples.md'); + if (fs.existsSync('./demo/api.md')) { + fs.readFile('./demo/api.md', 'utf8', function(err, data) { + formatApiTableContents(data, './demo/api.md'); }); } else { - console.log('ERROR: ./demo/apiExamples.md file is missing'); + console.log('ERROR: ./demo/api.md file is missing'); } }; @@ -167,7 +158,7 @@ function processApiExamples() { outputDir: './demo' }; - const markdownPath = path.join(__dirname, '../docs/partials/apiExamples.md'); + const markdownPath = path.join(__dirname, '../docs/partials/api.md'); markdownMagic(markdownPath, config, callback); } diff --git a/scripts/version.mjs b/scripts/version.mjs new file mode 100644 index 0000000..035244d --- /dev/null +++ b/scripts/version.mjs @@ -0,0 +1,4 @@ +import versionWriter from '@aurodesignsystem/auro-library/scripts/build/versionWriter.js'; + +versionWriter.writeDepVersionFile('@aurodesignsystem/auro-button'); +versionWriter.writeDepVersionFile('@aurodesignsystem/auro-icon'); diff --git a/src/auro-badge.js b/src/auro-badge.js index b782546..c3c4b45 100644 --- a/src/auro-badge.js +++ b/src/auro-badge.js @@ -3,16 +3,31 @@ // --------------------------------------------------------------------- -// If use litElement base class -import { LitElement, html } from "lit"; +/* eslint-disable lit/binding-positions, lit/no-invalid-html */ + +import { LitElement } from "lit"; +import { html } from 'lit/static-html.js'; + import styleCss from "./style-css.js"; +import colorCss from "./color-css.js"; +import tokensCss from "./tokens-css.js"; + +import { AuroDependencyVersioning } from '@aurodesignsystem/auro-library/scripts/runtime/dependencyTagVersioning.mjs'; + +import { AuroButton } from '@aurodesignsystem/auro-button/src/auro-button.js'; +import buttonVersion from './buttonVersion'; + +import { AuroIcon } from '@aurodesignsystem/auro-icon/src/auro-icon.js'; +import iconVersion from './iconVersion'; + import closeIcon from '@alaskaairux/icons/dist/icons/interface/x-sm.mjs'; // See https://git.io/JJ6SJ for "How to document your components using JSDoc" /** - * HTML custom element for the use of drawing attention to additional interface information + * HTML custom element for the use of drawing attention to additional interface information. * * @attr {Boolean} target - Enables the close functionality + * @attr {Boolean} ondark - Enables styles for dark backgrounds * @attr {Boolean} error - Enables error UI * @attr {Boolean} success - Enables success UI * @attr {Boolean} advisory - Enables advisory UI @@ -36,19 +51,21 @@ export class AuroBadge extends LitElement { super(); /** - * @private internal variable + * @private */ - this.dom = new DOMParser().parseFromString(closeIcon.svg, 'text/html'); + this.icon = false; + + const versioning = new AuroDependencyVersioning(); /** - * @private internal variable + * @private */ - this.svg = this.dom.body.firstChild; + this.buttonTag = versioning.generateTag('auro-button', buttonVersion, AuroButton); /** - * @private internal variable + * @private */ - this.icon = false; + this.iconTag = versioning.generateTag('auro-icon', iconVersion, AuroIcon); this.target = false; this.disabled = false; @@ -80,8 +97,9 @@ export class AuroBadge extends LitElement { } /** - * @private Fires a custom event and removes the element from the DOM if target is true - * @param {*} event interaction event from Badge + * Fires a custom event and removes the element from the DOM if target is true. + * @private + * @param {*} event - Event interaction event from Badge. * @returns {void} */ handleChange(event) { @@ -94,19 +112,59 @@ export class AuroBadge extends LitElement { } /** - * @private On slot content change, checks for auro-icon and applies attribute to component for adjusted styling - * @returns {void} - */ + * On slot content change, checks for auro-icon and applies attribute to component for adjusted styling. + * @private + * @returns {void} + */ handleContentSlotChanges() { const [slotContent] = this.shadowRoot.querySelector('slot').assignedNodes(); if (slotContent.tagName === 'AURO-ICON') { this.icon = true; } else { - this.icon = false + this.icon = false; + } + } + + /** + * Generates an HTML element containing an SVG icon based on the provided `svgContent`. + * + * @private + * @param {string} svgContent - The SVG content to be embedded. + * @returns {Element} The HTML element containing the SVG icon. + */ + generateIconHtml(svgContent) { + const dom = new DOMParser().parseFromString(svgContent, 'text/html'); + const svg = dom.body.firstChild; + + svg.setAttribute('slot', 'svg'); + + const iconHtml = html`<${this.iconTag} customColor customSize customSvg slot="icon">${svg}`; + + return iconHtml; + } + + /** + * If component is registered as a custom name, + * this function will add an attribute to the element + * with the default name. This is so that other parent + * components can still this the element. + * @private + * @param {string} name - The default tag name. + * @param {HTMLElement} elem - The element to add the attribute to. + * @returns {void} + */ + handleCustomTagName(name, elem) { + if (name.toLowerCase() !== elem.tagName.toLowerCase()) { + elem.setAttribute(name, true); } } + connectedCallback() { + super.connectedCallback(); + this.handleCustomTagName('auro-badge', this); + } + firstUpdated() { // Finds slotted content and adds string to button value if (this.target) { @@ -117,21 +175,30 @@ export class AuroBadge extends LitElement { } static get styles() { - return [styleCss] + return [ + styleCss, + colorCss, + tokensCss + ]; } // function that renders the HTML and CSS into the scope of the component render() { return html` ${this.target - ? html`` + ` : html`` } `; diff --git a/src/buttonVersion.js b/src/buttonVersion.js new file mode 100644 index 0000000..6745410 --- /dev/null +++ b/src/buttonVersion.js @@ -0,0 +1 @@ +export default '7.3.0-beta.6' \ No newline at end of file diff --git a/src/color.scss b/src/color.scss new file mode 100644 index 0000000..a34b982 --- /dev/null +++ b/src/color.scss @@ -0,0 +1,111 @@ +// Copyright (c) 2024 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license +// See LICENSE in the project root for license information. + +// --------------------------------------------------------------------- + +// Import Auro tokens +@import "./../node_modules/@aurodesignsystem/design-tokens/dist/tokens/SCSSVariables"; + +@import "./../node_modules/@aurodesignsystem/webcorestylesheets/src/breakpoints"; +@import "./../node_modules/@aurodesignsystem/webcorestylesheets/src/core"; +@import "./../node_modules/@aurodesignsystem/webcorestylesheets/src/utilityClasses/displayProperties"; + +// This pattern will ensure that the focus-visible state will be shown +// regardless of native support or using the polyfill. +:host(.focus-visible), :focus-visible { + &.target { + box-shadow: inset 0 0 0 1px var(--ds-auro-badge-boxshadow-color), inset 0 0 0 3px var(--ds-auro-badge-boxshadow-color); + + &::-moz-focus-inner { + border: none; + } + } +} + +:host { + color: var(--ds-auro-badge-text-color); + background-color: var(--ds-auro-badge-container-color); + border-color: var(--ds-auro-badge-border-color); +} + +:host([advisory]) { + --ds-auro-badge-text-color: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); +} + +:host([onDark]) { + --ds-auro-badge-container-color: var(--ds-color-utility-navy-inverse, #{$ds-color-utility-navy-inverse}); + --ds-auro-badge-border-color: var(--ds-color-utility-navy-inverse, #{$ds-color-utility-navy-inverse}); + --ds-auro-badge-text-color: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); +} + +:host([target]) { + --ds-auro-badge-container-color: transparent; +} + +:host([label]) { + --ds-auro-badge-container-color: transparent; + --ds-auro-badge-border-color: var(--ds-color-border-secondary-default, #{$ds-color-border-secondary-default}); + --ds-auro-badge-text-color: var(--ds-color-text-secondary-default, #{$ds-color-text-secondary-default}); +} + +:host([label][ondark]) { + --ds-auro-badge-container-color: transparent; + --ds-auro-badge-border-color: var(--ds-color-border-secondary-default, #{$ds-color-border-secondary-default}); + --ds-auro-badge-text-color: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); +} + +// The following loop supports the defined state of a badge, as well +// as the default fallback Sass variable color and then the OnDark +// Sass variable color using Sass destructuring +// https://sass-lang.com/documentation/at-rules/control/each/#destructuring +$states: + "error" "error" $ds-color-utility-error-default $ds-color-utility-error-inverse, + "success" "success" $ds-color-utility-success-default $ds-color-utility-success-inverse, + "advisory" "warning" $ds-color-utility-warning-default $ds-color-utility-warning-inverse; + +@each $state, $utilityName, $default, $dark in $states { + :host([#{$state}]) { + --ds-auro-badge-container-color: var(--ds-color-utility-#{$utilityName}-default, $default); + --ds-auro-badge-border-color: var(--ds-color-utility-#{$utilityName}-default, $default); + } + + :host([#{$state}][ondark]) { + --ds-auro-badge-container-color: var(--ds-color-utility-#{$utilityName}-inverse, $dark); + --ds-auro-badge-border-color: var(--ds-color-utility-#{$utilityName}-inverse, $dark); + } +} + +:host([label][error]), +:host([label][success]) { + --ds-auro-badge-text-color: var(--ds-color-text-primary-inverse, #{$ds-color-text-primary-inverse}); +} + +:host([label][advisory]) { + --ds-auro-badge-text-color: var(--ds-color-text-primary-default, #{$ds-color-text-primary-default}); +} + +$owstatus: + "emerald" "oneworld" $ds-color-tier-oneworld-emerald, + "sapphire" "oneworld" $ds-color-tier-oneworld-sapphire, + "ruby" "oneworld" $ds-color-tier-oneworld-ruby, + "lounge" "alaska" $ds-color-tier-alaska-lounge, + "loungeplus" "alaska" $ds-color-tier-alaska-loungeplus; + +@each $status, $tierType, $fallback in $owstatus { + :host([#{$status}]) { + --ds-auro-badge-container-color: var(--ds-color-tier-#{$tierType}-#{$status}, $fallback); + --ds-auro-badge-border-color: var(--ds-color-tier-#{$tierType}-#{$status}, $fallback); + } +} + +$mvpStatus: + "mvp" $ds-color-tier-alaska-mvp-default, + "mvpgold" $ds-color-tier-alaska-mvpgold-default, + "mvpgold75k" $ds-color-tier-alaska-mvpgold-default; + +@each $status, $fallback in $mvpStatus { + :host([#{$status}]) { + --ds-auro-badge-container-color: var(--ds-color-tier-alaska-#{$status}-default, $fallback); + --ds-auro-badge-border-color: var(--ds-color-tier-alaska-#{$status}-default, $fallback); + } +} diff --git a/src/iconVersion.js b/src/iconVersion.js new file mode 100644 index 0000000..edb5f27 --- /dev/null +++ b/src/iconVersion.js @@ -0,0 +1 @@ +export default '4.5.0-beta.1' \ No newline at end of file diff --git a/src/style.scss b/src/style.scss index 12b92b4..58f65a5 100644 --- a/src/style.scss +++ b/src/style.scss @@ -10,31 +10,11 @@ @import "./../node_modules/@aurodesignsystem/webcorestylesheets/src/core"; @import "./../node_modules/@aurodesignsystem/webcorestylesheets/src/utilityClasses/displayProperties"; -// Support for auroElement styles -// @import "./../node_modules/@aurodesignsystem/webcorestylesheets/src/auroElement/auroElement"; - -// container styles - defines the look of the outer custom component -// :host { -// ... -// } - -// 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 - - -// component shape styles -// .auro-badge { -// ... -// } - // This pattern will ensure that the focus-visible state will be shown // regardless of native support or using the polyfill. :host(.focus-visible), :focus-visible { - &.target, .target { - box-shadow: inset 0 0 0 1px var(--ds-color-base-white, $ds-color-base-white), inset 0 0 0 3px var(--ds-color-background-lightest, $ds-color-background-lightest); - + &.target { &::-moz-focus-inner { - border: none; width: 100%; } } @@ -49,37 +29,20 @@ margin-left: var(--ds-size-300, $ds-size-300); } -:host, -.target { +:host { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; - color: var(--ds-color-text-primary-inverse, $ds-color-text-primary-inverse); - background-color: var(--ds-color-ui-default-default, $ds-color-ui-default-default); - border: 1px solid var(--ds-color-ui-default-default, $ds-color-ui-default-default); + border-style: solid; + border-width: 1px; + // suggestion token; establish a supported scale of values, e.g. 100 - 1000 // also create --ds-border-radius-badge that maps to a scale value border-radius: 1.375rem; padding: .688rem var(--ds-size-200, $ds-size-200); } -:host([advisory]) { - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); - - .target { - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); - } -} - -:host([onDark]) { - background-color: var(--ds-color-brand-breeze-300, $ds-color-brand-breeze-300); - border-color: var(--ds-color-brand-breeze-300, $ds-color-brand-breeze-300); - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); - - @extend %hostTarget; -} - :host([target]) { padding: 0; border: 0; @@ -91,37 +54,8 @@ } } -:host([target][ondark]:not([disabled])) { - .target { - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); - - @media (hover: hover) { - &:active, - &:hover { - cursor: pointer; - background-color: var(--ds-color-brand-breeze-200, $ds-color-brand-breeze-200); - border-color: var(--ds-color-brand-breeze-200, $ds-color-brand-breeze-200); - } - } - } -} - -:host([target]:not([disabled])) { - .target { - @media (hover: hover) { - &:active, - &:hover { - cursor: pointer; - background-color: var(--ds-color-ui-hover-default, $ds-color-ui-hover-default); - border-color: var(--ds-color-ui-hover-default, $ds-color-ui-hover-default); - } - } - } -} - .target { font: inherit; - padding: .4375rem var(--ds-size-100, $ds-size-100) .4375rem var(--ds-size-200, $ds-size-200); // macOS / iOS agents -webkit-tap-highlight-color: transparent; @@ -129,28 +63,23 @@ -webkit-user-select: none; } -svg { - margin-left: var(--ds-size-100, $ds-size-100); +[auro-icon] { + height: var(--ds-size-300, $ds-size-300); + width: var(--ds-size-300, $ds-size-300); } - +::part(button) { + padding-left: calc(var(--ds-size-150, $ds-size-150) + var(--ds-size-, $ds-size-25)); + padding-right: var(--ds-size-100, $ds-size-100); +} :host([label]) { - background-color: transparent; - border-color: var(--ds-color-brand-neutral-500, $ds-color-brand-neutral-500); - color: var(--ds-color-text-secondary-default, $ds-color-text-secondary-default); font-size: var(--ds-text-body-size-xs, $ds-text-body-size-xs); padding: var(--labelpillpadding) var(--ds-size-150, $ds-size-150); user-select: none; border-radius: 9999px; } -:host([label][ondark]) { - background-color: transparent; - border-color: var(--ds-color-brand-neutral-500, $ds-color-brand-neutral-500); - color: var(--ds-color-text-primary-inverse, $ds-color-text-primary-inverse); -} - :host([pill]) { padding: var(--labelpillpadding) var(--ds-size-150, $ds-size-150); user-select: none; @@ -161,109 +90,6 @@ svg { opacity: 0.4; } -%hostTarget { - .target { - background-color: transparent; - border-color: transparent; - } -} - -// The following loop supports the defined state of a badge, as well -// as the default fallback Sass variable color and then the OnDark -// Sass variable color using Sass destructuring -// https://sass-lang.com/documentation/at-rules/control/each/#destructuring -$states: - "error" $ds-color-alert-error-default $ds-color-state-error-100, - "success" $ds-color-alert-success-default $ds-color-state-success-100, - "advisory" $ds-color-alert-advisory-default $ds-color-alert-advisory-default; - -@each $state, $default, $dark in $states { - :host([#{$state}]) { - background-color: var(--ds-color-alert-#{$state}-default, $default); - border-color: var(--ds-color-alert-#{$state}-default, $default); - - @extend %hostTarget; - } - - :host([#{$state}][ondark]) { - background-color: var(--ds-color-state-#{$state}-100, $dark); - border-color: var(--ds-color-state-#{$state}-100, $dark); - - @extend %hostTarget; - } - - :host([#{$state}]:not([disabled])) { - .target { - @media (hover: hover) { - &:active, - &:hover { - cursor: pointer; - background-color: var(--ds-color-alert-#{$state}-default, $default); - border-color: var(--ds-color-alert-#{$state}-default, $default); - filter: brightness(85%); - } - } - } - } - - :host([#{$state}][ondark]:not([disabled])) { - .target { - @media (hover: hover) { - &:active, - &:hover { - cursor: pointer; - background-color: var(--ds-color-state-#{$state}-100, $dark); - border-color: var(--ds-color-state-#{$state}-100, $dark); - filter: brightness(85%); - } - } - } - } -} - -:host([label][error]), -:host([label][success]) { - color: var(--ds-color-base-white, $ds-color-base-white); -} - -:host([label][advisory]) { - color: var(--ds-color-text-primary-default, $ds-color-text-primary-default); -} - -// Sass destructuring loop -$owstatus: - "emerald" $ds-color-tier-oneworld-emerald, - "sapphire" $ds-color-tier-oneworld-sapphire, - "ruby" $ds-color-tier-oneworld-ruby, - "lounge" $ds-color-tier-alaska-lounge, - "loungeplus" $ds-color-tier-alaska-loungeplus, - "mvp" $ds-color-tier-alaska-mvp-default, - "mvpgold" $ds-color-tier-alaska-mvpgold-default, - "mvpgold75k" $ds-color-tier-alaska-mvpgold-default; - -@each $status, $fallback in $owstatus { - :host([#{$status}]) { - background-color: var(--ds-color-tier-oneworld-#{$status}, $fallback); - border-color: var(--ds-color-tier-oneworld-#{$status}, $fallback); - - @extend %hostTarget; - } - - :host([#{$status}]:not([disabled])) { - .target { - @media (hover: hover) { - &:active, - &:hover { - cursor: pointer; - background-color: var(--ds-color-tier-oneworld-#{$status}, $fallback); - border-color: var(--ds-color-tier-oneworld-#{$status}, $fallback); - filter: brightness(85%); - } - } - } - } -} - :host([icon]) { padding: var(--labelpillpadding) var(--ds-size-200, $ds-size-200); diff --git a/src/tokens.scss b/src/tokens.scss new file mode 100644 index 0000000..d3a61e7 --- /dev/null +++ b/src/tokens.scss @@ -0,0 +1,8 @@ +@import "./../node_modules/@aurodesignsystem/design-tokens/dist/tokens/SCSSVariables"; + +:host { + --ds-auro-badge-border-color: var(--ds-color-border-subtle-inverse, #{$ds-color-border-subtle-inverse}); + --ds-auro-badge-boxshadow-color: var(--ds-color-border-subtle-default, #{$ds-color-border-subtle-default}); + --ds-auro-badge-container-color: var(--ds-color-utility-navy-default, #{$ds-color-utility-navy-default}); + --ds-auro-badge-text-color: var(--ds-color-text-primary-inverse, #{$ds-color-text-primary-inverse}); +} diff --git a/test/auro-badge.test.js b/test/auro-badge.test.js index 986fd3e..2b9f135 100644 --- a/test/auro-badge.test.js +++ b/test/auro-badge.test.js @@ -34,7 +34,8 @@ describe('auro-badge', () => { `); const root = el.shadowRoot; - root.querySelector('button').click(); + + root.getElementById('targetButton').click(); setTimeout(() => expect(root).to.be.equal(undefined), 3000); }); });