diff --git a/package-lock.json b/package-lock.json
index b227cdfc6..67c5227e7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,6 +17,7 @@
"@biomejs/biome": "1.9.1",
"@custom-elements-manifest/analyzer": "^0.10.3",
"@igniteui/material-icons-extended": "^3.0.2",
+ "@lit-labs/testing": "^0.2.4",
"@open-wc/testing": "^4.0.0",
"@storybook/addon-a11y": "^8.3.0",
"@storybook/addon-actions": "^8.3.0",
@@ -62,29 +63,6 @@
"vite": "^5.4.5"
}
},
- "node_modules/@75lb/deep-merge": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.2.tgz",
- "integrity": "sha512-08K9ou5VNbheZFxM5tDWoqjA3ImC50DiuuJ2tj1yEPRfkp8lLLg6XAaJ4On+a0yAXor/8ay5gHnAIshRM44Kpw==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.21",
- "typical": "^7.1.1"
- },
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/@75lb/deep-merge/node_modules/typical": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.17"
- }
- },
"node_modules/@babel/code-frame": {
"version": "7.24.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
@@ -136,13 +114,13 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.25.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz",
- "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz",
+ "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.25.2"
+ "@babel/types": "^7.25.6"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -152,9 +130,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz",
- "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz",
+ "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -165,9 +143,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.25.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz",
- "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==",
+ "version": "7.25.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz",
+ "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -562,9 +540,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz",
+ "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==",
"cpu": [
"ppc64"
],
@@ -575,13 +553,13 @@
"aix"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz",
+ "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==",
"cpu": [
"arm"
],
@@ -592,13 +570,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz",
+ "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==",
"cpu": [
"arm64"
],
@@ -609,13 +587,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz",
+ "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==",
"cpu": [
"x64"
],
@@ -626,13 +604,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz",
+ "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==",
"cpu": [
"arm64"
],
@@ -643,13 +621,13 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz",
+ "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==",
"cpu": [
"x64"
],
@@ -660,13 +638,13 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz",
+ "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==",
"cpu": [
"arm64"
],
@@ -677,13 +655,13 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz",
+ "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==",
"cpu": [
"x64"
],
@@ -694,13 +672,13 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz",
+ "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==",
"cpu": [
"arm"
],
@@ -711,13 +689,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz",
+ "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==",
"cpu": [
"arm64"
],
@@ -728,13 +706,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz",
+ "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==",
"cpu": [
"ia32"
],
@@ -745,13 +723,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz",
+ "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==",
"cpu": [
"loong64"
],
@@ -762,13 +740,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz",
+ "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==",
"cpu": [
"mips64el"
],
@@ -779,13 +757,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz",
+ "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==",
"cpu": [
"ppc64"
],
@@ -796,13 +774,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz",
+ "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==",
"cpu": [
"riscv64"
],
@@ -813,13 +791,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz",
+ "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==",
"cpu": [
"s390x"
],
@@ -830,13 +808,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz",
+ "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==",
"cpu": [
"x64"
],
@@ -847,13 +825,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz",
+ "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==",
"cpu": [
"x64"
],
@@ -864,13 +842,30 @@
"netbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz",
+ "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz",
+ "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==",
"cpu": [
"x64"
],
@@ -881,13 +876,13 @@
"openbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz",
+ "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==",
"cpu": [
"x64"
],
@@ -898,13 +893,13 @@
"sunos"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz",
+ "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==",
"cpu": [
"arm64"
],
@@ -915,13 +910,13 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz",
+ "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==",
"cpu": [
"ia32"
],
@@ -932,13 +927,13 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz",
+ "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==",
"cpu": [
"x64"
],
@@ -949,7 +944,7 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esm-bundle/chai": {
@@ -963,12 +958,12 @@
}
},
"node_modules/@floating-ui/core": {
- "version": "1.6.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz",
- "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==",
+ "version": "1.6.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz",
+ "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==",
"license": "MIT",
"dependencies": {
- "@floating-ui/utils": "^0.2.4"
+ "@floating-ui/utils": "^0.2.8"
}
},
"node_modules/@floating-ui/dom": {
@@ -1139,12 +1134,68 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@lit-labs/ssr": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr/-/ssr-3.2.2.tgz",
+ "integrity": "sha512-He5TzeNPM9ECmVpgXRYmVlz0UA5YnzHlT43kyLi2Lu6mUidskqJVonk9W5K699+2DKhoXp8Ra4EJmHR6KrcW1Q==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-client": "^1.1.7",
+ "@lit-labs/ssr-dom-shim": "^1.2.0",
+ "@lit/reactive-element": "^2.0.4",
+ "@parse5/tools": "^0.3.0",
+ "@types/node": "^16.0.0",
+ "enhanced-resolve": "^5.10.0",
+ "lit": "^3.1.2",
+ "lit-element": "^4.0.4",
+ "lit-html": "^3.1.2",
+ "node-fetch": "^3.2.8",
+ "parse5": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=13.9.0"
+ }
+ },
+ "node_modules/@lit-labs/ssr-client": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-client/-/ssr-client-1.1.7.tgz",
+ "integrity": "sha512-VvqhY/iif3FHrlhkzEPsuX/7h/NqnfxLwVf0p8ghNIlKegRyRqgeaJevZ57s/u/LiFyKgqksRP5n+LmNvpxN+A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^2.0.4",
+ "lit": "^3.1.2",
+ "lit-html": "^3.1.2"
+ }
+ },
"node_modules/@lit-labs/ssr-dom-shim": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz",
"integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==",
"license": "BSD-3-Clause"
},
+ "node_modules/@lit-labs/ssr/node_modules/@types/node": {
+ "version": "16.18.108",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.108.tgz",
+ "integrity": "sha512-fj42LD82fSv6yN9C6Q4dzS+hujHj+pTv0IpRR3kI20fnYeS0ytBpjFO9OjmDowSPPt4lNKN46JLaKbCyP+BW2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@lit-labs/testing": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@lit-labs/testing/-/testing-0.2.4.tgz",
+ "integrity": "sha512-NasNKbELasyfA1vIcfMwM0H/2mE98uFsyf/yDWtcl9fAEsTpRRWrmPdQDrHDyim5LKnsQutCzBP3Fof83hSCIA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr": "^3.1.8",
+ "@lit-labs/ssr-client": "^1.1.4",
+ "@web/test-runner-commands": "^0.6.1",
+ "@webcomponents/template-shadowroot": "^0.1.0",
+ "lit": "^2.0.0 || ^3.0.0"
+ }
+ },
"node_modules/@lit-labs/virtualizer": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.0.14.tgz",
@@ -1249,6 +1300,20 @@
"@web/test-runner-commands": "^0.9.0"
}
},
+ "node_modules/@open-wc/semantic-dom-diff/node_modules/@web/test-runner-commands": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz",
+ "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@web/test-runner-core": "^0.13.0",
+ "mkdirp": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/@open-wc/testing": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz",
@@ -1276,6 +1341,16 @@
"lit-html": "^2.0.0 || ^3.0.0"
}
},
+ "node_modules/@parse5/tools": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@parse5/tools/-/tools-0.3.0.tgz",
+ "integrity": "sha512-zxRyTHkqb7WQMV8kTNBKWb1BeOFUKXBXTBWuxg9H9hfvQB3IwP6Iw2U75Ia5eyRxPNltmY7E8YAlz6zWwUnjKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parse5": "^7.0.0"
+ }
+ },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -1326,19 +1401,31 @@
"node": ">=18"
}
},
- "node_modules/@puppeteer/browsers/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@puppeteer/browsers/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
},
"engines": {
- "node": ">=10"
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
+ "node_modules/@puppeteer/browsers/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@rollup/plugin-node-resolve": {
"version": "15.2.3",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz",
@@ -1389,9 +1476,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.1.tgz",
- "integrity": "sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz",
+ "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==",
"cpu": [
"arm"
],
@@ -1403,9 +1490,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.1.tgz",
- "integrity": "sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz",
+ "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==",
"cpu": [
"arm64"
],
@@ -1417,9 +1504,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.1.tgz",
- "integrity": "sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz",
+ "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==",
"cpu": [
"arm64"
],
@@ -1431,9 +1518,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.1.tgz",
- "integrity": "sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz",
+ "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==",
"cpu": [
"x64"
],
@@ -1445,9 +1532,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.1.tgz",
- "integrity": "sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz",
+ "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==",
"cpu": [
"arm"
],
@@ -1459,9 +1546,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.1.tgz",
- "integrity": "sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz",
+ "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==",
"cpu": [
"arm"
],
@@ -1473,9 +1560,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.1.tgz",
- "integrity": "sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz",
+ "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==",
"cpu": [
"arm64"
],
@@ -1487,9 +1574,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.1.tgz",
- "integrity": "sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz",
+ "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==",
"cpu": [
"arm64"
],
@@ -1501,9 +1588,9 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.1.tgz",
- "integrity": "sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz",
+ "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==",
"cpu": [
"ppc64"
],
@@ -1515,9 +1602,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.1.tgz",
- "integrity": "sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz",
+ "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==",
"cpu": [
"riscv64"
],
@@ -1529,9 +1616,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.1.tgz",
- "integrity": "sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz",
+ "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==",
"cpu": [
"s390x"
],
@@ -1543,9 +1630,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz",
- "integrity": "sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz",
+ "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==",
"cpu": [
"x64"
],
@@ -1557,9 +1644,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.1.tgz",
- "integrity": "sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz",
+ "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==",
"cpu": [
"x64"
],
@@ -1571,9 +1658,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.1.tgz",
- "integrity": "sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz",
+ "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==",
"cpu": [
"arm64"
],
@@ -1585,9 +1672,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.1.tgz",
- "integrity": "sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz",
+ "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==",
"cpu": [
"ia32"
],
@@ -1599,9 +1686,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz",
- "integrity": "sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz",
+ "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==",
"cpu": [
"x64"
],
@@ -1613,20 +1700,58 @@
]
},
"node_modules/@shikijs/core": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.16.2.tgz",
- "integrity": "sha512-XSVH5OZCvE4WLMgdoBqfPMYmGHGmCC3OgZhw0S7KcSi2XKZ+5oHGe71GFnTljgdOxvxx5WrRks6QoTLKrl1eAA==",
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.7.tgz",
+ "integrity": "sha512-ZnIDxFu/yvje3Q8owSHaEHd+bu/jdWhHAaJ17ggjXofHx5rc4bhpCSW+OjC6smUBi5s5dd023jWtZ1gzMu/yrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/engine-javascript": "1.17.7",
+ "@shikijs/engine-oniguruma": "1.17.7",
+ "@shikijs/types": "1.17.7",
+ "@shikijs/vscode-textmate": "^9.2.2",
+ "@types/hast": "^3.0.4",
+ "hast-util-to-html": "^9.0.2"
+ }
+ },
+ "node_modules/@shikijs/engine-javascript": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.7.tgz",
+ "integrity": "sha512-wwSf7lKPsm+hiYQdX+1WfOXujtnUG6fnN4rCmExxa4vo+OTmvZ9B1eKauilvol/LHUPrQgW12G3gzem7pY5ckw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "1.17.7",
+ "@shikijs/vscode-textmate": "^9.2.2",
+ "oniguruma-to-js": "0.4.3"
+ }
+ },
+ "node_modules/@shikijs/engine-oniguruma": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.7.tgz",
+ "integrity": "sha512-pvSYGnVeEIconU28NEzBXqSQC/GILbuNbAHwMoSfdTBrobKAsV1vq2K4cAgiaW1TJceLV9QMGGh18hi7cCzbVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "1.17.7",
+ "@shikijs/vscode-textmate": "^9.2.2"
+ }
+ },
+ "node_modules/@shikijs/types": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.7.tgz",
+ "integrity": "sha512-+qA4UyhWLH2q4EFd+0z4K7GpERDU+c+CN2XYD3sC+zjvAr5iuwD1nToXZMt1YODshjkEGEDV86G7j66bKjqDdg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@shikijs/vscode-textmate": "^9.2.0",
+ "@shikijs/vscode-textmate": "^9.2.2",
"@types/hast": "^3.0.4"
}
},
"node_modules/@shikijs/vscode-textmate": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.0.tgz",
- "integrity": "sha512-5FinaOp6Vdh/dl4/yaOTh0ZeKch+rYS8DUb38V3GMKYVkdqzxw53lViRKUYkVILRiVQT7dcPC7VvAKOR73zVtQ==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz",
+ "integrity": "sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==",
"dev": true,
"license": "MIT"
},
@@ -2065,19 +2190,6 @@
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/core/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@storybook/core/node_modules/ws": {
"version": "8.18.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
@@ -2263,9 +2375,9 @@
"license": "MIT"
},
"node_modules/@ts-graphviz/adapter": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@ts-graphviz/adapter/-/adapter-2.0.3.tgz",
- "integrity": "sha512-wHSN23UdLz4vuYUBZCzq2/tfLicwStSo3cUWnzvMNxG2ngcuYauQCQInv4CI5IObq+PFol28RVrG9Ffa9BuIRA==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@ts-graphviz/adapter/-/adapter-2.0.4.tgz",
+ "integrity": "sha512-fQMtFNeKEUy8yvQwzVxal6nbhnLMV5hfMGxugK6RBnAQ7R7ig6uTjHep6DKt3X/PpSf2A96NDgBLwfcv3OEE5w==",
"dev": true,
"funding": [
{
@@ -2279,16 +2391,16 @@
],
"license": "MIT",
"dependencies": {
- "@ts-graphviz/common": "^2.1.2"
+ "@ts-graphviz/common": "^2.1.3"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@ts-graphviz/ast": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@ts-graphviz/ast/-/ast-2.0.3.tgz",
- "integrity": "sha512-NhOgJdOHGSn5h5ydsFreLIKFBwQ59drzZ6y0B98+KeEMqduv5hXxcQoDabw8yzeNe9B92AfR5OpUYthcdAsYgw==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@ts-graphviz/ast/-/ast-2.0.4.tgz",
+ "integrity": "sha512-qCzhBW3fgLW1eMnbRnm4brvoXciOlJnQTlYPNqunz7TpUNolPst/bFcb53EUCBk2oo09AIX3fbRvdpJUvD7osQ==",
"dev": true,
"funding": [
{
@@ -2302,16 +2414,16 @@
],
"license": "MIT",
"dependencies": {
- "@ts-graphviz/common": "^2.1.2"
+ "@ts-graphviz/common": "^2.1.3"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@ts-graphviz/common": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@ts-graphviz/common/-/common-2.1.2.tgz",
- "integrity": "sha512-Wyh5fOZNYyNP1mymbcHg/9atWR33NhHWIDrNa4hfbel3v340YQ+q+LMwAuIPuPt1qXINvOEhkowO5dvJWqfnPA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@ts-graphviz/common/-/common-2.1.3.tgz",
+ "integrity": "sha512-cGqlvgiAkHwlkItj6hgzcVTFAP0k5id7loHE7CnSEfGfCKBoDyG/KHhKJo5WdauZmqb82xKDheBhS73ZxZOqmg==",
"dev": true,
"funding": [
{
@@ -2329,9 +2441,9 @@
}
},
"node_modules/@ts-graphviz/core": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@ts-graphviz/core/-/core-2.0.3.tgz",
- "integrity": "sha512-EZ+XlSwjdLtscoBOnA/Ba6QBrmoxAR73tJFjnWxaJQsZxWBQv6bLUrDgZUdXkXRAOSkRHn0uXY6Wq/3SsV2WtQ==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@ts-graphviz/core/-/core-2.0.4.tgz",
+ "integrity": "sha512-NYUv1h9EDHlHDA5iYJBvSdrScvrI/u8CKg0XDBFf3EU1qX9OTKN37AECoxFWdMl4X7cwmFuH5ujJ91PN7CTKZw==",
"dev": true,
"funding": [
{
@@ -2345,8 +2457,8 @@
],
"license": "MIT",
"dependencies": {
- "@ts-graphviz/ast": "^2.0.3",
- "@ts-graphviz/common": "^2.1.2"
+ "@ts-graphviz/ast": "^2.0.4",
+ "@ts-graphviz/common": "^2.1.3"
},
"engines": {
"node": ">=18"
@@ -2381,9 +2493,9 @@
}
},
"node_modules/@types/chai": {
- "version": "4.3.16",
- "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz",
- "integrity": "sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==",
+ "version": "4.3.19",
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz",
+ "integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==",
"dev": true,
"license": "MIT"
},
@@ -2608,8 +2720,18 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/mdx": {
- "version": "2.0.13",
+ "node_modules/@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/mdx": {
+ "version": "2.0.13",
"resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
"integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
"dev": true,
@@ -2630,13 +2752,13 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "18.19.49",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.49.tgz",
- "integrity": "sha512-ALCeIR6n0nQ7j0FUF1ycOhrp6+XutJWqEu/vtdEqXFUQwkBfgUA5cEg3ZNmjWGF/ZYA/FcF9QMkL55Ar0O6UrA==",
+ "version": "22.5.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz",
+ "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~5.26.4"
+ "undici-types": "~6.19.2"
}
},
"node_modules/@types/parse5": {
@@ -2654,9 +2776,9 @@
"license": "MIT"
},
"node_modules/@types/qs": {
- "version": "6.9.15",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
- "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==",
+ "version": "6.9.16",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz",
+ "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==",
"dev": true,
"license": "MIT"
},
@@ -2743,9 +2865,9 @@
"license": "MIT"
},
"node_modules/@types/unist": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
- "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
"dev": true,
"license": "MIT"
},
@@ -2830,6 +2952,24 @@
"balanced-match": "^1.0.0"
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@typescript-eslint/typescript-estree/node_modules/globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@@ -2867,18 +3007,12 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
+ "license": "MIT"
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/slash": {
"version": "3.0.0",
@@ -2916,70 +3050,70 @@
"license": "ISC"
},
"node_modules/@vscode/web-custom-data": {
- "version": "0.4.11",
- "resolved": "https://registry.npmjs.org/@vscode/web-custom-data/-/web-custom-data-0.4.11.tgz",
- "integrity": "sha512-cJuycq8j3mSBwTvUS5fCjUG/VV0n1ht/iJF6n1nR3BbZ51ICK/51pTtYqFNZQmYuH/PxzMvqzhy1H15Vz6l0UQ==",
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/@vscode/web-custom-data/-/web-custom-data-0.4.12.tgz",
+ "integrity": "sha512-bCemuvwCC84wJQbJoaPou86sjz9DUvZgGa6sAWQwzw7oIELD7z+WnUj2Rdsu8/8XPhKLcg3IswQ2+Pm3OMinIg==",
"dev": true,
"license": "MIT"
},
"node_modules/@vue/compiler-core": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz",
- "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==",
+ "version": "3.5.6",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.6.tgz",
+ "integrity": "sha512-r+gNu6K4lrvaQLQGmf+1gc41p3FO2OUJyWmNqaIITaJU6YFiV5PtQSFZt8jfztYyARwqhoCayjprC7KMvT3nRA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/shared": "3.4.38",
+ "@babel/parser": "^7.25.3",
+ "@vue/shared": "3.5.6",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz",
- "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==",
+ "version": "3.5.6",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.6.tgz",
+ "integrity": "sha512-xRXqxDrIqK8v8sSScpistyYH0qYqxakpsIvqMD2e5sV/PXQ1mTwtXp4k42yHK06KXxKSmitop9e45Ui/3BrTEw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vue/compiler-core": "3.4.38",
- "@vue/shared": "3.4.38"
+ "@vue/compiler-core": "3.5.6",
+ "@vue/shared": "3.5.6"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz",
- "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==",
+ "version": "3.5.6",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.6.tgz",
+ "integrity": "sha512-pjWJ8Kj9TDHlbF5LywjVso+BIxCY5wVOLhkEXRhuCHDxPFIeX1zaFefKs8RYoHvkSMqRWt93a0f2gNJVJixHwg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.24.7",
- "@vue/compiler-core": "3.4.38",
- "@vue/compiler-dom": "3.4.38",
- "@vue/compiler-ssr": "3.4.38",
- "@vue/shared": "3.4.38",
+ "@babel/parser": "^7.25.3",
+ "@vue/compiler-core": "3.5.6",
+ "@vue/compiler-dom": "3.5.6",
+ "@vue/compiler-ssr": "3.5.6",
+ "@vue/shared": "3.5.6",
"estree-walker": "^2.0.2",
- "magic-string": "^0.30.10",
- "postcss": "^8.4.40",
+ "magic-string": "^0.30.11",
+ "postcss": "^8.4.47",
"source-map-js": "^1.2.0"
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz",
- "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==",
+ "version": "3.5.6",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.6.tgz",
+ "integrity": "sha512-VpWbaZrEOCqnmqjE83xdwegtr5qO/2OPUC6veWgvNqTJ3bYysz6vY3VqMuOijubuUYPRpG3OOKIh9TD0Stxb9A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vue/compiler-dom": "3.4.38",
- "@vue/shared": "3.4.38"
+ "@vue/compiler-dom": "3.5.6",
+ "@vue/shared": "3.5.6"
}
},
"node_modules/@vue/shared": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz",
- "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==",
+ "version": "3.5.6",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.6.tgz",
+ "integrity": "sha512-eidH0HInnL39z6wAt6SFIwBrvGOpDWsDxlw3rCgo1B+CQ1781WzQUSU3YjxgdkcJo9Q8S6LmXTkvI+cLHGkQfA==",
"dev": true,
"license": "MIT"
},
@@ -3009,19 +3143,6 @@
"node": ">=10.0.0"
}
},
- "node_modules/@web/config-loader/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/@web/dev-server": {
"version": "0.4.6",
"resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.6.tgz",
@@ -3089,6 +3210,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@web/dev-server-core/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@web/dev-server-rollup": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.4.tgz",
@@ -3107,6 +3235,13 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@web/dev-server-rollup/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@web/dev-server/node_modules/@web/config-loader": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.2.tgz",
@@ -3131,6 +3266,13 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@web/parse5-utils/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@web/test-runner": {
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.19.0.tgz",
@@ -3181,17 +3323,170 @@
}
},
"node_modules/@web/test-runner-commands": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz",
- "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==",
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.6.tgz",
+ "integrity": "sha512-2DcK/+7f8QTicQpGFq/TmvKHDK/6Zald6rn1zqRlmj3pcH8fX6KHNVMU60Za9QgAKdorMBPfd8dJwWba5otzdw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@web/test-runner-core": "^0.13.0",
+ "@web/test-runner-core": "^0.10.29",
"mkdirp": "^1.0.4"
},
"engines": {
- "node": ">=18.0.0"
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@web/test-runner-commands/node_modules/@web/browser-logs": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz",
+ "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "errorstacks": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@web/test-runner-commands/node_modules/@web/dev-server-core": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz",
+ "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/koa": "^2.11.6",
+ "@types/ws": "^7.4.0",
+ "@web/parse5-utils": "^1.3.1",
+ "chokidar": "^3.4.3",
+ "clone": "^2.1.2",
+ "es-module-lexer": "^1.0.0",
+ "get-stream": "^6.0.0",
+ "is-stream": "^2.0.0",
+ "isbinaryfile": "^5.0.0",
+ "koa": "^2.13.0",
+ "koa-etag": "^4.0.0",
+ "koa-send": "^5.0.1",
+ "koa-static": "^5.0.0",
+ "lru-cache": "^6.0.0",
+ "mime-types": "^2.1.27",
+ "parse5": "^6.0.1",
+ "picomatch": "^2.2.2",
+ "ws": "^7.4.2"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@web/test-runner-commands/node_modules/@web/parse5-utils": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz",
+ "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/parse5": "^6.0.1",
+ "parse5": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@web/test-runner-commands/node_modules/@web/test-runner-core": {
+ "version": "0.10.29",
+ "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz",
+ "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.11",
+ "@types/babel__code-frame": "^7.0.2",
+ "@types/co-body": "^6.1.0",
+ "@types/convert-source-map": "^2.0.0",
+ "@types/debounce": "^1.2.0",
+ "@types/istanbul-lib-coverage": "^2.0.3",
+ "@types/istanbul-reports": "^3.0.0",
+ "@web/browser-logs": "^0.2.6",
+ "@web/dev-server-core": "^0.4.1",
+ "chokidar": "^3.4.3",
+ "cli-cursor": "^3.1.0",
+ "co-body": "^6.1.0",
+ "convert-source-map": "^2.0.0",
+ "debounce": "^1.2.0",
+ "dependency-graph": "^0.11.0",
+ "globby": "^11.0.1",
+ "ip": "^1.1.5",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-reports": "^3.0.2",
+ "log-update": "^4.0.0",
+ "nanocolors": "^0.2.1",
+ "nanoid": "^3.1.25",
+ "open": "^8.0.2",
+ "picomatch": "^2.2.2",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/@web/test-runner-commands/node_modules/es-module-lexer": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
+ "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@web/test-runner-commands/node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@web/test-runner-commands/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@web/test-runner-commands/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@web/test-runner-commands/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/@web/test-runner-core": {
@@ -3318,6 +3613,20 @@
"node": ">=18.0.0"
}
},
+ "node_modules/@web/test-runner/node_modules/@web/test-runner-commands": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz",
+ "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@web/test-runner-core": "^0.13.0",
+ "mkdirp": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
"node_modules/@web/test-runner/node_modules/globby": {
"version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@@ -3349,6 +3658,13 @@
"node": ">=8"
}
},
+ "node_modules/@webcomponents/template-shadowroot": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@webcomponents/template-shadowroot/-/template-shadowroot-0.1.0.tgz",
+ "integrity": "sha512-ry84Vft6xtRBbd4M/ptRodbOLodV5AD15TYhyRghCRgIcJJKmYmJ2v2BaaWxygENwh6Uq3zTfGPmlckKT/GXsQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@@ -3389,17 +3705,42 @@
"node": ">= 14"
}
},
+ "node_modules/agent-base/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/agent-base/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/ajv": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz",
- "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==",
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.4.1"
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
@@ -3655,9 +3996,9 @@
}
},
"node_modules/axe-core": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz",
- "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz",
+ "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==",
"dev": true,
"license": "MPL-2.0",
"engines": {
@@ -3687,9 +4028,9 @@
"optional": true
},
"node_modules/bare-fs": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.3.tgz",
- "integrity": "sha512-7RYKL+vZVCyAsMLi5SPu7QGauGGT8avnP/HO571ndEuV4MYdGXvLhtW67FuLPeEI8EiIY7zbbRR9x7x7HU0kgw==",
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz",
+ "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
@@ -3700,9 +4041,9 @@
}
},
"node_modules/bare-os": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.2.tgz",
- "integrity": "sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==",
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz",
+ "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==",
"dev": true,
"license": "Apache-2.0",
"optional": true
@@ -3719,15 +4060,15 @@
}
},
"node_modules/bare-stream": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.2.1.tgz",
- "integrity": "sha512-YTB47kHwBW9zSG8LD77MIBAAQXjU2WjAkMHeeb7hUplVs6+IoM5I7uEVQNPMB7lj9r8I76UMdoMkGnCodHOLqg==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz",
+ "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==",
"dev": true,
"license": "Apache-2.0",
"optional": true,
"dependencies": {
"b4a": "^1.6.6",
- "streamx": "^2.18.0"
+ "streamx": "^2.20.0"
}
},
"node_modules/base64-js": {
@@ -3828,23 +4169,6 @@
"npm": "1.2.8000 || >= 1.4.16"
}
},
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -4256,9 +4580,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001655",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz",
- "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==",
+ "version": "1.0.30001660",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz",
+ "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==",
"dev": true,
"funding": [
{
@@ -4276,6 +4600,17 @@
],
"license": "CC-BY-4.0"
},
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/cem-plugin-expanded-types": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/cem-plugin-expanded-types/-/cem-plugin-expanded-types-1.3.2.tgz",
@@ -4380,6 +4715,28 @@
"node": ">=8"
}
},
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
@@ -4652,6 +5009,17 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/command-line-args": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.2.tgz",
@@ -4669,15 +5037,15 @@
}
},
"node_modules/command-line-usage": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.2.tgz",
- "integrity": "sha512-MwNFB8nxi3IVnzir+nkSIbDTU4H6ne26zqicO2eTt1wPrvdOAphPhnYqWOjxXKWYLNYDu4Z/r2ESEziEqKuOVg==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz",
+ "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"array-back": "^6.2.2",
"chalk-template": "^0.4.0",
- "table-layout": "^3.0.2",
+ "table-layout": "^4.1.0",
"typical": "^7.1.1"
},
"engines": {
@@ -4852,23 +5220,6 @@
"node": ">=0.8"
}
},
- "node_modules/connect/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/connect/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -5058,13 +5409,13 @@
"license": "BSD-3-Clause"
},
"node_modules/data-uri-to-buffer": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
- "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 14"
+ "node": ">= 12"
}
},
"node_modules/debounce": {
@@ -5075,21 +5426,13 @@
"license": "MIT"
},
"node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "ms": "2.0.0"
}
},
"node_modules/deep-equal": {
@@ -5417,6 +5760,20 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/devtools-protocol": {
"version": "0.0.1330662",
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1330662.tgz",
@@ -5567,9 +5924,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.11",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz",
- "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==",
+ "version": "1.5.23",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.23.tgz",
+ "integrity": "sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==",
"dev": true,
"license": "ISC"
},
@@ -5581,9 +5938,9 @@
"license": "MIT"
},
"node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5636,6 +5993,31 @@
"xmlhttprequest-ssl": "~2.0.0"
}
},
+ "node_modules/engine.io-client/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/engine.io-client/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/engine.io-client/node_modules/ws": {
"version": "8.17.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
@@ -5659,9 +6041,9 @@
}
},
"node_modules/engine.io-parser": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz",
- "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==",
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+ "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -5678,6 +6060,31 @@
"node": ">= 0.6"
}
},
+ "node_modules/engine.io/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/engine.io/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/engine.io/node_modules/ws": {
"version": "8.17.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
@@ -5798,9 +6205,9 @@
"license": "MIT"
},
"node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz",
+ "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -5808,32 +6215,33 @@
"esbuild": "bin/esbuild"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "@esbuild/aix-ppc64": "0.23.1",
+ "@esbuild/android-arm": "0.23.1",
+ "@esbuild/android-arm64": "0.23.1",
+ "@esbuild/android-x64": "0.23.1",
+ "@esbuild/darwin-arm64": "0.23.1",
+ "@esbuild/darwin-x64": "0.23.1",
+ "@esbuild/freebsd-arm64": "0.23.1",
+ "@esbuild/freebsd-x64": "0.23.1",
+ "@esbuild/linux-arm": "0.23.1",
+ "@esbuild/linux-arm64": "0.23.1",
+ "@esbuild/linux-ia32": "0.23.1",
+ "@esbuild/linux-loong64": "0.23.1",
+ "@esbuild/linux-mips64el": "0.23.1",
+ "@esbuild/linux-ppc64": "0.23.1",
+ "@esbuild/linux-riscv64": "0.23.1",
+ "@esbuild/linux-s390x": "0.23.1",
+ "@esbuild/linux-x64": "0.23.1",
+ "@esbuild/netbsd-x64": "0.23.1",
+ "@esbuild/openbsd-arm64": "0.23.1",
+ "@esbuild/openbsd-x64": "0.23.1",
+ "@esbuild/sunos-x64": "0.23.1",
+ "@esbuild/win32-arm64": "0.23.1",
+ "@esbuild/win32-ia32": "0.23.1",
+ "@esbuild/win32-x64": "0.23.1"
}
},
"node_modules/esbuild-register": {
@@ -5849,10 +6257,35 @@
"esbuild": ">=0.12 <1"
}
},
+ "node_modules/esbuild-register/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/esbuild-register/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/escalade": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
- "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -6047,26 +6480,6 @@
"node": ">= 0.10.0"
}
},
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/express/node_modules/finalhandler": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
@@ -6100,9 +6513,9 @@
}
},
"node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
"license": "MIT"
},
@@ -6141,13 +6554,6 @@
"node": ">= 0.8"
}
},
- "node_modules/express/node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/express/node_modules/serve-static": {
"version": "1.16.2",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
@@ -6185,6 +6591,24 @@
"@types/yauzl": "^2.9.1"
}
},
+ "node_modules/extract-zip/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/extract-zip/node_modules/get-stream": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@@ -6201,6 +6625,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/extract-zip/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -6239,6 +6670,13 @@
"node": ">=8.6.0"
}
},
+ "node_modules/fast-uri": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz",
+ "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fastest-levenshtein": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
@@ -6269,10 +6707,34 @@
"pend": "~1.2.0"
}
},
+ "node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
"node_modules/file-entry-cache": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz",
- "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
+ "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6340,23 +6802,16 @@
"node": ">= 0.8"
}
},
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/finalhandler/node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/finalhandler/node_modules/on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -6457,9 +6912,9 @@
"license": "ISC"
},
"node_modules/follow-redirects": {
- "version": "1.15.6",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
- "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
"dev": true,
"funding": [
{
@@ -6488,9 +6943,9 @@
}
},
"node_modules/foreground-child": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -6517,6 +6972,19 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fetch-blob": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -6691,6 +7159,41 @@
"node": ">= 14"
}
},
+ "node_modules/get-uri/node_modules/data-uri-to-buffer": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
+ "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/get-uri/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/get-uri/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/github-slugger": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
@@ -6944,6 +7447,30 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-util-to-html": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.2.tgz",
+ "integrity": "sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "stringify-entities": "^4.0.0",
+ "zwitch": "^2.0.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/hast-util-to-string": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz",
@@ -6958,6 +7485,20 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
@@ -6978,6 +7519,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/html-void-elements": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
+ "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/http-assert": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
@@ -7075,6 +7627,31 @@
"node": ">= 14"
}
},
+ "node_modules/http-proxy-agent/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/http-proxy-agent/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/https-proxy-agent": {
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz",
@@ -7089,6 +7666,31 @@
"node": ">= 14"
}
},
+ "node_modules/https-proxy-agent/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/https-proxy-agent/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@@ -7285,6 +7887,13 @@
"url": "https://github.com/sindresorhus/internal-ip?sponsor=1"
}
},
+ "node_modules/ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/ip-address": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
@@ -7399,9 +8008,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz",
- "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==",
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7708,19 +8317,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/istanbul-lib-report/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/istanbul-lib-report/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -7979,6 +8575,24 @@
"node": ">= 8"
}
},
+ "node_modules/koa-send/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/koa-send/node_modules/depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -8006,6 +8620,13 @@
"node": ">= 0.6"
}
},
+ "node_modules/koa-send/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/koa-send/node_modules/statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
@@ -8040,6 +8661,41 @@
"ms": "^2.1.1"
}
},
+ "node_modules/koa-static/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/koa/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/koa/node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/koa/node_modules/http-errors": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
@@ -8067,6 +8723,13 @@
"node": ">= 0.6"
}
},
+ "node_modules/koa/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/koa/node_modules/statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
@@ -8098,23 +8761,6 @@
"marky": "^1.2.2"
}
},
- "node_modules/lighthouse-logger/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/lighthouse-logger/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/lilconfig": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
@@ -8192,18 +8838,36 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/lint-staged/node_modules/execa": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "node_modules/lint-staged/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/lint-staged/node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
"npm-run-path": "^5.1.0",
"onetime": "^6.0.0",
"signal-exit": "^4.1.0",
@@ -8265,6 +8929,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/lint-staged/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/lint-staged/node_modules/npm-run-path": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
@@ -8933,6 +9604,24 @@
"node": ">= 10"
}
},
+ "node_modules/madge/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/madge/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8943,6 +9632,13 @@
"node": ">=8"
}
},
+ "node_modules/madge/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/madge/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -8982,6 +9678,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/make-synchronized": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/make-synchronized/-/make-synchronized-0.2.9.tgz",
@@ -9048,6 +9754,28 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/mdast-util-to-hast": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
+ "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/mdn-data": {
"version": "2.0.30",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
@@ -9132,6 +9860,100 @@
"node": ">= 0.6"
}
},
+ "node_modules/micromark-util-character": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz",
+ "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
+ "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
+ "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz",
+ "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-types": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz",
+ "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
@@ -9292,9 +10114,9 @@
}
},
"node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true,
"license": "MIT"
},
@@ -9368,6 +10190,45 @@
"node": ">=16"
}
},
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
+ }
+ },
"node_modules/node-releases": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
@@ -9493,6 +10354,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/oniguruma-to-js": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz",
+ "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regex": "^4.3.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
"node_modules/only": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
@@ -9718,6 +10592,31 @@
"node": ">= 14"
}
},
+ "node_modules/pac-proxy-agent/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pac-proxy-agent/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/pac-resolver": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
@@ -9782,11 +10681,17 @@
}
},
"node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
},
"node_modules/parseurl": {
"version": "1.3.3",
@@ -10040,6 +10945,13 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/portfinder/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/portscanner": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz",
@@ -10296,6 +11208,17 @@
"node": ">=0.4.0"
}
},
+ "node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -10330,6 +11253,24 @@
"node": ">= 14"
}
},
+ "node_modules/proxy-agent/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/proxy-agent/node_modules/lru-cache": {
"version": "7.18.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
@@ -10340,6 +11281,13 @@
"node": ">=12"
}
},
+ "node_modules/proxy-agent/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -10348,9 +11296,9 @@
"license": "MIT"
},
"node_modules/pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10396,23 +11344,48 @@
"node": ">=18"
}
},
- "node_modules/puppeteer-core/node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "node_modules/puppeteer-core/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"license": "MIT",
- "engines": {
- "node": ">=10.0.0"
+ "dependencies": {
+ "ms": "^2.1.3"
},
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
+ "engines": {
+ "node": ">=6.0"
},
"peerDependenciesMeta": {
- "bufferutil": {
+ "supports-color": {
"optional": true
- },
+ }
+ }
+ },
+ "node_modules/puppeteer-core/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/puppeteer-core/node_modules/ws": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
"utf-8-validate": {
"optional": true
}
@@ -10624,6 +11597,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/regex": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/regex/-/regex-4.3.2.tgz",
+ "integrity": "sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/rehype-external-links": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz",
@@ -10831,23 +11811,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/resp-modifier/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/resp-modifier/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@@ -10944,9 +11907,9 @@
}
},
"node_modules/rollup": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.1.tgz",
- "integrity": "sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg==",
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz",
+ "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -10960,22 +11923,22 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.21.1",
- "@rollup/rollup-android-arm64": "4.21.1",
- "@rollup/rollup-darwin-arm64": "4.21.1",
- "@rollup/rollup-darwin-x64": "4.21.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.21.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.21.1",
- "@rollup/rollup-linux-arm64-gnu": "4.21.1",
- "@rollup/rollup-linux-arm64-musl": "4.21.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.21.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.21.1",
- "@rollup/rollup-linux-s390x-gnu": "4.21.1",
- "@rollup/rollup-linux-x64-gnu": "4.21.1",
- "@rollup/rollup-linux-x64-musl": "4.21.1",
- "@rollup/rollup-win32-arm64-msvc": "4.21.1",
- "@rollup/rollup-win32-ia32-msvc": "4.21.1",
- "@rollup/rollup-win32-x64-msvc": "4.21.1",
+ "@rollup/rollup-android-arm-eabi": "4.21.3",
+ "@rollup/rollup-android-arm64": "4.21.3",
+ "@rollup/rollup-darwin-arm64": "4.21.3",
+ "@rollup/rollup-darwin-x64": "4.21.3",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.21.3",
+ "@rollup/rollup-linux-arm-musleabihf": "4.21.3",
+ "@rollup/rollup-linux-arm64-gnu": "4.21.3",
+ "@rollup/rollup-linux-arm64-musl": "4.21.3",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3",
+ "@rollup/rollup-linux-riscv64-gnu": "4.21.3",
+ "@rollup/rollup-linux-s390x-gnu": "4.21.3",
+ "@rollup/rollup-linux-x64-gnu": "4.21.3",
+ "@rollup/rollup-linux-x64-musl": "4.21.3",
+ "@rollup/rollup-win32-arm64-msvc": "4.21.3",
+ "@rollup/rollup-win32-ia32-msvc": "4.21.3",
+ "@rollup/rollup-win32-x64-msvc": "4.21.3",
"fsevents": "~2.3.2"
}
},
@@ -11516,13 +12479,16 @@
}
},
"node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/send": {
@@ -11550,16 +12516,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
"node_modules/send/node_modules/depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -11577,6 +12533,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/send/node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/send/node_modules/http-errors": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
@@ -11600,13 +12566,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/send/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/send/node_modules/on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -11656,16 +12615,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/serve-index/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
"node_modules/serve-index/node_modules/depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -11699,13 +12648,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/serve-index/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/serve-index/node_modules/setprototypeof": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
@@ -11739,6 +12681,16 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/serve-static/node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/server-destroy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
@@ -11805,14 +12757,17 @@
}
},
"node_modules/shiki": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.16.2.tgz",
- "integrity": "sha512-gSym0hZf5a1U0iDPsdoOAZbvoi+e0c6c3NKAi03FoSLTm7oG20tum29+gk0wzzivOasn3loxfGUPT+jZXIUbWg==",
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.7.tgz",
+ "integrity": "sha512-Zf6hNtWhFyF4XP5OOsXkBTEx9JFPiN0TQx4wSe+Vqeuczewgk2vT4IZhF4gka55uelm052BD5BaHavNqUNZd+A==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@shikijs/core": "1.16.2",
- "@shikijs/vscode-textmate": "^9.2.0",
+ "@shikijs/core": "1.17.7",
+ "@shikijs/engine-javascript": "1.17.7",
+ "@shikijs/engine-oniguruma": "1.17.7",
+ "@shikijs/types": "1.17.7",
+ "@shikijs/vscode-textmate": "^9.2.2",
"@types/hast": "^3.0.4"
}
},
@@ -11978,6 +12933,31 @@
"ws": "~8.17.1"
}
},
+ "node_modules/socket.io-adapter/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-adapter/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/socket.io-adapter/node_modules/ws": {
"version": "8.17.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
@@ -12016,6 +12996,31 @@
"node": ">=10.0.0"
}
},
+ "node_modules/socket.io-client/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-client/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/socket.io-parser": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
@@ -12030,6 +13035,56 @@
"node": ">=10.0.0"
}
},
+ "node_modules/socket.io-parser/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-parser/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/socket.io/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/socks": {
"version": "2.8.3",
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
@@ -12060,6 +13115,31 @@
"node": ">= 14"
}
},
+ "node_modules/socks-proxy-agent/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socks-proxy-agent/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/source-map": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
@@ -12127,16 +13207,6 @@
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/stream-read-all": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz",
- "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/stream-throttle": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
@@ -12172,9 +13242,9 @@
}
},
"node_modules/streamx": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.0.tgz",
- "integrity": "sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==",
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz",
+ "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12286,6 +13356,21 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
+ "node_modules/stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/stringify-object": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
@@ -12564,6 +13649,24 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/stylelint/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/stylelint/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -12602,18 +13705,12 @@
"node": ">=8"
}
},
- "node_modules/stylelint/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==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
+ "node_modules/stylelint/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/stylelint/node_modules/slash": {
"version": "3.0.0",
@@ -12682,20 +13779,6 @@
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/stylelint/node_modules/write-file-atomic": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
- "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
"node_modules/stylus-lookup": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-6.0.0.tgz",
@@ -12802,69 +13885,15 @@
}
},
"node_modules/table-layout": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz",
- "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz",
+ "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@75lb/deep-merge": "^1.1.1",
"array-back": "^6.2.2",
- "command-line-args": "^5.2.1",
- "command-line-usage": "^7.0.0",
- "stream-read-all": "^3.0.1",
- "typical": "^7.1.1",
"wordwrapjs": "^5.1.0"
},
- "bin": {
- "table-layout": "bin/cli.js"
- },
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/table-layout/node_modules/command-line-args": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
- "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "array-back": "^3.1.0",
- "find-replace": "^3.0.0",
- "lodash.camelcase": "^4.3.0",
- "typical": "^4.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/table-layout/node_modules/command-line-args/node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/table-layout/node_modules/command-line-args/node_modules/typical": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
- "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/table-layout/node_modules/typical": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==",
- "dev": true,
- "license": "MIT",
"engines": {
"node": ">=12.17"
}
@@ -12983,9 +14012,9 @@
}
},
"node_modules/text-decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz",
- "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz",
+ "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -13062,6 +14091,17 @@
"tree-kill": "cli.js"
}
},
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/ts-api-utils": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
@@ -13086,9 +14126,9 @@
}
},
"node_modules/ts-graphviz": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-2.1.2.tgz",
- "integrity": "sha512-9GnOA3yiFaqZeHBEZXWa6kqc61FVhAhxQU5g3KLyGrhRr7OsDGRzs+1z35ctvD+hTTEhrBza6D41+qz+3qs7Zw==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-2.1.3.tgz",
+ "integrity": "sha512-QIgqE5Fdk8xeI/twUCzlNIVkxVt2S7pK+GMQHgi5xtu/zHDL3+LE4TsK2hOBCh4DxXvugGl0xLvWFA6T0iAVsA==",
"dev": true,
"funding": [
{
@@ -13102,10 +14142,10 @@
],
"license": "MIT",
"dependencies": {
- "@ts-graphviz/adapter": "^2.0.3",
- "@ts-graphviz/ast": "^2.0.3",
- "@ts-graphviz/common": "^2.1.2",
- "@ts-graphviz/core": "^2.0.3"
+ "@ts-graphviz/adapter": "^2.0.4",
+ "@ts-graphviz/ast": "^2.0.4",
+ "@ts-graphviz/common": "^2.1.3",
+ "@ts-graphviz/core": "^2.0.4"
},
"engines": {
"node": ">=18"
@@ -13288,9 +14328,9 @@
}
},
"node_modules/ua-parser-js": {
- "version": "1.0.38",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz",
- "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==",
+ "version": "1.0.39",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz",
+ "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==",
"dev": true,
"funding": [
{
@@ -13307,6 +14347,9 @@
}
],
"license": "MIT",
+ "bin": {
+ "ua-parser-js": "script/cli.js"
+ },
"engines": {
"node": "*"
}
@@ -13330,9 +14373,9 @@
}
},
"node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
"dev": true,
"license": "MIT"
},
@@ -13363,6 +14406,34 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/unist-util-visit": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
@@ -13467,16 +14538,6 @@
"browserslist": ">= 4.21.0"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
"node_modules/urlpattern-polyfill": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz",
@@ -13561,6 +14622,36 @@
"node": ">= 0.8"
}
},
+ "node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/vite": {
"version": "5.4.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.5.tgz",
@@ -13621,98 +14712,528 @@
}
}
},
- "node_modules/vscode-css-languageservice": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.3.0.tgz",
- "integrity": "sha512-BkQAMz4oVHjr0oOAz5PdeE72txlLQK7NIwzmclfr+b6fj6I8POwB+VoXvrZLTbWt9hWRgfvgiQRkh5JwrjPJ5A==",
+ "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "vscode-languageserver-textdocument": "^1.0.1",
- "vscode-languageserver-types": "3.16.0-next.2",
- "vscode-nls": "^4.1.2",
- "vscode-uri": "^2.1.2"
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/vscode-html-languageservice": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-3.1.0.tgz",
- "integrity": "sha512-QAyRHI98bbEIBCqTzZVA0VblGU40na0txggongw5ZgTj9UVsVk5XbLT16O9OTcbqBGSqn0oWmFDNjK/XGIDcqg==",
+ "node_modules/vite/node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "vscode-languageserver-textdocument": "^1.0.1",
- "vscode-languageserver-types": "3.16.0-next.2",
- "vscode-nls": "^4.1.2",
- "vscode-uri": "^2.1.2"
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/vscode-languageserver-textdocument": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz",
- "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vscode-languageserver-types": {
- "version": "3.16.0-next.2",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz",
- "integrity": "sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vscode-nls": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.2.tgz",
- "integrity": "sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/vscode-uri": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz",
- "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/walkdir": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz",
- "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==",
+ "node_modules/vite/node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=6.0.0"
+ "node": ">=12"
}
},
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "node_modules/vite/node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "defaults": "^1.0.3"
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/web-component-analyzer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/web-component-analyzer/-/web-component-analyzer-2.0.0.tgz",
- "integrity": "sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ==",
+ "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
"license": "MIT",
- "dependencies": {
- "fast-glob": "^3.2.2",
- "ts-simple-type": "2.0.0-next.0",
- "typescript": "~5.2.0",
- "yargs": "^17.7.2"
- },
- "bin": {
- "wca": "cli.js",
- "web-component-analyzer": "cli.js"
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/web-component-analyzer/node_modules/typescript": {
+ "node_modules/vite/node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/vscode-css-languageservice": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.3.0.tgz",
+ "integrity": "sha512-BkQAMz4oVHjr0oOAz5PdeE72txlLQK7NIwzmclfr+b6fj6I8POwB+VoXvrZLTbWt9hWRgfvgiQRkh5JwrjPJ5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vscode-languageserver-textdocument": "^1.0.1",
+ "vscode-languageserver-types": "3.16.0-next.2",
+ "vscode-nls": "^4.1.2",
+ "vscode-uri": "^2.1.2"
+ }
+ },
+ "node_modules/vscode-html-languageservice": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-3.1.0.tgz",
+ "integrity": "sha512-QAyRHI98bbEIBCqTzZVA0VblGU40na0txggongw5ZgTj9UVsVk5XbLT16O9OTcbqBGSqn0oWmFDNjK/XGIDcqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vscode-languageserver-textdocument": "^1.0.1",
+ "vscode-languageserver-types": "3.16.0-next.2",
+ "vscode-nls": "^4.1.2",
+ "vscode-uri": "^2.1.2"
+ }
+ },
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-languageserver-types": {
+ "version": "3.16.0-next.2",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz",
+ "integrity": "sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-nls": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.2.tgz",
+ "integrity": "sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-uri": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz",
+ "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/walkdir": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz",
+ "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/web-component-analyzer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/web-component-analyzer/-/web-component-analyzer-2.0.0.tgz",
+ "integrity": "sha512-UEvwfpD+XQw99sLKiH5B1T4QwpwNyWJxp59cnlRwFfhUW6JsQpw5jMeMwi7580sNou8YL3kYoS7BWLm+yJ/jVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "^3.2.2",
+ "ts-simple-type": "2.0.0-next.0",
+ "typescript": "~5.2.0",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "wca": "cli.js",
+ "web-component-analyzer": "cli.js"
+ }
+ },
+ "node_modules/web-component-analyzer/node_modules/typescript": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
"integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
@@ -13726,6 +15247,16 @@
"node": ">=14.17"
}
},
+ "node_modules/web-streams-polyfill": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
@@ -13937,6 +15468,33 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/write-file-atomic/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==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/ws": {
"version": "7.5.10",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
@@ -13978,6 +15536,13 @@
"node": ">=10"
}
},
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/yaml": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz",
@@ -14082,6 +15647,17 @@
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
+ },
+ "node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
}
}
}
diff --git a/package.json b/package.json
index feb9e51f4..2fe8ad899 100644
--- a/package.json
+++ b/package.json
@@ -60,6 +60,7 @@
"@biomejs/biome": "1.9.1",
"@custom-elements-manifest/analyzer": "^0.10.3",
"@igniteui/material-icons-extended": "^3.0.2",
+ "@lit-labs/testing": "^0.2.4",
"@open-wc/testing": "^4.0.0",
"@storybook/addon-a11y": "^8.3.0",
"@storybook/addon-actions": "^8.3.0",
diff --git a/scripts/tsconfig.prod.json b/scripts/tsconfig.prod.json
index 597e1689a..d8252d9fa 100644
--- a/scripts/tsconfig.prod.json
+++ b/scripts/tsconfig.prod.json
@@ -1,6 +1,7 @@
{
"extends": "../tsconfig.json",
"exclude": [
+ "../**/*-auto-register.ts",
"../vite.config.ts",
"../**/*.spec.ts",
"../stories"
@@ -12,7 +13,5 @@
"declarationMap": false,
"removeComments": true
},
- "include": [
- "../**/*.ts"
- ]
+ "include": ["../**/*.ts"]
}
diff --git a/src/components/accordion/accordion-auto-register.ts b/src/components/accordion/accordion-auto-register.ts
new file mode 100644
index 000000000..c26d6f7cb
--- /dev/null
+++ b/src/components/accordion/accordion-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './accordion.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/accordion/accordion.ssr.spec.ts b/src/components/accordion/accordion.ssr.spec.ts
new file mode 100644
index 000000000..b214e277a
--- /dev/null
+++ b/src/components/accordion/accordion.ssr.spec.ts
@@ -0,0 +1,40 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcAccordionComponent from './accordion.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+
+ Expansion panel 1 title
+ Expansion panel 1 subtitle
+ Sample content
+
+
+ Expansion panel 2 title
+ Expansion panel 2 subtitle
+ Sample content
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-accordion`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./accordion-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/accordion/accordion.ts b/src/components/accordion/accordion.ts
index a80006158..493f21ebf 100644
--- a/src/components/accordion/accordion.ts
+++ b/src/components/accordion/accordion.ts
@@ -11,8 +11,10 @@ import {
shiftKey,
} from '../common/controllers/key-bindings.js';
import { registerComponent } from '../common/definitions/register.js';
+import { ssrAddEventListener } from '../common/util.js';
import { first, last } from '../common/util.js';
import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js';
+import type { IgcExpansionPanelComponentEventMap } from '../expansion-panel/expansion-panel.js';
import { styles } from './themes/accordion.base.css.js';
/**
@@ -52,7 +54,11 @@ export default class IgcAccordionComponent extends LitElement {
constructor() {
super();
- this.addEventListener('igcOpening', this.handlePanelOpening);
+ ssrAddEventListener(
+ this,
+ 'igcOpening',
+ this.handlePanelOpening
+ );
addKeybindings(this, {
skip: this.skipKeybinding,
@@ -111,15 +117,15 @@ export default class IgcAccordionComponent extends LitElement {
}
}
- private handlePanelOpening(event: Event) {
- const current = event.target as IgcExpansionPanelComponent;
-
- if (!(this.singleExpand && this.panels.includes(current))) {
+ private handlePanelOpening({
+ detail,
+ }: CustomEvent) {
+ if (!(this.singleExpand && this.panels.includes(detail))) {
return;
}
for (const panel of this.enabledPanels) {
- if (panel.open && panel !== current) {
+ if (panel.open && panel !== detail) {
this.closePanel(panel);
}
}
diff --git a/src/components/avatar/avatar-auto-register.ts b/src/components/avatar/avatar-auto-register.ts
new file mode 100644
index 000000000..9d7fb77bf
--- /dev/null
+++ b/src/components/avatar/avatar-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './avatar.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/avatar/avatar.ssr.spec.ts b/src/components/avatar/avatar.ssr.spec.ts
new file mode 100644
index 000000000..e544c7ed6
--- /dev/null
+++ b/src/components/avatar/avatar.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcAvatarComponent from './avatar.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-avatar`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./avatar-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/badge/badge-auto-register.ts b/src/components/badge/badge-auto-register.ts
new file mode 100644
index 000000000..47cccec37
--- /dev/null
+++ b/src/components/badge/badge-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './badge.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/badge/badge.ssr.spec.ts b/src/components/badge/badge.ssr.spec.ts
new file mode 100644
index 000000000..64e34e453
--- /dev/null
+++ b/src/components/badge/badge.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcBadgeComponent from './badge.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-badge`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./badge-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/banner/banner-auto-register.ts b/src/components/banner/banner-auto-register.ts
new file mode 100644
index 000000000..a2820d35c
--- /dev/null
+++ b/src/components/banner/banner-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './banner.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/banner/banner.ssr.spec.ts b/src/components/banner/banner.ssr.spec.ts
new file mode 100644
index 000000000..5aa6663c6
--- /dev/null
+++ b/src/components/banner/banner.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcBannerComponent from './banner.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`You are currently offline!`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-banner`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./banner-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/button-group/button-group-auto-register.ts b/src/components/button-group/button-group-auto-register.ts
new file mode 100644
index 000000000..342482271
--- /dev/null
+++ b/src/components/button-group/button-group-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './button-group.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/button-group/button-group.ssr.spec.ts b/src/components/button-group/button-group.ssr.spec.ts
new file mode 100644
index 000000000..f9bb5f948
--- /dev/null
+++ b/src/components/button-group/button-group.ssr.spec.ts
@@ -0,0 +1,33 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcButtonGroupComponent from './button-group.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ Left
+ Center
+ Right
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-button-group`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./button-group-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/button/button-auto-register.ts b/src/components/button/button-auto-register.ts
new file mode 100644
index 000000000..93f84a50f
--- /dev/null
+++ b/src/components/button/button-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './button.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/button/button.ssr.spec.ts b/src/components/button/button.ssr.spec.ts
new file mode 100644
index 000000000..fe48ef002
--- /dev/null
+++ b/src/components/button/button.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcButtonComponent from './button.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Click`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-button`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./button-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/button/icon-button-auto-register.ts b/src/components/button/icon-button-auto-register.ts
new file mode 100644
index 000000000..0bc3821f5
--- /dev/null
+++ b/src/components/button/icon-button-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './icon-button.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/button/icon-button.ssr.spec.ts b/src/components/button/icon-button.ssr.spec.ts
new file mode 100644
index 000000000..9e0253d6c
--- /dev/null
+++ b/src/components/button/icon-button.ssr.spec.ts
@@ -0,0 +1,29 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcIconButtonComponent from './icon-button.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+ Click
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-icon-button`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./icon-button-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/calendar/calendar-auto-register.ts b/src/components/calendar/calendar-auto-register.ts
new file mode 100644
index 000000000..e47f49043
--- /dev/null
+++ b/src/components/calendar/calendar-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './calendar.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/calendar/calendar.ssr.spec.ts b/src/components/calendar/calendar.ssr.spec.ts
new file mode 100644
index 000000000..9c39aba21
--- /dev/null
+++ b/src/components/calendar/calendar.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcCalendarComponent from './calendar.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-calendar`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./calendar-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/calendar/days-view/days-view.ts b/src/components/calendar/days-view/days-view.ts
index 6a59fabee..3eeee917e 100644
--- a/src/components/calendar/days-view/days-view.ts
+++ b/src/components/calendar/days-view/days-view.ts
@@ -11,7 +11,14 @@ import { IgcCalendarResourceStringEN } from '../../common/i18n/calendar.resource
import { createDateTimeFormatters } from '../../common/localization/intl-formatters.js';
import type { Constructor } from '../../common/mixins/constructor.js';
import { EventEmitterMixin } from '../../common/mixins/event-emitter.js';
-import { chunk, first, last, partNameMap, take } from '../../common/util.js';
+import {
+ chunk,
+ first,
+ last,
+ partNameMap,
+ ssrAddEventListener,
+ take,
+} from '../../common/util.js';
import { IgcCalendarBaseComponent } from '../base.js';
import {
areSameMonth,
@@ -137,7 +144,7 @@ export default class IgcDaysViewComponent extends EventEmitterMixin<
bindingDefaults: { preventDefault: true },
}).setActivateHandler(this.handleInteraction);
- this.addEventListener('click', this.handleInteraction);
+ ssrAddEventListener(this, 'click', this.handleInteraction);
}
public override connectedCallback() {
diff --git a/src/components/card/card-auto-register.ts b/src/components/card/card-auto-register.ts
new file mode 100644
index 000000000..ab9400031
--- /dev/null
+++ b/src/components/card/card-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './card.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/card/card.ssr.spec.ts b/src/components/card/card.ssr.spec.ts
new file mode 100644
index 000000000..02496951f
--- /dev/null
+++ b/src/components/card/card.ssr.spec.ts
@@ -0,0 +1,46 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcCardComponent from './card.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+
+ Title
+ Subtitle
+
+
+
+
+
+
+
+ Some content
+
+
+
+
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-card`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./card-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/checkbox/checkbox-auto-register.ts b/src/components/checkbox/checkbox-auto-register.ts
new file mode 100644
index 000000000..caaee8053
--- /dev/null
+++ b/src/components/checkbox/checkbox-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './checkbox.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/checkbox/checkbox.ssr.spec.ts b/src/components/checkbox/checkbox.ssr.spec.ts
new file mode 100644
index 000000000..5aecabfd2
--- /dev/null
+++ b/src/components/checkbox/checkbox.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcCheckboxComponent from './checkbox.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Label`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-checkbox`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./checkbox-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/checkbox/switch-auto-register.ts b/src/components/checkbox/switch-auto-register.ts
new file mode 100644
index 000000000..14f45dc5c
--- /dev/null
+++ b/src/components/checkbox/switch-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './switch.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/checkbox/switch.ssr.spec.ts b/src/components/checkbox/switch.ssr.spec.ts
new file mode 100644
index 000000000..eb884dc49
--- /dev/null
+++ b/src/components/checkbox/switch.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcSwitchComponent from './switch.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Label`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-switch`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./switch-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/chip/chip-auto-register.ts b/src/components/chip/chip-auto-register.ts
new file mode 100644
index 000000000..9b414707d
--- /dev/null
+++ b/src/components/chip/chip-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './chip.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/chip/chip.ssr.spec.ts b/src/components/chip/chip.ssr.spec.ts
new file mode 100644
index 000000000..873c5dc07
--- /dev/null
+++ b/src/components/chip/chip.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcChipComponent from './chip.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Chip`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-chip`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./chip-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/combo/combo-auto-register.ts b/src/components/combo/combo-auto-register.ts
new file mode 100644
index 000000000..65dcc754f
--- /dev/null
+++ b/src/components/combo/combo-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './combo.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/combo/combo.ssr.spec.ts b/src/components/combo/combo.ssr.spec.ts
new file mode 100644
index 000000000..8ae9c64ca
--- /dev/null
+++ b/src/components/combo/combo.ssr.spec.ts
@@ -0,0 +1,33 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcComboComponent from './combo.js';
+
+afterEach(() => cleanupFixtures());
+
+const data = [
+ { id: 1, value: 1 },
+ { id: 2, value: 2 },
+];
+const template = html`
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-combo`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./combo-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/combo/combo.ts b/src/components/combo/combo.ts
index ce5a5d7fb..bb4ca42bd 100644
--- a/src/components/combo/combo.ts
+++ b/src/components/combo/combo.ts
@@ -17,7 +17,7 @@ import { registerComponent } from '../common/definitions/register.js';
import type { Constructor } from '../common/mixins/constructor.js';
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';
-import { partNameMap } from '../common/util.js';
+import { partNameMap, ssrAddEventListener } from '../common/util.js';
import IgcIconComponent from '../icon/icon.js';
import IgcInputComponent from '../input/input.js';
import IgcPopoverComponent from '../popover/popover.js';
@@ -355,7 +355,7 @@ export default class IgcComboComponent<
constructor() {
super();
- this.addEventListener('blur', () => {
+ ssrAddEventListener(this, 'blur', () => {
const { selected } = this.selectionController;
if (selected.size === 0) {
@@ -366,7 +366,8 @@ export default class IgcComboComponent<
this.invalid = !this.checkValidity();
});
- this.addEventListener(
+ ssrAddEventListener(
+ this,
'keydown',
this.navigationController.navigateHost.bind(this.navigationController)
);
diff --git a/src/components/common/controllers/mutation-observer.ts b/src/components/common/controllers/mutation-observer.ts
index ed48a52af..5f0a9145c 100644
--- a/src/components/common/controllers/mutation-observer.ts
+++ b/src/components/common/controllers/mutation-observer.ts
@@ -1,4 +1,8 @@
-import type { ReactiveController, ReactiveControllerHost } from 'lit';
+import {
+ type ReactiveController,
+ type ReactiveControllerHost,
+ isServer,
+} from 'lit';
import { isElement } from '../util.js';
@@ -62,7 +66,7 @@ function mutationFilter(nodes: T[], filter?: MutationControllerFilter) {
class MutationController implements ReactiveController {
private _host: ReactiveControllerHost & Element;
- private _observer: MutationObserver;
+ private _observer!: MutationObserver;
private _target: Element;
private _config: MutationObserverInit;
private _callback: MutationControllerCallback;
@@ -78,21 +82,23 @@ class MutationController implements ReactiveController {
this._target = options.target ?? this._host;
this._filter = options.filter ?? [];
- this._observer = new MutationObserver((records) => {
- this.disconnect();
- this._callback.call(this._host, this._process(records));
- this.observe();
- });
+ if (!isServer) {
+ this._observer = new MutationObserver((records) => {
+ this.disconnect();
+ this._callback.call(this._host, this._process(records));
+ this.observe();
+ });
+ }
host.addController(this);
}
public hostConnected() {
- this.observe();
+ this?.observe();
}
public hostDisconnected() {
- this.disconnect();
+ this?.disconnect();
}
private _process(records: MutationRecord[]): MutationControllerParams {
diff --git a/src/components/common/controllers/root-click.ts b/src/components/common/controllers/root-click.ts
index 14a12b14f..6f1d802aa 100644
--- a/src/components/common/controllers/root-click.ts
+++ b/src/components/common/controllers/root-click.ts
@@ -1,4 +1,8 @@
-import type { ReactiveController, ReactiveControllerHost } from 'lit';
+import {
+ type ReactiveController,
+ type ReactiveControllerHost,
+ isServer,
+} from 'lit';
import { findElementFromEventPath } from '../util.js';
type RootClickControllerConfig = {
@@ -22,13 +26,15 @@ export class RootClickController implements ReactiveController {
}
private addEventListeners() {
- if (!this.host.keepOpenOnOutsideClick) {
+ if (!this.host.keepOpenOnOutsideClick && !isServer) {
document.addEventListener('click', this, { capture: true });
}
}
private removeEventListeners() {
- document.removeEventListener('click', this, { capture: true });
+ if (!isServer) {
+ document.removeEventListener('click', this, { capture: true });
+ }
}
private configureListeners() {
diff --git a/src/components/common/mixins/form-associated.ts b/src/components/common/mixins/form-associated.ts
index 5d9ac6cc9..9c07595c9 100644
--- a/src/components/common/mixins/form-associated.ts
+++ b/src/components/common/mixins/form-associated.ts
@@ -1,4 +1,4 @@
-import type { LitElement } from 'lit';
+import { type LitElement, isServer } from 'lit';
import { property } from 'lit/decorators.js';
import type { Validator } from '../validators.js';
@@ -216,7 +216,9 @@ export function FormAssociatedMixin>(
constructor(...args: any[]) {
super(args);
this.__internals = this.attachInternals();
- this.addEventListener('invalid', this.handleInvalid);
+ if (!isServer) {
+ this.addEventListener('invalid', this.handleInvalid);
+ }
}
public override connectedCallback(): void {
diff --git a/src/components/common/util.ts b/src/components/common/util.ts
index a6a518c23..0da0c6c90 100644
--- a/src/components/common/util.ts
+++ b/src/components/common/util.ts
@@ -1,3 +1,5 @@
+import { isServer } from 'lit';
+
export interface PartNameInfo {
readonly [name: string]: string | boolean | number;
}
@@ -67,7 +69,7 @@ export function createCounter() {
* Returns whether an element has a Left-to-Right directionality.
*/
export function isLTR(element: HTMLElement) {
- return element.matches(':dir(ltr)');
+ return isServer ? true : element.matches(':dir(ltr)');
}
/**
@@ -162,7 +164,9 @@ export function* iterNodes(
}
export function getElementByIdFromRoot(root: HTMLElement, id: string) {
- return (root.getRootNode() as Document | ShadowRoot).getElementById(id);
+ return isServer
+ ? null
+ : (root.getRootNode() as Document | ShadowRoot).getElementById(id);
}
export function isElement(node: unknown): node is Element {
@@ -256,3 +260,30 @@ export function* chunk(arr: T[], size: number) {
yield arr.slice(i, i + size);
}
}
+
+/// REVIEW: Simplify the types? Maybe move the whole thing as a separate host controller?
+
+type EventKey = T extends keyof U
+ ? T
+ : T extends string
+ ? T
+ : never;
+
+/**
+ * Skips adding event listeners in SSR environments.
+ */
+export function ssrAddEventListener<
+ EventMap = HTMLElementEventMap,
+ K = EventKey,
+>(
+ element: Element,
+ type: K extends keyof HTMLElementEventMap | string ? K : string,
+ handler: (event: K extends keyof EventMap ? EventMap[K] : Event) => unknown
+) {
+ if (!isServer) {
+ element.addEventListener(
+ type,
+ handler as EventListenerOrEventListenerObject
+ );
+ }
+}
diff --git a/src/components/common/utils.spec.ts b/src/components/common/utils.spec.ts
index 04038da07..c6de63ccc 100644
--- a/src/components/common/utils.spec.ts
+++ b/src/components/common/utils.spec.ts
@@ -1,5 +1,5 @@
import { expect, fixture, html } from '@open-wc/testing';
-import type { TemplateResult } from 'lit';
+import type { LitElement, TemplateResult } from 'lit';
import { parseKeys } from './controllers/key-bindings.js';
import type { FormAssociatedElementInterface } from './mixins/form-associated.js';
@@ -241,3 +241,14 @@ export function scrolledIntoView(el: HTMLElement, view: HTMLElement) {
export function isFocused(element?: Element) {
return element ? element.matches(':focus') : false;
}
+
+export function isSsrRendered(element: LitElement) {
+ expect(element).to.exist;
+ expect(element.shadowRoot).to.exist;
+}
+
+export function isSsrStyled(element: LitElement) {
+ expect(
+ getComputedStyle(element).getPropertyValue('--is-large').startsWith('clamp')
+ );
+}
diff --git a/src/components/date-picker/date-picker-auto-register.ts b/src/components/date-picker/date-picker-auto-register.ts
new file mode 100644
index 000000000..414949602
--- /dev/null
+++ b/src/components/date-picker/date-picker-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './date-picker.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/date-picker/date-picker.ssr.spec.ts b/src/components/date-picker/date-picker.ssr.spec.ts
new file mode 100644
index 000000000..a41e2f5b0
--- /dev/null
+++ b/src/components/date-picker/date-picker.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcDatePickerComponent from './date-picker.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-date-picker`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./date-picker-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/date-picker/date-picker.ts b/src/components/date-picker/date-picker.ts
index ed58207ea..b86cf71aa 100644
--- a/src/components/date-picker/date-picker.ts
+++ b/src/components/date-picker/date-picker.ts
@@ -28,7 +28,11 @@ import { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js';
import type { AbstractConstructor } from '../common/mixins/constructor.js';
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';
-import { createCounter, findElementFromEventPath } from '../common/util.js';
+import {
+ createCounter,
+ findElementFromEventPath,
+ ssrAddEventListener,
+} from '../common/util.js';
import IgcDateTimeInputComponent from '../date-time-input/date-time-input.js';
import type { DatePart } from '../date-time-input/date-util.js';
import IgcDialogComponent from '../dialog/dialog.js';
@@ -421,8 +425,8 @@ export default class IgcDatePickerComponent extends FormAssociatedRequiredMixin(
constructor() {
super();
- this.addEventListener('focusin', this.handleFocusIn);
- this.addEventListener('focusout', this.handleFocusOut);
+ ssrAddEventListener(this, 'focusin', this.handleFocusIn);
+ ssrAddEventListener(this, 'focusout', this.handleFocusOut);
this._rootClickController.update({ hideCallback: this.handleClosing });
diff --git a/src/components/date-time-input/date-time-input-auto-register.ts b/src/components/date-time-input/date-time-input-auto-register.ts
new file mode 100644
index 000000000..dd5e3a341
--- /dev/null
+++ b/src/components/date-time-input/date-time-input-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './date-time-input.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/date-time-input/date-time-input.ssr.spec.ts b/src/components/date-time-input/date-time-input.ssr.spec.ts
new file mode 100644
index 000000000..97aeb9c97
--- /dev/null
+++ b/src/components/date-time-input/date-time-input.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcDateTimeInputComponent from './date-time-input.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-date-time-input`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./date-time-input-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/dialog/dialog-auto-register.ts b/src/components/dialog/dialog-auto-register.ts
new file mode 100644
index 000000000..1618c672a
--- /dev/null
+++ b/src/components/dialog/dialog-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './dialog.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/dialog/dialog.ssr.spec.ts b/src/components/dialog/dialog.ssr.spec.ts
new file mode 100644
index 000000000..5a9f80eb5
--- /dev/null
+++ b/src/components/dialog/dialog.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcDialogComponent from './dialog.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Dialog`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-dialog`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./dialog-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/divider/divider-auto-register.ts b/src/components/divider/divider-auto-register.ts
new file mode 100644
index 000000000..75e6ade6b
--- /dev/null
+++ b/src/components/divider/divider-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './divider.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/divider/divider.ssr.spec.ts b/src/components/divider/divider.ssr.spec.ts
new file mode 100644
index 000000000..2e6bb74c2
--- /dev/null
+++ b/src/components/divider/divider.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcDividerComponent from './divider.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-divider`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./divider-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/dropdown/dropdown-auto-register.ts b/src/components/dropdown/dropdown-auto-register.ts
new file mode 100644
index 000000000..1e3ef115a
--- /dev/null
+++ b/src/components/dropdown/dropdown-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './dropdown.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/dropdown/dropdown.ssr.spec.ts b/src/components/dropdown/dropdown.ssr.spec.ts
new file mode 100644
index 000000000..8ff6c171d
--- /dev/null
+++ b/src/components/dropdown/dropdown.ssr.spec.ts
@@ -0,0 +1,36 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcDropdownComponent from './dropdown.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+
+ Header
+
+ 1
+ 2
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-dropdown`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./dropdown-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/expansion-panel/expansion-panel-auto-register.ts b/src/components/expansion-panel/expansion-panel-auto-register.ts
new file mode 100644
index 000000000..600c38f06
--- /dev/null
+++ b/src/components/expansion-panel/expansion-panel-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './expansion-panel.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/expansion-panel/expansion-panel.ssr.spec.ts b/src/components/expansion-panel/expansion-panel.ssr.spec.ts
new file mode 100644
index 000000000..c940edd8c
--- /dev/null
+++ b/src/components/expansion-panel/expansion-panel.ssr.spec.ts
@@ -0,0 +1,33 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcExpansionPanelComponent from './expansion-panel.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ Title
+ Subtitle
+ Content
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-expansion-panel`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./expansion-panel-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/focus-trap/focus-trap.ts b/src/components/focus-trap/focus-trap.ts
index 28478adef..00fb8a98e 100644
--- a/src/components/focus-trap/focus-trap.ts
+++ b/src/components/focus-trap/focus-trap.ts
@@ -2,7 +2,7 @@ import { LitElement, css, html, nothing } from 'lit';
import { property, state } from 'lit/decorators.js';
import { registerComponent } from '../common/definitions/register.js';
-import { isDefined } from '../common/util.js';
+import { isDefined, ssrAddEventListener } from '../common/util.js';
/* blazorSuppress */
/**
@@ -49,8 +49,8 @@ export default class IgcFocusTrapComponent extends LitElement {
constructor() {
super();
- this.addEventListener('focusin', this.onFocusIn);
- this.addEventListener('focusout', this.onFocusOut);
+ ssrAddEventListener(this, 'focusin', this.onFocusIn);
+ ssrAddEventListener(this, 'focusout', this.onFocusOut);
}
private onFocusIn() {
diff --git a/src/components/icon/icon-auto-register.ts b/src/components/icon/icon-auto-register.ts
new file mode 100644
index 000000000..b3d357dc2
--- /dev/null
+++ b/src/components/icon/icon-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './icon.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/icon/icon.ssr.spec.ts b/src/components/icon/icon.ssr.spec.ts
new file mode 100644
index 000000000..b60553e7b
--- /dev/null
+++ b/src/components/icon/icon.ssr.spec.ts
@@ -0,0 +1,30 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcIconComponent from './icon.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-icon`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./icon-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/icon/icon.ts b/src/components/icon/icon.ts
index f93ced7ed..977c86b85 100644
--- a/src/components/icon/icon.ts
+++ b/src/components/icon/icon.ts
@@ -62,13 +62,23 @@ export default class IgcIconComponent extends LitElement {
@property({ type: Boolean, reflect: true })
public mirrored = false;
+ @watch('name', { waitUntilFirstUpdate: true })
+ @watch('collection', { waitUntilFirstUpdate: true })
+ protected iconChanged(prev: string, curr: string) {
+ if (prev !== curr) {
+ this.getIcon();
+ }
+ }
+
constructor() {
super();
+
this.__internals = this.attachInternals();
this.__internals.role = 'img';
+ }
- getThemeController(this)!.onThemeChanged = (theme) =>
- getIconRegistry().setRefsByTheme(theme);
+ protected override firstUpdated() {
+ this._setInitialReferencesByTheme();
}
public override connectedCallback() {
@@ -81,12 +91,13 @@ export default class IgcIconComponent extends LitElement {
super.disconnectedCallback();
}
- @watch('name')
- @watch('collection')
- protected iconChanged(prev: string, curr: string) {
- if (prev !== curr) {
- this.getIcon();
- }
+ private _setInitialReferencesByTheme() {
+ const registry = getIconRegistry();
+ const controller = getThemeController(this);
+
+ registry.setRefsByTheme(controller?.theme ?? 'bootstrap');
+ controller!.onThemeChanged = (theme) => registry.setRefsByTheme(theme);
+ this.getIcon();
}
private iconLoaded = (name: string, collection: string) => {
diff --git a/src/components/icon/registry/parser.ts b/src/components/icon/registry/parser.ts
index bff57b181..06ba15cd2 100644
--- a/src/components/icon/registry/parser.ts
+++ b/src/components/icon/registry/parser.ts
@@ -1,11 +1,14 @@
+import { isServer } from 'lit';
import type { SvgIcon } from './types.js';
/* blazorSuppress */
export class SvgIconParser {
- private _parser: DOMParser;
+ private _parser!: DOMParser;
constructor() {
- this._parser = new DOMParser();
+ if (!isServer) {
+ this._parser = new DOMParser();
+ }
}
public parse(svgString: string): SvgIcon {
diff --git a/src/components/input/input-auto-register.ts b/src/components/input/input-auto-register.ts
new file mode 100644
index 000000000..886a26305
--- /dev/null
+++ b/src/components/input/input-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './input.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/input/input.ssr.spec.ts b/src/components/input/input.ssr.spec.ts
new file mode 100644
index 000000000..5c1f36f3a
--- /dev/null
+++ b/src/components/input/input.ssr.spec.ts
@@ -0,0 +1,28 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcInputComponent from './input.js';
+
+afterEach(() => cleanupFixtures());
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-input`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(
+ html``,
+ {
+ modules: ['./input-auto-register.js'],
+ }
+ );
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/list/list-auto-register.ts b/src/components/list/list-auto-register.ts
new file mode 100644
index 000000000..488fd6511
--- /dev/null
+++ b/src/components/list/list-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './list.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/list/list.ssr.spec.ts b/src/components/list/list.ssr.spec.ts
new file mode 100644
index 000000000..c799af694
--- /dev/null
+++ b/src/components/list/list.ssr.spec.ts
@@ -0,0 +1,33 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcListComponent from './list.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ Header
+ 1
+ 2
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-list`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./list-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/mask-input/mask-input-auto-register.ts b/src/components/mask-input/mask-input-auto-register.ts
new file mode 100644
index 000000000..5171b1dc9
--- /dev/null
+++ b/src/components/mask-input/mask-input-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './mask-input.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/mask-input/mask-input.ssr.spec.ts b/src/components/mask-input/mask-input.ssr.spec.ts
new file mode 100644
index 000000000..355dd209d
--- /dev/null
+++ b/src/components/mask-input/mask-input.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcMaskInputComponent from './mask-input.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-mask-input`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./mask-input-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/nav-drawer/nav-drawer-auto-register.ts b/src/components/nav-drawer/nav-drawer-auto-register.ts
new file mode 100644
index 000000000..e85342c64
--- /dev/null
+++ b/src/components/nav-drawer/nav-drawer-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './nav-drawer.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/nav-drawer/nav-drawer.ssr.spec.ts b/src/components/nav-drawer/nav-drawer.ssr.spec.ts
new file mode 100644
index 000000000..4d1f48528
--- /dev/null
+++ b/src/components/nav-drawer/nav-drawer.ssr.spec.ts
@@ -0,0 +1,33 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcNavDrawerComponent from './nav-drawer.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ Header
+ 1
+ 2
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-nav-drawer`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./nav-drawer-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/navbar/navbar-auto-register.ts b/src/components/navbar/navbar-auto-register.ts
new file mode 100644
index 000000000..cfe515b2c
--- /dev/null
+++ b/src/components/navbar/navbar-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './navbar.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/navbar/navbar.ssr.spec.ts b/src/components/navbar/navbar.ssr.spec.ts
new file mode 100644
index 000000000..b8a7401ec
--- /dev/null
+++ b/src/components/navbar/navbar.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcNavbarComponent from './navbar.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Navigation`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-navbar`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./navbar-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/progress/circular-progress-auto-register.ts b/src/components/progress/circular-progress-auto-register.ts
new file mode 100644
index 000000000..ddb1a27be
--- /dev/null
+++ b/src/components/progress/circular-progress-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './circular-progress.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/progress/circular-progress.ssr.spec.ts b/src/components/progress/circular-progress.ssr.spec.ts
new file mode 100644
index 000000000..2fd9402d6
--- /dev/null
+++ b/src/components/progress/circular-progress.ssr.spec.ts
@@ -0,0 +1,46 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcCircularProgressComponent from './circular-progress.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+
+
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-circular-gradient`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./circular-progress-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/progress/linear-progress-auto-register.ts b/src/components/progress/linear-progress-auto-register.ts
new file mode 100644
index 000000000..e2eea5690
--- /dev/null
+++ b/src/components/progress/linear-progress-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './linear-progress.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/progress/linear-progress.ssr.spec.ts b/src/components/progress/linear-progress.ssr.spec.ts
new file mode 100644
index 000000000..7a2892db6
--- /dev/null
+++ b/src/components/progress/linear-progress.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcLinearProgressComponent from './linear-progress.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-linear-progress`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./linear-progress-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/radio-group/radio-group-auto-register.ts b/src/components/radio-group/radio-group-auto-register.ts
new file mode 100644
index 000000000..3b3322dfd
--- /dev/null
+++ b/src/components/radio-group/radio-group-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './radio-group.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/radio-group/radio-group.ssr.spec.ts b/src/components/radio-group/radio-group.ssr.spec.ts
new file mode 100644
index 000000000..5440bb4d0
--- /dev/null
+++ b/src/components/radio-group/radio-group.ssr.spec.ts
@@ -0,0 +1,33 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcRadioGroupComponent from './radio-group.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ 1
+ 2
+ 3
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-radio-group`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./radio-group-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/radio/radio-auto-register.ts b/src/components/radio/radio-auto-register.ts
new file mode 100644
index 000000000..b90cbbb73
--- /dev/null
+++ b/src/components/radio/radio-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './radio.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/radio/radio.ssr.spec.ts b/src/components/radio/radio.ssr.spec.ts
new file mode 100644
index 000000000..f4e81a2fe
--- /dev/null
+++ b/src/components/radio/radio.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcRadioComponent from './radio.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-radio`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./radio-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/rating/rating-auto-register.ts b/src/components/rating/rating-auto-register.ts
new file mode 100644
index 000000000..825ffa7fb
--- /dev/null
+++ b/src/components/rating/rating-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './rating.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/rating/rating.ssr.spec.ts b/src/components/rating/rating.ssr.spec.ts
new file mode 100644
index 000000000..7df29d88d
--- /dev/null
+++ b/src/components/rating/rating.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcRatingComponent from './rating.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-rating`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./rating-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/ripple/ripple-auto-register.ts b/src/components/ripple/ripple-auto-register.ts
new file mode 100644
index 000000000..89150b031
--- /dev/null
+++ b/src/components/ripple/ripple-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './ripple.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/ripple/ripple.ssr.spec.ts b/src/components/ripple/ripple.ssr.spec.ts
new file mode 100644
index 000000000..e39699143
--- /dev/null
+++ b/src/components/ripple/ripple.ssr.spec.ts
@@ -0,0 +1,35 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcRippleComponent from './ripple.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ Click
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-ripple`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: [
+ './ripple-auto-register.js',
+ '../button/button-auto-register.js',
+ ],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/ripple/ripple.ts b/src/components/ripple/ripple.ts
index 6ddab9f02..680f01a10 100644
--- a/src/components/ripple/ripple.ts
+++ b/src/components/ripple/ripple.ts
@@ -1,6 +1,7 @@
import { LitElement, html } from 'lit';
import { registerComponent } from '../common/definitions/register.js';
+import { ssrAddEventListener } from '../common/util.js';
import { styles } from './ripple.material.css.js';
const rippleFrames: Keyframe[] = [
@@ -40,10 +41,10 @@ export default class IgcRippleComponent extends LitElement {
constructor() {
super();
- this.addEventListener('pointerdown', this.handler);
+ ssrAddEventListener(this, 'pointerdown', this.handler);
}
- private handler = ({ clientX, clientY }: PointerEvent) => {
+ private handler({ clientX, clientY }: PointerEvent) {
const element = getRippleElement();
const { radius, top, left } = this.getDimensions(clientX, clientY);
@@ -70,7 +71,7 @@ export default class IgcRippleComponent extends LitElement {
element
.animate(rippleFrames, rippleAnimation)
.finished.then(() => element.remove());
- };
+ }
private getDimensions(x: number, y: number) {
const rect = this.getBoundingClientRect();
diff --git a/src/components/select/select-auto-register.ts b/src/components/select/select-auto-register.ts
new file mode 100644
index 000000000..dee3490ab
--- /dev/null
+++ b/src/components/select/select-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './select.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/select/select.ssr.spec.ts b/src/components/select/select.ssr.spec.ts
new file mode 100644
index 000000000..1aca953de
--- /dev/null
+++ b/src/components/select/select.ssr.spec.ts
@@ -0,0 +1,35 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcSelectComponent from './select.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ Header
+
+ 1
+ 2
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-select`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./select-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/select/select.ts b/src/components/select/select.ts
index 4413ad7ab..757224120 100644
--- a/src/components/select/select.ts
+++ b/src/components/select/select.ts
@@ -37,7 +37,11 @@ import {
import type { AbstractConstructor } from '../common/mixins/constructor.js';
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';
-import { findElementFromEventPath, partNameMap } from '../common/util.js';
+import {
+ findElementFromEventPath,
+ partNameMap,
+ ssrAddEventListener,
+} from '../common/util.js';
import IgcIconComponent from '../icon/icon.js';
import IgcInputComponent from '../input/input.js';
import IgcPopoverComponent, { type IgcPlacement } from '../popover/popover.js';
@@ -291,9 +295,9 @@ export default class IgcSelectComponent extends FormAssociatedRequiredMixin(
.set(spaceBar, this.onSpaceBarKey)
.set(enterKey, this.onEnterKey);
- this.addEventListener('keydown', this.handleSearch);
- this.addEventListener('focusin', this.handleFocusIn);
- this.addEventListener('focusout', this.handleFocusOut);
+ ssrAddEventListener(this, 'keydown', this.handleSearch);
+ ssrAddEventListener(this, 'focusin', this.handleFocusIn);
+ ssrAddEventListener(this, 'focusout', this.handleFocusOut);
}
protected override createRenderRoot() {
diff --git a/src/components/slider/range-slider-auto-register.ts b/src/components/slider/range-slider-auto-register.ts
new file mode 100644
index 000000000..1cd96465f
--- /dev/null
+++ b/src/components/slider/range-slider-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './range-slider.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/slider/range-slider.ssr.spec.ts b/src/components/slider/range-slider.ssr.spec.ts
new file mode 100644
index 000000000..4a193c1cb
--- /dev/null
+++ b/src/components/slider/range-slider.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcRangeSliderComponent from './range-slider.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-range-slider`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./range-slider-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/slider/slider-auto-register.ts b/src/components/slider/slider-auto-register.ts
new file mode 100644
index 000000000..17dc7db7a
--- /dev/null
+++ b/src/components/slider/slider-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './slider.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/slider/slider-base.ts b/src/components/slider/slider-base.ts
index 621326307..35afd14e4 100644
--- a/src/components/slider/slider-base.ts
+++ b/src/components/slider/slider-base.ts
@@ -30,6 +30,7 @@ import {
formatString,
isDefined,
isLTR,
+ ssrAddEventListener,
} from '../common/util.js';
import { styles as shared } from './themes/shared/slider.common.css.js';
import { styles } from './themes/slider.base.css.js';
@@ -278,10 +279,10 @@ export class IgcSliderBaseComponent extends LitElement {
constructor() {
super();
- this.addEventListener('pointerdown', this.pointerDown);
- this.addEventListener('pointermove', this.pointerMove);
- this.addEventListener('lostpointercapture', this.lostPointerCapture);
- this.addEventListener('keyup', this.handleKeyUp);
+ ssrAddEventListener(this, 'pointerdown', this.pointerDown);
+ ssrAddEventListener(this, 'pointermove', this.pointerMove);
+ ssrAddEventListener(this, 'lostpointercapture', this.lostPointerCapture);
+ ssrAddEventListener(this, 'keyup', this.handleKeyUp);
addKeybindings(this, {
skip: () => this.disabled,
diff --git a/src/components/slider/slider.ssr.spec.ts b/src/components/slider/slider.ssr.spec.ts
new file mode 100644
index 000000000..49323ed06
--- /dev/null
+++ b/src/components/slider/slider.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcSliderComponent from './slider.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html``;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-slider`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./slider-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/snackbar/snackbar-auto-register.ts b/src/components/snackbar/snackbar-auto-register.ts
new file mode 100644
index 000000000..98f854501
--- /dev/null
+++ b/src/components/snackbar/snackbar-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './snackbar.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/snackbar/snackbar.ssr.spec.ts b/src/components/snackbar/snackbar.ssr.spec.ts
new file mode 100644
index 000000000..307c2fcd0
--- /dev/null
+++ b/src/components/snackbar/snackbar.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcSnackbarComponent from './snackbar.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Snackbar`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-snackbar`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./snackbar-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/stepper/stepper-auto-register.ts b/src/components/stepper/stepper-auto-register.ts
new file mode 100644
index 000000000..b0ed9262f
--- /dev/null
+++ b/src/components/stepper/stepper-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './stepper.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/stepper/stepper.ssr.spec.ts b/src/components/stepper/stepper.ssr.spec.ts
new file mode 100644
index 000000000..c1e41a365
--- /dev/null
+++ b/src/components/stepper/stepper.ssr.spec.ts
@@ -0,0 +1,38 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcStepperComponent from './stepper.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+
+ Step 1
+ Step 1 content
+
+
+ Step 2
+ Step 2 content
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-stepper`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./stepper-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/tabs/tabs-auto-register.ts b/src/components/tabs/tabs-auto-register.ts
new file mode 100644
index 000000000..12834dd88
--- /dev/null
+++ b/src/components/tabs/tabs-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './tabs.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/tabs/tabs.ssr.spec.ts b/src/components/tabs/tabs.ssr.spec.ts
new file mode 100644
index 000000000..268466914
--- /dev/null
+++ b/src/components/tabs/tabs.ssr.spec.ts
@@ -0,0 +1,36 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcTabsComponent from './tabs.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+ Tab 1
+ Tab 2
+ Tab 3
+ Content 1
+ Content 2
+ Content 3
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-tabs`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./tabs-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/textarea/textarea-auto-register.ts b/src/components/textarea/textarea-auto-register.ts
new file mode 100644
index 000000000..bab438eff
--- /dev/null
+++ b/src/components/textarea/textarea-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './textarea.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/textarea/textarea.ssr.spec.ts b/src/components/textarea/textarea.ssr.spec.ts
new file mode 100644
index 000000000..97f03c972
--- /dev/null
+++ b/src/components/textarea/textarea.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcTextareaComponent from './textarea.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Textarea content`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-textarea`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./textarea-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/textarea/textarea.ts b/src/components/textarea/textarea.ts
index 1789501c1..ddbe47cb6 100644
--- a/src/components/textarea/textarea.ts
+++ b/src/components/textarea/textarea.ts
@@ -15,7 +15,12 @@ import { registerComponent } from '../common/definitions/register.js';
import type { Constructor } from '../common/mixins/constructor.js';
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js';
-import { asNumber, createCounter, partNameMap } from '../common/util.js';
+import {
+ asNumber,
+ createCounter,
+ partNameMap,
+ ssrAddEventListener,
+} from '../common/util.js';
import type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js';
import { styles as shared } from './themes/shared/textarea.common.css.js';
import { styles } from './themes/textarea.base.css.js';
@@ -270,10 +275,10 @@ export default class IgcTextareaComponent extends FormAssociatedRequiredMixin(
constructor() {
super();
- this.addEventListener('focus', () => {
+ ssrAddEventListener(this, 'focus', () => {
this._dirty = true;
});
- this.addEventListener('blur', () => {
+ ssrAddEventListener(this, 'blur', () => {
this.updateValidity();
this.setInvalidState();
});
@@ -291,7 +296,7 @@ export default class IgcTextareaComponent extends FormAssociatedRequiredMixin(
}
public override disconnectedCallback(): void {
- this.observer.disconnect();
+ this.observer?.disconnect();
super.disconnectedCallback();
}
diff --git a/src/components/toast/toast-auto-register.ts b/src/components/toast/toast-auto-register.ts
new file mode 100644
index 000000000..bbde5b37f
--- /dev/null
+++ b/src/components/toast/toast-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './toast.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/toast/toast.ssr.spec.ts b/src/components/toast/toast.ssr.spec.ts
new file mode 100644
index 000000000..7075d3ce7
--- /dev/null
+++ b/src/components/toast/toast.ssr.spec.ts
@@ -0,0 +1,27 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcToastComponent from './toast.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`Snackbar`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-toast`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./toast-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/src/components/tree/tree-auto-register.ts b/src/components/tree/tree-auto-register.ts
new file mode 100644
index 000000000..0a7b18cf6
--- /dev/null
+++ b/src/components/tree/tree-auto-register.ts
@@ -0,0 +1,5 @@
+// NOTE: Self-registering import for SSR fixtures.
+import Component from './tree.js';
+Component.register();
+
+export default Component;
diff --git a/src/components/tree/tree.ssr.spec.ts b/src/components/tree/tree.ssr.spec.ts
new file mode 100644
index 000000000..89b4395d7
--- /dev/null
+++ b/src/components/tree/tree.ssr.spec.ts
@@ -0,0 +1,40 @@
+import {
+ cleanupFixtures,
+ csrFixture,
+ ssrHydratedFixture,
+ ssrNonHydratedFixture,
+} from '@lit-labs/testing/fixtures.js';
+
+import { html } from 'lit';
+import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js';
+import type IgcTreeComponent from './tree.js';
+
+afterEach(() => cleanupFixtures());
+
+const template = html`
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) {
+ describe(`[${fixture.name}] - igc-tree`, () => {
+ it('renders as expected', async () => {
+ const element = await fixture(template, {
+ modules: ['./tree-auto-register.js'],
+ });
+
+ isSsrRendered(element);
+ isSsrStyled(element);
+ });
+ });
+}
diff --git a/tsconfig.json b/tsconfig.json
index 1f41b4cb7..e37bdf301 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -24,7 +24,10 @@
"plugins": [
{
"name": "ts-lit-plugin",
- "strict": true
+ "strict": true,
+ "rules": {
+ "no-missing-import": "off"
+ }
}
],
"types": ["mocha"]
diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs
index d432bf4c1..1a1d50485 100644
--- a/web-test-runner.config.mjs
+++ b/web-test-runner.config.mjs
@@ -1,4 +1,5 @@
import { playwrightLauncher } from '@web/test-runner-playwright';
+import { litSsrPlugin } from '@lit-labs/testing/web-test-runner-ssr-plugin.js';
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
files: ['dist/**/*.spec.js'],
@@ -13,9 +14,16 @@ export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
},
coverageConfig: {
- exclude: ['node_modules/**/*', '**/themes/**'],
+ exclude: [
+ 'node_modules/**/*',
+ '**/themes/**',
+ '**/*auto-register.js',
+ '**/*.css.js',
+ ],
},
+ plugins: [litSsrPlugin()],
+
// See documentation for all available options
// https://modern-web.dev/docs/test-runner/cli-and-configuration/#configuration-file
});