diff --git a/examples/stencil-components/vanilla-cdn/index.html b/examples/stencil-components/vanilla-cdn/index.html index 25b5f444e..5dbbcf6a4 100644 --- a/examples/stencil-components/vanilla-cdn/index.html +++ b/examples/stencil-components/vanilla-cdn/index.html @@ -364,7 +364,13 @@

Progress bar

Radio Button

- Text +
+ Apple + Pear + Orange + Submit +
+

Spinner

@@ -764,9 +770,12 @@
Title
updateValues(); }); - radioBtn.addEventListener('ifxChange', (event) => { - console.log("radio btn value change", event.detail); - radioChecked = !radioChecked; + document.getElementById('radio-form').addEventListener('submit', event => { + event.preventDefault(); + const formData = new FormData(event.target); + formData.forEach((value, key) => { + console.log(`${key}: ${value}`); + }); }); openModalBtn.addEventListener('click', (event) => { diff --git a/examples/wrapper-components/react-vite-js/package.json b/examples/wrapper-components/react-vite-js/package.json index e5584345b..9e8558846 100644 --- a/examples/wrapper-components/react-vite-js/package.json +++ b/examples/wrapper-components/react-vite-js/package.json @@ -18,7 +18,7 @@ "test:local": "run-p preview:link watch:library" }, "dependencies": { - "@infineon/infineon-design-system-react": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "@infineon/infineon-design-system-react": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "path": "^0.12.7", "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/examples/wrapper-components/vue-javascript/package.json b/examples/wrapper-components/vue-javascript/package.json index 5d2eac722..4612ca42a 100644 --- a/examples/wrapper-components/vue-javascript/package.json +++ b/examples/wrapper-components/vue-javascript/package.json @@ -15,7 +15,7 @@ "test:local": "run-p preview:link watch:library" }, "dependencies": { - "@infineon/infineon-design-system-vue": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "@infineon/infineon-design-system-vue": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "@vitejs/plugin-vue": "^4.0.0", "@vitejs/plugin-vue-jsx": "^3.0.1", "vite": "^5.0.12", diff --git a/lerna.json b/lerna.json index f3af97af4..bb62da3d5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "command": { "publish": { "verifyAccess": false diff --git a/package-lock.json b/package-lock.json index cc129446b..c30dde605 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21970,6 +21970,8 @@ }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "inBundle": true, "license": "ISC", "dependencies": { @@ -21997,11 +21999,15 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22018,6 +22024,8 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22282,6 +22290,8 @@ }, "node_modules/npm/node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "inBundle": true, "license": "MIT", "optional": true, @@ -22291,6 +22301,8 @@ }, "node_modules/npm/node_modules/@sigstore/bundle": { "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -22302,6 +22314,8 @@ }, "node_modules/npm/node_modules/@sigstore/core": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "inBundle": true, "license": "Apache-2.0", "engines": { @@ -22310,6 +22324,8 @@ }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "inBundle": true, "license": "Apache-2.0", "engines": { @@ -22318,6 +22334,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign": { "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -22334,6 +22352,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/agent": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22349,6 +22369,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/@npmcli/fs": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22360,6 +22382,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/cacache": { "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22382,6 +22406,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/make-fetch-happen": { "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22404,6 +22430,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/minipass-fetch": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22420,6 +22448,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/proc-log": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "inBundle": true, "license": "ISC", "engines": { @@ -22428,6 +22458,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/ssri": { "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22439,6 +22471,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-filename": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22450,6 +22484,8 @@ }, "node_modules/npm/node_modules/@sigstore/sign/node_modules/unique-slug": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22461,6 +22497,8 @@ }, "node_modules/npm/node_modules/@sigstore/tuf": { "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -22473,6 +22511,8 @@ }, "node_modules/npm/node_modules/@sigstore/verify": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -22486,6 +22526,8 @@ }, "node_modules/npm/node_modules/@tufjs/canonical-json": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "inBundle": true, "license": "MIT", "engines": { @@ -22494,6 +22536,8 @@ }, "node_modules/npm/node_modules/@tufjs/models": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22514,6 +22558,8 @@ }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22525,6 +22571,8 @@ }, "node_modules/npm/node_modules/aggregate-error": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22537,6 +22585,8 @@ }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "inBundle": true, "license": "MIT", "engines": { @@ -22545,6 +22595,8 @@ }, "node_modules/npm/node_modules/ansi-styles": { "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "inBundle": true, "license": "MIT", "engines": { @@ -22566,6 +22618,8 @@ }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "inBundle": true, "license": "MIT" }, @@ -22597,6 +22651,8 @@ }, "node_modules/npm/node_modules/brace-expansion": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22647,6 +22703,8 @@ }, "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "inBundle": true, "license": "MIT", "bin": { @@ -22707,6 +22765,8 @@ }, "node_modules/npm/node_modules/chownr": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "inBundle": true, "license": "ISC", "engines": { @@ -22740,6 +22800,8 @@ }, "node_modules/npm/node_modules/clean-stack": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "inBundle": true, "license": "MIT", "engines": { @@ -22768,6 +22830,8 @@ }, "node_modules/npm/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==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22779,6 +22843,8 @@ }, "node_modules/npm/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==", "inBundle": true, "license": "MIT" }, @@ -22789,6 +22855,8 @@ }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22802,6 +22870,8 @@ }, "node_modules/npm/node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22816,6 +22886,8 @@ }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "inBundle": true, "license": "MIT", "bin": { @@ -22843,6 +22915,8 @@ }, "node_modules/npm/node_modules/debug/node_modules/ms": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "inBundle": true, "license": "MIT" }, @@ -22856,16 +22930,22 @@ }, "node_modules/npm/node_modules/eastasianwidth": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "inBundle": true, "license": "MIT", "optional": true, @@ -22875,6 +22955,8 @@ }, "node_modules/npm/node_modules/env-paths": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "inBundle": true, "license": "MIT", "engines": { @@ -22883,11 +22965,15 @@ }, "node_modules/npm/node_modules/err-code": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", "inBundle": true, "license": "Apache-2.0" }, @@ -22901,6 +22987,8 @@ }, "node_modules/npm/node_modules/foreground-child": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22916,6 +23004,8 @@ }, "node_modules/npm/node_modules/fs-minipass": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22927,6 +23017,8 @@ }, "node_modules/npm/node_modules/glob": { "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "inBundle": true, "license": "ISC", "dependencies": { @@ -22946,6 +23038,8 @@ }, "node_modules/npm/node_modules/graceful-fs": { "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "inBundle": true, "license": "ISC" }, @@ -22962,11 +23056,15 @@ }, "node_modules/npm/node_modules/http-cache-semantics": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "inBundle": true, "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22979,6 +23077,8 @@ }, "node_modules/npm/node_modules/https-proxy-agent": { "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "inBundle": true, "license": "MIT", "dependencies": { @@ -22991,6 +23091,8 @@ }, "node_modules/npm/node_modules/iconv-lite": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "inBundle": true, "license": "MIT", "optional": true, @@ -23014,6 +23116,8 @@ }, "node_modules/npm/node_modules/imurmurhash": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "inBundle": true, "license": "MIT", "engines": { @@ -23022,6 +23126,8 @@ }, "node_modules/npm/node_modules/indent-string": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "inBundle": true, "license": "MIT", "engines": { @@ -23055,6 +23161,8 @@ }, "node_modules/npm/node_modules/ip-address": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "inBundle": true, "license": "MIT", "dependencies": { @@ -23089,6 +23197,8 @@ }, "node_modules/npm/node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "inBundle": true, "license": "MIT", "engines": { @@ -23097,16 +23207,22 @@ }, "node_modules/npm/node_modules/is-lambda": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -23121,6 +23237,8 @@ }, "node_modules/npm/node_modules/jsbn": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "inBundle": true, "license": "MIT" }, @@ -23142,6 +23260,8 @@ }, "node_modules/npm/node_modules/jsonparse": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "engines": [ "node >= 0.2.0" ], @@ -23315,6 +23435,8 @@ }, "node_modules/npm/node_modules/lru-cache": { "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "inBundle": true, "license": "ISC" }, @@ -23341,6 +23463,8 @@ }, "node_modules/npm/node_modules/minimatch": { "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23355,6 +23479,8 @@ }, "node_modules/npm/node_modules/minipass": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "inBundle": true, "license": "ISC", "engines": { @@ -23363,6 +23489,8 @@ }, "node_modules/npm/node_modules/minipass-collect": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23402,6 +23530,8 @@ }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23413,6 +23543,8 @@ }, "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23424,6 +23556,8 @@ }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23435,6 +23569,8 @@ }, "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23446,6 +23582,8 @@ }, "node_modules/npm/node_modules/minipass-sized": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23457,6 +23595,8 @@ }, "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23468,6 +23608,8 @@ }, "node_modules/npm/node_modules/minizlib": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "inBundle": true, "license": "MIT", "dependencies": { @@ -23480,6 +23622,8 @@ }, "node_modules/npm/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23491,6 +23635,8 @@ }, "node_modules/npm/node_modules/mkdirp": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "inBundle": true, "license": "MIT", "bin": { @@ -23515,6 +23661,8 @@ }, "node_modules/npm/node_modules/negotiator": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "inBundle": true, "license": "MIT", "engines": { @@ -23523,6 +23671,8 @@ }, "node_modules/npm/node_modules/node-gyp": { "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "inBundle": true, "license": "MIT", "dependencies": { @@ -23546,6 +23696,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/agent": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23561,6 +23713,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23572,6 +23726,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "inBundle": true, "license": "ISC", "engines": { @@ -23580,6 +23736,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23602,6 +23760,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/isexe": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "inBundle": true, "license": "ISC", "engines": { @@ -23610,6 +23770,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23632,6 +23794,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "inBundle": true, "license": "MIT", "dependencies": { @@ -23648,6 +23812,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23662,6 +23828,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "inBundle": true, "license": "ISC", "engines": { @@ -23670,6 +23838,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23681,6 +23851,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23692,6 +23864,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23703,6 +23877,8 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/which": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "inBundle": true, "license": "ISC", "dependencies": { @@ -23731,6 +23907,8 @@ }, "node_modules/npm/node_modules/nopt/node_modules/abbrev": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "inBundle": true, "license": "ISC", "engines": { @@ -23879,6 +24057,8 @@ }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "inBundle": true, "license": "MIT", "dependencies": { @@ -23941,6 +24121,8 @@ }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "inBundle": true, "license": "MIT", "engines": { @@ -23949,6 +24131,8 @@ }, "node_modules/npm/node_modules/path-scurry": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -24008,11 +24192,15 @@ }, "node_modules/npm/node_modules/promise-inflight": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24074,6 +24262,8 @@ }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "inBundle": true, "license": "MIT", "engines": { @@ -24082,6 +24272,8 @@ }, "node_modules/npm/node_modules/rimraf": { "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24096,12 +24288,16 @@ }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "inBundle": true, "license": "MIT", "optional": true }, "node_modules/npm/node_modules/semver": { "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "inBundle": true, "license": "ISC", "bin": { @@ -24113,6 +24309,8 @@ }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24124,6 +24322,8 @@ }, "node_modules/npm/node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "inBundle": true, "license": "MIT", "engines": { @@ -24132,6 +24332,8 @@ }, "node_modules/npm/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "inBundle": true, "license": "ISC", "engines": { @@ -24143,6 +24345,8 @@ }, "node_modules/npm/node_modules/sigstore": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24159,6 +24363,8 @@ }, "node_modules/npm/node_modules/smart-buffer": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "inBundle": true, "license": "MIT", "engines": { @@ -24168,6 +24374,8 @@ }, "node_modules/npm/node_modules/socks": { "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24181,6 +24389,8 @@ }, "node_modules/npm/node_modules/socks-proxy-agent": { "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24194,6 +24404,8 @@ }, "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24203,6 +24415,8 @@ }, "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24212,6 +24426,8 @@ }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "inBundle": true, "license": "CC-BY-3.0" }, @@ -24231,6 +24447,8 @@ }, "node_modules/npm/node_modules/sprintf-js": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "inBundle": true, "license": "BSD-3-Clause" }, @@ -24247,6 +24465,8 @@ }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24261,6 +24481,8 @@ "node_modules/npm/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24274,6 +24496,8 @@ }, "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24286,6 +24510,8 @@ "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24308,6 +24534,8 @@ }, "node_modules/npm/node_modules/tar": { "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24324,6 +24552,8 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24335,6 +24565,8 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24346,6 +24578,8 @@ }, "node_modules/npm/node_modules/tar/node_modules/minipass": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "inBundle": true, "license": "ISC", "engines": { @@ -24372,6 +24606,8 @@ }, "node_modules/npm/node_modules/tuf-js": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24385,6 +24621,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/agent": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24400,6 +24638,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/@npmcli/fs": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24411,6 +24651,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/cacache": { "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24433,6 +24675,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/make-fetch-happen": { "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24455,6 +24699,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/minipass-fetch": { "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24471,6 +24717,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/proc-log": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "inBundle": true, "license": "ISC", "engines": { @@ -24479,6 +24727,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/ssri": { "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24490,6 +24740,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/unique-filename": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24501,6 +24753,8 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/unique-slug": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "inBundle": true, "license": "ISC", "dependencies": { @@ -24534,11 +24788,15 @@ }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -24548,6 +24806,8 @@ }, "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24565,6 +24825,8 @@ }, "node_modules/npm/node_modules/walk-up-path": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", "inBundle": true, "license": "ISC" }, @@ -24584,6 +24846,8 @@ }, "node_modules/npm/node_modules/which/node_modules/isexe": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "inBundle": true, "license": "ISC", "engines": { @@ -24592,6 +24856,8 @@ }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24609,6 +24875,8 @@ "node_modules/npm/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24625,6 +24893,8 @@ }, "node_modules/npm/node_modules/wrap-ansi-cjs/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==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24650,11 +24920,15 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24671,6 +24945,8 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "inBundle": true, "license": "MIT", "dependencies": { @@ -24697,6 +24973,8 @@ }, "node_modules/npm/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "inBundle": true, "license": "ISC" }, @@ -32830,7 +33108,7 @@ }, "packages/components": { "name": "@infineon/infineon-design-system-stencil", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "license": "MIT", "dependencies": { "@infineon/design-system-tokens": "3.3.3", @@ -32892,7 +33170,7 @@ } }, "packages/components-angular": { - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "license": "MIT", "dependencies": { "@angular/animations": "^18.0.0", @@ -32903,7 +33181,7 @@ "@angular/platform-browser": "^18.0.0", "@angular/platform-browser-dynamic": "^18.0.0", "@angular/router": "^18.0.0", - "@infineon/infineon-design-system-angular": "^25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "@infineon/infineon-design-system-angular": "^26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "typescript": "~5.4.4", @@ -32923,7 +33201,7 @@ }, "packages/components-angular/projects/component-library": { "name": "@infineon/infineon-design-system-angular", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -32932,16 +33210,16 @@ "@angular/common": "^18.0.0", "@angular/core": "^18.0.0", "@infineon/design-system-tokens": "3.3.3", - "@infineon/infineon-design-system-stencil": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0" + "@infineon/infineon-design-system-stencil": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0" } }, "packages/components-react": { "name": "@infineon/infineon-design-system-react", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "license": "MIT", "dependencies": { "@infineon/design-system-tokens": "3.3.3", - "@infineon/infineon-design-system-stencil": "^25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "@infineon/infineon-design-system-stencil": "^26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "@stencil/react-output-target": "^0.7.1" }, "devDependencies": { @@ -32955,11 +33233,11 @@ }, "packages/components-vue": { "name": "@infineon/infineon-design-system-vue", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "license": "MIT", "dependencies": { "@infineon/design-system-tokens": "3.3.3", - "@infineon/infineon-design-system-stencil": "^25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0" + "@infineon/infineon-design-system-stencil": "^26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0" }, "devDependencies": { "@babel/types": "^7.22.5", diff --git a/packages/components-angular/package.json b/packages/components-angular/package.json index af89e8041..592eb38be 100644 --- a/packages/components-angular/package.json +++ b/packages/components-angular/package.json @@ -1,6 +1,6 @@ { "name": "components-angular", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "scripts": { "ng": "ng", "start": "ng serve", @@ -26,7 +26,7 @@ "@angular/platform-browser": "^18.0.0", "@angular/platform-browser-dynamic": "^18.0.0", "@angular/router": "^18.0.0", - "@infineon/infineon-design-system-angular": "^25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "@infineon/infineon-design-system-angular": "^26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "typescript": "~5.4.4", diff --git a/packages/components-angular/projects/component-library/package.json b/packages/components-angular/projects/component-library/package.json index 4062cfcca..cb02a0247 100644 --- a/packages/components-angular/projects/component-library/package.json +++ b/packages/components-angular/projects/component-library/package.json @@ -1,6 +1,6 @@ { "name": "@infineon/infineon-design-system-angular", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "description": "Infineon design system Stencil web components for Angular", "author": "Verena Lechner", "license": "MIT", @@ -11,7 +11,7 @@ "@angular/common": "^18.0.0", "@angular/core": "^18.0.0", "@infineon/design-system-tokens": "3.3.3", - "@infineon/infineon-design-system-stencil": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0" + "@infineon/infineon-design-system-stencil": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0" }, "dependencies": { "tslib": "^2.3.0" diff --git a/packages/components-react/package.json b/packages/components-react/package.json index 27e487c4b..77768f163 100644 --- a/packages/components-react/package.json +++ b/packages/components-react/package.json @@ -1,6 +1,6 @@ { "name": "@infineon/infineon-design-system-react", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "description": "Infineon design system Stencil web components for React", "main": "./dist/index.js", "types": "./dist/types/index.d.ts", @@ -28,7 +28,7 @@ }, "dependencies": { "@infineon/design-system-tokens": "3.3.3", - "@infineon/infineon-design-system-stencil": "^25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "@infineon/infineon-design-system-stencil": "^26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "@stencil/react-output-target": "^0.7.1" }, "auto": { diff --git a/packages/components-vue/package.json b/packages/components-vue/package.json index 2e4185819..19f0b26cd 100644 --- a/packages/components-vue/package.json +++ b/packages/components-vue/package.json @@ -1,6 +1,6 @@ { "name": "@infineon/infineon-design-system-vue", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "description": "Infineon design system Stencil web components for Vue", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -30,7 +30,7 @@ }, "dependencies": { "@infineon/design-system-tokens": "3.3.3", - "@infineon/infineon-design-system-stencil": "^25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0" + "@infineon/infineon-design-system-stencil": "^26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0" }, "auto": { "plugins": [ diff --git a/packages/components/package.json b/packages/components/package.json index a260bc3b5..5725bb8ae 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@infineon/infineon-design-system-stencil", - "version": "25.18.1--canary.1567.6510a80557e0611c0b0130ba9658379ed51eab31.0", + "version": "26.0.0--canary.1485.8162da32f9fc366646a6da72bbed42526db2b8ee.0", "private": false, "description": "Infineon design system Stencil web components", "homepage": "https://infineon.github.io/infineon-design-system-stencil", diff --git a/packages/components/src/components/checkbox/checkbox.e2e.ts b/packages/components/src/components/checkbox/checkbox.e2e.ts index 19a839ad8..d3dc39c3c 100644 --- a/packages/components/src/components/checkbox/checkbox.e2e.ts +++ b/packages/components/src/components/checkbox/checkbox.e2e.ts @@ -23,6 +23,28 @@ describe('ifx-checkbox', () => { expect(labelContent).toBe('Test content'); }); + it('should be checked when checked attribute is set', async () => { + const page = await newE2EPage(); + await page.setContent('Test content'); + + const checkbox = await page.find('ifx-checkbox'); + const checkmark = await page.find('ifx-checkbox >>> .checkbox__wrapper') + + expect(await checkbox.callMethod("isChecked")).toBe(true); + expect(checkmark).toHaveClass("checked"); + }); + + it('should not be checked when checked attribute is not set', async () => { + const page = await newE2EPage(); + await page.setContent('Test content'); + + const checkbox = await page.find('ifx-checkbox'); + const checkmark = await page.find('ifx-checkbox >>> .checkbox__wrapper') + + expect(await checkbox.callMethod("isChecked")).toBe(false); + expect(checkmark).not.toHaveClass("checked"); + }); + it('should emit ifxChange event when clicked', async () => { const page = await newE2EPage(); await page.setContent(''); @@ -48,7 +70,7 @@ describe('ifx-checkbox', () => { expect(value).toBeUndefined(); }) - it('should be on when form is submitted', async () => { + it('should be on when form is submitted when no value is given', async () => { const page = await newE2EPage(); await page.setContent(`
@@ -63,6 +85,21 @@ describe('ifx-checkbox', () => { expect(value).toBe('on') }); + it('should set value when form is submitted when value is given', async () => { + const page = await newE2EPage(); + await page.setContent(` + + +
`); + await addHandleSubmitScript(page); + const checkbox = await page.find('ifx-checkbox'); + + await checkbox.click(); + + const value = await submitAndGetValue(page); + expect(value).toBe('check') + }); + it('should not change value when disabled attribute is present', async () => { const page = await newE2EPage(); await page.setContent(`
diff --git a/packages/components/src/components/checkbox/checkbox.stories.ts b/packages/components/src/components/checkbox/checkbox.stories.ts index 3968bf3ee..37f264dbe 100644 --- a/packages/components/src/components/checkbox/checkbox.stories.ts +++ b/packages/components/src/components/checkbox/checkbox.stories.ts @@ -5,12 +5,12 @@ export default { tags: ['autodocs'], args: { error: false, - disabled: false, - value: false, + checked: false, label: 'Text', size: 's', indeterminate: false, - name: 'checkbox' + name: 'checkbox', + value: 'checkbox', }, argTypes: { @@ -32,15 +32,17 @@ export default { }, name: { description: 'Name of the element, that is used as reference when a form is submitted.' + }, + value: { + description: 'The value that gets submitted, when the checkbox is seleted' } }, }; -const DefaultTemplate = ({ error, disabled, value, indeterminate, size, label, name }) => { +const DefaultTemplate = ({ error, checked, indeterminate, size, label, name }) => { const checkbox = document.createElement('ifx-checkbox'); checkbox.setAttribute('error', error); - checkbox.setAttribute('disabled', disabled); - checkbox.setAttribute('value', value); + checkbox.setAttribute('checked', checked); checkbox.setAttribute('size', size); checkbox.setAttribute('indeterminate', indeterminate); checkbox.setAttribute('name', name); diff --git a/packages/components/src/components/checkbox/checkbox.tsx b/packages/components/src/components/checkbox/checkbox.tsx index fcce78857..8e18cc477 100644 --- a/packages/components/src/components/checkbox/checkbox.tsx +++ b/packages/components/src/components/checkbox/checkbox.tsx @@ -13,11 +13,12 @@ export class Checkbox { @Element() el; @Prop() disabled: boolean = false; - @Prop() value: boolean = false; + @Prop() checked: boolean = false; @Prop() error: boolean = false; @Prop() size: string = 'm'; - @State() internalValue: boolean; @Prop() indeterminate: boolean = false; + @Prop() value: string; + @State() internalChecked: boolean; @State() internalIndeterminate: boolean; @AttachInternals() internals: ElementInternals; @@ -27,28 +28,40 @@ export class Checkbox { handleCheckbox() { if (!this.disabled) { if (this.inputElement.indeterminate) { - this.internalValue = true; + this.internalChecked = true; this.internalIndeterminate = false; } else { - this.internalValue = !this.internalValue; + this.internalChecked = !this.internalChecked; } - this.internals.setFormValue(this.internalValue ? 'on' : null); - this.ifxChange.emit(this.internalValue); + if (this.internalChecked) { + if (this.value !== undefined) { + this.internals.setFormValue(this.value); + } else { + this.internals.setFormValue("on") + } + } else { + this.internals.setFormValue(null) + } + this.ifxChange.emit(this.internalChecked); } } + @Method() + async isChecked(): Promise { + return this.internalChecked; + } @Method() async toggleCheckedState(newVal: boolean) { - this.internalValue = newVal; + this.internalChecked = newVal; } - @Watch('value') + @Watch('checked') valueChanged(newValue: boolean, oldValue: boolean) { if (newValue !== oldValue) { - this.internalValue = newValue; - this.inputElement.checked = this.internalValue; // update the checkbox's checked property + this.internalChecked = newValue; + this.inputElement.checked = this.internalChecked; // update the checkbox's checked property } } @@ -70,7 +83,7 @@ export class Checkbox { } componentWillLoad() { - this.internalValue = this.value; + this.internalChecked = this.checked; this.internalIndeterminate = this.indeterminate; } @@ -89,12 +102,12 @@ export class Checkbox { getCheckedClassName() { if (this.error) { - if (this.internalValue) { + if (this.internalChecked) { return "checked error" } else { return "error" } - } else if (this.internalValue) { + } else if (this.internalChecked) { return "checked"; } else return "" } @@ -114,10 +127,10 @@ export class Checkbox { type="checkbox" hidden ref={(el) => (this.inputElement = el)} - checked={this.internalValue} + checked={this.internalChecked} onChange={this.handleCheckbox.bind(this)} // Listen for changes here id='checkbox' - value={`${this.internalValue}`} + value={`${this.value}`} />
- {this.internalValue && } + {this.internalChecked && }
{hasSlot &&
diff --git a/packages/components/src/components/checkbox/readme.md b/packages/components/src/components/checkbox/readme.md index bc17125ea..97d175711 100644 --- a/packages/components/src/components/checkbox/readme.md +++ b/packages/components/src/components/checkbox/readme.md @@ -7,13 +7,14 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| --------------- | --------------- | ----------- | --------- | ------- | -| `disabled` | `disabled` | | `boolean` | `false` | -| `error` | `error` | | `boolean` | `false` | -| `indeterminate` | `indeterminate` | | `boolean` | `false` | -| `size` | `size` | | `string` | `'m'` | -| `value` | `value` | | `boolean` | `false` | +| Property | Attribute | Description | Type | Default | +| --------------- | --------------- | ----------- | --------- | ----------- | +| `checked` | `checked` | | `boolean` | `false` | +| `disabled` | `disabled` | | `boolean` | `false` | +| `error` | `error` | | `boolean` | `false` | +| `indeterminate` | `indeterminate` | | `boolean` | `false` | +| `size` | `size` | | `string` | `'m'` | +| `value` | `value` | | `string` | `undefined` | ## Events @@ -25,6 +26,16 @@ ## Methods +### `isChecked() => Promise` + + + +#### Returns + +Type: `Promise` + + + ### `toggleCheckedState(newVal: boolean) => Promise` diff --git a/packages/components/src/components/chip/chip-item/chip-item.tsx b/packages/components/src/components/chip/chip-item/chip-item.tsx index 2eac64ed8..811bc815f 100644 --- a/packages/components/src/components/chip/chip-item/chip-item.tsx +++ b/packages/components/src/components/chip/chip-item/chip-item.tsx @@ -96,7 +96,7 @@ render() { {/* Checkbox; renders only in 'multi' variant. */} { this.chipState.variant === 'multi' && - diff --git a/packages/components/src/components/radio-button/radio-button.e2e.ts b/packages/components/src/components/radio-button/radio-button.e2e.ts index 1fa2a8d09..94cc03136 100644 --- a/packages/components/src/components/radio-button/radio-button.e2e.ts +++ b/packages/components/src/components/radio-button/radio-button.e2e.ts @@ -9,97 +9,119 @@ describe('ifx-radio-button', () => { expect(element).toHaveClass('hydrated'); }); - it('handleRadioButtonClick should emit ifxChange event if not disabled, not in errorv or not already checked', async () => { + it('should be checked if is attribute checked is set', async () => { + const page = await newE2EPage(); + await page.setContent('Test'); + const element = await page.find('ifx-radio-button'); + const checkmark = await page.find('.radioButton__wrapper-mark'); + + expect(await element.callMethod("isChecked")).toBe(true); + expect(checkmark).not.toBeNull(); + }); + + it('should not be checked if is attribute checked is not set', async () => { const page = await newE2EPage(); await page.setContent('Test'); - const component = await page.find('ifx-radio-button'); + const element = await page.find('ifx-radio-button'); + const checkmark = await page.find('.radioButton__wrapper-mark'); - component.setProperty('disabled', false); - component.setProperty('error', false); - component.setProperty('value', false); + expect(await element.callMethod("isChecked")).toBe(false); + expect(checkmark).toBeNull(); + }); - await page.waitForChanges(); + it('should emit ifxChange event if button is clicked', async () => { + const page = await newE2EPage(); + await page.setContent('Test'); + const component = await page.find('ifx-radio-button'); const changeSpy = await component.spyOnEvent('ifxChange'); - const element = await page.find('ifx-radio-button >>> .label'); - await element.click(); + const button = await page.find('ifx-radio-button .radioButton__wrapper') + + await button.click(); expect(changeSpy).toHaveReceivedEventDetail(true); }); - it('handleRadioButtonClick should be on when form submitted', async () => { - const page = await newE2EPageWithRadioButtonWithinForm(); - - const radioButton = await page.find('ifx-radio-button'); - await radioButton.click(); + it('should emit ifxChange event if label is clicked', async () => { + const page = await newE2EPage(); + await page.setContent('Test'); + const component = await page.find('ifx-radio-button'); - const submitButton = await page.find('#submit'); - await submitButton.click(); + const changeSpy = await component.spyOnEvent('ifxChange'); - const formData: FormData = await page.evaluate(() => { - return window['formData']; - }); + const label = await page.find('ifx-radio-button .label') + await label.click(); - expect(formData['radiobtn']).toBe('on'); + expect(changeSpy).toHaveReceivedEventDetail(true); }); - it('handleRadioButtonClick should be off when form submitted and radio button not clicked', async () => { - const page = await newE2EPageWithRadioButtonWithinForm(); + it('should disable radio buttons of the same group', async () => { + const page = await newE2EPage(); + await page.setContent(` + One + Two + `); - const submitButton = await page.find('#submit'); - await submitButton.click(); + const button1 = await page.find('ifx-radio-button[value="one"]'); + const button2 = await page.find('ifx-radio-button[value="two"]'); - const formData: FormData = await page.evaluate(() => { - return window['formData']; - }); + await button1.click(); - expect(formData['radiobtn']).toBeUndefined; - }); + expect(await button1.callMethod('isChecked')).toBe(true); + expect(await button2.callMethod('isChecked')).toBe(false); + await button2.click(); - it('handleRadioButtonClick should be off when form is reset ', async () => { + expect(await button1.callMethod('isChecked')).toBe(false); + expect(await button2.callMethod('isChecked')).toBe(true); + }); + + it('should have the correct value when form is submitted', async () => { const page = await newE2EPageWithRadioButtonWithinForm(); - const element = await page.find('ifx-radio-button >>> .label'); - const submitButton = await page.find('#submit'); - const resetButton = await page.find('#reset'); - await element.click(); - await resetButton.click(); + const button2 = await page.find('ifx-radio-button[value="two"]'); + await button2.click(); + + const submitButton = await page.find('#submit'); await submitButton.click(); - const formData: FormData = await page.evaluate(() => { + const formData: Record = await page.evaluate(() => { return window['formData']; }); - expect(formData['radiobtn']).toBeUndefined; + expect(formData['test']).toBe('two'); }); -}); -async function newE2EPageWithRadioButtonWithinForm(): Promise { - const page = await newE2EPage(); - await page.setContent(` - Test - - - `); - - // convert formdata to serializable Object and set to window.formData - await page.addScriptTag({ - content: ` - function handleSubmit(event) { - event.preventDefault(); - const formData = new FormData(event.target); - - const obj = Array.from(formData.entries()).reduce((acc, [key, value]) => { - acc[key] = value; - return acc; - }, {}); - window.formData = obj; - } - window.handleSubmit = handleSubmit; - `, - }); + async function newE2EPageWithRadioButtonWithinForm(): Promise { + const page = await newE2EPage(); + await page.setContent(` +
+ One + Two + Three + + +
+ `); + + // convert form data to a serializable object and set it to window.formData + await page.addScriptTag({ + content: ` + function handleSubmit(event) { + event.preventDefault(); + const formData = new FormData(event.target); + + const obj = Array.from(formData.entries()).reduce((acc, [key, value]) => { + acc[key] = value; + return acc; + }, {}); + window.formData = obj; + } + window.handleSubmit = handleSubmit; + `, + }); - return page; -} + return page; + }; +}); diff --git a/packages/components/src/components/radio-button/radio-button.stories.ts b/packages/components/src/components/radio-button/radio-button.stories.ts index 6ef8a5b14..e8780fe3d 100644 --- a/packages/components/src/components/radio-button/radio-button.stories.ts +++ b/packages/components/src/components/radio-button/radio-button.stories.ts @@ -7,10 +7,11 @@ export default { args: { error: false, disabled: false, - value: false, + checked: false, size: 's', label: 'Text', - name: 'radio-button' + name: 'radio-button', + value: 'radio', }, argTypes: { ifxChange: { @@ -32,6 +33,9 @@ export default { }, name: { description: 'Name of the element, that is used as reference when a form is submitted.' + }, + value: { + description: 'The value that gets submitted, when the radio button is checked' } }, }; @@ -43,9 +47,10 @@ const DefaultTemplate = args => { // Set the attributes element.setAttribute('error', args.error); element.setAttribute('disabled', args.disabled); - element.setAttribute('value', args.value); + element.setAttribute('checked', args.checked); element.setAttribute('size', args.size); element.setAttribute('name', args.name); + element.setAttribute('value', args.value); // Add the label as a text node element.appendChild(document.createTextNode(args.label)); diff --git a/packages/components/src/components/radio-button/radio-button.tsx b/packages/components/src/components/radio-button/radio-button.tsx index 1c17e5154..862decb7f 100644 --- a/packages/components/src/components/radio-button/radio-button.tsx +++ b/packages/components/src/components/radio-button/radio-button.tsx @@ -1,34 +1,37 @@ -import { Component, h, Prop, Element, State, Event, EventEmitter, Watch, AttachInternals } from '@stencil/core'; +import { Component, h, Prop, Element, State, Event, EventEmitter, Listen, Method } from '@stencil/core'; @Component({ tag: 'ifx-radio-button', styleUrl: 'radio-button.scss', - shadow: true, - formAssociated: true + shadow: false, + formAssociated: false }) export class RadioButton { @Element() el; @Prop() disabled: boolean = false; - @Prop() value: boolean = false; + @Prop() value: string; @Prop() error: boolean = false; @Prop() size: "s" | "m" = "s"; - @State() internalValue: boolean; + @Prop() name: string; + @Prop() checked: boolean; + @State() internalChecked: boolean = false; @State() hasSlot: boolean = true; + @State() inputElement: HTMLInputElement; + @Event({ eventName: 'ifxChange' }) ifxChange: EventEmitter; - @AttachInternals() internals: ElementInternals; - - @Watch('value') - valueChanged(newValue: boolean, oldValue: boolean) { - if (newValue !== oldValue) { - this.internalValue = newValue; - } + /** + * @returns whether the radio button is checked. + */ + @Method() + async isChecked(): Promise { + return this.internalChecked; } - + componentWillLoad() { - this.internalValue = this.value; + if (this.checked) this.internalChecked = this.checked; const slot = this.el.innerHTML; if (slot) { this.hasSlot = true; @@ -36,17 +39,34 @@ export class RadioButton { } - handleRadioButtonClick() { - if (!this.disabled && !this.error && !this.internalValue) { - this.internalValue = !this.internalValue; - this.el.shadowRoot.querySelector('.radioButton__wrapper').focus(); - this.ifxChange.emit(this.internalValue); - this.internals.setFormValue(this.internalValue ? 'on' : null); + /** + * Click the hidden input element to let it handle the state + * and emit ifxChange event. + */ + handleRadioButtonClick(event: PointerEvent) { + if (this.disabled) { + event.stopPropagation(); + return; } + + this.inputElement.click(); + this.internalChecked = this.inputElement.checked; + this.ifxChange.emit(this.internalChecked); } - formResetCallback() { - this.internals.setFormValue(null); + /** + * Listen to all change events. + * Needed to get informed when another button of the group gets chcked + * and this one needs to become unchecked. + * + * @param event + */ + @Listen('change', { target: 'window' }) + handleChange(event: Event) { + const target = event.target as HTMLInputElement; + if (target.name === this.name) { + this.internalChecked = this.inputElement.checked; + } } render() { @@ -58,18 +78,27 @@ export class RadioButton { >
- {this.internalValue &&
} + {this.internalChecked &&
}
{this.hasSlot && (
)} + this.inputElement = el as HTMLInputElement} + name={this.name} + value={this.value} + checked={this.internalChecked} + disabled={this.disabled} + onClick={(e) => e.stopPropagation()}>
); } diff --git a/packages/components/src/components/radio-button/readme.md b/packages/components/src/components/radio-button/readme.md index 7287b7ba1..02e67bd58 100644 --- a/packages/components/src/components/radio-button/readme.md +++ b/packages/components/src/components/radio-button/readme.md @@ -7,12 +7,14 @@ ## Properties -| Property | Attribute | Description | Type | Default | -| ---------- | ---------- | ----------- | ------------ | ------- | -| `disabled` | `disabled` | | `boolean` | `false` | -| `error` | `error` | | `boolean` | `false` | -| `size` | `size` | | `"m" \| "s"` | `"s"` | -| `value` | `value` | | `boolean` | `false` | +| Property | Attribute | Description | Type | Default | +| ---------- | ---------- | ----------- | ------------ | ----------- | +| `checked` | `checked` | | `boolean` | `undefined` | +| `disabled` | `disabled` | | `boolean` | `false` | +| `error` | `error` | | `boolean` | `false` | +| `name` | `name` | | `string` | `undefined` | +| `size` | `size` | | `"m" \| "s"` | `"s"` | +| `value` | `value` | | `string` | `undefined` | ## Events @@ -22,6 +24,19 @@ | `ifxChange` | | `CustomEvent` | +## Methods + +### `isChecked() => Promise` + + + +#### Returns + +Type: `Promise` + +whether the radio button is checked. + + ## Dependencies ### Used by diff --git a/packages/components/src/components/select/multi-select/multiselect.stories.ts b/packages/components/src/components/select/multi-select/multiselect.stories.ts index ebc2bc20c..11027a4a6 100644 --- a/packages/components/src/components/select/multi-select/multiselect.stories.ts +++ b/packages/components/src/components/select/multi-select/multiselect.stories.ts @@ -65,7 +65,6 @@ export default { error: false, errorMessage: 'Some error', label: '', - disabled: false, placeholder: 'Placeholder', }, argTypes: { @@ -88,10 +87,6 @@ export default { control: { type: 'number' }, description: 'Number of maximum selectable items', }, - disabled: { - options: [true, false], - control: { type: 'radio' }, - }, showSearch: { options: [true, false], control: { type: 'radio' }, @@ -141,7 +136,6 @@ const Template = args => { error-message='${args.errorMessage}' label='${args.label}' placeholder='${args.placeholder}' - disabled='${args.disabled}' show-search='${args.showSearch}' show-select-all='${args.showSelectAll}'> `; diff --git a/packages/components/src/components/select/multi-select/multiselect.tsx b/packages/components/src/components/select/multi-select/multiselect.tsx index 10b9f08fe..bf003f3a9 100644 --- a/packages/components/src/components/select/multi-select/multiselect.tsx +++ b/packages/components/src/components/select/multi-select/multiselect.tsx @@ -1,4 +1,4 @@ -import { Component, Prop, State, Event, EventEmitter, Element, h, Watch } from '@stencil/core'; +import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core'; import { Option } from './interfaces'; // Debounce function @@ -17,13 +17,15 @@ function debounce(func, wait) { @Component({ tag: 'ifx-multiselect', styleUrl: 'multiselect.scss', - shadow: true + shadow: true, + formAssociated: true }) export class Multiselect { + @Prop() name: string; @Prop() options: any[] | string; @Prop() batchSize: number = 50; @Prop() size: string = 'medium (40px)'; @@ -56,6 +58,8 @@ export class Multiselect { @Element() el: HTMLElement; dropdownElement!: HTMLElement; + @AttachInternals() internals: ElementInternals; + async loadInitialOptions() { this.isLoading = true; @@ -215,6 +219,12 @@ export class Multiselect { this.filteredOptions = [...this.loadedOptions]; } + @Watch('persistentSelectedOptions') + onSelectionChange(newValue: Option[], _: Option[]) { + const formData = new FormData(); + newValue.forEach(option => formData.append(this.name, option.value)); + this.internals.setFormValue(formData); + } handleOptionClick(option: Option) { this.internalError = false; @@ -492,7 +502,7 @@ export class Multiselect { onClick={() => !disableCheckbox && this.handleOptionClick(option)} tabindex="0" role={`${option.children?.length > 0 ? "treeitem" : "option"}`}> - option.checkboxRef = el} id={uniqueId} size="s" value={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}> + option.checkboxRef = el} id={uniqueId} size="s" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}> {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))} @@ -548,7 +558,7 @@ export class Multiselect { onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)} onClick={() => !disableCheckbox && this.handleOptionClick(option)} tabindex="0"> - option.checkboxRef = el} id={uniqueId} size="s" value={isSelected} disabled={disableCheckbox}> + option.checkboxRef = el} id={uniqueId} size="s" checked={isSelected} disabled={disableCheckbox}> ); @@ -577,7 +587,7 @@ export class Multiselect { return
handleSelectAllKeydown(e)} onClick={toggleSelectAll}> - +
diff --git a/packages/components/src/components/select/multi-select/readme.md b/packages/components/src/components/select/multi-select/readme.md index d38a10f7d..2e42fbce6 100644 --- a/packages/components/src/components/select/multi-select/readme.md +++ b/packages/components/src/components/select/multi-select/readme.md @@ -15,6 +15,7 @@ | `errorMessage` | `error-message` | | `string` | `"Error"` | | `label` | `label` | | `string` | `""` | | `maxItemCount` | `max-item-count` | | `number` | `undefined` | +| `name` | `name` | | `string` | `undefined` | | `options` | `options` | | `any[] \| string` | `undefined` | | `placeholder` | `placeholder` | | `string` | `""` | | `showSearch` | `show-search` | | `boolean` | `true` | diff --git a/packages/components/src/components/select/single-select/select.tsx b/packages/components/src/components/select/single-select/select.tsx index 6aaa9f173..914a76577 100644 --- a/packages/components/src/components/select/single-select/select.tsx +++ b/packages/components/src/components/select/single-select/select.tsx @@ -435,7 +435,7 @@ export class Choices implements IChoicesProps, IChoicesMethods { }, input: ({ classNames }) => { return template(` - ` | +## Methods + +### `isChecked() => Promise` + + + +#### Returns + +Type: `Promise` + + + + ---------------------------------------------- *Built with [StencilJS](https://stenciljs.com/)* diff --git a/packages/components/src/components/switch/switch.e2e.ts b/packages/components/src/components/switch/switch.e2e.ts index 7504adb19..ccf384766 100644 --- a/packages/components/src/components/switch/switch.e2e.ts +++ b/packages/components/src/components/switch/switch.e2e.ts @@ -60,14 +60,12 @@ describe('ifx-switch', () => { expect(container).not.toHaveClass('checked'); }); - - - it('updates the visual state when value prop changes', async () => { + it('updates the visual state when checked prop changes', async () => { const page = await newE2EPage(); - await page.setContent(''); + await page.setContent(''); const component = await page.find('ifx-switch'); - component.setProperty('value', true); + component.setProperty('checked', true); await page.waitForChanges(); const container = await page.find('ifx-switch >>> .switch__checkbox-container'); @@ -101,6 +99,20 @@ describe('ifx-switch', () => { expect(value).toBe('on') }); + it('should be value when form is submitted and value is set', async () => { + const page = await newE2EPage(); + await page.setContent(`
+ + +
`); + await addHandleSubmitScript(page); + const switchEl = await page.find('ifx-switch'); + + await switchEl.click(); + + const value = await submitAndGetValue(page); + expect(value).toBe('val') + }); it('should not change value when disabled attribute is present', async () => { const page = await newE2EPage(); diff --git a/packages/components/src/components/switch/switch.stories.ts b/packages/components/src/components/switch/switch.stories.ts index 4d1c96856..bef4ce3fd 100644 --- a/packages/components/src/components/switch/switch.stories.ts +++ b/packages/components/src/components/switch/switch.stories.ts @@ -5,15 +5,18 @@ export default { tags: ['autodocs'], args: { - value: false, - disabled: false, + checked: false, label: 'Switch', - name: 'switch' + name: 'switch', + value: 'switch', }, argTypes: { name: { description: 'Name of the element, that is used as reference when a form is submitted.' }, + value: { + description: 'The value that gets submitted, when the radio button is checked' + }, ifxChange: { description: 'Custom event emitted on change', table: { @@ -32,9 +35,9 @@ const DefaultTemplate = args => { const element = document.createElement('ifx-switch') as HTMLIfxSwitchElement; // Set the attributes - element.setAttribute('disabled', args.disabled); - element.setAttribute('value', args.value); + element.setAttribute('checked', args.checked); element.setAttribute('name', args.name); + element.setAttribute('value', args.value); // Add the event listener // element.addEventListener('ifxChange', action('ifxChange')); diff --git a/packages/components/src/components/switch/switch.tsx b/packages/components/src/components/switch/switch.tsx index 8bff4ca61..a9cf3ea42 100644 --- a/packages/components/src/components/switch/switch.tsx +++ b/packages/components/src/components/switch/switch.tsx @@ -1,4 +1,4 @@ -import { AttachInternals } from '@stencil/core'; +import { AttachInternals, Method } from '@stencil/core'; import { Component, Prop, State, Watch, h, Event, EventEmitter, Element } from '@stencil/core'; @@ -9,10 +9,11 @@ import { Component, Prop, State, Watch, h, Event, EventEmitter, Element } from ' formAssociated: true }) export class Switch { - @Prop() value: boolean = false; + @Prop() checked: boolean = false; @Prop() name: string = ''; @Prop() disabled: boolean = false; - @State() internalValue: boolean = false; + @Prop() value: string; + @State() internalChecked: boolean = false; @AttachInternals() internals: ElementInternals; @@ -20,8 +21,13 @@ export class Switch { @Event({ eventName: 'ifxChange' }) ifxChange: EventEmitter; + @Method() + async isChecked(): Promise { + return this.internalChecked; + } + componentWillLoad() { - this.internalValue = this.value; + this.internalChecked = this.checked; } @@ -40,18 +46,28 @@ export class Switch { } - @Watch('value') + @Watch('checked') valueChanged(newValue: boolean, oldValue: boolean) { if (newValue !== oldValue) { - this.internalValue = newValue; + this.internalChecked = newValue; } } toggleSwitch() { if (this.disabled) return; - this.internalValue = !this.internalValue; - this.internals.setFormValue(this.internalValue ? 'on' : null); - this.ifxChange.emit(this.internalValue); + this.internalChecked = !this.internalChecked; + + if (this.internalChecked) { + if (this.value !== undefined) { + this.internals.setFormValue(this.value); + } else { + this.internals.setFormValue("on") + } + } else { + this.internals.setFormValue(null) + } + + this.ifxChange.emit(this.internalChecked); } handleKeyDown(event: KeyboardEvent) { @@ -75,22 +91,23 @@ export class Switch {
this.toggleSwitch()} onKeyDown={(event) => this.handleKeyDown(event)} > {/* Checkbox */}
-
+ checked={this.internalChecked} + value={`${this.value}`} /> +
diff --git a/packages/components/src/components/table-advanced-version/list/list-entry/list-entry.tsx b/packages/components/src/components/table-advanced-version/list/list-entry/list-entry.tsx index 2936ab5fa..805b2b4b3 100644 --- a/packages/components/src/components/table-advanced-version/list/list-entry/list-entry.tsx +++ b/packages/components/src/components/table-advanced-version/list/list-entry/list-entry.tsx @@ -35,11 +35,11 @@ export class ListEntry {
{this.type === 'checkbox' ? (
- {this.label} + {this.label}
) : (
- {this.label} + {this.label}
)}