From dedd4ef4b172f0323e34abc93902f938bfdfc9c0 Mon Sep 17 00:00:00 2001 From: Jordan Jones Date: Fri, 3 Oct 2025 12:30:56 -0700 Subject: [PATCH 1/2] feat: add slot functionality in place of aria-labels #357 --- apiExamples/ariaLabel.html | 9 ++ apiExamples/ariaLabelledby.html | 14 ++ apiExamples/icon.html | 9 +- apiExamples/roundedRightAlign.html | 3 +- apiExamples/roundedTextOnly.html | 3 +- apiExamples/roundedTextWithIcon.html | 3 +- apiExamples/shape-circle.html | 15 +- apiExamples/shape-square.html | 15 +- apiExamples/toggledText.html | 3 +- demo/api.html | 1 - demo/api.md | 173 +++++++++++++++----- demo/index.md | 18 ++- docs/api.md | 2 +- docs/partials/api.md | 31 ++-- package-lock.json | 229 ++++++++++++++++++++++++++- package.json | 2 +- src/auro-button.js | 21 ++- test/auro-button.test.js | 33 +++- 18 files changed, 494 insertions(+), 90 deletions(-) create mode 100644 apiExamples/ariaLabel.html create mode 100644 apiExamples/ariaLabelledby.html diff --git a/apiExamples/ariaLabel.html b/apiExamples/ariaLabel.html new file mode 100644 index 00000000..b48b582d --- /dev/null +++ b/apiExamples/ariaLabel.html @@ -0,0 +1,9 @@ + + My Button Label + Auro Button + + + + My Loading Button Label + Auro Button + diff --git a/apiExamples/ariaLabelledby.html b/apiExamples/ariaLabelledby.html new file mode 100644 index 00000000..0de0fdfb --- /dev/null +++ b/apiExamples/ariaLabelledby.html @@ -0,0 +1,14 @@ + + Auro Button + + + + diff --git a/apiExamples/icon.html b/apiExamples/icon.html index 279a2d38..0b57cc93 100644 --- a/apiExamples/icon.html +++ b/apiExamples/icon.html @@ -1,12 +1,15 @@ - + + wifi Activate WiFi - + + arrow-left Previous action - + + heart-filled Love this ... diff --git a/apiExamples/roundedRightAlign.html b/apiExamples/roundedRightAlign.html index 6901a323..2d05f694 100644 --- a/apiExamples/roundedRightAlign.html +++ b/apiExamples/roundedRightAlign.html @@ -1,5 +1,6 @@
- + + in-flight Text is now shown! diff --git a/apiExamples/roundedTextOnly.html b/apiExamples/roundedTextOnly.html index 93391b0d..136f9299 100644 --- a/apiExamples/roundedTextOnly.html +++ b/apiExamples/roundedTextOnly.html @@ -1,3 +1,4 @@ - + + arrow-up Primary diff --git a/apiExamples/roundedTextWithIcon.html b/apiExamples/roundedTextWithIcon.html index 410c68f7..cb596c39 100644 --- a/apiExamples/roundedTextWithIcon.html +++ b/apiExamples/roundedTextWithIcon.html @@ -1,4 +1,5 @@ - + + in-flight Back to Top diff --git a/apiExamples/shape-circle.html b/apiExamples/shape-circle.html index cc65b8e6..5918053b 100644 --- a/apiExamples/shape-circle.html +++ b/apiExamples/shape-circle.html @@ -1,15 +1,20 @@ - + + home-filled - + + home-filled - + + home-filled - + + home-filled - + + home-filled diff --git a/apiExamples/shape-square.html b/apiExamples/shape-square.html index c593c4dd..efebe4c3 100644 --- a/apiExamples/shape-square.html +++ b/apiExamples/shape-square.html @@ -1,15 +1,20 @@ - + + home-filled - + + home-filled - + + home-filled - + + home-filled - + + home-filled diff --git a/apiExamples/toggledText.html b/apiExamples/toggledText.html index fa69a845..af8ed80e 100644 --- a/apiExamples/toggledText.html +++ b/apiExamples/toggledText.html @@ -1,4 +1,5 @@ - + + arrow-up Text is now shown! diff --git a/demo/api.html b/demo/api.html index a8b3f6f1..4e0ad7f2 100644 --- a/demo/api.html +++ b/demo/api.html @@ -52,7 +52,6 @@ - diff --git a/demo/api.md b/demo/api.md index 24f6726a..c07f6b4b 100644 --- a/demo/api.md +++ b/demo/api.md @@ -12,7 +12,7 @@ | [disabled](#disabled) | `disabled` | `boolean` | false | If set to true, button will become disabled and not allow for interactions. | | [fluid](#fluid) | `fluid` | `boolean` | false | Alters the shape of the button to be full width of its parent container. | | [loading](#loading) | `loading` | `boolean` | false | If set to true button text will be replaced with `auro-loader` and become disabled. | -| [loadingText](#loadingText) | `loadingText` | `string` | | Sets custom loading text for the `aria-label` on a button in loading state. If not set, the default value of "Loading..." will be used. | +| [loadingText](#loadingText) | `loadingText` | `string` | | DEPRECATED - Use `slot="ariaLabel.loading"` instead. | | [onDark](#onDark) | `ondark` | `boolean` | "{false}" | DEPRECATED - use `appearance` property | | [shape](#shape) | `shape` | `'default', 'rounded', 'pill', 'circle', 'square'` | "rounded" | Defines the shape of the button. | | [size](#size) | `size` | `'xs', 'sm', 'md', 'lg', 'xl'` | "md" | Defines the size of the button. | @@ -249,15 +249,18 @@ Be sure to use the customColor attribute on the `auro-icon` component to allow c
- + + wifi Activate WiFi - + + arrow-left Previous action - + + heart-filled Love this ... @@ -269,15 +272,18 @@ Be sure to use the customColor attribute on the `auro-icon` component to allow c ```html - + + wifi Activate WiFi - + + arrow-left Previous action - + + heart-filled Love this ... @@ -293,19 +299,24 @@ default - `rounded`
- + + home-filled - + + home-filled - + + home-filled - + + home-filled - + + home-filled @@ -316,19 +327,24 @@ default - `rounded` ```html - + + home-filled - + + home-filled - + + home-filled - + + home-filled - + + home-filled ``` @@ -340,19 +356,24 @@ default - `rounded`
- + + home-filled - + + home-filled - + + home-filled - + + home-filled - + + home-filled @@ -363,19 +384,24 @@ default - `rounded` ```html - + + home-filled - + + home-filled - + + home-filled - + + home-filled - + + home-filled ``` @@ -409,14 +435,15 @@ default - `rounded` -#### Toggle Text +## Toggle Text The `rounded` attribute supports the ability to hide/show the text of the `auro-button`. This can be done by changing the value of the `iconOnly` attribute. In this example, the text is toggled via `mouseover` and `mouseout` events. The `focusin` and `focusout` events simulate toggling text for keyboard users.
- + + arrow-up Text is now shown! @@ -428,7 +455,8 @@ The `rounded` attribute supports the ability to hide/show the text of the `auro- ```html - + + arrow-up Text is now shown! @@ -463,7 +491,7 @@ export function toggledTextExample() { -#### Right Aligned +## Right Aligned This example shows a `rounded` `auro-button` that is right-aligned, demonstrating how the button starts from the right and grows/shrinks from right to left when using the `toggleText` attribute in conjuction with the `mouseover` and `mouseout` events. The `focusin` and `focusout` events simulate toggling text for keyboard users. @@ -471,7 +499,8 @@ This example shows a `rounded` `auro-button` that is right-aligned, demonstratin
- + + in-flight Text is now shown! @@ -485,7 +514,8 @@ This example shows a `rounded` `auro-button` that is right-aligned, demonstratin ```html
- + + in-flight Text is now shown! @@ -653,32 +683,87 @@ Use the `loading` attribute to alter the content to the shimmering dots to alert -### Loading text +## ARIA Support + +#### Aria Label -To provide a custom loading message for assistive technologies, use the `loadingText` attribute. If not provided, the default message will be "Loading...". +Accessible text may be provided through the `ariaLabel` or `ariaLabel.loading` slots.
- - - Primary + + + + My Button Label + Auro Button + + + My Loading Button Label + Auro Button +
See code - - + + ```html -Primary + + My Button Label + Auro Button + + + My Loading Button Label + Auro Button + ``` -## ARIA Attributes +#### Aria Labelledby -Any ARIA attributes can be applied directly to the element and will be handled internally: +The component supports both the `aria-labelledby` attribute for accessibility. -`Auro Button` +
+ + + + Auro Button + + + + +
+ + See code + + + +```html + + Auro Button + + + +``` + + ## Tab Index diff --git a/demo/index.md b/demo/index.md index 8a1f1551..32615b90 100644 --- a/demo/index.md +++ b/demo/index.md @@ -197,15 +197,18 @@ Be sure to use the `customColor` attribute on the auro-icon component to allow c
- + + wifi Activate WiFi - + + arrow-left Previous action - + + heart-filled Love this ... @@ -217,15 +220,18 @@ Be sure to use the `customColor` attribute on the auro-icon component to allow c ```html - + + wifi Activate WiFi - + + arrow-left Previous action - + + heart-filled Love this ... diff --git a/docs/api.md b/docs/api.md index f12496e5..41af3532 100644 --- a/docs/api.md +++ b/docs/api.md @@ -9,7 +9,7 @@ | `disabled` | `disabled` | `boolean` | false | If set to true, button will become disabled and not allow for interactions. | | `fluid` | `fluid` | `boolean` | false | Alters the shape of the button to be full width of its parent container. | | `loading` | `loading` | `boolean` | false | If set to true button text will be replaced with `auro-loader` and become disabled. | -| `loadingText` | `loadingText` | `string` | | Sets custom loading text for the `aria-label` on a button in loading state. If not set, the default value of "Loading..." will be used. | +| `loadingText` | `loadingText` | `string` | | DEPRECATED - Use `slot="ariaLabel.loading"` instead. | | `onDark` | `ondark` | `boolean` | "{false}" | DEPRECATED - use `appearance` property | | `shape` | `shape` | `'default', 'rounded', 'pill', 'circle', 'square'` | "rounded" | Defines the shape of the button. | | `size` | `size` | `'xs', 'sm', 'md', 'lg', 'xl'` | "md" | Defines the size of the button. | diff --git a/docs/partials/api.md b/docs/partials/api.md index 3ae49bc2..68f9bcc2 100644 --- a/docs/partials/api.md +++ b/docs/partials/api.md @@ -161,7 +161,7 @@ default - `rounded` -#### Toggle Text +## Toggle Text The `rounded` attribute supports the ability to hide/show the text of the `auro-button`. This can be done by changing the value of the `iconOnly` attribute. In this example, the text is toggled via `mouseover` and `mouseout` events. The `focusin` and `focusout` events simulate toggling text for keyboard users. @@ -181,7 +181,7 @@ The `rounded` attribute supports the ability to hide/show the text of the `auro- -#### Right Aligned +## Right Aligned This example shows a `rounded` `auro-button` that is right-aligned, demonstrating how the button starts from the right and grows/shrinks from right to left when using the `toggleText` attribute in conjuction with the `mouseover` and `mouseout` events. The `focusin` and `focusout` events simulate toggling text for keyboard users. @@ -282,28 +282,41 @@ Use the `loading` attribute to alter the content to the shimmering dots to alert -### Loading text +## ARIA Support -To provide a custom loading message for assistive technologies, use the `loadingText` attribute. If not provided, the default message will be "Loading...". +#### Aria Label + +Accessible text may be provided through the `ariaLabel` or `ariaLabel.loading` slots.
- +
See code - + -## ARIA Attributes +#### Aria Labelledby + +The component supports both the `aria-labelledby` attribute for accessibility. -Any ARIA attributes can be applied directly to the element and will be handled internally: +
+ + +
-`Auro Button` + + See code + + + + + ## Tab Index diff --git a/package-lock.json b/package-lock.json index ac142b79..13f7ab7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "devDependencies": { "@aurodesignsystem/auro-cli": "^3.0.4", "@aurodesignsystem/auro-config": "^1.3.0", - "@aurodesignsystem/auro-library": "^5.5.3", + "@aurodesignsystem/auro-library": "^5.5.4", "@aurodesignsystem/auro-loader": "^6.0.0", "@aurodesignsystem/design-tokens": "^8.5.0", "@aurodesignsystem/webcorestylesheets": "10.1.0", @@ -475,9 +475,9 @@ } }, "node_modules/@aurodesignsystem/auro-library": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/@aurodesignsystem/auro-library/-/auro-library-5.5.3.tgz", - "integrity": "sha512-UMknP46zq2I5MGIp/ctgdJm9POAAksIGbpcGanjJnSudvuzzr0aeN2snfaNZZcb8z7ExJrxAdXXqceIPG8+Oow==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/@aurodesignsystem/auro-library/-/auro-library-5.5.4.tgz", + "integrity": "sha512-a4TOHE39qcUKjFVGxfy15b5VjCL0cuf1qmjPlVcuVs4AazsUtGtg0CpfsxKqrdxjk869h8A9zVrWGkke3po2lw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -12598,6 +12598,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12614,6 +12615,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.1.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -12625,11 +12627,13 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12646,6 +12650,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12660,6 +12665,7 @@ }, "node_modules/npm/node_modules/@isaacs/fs-minipass": { "version": "4.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12671,11 +12677,13 @@ }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12691,6 +12699,7 @@ }, "node_modules/npm/node_modules/@npmcli/arborist": { "version": "8.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12739,6 +12748,7 @@ }, "node_modules/npm/node_modules/@npmcli/config": { "version": "9.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12757,6 +12767,7 @@ }, "node_modules/npm/node_modules/@npmcli/fs": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12768,6 +12779,7 @@ }, "node_modules/npm/node_modules/@npmcli/git": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12787,6 +12799,7 @@ }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12802,6 +12815,7 @@ }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { "version": "4.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12816,6 +12830,7 @@ }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { "version": "8.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12831,6 +12846,7 @@ }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator/node_modules/pacote": { "version": "20.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12861,6 +12877,7 @@ }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -12869,6 +12886,7 @@ }, "node_modules/npm/node_modules/@npmcli/node-gyp": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -12877,6 +12895,7 @@ }, "node_modules/npm/node_modules/@npmcli/package-json": { "version": "6.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12894,6 +12913,7 @@ }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { "version": "8.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12905,6 +12925,7 @@ }, "node_modules/npm/node_modules/@npmcli/query": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12916,6 +12937,7 @@ }, "node_modules/npm/node_modules/@npmcli/redact": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -12924,6 +12946,7 @@ }, "node_modules/npm/node_modules/@npmcli/run-script": { "version": "9.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12940,14 +12963,17 @@ }, "node_modules/npm/node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "engines": { "node": ">=14" } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { "version": "0.3.2", + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -12956,6 +12982,7 @@ }, "node_modules/npm/node_modules/@sigstore/tuf": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -12968,6 +12995,7 @@ }, "node_modules/npm/node_modules/@tufjs/canonical-json": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -12976,6 +13004,7 @@ }, "node_modules/npm/node_modules/abbrev": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -12984,6 +13013,7 @@ }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12995,6 +13025,7 @@ }, "node_modules/npm/node_modules/aggregate-error": { "version": "3.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13007,6 +13038,7 @@ }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13015,6 +13047,7 @@ }, "node_modules/npm/node_modules/ansi-styles": { "version": "6.2.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13026,21 +13059,25 @@ }, "node_modules/npm/node_modules/aproba": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/archy": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13056,6 +13093,7 @@ }, "node_modules/npm/node_modules/binary-extensions": { "version": "2.3.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13067,6 +13105,7 @@ }, "node_modules/npm/node_modules/brace-expansion": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13075,6 +13114,7 @@ }, "node_modules/npm/node_modules/cacache": { "version": "19.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13097,6 +13137,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/chownr": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "engines": { @@ -13105,6 +13146,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/minizlib": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13117,6 +13159,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -13131,6 +13174,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/p-map": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13142,6 +13186,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/tar": { "version": "7.4.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13158,6 +13203,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/yallist": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "engines": { @@ -13166,6 +13212,7 @@ }, "node_modules/npm/node_modules/chalk": { "version": "5.3.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13177,6 +13224,7 @@ }, "node_modules/npm/node_modules/chownr": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -13185,6 +13233,7 @@ }, "node_modules/npm/node_modules/ci-info": { "version": "4.1.0", + "dev": true, "funding": [ { "type": "github", @@ -13199,6 +13248,7 @@ }, "node_modules/npm/node_modules/cidr-regex": { "version": "4.1.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -13210,6 +13260,7 @@ }, "node_modules/npm/node_modules/clean-stack": { "version": "2.2.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13218,6 +13269,7 @@ }, "node_modules/npm/node_modules/cli-columns": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13230,6 +13282,7 @@ }, "node_modules/npm/node_modules/cmd-shim": { "version": "7.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -13238,6 +13291,7 @@ }, "node_modules/npm/node_modules/color-convert": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13249,16 +13303,19 @@ }, "node_modules/npm/node_modules/color-name": { "version": "1.1.4", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.6", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13272,6 +13329,7 @@ }, "node_modules/npm/node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13286,6 +13344,7 @@ }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -13297,6 +13356,7 @@ }, "node_modules/npm/node_modules/debug": { "version": "4.3.7", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13313,6 +13373,7 @@ }, "node_modules/npm/node_modules/diff": { "version": "5.2.0", + "dev": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -13321,24 +13382,29 @@ }, "node_modules/npm/node_modules/eastasianwidth": { "version": "0.2.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/npm/node_modules/env-paths": { "version": "2.2.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13347,16 +13413,19 @@ }, "node_modules/npm/node_modules/err-code": { "version": "2.0.3", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.16", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13365,6 +13434,7 @@ }, "node_modules/npm/node_modules/foreground-child": { "version": "3.3.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13380,6 +13450,7 @@ }, "node_modules/npm/node_modules/fs-minipass": { "version": "3.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13391,6 +13462,7 @@ }, "node_modules/npm/node_modules/glob": { "version": "10.4.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13410,11 +13482,13 @@ }, "node_modules/npm/node_modules/graceful-fs": { "version": "4.2.11", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { "version": "8.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13426,11 +13500,13 @@ }, "node_modules/npm/node_modules/http-cache-semantics": { "version": "4.1.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13443,6 +13519,7 @@ }, "node_modules/npm/node_modules/https-proxy-agent": { "version": "7.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13455,8 +13532,10 @@ }, "node_modules/npm/node_modules/iconv-lite": { "version": "0.6.3", + "dev": true, "inBundle": true, "license": "MIT", + "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -13466,6 +13545,7 @@ }, "node_modules/npm/node_modules/ignore-walk": { "version": "7.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13477,6 +13557,7 @@ }, "node_modules/npm/node_modules/imurmurhash": { "version": "0.1.4", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13485,6 +13566,7 @@ }, "node_modules/npm/node_modules/indent-string": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13493,6 +13575,7 @@ }, "node_modules/npm/node_modules/ini": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -13501,6 +13584,7 @@ }, "node_modules/npm/node_modules/init-package-json": { "version": "7.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13518,6 +13602,7 @@ }, "node_modules/npm/node_modules/ip-address": { "version": "9.0.5", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13530,6 +13615,7 @@ }, "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13541,6 +13627,7 @@ }, "node_modules/npm/node_modules/is-cidr": { "version": "5.1.0", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -13552,6 +13639,7 @@ }, "node_modules/npm/node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13560,11 +13648,13 @@ }, "node_modules/npm/node_modules/isexe": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { "version": "3.4.3", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -13579,11 +13669,13 @@ }, "node_modules/npm/node_modules/jsbn": { "version": "1.1.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13592,6 +13684,7 @@ }, "node_modules/npm/node_modules/json-stringify-nice": { "version": "1.1.4", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -13600,6 +13693,7 @@ }, "node_modules/npm/node_modules/jsonparse": { "version": "1.3.1", + "dev": true, "engines": [ "node >= 0.2.0" ], @@ -13608,16 +13702,19 @@ }, "node_modules/npm/node_modules/just-diff": { "version": "6.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff-apply": { "version": "5.5.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { "version": "9.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13630,6 +13727,7 @@ }, "node_modules/npm/node_modules/libnpmdiff": { "version": "7.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13648,6 +13746,7 @@ }, "node_modules/npm/node_modules/libnpmexec": { "version": "9.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13668,6 +13767,7 @@ }, "node_modules/npm/node_modules/libnpmfund": { "version": "6.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13679,6 +13779,7 @@ }, "node_modules/npm/node_modules/libnpmhook": { "version": "11.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13691,6 +13792,7 @@ }, "node_modules/npm/node_modules/libnpmorg": { "version": "7.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13703,6 +13805,7 @@ }, "node_modules/npm/node_modules/libnpmpack": { "version": "8.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13717,6 +13820,7 @@ }, "node_modules/npm/node_modules/libnpmpublish": { "version": "10.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13735,6 +13839,7 @@ }, "node_modules/npm/node_modules/libnpmsearch": { "version": "8.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13746,6 +13851,7 @@ }, "node_modules/npm/node_modules/libnpmteam": { "version": "7.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13758,6 +13864,7 @@ }, "node_modules/npm/node_modules/libnpmversion": { "version": "7.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13773,11 +13880,13 @@ }, "node_modules/npm/node_modules/lru-cache": { "version": "10.4.3", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/make-fetch-happen": { "version": "14.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13799,6 +13908,7 @@ }, "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { "version": "1.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -13807,6 +13917,7 @@ }, "node_modules/npm/node_modules/minimatch": { "version": "9.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13821,6 +13932,7 @@ }, "node_modules/npm/node_modules/minipass": { "version": "7.1.2", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -13829,6 +13941,7 @@ }, "node_modules/npm/node_modules/minipass-collect": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13840,6 +13953,7 @@ }, "node_modules/npm/node_modules/minipass-fetch": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13856,6 +13970,7 @@ }, "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13868,6 +13983,7 @@ }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13879,6 +13995,7 @@ }, "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13890,6 +14007,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13901,6 +14019,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13912,6 +14031,7 @@ }, "node_modules/npm/node_modules/minipass-sized": { "version": "1.0.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13923,6 +14043,7 @@ }, "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13934,6 +14055,7 @@ }, "node_modules/npm/node_modules/minizlib": { "version": "2.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -13946,6 +14068,7 @@ }, "node_modules/npm/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -13957,6 +14080,7 @@ }, "node_modules/npm/node_modules/mkdirp": { "version": "1.0.4", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -13968,11 +14092,13 @@ }, "node_modules/npm/node_modules/ms": { "version": "2.1.3", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/mute-stream": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -13981,6 +14107,7 @@ }, "node_modules/npm/node_modules/node-gyp": { "version": "11.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14004,6 +14131,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/chownr": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "engines": { @@ -14012,6 +14140,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14024,6 +14153,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "bin": { @@ -14038,6 +14168,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/tar": { "version": "7.4.3", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14054,6 +14185,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/yallist": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "engines": { @@ -14062,6 +14194,7 @@ }, "node_modules/npm/node_modules/nopt": { "version": "8.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14076,6 +14209,7 @@ }, "node_modules/npm/node_modules/nopt/node_modules/abbrev": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14084,6 +14218,7 @@ }, "node_modules/npm/node_modules/normalize-package-data": { "version": "7.0.0", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -14097,6 +14232,7 @@ }, "node_modules/npm/node_modules/npm-audit-report": { "version": "6.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14105,6 +14241,7 @@ }, "node_modules/npm/node_modules/npm-bundled": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14116,6 +14253,7 @@ }, "node_modules/npm/node_modules/npm-install-checks": { "version": "7.1.1", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -14127,6 +14265,7 @@ }, "node_modules/npm/node_modules/npm-normalize-package-bin": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14135,6 +14274,7 @@ }, "node_modules/npm/node_modules/npm-package-arg": { "version": "12.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14149,6 +14289,7 @@ }, "node_modules/npm/node_modules/npm-packlist": { "version": "9.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14160,6 +14301,7 @@ }, "node_modules/npm/node_modules/npm-pick-manifest": { "version": "10.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14174,6 +14316,7 @@ }, "node_modules/npm/node_modules/npm-profile": { "version": "11.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14186,6 +14329,7 @@ }, "node_modules/npm/node_modules/npm-registry-fetch": { "version": "18.0.2", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14204,6 +14348,7 @@ }, "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14216,6 +14361,7 @@ }, "node_modules/npm/node_modules/npm-user-validate": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "BSD-2-Clause", "engines": { @@ -14224,6 +14370,7 @@ }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14238,11 +14385,13 @@ }, "node_modules/npm/node_modules/package-json-from-dist": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0" }, "node_modules/npm/node_modules/pacote": { "version": "19.0.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14273,6 +14422,7 @@ }, "node_modules/npm/node_modules/parse-conflict-json": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14286,6 +14436,7 @@ }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -14294,6 +14445,7 @@ }, "node_modules/npm/node_modules/path-scurry": { "version": "1.11.1", + "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -14309,6 +14461,7 @@ }, "node_modules/npm/node_modules/postcss-selector-parser": { "version": "6.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14321,6 +14474,7 @@ }, "node_modules/npm/node_modules/proc-log": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14329,6 +14483,7 @@ }, "node_modules/npm/node_modules/proggy": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14337,6 +14492,7 @@ }, "node_modules/npm/node_modules/promise-all-reject-late": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -14345,6 +14501,7 @@ }, "node_modules/npm/node_modules/promise-call-limit": { "version": "3.0.2", + "dev": true, "inBundle": true, "license": "ISC", "funding": { @@ -14353,11 +14510,13 @@ }, "node_modules/npm/node_modules/promise-inflight": { "version": "1.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14370,6 +14529,7 @@ }, "node_modules/npm/node_modules/promzard": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14381,6 +14541,7 @@ }, "node_modules/npm/node_modules/qrcode-terminal": { "version": "0.12.0", + "dev": true, "inBundle": true, "bin": { "qrcode-terminal": "bin/qrcode-terminal.js" @@ -14388,6 +14549,7 @@ }, "node_modules/npm/node_modules/read": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14399,6 +14561,7 @@ }, "node_modules/npm/node_modules/read-cmd-shim": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14407,6 +14570,7 @@ }, "node_modules/npm/node_modules/read-package-json-fast": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14419,6 +14583,7 @@ }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -14427,6 +14592,7 @@ }, "node_modules/npm/node_modules/rimraf": { "version": "5.0.10", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14441,11 +14607,14 @@ }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", + "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "optional": true }, "node_modules/npm/node_modules/semver": { "version": "7.6.3", + "dev": true, "inBundle": true, "license": "ISC", "bin": { @@ -14457,6 +14626,7 @@ }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14468,6 +14638,7 @@ }, "node_modules/npm/node_modules/shebang-regex": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -14476,6 +14647,7 @@ }, "node_modules/npm/node_modules/signal-exit": { "version": "4.1.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14487,6 +14659,7 @@ }, "node_modules/npm/node_modules/sigstore": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -14503,6 +14676,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/bundle": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -14514,6 +14688,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/core": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -14522,6 +14697,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/sign": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -14538,6 +14714,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/verify": { "version": "2.0.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -14551,6 +14728,7 @@ }, "node_modules/npm/node_modules/smart-buffer": { "version": "4.2.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -14560,6 +14738,7 @@ }, "node_modules/npm/node_modules/socks": { "version": "2.8.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14573,6 +14752,7 @@ }, "node_modules/npm/node_modules/socks-proxy-agent": { "version": "8.0.4", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14586,6 +14766,7 @@ }, "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -14595,6 +14776,7 @@ }, "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14604,11 +14786,13 @@ }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", + "dev": true, "inBundle": true, "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14618,16 +14802,19 @@ }, "node_modules/npm/node_modules/spdx-license-ids": { "version": "3.0.20", + "dev": true, "inBundle": true, "license": "CC0-1.0" }, "node_modules/npm/node_modules/sprintf-js": { "version": "1.1.3", + "dev": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/npm/node_modules/ssri": { "version": "12.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14639,6 +14826,7 @@ }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14653,6 +14841,7 @@ "node_modules/npm/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14666,6 +14855,7 @@ }, "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14678,6 +14868,7 @@ "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14689,6 +14880,7 @@ }, "node_modules/npm/node_modules/supports-color": { "version": "9.4.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -14700,6 +14892,7 @@ }, "node_modules/npm/node_modules/tar": { "version": "6.2.1", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14716,6 +14909,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14727,6 +14921,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14738,6 +14933,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/minipass": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14746,16 +14942,19 @@ }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/tiny-relative-date": { "version": "1.3.0", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14764,6 +14963,7 @@ }, "node_modules/npm/node_modules/tuf-js": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14777,6 +14977,7 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/@tufjs/models": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14789,6 +14990,7 @@ }, "node_modules/npm/node_modules/unique-filename": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14800,6 +15002,7 @@ }, "node_modules/npm/node_modules/unique-slug": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14811,11 +15014,13 @@ }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", + "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -14825,6 +15030,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14834,6 +15040,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "6.0.0", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14842,11 +15049,13 @@ }, "node_modules/npm/node_modules/walk-up-path": { "version": "3.0.1", + "dev": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/which": { "version": "5.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14861,6 +15070,7 @@ }, "node_modules/npm/node_modules/which/node_modules/isexe": { "version": "3.1.1", + "dev": true, "inBundle": true, "license": "ISC", "engines": { @@ -14869,6 +15079,7 @@ }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14886,6 +15097,7 @@ "node_modules/npm/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14902,6 +15114,7 @@ }, "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14916,6 +15129,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.1.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -14927,11 +15141,13 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", + "dev": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "version": "5.1.2", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14948,6 +15164,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", + "dev": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -14962,6 +15179,7 @@ }, "node_modules/npm/node_modules/write-file-atomic": { "version": "6.0.0", + "dev": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -14974,6 +15192,7 @@ }, "node_modules/npm/node_modules/yallist": { "version": "4.0.0", + "dev": true, "inBundle": true, "license": "ISC" }, diff --git a/package.json b/package.json index f7e1fc9c..0db7161b 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "devDependencies": { "@aurodesignsystem/auro-cli": "^3.0.4", "@aurodesignsystem/auro-config": "^1.3.0", - "@aurodesignsystem/auro-library": "^5.5.3", + "@aurodesignsystem/auro-library": "^5.5.4", "@aurodesignsystem/auro-loader": "^6.0.0", "@aurodesignsystem/design-tokens": "^8.5.0", "@aurodesignsystem/webcorestylesheets": "10.1.0", diff --git a/src/auro-button.js b/src/auro-button.js index a27d6aa7..6eef2834 100644 --- a/src/auro-button.js +++ b/src/auro-button.js @@ -28,6 +28,8 @@ import tokensCss from "./styles/tokens.scss"; /** * @slot - Default slot for the text of the button. + * @slot ariaLabel - Use this slot to pass an aria-label to the HTML5 button. + * @slot ariaLabel.loading - Use this slot to pass an aria-label to the HTML5 button when in loading state. * @csspart button - Apply CSS to HTML5 button. * @csspart loader - Apply CSS to auro-loader. * @csspart text - Apply CSS to text slot. @@ -166,7 +168,7 @@ export class AuroButton extends AuroElement { }, /** - * Sets custom loading text for the `aria-label` on a button in loading state. If not set, the default value of "Loading..." will be used. + * DEPRECATED - Use `slot="ariaLabel.loading"` instead. */ loadingText: { type: String, @@ -322,7 +324,7 @@ export class AuroButton extends AuroElement { } /** - * Returns the current value of the projected `aria-label` attribute or undefined if not set. + * Returns the current value of the projected `aria-label` attribute or undefined if not set. The `aria-label` attribute is for internal use only. * @returns {string | undefined} * @private */ @@ -405,6 +407,15 @@ export class AuroButton extends AuroElement { this.runtimeUtils.handleComponentTagRename(this, "auro-button"); } + /** + * Returns the appropriate string to be used for the aria-label attribute. + * @returns {String} + * @private + */ + generateAriaLabel() { + return this.loading ? this.runtimeUtils.getSlotText(this, 'ariaLabel.loading') || this.loadingText : this.runtimeUtils.getSlotText(this, 'ariaLabel') || this.currentAriaLabel; + } + /** * This is to detect pointer events for hover and active states for styling purposes. * :host with :has selector dont work together in Safari and Firefox @@ -465,9 +476,13 @@ export class AuroButton extends AuroElement { const tabindex = this.tIndex || this.tabindex; return html` + + + + <${this._renderTag} part="${part}" - aria-label="${ifDefined(this.loading ? this.loadingText : this.currentAriaLabel || undefined)}" + aria-label="${ifDefined(this.generateAriaLabel())}" aria-labelledby="${ifDefined(this.loading ? undefined : this.currentAriaLabelledBy || undefined)}" tabindex="${ifDefined(this.static ? -1 : tabindex)}" ?autofocus="${this.autofocus}" diff --git a/test/auro-button.test.js b/test/auro-button.test.js index c0490132..be3eec43 100644 --- a/test/auro-button.test.js +++ b/test/auro-button.test.js @@ -123,7 +123,7 @@ describe("auro-button", () => { expect(el.getAttribute("variant")).to.equal("tertiary"); }); - it("tests setting aria-label", async () => { + it("tests setting aria-label via attribute", async () => { const el = await fixture(html` Click Me! `); @@ -134,6 +134,20 @@ describe("auro-button", () => { expect(button.getAttribute("aria-label")).to.equal("label"); }); + it("tests setting aria-label via slot", async () => { + const el = await fixture(html` + + label + Click Me! + + `); + + const root = el.shadowRoot; + const button = root.querySelector("button"); + + expect(button.getAttribute("aria-label")).to.equal("label"); + }); + it("tests that button in loading state has proper aria-label", async () => { const el = await fixture(html` Click Me! @@ -142,10 +156,10 @@ describe("auro-button", () => { const root = el.shadowRoot; const button = root.querySelector("button"); - expect(button.getAttribute("aria-label")).to.equal(el.loadingText); + expect(button.getAttribute("aria-label")).to.equal("Loading..."); }); - it("tests setting custom loading text on button in loading state", async () => { + it("tests setting custom loading text on button in loading state via attribute", async () => { const el = await fixture(html` Click Me! `); @@ -156,6 +170,19 @@ describe("auro-button", () => { expect(button.getAttribute("aria-label")).to.equal(el.loadingText); }); + it("tests setting custom loading text on button in loading state via slot", async () => { + const el = await fixture(html` + + Cargando... + + `); + + const root = el.shadowRoot; + const button = root.querySelector("button"); + + expect(button.getAttribute("aria-label")).to.equal("Cargando..."); + }); + it("tests setting aria-labelledby", async () => { const el = await fixture(html` Click Me! From 33046216b86b273f0906510e25e1d34a78e65174 Mon Sep 17 00:00:00 2001 From: Jordan Jones Date: Thu, 9 Oct 2025 08:58:19 -0700 Subject: [PATCH 2/2] docs: fix broken example --- apiExamples/static.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apiExamples/static.html b/apiExamples/static.html index c37d947b..a4c54ab3 100644 --- a/apiExamples/static.html +++ b/apiExamples/static.html @@ -17,14 +17,14 @@

- + Static Pill with Icon - + - +