diff --git a/lage.config.js b/lage.config.js index 5545a94..0a65d85 100644 --- a/lage.config.js +++ b/lage.config.js @@ -8,5 +8,9 @@ module.exports = { outputs: ["storybook-static/**"], dependsOn: ["^build"], }, + clean: { + cache: false, + dependsOn: [], + }, }, }; diff --git a/package-lock.json b/package-lock.json index dd6dd9e..ca3d733 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "workspaces": [ "packages/frameworks/*", "packages/renderers/*", + "packages/cem-fast-extended-plugin", "test" ], "devDependencies": { @@ -23,9 +24,6 @@ "lage": "^2.9.0", "nodemon": "^3.1.6", "typescript": "^5.6.2" - }, - "peerDependencies": { - "@types/react": ">=16" } }, "node_modules/@ampproject/remapping": { @@ -2237,6 +2235,113 @@ "node": ">=14.21.3" } }, + "node_modules/@custom-elements-manifest/analyzer": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@custom-elements-manifest/analyzer/-/analyzer-0.10.3.tgz", + "integrity": "sha512-e2Ax59vK9sNedmDlPqZS11L54iAlKSjOJuv5etpTy5SygLBW3GcUtocHZm8wO013L0griTPpgWB0tuV7/JXy5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@custom-elements-manifest/find-dependencies": "^0.0.5", + "@github/catalyst": "^1.6.0", + "@web/config-loader": "0.1.3", + "chokidar": "3.5.2", + "command-line-args": "5.1.2", + "comment-parser": "1.2.4", + "custom-elements-manifest": "1.0.0", + "debounce": "1.2.1", + "globby": "11.0.4", + "typescript": "~5.4.2" + }, + "bin": { + "cem": "cem.js", + "custom-elements-manifest": "cem.js" + } + }, + "node_modules/@custom-elements-manifest/analyzer/node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/@custom-elements-manifest/analyzer/node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@custom-elements-manifest/analyzer/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/@custom-elements-manifest/analyzer/node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@custom-elements-manifest/find-dependencies": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@custom-elements-manifest/find-dependencies/-/find-dependencies-0.0.5.tgz", + "integrity": "sha512-fKIMMZCDFSoL2ySUoz8knWgpV4jpb0lUXgLOvdZQMQFHxgxz1PqOJpUIypwvEVyKk3nEHRY4f10gNol02HjeCg==", + "dev": true, + "license": "ISC", + "dependencies": { + "es-module-lexer": "^0.9.3" + } + }, + "node_modules/@custom-elements-manifest/find-dependencies/node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", @@ -2645,6 +2750,13 @@ "@microsoft/fast-element": "^2.0.0-beta.26 || ^2.0.0" } }, + "node_modules/@github/catalyst": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@github/catalyst/-/catalyst-1.6.0.tgz", + "integrity": "sha512-u8A+DameixqpeyHzvnJWTGj+wfiskQOYHzSiJscCWVfMkIT3rxnbHMtGh3lMthaRY21nbUOK71WcsCnCrXhBJQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2777,6 +2889,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -2817,6 +2930,10 @@ "react": ">=16" } }, + "node_modules/@microsoft/cem-fast-extended-plugin": { + "resolved": "packages/cem-fast-extended-plugin", + "link": true + }, "node_modules/@microsoft/fast-element": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-2.0.0.tgz", @@ -2889,6 +3006,82 @@ "node": ">=14" } }, + "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", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", + "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.22.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.0.tgz", @@ -2896,6 +3089,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2910,6 +3104,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2924,6 +3119,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2938,6 +3134,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2952,6 +3149,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2966,6 +3164,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2980,6 +3179,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2994,6 +3194,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3008,6 +3209,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3022,6 +3224,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3036,6 +3239,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3050,6 +3254,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3064,6 +3269,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3078,6 +3284,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3092,6 +3299,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3106,6 +3314,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3367,6 +3576,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.3.2.tgz", "integrity": "sha512-mq6T2J8gDiIuO8+nLBzQkMRncDb+zLiBmRrudwSNum3cFLPLDV1Y4JSzsoG/SjlQz1feUEqTO9by6i7wxKh+Cw==", + "dev": true, "license": "MIT", "dependencies": { "@storybook/csf-plugin": "8.3.2", @@ -3406,6 +3616,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.3.2.tgz", "integrity": "sha512-+Jy/iI1DoXTyIYurTSVvuoIgsibpO2WeZo52I/eoNeAvD9HguxmiZ4sBek4f6850jM7TLNFnhhOS0/7GzucmHw==", + "dev": true, "license": "MIT", "dependencies": { "@storybook/core-webpack": "8.3.2", @@ -3453,6 +3664,7 @@ "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": "~6.19.2" @@ -3703,6 +3915,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.3.2.tgz", "integrity": "sha512-WOmtvnH7qZR6UaN3QsXRqj8xeztRDH5jms4f7+jnudB9xs+Fn7cEkns1SdMh0QK8BOt1bTCdoSwq2kFbszfgZA==", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "^22.0.0", @@ -3720,6 +3933,7 @@ "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": "~6.19.2" @@ -3738,6 +3952,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.2.tgz", "integrity": "sha512-9UvoBkYDLzf/0e2lQMPyBCJHrrEMxvhL7fraVX2c5OxwVUwgQnHlgNR3zxzw1Nr/AWyC5OKYlaE1eM10JVm2GA==", + "dev": true, "license": "MIT", "dependencies": { "unplugin": "^1.3.1" @@ -3878,6 +4093,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, "license": "MIT" }, "node_modules/@types/express": { @@ -3908,6 +4124,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz", "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", + "dev": true, "license": "MIT" }, "node_modules/@types/hast": { @@ -3924,6 +4141,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true, "license": "MIT" }, "node_modules/@types/http-errors": { @@ -3936,6 +4154,7 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, "license": "MIT" }, "node_modules/@types/lodash": { @@ -3985,12 +4204,14 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, "license": "MIT" }, "node_modules/@types/prop-types": { "version": "15.7.13", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, "license": "MIT" }, "node_modules/@types/qs": { @@ -4009,12 +4230,20 @@ "version": "18.3.8", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.8.tgz", "integrity": "sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q==", + "dev": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", @@ -4070,10 +4299,24 @@ "dev": true, "license": "ISC" }, + "node_modules/@web/config-loader": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.1.3.tgz", + "integrity": "sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", @@ -4084,24 +4327,28 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", @@ -4113,12 +4360,14 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", @@ -4131,6 +4380,7 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" @@ -4140,6 +4390,7 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" @@ -4149,12 +4400,14 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", @@ -4171,6 +4424,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", @@ -4184,6 +4438,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", @@ -4196,6 +4451,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", @@ -4210,6 +4466,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", @@ -4220,12 +4477,14 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, "license": "Apache-2.0" }, "node_modules/accepts": { @@ -4257,6 +4516,7 @@ "version": "1.9.5", "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^8" @@ -4283,6 +4543,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -4299,6 +4560,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, "license": "MIT", "dependencies": { "ajv": "^8.0.0" @@ -4316,6 +4578,7 @@ "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", @@ -4332,12 +4595,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, "license": "MIT" }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" @@ -4347,6 +4612,7 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, "engines": [ "node >= 0.8.0" ], @@ -4383,6 +4649,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -4392,12 +4659,32 @@ "node": ">= 8" } }, + "node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -4534,6 +4821,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4596,6 +4884,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, "license": "ISC" }, "node_modules/brace-expansion": { @@ -4687,6 +4976,19 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -4719,6 +5021,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -4728,6 +5031,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", @@ -4790,11 +5094,19 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, + "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", + "integrity": "sha512-bpv3VWanYc+HWy6nxqO2/zV51RJuQSCjOSWwmeHtGto/0oJ2WafBDDc6G2Qqgz0dIEGeKFLF1R16oLQc4rjwOw==", + "dev": true, + "license": "MIT" + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4827,6 +5139,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, "license": "MIT", "dependencies": { "anymatch": "~3.1.2", @@ -4860,6 +5173,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0" @@ -4878,12 +5192,14 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", + "dev": true, "license": "MIT" }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, "license": "MIT", "dependencies": { "source-map": "~0.6.0" @@ -4992,8 +5308,25 @@ "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, "license": "MIT" }, + "node_modules/command-line-args": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.2.tgz", + "integrity": "sha512-fytTsbndLbl+pPWtS0CxLV3BEWw9wJayB8NnU2cbQqVPsNdYezQeT+uIQv009m+GShnMNyuoBrRo8DTmuTfSCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.1.2", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -5003,6 +5336,16 @@ "node": ">=18" } }, + "node_modules/comment-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.2.4.tgz", + "integrity": "sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -5060,6 +5403,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true, "license": "MIT" }, "node_modules/content-disposition": { @@ -5121,6 +5465,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", @@ -5180,6 +5525,7 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", @@ -5215,6 +5561,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", @@ -5231,6 +5578,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">= 6" @@ -5243,6 +5591,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -5255,6 +5604,47 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/custom-elements-manifest": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/custom-elements-manifest/-/custom-elements-manifest-1.0.0.tgz", + "integrity": "sha512-j59k0ExGCKA8T6Mzaq+7axc+KVHwpEphEERU7VZ99260npu/p/9kd+Db+I3cGKxHkM5y6q5gnlXn00mzRQkX2A==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/custom-elements-manifest-inheritance": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/custom-elements-manifest-inheritance/-/custom-elements-manifest-inheritance-1.1.1.tgz", + "integrity": "sha512-Z/eYNKLDB68axdUQllSrSZftAMaLQijJRCx9XRgR/2xQq+zeJgWM0orbbxJQrxFvlxtmKnFZJDr/HL4332Clkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier": "^2.8.0" + } + }, + "node_modules/custom-elements-manifest-inheritance/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true, "license": "MIT" }, "node_modules/debug": { @@ -5324,24 +5714,11 @@ "node": ">=0.10.0" } }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5481,6 +5858,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, "license": "MIT", "dependencies": { "utila": "~0.4" @@ -5490,6 +5868,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", @@ -5504,6 +5883,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, "funding": [ { "type": "github", @@ -5516,6 +5896,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" @@ -5531,6 +5912,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", @@ -5545,6 +5927,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, "license": "MIT", "dependencies": { "no-case": "^3.0.4", @@ -5588,6 +5971,7 @@ "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -5601,6 +5985,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" @@ -5622,6 +6007,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -5652,6 +6038,7 @@ "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/esbuild": { @@ -5737,6 +6124,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -5763,6 +6151,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -5775,6 +6164,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -5784,11 +6174,19 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -5811,6 +6209,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.8.x" @@ -5906,6 +6305,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { @@ -5928,6 +6328,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, "license": "MIT" }, "node_modules/fast-storybook-test": { @@ -5938,6 +6339,7 @@ "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/fastq": { @@ -6007,6 +6409,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, "license": "MIT", "dependencies": { "commondir": "^1.0.1", @@ -6020,6 +6423,29 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-replace/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/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6086,6 +6512,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.7", @@ -6114,6 +6541,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -6184,6 +6612,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "dev": true, "license": "Unlicense" }, "node_modules/fs.realpath": { @@ -6196,6 +6625,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -6430,6 +6860,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, "license": "BSD-2-Clause" }, "node_modules/globals": { @@ -6607,6 +7038,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "license": "MIT", "bin": { "he": "bin/he" @@ -6629,6 +7061,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, "funding": [ { "type": "github", @@ -6645,6 +7078,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, "license": "MIT", "dependencies": { "camel-case": "^4.1.2", @@ -6666,6 +7100,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, "license": "MIT", "engines": { "node": ">= 12" @@ -6675,6 +7110,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dev": true, "license": "MIT", "dependencies": { "@types/html-minifier-terser": "^6.0.0", @@ -6707,6 +7143,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -6763,6 +7200,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" @@ -6811,6 +7249,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -6904,12 +7343,14 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -6918,6 +7359,22 @@ "node": ">=8" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -7014,6 +7471,13 @@ "node": ">=8" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7156,6 +7620,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -7236,12 +7701,14 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, "license": "MIT" }, "node_modules/json5": { @@ -7315,12 +7782,14 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, "license": "MIT" }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.11.5" @@ -7347,6 +7816,13 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -7386,6 +7862,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, "license": "MIT", "dependencies": { "tslib": "^2.0.3" @@ -7408,6 +7885,7 @@ "version": "0.30.11", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -7417,6 +7895,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "license": "MIT", "dependencies": { "semver": "^6.0.0" @@ -7432,6 +7911,7 @@ "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" @@ -7483,6 +7963,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, "license": "Unlicense", "dependencies": { "fs-monkey": "^1.0.4" @@ -7721,6 +8202,7 @@ "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, "funding": [ { "type": "github", @@ -7754,6 +8236,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, "license": "MIT", "dependencies": { "lower-case": "^2.0.2", @@ -7764,6 +8247,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true, "license": "MIT" }, "node_modules/node-dir": { @@ -7862,6 +8346,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7883,6 +8368,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" @@ -8204,6 +8690,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, "license": "MIT", "dependencies": { "dot-case": "^3.0.4", @@ -8214,6 +8701,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -8226,6 +8714,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", @@ -8253,6 +8742,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, "license": "MIT", "dependencies": { "no-case": "^3.0.4", @@ -8263,6 +8753,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, "license": "MIT" }, "node_modules/path-exists": { @@ -8330,6 +8821,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -8381,6 +8873,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "license": "MIT", "dependencies": { "find-up": "^4.0.0" @@ -8393,6 +8886,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "license": "MIT", "dependencies": { "locate-path": "^5.0.0", @@ -8406,6 +8900,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "license": "MIT", "dependencies": { "p-locate": "^4.1.0" @@ -8418,6 +8913,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "license": "MIT", "dependencies": { "p-try": "^2.0.0" @@ -8433,6 +8929,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "license": "MIT", "dependencies": { "p-limit": "^2.2.0" @@ -8478,6 +8975,7 @@ "version": "8.4.47", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -8506,6 +9004,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" @@ -8518,6 +9017,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", @@ -8535,6 +9035,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, "license": "ISC", "dependencies": { "postcss-selector-parser": "^6.0.4" @@ -8550,6 +9051,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" @@ -8565,6 +9067,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -8578,6 +9081,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, "license": "MIT" }, "node_modules/prettier": { @@ -8599,6 +9103,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dev": true, "license": "MIT", "dependencies": { "lodash": "^4.17.20", @@ -8651,6 +9156,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -8708,6 +9214,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" @@ -8830,6 +9337,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -8982,6 +9490,7 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.10" @@ -8991,6 +9500,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dev": true, "license": "MIT", "dependencies": { "css-select": "^4.1.3", @@ -9014,6 +9524,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -9040,6 +9551,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -9089,8 +9601,8 @@ "version": "4.22.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.0.tgz", "integrity": "sha512-W21MUIFPZ4+O2Je/EU+GP3iz7PH4pVPUXSbEZdatQnxo29+3rsUjgrJmzuAZU24z7yRAnFN6ukxeAhZh/c7hzg==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.5" }, @@ -9194,6 +9706,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", @@ -9272,6 +9785,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" @@ -9427,6 +9941,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -9608,6 +10123,7 @@ "version": "3.3.4", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 12.13.0" @@ -9624,6 +10140,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -9657,6 +10174,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -9718,6 +10236,7 @@ "version": "5.33.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.33.0.tgz", "integrity": "sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -9736,6 +10255,7 @@ "version": "5.3.10", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", @@ -9770,6 +10290,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, "license": "MIT" }, "node_modules/tiny-invariant": { @@ -9850,13 +10371,6 @@ "node": ">=6.10" } }, - "node_modules/ts-simple-type": { - "version": "2.0.0-next.0", - "resolved": "https://registry.npmjs.org/ts-simple-type/-/ts-simple-type-2.0.0-next.0.tgz", - "integrity": "sha512-A+hLX83gS+yH6DtzNAhzZbPfU+D9D8lHlTSd7GeoMRBjOt3GRylDqLTYbdmjA4biWvq2xSfpqfIDj2l0OA/BVg==", - "dev": true, - "license": "MIT" - }, "node_modules/tslib": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", @@ -9893,6 +10407,7 @@ "version": "5.6.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -9902,6 +10417,16 @@ "node": ">=14.17" } }, + "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/ufo": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", @@ -10040,6 +10565,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.14.1.tgz", "integrity": "sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==", + "dev": true, "license": "MIT", "dependencies": { "acorn": "^8.12.1", @@ -10091,6 +10617,7 @@ "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" @@ -10100,6 +10627,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, "license": "MIT", "dependencies": { "punycode": "^1.4.1", @@ -10113,6 +10641,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, "license": "MIT" }, "node_modules/util": { @@ -10138,6 +10667,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true, "license": "MIT" }, "node_modules/utils-merge": { @@ -10187,6 +10717,7 @@ "version": "5.4.6", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -10250,6 +10781,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10267,6 +10799,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10284,6 +10817,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10301,6 +10835,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10318,6 +10853,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10335,6 +10871,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10352,6 +10889,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10369,6 +10907,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10386,6 +10925,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10403,6 +10943,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10420,6 +10961,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10437,6 +10979,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10454,6 +10997,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10471,6 +11015,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10488,6 +11033,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10505,6 +11051,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10522,6 +11069,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10539,6 +11087,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10556,6 +11105,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10573,6 +11123,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10590,6 +11141,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10607,6 +11159,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10624,6 +11177,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10638,6 +11192,7 @@ "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", "peer": true, @@ -10683,6 +11238,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", @@ -10701,41 +11257,11 @@ "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==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/webpack": { "version": "5.94.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.5", @@ -10782,6 +11308,7 @@ "version": "6.1.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz", "integrity": "sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==", + "dev": true, "license": "MIT", "dependencies": { "colorette": "^2.0.10", @@ -10810,6 +11337,7 @@ "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", @@ -10826,6 +11354,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" @@ -10838,12 +11367,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, "license": "MIT" }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", @@ -10863,6 +11394,7 @@ "version": "2.26.1", "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz", "integrity": "sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==", + "dev": true, "license": "MIT", "dependencies": { "ansi-html-community": "0.0.8", @@ -10874,6 +11406,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, "license": "MIT", "engines": { "node": ">=10.13.0" @@ -10883,6 +11416,7 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, "license": "MIT" }, "node_modules/which": { @@ -11013,6 +11547,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, "license": "ISC", "engines": { "node": ">= 6" @@ -11069,16 +11604,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/cem-fast-extended-plugin": { + "name": "@microsoft/cem-fast-extended-plugin", + "version": "0.0.1", + "license": "MIT", + "devDependencies": { + "@custom-elements-manifest/analyzer": "^0.10.3", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-typescript": "^11.1.6", + "rollup": "^4.22.0" + } + }, + "packages/cem-plugin-fast-extended": { + "name": "@microsoft/cem-plugin-fast-extended", + "version": "0.0.1", + "extraneous": true, + "license": "MIT", + "devDependencies": { + "@custom-elements-manifest/analyzer": "^0.10.3", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-typescript": "^11.1.6", + "rollup": "^4.22.0" + } + }, "packages/frameworks/fast-components-vite": { "name": "@microsoft/storybook-fast-components-vite", "version": "0.0.1", "license": "MIT", - "dependencies": { - "@microsoft/storybook-fast-components": "^0.0.1", - "@storybook/builder-vite": "^8.3.0" - }, "devDependencies": { - "storybook": "^8.3.0" + "@microsoft/storybook-fast-components": "^0.0.1", + "@storybook/builder-vite": "^8.0.0", + "storybook": "^8.0.0" }, "engines": { "node": ">=20.0.0" @@ -11088,15 +11644,13 @@ "name": "@microsoft/storybook-fast-components-webpack5", "version": "0.0.1", "license": "MIT", - "dependencies": { + "devDependencies": { "@microsoft/storybook-fast-components": "^0.0.1", - "@storybook/builder-webpack5": "^8.3.0" + "@storybook/builder-webpack5": "^8.3.0", + "storybook": "^8.3.0" }, "engines": { "node": ">=20.0.0" - }, - "peerDependencies": { - "storybook": "^8.3.0" } }, "packages/renderers/fast-components": { @@ -11105,27 +11659,27 @@ "license": "MIT", "dependencies": { "@microsoft/fast-element": "^2.0.0", - "@storybook/cli": "^8.3.0", - "@storybook/components": "^8.3.0", - "@storybook/core": "^8.3.0", + "@storybook/cli": "^8.0.0", + "@storybook/components": "^8.0.0", + "@storybook/core": "^8.0.0", "@storybook/csf": "^0.1.11", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "^8.3.0", - "@storybook/preview-api": "^8.3.0", - "@storybook/theming": "^8.3.0", - "dedent": "^1.5.3", + "@storybook/manager-api": "^8.0.0", + "@storybook/preview-api": "^8.0.0", + "@storybook/theming": "^8.0.0", "prettier": "^3.3.3", - "tiny-invariant": "^1.3.1" + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.2.0" }, "devDependencies": { - "web-component-analyzer": "^2.0.0" + "@custom-elements-manifest/analyzer": "^0.10.3", + "storybook": "^8.0.0" }, "engines": { "node": ">=20.0.0" }, "peerDependencies": { - "@microsoft/fast-element": "^2.0.0", - "storybook": "^8.3.0" + "@microsoft/fast-element": "^2.0.0" }, "peerDependenciesMeta": { "@microsoft/fast-element": { @@ -11141,10 +11695,14 @@ "@fluentui/web-components": "^3.0.0-beta.64" }, "devDependencies": { + "@custom-elements-manifest/analyzer": "^0.10.3", + "@microsoft/cem-fast-extended-plugin": "^0.0.1", "@microsoft/storybook-fast-components": "^0.0.1", "@microsoft/storybook-fast-components-vite": "^0.0.1", "@storybook/addon-essentials": "^8.3.0", "@storybook/csf": "^0.1.11", + "cem-plugin-expanded-types": "^1.3.2", + "custom-elements-manifest-inheritance": "^1.1.1", "storybook": "^8.3.0" }, "peerDependencies": { diff --git a/package.json b/package.json index 2d6efb5..f46f228 100644 --- a/package.json +++ b/package.json @@ -20,20 +20,18 @@ "del-cli": "^5.1.0", "lage": "^2.9.0" }, - "peerDependencies": { - "@types/react": ">=16" - }, "workspaces": [ "packages/frameworks/*", "packages/renderers/*", + "packages/cem-fast-extended-plugin", "test" ], "scripts": { "build": "lage build", - "dev": "", + "dev": "concurrently \"npm:watch\" \"npm:storybook\"", "watch": "nodemon", - "clean": "del-cli ./packages/**/dist ./test/storybook-static", - "storybook": "npm run dev --workspace=test" + "clean": "npx lage clean && npx lage cache --clear", + "storybook": "npm run watch --workspace=test" }, "nodemonConfig": { "ignore": [ @@ -45,7 +43,8 @@ "watch": [ "packages/frameworks/fast-components-vite/src", "packages/frameworks/fast-components-webpack5/src", - "packages/renderers/fast-components/src" + "packages/renderers/fast-components/src", + "packages/cem-plugin-fast-extended/src" ], "ext": "ts,mts", "exec": "npm run build" diff --git a/packages/cem-fast-extended-plugin/package.json b/packages/cem-fast-extended-plugin/package.json new file mode 100644 index 0000000..5501919 --- /dev/null +++ b/packages/cem-fast-extended-plugin/package.json @@ -0,0 +1,51 @@ +{ + "name": "@microsoft/cem-fast-extended-plugin", + "author": "Microsoft", + "version": "0.0.1", + "description": "Custom Elements Manifest plugin for FAST Elements", + "keywords": [ + "custom-elements", + "cem analyzer", + "custom-elements-manifest", + "fast", + "fast-element", + "fast-components", + "web-components" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/microsofthackathons/fast-storybook.git", + "directory": "packages/cem-plugin-fast-extended" + }, + "license": "MIT", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./package.json": "./package.json" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "files": [ + "dist/**/*", + "README.md", + "*.d.ts", + "!src/**/*" + ], + "type": "module", + "devDependencies": { + "@custom-elements-manifest/analyzer": "^0.10.3", + "rollup": "^4.22.0", + "@rollup/plugin-typescript": "^11.1.6", + "@rollup/plugin-node-resolve": "^15.2.3" + }, + "scripts": { + "build": "npm run build:tsc && npm run build:rollup", + "build:tsc": "tsc -p tsconfig.build.json", + "build:rollup": "rollup -c", + "clean": "del-cli dist" + } +} \ No newline at end of file diff --git a/packages/cem-fast-extended-plugin/rollup.config.js b/packages/cem-fast-extended-plugin/rollup.config.js new file mode 100644 index 0000000..fb7e0bc --- /dev/null +++ b/packages/cem-fast-extended-plugin/rollup.config.js @@ -0,0 +1,19 @@ +import { nodeResolve } from "@rollup/plugin-node-resolve"; +import typescript from "@rollup/plugin-typescript"; + +export default [ + { + input: "src/index.ts", + output: [ + { file: "dist/index.cjs", format: "cjs", sourcemap: true }, + { file: "dist/index.mjs", sourcemap: true }, + ], + plugins: [ + nodeResolve(), + typescript({ + tsconfig: "./tsconfig.build.json", + sourceMap: true, + }), + ], + }, +]; diff --git a/packages/cem-fast-extended-plugin/src/index.ts b/packages/cem-fast-extended-plugin/src/index.ts new file mode 100644 index 0000000..07b453c --- /dev/null +++ b/packages/cem-fast-extended-plugin/src/index.ts @@ -0,0 +1,141 @@ +import type { Plugin } from "@custom-elements-manifest/analyzer"; +import { resolveModuleOrPackageSpecifier } from "./utils.js"; + +type Prefixes = { [key: string]: string }[]; +export function cemFASTAddDefinitions( + options: { prefixes: Prefixes } = { + prefixes: [], + }, +): Plugin { + const invalidChars = + // biome-ignore lint/suspicious/noMisleadingCharacterClass: "[\u200C-\u200D]" is a valid character class + /[^-._0-9a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\{u10000}-\u{EFFFF}]/gu; + + return { + name: "cem-plugin-fast-extended--add-definitions", + analyzePhase({ ts, node, moduleDoc, context }) { + if (!ts.isCallExpression(node)) { + return; + } + + const expression = node.expression; + + if (expression.getText() === "Object.freeze") { + const firstArgument = node.arguments[0]; + + if (!ts.isObjectLiteralExpression(firstArgument)) { + return; + } + const parent = node.parent; + if (!ts.isVariableDeclaration(parent)) { + return; + } + const properties = firstArgument.properties; + properties.forEach(n => { + if ( + ts.isPropertyAssignment(n) && + n.name.getText() === "prefix" + ) { + context.prefixes = [ + ...((context.prefixes as Prefixes) ?? []), + { + [`${parent.name?.getText()}.${n.name.getText()}`]: + n.initializer + .getText() + .replace(invalidChars, ""), + }, + ]; + } + }); + } + + if (expression.getLastToken()?.getText() === "compose") { + const elementClass = expression.getFirstToken()?.getText(); + if (elementClass) { + // The first argument of the "compose" call should be an object literal + // TODO: what if it's a reference to an object? + const firstArgument = node.arguments[0]; + if (ts.isObjectLiteralExpression(firstArgument)) { + const properties = firstArgument.properties; + const elementTagNameNode = properties.find( + n => + ts.isPropertyAssignment(n) && + n.name.getText() === "name", + ) as any; + + if (ts.isPropertyAssignment(elementTagNameNode)) { + // Find the "name" property in the object literal + const elementTag = + elementTagNameNode.initializer.getText(); + + const definitionDoc = { + kind: "custom-element-definition", + name: elementTag, + declaration: { + name: elementClass, + ...resolveModuleOrPackageSpecifier( + moduleDoc as any, + context as any, + elementClass, + ), + }, + }; + + moduleDoc.exports = [ + ...((moduleDoc.exports || []) as any), + definitionDoc, + ]; + } + } + } + } + }, + + packageLinkPhase({ context, customElementsManifest }) { + const prefixes: Prefixes = [ + ...(options.prefixes ?? []), + ...((context?.prefixes as Prefixes) ?? []), + ]; + if (!prefixes) { + return; + } + + for (const prefixObj of prefixes) { + Object.keys(prefixObj).forEach(key => { + customElementsManifest.modules?.forEach(_module => { + // Replace the exported custom element names with the prefixes + _module.exports + ?.filter( + ({ kind }) => + kind === "custom-element-definition", + ) + .forEach(_export => { + _export.name = _export.name + .replace( + new RegExp(`\`\\$\\{${key}\\}(.*)\``), + (_, p1) => `${prefixObj[key]}${p1}`, + ) + .replace(/['"]/g, ""); + }); + + // Replace the declaration members that have a `tagName` property with the prefixes + _module.declarations + ?.filter(({ kind }) => kind === "class") + .forEach((_declaration: any) => { + if (!_declaration.tagName) { + return; + } + + _declaration.tagName = ( + _declaration.tagName as string + ).replace( + new RegExp(`\`\\$\\{${key}\\}(.*)\``), + (_, p1) => `${prefixObj[key]}${p1}`, + ); + }); + }); + }); + } + }, + }; +} diff --git a/packages/cem-fast-extended-plugin/src/utils.ts b/packages/cem-fast-extended-plugin/src/utils.ts new file mode 100644 index 0000000..81310d8 --- /dev/null +++ b/packages/cem-fast-extended-plugin/src/utils.ts @@ -0,0 +1,81 @@ +import ts from "typescript"; + +/** + * GENERAL UTILITIES + */ + +export const has = (arr: string | any[]) => + Array.isArray(arr) && arr.length > 0; + +export function isBareModuleSpecifier(specifier: { + replace: (arg0: RegExp, arg1: string) => string[]; +}) { + return !!specifier?.replace(/'/g, "")[0].match(/[@a-zA-Z]/g); +} + +export const url = (path: any) => new URL("", `file:///${path}`)?.pathname; + +export function resolveModuleOrPackageSpecifier( + moduleDoc: { path: any }, + context: { imports: any[] }, + name: any, +) { + const foundImport = context?.imports?.find( + (_import: { name: any }) => _import.name === name, + ); + + /* item is imported from another file */ + if (foundImport) { + if (foundImport.isBareModuleSpecifier) { + /* import is from 3rd party package */ + return { package: foundImport.importPath }; + } + /* import is imported from a local module */ + return { + module: new URL(foundImport.importPath, `file:///${moduleDoc.path}`) + .pathname, + }; + } + /* item is in current module */ + return { module: moduleDoc.path }; +} + +export const toKebabCase = (str: string) => { + return str + .split("") + .map((letter: string, idx: number) => { + return letter.toUpperCase() === letter + ? `${idx !== 0 ? "-" : ""}${letter.toLowerCase()}` + : letter; + }) + .join(""); +}; + +/** + * TS seems to struggle sometimes with the `.getText()` method on JSDoc annotations, like `@deprecated` in ts v4.0.0 and `@override` in ts v4.3.2 + * This is a bug in TS, but still annoying, so we add some safety rails here + */ +export const safe = (cb: () => any, returnType = "") => { + try { + return cb(); + } catch { + return returnType; + } +}; + +export function withErrorHandling(name: string, cb: () => void) { + try { + cb(); + } catch (e: unknown) { + let errorMessage = ""; + const externalError = `Looks like you've hit an error in third party plugin: ${name}. Please try to create a minimal reproduction and inform the author of the ${name} plugin.`; + const coreError = `Looks like you've hit an error in the core library. Please try to create a minimal reproduction at https://custom-elements-manifest.netlify.com and create an issue at: https://github.com/open-wc/custom-elements-manifest/issues`; + if (name) { + errorMessage = name.startsWith("CORE") ? coreError : externalError; + } + + throw new Error( + `\n\n[${name ?? "unnamed-plugin"}]: ${errorMessage}\n\n ${(e as any).stack}\n`, + ); + } +} diff --git a/packages/cem-fast-extended-plugin/tsconfig.build.json b/packages/cem-fast-extended-plugin/tsconfig.build.json new file mode 100644 index 0000000..89459bc --- /dev/null +++ b/packages/cem-fast-extended-plugin/tsconfig.build.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "outDir": "dist", + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true, + "declarationDir": "dist", + "module": "ESNext", + "target": "ESNext" + }, + "include": ["src/**/*"] + } \ No newline at end of file diff --git a/packages/frameworks/fast-components-vite/package.json b/packages/frameworks/fast-components-vite/package.json index 14467e4..c1a96a1 100644 --- a/packages/frameworks/fast-components-vite/package.json +++ b/packages/frameworks/fast-components-vite/package.json @@ -39,18 +39,17 @@ "*.d.ts", "!src/**/*" ], - "dependencies": { - "@storybook/builder-vite": "^8.3.0", - "@microsoft/storybook-fast-components": "^0.0.1" - }, "devDependencies": { - "storybook": "^8.3.0" + "@microsoft/storybook-fast-components": "^0.0.1", + "@storybook/builder-vite": "^8.0.0", + "storybook": "^8.0.0" }, "engines": { "node": ">=20.0.0" }, "type": "module", "scripts": { - "build": "tsc -p tsconfig.build.json" + "build": "tsc -p tsconfig.build.json", + "clean": "del-cli dist" } } \ No newline at end of file diff --git a/packages/frameworks/fast-components-webpack5/package.json b/packages/frameworks/fast-components-webpack5/package.json index e15b31e..ed6602d 100644 --- a/packages/frameworks/fast-components-webpack5/package.json +++ b/packages/frameworks/fast-components-webpack5/package.json @@ -39,11 +39,9 @@ "*.d.ts", "!src/**/*" ], - "dependencies": { + "devDependencies": { + "@microsoft/storybook-fast-components": "^0.0.1", "@storybook/builder-webpack5": "^8.3.0", - "@microsoft/storybook-fast-components": "^0.0.1" - }, - "peerDependencies": { "storybook": "^8.3.0" }, "engines": { @@ -51,6 +49,7 @@ }, "type": "module", "scripts": { - "build": "tsc -p tsconfig.build.json" + "build": "tsc -p tsconfig.build.json", + "clean": "del-cli dist" } } \ No newline at end of file diff --git a/packages/renderers/fast-components/package.json b/packages/renderers/fast-components/package.json index 9f8ce85..68bbcb5 100644 --- a/packages/renderers/fast-components/package.json +++ b/packages/renderers/fast-components/package.json @@ -19,7 +19,7 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", + "import": "./dist/index.js", "require": "./dist/index.js" }, "./render": "./dist/render.js", @@ -41,25 +41,25 @@ ], "dependencies": { "@microsoft/fast-element": "^2.0.0", - "@storybook/cli": "^8.3.0", - "@storybook/components": "^8.3.0", - "@storybook/core": "^8.3.0", + "@storybook/cli": "^8.0.0", + "@storybook/components": "^8.0.0", + "@storybook/core": "^8.0.0", "@storybook/csf": "^0.1.11", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "^8.3.0", - "@storybook/preview-api": "^8.3.0", - "@storybook/theming": "^8.3.0", + "@storybook/manager-api": "^8.0.0", + "@storybook/preview-api": "^8.0.0", + "@storybook/theming": "^8.0.0", + "prettier": "^3.3.3", "tiny-invariant": "^1.3.1", - "dedent": "^1.5.3", - "prettier": "^3.3.3" + "ts-dedent": "^2.2.0" }, "type": "module", "devDependencies": { - "web-component-analyzer": "^2.0.0" + "@custom-elements-manifest/analyzer": "^0.10.3", + "storybook": "^8.0.0" }, "peerDependencies": { - "@microsoft/fast-element": "^2.0.0", - "storybook": "^8.3.0" + "@microsoft/fast-element": "^2.0.0" }, "peerDependenciesMeta": { "@microsoft/fast-element": { @@ -70,6 +70,7 @@ "node": ">=20.0.0" }, "scripts": { - "build": "tsc -p tsconfig.build.json" + "build": "tsc -p tsconfig.build.json", + "clean": "del-cli dist" } } \ No newline at end of file diff --git a/packages/renderers/fast-components/src/decorateStory.ts b/packages/renderers/fast-components/src/decorateStory.ts index 6e058ef..ef07714 100644 --- a/packages/renderers/fast-components/src/decorateStory.ts +++ b/packages/renderers/fast-components/src/decorateStory.ts @@ -7,23 +7,19 @@ import { sanitizeStoryContextUpdate } from "@storybook/core/preview-api"; import type { FASTComponentsRenderer } from "./types.mjs"; function unWrap(obj: { default: T } | T): T { - return obj && typeof obj === "object" && "default" in obj - ? obj.default - : obj; + return obj && typeof obj === "object" && "default" in obj ? obj.default : obj; } function prepareStory( context: StoryContext, rawStory: FASTComponentsRenderer["storyResult"], - rawInnerStory?: FASTComponentsRenderer["storyResult"], + rawInnerStory?: FASTComponentsRenderer["storyResult"] ) { const story = rawStory; const innerStory = rawInnerStory; // biome-ignore lint/suspicious/noImplicitAnyLet: let preparedStory; - console.log("prepareStory", story, innerStory); - if (!story || Object.keys(story).length === 0) { // story is empty or an empty object, use the component from the context preparedStory = { @@ -40,19 +36,18 @@ function prepareStory( }; } - if (innerStory) { - console.log(innerStory); - // render a SlotDecorator with innerStory as its regular component, - // and the prepared story as the decorating component - return { - // Component: SlotDecorator, - // props: { - // inner stories will already have been prepared, keep as is - // ...innerStory, - // decorator: preparedStory, - // }, - }; - } + // if (innerStory) { + // // render a SlotDecorator with innerStory as its regular component, + // // and the prepared story as the decorating component + // return { + // // Component: SlotDecorator, + // // props: { + // // inner stories will already have been prepared, keep as is + // // ...innerStory, + // // decorator: preparedStory, + // // }, + // }; + // } // no innerStory means this is the last story in the decorator chain, so it should create events from argTypes return { ...(preparedStory as any), argTypes: context.argTypes }; @@ -60,24 +55,26 @@ function prepareStory( export function decorateStory( storyFn: LegacyStoryFn, - decorators: DecoratorFunction[], + decorators: DecoratorFunction[] ) { return decorators.reduce( ( decorated: LegacyStoryFn, - decorator: DecoratorFunction, + decorator: DecoratorFunction ) => (context: StoryContext) => { let story: FASTComponentsRenderer["storyResult"] | undefined; - const decoratedStory: FASTComponentsRenderer["storyResult"] = - decorator(update => { + const decoratedStory: FASTComponentsRenderer["storyResult"] = decorator( + update => { story = decorated({ ...context, ...sanitizeStoryContextUpdate(update), }); return story; - }, context); + }, + context + ); if (!story) { story = decorated(context); @@ -89,11 +86,9 @@ export function decorateStory( return story; } - console.log("prepareStory", story, decoratedStory); - return prepareStory(context, decoratedStory, story); }, (context: StoryContext) => - prepareStory(context, storyFn(context)), + prepareStory(context, storyFn(context)) ); } diff --git a/packages/renderers/fast-components/src/docs/custom-elements.ts b/packages/renderers/fast-components/src/docs/custom-elements.ts index 0537c3d..7ef4d20 100644 --- a/packages/renderers/fast-components/src/docs/custom-elements.ts +++ b/packages/renderers/fast-components/src/docs/custom-elements.ts @@ -1,13 +1,13 @@ +import type { FASTElementDefinition } from "@microsoft/fast-element"; import { logger } from "@storybook/core/client-logger"; -import type { ArgTypes, Args, InputType } from "@storybook/core/types"; - +import type { ArgTypes, InputType } from "@storybook/core/types"; import invariant from "tiny-invariant"; - import { getCustomElements, isValidComponent, isValidMetaData, } from "../framework-api.js"; +import type { FASTComponentsRenderer } from "../types.mjs"; interface TagItem { name: string; @@ -49,18 +49,22 @@ function mapItem(item: TagItem, category: string): InputType { let type: any; switch (category) { case "attributes": - case "properties": + case "properties": { + // TODO: import type consts somehow type = { name: item.type?.text || item.type }; break; - case "slots": + } + case "slots": { type = { name: "string" }; break; - default: + } + default: { type = { name: "other" }; break; + } } - return { + const newItem = { name: item.name, required: false, description: item.description, @@ -69,19 +73,18 @@ function mapItem(item: TagItem, category: string): InputType { category, type: { summary: item.type?.text || item.type }, defaultValue: { - summary: - item.default !== undefined - ? item.default - : item.defaultValue, + summary: item.default ?? item.defaultValue, }, }, }; + + return newItem; } function mapEvent(item: TagItem): InputType[] { let name = item.name .replace(/(-|_|:|\.|\s)+(.)?/g, (_match, _separator, chr: string) => { - return chr ? chr.toUpperCase() : ""; + return chr?.toUpperCase() ?? ""; }) .replace(/^([A-Z])/, match => match.toLowerCase()); @@ -94,41 +97,48 @@ function mapEvent(item: TagItem): InputType[] { } function mapData(data: TagItem[], category: string) { - return data - ?.filter(item => item.name) - .reduce((acc, item) => { - if (item.kind === "method") { - return acc; - } + return ( + data + // ?.filter(item => item.name) + .reduce((acc, item) => { + if (item.kind === "method") { + return acc; + } + + switch (category) { + case "events": + mapEvent(item).forEach(argType => { + invariant( + argType.name, + `${argType} should have a name property.` + ); + acc[argType.name] = argType; + }); + break; + default: + acc[item.name] = mapItem(item, category); + break; + } - switch (category) { - case "events": - mapEvent(item).forEach(argType => { - invariant( - argType.name, - `${argType} should have a name property.`, - ); - acc[argType.name] = argType; - }); - break; - default: - acc[item.name] = mapItem(item, category); - break; - } + return acc; + }, {} as ArgTypes) + ); +} - return acc; - }, {} as ArgTypes); +function getComponentName(component: FASTComponentsRenderer["component"]): string { + return (component as FASTElementDefinition)?.name ?? component; } const getMetaDataExperimental = ( - tagName: string, - customElements: CustomElements, + t: string | FASTElementDefinition, + customElements: CustomElements ) => { + const tagName = getComponentName(t); if (!isValidComponent(tagName) || !isValidMetaData(customElements)) { return null; } const metaData = customElements.tags.find( - tag => tag.name.toUpperCase() === tagName.toUpperCase(), + tag => tag.name.toUpperCase() === tagName.toUpperCase() ); if (!metaData) { logger.warn(`Component not found in custom-elements.json: ${tagName}`); @@ -136,7 +146,9 @@ const getMetaDataExperimental = ( return metaData; }; -const getMetaDataV1 = (tagName: string, customElements: CustomElements) => { +const getMetaDataV1 = (t: string, customElements: CustomElements) => { + const tagName = getComponentName(t); + if (!isValidComponent(tagName) || !isValidMetaData(customElements)) { return null; } @@ -156,7 +168,9 @@ const getMetaDataV1 = (tagName: string, customElements: CustomElements) => { return metadata; }; -const getMetaData = (tagName: string, manifest: any) => { +const getMetaData = (t: string, manifest: any) => { + const tagName = getComponentName(t); + if (manifest?.version === "experimental") { return getMetaDataExperimental(tagName, manifest); } @@ -164,9 +178,10 @@ const getMetaData = (tagName: string, manifest: any) => { }; export const extractArgTypesFromElements = ( - tagName: string, - customElements: CustomElements, + t: string, + customElements: CustomElements ) => { + const tagName = getComponentName(t); const metaData = getMetaData(tagName, customElements) as Tag; if (metaData) { return { @@ -181,12 +196,14 @@ export const extractArgTypesFromElements = ( } }; -export const extractArgTypes = (tagName: string) => { +export const extractArgTypes = (t: string) => { + const tagName = getComponentName(t); const cem = getCustomElements(); return extractArgTypesFromElements(tagName, cem); }; -export const extractComponentDescription = (tagName: string) => { +export const extractComponentDescription = (t: string) => { + const tagName = getComponentName(t); const metaData = getMetaData(tagName, getCustomElements()) as Tag; return metaData?.description; }; diff --git a/packages/renderers/fast-components/src/docs/sourceDecorator.ts b/packages/renderers/fast-components/src/docs/sourceDecorator.ts index 856d58d..124dd27 100644 --- a/packages/renderers/fast-components/src/docs/sourceDecorator.ts +++ b/packages/renderers/fast-components/src/docs/sourceDecorator.ts @@ -3,7 +3,7 @@ import { SNIPPET_RENDERED, SourceType } from "@storybook/core/docs-tools"; import { addons, useEffect } from "@storybook/core/preview-api"; import type { ArgsStoryFn, PartialStoryFn, StoryContext } from "@storybook/csf"; import prettierPluginHTML from "prettier/plugins/html.mjs"; -import * as prettier from "prettier/standalone.mjs"; +import * as prettier from "prettier"; import type { FASTComponentsRenderer } from "../types.mjs"; const FAST_EXPRESSION_COMMENTS = //g; @@ -19,23 +19,18 @@ function skipSourceRender(context: StoryContext) { // never render if the user is forcing the block to render code, or // if the user provides code, or if it's not an args story. - return ( - !isArgsStory || - sourceParams?.code || - sourceParams?.type === SourceType.CODE - ); + return !isArgsStory || sourceParams?.code || sourceParams?.type === SourceType.CODE; } export function sourceDecorator( storyFn: PartialStoryFn, - context: StoryContext, + context: StoryContext ): FASTComponentsRenderer["storyResult"] { const story = storyFn(); - const renderedForSource = context?.parameters.docs?.source - ?.excludeDecorators + const renderedForSource = context?.parameters.docs?.source?.excludeDecorators ? (context.originalStoryFn as ArgsStoryFn)( context.args, - context, + context ) : story; @@ -49,6 +44,7 @@ export function sourceDecorator( .format(source, { parser: "html", plugins: [prettierPluginHTML], + htmlWhitespaceSensitivity: "ignore", }) .then((formattedSource: string) => { addons.getChannel().emit(SNIPPET_RENDERED, { @@ -69,12 +65,15 @@ export function sourceDecorator( container.appendChild(renderedForSource.cloneNode(true)); } else if (typeof renderedForSource === "string") { const partial = html.partial(renderedForSource); - html`${partial}`.create(container); + html` + ${partial} + `.create(container); } else if (renderedForSource instanceof ViewTemplate) { renderedForSource.render(context.args, container); } source = container.innerHTML.replace(FAST_EXPRESSION_COMMENTS, ""); + source = source.replace(/=""/g, ""); } return story; diff --git a/packages/renderers/fast-components/src/render.ts b/packages/renderers/fast-components/src/render.ts index 2390ffe..2be7751 100644 --- a/packages/renderers/fast-components/src/render.ts +++ b/packages/renderers/fast-components/src/render.ts @@ -1,35 +1,29 @@ import { FASTElement, type FASTElementDefinition, + InlineTemplateDirective, + type TemplateValue, ViewTemplate, html, repeat, } from "@microsoft/fast-element"; -import { - simulateDOMContentLoaded, - simulatePageLoad, -} from "@storybook/core/preview-api"; -import type { ArgsStoryFn, RenderContext } from "@storybook/core/types"; +import { simulateDOMContentLoaded, simulatePageLoad } from "@storybook/core/preview-api"; +import type { RenderContext } from "@storybook/core/types"; import dedent from "ts-dedent"; -import type { - FASTComponentsRenderer, - StoryFnHtmlReturnType, -} from "./types.mjs"; - -function getComponentName( - component: FASTComponentsRenderer["component"], -): string { +import type { StoryFn } from "./public-types.js"; +import type { FASTComponentsRenderer } from "./types.mjs"; + +function getComponentName(component?: FASTComponentsRenderer["component"]): string { return (component as FASTElementDefinition)?.name ?? component; } -export const render: ArgsStoryFn = (args, context) => { +export const render: StoryFn = (args, context) => { const { argTypes, id, component } = context; - // biome-ignore lint/style/noNonNullAssertion: - const componentName = getComponentName(component!); + const componentName = getComponentName(component); if (!componentName) { throw new Error( - `Unable to render story ${id} as the component annotation is missing from the default export`, + `Unable to render story ${id} as the component annotation is missing from the default export` ); } @@ -38,36 +32,57 @@ export const render: ArgsStoryFn = (args, context) => { const argsValues = html.partial( ` ${Object.entries(args) .map(([key, val]) => { + const type = + argTypes[key]?.table?.type?.summary ?? + argTypes[key]?.type ?? + typeof val; + const attribute = argTypes[key]?.name ?? key; + + if (key === "") { + return ""; + } + switch (typeof val) { - case "boolean": - case "string": - return val !== "" - ? `${argTypes[key]?.name ?? key}="${val}"` - : false; - case "number": - return `${argTypes[key]?.name ?? key}="${val}"`; - default: + case "boolean": { + return val ? attribute : ""; + } + + case "string": { + return `${attribute}="${val}"`; + } + + case "number": { + return `${attribute}="${val}"`; + } + + default: { return ""; + } } }) .filter(Boolean) - .join(" ")}`, + .join(" ")}` ); - const slottedFunctionArgs = Object.entries(args).reduce( - (acc, [key, arg]) => { - if (typeof arg === "function") { - acc.push(arg); - } - return acc; - }, - [] as Array<() => StoryFnHtmlReturnType>, - ); + const viewTemplateArgs = Object.entries(args).reduce((acc, [key, val]) => { + if (argTypes[key]?.table?.category === "slots") { + acc.push(html` + ${val} + `); + } + + return acc; + }, [] as ViewTemplate[]); let template: ViewTemplate; - if (slottedFunctionArgs.length > 0) { + if (viewTemplateArgs.length > 0) { template = html` - <${tagName}${argsValues}>${repeat(slottedFunctionArgs, html`${arg => arg()}`)} + <${tagName}${argsValues}>${repeat( + viewTemplateArgs, + html` + ${arg => arg} + ` + )} `; } else { template = html`<${tagName}${argsValues}>`; @@ -78,17 +93,10 @@ export const render: ArgsStoryFn = (args, context) => { export function renderToCanvas( renderContext: RenderContext, - canvasElement: FASTComponentsRenderer["canvasElement"], + canvasElement: FASTComponentsRenderer["canvasElement"] ) { - const { - storyFn, - kind, - name, - showMain, - showError, - forceRemount, - storyContext, - } = renderContext; + const { storyFn, kind, name, showMain, showError, forceRemount, storyContext } = + renderContext; const element = storyFn(render); @@ -100,6 +108,7 @@ export function renderToCanvas( } const storyFragment = new DocumentFragment(); + element.render(element, storyFragment); const firstChild: Node = @@ -114,28 +123,30 @@ export function renderToCanvas( // } const renderTo = canvasElement.querySelector( - '[id="root-inner"]', + '[id="root-inner"]' ) as HTMLElement; const oldElement = renderTo.querySelector( (storyContext.component as FASTElementDefinition)?.name ?? - storyContext.component, + storyContext.component ); - if (oldElement) { - oldElement.replaceWith(firstChild); - } else { - renderTo.append(firstChild); - } + // canvasElement.innerHTML = ""; + // canvasElement.appendChild(storyFragment); + + oldElement?.replaceWith(firstChild) ?? renderTo.append(firstChild); - // element.render(element, renderTo); + // render(element, storyContext); simulatePageLoad(canvasElement); } else if (typeof element === "string") { const elementPartial = html.partial(element); - const renderedElement = html`${elementPartial}`; + const renderedElement = html` + ${elementPartial} + `; renderedElement.render(renderedElement, canvasElement); simulatePageLoad(canvasElement); } else if (element instanceof Node) { + // console.log("element", element); // Don't re-mount the element if it didn't change and neither did the story if (canvasElement.firstChild === element && !forceRemount) { return; diff --git a/packages/renderers/fast-components/src/typings.d.ts b/packages/renderers/fast-components/src/typings.d.ts index cf096d9..3297e39 100644 --- a/packages/renderers/fast-components/src/typings.d.ts +++ b/packages/renderers/fast-components/src/typings.d.ts @@ -14,4 +14,3 @@ declare var LOGLEVEL: | "silent" | undefined; declare module "prettier/plugins/html.mjs"; -declare module "prettier/standalone.mjs"; diff --git a/test/.storybook/preview.ts b/test/.storybook/preview.ts index d24174c..65de8f3 100644 --- a/test/.storybook/preview.ts +++ b/test/.storybook/preview.ts @@ -1,11 +1,23 @@ /// -import type { Preview } from "@microsoft/storybook-fast-components"; +import { + type Preview, + setCustomElementsManifest, + setCustomElements, +} from "@microsoft/storybook-fast-components"; +import CustomElementsManifest from "../dist/custom-elements.json"; const modules = import.meta.glob(["../../**/define.ts"]); for (const path in modules) { modules[path](); } +setCustomElements(CustomElementsManifest); + export default { tags: ["autodocs"], + parameters: { + controls: { + disableSaveFromUI: true, + }, + }, } as Preview; diff --git a/test/custom-elements-manifest.config.js b/test/custom-elements-manifest.config.js new file mode 100644 index 0000000..cbf36e5 --- /dev/null +++ b/test/custom-elements-manifest.config.js @@ -0,0 +1,11 @@ +import { cemFASTAddDefinitions } from "@microsoft/cem-fast-extended-plugin"; + +export default { + globs: ["src/**/*.ts"], + outdir: "dist", + fast: true, + dependencies: true, + plugins: [ + cemFASTAddDefinitions(), + ], +}; diff --git a/test/package.json b/test/package.json index 57315b4..06fdae1 100644 --- a/test/package.json +++ b/test/package.json @@ -12,6 +12,10 @@ "@microsoft/fast-element": "^2.0.0" }, "devDependencies": { + "@microsoft/cem-fast-extended-plugin": "^0.0.1", + "@custom-elements-manifest/analyzer": "^0.10.3", + "cem-plugin-expanded-types": "^1.3.2", + "custom-elements-manifest-inheritance": "^1.1.1", "@microsoft/storybook-fast-components": "^0.0.1", "@microsoft/storybook-fast-components-vite": "^0.0.1", "@storybook/addon-essentials": "^8.3.0", @@ -22,7 +26,11 @@ "@fluentui/web-components": "^3.0.0-beta.64" }, "scripts": { + "build": "npm run build:tsc && npm run cem", + "build:tsc": "tsc -p tsconfig.build.json", "build:storybook": "storybook build", - "watch": "storybook dev -p 6006 --no-open" + "watch": "storybook dev -p 6006 --no-open", + "cem": "cem analyze", + "clean": "del-cli dist storybook-static" } } \ No newline at end of file diff --git a/test/src/button/button.styles.ts b/test/src/button/button.styles.ts index 7c342af..a340c7b 100644 --- a/test/src/button/button.styles.ts +++ b/test/src/button/button.styles.ts @@ -11,7 +11,7 @@ export const styles = css` border-radius: 3em; font-weight: 700; line-height: 1; - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; } :host([hidden]) { diff --git a/test/src/button/button.ts b/test/src/button/button.ts index c3938be..05abaad 100644 --- a/test/src/button/button.ts +++ b/test/src/button/button.ts @@ -2,6 +2,11 @@ import { BaseButton } from "@fluentui/web-components/button/index.js"; import { attr } from "@microsoft/fast-element"; import { ButtonAppearance, ButtonSize } from "./button.options.js"; +/** + * The Button component. + * + * @slot - The default slot for the button content. + */ export class Button extends BaseButton { /** * The stylistic appearance of the button. @@ -10,23 +15,15 @@ export class Button extends BaseButton { appearance: ButtonAppearance = ButtonAppearance.primary; /** - * Updates the appearance state when the `appearance` property or attribute changes. + * The size of the button. */ - appearanceChanged(prev: ButtonAppearance, next: string): undefined { - this.elementInternals.states.delete(`appearance-${prev}`); - - if (next in ButtonAppearance) { - this.elementInternals.states.add(`appearance-${next}`); - } - } - @attr size: ButtonSize = ButtonSize.medium; attributeChangedCallback( name: string, oldValue: string | null, - newValue: string | null, + newValue: string | null ): void { super.attributeChangedCallback(name, oldValue, newValue); diff --git a/test/src/button/index.ts b/test/src/button/index.ts index 7b8d3f2..6236f8e 100644 --- a/test/src/button/index.ts +++ b/test/src/button/index.ts @@ -6,5 +6,5 @@ export { ButtonSize, ButtonType, } from "./button.options.js"; -export { styles as ButtonStyles, baseButtonStyles } from "./button.styles.js"; +export { styles as ButtonStyles } from "./button.styles.js"; export { template as ButtonTemplate } from "./button.template.js"; diff --git a/test/src/design-system.ts b/test/src/design-system.ts index 69a62b9..c581f19 100644 --- a/test/src/design-system.ts +++ b/test/src/design-system.ts @@ -8,3 +8,5 @@ export const ComponentDesignSystem = Object.freeze({ shadowRootMode: "open", registry: globalThis.customElements, }); + +export const customElements = ComponentDesignSystem.registry; diff --git a/test/stories/button.stories.ts b/test/stories/button.stories.ts index ebbcd1f..ac69526 100644 --- a/test/stories/button.stories.ts +++ b/test/stories/button.stories.ts @@ -1,9 +1,5 @@ import { html } from "@microsoft/fast-element"; -import type { - Meta, - StoryArgs, - StoryObj, -} from "@microsoft/storybook-fast-components"; +import type { Meta, StoryArgs, StoryObj } from "@microsoft/storybook-fast-components"; import { definition } from "../src/button/button.definition.js"; import type { Button } from "../src/button/button.js"; import { @@ -18,7 +14,7 @@ export default { title: "Components/Button", component: definition, args: { - slottedContent: () => "Button", + "": "Button", }, argTypes: { appearance: { @@ -38,6 +34,7 @@ export default { size: { control: "select", description: "The size of the button.", + mapping: { "": null, ...ButtonSize }, options: ["", ...Object.values(ButtonSize)], table: { category: "attributes", @@ -47,7 +44,8 @@ export default { type: { control: "select", description: "The type of the button.", - options: ["", Object.values(ButtonType)], + mapping: { "": null, ...ButtonType }, + options: ["", ...Object.values(ButtonType)], table: { category: "attributes", type: { summary: Object.values(ButtonType).join("|") }, @@ -58,14 +56,10 @@ export default { description: "The initial value of the button.", table: { category: "attributes", type: { summary: "string" } }, }, - slottedContent: { + "": { control: "text", description: "The default slot", - name: "default slot", - type: { - name: "other", - value: "string | (() => string) | ViewTemplate", - }, + name: "", table: { category: "slots", type: {}, @@ -79,56 +73,54 @@ export const Default: Story = {}; export const Disabled: Story = { args: { disabled: true, - slottedContent: () => "Disabled", + "": "Disabled", }, }; export const PrimaryAppearance: Story = { args: { appearance: ButtonAppearance.primary, - slottedContent: () => "Primary", + "": "Primary", }, }; export const SecondaryAppearance: Story = { args: { appearance: ButtonAppearance.secondary, - slottedContent: () => "Secondary", + "": "Secondary", }, }; export const SmallSize: Story = { args: { size: ButtonSize.small, - slottedContent: () => "Small", + "": "Small", }, }; export const MediumSize: Story = { args: { size: ButtonSize.medium, - slottedContent: () => "Medium", + "": "Medium", }, }; export const LargeSize: Story = { args: { size: ButtonSize.large, - slottedContent: () => "Large", + "": "Large", }, }; export const LongText: Story = { args: { - slottedContent: () => + "": () => "This story's canvas has a max-width of 280px, applied with a Story Decorator. Long text wraps after it hits the max width of the component.", }, decorators: [ (Story, context) => { return html>` -
- ${Story()} -
+
${Story()}
`; }, ], diff --git a/test/src/button/tsconfig.build.json b/test/tsconfig.build.json similarity index 86% rename from test/src/button/tsconfig.build.json rename to test/tsconfig.build.json index 6ef75b3..8ce2866 100644 --- a/test/src/button/tsconfig.build.json +++ b/test/tsconfig.build.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../tsconfig.json", "compilerOptions": { "baseUrl": ".", "declarationDir": "dist/dts",