diff --git a/.gitignore b/.gitignore index 2e770949..a32355a6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ node_modules # production build process.mp4 +*.module.css.d.ts # cache .cache diff --git a/apps/certifications-whatislove-dev/package.json b/apps/certifications-whatislove-dev/package.json index ff40628a..5da0bae8 100644 --- a/apps/certifications-whatislove-dev/package.json +++ b/apps/certifications-whatislove-dev/package.json @@ -4,9 +4,10 @@ "private": true, "type": "module", "scripts": { - "start": "vite", + "_tcm": "tcm -p \"src/**/*.module.css\"", + "start": "concurrently -n \"CLIENT,TCM\" \"vite\" \"npm run _tcm -- --watch\"", "build:clean": "rm -rf build", - "build": "npm run build:clean && vite build", + "build": "npm run build:clean && npm run _tcm && vite build", "ci:lint:css": "stylelint \"src/**/*.css\"", "ci:lint:js": "eslint \"./**/*\"", "ci:lint:type": "tsc --noEmit", @@ -24,6 +25,7 @@ "@types/react": "18.2.47", "@types/react-dom": "18.2.18", "@vitejs/plugin-react": "4.2.1", - "eslint-plugin-react": "7.33.2" + "eslint-plugin-react": "7.33.2", + "typed-css-modules": "0.9.1" } } diff --git a/apps/certifications-whatislove-dev/src/pages/certificate/certificate.jsx b/apps/certifications-whatislove-dev/src/pages/certificate/certificate.jsx index a743157f..af0e496b 100644 --- a/apps/certifications-whatislove-dev/src/pages/certificate/certificate.jsx +++ b/apps/certifications-whatislove-dev/src/pages/certificate/certificate.jsx @@ -30,7 +30,7 @@ let Certificate = ({ certificationType }) => { } return ( - + diff --git a/package-lock.json b/package-lock.json index 0ef0d4b2..d668ab38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ }, "apps/careers-whatislove-dev": { "name": "@whatislove.dev/careers-whatislove-dev", - "version": "1.7.2", + "version": "1.8.0", "dependencies": { "@whatislove.dev/shared": "*", "firebase": "10.8.1", @@ -125,7 +125,8 @@ "@types/react": "18.2.47", "@types/react-dom": "18.2.18", "@vitejs/plugin-react": "4.2.1", - "eslint-plugin-react": "7.33.2" + "eslint-plugin-react": "7.33.2", + "typed-css-modules": "0.9.1" } }, "apps/certifications-whatislove-dev/node_modules/doctrine": { @@ -200,7 +201,7 @@ }, "apps/whatislove-dev": { "name": "@whatislove.dev/whatislove-dev", - "version": "1.62.4", + "version": "1.63.0", "dependencies": { "@whatislove.dev/shared": "*", "focus-trap": "7.5.4", @@ -12804,6 +12805,24 @@ "node": ">=0.10.0" } }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "dev": true + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", @@ -13552,6 +13571,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-there": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/is-there/-/is-there-4.5.1.tgz", + "integrity": "sha512-vIZ7HTXAoRoIwYSsTnxb0sg9L6rth+JOulNcavsbskQkCIWoSM2cjFOWZs4wGziGZER+Xgs/HXiCQZgiL8ppxQ==", + "dev": true + }, "node_modules/is-typed-array": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", @@ -17681,6 +17706,65 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-modules-extract-imports": { + "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, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "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, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "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, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "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, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", @@ -20920,6 +21004,60 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typed-css-modules": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/typed-css-modules/-/typed-css-modules-0.9.1.tgz", + "integrity": "sha512-W2HWKncdKd+bLWsnuWB2EyuQBzZ7KJ9Byr/67KLiiyGegcN52rOveun9JR8yAvuL5IXunRMxt0eORMtAUj5bmA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "chokidar": "^3.4.0", + "glob": "^10.3.10", + "icss-replace-symbols": "^1.1.0", + "is-there": "^4.4.2", + "mkdirp": "^3.0.0", + "postcss": "^8.0.0", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "yargs": "^17.7.2" + }, + "bin": { + "tcm": "lib/cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/typed-css-modules/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-css-modules/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/typescript": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",