diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 26ad15f526..5977920566 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -195,14 +195,16 @@ jobs: id: changed-files uses: tj-actions/changed-files@v45 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: 3.9 + - name: Filter TypeScript files + id: filter-files + run: | + echo "ts_files=$(echo '${{ steps.changed-files.outputs.all_changed_files }}' | tr ',' '\n' | grep -E '\.(ts|tsx)$' | tr '\n' ' ')" >> $GITHUB_OUTPUT + shell: bash - name: Run Python script + if: steps.filter-files.outputs.ts_files != '' run: | - python .github/workflows/scripts/eslint_disable_check.py --files ${{ steps.changed-files.outputs.all_changed_files }} + python .github/workflows/scripts/eslint_disable_check.py --files ${{ steps.filter-files.outputs.ts_files }} Check-Code-Coverage-Disable: name: Check for code coverage disable diff --git a/.github/workflows/scripts/eslint_disable_check.py b/.github/workflows/scripts/eslint_disable_check.py index 45ce52b84a..cc647551d2 100644 --- a/.github/workflows/scripts/eslint_disable_check.py +++ b/.github/workflows/scripts/eslint_disable_check.py @@ -38,8 +38,7 @@ def has_eslint_disable(file_path): """ # Initialize key variables eslint_disable_pattern = re.compile( - r"\/\/\s*eslint-disable(?:-next-line" - r"|-line)?[^\n]*|\/\*\s*eslint-disable[^\*]*\*\/", + r"\/\/\s*eslint-disable(?:-next-line|-line)?[^\n]*|\/\*\s*eslint-disable[^\*]*\*\/", re.IGNORECASE, ) @@ -49,13 +48,14 @@ def has_eslint_disable(file_path): return bool(eslint_disable_pattern.search(content)) except FileNotFoundError: print(f"File not found: {file_path}") - return False + except PermissionError: print(f"Permission denied: {file_path}") - return False + except (IOError, OSError) as e: print(f"Error reading file {file_path}: {e}") - return False + + return False def check_eslint(files_or_directories): @@ -71,30 +71,21 @@ def check_eslint(files_or_directories): for item in files_or_directories: if os.path.isfile(item): - # If it's a file, directly check it - if item.endswith(".ts") or item.endswith(".tsx"): - if has_eslint_disable(item): - print( - f"""\ -File {item} contains eslint-disable statement. Please remove them and \ -ensure the code adheres to the specified ESLint rules.""" - ) - eslint_found = True + # Check a single file + if item.endswith((".ts", ".tsx")) and has_eslint_disable(item): + print(f"Error: File {item} contains eslint-disable statements.") + eslint_found = True elif os.path.isdir(item): - # If it's a directory, walk through it and check all - # .ts and .tsx files + # Recursively check files in a directory for root, _, files in os.walk(item): if "node_modules" in root: continue for file_name in files: - if file_name.endswith(".ts") or file_name.endswith(".tsx"): + if file_name.endswith((".ts", ".tsx")): file_path = os.path.join(root, file_name) if has_eslint_disable(file_path): - print( - f"""File {file_path} contains eslint-disable - statement.""" - ) - eslint_found = True + print(f"Error: File {file_path} contains eslint-disable statements.") + eslint_found = True return eslint_found @@ -107,7 +98,9 @@ def arg_parser_resolver(): Returns: result: Parsed argument object """ - parser = argparse.ArgumentParser() + parser = argparse.ArgumentParser( + description="Check TypeScript files for eslint-disable statements." + ) parser.add_argument( "--files", type=str, diff --git a/.husky/pre-commit b/.husky/pre-commit index 8a0ce26aa2..abe4900b5d 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,3 @@ - npm run format:fix # npm run lint:fix npm run lint-staged diff --git a/matrix.txt b/matrix.txt new file mode 100644 index 0000000000..18657d4973 --- /dev/null +++ b/matrix.txt @@ -0,0 +1,4 @@ +1 2 3 4 5 +6 7 8 9 10 +11 12 13 14 15 +16 17 18 19 20 diff --git a/package-lock.json b/package-lock.json index 3b7c816f00..14b6e97a04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -92,8 +92,6 @@ "@types/react": "^18.3.12", "@types/react-beautiful-dnd": "^13.1.8", "@types/react-bootstrap": "^0.32.37", - "@types/react-chartjs-2": "^2.5.7", - "@types/react-datepicker": "^7.0.0", "@types/react-dom": "^18.3.1", "@types/react-google-recaptcha": "^2.1.9", "@types/react-router-dom": "^5.1.8", @@ -607,9 +605,10 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -5565,49 +5564,73 @@ "dev": true }, "node_modules/@shikijs/core": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.6.tgz", - "integrity": "sha512-9ztslig6/YmCg/XwESAXbKjAjOhaq6HVced9NY6qcbDz1X5g/S90Wco2vMjBNX/6V71ASkzri76JewSGPa7kiQ==", - "dependencies": { - "@shikijs/engine-javascript": "1.17.6", - "@shikijs/engine-oniguruma": "1.17.6", - "@shikijs/types": "1.17.6", - "@shikijs/vscode-textmate": "^9.2.2", + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.27.2.tgz", + "integrity": "sha512-ns1dokDr0KE1lQ9mWd4rqaBkhSApk0qGCK1+lOqwnkQSkVZ08UGqXj1Ef8dAcTMZNFkN6PSNjkL5TYNX7pyPbQ==", + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "1.27.2", + "@shikijs/engine-oniguruma": "1.27.2", + "@shikijs/types": "1.27.2", + "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.2" + "hast-util-to-html": "^9.0.4" } }, "node_modules/@shikijs/engine-javascript": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.6.tgz", - "integrity": "sha512-5EEZj8tVcierNxm4V0UMS2PVoflb0UJPalWWV8l9rRg+oOfnr5VivqBJbkyq5grltVPvByIXvVbY8GSM/356jQ==", + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.27.2.tgz", + "integrity": "sha512-0JB7U5vJc16NShBdxv9hSSJYSKX79+32O7F4oXIxJLdYfomyFvx4B982ackUI9ftO9T3WwagkiiD3nOxOOLiGA==", + "license": "MIT", "dependencies": { - "@shikijs/types": "1.17.6", - "oniguruma-to-js": "0.4.3" + "@shikijs/types": "1.27.2", + "@shikijs/vscode-textmate": "^10.0.1", + "oniguruma-to-es": "^2.0.0" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.6.tgz", - "integrity": "sha512-NLfWDMXFYe0nDHFbEoyZdz89aIIey3bTfF3zLYSUNTXks5s4uinZVmuPOFf1HfTeGqIn8uErJSBc3VnpJO7Alw==", + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.27.2.tgz", + "integrity": "sha512-FZYKD1KN7srvpkz4lbGLOYWlyDU4Rd+2RtuKfABTkafAPOFr+J6umfIwY/TzOQqfNtWjL7SAwPAO0dcOraRLaQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.27.2", + "@shikijs/vscode-textmate": "^10.0.1" + } + }, + "node_modules/@shikijs/langs": { + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-1.27.2.tgz", + "integrity": "sha512-MSrknKL0DbeXvhtSigMLIzjPOOQfvK7fsbcRv2NUUB0EvuTTomY8/U+lAkczYrXY2+dygKOapJKk8ScFYbtoNw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.27.2" + } + }, + "node_modules/@shikijs/themes": { + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-1.27.2.tgz", + "integrity": "sha512-Yw/uV7EijjWavIIZLoWneTAohcbBqEKj6XMX1bfMqO3llqTKsyXukPp1evf8qPqzUHY7ibauqEaQchhfi857mg==", + "license": "MIT", "dependencies": { - "@shikijs/types": "1.17.6", - "@shikijs/vscode-textmate": "^9.2.2" + "@shikijs/types": "1.27.2" } }, "node_modules/@shikijs/types": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.6.tgz", - "integrity": "sha512-ndTFa2TJi2w51ddKQDn3Jy8f6K4E5Q2x3dA3Hmsd3+YmxDQ10UWHjcw7VbVbKzv3VcUvYPLy+z9neqytSzUMUg==", + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.27.2.tgz", + "integrity": "sha512-DM9OWUyjmdYdnKDpaGB/GEn9XkToyK1tqxuqbmc5PV+5K8WjjwfygL3+cIvbkSw2v1ySwHDgqATq/+98pJ4Kyg==", + "license": "MIT", "dependencies": { - "@shikijs/vscode-textmate": "^9.2.2", + "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "node_modules/@shikijs/vscode-textmate": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz", - "integrity": "sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==" + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.1.tgz", + "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==", + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "0.14.0", @@ -6133,6 +6156,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -6217,6 +6241,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -6305,27 +6330,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-chartjs-2": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/@types/react-chartjs-2/-/react-chartjs-2-2.5.7.tgz", - "integrity": "sha512-waqYqiNULIVUqaKO7MGUpFmWrVtH7gVPOzqwV4y4zgUyu/JiDwC005PpveO442HKnby9kLgp3t1SB2sld+ACLw==", - "deprecated": "This is a stub types definition for react-chartjs-2 (https://github.com/gor181/react-chartjs-2). react-chartjs-2 provides its own type definitions, so you don't need @types/react-chartjs-2 installed!", - "dev": true, - "license": "MIT", - "dependencies": { - "react-chartjs-2": "*" - } - }, - "node_modules/@types/react-datepicker": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-7.0.0.tgz", - "integrity": "sha512-4tWwOUq589tozyQPBVEqGNng5DaZkomx5IVNuur868yYdgjH6RaL373/HKiVt1IDoNNXYiTGspm1F7kjrarM8Q==", - "deprecated": "This is a stub types definition. react-datepicker provides its own type definitions, so you do not need this installed.", - "dev": true, - "dependencies": { - "react-datepicker": "*" - } - }, "node_modules/@types/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", @@ -6419,7 +6423,8 @@ "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, "node_modules/@types/use-sync-external-store": { "version": "0.0.3", @@ -6453,20 +6458,21 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz", - "integrity": "sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.20.0.tgz", + "integrity": "sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.11.0", - "@typescript-eslint/type-utils": "8.11.0", - "@typescript-eslint/utils": "8.11.0", - "@typescript-eslint/visitor-keys": "8.11.0", + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/type-utils": "8.20.0", + "@typescript-eslint/utils": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6477,12 +6483,21 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ts-api-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4" } }, "node_modules/@typescript-eslint/parser": { @@ -6620,13 +6635,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", - "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.20.0.tgz", + "integrity": "sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/visitor-keys": "8.11.0" + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6637,15 +6653,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz", - "integrity": "sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.20.0.tgz", + "integrity": "sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.11.0", - "@typescript-eslint/utils": "8.11.0", + "@typescript-eslint/typescript-estree": "8.20.0", + "@typescript-eslint/utils": "8.20.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6654,17 +6671,30 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/ts-api-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" } }, "node_modules/@typescript-eslint/types": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", - "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.20.0.tgz", + "integrity": "sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -6674,19 +6704,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", - "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.20.0.tgz", + "integrity": "sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/visitor-keys": "8.11.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/visitor-keys": "8.20.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6695,10 +6726,8 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -6706,6 +6735,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -6715,6 +6745,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -6725,16 +6756,30 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ts-api-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", - "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.20.0.tgz", + "integrity": "sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.11.0", - "@typescript-eslint/types": "8.11.0", - "@typescript-eslint/typescript-estree": "8.11.0" + "@typescript-eslint/scope-manager": "8.20.0", + "@typescript-eslint/types": "8.20.0", + "@typescript-eslint/typescript-estree": "8.20.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6744,17 +6789,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", - "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.20.0.tgz", + "integrity": "sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.11.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.20.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6764,6 +6811,19 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -8467,6 +8527,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8515,6 +8576,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8524,6 +8586,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8853,6 +8916,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9031,13 +9095,16 @@ } }, "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", + "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", "hasInstallScript": true, "license": "MIT", - "peer": true + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, "node_modules/core-js-compat": { "version": "3.38.1", @@ -9639,6 +9706,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, @@ -9893,6 +9961,12 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "license": "MIT" + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -11785,13 +11859,14 @@ } }, "node_modules/gulp-header": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", - "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", - "deprecated": "Removed event-stream from gulp-header", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-2.0.9.tgz", + "integrity": "sha512-LMGiBx+qH8giwrOuuZXSGvswcIUh0OiioNkUpLhNyvaC6/Ga8X6cfAeme2L5PqsbXMhL8o8b/OmVqIQdxprhcQ==", + "license": "MIT", "dependencies": { - "concat-with-sourcemaps": "*", - "lodash.template": "^4.4.0", + "concat-with-sourcemaps": "^1.1.0", + "lodash.template": "^4.5.0", + "map-stream": "0.0.7", "through2": "^2.0.0" } }, @@ -11908,9 +11983,10 @@ } }, "node_modules/hast-util-to-html": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.2.tgz", - "integrity": "sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.4.tgz", + "integrity": "sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -11933,6 +12009,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -12029,6 +12106,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -15491,6 +15569,12 @@ "tmpl": "1.0.5" } }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", + "license": "MIT" + }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -15564,6 +15648,7 @@ "version": "13.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -15611,9 +15696,9 @@ } }, "node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15624,15 +15709,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "funding": [ { "type": "GitHub Sponsors", @@ -15642,12 +15728,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15658,6 +15745,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -15665,9 +15753,9 @@ } }, "node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15677,12 +15765,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15692,7 +15781,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", @@ -16280,15 +16370,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/oniguruma-to-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", - "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", + "node_modules/oniguruma-to-es": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.1.0.tgz", + "integrity": "sha512-Iq/949c5IueVC5gQR7OYXs0uHsDIePcgZFlVRIVGfQcWwbKG+nsyWfthswdytShlRdkZADY+bWSi+BRyUL81gA==", + "license": "MIT", "dependencies": { - "regex": "^4.3.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" + "emoji-regex-xs": "^1.0.0", + "regex": "^5.1.1", + "regex-recursion": "^5.1.1" } }, "node_modules/open": { @@ -17026,6 +17116,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -18405,9 +18496,29 @@ } }, "node_modules/regex": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/regex/-/regex-4.3.2.tgz", - "integrity": "sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz", + "integrity": "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-5.1.1.tgz", + "integrity": "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==", + "license": "MIT", + "dependencies": { + "regex": "^5.1.1", + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", @@ -19174,15 +19285,18 @@ } }, "node_modules/shiki": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.6.tgz", - "integrity": "sha512-RejGugKpDM75vh6YtF9R771acxHRDikC/01kxsUGW+Pnaz3pTY+c8aZB5CnD7p0vuFPs1HaoAIU/4E+NCfS+mQ==", - "dependencies": { - "@shikijs/core": "1.17.6", - "@shikijs/engine-javascript": "1.17.6", - "@shikijs/engine-oniguruma": "1.17.6", - "@shikijs/types": "1.17.6", - "@shikijs/vscode-textmate": "^9.2.2", + "version": "1.27.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.27.2.tgz", + "integrity": "sha512-QtA1C41oEVixKog+V8I3ia7jjGls7oCZ8Yul8vdHrVBga5uPoyTtMvFF4lMMXIyAZo5A5QbXq91bot2vA6Q+eQ==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "1.27.2", + "@shikijs/engine-javascript": "1.27.2", + "@shikijs/engine-oniguruma": "1.27.2", + "@shikijs/langs": "1.27.2", + "@shikijs/themes": "1.27.2", + "@shikijs/types": "1.27.2", + "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, @@ -19348,6 +19462,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -19580,6 +19695,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -20031,6 +20147,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -20649,9 +20766,10 @@ } }, "node_modules/typedoc": { - "version": "0.26.10", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.10.tgz", - "integrity": "sha512-xLmVKJ8S21t+JeuQLNueebEuTVphx6IrP06CdV7+0WVflUSW3SPmR+h1fnWVdAR/FQePEgsSWCUHXqKKjzuUAw==", + "version": "0.26.11", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.11.tgz", + "integrity": "sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==", + "license": "Apache-2.0", "dependencies": { "lunr": "^2.3.9", "markdown-it": "^14.1.0", @@ -20670,14 +20788,15 @@ } }, "node_modules/typedoc-plugin-markdown": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.2.10.tgz", - "integrity": "sha512-PLX3pc1/7z13UJm4TDE9vo9jWGcClFUErXXtd5LdnoLjV6mynPpqZLU992DwMGFSRqJFZeKbVyqlNNeNHnk2tQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.4.1.tgz", + "integrity": "sha512-fx23nSCvewI9IR8lzIYtzDphETcgTDuxKcmHKGD4lo36oexC+B1k4NaCOY58Snqb4OlE8OXDAGVcQXYYuLRCNw==", + "license": "MIT", "engines": { "node": ">= 18" }, "peerDependencies": { - "typedoc": "0.26.x" + "typedoc": "0.27.x" } }, "node_modules/typedoc/node_modules/brace-expansion": { @@ -20703,9 +20822,10 @@ } }, "node_modules/typedoc/node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", "bin": { "yaml": "bin.mjs" }, @@ -20843,6 +20963,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -20855,6 +20976,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -20867,6 +20989,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -20879,6 +21002,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -20893,6 +21017,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -21101,6 +21226,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" @@ -21114,6 +21240,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -22052,6 +22179,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/package.json b/package.json index 7fd2f550eb..6d8e9bce21 100644 --- a/package.json +++ b/package.json @@ -129,8 +129,6 @@ "@types/react": "^18.3.12", "@types/react-beautiful-dnd": "^13.1.8", "@types/react-bootstrap": "^0.32.37", - "@types/react-chartjs-2": "^2.5.7", - "@types/react-datepicker": "^7.0.0", "@types/react-dom": "^18.3.1", "@types/react-google-recaptcha": "^2.1.9", "@types/react-router-dom": "^5.1.8", @@ -170,6 +168,14 @@ "engines": { "node": ">=20.x" }, + "overrides": { + "core-js": "^3.40.0", + "rc-color-picker": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "gulp-header": "^2.0.9" + }, "lint-staged": { "**/*.{ts, tsx, json, scss, css}": [ "prettier --write" diff --git a/src/assets/css/app.css b/src/assets/css/app.css index bd34d56907..d77801b750 100644 --- a/src/assets/css/app.css +++ b/src/assets/css/app.css @@ -78,7 +78,7 @@ 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, - 'Liberation Mono', 'Courier New', monospace; + --bs-body-color 'Liberation Mono', 'Courier New', monospace; --bs-font-lato: 'Lato'; --bs-gradient: linear-gradient( 180deg, @@ -2478,9 +2478,9 @@ progress { .form-control:focus { color: var(--bs-body-color); background-color: #f2f2f2; - border-color: #98ddb5; + border-color: #98b3dd; outline: 0; - box-shadow: 0 0 0 0.25rem rgba(49, 187, 107, 0.25); + box-shadow: 0 0 0 0.25rem rgba(155, 174, 211, 0.5); } .form-control::-webkit-date-and-time-value { @@ -3499,15 +3499,15 @@ fieldset:disabled .btn { .btn-primary { --bs-btn-color: #000; - --bs-btn-bg: #31bb6b; - --bs-btn-border-color: #31bb6b; + --bs-btn-bg: #85a1e9; + /* --bs-btn-border-color: #c7d2e9; */ --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #50c581; - --bs-btn-hover-border-color: #46c27a; + --bs-btn-hover-bg: #2f68f0; + /* --bs-btn-hover-border-color: #46c27a; */ --bs-btn-focus-shadow-rgb: 42, 159, 91; --bs-btn-active-color: #000; - --bs-btn-active-bg: #5ac989; - --bs-btn-active-border-color: #46c27a; + --bs-btn-active-bg: #2f68f0; + /* --bs-btn-active-border-color: #46c27a; */ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #31bb6b; @@ -3533,19 +3533,20 @@ fieldset:disabled .btn { .btn-success { --bs-btn-color: #000; - --bs-btn-bg: #31bb6b; - --bs-btn-border-color: #31bb6b; + --bs-btn-bg: #eaebef; + /* --bs-btn-border-color: #31bb6b; */ --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #50c581; - --bs-btn-hover-border-color: #46c27a; + --bs-btn-hover-bg: #eaebef; + --bs-btn-hover-border-color: #000; --bs-btn-focus-shadow-rgb: 42, 159, 91; --bs-btn-active-color: #000; - --bs-btn-active-bg: #5ac989; - --bs-btn-active-border-color: #46c27a; + --bs-btn-active-bg: #eaebef; + /* --bs-btn-active-border-color: #46c27a; */ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #31bb6b; --bs-btn-disabled-border-color: #31bb6b; + color: #000; } .btn-info { @@ -3583,11 +3584,11 @@ fieldset:disabled .btn { } .btn-danger { - --bs-btn-color: #fff; - --bs-btn-bg: #dc3545; + --bs-btn-color: #ce2944; + --bs-btn-bg: #f8d6dc; --bs-btn-border-color: #dc3545; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-bg: #dc3545; --bs-btn-hover-border-color: #b02a37; --bs-btn-focus-shadow-rgb: 225, 83, 97; --bs-btn-active-color: #fff; @@ -3900,8 +3901,8 @@ fieldset:disabled .btn { --bs-dropdown-link-color: var(--bs-body-color); --bs-dropdown-link-hover-color: var(--bs-body-color); --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); - --bs-dropdown-link-active-color: #fff; - --bs-dropdown-link-active-bg: #31bb6b; + /* --bs-dropdown-link-active-color: #fff; */ + --bs-dropdown-link-active-bg: #f8f9fa; --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); --bs-dropdown-item-padding-x: 1rem; --bs-dropdown-item-padding-y: 0.25rem; @@ -6102,7 +6103,7 @@ fieldset:disabled .btn { --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); --bs-btn-close-opacity: 0.5; --bs-btn-close-hover-opacity: 0.75; - --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(49, 187, 107, 0.25); + --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(155, 174, 211, 0.5); --bs-btn-close-focus-opacity: 1; --bs-btn-close-disabled-opacity: 0.25; --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); @@ -14063,44 +14064,43 @@ fieldset:disabled .btn { */ .btn-primary, .btn-secondary, -.btn-success, .btn-warning, .btn-info { color: #fff; /* isolation: isolate; */ } -.btn-primary:hover, +.btn-success { + color: #707070; +} + .btn-primary:active, .btn-secondary:hover, .btn-secondary:active, -.btn-success:hover, .btn-success:active, .btn-warning:hover, .btn-warning:active, .btn-info:hover, .btn-info:active { color: #fff !important; - box-shadow: inset 50px 50px 40px rgba(0, 0, 0, 0.5); - background-blend-mode: multiply; - /* background-color: #6c757d ; */ - /* filter: brightness(0.85); */ } -/* .btn-primary{ - --hover-bg: #6c757d !important; +/* Style for active button's background color */ +.btn-success:hover, +.btn-success:active { + background-color: #e0eaf6 !important; } - -.btn-primary:hover, -.btn-primary:active{ - --hover-bg: hsl(var(--button-hue, 0), 100%, 60%) !important; +/* Style for active button's icon fill color */ +.btn-success:active svg path { + fill: #ffffff !important; + transition: fill 0.32s !important; /* Add a transition for SVG icon */ } -.btn-primary:hover, -.btn-primary:active{ - --hover-bg: hsl(var(--button-hue, 0), 100%, 0%) !important; -} */ +/* Ensure text color transition for active state */ +.btn-success .text-secondary { + transition: color 0.32s !important; +} .btn-outline-primary:hover, .btn-outline-primary:active, diff --git a/src/components/CheckIn/TableRow.tsx b/src/components/CheckIn/TableRow.tsx index b2bd6e11cb..f322e82a12 100644 --- a/src/components/CheckIn/TableRow.tsx +++ b/src/components/CheckIn/TableRow.tsx @@ -73,7 +73,7 @@ export const TableRow = ({ inputs.push({ name: data.name.trim() }); const pdf = await generate({ template: tagTemplate, inputs }); // istanbul ignore next - const blob = new Blob([pdf.buffer], { type: 'application/pdf' }); + const blob = new Blob([pdf], { type: 'application/pdf' }); // istanbul ignore next const url = URL.createObjectURL(blob); // istanbul ignore next diff --git a/src/components/CollapsibleDropdown/CollapsibleDropdown.tsx b/src/components/CollapsibleDropdown/CollapsibleDropdown.tsx index 2991c2ade5..08439777c9 100644 --- a/src/components/CollapsibleDropdown/CollapsibleDropdown.tsx +++ b/src/components/CollapsibleDropdown/CollapsibleDropdown.tsx @@ -43,7 +43,7 @@ const collapsibleDropdown = ({ <> diff --git a/src/screens/OrganizationPeople/OrganizationPeople.tsx b/src/screens/OrganizationPeople/OrganizationPeople.tsx index 4198cadaef..45c81ea443 100644 --- a/src/screens/OrganizationPeople/OrganizationPeople.tsx +++ b/src/screens/OrganizationPeople/OrganizationPeople.tsx @@ -1,5 +1,4 @@ import { useLazyQuery } from '@apollo/client'; -import { Delete, Search } from '@mui/icons-material'; import { ORGANIZATIONS_LIST, ORGANIZATIONS_MEMBER_CONNECTION_LIST, @@ -10,7 +9,6 @@ import OrgAdminListCard from 'components/OrgAdminListCard/OrgAdminListCard'; import OrgPeopleListCard from 'components/OrgPeopleListCard/OrgPeopleListCard'; import dayjs from 'dayjs'; import React, { useEffect, useState } from 'react'; -import { Button, Form } from 'react-bootstrap'; import Row from 'react-bootstrap/Row'; import { useTranslation } from 'react-i18next'; import { Link, useLocation, useParams } from 'react-router-dom'; @@ -21,7 +19,9 @@ import { DataGrid } from '@mui/x-data-grid'; import type { GridColDef, GridCellParams } from '@mui/x-data-grid'; import { Stack } from '@mui/material'; import Avatar from 'components/Avatar/Avatar'; -import SortingButton from 'subComponents/SortingButton'; +import { Button, Dropdown, Form } from 'react-bootstrap'; +import { Delete, Search, Sort } from '@mui/icons-material'; + /** * OrganizationPeople component is used to display the list of members, admins and users of the organization. * It also provides the functionality to search the members, admins and users by their full name. @@ -39,7 +39,7 @@ function organizationPeople(): JSX.Element { const location = useLocation(); const role = location?.state; - const { orgId: currentUrl } = useParams(); + const { orgId: currentUrl } = useParams<{ orgId: string }>(); const [state, setState] = useState(role?.role || 0); @@ -175,6 +175,21 @@ function organizationPeople(): JSX.Element { }; const columns: GridColDef[] = [ + { + field: 'rowNumber', + headerName: '#', + minWidth: 80, + align: 'center', + headerAlign: 'center', + headerClassName: `${styles.tableHeader}`, + sortable: false, + renderCell: (params: GridCellParams) => { + // Use params.api.getSortedRowIds() or params.rowIndex to generate row numbers + const sortedRowIds = params.api.getSortedRowIds(); // Get sorted row IDs + const rowIndex = sortedRowIds.indexOf(params.id); // Find the index of the current row + return
{rowIndex + 1}
; + }, + }, { field: 'profile', headerName: tCommon('profile'), @@ -183,51 +198,29 @@ function organizationPeople(): JSX.Element { align: 'center', headerAlign: 'center', headerClassName: `${styles.tableHeader}`, + cellClassName: `${styles.profileImage}`, sortable: false, renderCell: (params: GridCellParams) => { - // Fallback to a fixed width if computedWidth is unavailable - const columnWidth = params.colDef.computedWidth || 150; - const imageSize = Math.min(columnWidth * 0.6, 60); // Max size 40px, responsive scaling - return (
{params.row?.image ? ( avatar ) : ( -
- -
+ )}
); @@ -310,10 +303,6 @@ function organizationPeople(): JSX.Element { }, ]; - const handleSortChange = (value: string): void => { - setState(value === 'users' ? 2 : value === 'members' ? 0 : 1); - }; - return ( <> @@ -335,31 +324,68 @@ function organizationPeople(): JSX.Element {
- + + + + {t('sort')} + + + setState(2)} + > + + {tCommon('users')} + + + setState(0)} + > + + {tCommon('members')} + + + setState(1)} + > + + {tCommon('admins')} + + + +
@@ -367,9 +393,9 @@ function organizationPeople(): JSX.Element {
- {((state == 0 && memberData) || - (state == 1 && adminFilteredData) || - (state == 2 && usersData)) && ( + {((state === 0 && memberData) || + (state === 1 && adminFilteredData) || + (state === 2 && usersData)) && (
`${styles.rowBackground}`} @@ -441,8 +466,6 @@ function organizationPeople(): JSX.Element { ); } -export default organizationPeople; - // This code is used to remove 'user' object from the array index of userData and directly use store the properties at array index, this formatting is needed for DataGrid. interface InterfaceUser { @@ -475,3 +498,5 @@ function convertObject(original: InterfaceOriginalObject): InterfaceUser[] { }); return convertedObject.users; } + +export default organizationPeople; diff --git a/src/style/app.module.css b/src/style/app.module.css index 6763be4b24..a07209db40 100644 --- a/src/style/app.module.css +++ b/src/style/app.module.css @@ -1,3 +1,42 @@ +/** + * CSS Methodology for Common Styles: + * + * This project aims to reduce CSS duplication by merging similar styles across components + * into reusable global classes. This ensures consistency and simplifies maintenance. + * + * Steps for contributors: + * 1. Identify duplicate or similar styles in different components (e.g., buttons, modals). + * 2. Create a global class with a clear, descriptive name (e.g., .addButton, .removeButton). + * 3. Use the new global class in all components requiring that style. + * + * Naming Convention: + * - Use lowercase, descriptive names for global classes (e.g., .addButton, .removeButton). + * - Keep names generic enough for reuse but clear in their purpose. + * + * Example: + * Instead of component-specific classes like: + * `.greenregbtnOrganizationFundCampaign`, `.greenregbtnPledge` (used in two different components for same functionality) + * Use: + * `.addButton` (a single reusable class in the global CSS file that is used for functionalities that add/create tasks) + * + * Global Classes: + * `.inputField` (for form input fields) + * `.searchButton` (for form input field search button) + * `.addButton` (for buttons that add/create task) + * `.removeButton` (for buttons that remove/delete task) + * `.modalHeader` (for header section of any modal) + * `.editButton` (for buttons inside table) + * `.switch` (for form toggles) + * `.regularBtn` (for a simple blue button) + * `.tableHeader` (for header section of any table component) + * `.subtleBlueGrey` (for blue Text) + * + * + * GLobal Varibles: + * --light-blue (for light blue contrast) + * --dark-blue (for dark blue contrast) + */ + :root { /* Neutral Colors */ --grey-light: #eaebef; @@ -79,7 +118,8 @@ --modal-max-width: 680px; /* Additional Variables */ - --input-shadow-color: #dddddd; + --input-shadow-color: 4px 4px 10px -1px rgb(168, 168, 168, 0.7), + /* Shadow on bottom-right */ 2px 2px 10px -1px rgba(169, 169, 169, 0.7); /* Lighter shadow on bottom-right */ --delete-button-bg: #f8d6dc; --delete-button-color: #ff4d4f; --search-button-bg: #a8c7fa; @@ -281,6 +321,7 @@ display: inline-block; /* margin-top: 10px; margin-bottom: 10px; */ + /* margin-left:30px; */ } .dropdown:is(:hover, :focus, :active, :focus-visible, .show) { @@ -415,13 +456,22 @@ margin-top: 10px; margin-bottom: 10px; background-color: var(--bs-white); - box-shadow: 0 1px 1px var(--input-shadow-color); + /* box-shadow: var(--input-shadow-color); */ +} + +.inputField:focus { + background-color: var(--bs-white); /* Ensure no color change on focus */ +} + +.inputField:hover { + background-color: var(--bs-white); + box-shadow: var(--input-shadow-color); } .inputFieldModal { margin-bottom: 10px; background-color: var(--bs-white); - box-shadow: 0 1px 1px var(--input-shadow-color); + box-shadow: var(--input-shadow-color); } .inputField > button { @@ -507,11 +557,19 @@ } .tableHeader { - background-color: var(--table-head-bg); - color: var(--table-header-color); + background-color: var(--grey-bg-color); + color: var(--black-color); font-size: var(--font-size-header); } +.profileImage { + display: flex; + justifycontent: center; + alignitems: center; + height: 100%; + width: 100%; +} + .errorContainer { min-height: 100vh; } @@ -672,6 +730,11 @@ hr { bottom: 20px; } +.head { + border: none; + /* height: 100vh; */ +} + .pageNotFound h3 { font-family: 'Roboto', sans-serif; font-weight: normal; @@ -1198,7 +1261,7 @@ hr { .eventsAttended, .membername { - color: var(--blue-color); + color: var(--black-color); } .actionBtn { background-color: var(--white-color) !important; @@ -1592,6 +1655,7 @@ hr { display: flex; justify-content: center; align-items: center; + box-shadow: var(--input-shadow-color); } @media (max-width: 1020px) { @@ -2633,6 +2697,11 @@ input::file-selector-button { color: var(--bs-secondary, var(--bs-gray-400)); } +.blueText { + color: var(--blue-color); + font-weight: bold; +} + /* Loading OrgList CSS */ .itemCardOrgList .loadingWrapper { @@ -3339,6 +3408,10 @@ button[data-testid='createPostBtn'] { border-radius: 50%; } +.iconWrapper:active .icon { + fill: var(--white-color); +} + .cardItem .title { font-size: 1rem; flex: 1; @@ -3978,7 +4051,7 @@ button[data-testid='createPostBtn'] { gap: 0.5rem; align-items: center; background-color: var(--bs-white); - border-bottom: 1px solid var(--input-shadow-color); + border-bottom: 1px solid var(--input-shadow); } .creator { @@ -4532,7 +4605,6 @@ button[data-testid='createPostBtn'] { .membername { font-size: 16px; - font-weight: bold; } .memberfont {