diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f5a45fd4d8..4fa4f2c947 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -55,6 +55,7 @@ "shengchen.vscode-checkstyle", "SonarSource.sonarlint-vscode", "stkb.rewrap", + "stylelint.vscode-stylelint", "vmware.vscode-boot-dev-pack", "vscjava.vscode-gradle", "vscjava.vscode-java-pack" diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000000..d140361196 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,13 @@ +# Ignore all node modules +node_modules/ + +# Ignore all build directories +build/ +dist/ + +# Ignore all test reports +coverage/ +reports/ + +# Ignore selected project folders +apps/schematic/api/great_expectations \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 87845e5954..e4cddb022e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,11 @@ "java.format.enabled": false, "java.compile.nullAnalysis.mode": "disabled", "java.configuration.updateBuildConfiguration": "disabled", + "css.validate": false, + "less.validate": false, + "scss.validate": false, + "stylelint.enable": true, + "stylelint.validate": ["css", "scss"], "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "editor.tabSize": 2, diff --git a/lint-staged.config.js b/lint-staged.config.js index 51c8a99696..cb48cb6775 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -8,6 +8,13 @@ module.exports = { `nx affected --target=lint --files=${filenames.join(',')}`, ], + '**/*.{css,scss}': (filenames) => [ + // Format files with Prettier + `prettier --write ${filenames.join(' ')}`, + // Lint files with Stylelint + `stylelint --allow-empty-input ${filenames.join(' ')}`, + ], + '**/*.{json,md,yaml,yml,html}': (filenames) => [ // Format files with Prettier `prettier --write ${filenames.join(' ')}`, diff --git a/package.json b/package.json index b3e3942813..f09ac2889d 100644 --- a/package.json +++ b/package.json @@ -170,6 +170,11 @@ "serverless": "3.22.0", "serverless-plugin-typescript": "2.1.4", "smee-client": "1.2.3", + "stylelint": "16.9.0", + "stylelint-config-prettier-scss": "1.0.0", + "stylelint-config-standard": "36.0.1", + "stylelint-config-standard-scss": "13.1.0", + "stylelint-scss": "6.7.0", "supertest": "^6.3.0", "tailwindcss": "3.4.3", "ts-jest": "29.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6d6091d9b..1866138475 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -476,6 +476,21 @@ importers: smee-client: specifier: 1.2.3 version: 1.2.3 + stylelint: + specifier: 16.9.0 + version: 16.9.0(typescript@5.5.4) + stylelint-config-prettier-scss: + specifier: 1.0.0 + version: 1.0.0(stylelint@16.9.0(typescript@5.5.4)) + stylelint-config-standard: + specifier: 36.0.1 + version: 36.0.1(stylelint@16.9.0(typescript@5.5.4)) + stylelint-config-standard-scss: + specifier: 13.1.0 + version: 13.1.0(postcss@8.4.38)(stylelint@16.9.0(typescript@5.5.4)) + stylelint-scss: + specifier: 6.7.0 + version: 6.7.0(stylelint@16.9.0(typescript@5.5.4)) supertest: specifier: ^6.3.0 version: 6.3.4 @@ -1660,6 +1675,23 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@csstools/css-parser-algorithms@3.0.1': + resolution: {integrity: sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/css-tokenizer@3.0.1': + resolution: {integrity: sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==} + engines: {node: '>=18'} + + '@csstools/media-query-list-parser@3.0.1': + resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + '@csstools/postcss-cascade-layers@1.1.1': resolution: {integrity: sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==} engines: {node: ^12 || ^14 || >=16} @@ -1750,6 +1782,12 @@ packages: peerDependencies: postcss-selector-parser: ^6.0.10 + '@csstools/selector-specificity@4.0.0': + resolution: {integrity: sha512-189nelqtPd8++phaHNwYovKZI0FOzH1vQEE3QhHHkNIGrg5fSs9CbYP3RvfEH5geztnIA9Jwq91wyOIwAW5JIQ==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^6.1.0 + '@cypress/request@3.0.1': resolution: {integrity: sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==} engines: {node: '>= 6'} @@ -1764,6 +1802,9 @@ packages: resolution: {integrity: sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==} engines: {node: '>=14.17.0'} + '@dual-bundle/import-meta-resolve@4.1.0': + resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} + '@emnapi/core@1.2.0': resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} @@ -4831,6 +4872,9 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -5622,6 +5666,10 @@ packages: peerDependencies: postcss: ^8.0.9 + css-functions-list@3.2.2: + resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==} + engines: {node: '>=12 || >=16'} + css-has-pseudo@3.0.4: resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==} engines: {node: ^12 || ^14 || >=16} @@ -6873,6 +6921,10 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@9.1.0: + resolution: {integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==} + engines: {node: '>=18'} + file-loader@6.2.0: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} @@ -6989,6 +7041,10 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -7243,10 +7299,18 @@ packages: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + global-prefix@1.0.2: resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} engines: {node: '>=0.10.0'} + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -7279,6 +7343,9 @@ packages: resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} engines: {node: '>=18'} + globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -7418,6 +7485,10 @@ packages: engines: {node: '>=12'} hasBin: true + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + html-webpack-plugin@5.6.0: resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} @@ -7573,6 +7644,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + image-size@0.5.5: resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} engines: {node: '>=0.10.0'} @@ -8384,6 +8459,9 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + known-css-properties@0.34.0: + resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} + koa-compose@4.1.0: resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} @@ -8578,6 +8656,9 @@ packages: lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} @@ -8730,6 +8811,9 @@ packages: engines: {node: '>= 12'} hasBin: true + mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} @@ -8761,6 +8845,10 @@ packages: memory-pager@1.5.0: resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} @@ -10188,6 +10276,21 @@ packages: peerDependencies: postcss: ^8.0.3 + postcss-resolve-nested-selector@0.1.6: + resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} + + postcss-safe-parser@7.0.0: + resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + + postcss-scss@4.0.9: + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 + postcss-selector-not@6.0.1: resolution: {integrity: sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==} engines: {node: ^12 || ^14 || >=16} @@ -10198,6 +10301,10 @@ packages: resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} engines: {node: '>=4'} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + postcss-svgo@6.0.3: resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} @@ -11512,6 +11619,56 @@ packages: peerDependencies: postcss: ^8.4.31 + stylelint-config-prettier-scss@1.0.0: + resolution: {integrity: sha512-Gr2qLiyvJGKeDk0E/+awNTrZB/UtNVPLqCDOr07na/sLekZwm26Br6yYIeBYz3ulsEcQgs5j+2IIMXCC+wsaQA==} + engines: {node: 14.* || 16.* || >= 18} + hasBin: true + peerDependencies: + stylelint: '>=15.0.0' + + stylelint-config-recommended-scss@14.1.0: + resolution: {integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==} + engines: {node: '>=18.12.0'} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.6.1 + peerDependenciesMeta: + postcss: + optional: true + + stylelint-config-recommended@14.0.1: + resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + + stylelint-config-standard-scss@13.1.0: + resolution: {integrity: sha512-Eo5w7/XvwGHWkeGLtdm2FZLOMYoZl1omP2/jgFCXyl2x5yNz7/8vv4Tj6slHvMSSUNTaGoam/GAZ0ZhukvalfA==} + engines: {node: '>=18.12.0'} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.3.1 + peerDependenciesMeta: + postcss: + optional: true + + stylelint-config-standard@36.0.1: + resolution: {integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + + stylelint-scss@6.7.0: + resolution: {integrity: sha512-RFIa2A+pVWS5wjNT+whtK7wsbZEWazyqesCuSaPbPlZ8lh2TujwVJSnCYJijg6ChZzwI8pZPRZS1L6A9aCbXDg==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.0.2 + + stylelint@16.9.0: + resolution: {integrity: sha512-31Nm3WjxGOBGpQqF43o3wO9L5AC36TPIe6030Lnm13H3vDMTcS21DrLh69bMX+DBilKqMMVLian4iG6ybBoNRQ==} + engines: {node: '>=18.12.0'} + hasBin: true + stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} @@ -11561,6 +11718,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-hyperlinks@3.1.0: + resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} + engines: {node: '>=14.18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -11568,6 +11729,9 @@ packages: svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + svgo@3.3.2: resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} engines: {node: '>=14.0.0'} @@ -11584,6 +11748,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} + tailwindcss@3.4.3: resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} engines: {node: '>=14.0.0'} @@ -12553,6 +12721,10 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -13104,7 +13276,7 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/compat-data@7.24.9': {} @@ -13446,7 +13618,7 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/parser@7.24.8': dependencies: @@ -14966,11 +15138,22 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-tokenizer': 3.0.1 + + '@csstools/css-tokenizer@3.0.1': {} + + '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/postcss-cascade-layers@1.1.1(postcss@8.4.38)': dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.1) + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 '@csstools/postcss-color-function@1.1.1(postcss@8.4.38)': dependencies: @@ -14996,9 +15179,9 @@ snapshots: '@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.4.38)': dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.1) + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 '@csstools/postcss-nested-calc@1.0.0(postcss@8.4.38)': dependencies: @@ -15040,9 +15223,13 @@ snapshots: dependencies: postcss: 8.4.38 - '@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.1.1)': + '@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.1.2)': dependencies: - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 + + '@csstools/selector-specificity@4.0.0(postcss-selector-parser@6.1.2)': + dependencies: + postcss-selector-parser: 6.1.2 '@cypress/request@3.0.1': dependencies: @@ -15080,6 +15267,8 @@ snapshots: '@discoveryjs/json-ext@0.6.1': {} + '@dual-bundle/import-meta-resolve@4.1.0': {} + '@emnapi/core@1.2.0': dependencies: '@emnapi/wasi-threads': 1.0.1 @@ -19443,6 +19632,8 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@2.0.0: {} + base64-js@1.5.1: {} base64id@2.0.0: {} @@ -20380,7 +20571,7 @@ snapshots: css-blank-pseudo@3.0.3(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 css-color-keywords@1.0.0: {} @@ -20388,10 +20579,12 @@ snapshots: dependencies: postcss: 8.4.38 + css-functions-list@3.2.2: {} + css-has-pseudo@3.0.4(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 css-loader@6.11.0(webpack@5.93.0(@swc/core@1.5.29(@swc/helpers@0.5.12))(esbuild@0.23.0)): dependencies: @@ -20460,12 +20653,12 @@ snapshots: css-tree@2.2.1: dependencies: mdn-data: 2.0.28 - source-map-js: 1.2.0 + source-map-js: 1.2.1 css-tree@2.3.1: dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.0 + source-map-js: 1.2.1 css-what@6.1.0: {} @@ -22036,6 +22229,10 @@ snapshots: dependencies: flat-cache: 3.2.0 + file-entry-cache@9.1.0: + dependencies: + flat-cache: 5.0.0 + file-loader@6.2.0(webpack@5.93.0(@swc/core@1.5.29(@swc/helpers@0.5.12))(esbuild@0.23.0)): dependencies: loader-utils: 2.0.4 @@ -22170,6 +22367,11 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 + flat-cache@5.0.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + flat@5.0.2: {} flatted@3.3.1: {} @@ -22471,6 +22673,10 @@ snapshots: is-windows: 1.0.2 resolve-dir: 1.0.1 + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + global-prefix@1.0.2: dependencies: expand-tilde: 2.0.2 @@ -22479,6 +22685,12 @@ snapshots: is-windows: 1.0.2 which: 1.3.1 + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + globals@11.12.0: {} globals@13.24.0: @@ -22508,7 +22720,7 @@ snapshots: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -22530,6 +22742,8 @@ snapshots: slash: 5.1.0 unicorn-magic: 0.1.0 + globjoin@0.1.4: {} + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 @@ -22678,6 +22892,8 @@ snapshots: relateurl: 0.2.7 terser: 5.31.2 + html-tags@3.3.1: {} + html-webpack-plugin@5.6.0(webpack@5.93.0(@swc/core@1.5.29(@swc/helpers@0.5.12))(esbuild@0.23.0)): dependencies: '@types/html-minifier-terser': 6.1.0 @@ -22879,6 +23095,8 @@ snapshots: ignore@5.3.1: {} + ignore@5.3.2: {} + image-size@0.5.5: optional: true @@ -24035,6 +24253,8 @@ snapshots: klona@2.0.6: {} + known-css-properties@0.34.0: {} + koa-compose@4.1.0: {} koa-convert@2.0.0: @@ -24080,7 +24300,7 @@ snapshots: launch-editor@2.8.0: dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 shell-quote: 1.8.1 lazy-ass@1.6.0: {} @@ -24271,6 +24491,8 @@ snapshots: lodash.once@4.1.1: {} + lodash.truncate@4.4.2: {} + lodash.union@4.6.0: {} lodash.uniq@4.5.0: {} @@ -24458,6 +24680,8 @@ snapshots: marked@4.3.0: {} + mathml-tag-names@2.1.3: {} + mdn-data@2.0.28: {} mdn-data@2.0.30: {} @@ -24494,6 +24718,8 @@ snapshots: memory-pager@1.5.0: {} + meow@13.2.0: {} + merge-descriptors@1.0.1: {} merge-stream@2.0.0: {} @@ -25621,12 +25847,12 @@ snapshots: postcss-attribute-case-insensitive@5.0.2(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-calc@9.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 postcss-clamp@4.1.0(postcss@8.4.38): @@ -25676,12 +25902,12 @@ snapshots: postcss-custom-selectors@6.0.3(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-dir-pseudo-class@6.0.5(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-discard-comments@6.0.2(postcss@8.4.38): dependencies: @@ -25713,12 +25939,12 @@ snapshots: postcss-focus-visible@6.0.4(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-focus-within@5.0.4(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-font-variant@5.0.0(postcss@8.4.38): dependencies: @@ -25811,7 +26037,7 @@ snapshots: caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.4.38) postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-minify-font-values@6.1.0(postcss@8.4.38): dependencies: @@ -25835,7 +26061,7 @@ snapshots: postcss-minify-selectors@6.0.4(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-modules-extract-imports@3.1.0(postcss@8.4.38): dependencies: @@ -25845,13 +26071,13 @@ snapshots: dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 postcss-modules-scope@3.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: @@ -25861,13 +26087,13 @@ snapshots: postcss-nested@6.2.0(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-nesting@10.2.0(postcss@8.4.38): dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.1) + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.2) postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-normalize-charset@6.0.2(postcss@8.4.38): dependencies: @@ -25994,7 +26220,7 @@ snapshots: postcss-pseudo-class-any-link@7.1.6(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-reduce-initial@6.1.0(postcss@8.4.38): dependencies: @@ -26011,16 +26237,31 @@ snapshots: dependencies: postcss: 8.4.38 + postcss-resolve-nested-selector@0.1.6: {} + + postcss-safe-parser@7.0.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + + postcss-scss@4.0.9(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-not@6.0.1(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-selector-parser@6.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-svgo@6.0.3(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -26030,7 +26271,7 @@ snapshots: postcss-unique-selectors@6.0.4(postcss@8.4.38): dependencies: postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 postcss-url@10.1.3(postcss@8.4.38): dependencies: @@ -27575,7 +27816,93 @@ snapshots: dependencies: browserslist: 4.23.2 postcss: 8.4.38 - postcss-selector-parser: 6.1.1 + postcss-selector-parser: 6.1.2 + + stylelint-config-prettier-scss@1.0.0(stylelint@16.9.0(typescript@5.5.4)): + dependencies: + stylelint: 16.9.0(typescript@5.5.4) + + stylelint-config-recommended-scss@14.1.0(postcss@8.4.38)(stylelint@16.9.0(typescript@5.5.4)): + dependencies: + postcss-scss: 4.0.9(postcss@8.4.38) + stylelint: 16.9.0(typescript@5.5.4) + stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.5.4)) + stylelint-scss: 6.7.0(stylelint@16.9.0(typescript@5.5.4)) + optionalDependencies: + postcss: 8.4.38 + + stylelint-config-recommended@14.0.1(stylelint@16.9.0(typescript@5.5.4)): + dependencies: + stylelint: 16.9.0(typescript@5.5.4) + + stylelint-config-standard-scss@13.1.0(postcss@8.4.38)(stylelint@16.9.0(typescript@5.5.4)): + dependencies: + stylelint: 16.9.0(typescript@5.5.4) + stylelint-config-recommended-scss: 14.1.0(postcss@8.4.38)(stylelint@16.9.0(typescript@5.5.4)) + stylelint-config-standard: 36.0.1(stylelint@16.9.0(typescript@5.5.4)) + optionalDependencies: + postcss: 8.4.38 + + stylelint-config-standard@36.0.1(stylelint@16.9.0(typescript@5.5.4)): + dependencies: + stylelint: 16.9.0(typescript@5.5.4) + stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.5.4)) + + stylelint-scss@6.7.0(stylelint@16.9.0(typescript@5.5.4)): + dependencies: + css-tree: 2.3.1 + is-plain-object: 5.0.0 + known-css-properties: 0.34.0 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.6 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + stylelint: 16.9.0(typescript@5.5.4) + + stylelint@16.9.0(typescript@5.5.4): + dependencies: + '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) + '@csstools/css-tokenizer': 3.0.1 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) + '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.2) + '@dual-bundle/import-meta-resolve': 4.1.0 + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 9.0.0(typescript@5.5.4) + css-functions-list: 3.2.2 + css-tree: 2.3.1 + debug: 4.3.7(supports-color@8.1.1) + fast-glob: 3.3.2 + fastest-levenshtein: 1.0.16 + file-entry-cache: 9.1.0 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.34.0 + mathml-tag-names: 2.1.3 + meow: 13.2.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-resolve-nested-selector: 0.1.6 + postcss-safe-parser: 7.0.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 7.1.0 + supports-hyperlinks: 3.1.0 + svg-tags: 1.0.0 + table: 6.8.2 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + - typescript stylis@4.3.2: {} @@ -27660,10 +27987,17 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.1.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} svg-parser@2.0.4: {} + svg-tags@1.0.0: {} + svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 @@ -27672,7 +28006,7 @@ snapshots: css-tree: 2.3.1 css-what: 6.1.0 csso: 5.0.5 - picocolors: 1.0.1 + picocolors: 1.1.0 swagger2openapi@7.0.8(encoding@0.1.13): dependencies: @@ -27694,6 +28028,14 @@ snapshots: symbol-tree@3.2.4: {} + table@6.8.2: + dependencies: + ajv: 8.17.1 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + tailwindcss@3.4.3(ts-node@10.9.1(@swc/core@1.5.29(@swc/helpers@0.5.12))(@types/node@22.5.1)(typescript@5.5.4)): dependencies: '@alloc/quick-lru': 5.2.0 @@ -28269,13 +28611,13 @@ snapshots: dependencies: browserslist: 4.23.2 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 uri-js-replace@1.0.1: {} @@ -28366,7 +28708,7 @@ snapshots: cac: 6.7.14 debug: 4.3.7(supports-color@8.1.1) pathe: 1.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 vite: 5.2.11(@types/node@22.5.1)(less@4.1.3)(sass@1.77.8)(stylus@0.59.0)(terser@5.31.6) transitivePeerDependencies: - '@types/node' @@ -28789,6 +29131,11 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + ws@7.5.10: {} ws@8.17.1: {} diff --git a/stylelint.config.mjs b/stylelint.config.mjs new file mode 100644 index 0000000000..e0837f29f8 --- /dev/null +++ b/stylelint.config.mjs @@ -0,0 +1,6 @@ +/** @type {import('stylelint').Config} */ +export default { + extends: ['stylelint-config-standard', 'stylelint-config-standard-scss'], + plugins: ['stylelint-scss'], + rules: {}, +};