diff --git a/.husky/pre-commit b/.husky/pre-commit index 9521eee0..2a4db950 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,5 +1,6 @@ #!/bin/sh . "$(dirname $0)/_/husky.sh" +npm run locale npm run format git add . diff --git a/locales/es.po b/locales/es.po index 74e742af..306ed856 100644 --- a/locales/es.po +++ b/locales/es.po @@ -9,7 +9,7 @@ msgstr "" "Report-Msgid-Bugs-To: https://github.com/simple-icons/simple-icons-website/issues\n" "Language: es\n" "POT-Creation-Date: 2022-09-25T01:25:24.834Z\n" -"PO-Revision-Date: 2022-09-27T00:18:49.384Z\n" +"PO-Revision-Date: 2022-09-28T14:06:20.828Z\n" "MIME-Version: 1.0\n" msgid "Extension" @@ -128,3 +128,39 @@ msgstr "Obsoleto" msgid "Removal at $version" msgstr "Se elimina en $version" + +msgid "Layout" +msgstr "Diseño" + +msgid "Comfortable" +msgstr "Confortable" + +msgid "Compact" +msgstr "Compacto" + +msgid "view $iconTitle" +msgstr "ver $iconTitle" + +msgid "Download SVG" +msgstr "Descargar SVG" + +msgid "Download colored SVG" +msgstr "Descargar SVG coloreado" + +msgid "Download PDF" +msgstr "Descargar PDF" + +msgid "Report $iconTitle as outdated" +msgstr "Reportar $iconTitle como desactualizado" + +msgid "Report icon as outdated" +msgstr "Reportar icono desactualizado" + +msgid "It will be removed at version $version" +msgstr "Será eliminado en la versión $version" + +msgid "no brand guidelines" +msgstr "sin directrices de marca" + +msgid "no icon license" +msgstr "sin licencia de icono" diff --git a/locales/fr.po b/locales/fr.po index 4c1c9aeb..cd9ad94f 100644 --- a/locales/fr.po +++ b/locales/fr.po @@ -9,7 +9,7 @@ msgstr "" "Report-Msgid-Bugs-To: https://github.com/simple-icons/simple-icons-website/issues\n" "Language: fr\n" "POT-Creation-Date: 2022-09-25T01:25:24.834Z\n" -"PO-Revision-Date: 2022-09-27T00:18:49.384Z\n" +"PO-Revision-Date: 2022-09-28T14:06:03.221Z\n" "MIME-Version: 1.0\n" msgid "Extension" @@ -128,3 +128,39 @@ msgstr "Obsolète" msgid "Removal at $version" msgstr "Suppression à $version" + +msgid "Layout" +msgstr "Disposition" + +msgid "Comfortable" +msgstr "Confortable" + +msgid "Compact" +msgstr "Compact" + +msgid "view $iconTitle" +msgstr "voir $iconTitle" + +msgid "Download SVG" +msgstr "Télécharger SVG" + +msgid "Download colored SVG" +msgstr "Télécharger SVG coloré" + +msgid "Download PDF" +msgstr "Télécharger PDF" + +msgid "Report $iconTitle as outdated" +msgstr "Signaler $iconTitle comme obsolète" + +msgid "Report icon as outdated" +msgstr "Signaler l'icône comme obsolète" + +msgid "It will be removed at version $version" +msgstr "Il sera supprimé à la version $version" + +msgid "no brand guidelines" +msgstr "aucune directive de marque" + +msgid "no icon license" +msgstr "aucune licence d'icône" diff --git a/locales/it.po b/locales/it.po index fd81675a..58abf5f8 100644 --- a/locales/it.po +++ b/locales/it.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2022-09-26T15:39:06.158Z\n" "MIME-Version: 1.0\n" "Project-Id-Version: simple-icons-website\n" -"PO-Revision-Date: 2022-09-27T00:18:49.384Z\n" +"PO-Revision-Date: 2022-09-28T14:06:03.221Z\n" msgid "$nIcons Free SVG icons for popular brands" msgstr "$nIcons icone SVG gratuite per marchi famosi" @@ -128,3 +128,39 @@ msgstr "Deprecato" msgid "Removal at $version" msgstr "Rimozione in $version" + +msgid "Layout" +msgstr "Layout" + +msgid "Comfortable" +msgstr "Comodo" + +msgid "Compact" +msgstr "Compatto" + +msgid "view $iconTitle" +msgstr "visualizza $iconTitle" + +msgid "Download SVG" +msgstr "Scarica SVG" + +msgid "Download colored SVG" +msgstr "Scarica SVG colorato" + +msgid "Download PDF" +msgstr "Scarica PDF" + +msgid "Report $iconTitle as outdated" +msgstr "Segnala $iconTitle come obsoleto" + +msgid "Report icon as outdated" +msgstr "Segnala icona come obsoleta" + +msgid "It will be removed at version $version" +msgstr "Sarà rimosso nella versione $version" + +msgid "no brand guidelines" +msgstr "nessuna guida del marchio" + +msgid "no icon license" +msgstr "nessuna licenza dell'icona" diff --git a/locales/zh-CN.po b/locales/zh-CN.po index 3568d9a5..7c6a4f1c 100644 --- a/locales/zh-CN.po +++ b/locales/zh-CN.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2022-09-27T13:42:46.869Z\n" "MIME-Version: 1.0\n" "Project-Id-Version: simple-icons-website\n" -"PO-Revision-Date: 2022-09-27T13:42:46.869Z\n" +"PO-Revision-Date: 2022-09-28T14:06:03.221Z\n" msgid "$nIcons Free SVG icons for popular brands" msgstr "囊括 $nIcons 种流行品牌的免费 SVG 图标" @@ -128,3 +128,39 @@ msgstr "项目地址" msgid "Made with ❤️ on GitHub" msgstr "Made with ❤️ on GitHub" + +msgid "Download SVG" +msgstr "下载 SVG" + +msgid "Download colored SVG" +msgstr "下载彩色 SVG" + +msgid "Download PDF" +msgstr "下载 PDF" + +msgid "Report icon as outdated" +msgstr "报告图标过时" + +msgid "Layout" +msgstr "布局" + +msgid "Comfortable" +msgstr "舒适" + +msgid "Compact" +msgstr "紧凑" + +msgid "view $iconTitle" +msgstr "查看 $iconTitle" + +msgid "Report $iconTitle as outdated" +msgstr "报告 $iconTitle 过时" + +msgid "It will be removed at version $version" +msgstr "将在 $version 中删除" + +msgid "no brand guidelines" +msgstr "无品牌指南" + +msgid "no icon license" +msgstr "无图标许可证" diff --git a/package-lock.json b/package-lock.json index c642394c..acb14f38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,26 +24,26 @@ } }, "@babel/compat-data": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", - "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", + "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", "dev": true }, "@babel/core": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", - "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", + "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.1", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", + "@babel/traverse": "^7.19.1", "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", @@ -52,23 +52,6 @@ "semver": "^6.3.0" }, "dependencies": { - "@babel/parser": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", - "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", - "dev": true - }, - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -103,17 +86,6 @@ "jsesc": "^2.5.1" }, "dependencies": { - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, "@jridgewell/gen-mapping": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", @@ -128,14 +100,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", - "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", + "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.0", + "@babel/compat-data": "^7.19.1", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "dependencies": { @@ -161,19 +133,6 @@ "requires": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-hoist-variables": { @@ -208,19 +167,6 @@ "@babel/template": "^7.18.10", "@babel/traverse": "^7.19.0", "@babel/types": "^7.19.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/helper-plugin-utils": { @@ -254,9 +200,9 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { @@ -274,19 +220,6 @@ "@babel/template": "^7.18.10", "@babel/traverse": "^7.19.0", "@babel/types": "^7.19.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/highlight": { @@ -359,9 +292,9 @@ } }, "@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", + "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -502,9 +435,9 @@ } }, "@babel/traverse": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", - "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", + "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", @@ -513,29 +446,12 @@ "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { - "@babel/parser": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", - "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", - "dev": true - }, - "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -545,6 +461,12 @@ "ms": "2.1.2" } }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -554,9 +476,9 @@ } }, "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.18.10", @@ -593,24 +515,6 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -620,41 +524,11 @@ "ms": "2.1.2" } }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true } } }, @@ -730,6 +604,70 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } } }, "@istanbuljs/schema": { @@ -894,16 +832,6 @@ "v8-to-istanbul": "^9.0.1" }, "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "jest-worker": { "version": "29.0.3", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.0.3.tgz", @@ -950,18 +878,6 @@ "@jridgewell/trace-mapping": "^0.3.15", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } } }, "@jest/test-result": { @@ -1019,16 +935,6 @@ "write-file-atomic": "^4.0.1" }, "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -1103,9 +1009,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -1179,9 +1085,9 @@ "dev": true }, "@sinclair/typebox": { - "version": "0.24.40", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.40.tgz", - "integrity": "sha512-Xint60L8rF0+nRy+6fCjW9jQMmu7fTpbwTBrXZiK6eq/RHDJS7LvWX/0oXC8O7fCePmrY/XdfaTv2HiUDeCq4g==", + "version": "0.24.43", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.43.tgz", + "integrity": "sha512-1orQTvtazZmsPeBroJjysvsOQCYV2yjWlebkSY38pl5vr2tdLjEJ+LoxITlGNZaH2RE19WlAwQMkH/7C14wLfw==", "dev": true }, "@sinonjs/commons": { @@ -1241,18 +1147,18 @@ } }, "@types/babel__traverse": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.1.tgz", - "integrity": "sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "requires": { "@types/estree": "*", @@ -1321,9 +1227,9 @@ "dev": true }, "@types/node": { - "version": "18.6.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.4.tgz", - "integrity": "sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg==", + "version": "18.7.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.23.tgz", + "integrity": "sha512-DWNcCHolDq0ZKGizjx2DZjR/PqsYwAcYUJmfMWqtVU2MBMG5Mo+xFZrhGId5r/O5HOuMPyQEcM6KUBp5lBZZBg==", "dev": true }, "@types/parse-json": { @@ -1333,9 +1239,9 @@ "dev": true }, "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", "dev": true }, "@types/stack-utils": { @@ -1345,9 +1251,9 @@ "dev": true }, "@types/yargs": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", - "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -1570,11 +1476,18 @@ } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -1609,14 +1522,14 @@ } }, "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, @@ -1627,16 +1540,34 @@ "dev": true, "requires": { "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } + "requires": {} }, "ansi-escapes": { "version": "4.3.2", @@ -1645,6 +1576,14 @@ "dev": true, "requires": { "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } } }, "ansi-regex": { @@ -1688,13 +1627,10 @@ } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "arr-diff": { "version": "4.0.0", @@ -1762,14 +1698,6 @@ "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30001396", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001396.tgz", - "integrity": "sha512-Df93cp39XVZRoOl2EoiuNp2rc4Dnsb9mDQEs4qFa7/uTx3FnfEq+jyHLf/0Ik7GVJA6wvJuAI5ZKUtUEenAm9Q==", - "dev": true - } } }, "axios": { @@ -1955,15 +1883,15 @@ } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" } }, "bser": { @@ -2059,9 +1987,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001374", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz", - "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==", + "version": "1.0.30001412", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz", + "integrity": "sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==", "dev": true }, "chalk": { @@ -2111,9 +2039,9 @@ "dev": true }, "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==", "dev": true }, "cjs-module-lexer": { @@ -2697,9 +2625,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.211", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz", - "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==", + "version": "1.4.264", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.264.tgz", + "integrity": "sha512-AZ6ZRkucHOQT8wke50MktxtmcWZr67kE17X/nAXFf62NIdMdgY6xfsaJD5Szoy84lnkuPWH+4tTNE3s2+bPCiw==", "dev": true }, "emittery": { @@ -2767,31 +2695,32 @@ } }, "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", + "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "is-callable": "^1.2.6", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", "unbox-primitive": "^1.0.2" @@ -2827,9 +2756,9 @@ "dev": true }, "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "eslint": { @@ -2879,24 +2808,6 @@ "text-table": "^0.2.0" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2906,47 +2817,6 @@ "ms": "2.1.2" } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -2961,56 +2831,17 @@ "slash": "^3.0.0" } }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true } } }, @@ -3022,13 +2853,13 @@ "requires": {} }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" } }, "eslint-utils": { @@ -3063,14 +2894,6 @@ "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - } } }, "esprima": { @@ -3086,14 +2909,6 @@ "dev": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "esrecurse": { @@ -3103,20 +2918,12 @@ "dev": true, "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "esutils": { @@ -3376,9 +3183,9 @@ } }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -3427,9 +3234,9 @@ } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "requires": { "bser": "2.1.1" @@ -3531,12 +3338,12 @@ } }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, @@ -3557,9 +3364,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, "for-in": { @@ -3660,9 +3467,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -3770,10 +3577,13 @@ } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } }, "globby": { "version": "13.1.2", @@ -4193,14 +4003,6 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } } }, "import-local": { @@ -4307,9 +4109,9 @@ "dev": true }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, "is-ci": { @@ -4383,6 +4185,14 @@ "requires": { "acorn": "^7.1.1", "object-assign": "^4.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } } }, "is-extendable": { @@ -4616,28 +4426,6 @@ "@jest/types": "^29.0.3", "import-local": "^3.0.2", "jest-cli": "^29.0.3" - }, - "dependencies": { - "jest-cli": { - "version": "29.0.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.0.3.tgz", - "integrity": "sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ==", - "dev": true, - "requires": { - "@jest/core": "^29.0.3", - "@jest/test-result": "^29.0.3", - "@jest/types": "^29.0.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.0.3", - "jest-util": "^29.0.3", - "jest-validate": "^29.0.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - } - } } }, "jest-changed-files": { @@ -4685,6 +4473,26 @@ } } }, + "jest-cli": { + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.0.3.tgz", + "integrity": "sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ==", + "dev": true, + "requires": { + "@jest/core": "^29.0.3", + "@jest/test-result": "^29.0.3", + "@jest/types": "^29.0.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.0.3", + "jest-util": "^29.0.3", + "jest-validate": "^29.0.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + } + }, "jest-config": { "version": "29.0.3", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.0.3.tgz", @@ -5301,9 +5109,9 @@ } }, "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "version": "17.6.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.1.tgz", + "integrity": "sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w==", "dev": true, "requires": { "@hapi/hoek": "^9.0.0", @@ -5337,13 +5145,12 @@ "dev": true }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsesc": { @@ -5365,9 +5172,9 @@ "dev": true }, "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { @@ -5506,12 +5313,12 @@ } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" } }, "lodash": { @@ -6105,9 +5912,9 @@ } }, "object.assign": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz", - "integrity": "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -6182,23 +5989,12 @@ } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } + "p-limit": "^3.0.2" } }, "p-try": { @@ -6361,6 +6157,45 @@ "dev": true, "requires": { "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } } }, "pofile": { @@ -7143,6 +6978,14 @@ "dev": true, "requires": { "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } } }, "resolve-dir": { @@ -7156,9 +6999,9 @@ } }, "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "resolve-url": { @@ -7204,9 +7047,9 @@ } }, "rxjs": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", - "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", "dev": true, "requires": { "tslib": "^2.1.0" @@ -7227,6 +7070,17 @@ "ret": "~0.1.10" } }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -7237,6 +7091,35 @@ "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "sdown": { @@ -7661,9 +7544,9 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, "split-string": { @@ -7694,6 +7577,14 @@ "dev": true, "requires": { "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } } }, "static-extend": { @@ -7958,9 +7849,9 @@ } }, "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", + "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -7969,12 +7860,6 @@ "source-map-support": "~0.5.20" }, "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -7994,43 +7879,18 @@ } }, "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -8160,9 +8020,9 @@ "dev": true }, "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "unbox-primitive": { @@ -8255,9 +8115,9 @@ } }, "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -8400,42 +8260,20 @@ "webpack-sources": "^3.2.3" }, "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "schema-utils": { diff --git a/public/index.pug b/public/index.pug index 6e240738..a3b47b2d 100644 --- a/public/index.pug +++ b/public/index.pug @@ -42,8 +42,10 @@ html(lang=lang) path( d='M11.2 0a.8.8 0 0 0-.8.8v11.4L7.26 9.44a.803.803 0 0 0-1.13.074l-1.05 1.2a.8.8 0 0 0 .073 1.13l6.33 5.54a.795.795 0 0 0 1.05 0l6.32-5.54a.8.8 0 0 0 .074-1.13l-1.05-1.2a.804.804 0 0 0-1.13-.074l-3.14 2.76V.8a.8.8 0 0 0-.8-.8zm-8 20.8a.8.8 0 0 0-.8.8v1.6a.8.8 0 0 0 .8.8h17.6a.8.8 0 0 0 .8-.8v-1.6a.8.8 0 0 0-.8-.8z' ) + symbol#fg + path(d='M7 2h2v20H7V2m12 7-8 5.6V3.4L19 9Z') - body.no-js.order-alpha.download-svg(tabindex='-1') + body.no-js.order-alpha.layout-comfortable.download-svg(tabindex='-1') .popup_modal.popup__top.hidden .popup-body table.extensions__table @@ -64,6 +66,30 @@ html(lang=lang) rel='noopener', target='_blank' ) #{ ext.author.name } + .detail_modal.detail__top.hidden + .detail-body + .detail-body__left + img#icon-preview + .detail-body__right + h2#icon-title + button#icon-color + a#icon-source + a#guidelines.icon-guidelines(style='display: none') #{ t_('Brand Guidelines') } + a#no-guidelines.icon-guidelines.italic-text(style='display: none') #{ t_('no brand guidelines') } + a#license.icon-license(style='display: none') + a#no-license.icon-license.italic-text(style='display: none') #{ t_('no icon license') } + #icon-deprecated(style='display: none') + span.deprecated__text #{ t_('Deprecated') } + a.deprecated__message( + target='_blank', + removal-msg-schema=`${ t_('It will be removed at version $version') }` + ) + .detail-footer + a#icon-download-svg.detail-button(role='button', download) #{ t_('Download SVG') } + a#icon-download-color-svg.detail-button(role='button', download) #{ t_('Download colored SVG') } + a#icon-download-pdf.detail-button(role='button', download) #{ t_('Download PDF') } + a#icon-report.report__icon.detail-button(role='button') #{ t_('Report icon as outdated') } + header.header ul.header__list li.header__list-item @@ -331,6 +357,35 @@ html(lang=lang) path( d='M17.612 7.239H24l-.006.882-.01.885-2.006.012h-2.01v2.151h3.753v1.751h-3.752v3.841h-2.357V12Zm-7.653.02c.56-.024 1.078-.02 1.545.013.92.062 1.597.221 2.217.522.843.406 1.473 1.03 1.845 1.825.614 1.315.567 3.328-.109 4.661-.793 1.567-2.167 2.308-4.564 2.458-.713.046-2.226-.015-2.79-.11L8 16.61V7.435l.164-.022a22.974 22.974 0 0 1 1.795-.151zm-7.917 0c.687-.019 1.344 0 1.71.053.623.1 1.063.255 1.47.523.834.55 1.271 1.57 1.166 2.703-.078.802-.33 1.392-.8 1.872-.462.47-1.042.759-1.842.918-.301.059-.45.071-1.04.071h-.69l-.007 1.675L2 16.748l-1.002.013H0l.006-4.66.01-4.662.14-.024c.483-.084 1.2-.137 1.886-.157Zm.78 1.62c-.283 0-.57 0-.645.019a.968.968 0 0 0-.162.045c-.018.013-.03.526-.03 1.398v1.38l.117.025c.214.043.937.024 1.148-.03.778-.206 1.19-.774 1.144-1.573-.034-.6-.32-.987-.875-1.186-.158-.059-.263-.071-.697-.078Zm8.244 0a5.62 5.62 0 0 0-.725.015 1.973 1.973 0 0 0-.254.043c-.031.013-.04.651-.04 3.057 0 2.87.002 3.045.055 3.066.096.041 1.188.026 1.417-.021 1.24-.243 2-1.036 2.233-2.329a5.674 5.674 0 0 0 .05-1.389c-.056-.46-.137-.743-.317-1.11-.142-.279-.198-.359-.443-.598-.372-.366-.72-.55-1.29-.68a4.624 4.624 0 0 0-.686-.055z' ) + .control-field + label.control-field__title #{ t_('Layout') } + .control-field__row + button#layout-comfortable.control__button.first__button( + title=`${ t_('Comfortable') }`, + disabled + ) + svg( + role='img', + viewBox='0 0 24 24', + xmlns='http://www.w3.org/2000/svg', + aria-labelledby='layout-comfortable' + ) + path( + d='M19 2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h14zm0 4V4H5v2h14zm0 10a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 1 2-2h14zm0 4v-2H5v2h14zm0-11a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 1 2-2h14zm0 4v-2H5v2h14z' + ) + button#layout-compact.control__button( + title=`${ t_('Compact') }`, + disabled + ) + svg( + role='img', + viewBox='0 0 24 24', + xmlns='http://www.w3.org/2000/svg', + aria-labelledby='layout-compact' + ) + path( + d='M2 5.5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-13zm9 0H4v3h7v-3zm2 0v3h7v-3h-7zm7 5h-7v3h7v-3zm0 5h-7v3h7v-3zm-9 3v-3H4v3h7zm-7-5h7v-3H4v3z' + ) ul.grid li.grid-item--if-empty.hidden( aria-hidden='true', @@ -349,7 +404,8 @@ html(lang=lang) li.grid-item( order-color=icon.indexByColor, order-alpha=icon.indexByAlpha, - aliases=icon.plainAliases + aliases=icon.plainAliases, + deprecated=icon.deprecatedAt === false ? false : JSON.stringify(icon.deprecatedAt) ) .grid-item__row.mv-2.fg-2 button.grid-item__preview.copy-button.copy-svg( @@ -386,11 +442,23 @@ html(lang=lang) h2.grid-item__title #{ icon.localizedTitle || icon.title } .grid-item__footer button( - class=`grid-item__color copy-button copy-color ${icon.light ? "contrast-light" : "contrast-dark"} ${icon.superLight ? "border-light" : ""} ${icon.superDark ? "border-dark" : ""}`, + class=`grid-item__color copy-button copy-color ${icon.light ? "contrast-light" : "contrast-dark"}`, style=`background-color: #${icon.shortHex}`, title=`${ t_('$iconTitle color').replace('$iconTitle', icon.localizedTitle || icon.title) }`, disabled ) ##{ icon.hex } + button.grid-item__button.view-button( + title=`${ t_('view $iconTitle').replace('$iconTitle', icon.title) }`, + index=`${icon.indexByAlpha}` + ) + svg( + role='img', + xmlns='http://www.w3.org/2000/svg', + viewBox='0 0 24 24' + ) + path( + d='m23.136 20.694-4.41-4.413a1.93 1.93 0 0 0-1.186-.551 9.632 9.632 0 0 0 2.13-6.044C19.67 4.344 15.325 0 9.983 0 4.642 0 .297 4.344.297 9.686c0 5.34 4.344 9.685 9.685 9.685 2.016 0 3.89-.62 5.44-1.677.01.48.195.957.563 1.325l4.413 4.413c.377.38.874.568 1.369.568s.992-.189 1.369-.568a1.935 1.935 0 0 0 0-2.738zm-13.154-4.55a6.465 6.465 0 0 1-6.458-6.458 6.465 6.465 0 0 1 6.458-6.458 6.465 6.465 0 0 1 6.458 6.458 6.465 6.465 0 0 1-6.458 6.458z' + ) a.grid-item__button( href=`/icons/${icon.slug}.svg`, role='button', @@ -398,6 +466,13 @@ html(lang=lang) ) svg(role='img', viewBox='0 0 24 24') use(href='#cp') + a.report__icon.grid-item__button( + href=`https://github.com/simple-icons/simple-icons/issues/new?labels=icon+outdated&template=icon_update.md&title=Update%20${icon.title}%20icon`, + role='button', + title=`${ t_('Report $iconTitle as outdated').replace('$iconTitle', icon.localizedTitle || icon.title) }` + ) + svg(role='img', viewBox='0 0 24 24') + use(href='#fg') footer.footer .footer-description //- prettier-ignore diff --git a/public/scripts/data.js b/public/scripts/data.js new file mode 100644 index 00000000..48e8f456 --- /dev/null +++ b/public/scripts/data.js @@ -0,0 +1,58 @@ +const TITLE_TO_SLUG_REPLACEMENTS = { + '+': 'plus', + '.': 'dot', + '&': 'and', + đ: 'd', + ħ: 'h', + ı: 'i', + ĸ: 'k', + ŀ: 'l', + ł: 'l', + ß: 'ss', + ŧ: 't', +}; + +const TITLE_TO_SLUG_CHARS_REGEX = RegExp( + `[${Object.keys(TITLE_TO_SLUG_REPLACEMENTS).join('')}]`, + 'g', +); + +const TITLE_TO_SLUG_RANGE_REGEX = /[^a-z0-9]/g; + +/** + * Converts a brand title into a slug/filename. + * @param {String} title The title to convert + */ +const titleToSlug = (title) => + title + .toLowerCase() + .replace( + TITLE_TO_SLUG_CHARS_REGEX, + (char) => TITLE_TO_SLUG_REPLACEMENTS[char], + ) + .normalize('NFD') + .replace(TITLE_TO_SLUG_RANGE_REGEX, ''); + +const SIMPLE_ICONS_DATA = {}; + +export const getIconData = (slug) => SIMPLE_ICONS_DATA[slug]; + +const initIconsData = async () => { + const [iconsDataResponse, icons] = await Promise.all([ + fetch('/simple-icons.json'), + import('simple-icons/icons'), + ]); + const iconsData = await iconsDataResponse.json(); + + for (const iconData of iconsData.icons) { + const slug = iconData.slug || titleToSlug(iconData.title); + const capitalizedSlug = slug.charAt(0).toUpperCase() + slug.slice(1); + const icon = icons[`si${capitalizedSlug}`]; + if (iconData.aliases) { + icon.aliases = iconData.aliases; + } + SIMPLE_ICONS_DATA[slug] = icon; + } +}; + +export default initIconsData; diff --git a/public/scripts/dom-utils.js b/public/scripts/dom-utils.js index 5e4225f6..278560db 100644 --- a/public/scripts/dom-utils.js +++ b/public/scripts/dom-utils.js @@ -44,9 +44,11 @@ export const addClass = ($el, clazz) => { } }; -export const removeClass = ($el, clazz) => { +export const removeClass = ($el, ...clazz) => { if ($el) { - $el.classList.remove(clazz); + for (const c of clazz) { + $el.classList.remove(c); + } } }; diff --git a/public/scripts/download-type.js b/public/scripts/download-type.js index da3e4bfe..209d8fb8 100644 --- a/public/scripts/download-type.js +++ b/public/scripts/download-type.js @@ -15,7 +15,9 @@ export default (document, storage) => { const $body = document.querySelector('body'); const $downloadPdf = document.getElementById('download-pdf'); const $downloadSvg = document.getElementById('download-svg'); - const $downloadFiles = document.getElementsByClassName('grid-item__button'); + const $downloadFiles = document.getElementsByClassName( + 'a[download].grid-item__button', + ); $downloadPdf.disabled = false; $downloadSvg.disabled = false; @@ -53,7 +55,8 @@ export default (document, storage) => { for (let i = 0; i < $downloadFiles.length; i++) { $downloadFiles[i].addEventListener('click', (event) => { - const slug = iconHrefToSlug(event.target.getAttribute('href')); + const href = event.target.getAttribute('href'); + const slug = iconHrefToSlug(href); const type = storage.getItem(STORAGE_KEY_DOWNLOAD_TYPE); event.target.setAttribute('href', `./icons/${slug}.${type}`); }); diff --git a/public/scripts/index.js b/public/scripts/index.js index 625f0360..9fc3d2e2 100644 --- a/public/scripts/index.js +++ b/public/scripts/index.js @@ -34,13 +34,29 @@ const detachedInitDownloadType = async () => { initDownloadType(document, storage); }; -const detachedInitModal = async () => { +const detachedInitData = async () => { + const iconsData = await import('./data.js'); + const { default: initData } = iconsData; + initData(); + return iconsData; +}; + +const detachedInitModal = async (iconsData) => { const { default: initModal } = await import('./modal.js'); - initModal(document, domUtils); + initModal(document, domUtils, iconsData); +}; + +const detachedInitLayout = async () => { + const { default: initLayout } = await import('./layout.js'); + initLayout(document, storage); }; -detachedInitColorScheme(); -detachedInitCopyButtons(); -detachedInitSearch(); -detachedInitDownloadType(); -detachedInitModal(); +(async () => { + detachedInitColorScheme(); + detachedInitCopyButtons(); + detachedInitSearch(); + detachedInitDownloadType(); + const iconsData = await detachedInitData(); + detachedInitModal(iconsData); + detachedInitLayout(); +})(); diff --git a/public/scripts/layout.js b/public/scripts/layout.js new file mode 100644 index 00000000..5a8877d4 --- /dev/null +++ b/public/scripts/layout.js @@ -0,0 +1,52 @@ +import { STORAGE_KEY_LAYOUT } from './storage.js'; + +const LAYOUT_COMPACT = 'layout-compact'; +const LAYOUT_COMFORTABLE = 'layout-comfortable'; + +const DEFAULT_LAYOUT = LAYOUT_COMFORTABLE; + +const initLayout = (document, storage) => { + let activelayout = DEFAULT_LAYOUT; + + const $body = document.querySelector('body'); + const $layoutComfortable = document.getElementById('layout-comfortable'); + const $layoutCompact = document.getElementById('layout-compact'); + + function selectlayout(selected) { + if (selected === activelayout) { + return; + } + + if (selected === LAYOUT_COMFORTABLE) { + $body.classList.add(LAYOUT_COMFORTABLE); + $body.classList.remove(LAYOUT_COMPACT); + } else if (selected === LAYOUT_COMPACT) { + $body.classList.add(LAYOUT_COMPACT); + $body.classList.remove(LAYOUT_COMFORTABLE); + } else { + selected = DEFAULT_LAYOUT; + $body.classList.remove(LAYOUT_COMFORTABLE, LAYOUT_COMPACT); + $body.classList.add(DEFAULT_LAYOUT); + } + + storage.setItem(STORAGE_KEY_LAYOUT, selected); + activelayout = selected; + } + + const storedlayout = storage.getItem(STORAGE_KEY_LAYOUT); + selectlayout(storedlayout); + + $layoutComfortable.addEventListener('click', (event) => { + event.preventDefault(); + selectlayout(LAYOUT_COMFORTABLE); + }); + $layoutCompact.addEventListener('click', (event) => { + event.preventDefault(); + selectlayout(LAYOUT_COMPACT); + }); + + $layoutComfortable.disabled = false; + $layoutCompact.disabled = false; +}; + +export default initLayout; diff --git a/public/scripts/modal.js b/public/scripts/modal.js index f1e7f935..3441d50d 100644 --- a/public/scripts/modal.js +++ b/public/scripts/modal.js @@ -1,21 +1,141 @@ -export default (document, domUtils) => { - const $modalTrigger = document.querySelector('.popup-trigger'); +import getRelativeLuminance from 'get-relative-luminance'; + +let DETAILS_MODAL_OPENED = false; + +export default (document, domUtils, iconsData) => { + const $popupModalTrigger = document.querySelector('.popup-trigger'); const $popupModal = document.querySelector('.popup_modal'); const $popupBody = document.querySelector('.popup-body'); - $modalTrigger.addEventListener('click', (e) => { + + // Detail view + const $detailButtons = document.querySelectorAll('.view-button'); + const $detailModal = document.querySelector('.detail_modal'); + const $detailBody = document.querySelector('.detail-body'); + const $detailFooter = document.querySelector('.detail-footer'); + + $popupModalTrigger.addEventListener('click', (e) => { domUtils.toggleVisibleElement($popupModal); e.stopPropagation(); + domUtils.hideElement($detailModal); + DETAILS_MODAL_OPENED = false; }); + const onClickDetailButton = (e) => { + domUtils.hideElement($popupModal); + + const $iconGridItem = e.target.closest('.grid-item'); + const $iconImage = $iconGridItem.children[0].children[0].children[0]; + const filename = $iconImage.getAttribute('src').split('/').pop(); + const slug = filename.substring(0, filename.length - 4); + const icon = iconsData.getIconData(slug); + + if (!DETAILS_MODAL_OPENED) { + domUtils.toggleVisibleElement($detailModal); + } + + const luminance = getRelativeLuminance.default(`#${icon.hex}`); + const $hexContainer = $detailBody.querySelector('#icon-color'); + + $hexContainer.setAttribute( + 'style', + `background-color: #${icon.hex}; color: #${ + luminance < 0.4 ? 'eee' : '222' + }`, + ); + $hexContainer.innerText = `#${icon.hex}`; + $detailBody.querySelector('img#icon-preview').src = $iconImage.src; + $detailBody.querySelector('#icon-title').innerText = icon.title; + $detailBody.querySelector('#icon-source').setAttribute('href', icon.source); + + const $iconGuidelines = $detailBody.querySelector( + '.icon-guidelines#guidelines', + ); + const $iconGuidelinesNoGuidelines = $detailBody.querySelector( + '.icon-guidelines#no-guidelines', + ); + if (icon.guidelines) { + $iconGuidelines.style.display = ''; + $iconGuidelinesNoGuidelines.style.display = 'none'; + $iconGuidelines.setAttribute('href', icon.guidelines); + } else { + $iconGuidelines.style.display = 'none'; + $iconGuidelinesNoGuidelines.style.display = ''; + } + + const $iconLicense = $detailBody.querySelector('.icon-license#license'); + const $iconLicenseNoLicense = $detailBody.querySelector( + '.icon-license#no-license', + ); + if (icon.license) { + $iconLicense.style.display = ''; + $iconLicenseNoLicense.style.display = 'none'; + $iconLicense.setAttribute('href', icon.license.url); + } else { + $iconLicense.style.display = 'none'; + $iconLicenseNoLicense.style.display = ''; + } + + const $iconDeprecated = $detailBody.querySelector('#icon-deprecated'); + const $iconDeprecatedMessage = $iconDeprecated.children[1]; + + if ($iconGridItem.hasAttribute('deprecated')) { + const deprecatedAt = JSON.parse($iconGridItem.getAttribute('deprecated')); + $iconDeprecated.style.display = ''; + $iconDeprecatedMessage.setAttribute( + 'href', + `https://github.com/simple-icons/simple-icons/milestone/${deprecatedAt.milestoneNumber}`, + ); + $iconDeprecatedMessage.innerText = $iconDeprecatedMessage + .getAttribute('removal-msg-schema') + .replace('$version', deprecatedAt.version); + } else { + $iconDeprecated.style.display = 'none'; + $iconDeprecatedMessage.removeAttribute('href'); + $iconDeprecatedMessage.innerText = ''; + } + + const iconSVG = icon.svg.replace('svg', `svg fill="%23${icon.hex}"`); + const colorSVG = `data:image/svg+xml,${iconSVG}`; + + $detailFooter + .querySelector('#icon-download-svg') + .setAttribute('href', `./icons/${icon.slug}.svg`); + $detailFooter + .querySelector('#icon-download-color-svg') + .setAttribute('href', colorSVG); + $detailFooter + .querySelector('#icon-download-pdf') + .setAttribute('href', `./icons/${icon.slug}.pdf`); + $detailFooter + .querySelector('#icon-report') + .setAttribute( + 'href', + `https://github.com/simple-icons/simple-icons/issues/new?labels=icon+outdated&template=icon_update.md&title=Update%20${icon.title}%20icon`, + ); + + DETAILS_MODAL_OPENED = true; + e.stopPropagation(); + }; + + for (const $detailButton of $detailButtons) { + $detailButton.addEventListener('click', onClickDetailButton); + } + document.addEventListener('keyup', (e) => { if (e.key === 'Escape') { domUtils.hideElement($popupModal); + domUtils.hideElement($detailModal); } }); document.addEventListener('click', (e) => { - if (!e.composedPath().includes($popupBody)) { + const composedPath = e.composedPath(); + if (!composedPath.includes($popupBody)) { domUtils.hideElement($popupModal); } + if (!composedPath.includes($detailModal)) { + domUtils.hideElement($detailModal); + DETAILS_MODAL_OPENED = false; + } }); }; diff --git a/public/scripts/storage.js b/public/scripts/storage.js index a8d1425c..e2aa703b 100644 --- a/public/scripts/storage.js +++ b/public/scripts/storage.js @@ -3,6 +3,7 @@ const PREFIX = 'simple-icons-'; export const STORAGE_KEY_COLOR_SCHEME = PREFIX + 'preferred-color-scheme'; export const STORAGE_KEY_ORDERING = PREFIX + 'preferred-ordering'; export const STORAGE_KEY_DOWNLOAD_TYPE = PREFIX + 'preferred-download-type'; +export const STORAGE_KEY_LAYOUT = PREFIX + 'preferred-layout'; const mockStorage = { hasItem() { diff --git a/public/stylesheet.css b/public/stylesheet.css index cbad610a..33ba7213 100644 --- a/public/stylesheet.css +++ b/public/stylesheet.css @@ -69,6 +69,7 @@ --lm-color-link-hover: rgb(52, 52, 238); --lm-color-link-visited: rgb(85, 26, 139); } + @media (max-width: 1280px) { :root { --side-offset: 3rem; @@ -221,40 +222,6 @@ a { /* Modal */ -.popup__top { - top: calc(var(--header-top-offset) + 65px); - right: var(--side-offset); -} -@media (max-width: 860px) { - .popup__top { - top: calc(var(--header-top-offset) + 65px); - } -} -@media (max-width: 640px) { - .popup__top { - top: calc(var(--header-top-offset) + 65px); - } -} - -.popup-trigger { - display: inline-block; -} - -.popup_modal { - background-color: #fff; - position: absolute; - border: 0.13rem solid var(--color-button-border); - z-index: 100; - background-color: var(--color-background); - border-radius: var(--border-radius-large); -} - -.popup__close { - font-size: 1.2rem; - cursor: pointer; - z-index: 100; -} - /* Extensions */ .extensions__table { font-family: var(--font-family-stylized); @@ -406,12 +373,23 @@ a { .control-field { display: flex; flex-direction: column; - margin-right: 1rem; } .control-field:first-of-type { flex-basis: 25%; min-width: 260px; } +.control-field:not(:last-of-type) { + margin-right: 1rem; +} +@media (max-width: 735px) { + .control-field:first-of-type { + min-width: 190px; + } + .control-field:not(:last-of-type) { + margin-right: 0.6rem; + } +} + @media (max-width: 640px) { .control-field { margin: 0.5rem 0 0.5rem 1rem; @@ -552,6 +530,8 @@ body.order-relevance #order-relevance { /* Control - color */ body.download-pdf #download-pdf, body.download-svg #download-svg, +body.layout-comfortable #layout-comfortable, +body.layout-compact #layout-compact, body.dark #color-scheme-dark, body.light #color-scheme-light, body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { @@ -572,7 +552,7 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { /* Grid */ -.grid { +.layout-comfortable .grid { --grid-width: 13rem; display: grid; @@ -581,6 +561,18 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { margin: 0 0 1.5rem; } +.layout-compact .grid { + --grid-width: 8rem; + + display: grid; + gap: 0.55rem; + grid-template-columns: repeat(auto-fill, minmax(var(--grid-width), 1fr)); + margin: 0 0 1.5rem; +} + +.grid-top-padding { + margin-top: 0.1rem; +} .grid-item--if-empty { display: flex; grid-column: 1 / span 2; @@ -614,14 +606,18 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { overflow: hidden; } -.grid-item__row { +.layout-comfortable .grid-item__row { padding: 0 1rem; width: 100%; } -.grid-item__preview { - --preview-size: 3.5rem; +.layout-compact .grid-item__row { + padding: 0 0.5rem; + width: 100%; +} +.layout-comfortable .grid-item__preview { + --preview-size: 3.5rem; cursor: default; display: block; height: var(--preview-size); @@ -630,7 +626,17 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { width: var(--preview-size); } -.grid-item__title { +.layout-compact .grid-item__preview { + --preview-size: 3.5rem; + cursor: default; + display: block; + height: var(--preview-size); + margin: 0.5rem auto 0.5rem; + position: relative; + width: var(--preview-size); +} + +.layout-comfortable .grid-item__title { font-family: var(--font-family-text); font-size: 1.2rem; font-weight: 600; @@ -639,6 +645,15 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { padding-right: 1rem; } +.layout-compact .grid-item__title { + font-family: var(--font-family-text); + font-weight: 600; + width: 7.2rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + .copy-svg::before { background-color: var(--color-background-transparent); background-size: 1.7rem 1.7rem; @@ -671,6 +686,11 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { opacity: 1; text-decoration: underline; } + +.layout-compact .grid-item__link { + font-size: 0.63rem; +} + @media (hover: hover) { .grid-item__link:hover { opacity: 1; @@ -689,9 +709,8 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { height: 2rem; } -.grid-item__color { +.layout-comfortable .grid-item__color { border-top: 1px solid var(--color-grid-item-divider); - color: #000; flex-grow: 2; font-family: var(--font-family-stylized); font-size: 0.75rem; @@ -701,11 +720,24 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { padding: 8px; position: relative; } -.grid-item__color.contrast-light { - color: #fff; + +.layout-compact .grid-item__color { + border-top: 1px solid var(--color-grid-item-divider); + flex-grow: 2; + font-family: var(--font-family-stylized); + font-size: 0.75rem; + font-weight: 600; + letter-spacing: 1px; + line-height: 1rem; + padding: 4px; + position: absolute; + transform: rotate(90deg); + width: 4rem; + left: -1.25rem; + top: 1.21rem; } -.grid-item__button { +.layout-comfortable .grid-item__button { fill: var(--color-button-active); border-top: 1px solid var(--color-grid-item-divider); background-color: var(--color-background); @@ -718,13 +750,28 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { text-align: center; } +.layout-compact .grid-item__button { + fill: var(--color-button-active); + border-top: 1px solid var(--color-grid-item-divider); + background-color: var(--color-background); + flex-grow: 1; + font-family: var(--font-family-stylized); + font-size: 0.75rem; + font-weight: 600; + outline: none; + padding: 8px 4px; + text-align: center; +} + .grid-item__button svg { height: 1rem; pointer-events: none; } .grid-item__button:focus, -.grid-item__button:hover { +.grid-item__button:hover, +.detail-button:focus, +.detail-button:hover { fill: var(--color-button-text-hover); background: var(--color-button-hover); } @@ -898,16 +945,19 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { /* Deprecated notice */ .deprecated { position: relative; - font-family: var(--font-family-stylized); +} + +.deprecated .deprecated__text { + font-size: 11px; } .deprecated__text { position: relative; float: right; - top: -18px; + top: -17px; right: 13px; text-transform: uppercase; - font-size: 11px; + font-family: var(--font-family-stylized); } .deprecated__text::before { @@ -917,11 +967,15 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { height: 100%; left: -8px; position: absolute; - top: 3px; + top: 4px; width: 100%; transform: scale(1.25, 1.25); } +.deprecated .deprecated__message { + font-size: 12px; +} + .deprecated__message { position: absolute; right: 9px; @@ -933,6 +987,10 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { color: var(--color-text-light); } +.layout-compact .deprecated .deprecated__message { + display: none; +} + /* .link-button */ .link-button::before { @@ -980,6 +1038,191 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { color: var(--color-text-light); } +.detail_modal { + width: 620px; + min-height: 330px; + max-height: 370px; + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + border: 0.13rem solid var(--color-button-border); + z-index: 101; + background-color: var(--color-background); + border-radius: var(--border-radius-large); + padding: 5px; +} + +@media (max-width: 560px) { + .detail_modal { + width: 440px; + min-height: 370px; + max-height: 410px; + } +} + +.detail-body { + padding: 10px; + display: flex; +} + +.detail-body__left, +.detail-body__right { + width: 50%; + height: auto; + float: left; + padding: 5px; +} + +.detail-body__right { + display: flex; + flex-direction: column; + justify-content: space-around; + height: 161px; +} + +.detail_modal #icon-preview { + width: 80%; + position: relative; + left: 20px; + margin-bottom: 20px; + cursor: default; +} + +body:not(.light) .detail_modal #icon-preview { + filter: invert(1); +} + +.detail_modal #icon-title { + font-size: 27px; + font-family: var(--font-family-text); + font-weight: bold; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + top: 15px; + padding: 2px 0px 7px; +} + +.detail_modal #icon-color { + font-family: var(--font-family-stylized); + font-size: 15px; + font-weight: 600; + margin-bottom: 15px; + cursor: default; + width: 75px; + height: 25px; + border-radius: 2px; +} + +.detail_modal .icon-guidelines, +.detail_modal .icon-license { + font-size: 16px; + padding: 6px 0; +} + +.detail_modal .icon-guidelines.italic-text, +.detail_modal .icon-license.italic-text { + cursor: default; + opacity: 0.75; +} + +.detail_modal #icon-deprecated { + position: relative; + top: 40px; + height: 0px; +} + +.detail_modal #icon-deprecated span { + font-size: 14px; + white-space: nowrap; + font-weight: 600; +} + +.detail_modal #icon-deprecated span::before { + transform: scale(1.4); + left: 0px; + top: 6px; +} + +.detail_modal #icon-deprecated a { + font-size: 16px; + top: 5px; + white-space: nowrap; + font-style: var(--font-family-text); +} + +.detail-footer { + width: 95%; + display: flex; + justify-content: space-around; + position: absolute; + bottom: 13px; + left: 18px; +} + +.detail-footer a { + font-size: 15px; + color: var(--color-button-text); + padding: 3px 7px; + border-radius: 3px; + text-align: center; +} + +.detail-footer a:hover { + color: var(--color-button-text-hover); + background: var(--color-button-hover); +} + +@media (max-width: 560px) { + .detail-footer { + bottom: 8px; + left: 5px; + } + + .detail-footer a { + font-size: 15px; + } +} + +.italic-text { + font-style: italic; +} + +.popup__top { + top: calc(var(--header-top-offset) + 65px); + right: var(--side-offset); +} +@media (max-width: 860px) { + .popup__top { + top: calc(var(--header-top-offset) + 65px); + } +} +@media (max-width: 640px) { + .popup__top { + top: calc(var(--header-top-offset) + 65px); + } +} + +.popup-trigger { + display: inline-block; +} + +.popup_modal { + background-color: #fff; + position: absolute; + border: 0.13rem solid var(--color-button-border); + z-index: 100; + background-color: var(--color-background); + border-radius: var(--border-radius-large); +} + +.popup__close { + font-size: 1.2rem; + cursor: pointer; + z-index: 100; +} + /* Utility */ .fg-2 { @@ -995,3 +1238,11 @@ body:not(.dark):not(.light) #color-scheme-system:not(:disabled) { height: 0; width: 0; } + +.contrast-light { + color: #eee; +} + +.contrast-dark { + color: #222; +} diff --git a/scripts/https.js b/scripts/https.js index e6db3b24..3bf3abdf 100644 --- a/scripts/https.js +++ b/scripts/https.js @@ -5,18 +5,16 @@ import https from 'node:https'; -export const GET = (hostname, path) => { +export const GET = (hostname, path, options) => { return new Promise((resolve, reject) => { - const options = { + const requestOptions = { hostname, path, method: 'GET', - headers: { - 'user-agent': 'simple-icons-website', - }, }; - const req = https.request(options, (res) => { + const opts = Object.assign(requestOptions, options); + const req = https.request(opts, (res) => { let result = ''; res.on('data', (chunk) => { @@ -36,18 +34,15 @@ export const GET = (hostname, path) => { }); }; -export const POST = (hostname, path, data) => { +export const POST = (hostname, path, data, options) => { return new Promise((resolve, reject) => { - const options = { + const requestOptions = { hostname, path, method: 'POST', - headers: { - 'user-agent': 'simple-icons-website', - }, }; - - const req = https.request(options, (res) => { + const opts = Object.assign(requestOptions, options); + const req = https.request(opts, (res) => { let result = ''; res.on('data', (chunk) => { @@ -68,13 +63,28 @@ export const POST = (hostname, path, data) => { }); }; +const fillGithubOptions = (options) => { + const ghToken = process.env.GITHUB_TOKEN; + + if (!options.headers) { + options.headers = {}; + } + options.headers['User-Agent'] = 'simple-icons-website'; + + if (ghToken) { + options.headers.Authorization = `token ${ghToken}`; + } +}; + /* eslint-disable require-await */ export const githubAPI = { - GET: async (path) => { - return GET('api.github.com', path); + GET: async (path, options = {}) => { + fillGithubOptions(options); + return GET('api.github.com', path, options); }, - POST: async (path, data) => { - return POST('api.github.com', path, data); + POST: async (path, data, options = {}) => { + fillGithubOptions(options); + return POST('api.github.com', path, data, options); }, }; /* eslint-enable require-await */ diff --git a/scripts/removed-icons.js b/scripts/removed-icons.js new file mode 100644 index 00000000..19a0a893 --- /dev/null +++ b/scripts/removed-icons.js @@ -0,0 +1,314 @@ +module.exports = [ + { + title: 'Fedora', + hex: '294172', + issue: 'https://github.com/simple-icons/simple-icons/pull/6892', + path: '', + }, + { + title: 'Koding', + hex: '00B057', + issue: 'https://github.com/simple-icons/simple-icons/issues/4129', + path: 'M.8 0H23v6H1V0zm0 9H18v6H.7V9zm0 9H23v6H1v-6z', + }, + { + title: 'Material-UI', + hex: '0081CB', + issue: 'https://github.com/simple-icons/simple-icons/pull/6902', + path: 'M0 2.475v10.39l3 1.733V7.67l6 3.465 6-3.465v3.465l-6 3.463v3.464l6 3.463 9-5.195V9.402l-3 1.733v3.463l-6 3.464-3-1.732 6-3.465V2.475L9 7.67 0 2.475zm24 0l-3 1.73V7.67l3-1.732V2.474Z', + }, + { + title: 'PJSIP', + hex: 'F86001', + issue: 'https://github.com/simple-icons/simple-icons/pull/4910', + path: 'M5.272 20.562H10.2l2.657 2.657c.873.874 2.114 1.039 2.782.371l7.951-7.951c.668-.668.503-1.909-.37-2.782L11.142.781C10.27-.093 9.029-.258 8.36.41L.41 8.36c-.668.668-.503 1.909.37 2.782l4.492 4.492zm2.142-2.142v-3.768l-.88-.88h.016l-2.507-2.507c-.873-.873-1.039-2.114-.371-2.782l4.811-4.811c.668-.668 1.909-.502 2.782.371l8.692 8.692c.873.873 1.039 2.114.371 2.782l-4.811 4.811c-.438.438-1.12.511-1.786.269a1.218 3.063 25.325 00.557-2.845 1.218 3.063 25.325 00-1.557.033 1.218 3.063 25.325 00-.931 1.252l-.618-.617zM5.172 11.24a1.628 1.628 0 002.302 0 1.628 1.628 0 000-2.302 1.628 1.628 0 00-2.303 0 1.628 1.628 0 000 2.302z', + }, + { + title: 'SaltStack', + hex: '00EACE', + issue: 'https://github.com/simple-icons/simple-icons/pull/6891', + path: 'M6.396 0L1.05.002v5.346h5.347V0zm5.94 2.697c-1.033 0-1.959.1-2.791.291v3.783c.645-.374 1.471-.568 2.5-.568 1.001 0 1.838.17 2.514.508 1.01.512 1.555 1.375 1.629 2.59h4.056c-.073-2.147-.874-3.783-2.394-4.912-1.522-1.127-3.36-1.692-5.514-1.692zM4.496 8.51c-.01.16-.023.322-.023.488 0 1.982.679 3.438 2.04 4.371.806.558 2.281 1.072 4.43 1.547l2.186.482c1.28.274 2.215.589 2.805.946.59.365.884.882.884 1.549 0 1.142-.603 1.922-1.806 2.341-.635.22-1.458.33-2.475.33-1.697 0-2.896-.417-3.596-1.248-.382-.457-.638-1.147-.767-2.07h-4.03c0 2.102.762 3.754 2.286 4.955C7.953 23.402 10.042 24 12.7 24c2.603 0 4.619-.609 6.045-1.828 1.427-1.22 2.14-2.751 2.14-4.596 0-1.8-.601-3.173-1.804-4.125-.776-.611-1.94-1.102-3.494-1.467l-3.543-.836c-1.367-.319-2.264-.596-2.686-.835-.655-.356-.982-.894-.982-1.616 0-.065.017-.124.021-.187H4.496zM21.92 21.844a1.077 1.077 0 000 2.152 1.077 1.077 0 000-2.152zm-.014.177a.898.898 0 01.014 0 .898.898 0 010 1.793.898.898 0 01-.014-1.793zm-.42.258v1.272h.221v-.49h.248l.256.49h.234v-.01l-.285-.531a.392.392 0 00.174-.133.356.356 0 00.06-.213.42.42 0 00-.033-.166.31.31 0 00-.088-.121.4.4 0 00-.144-.074.695.695 0 00-.195-.024h-.448zm.221.178h.227a.338.338 0 01.107.016.174.174 0 01.117.109.266.266 0 010 .176.175.175 0 01-.047.066.21.21 0 01-.072.045.314.314 0 01-.105.016h-.227v-.428z', + }, + { + title: 'Skyliner', + hex: '2FCEA0', + issue: 'https://github.com/simple-icons/simple-icons/pull/6890', + path: 'M7.961 17.563c-.182-.037-.366.044-.461.203-.475 1.02-1.576 1.592-2.684 1.395-.203-1.108.373-2.213 1.397-2.681.204-.125.271-.392.146-.597-.067-.111-.182-.188-.311-.205-1.577-.297-3.193.262-4.252 1.469C.545 18.865.074 21.03.5 23.113c.031.185.175.329.359.359.498.081 1.002.12 1.508.12 1.834.102 3.625-.581 4.931-1.873.89-1.054 1.259-2.452 1.007-3.808-.021-.187-.161-.337-.345-.375l.001.027zM23.778.203c-.171-.169-.522-.089-.522-.089C22.621.04 21.98.003 21.339.001c-4.154-.043-8.153 1.576-11.106 4.497-.36.362-.7.742-1.02 1.139-1.402-.65-3.008-.709-4.455-.165-2.287.984-3.623 3.787-4.729 6.671-.087.224.025.476.249.562.144.055.304.031.425-.064 1.566-1.163 3.618-1.445 5.44-.749L5.6 13.856c-.05.184.026.377.187.479 1.466 1.096 2.767 2.395 3.863 3.857.103.163.298.239.482.188l1.963-.539c.719 1.826.436 3.893-.749 5.456-.148.188-.116.463.071.61.121.096.285.12.428.064 2.883-1.109 5.686-2.443 6.665-4.722.544-1.446.487-3.049-.161-4.451.395-.326.772-.672 1.133-1.036 3.381-3.44 5-8.241 4.392-13.026 0 0 .076-.352-.096-.524V.203zM21.339.87c.563 0 1.127.029 1.688.088.079.771.103 1.548.07 2.322-.611-.066-1.184-.34-1.623-.771-.438-.437-.713-1.009-.777-1.623.209-.011.422-.018.636-.018l.006.002zM10.846 5.112C13.262 2.716 16.438 1.24 19.828.94c.07.677.33 1.318.749 1.855l-2.698 2.697c-1.529-1.203-3.742-.939-4.946.59-1.005 1.278-1.005 3.078 0 4.356l-3.147 3.147c-.811-.785-1.689-1.498-2.626-2.131.662-2.394 1.932-4.58 3.686-6.342zm7.524 3.159c.001 1.469-1.188 2.66-2.657 2.66-1.469.002-2.659-1.188-2.66-2.656 0-1.47 1.189-2.66 2.657-2.661h.003c1.467 0 2.656 1.19 2.657 2.657zM1.314 11.269c.941-2.254 2.09-4.268 3.779-4.994 1.154-.428 2.428-.396 3.559.09C7.639 7.78 6.871 9.36 6.387 11.033c-1.645-.667-3.498-.581-5.074.233l.001.003zm8.891 6.19c-1.074-1.37-2.311-2.604-3.683-3.677l.395-1.434c1.845 1.275 3.444 2.874 4.722 4.718l-1.434.393zm7.508 1.425c-.727 1.698-2.737 2.848-4.989 3.789.811-1.578.893-3.432.225-5.074 1.677-.488 3.259-1.26 4.679-2.278.484 1.134.515 2.412.083 3.566l.002-.003zm-5.186-2.06c-.629-.937-1.34-1.816-2.123-2.628l3.147-3.148c1.528 1.203 3.743.939 4.945-.59 1.006-1.278 1.006-3.078 0-4.356l2.698-2.698c.535.418 1.177.677 1.85.75-.299 3.387-1.772 6.563-4.166 8.979-1.763 1.754-3.947 3.022-6.343 3.684l-.008.007z', + }, + { + title: 'Adobe PhoneGap', + hex: '27A1C5', + issue: 'https://github.com/simple-icons/simple-icons/pull/5245', + path: 'M7.463 15.549l-.856.061c0 .17.008.309.008.41.023 1.063.624 1.287 1.126 1.287.069 0 .115-.008.115-.008h.016l1.426-.139c.054-.17.062-.293.062-.293s-.193-8.983-.24-10.116a1.215 1.215 0 0 0-.184-.617 92.108 92.108 0 0 1-1.35-.108l-.162-.008c-.347 0-.609.093-.778.27-.255.27-.232.687-.232.687v.015c0 .015.008.254.016.64.694.039 1.203.07 1.203.07s.794.169.832.986c.039.887.031 5.876.031 5.876s.093.81-1.033.987zm-2.737.193l-1.434.107s-1.18.162-1.211-1.133c-.015-.956-.139-6.361-.139-6.361s-.085-1.003 1.134-.918c.362.023.91.054 1.495.093-.015-.895-.03-1.673-.038-2.275a60.468 60.468 0 0 1-2.005-.17C.924 4.909 1.025 6.259 1.025 6.259s.192 9.923.231 11.134c.046 1.45 1.604 1.21 1.604 1.21l1.927-.208c-.023-.717-.038-1.627-.061-2.652zM21.889 3.443c-.069-1.858-1.704-2.251-1.704-2.251S14.525.336 12.051.027c-2.483-.308-2.329 2.09-2.329 2.09s.563 17.518.625 19.685c.07 2.583 2.475 2.174 2.475 2.174l8.528-1.472c1.55-.309 1.627-2.244 1.627-2.244S21.974 5.463 21.889 3.443zm-1.904 14.874l-6.338.655s-1.843.278-1.89-1.958c-.03-1.65-.393-11.119-.393-11.119S11.241 4.16 13.138 4.3c1.935.147 6.585.494 6.585.494s1.241.293 1.295 1.711c.062 1.542.594 10.101.594 10.101s.139 1.411-1.627 1.712zm-6.377.324l2.445-.255c-.116-2.49-.548-12.16-.61-13.563V4.8c-.894-.07-1.742-.13-2.336-.177-.062-.008-.131-.008-.193-.008-.408 0-.717.108-.917.324-.34.355-.3.91-.3.918v.007c0 .008 0 .062.007.147.994.085 1.742.154 1.742.154s1.072.239 1.118 1.403c.047 1.265.355 8.112.355 8.112s.123 1.156-1.403 1.403l-1.419.139c.1 1.164.779 1.419 1.35 1.419.084 0 .138-.008.138-.008.016.008.023.008.023.008zm-3.732-1.195l-1.974.185s-1.596.23-1.626-1.604c-.024-1.357-.186-9.03-.186-9.03S5.983 5.58 7.617 5.696c.478.03 1.164.092 1.89.146-.047-1.457-.086-2.621-.101-3.23-.956-.093-1.874-.186-2.537-.263-2.159-.246-2.028 1.666-2.028 1.666s.255 14.08.309 15.806c.061 2.06 2.159 1.728 2.159 1.728l2.683-.34a691.29 691.29 0 0 0-.116-3.762Z', + }, + { + title: 'Automatic', + hex: '7D8084', + issue: 'https://github.com/simple-icons/simple-icons/pull/3982', + path: 'M12 6.768v-1.235c-.485.033-.754.293-.99.71L5.87 16.72h2.464l-.753-.96.654-1.363.005.007L12 6.774v-.006zM10.526 13.123h2.946L12 10.076M8.233 14.416h.017l-.01-.013M13.473 13.123v.002M21.496 5.066L13.26.308c-.693-.4-1.827-.4-2.52 0L2.504 5.066c-.693.398-1.26 1.38-1.26 2.182v9.507c0 .802.567 1.782 1.26 2.18l8.236 4.757c.693.4 1.826.4 2.52 0l8.235-4.768c.692-.39 1.26-1.38 1.26-2.174V7.246c0-.8-.567-1.78-1.26-2.18zm-6.066 12.05l-.687-1.384h-5.5l-.673 1.384H5.287l5.396-11.033c.305-.607.777-.9 1.317-.9s1.034.328 1.316.89l5.396 11.043H15.43zM12 6.77V9.244l2.518 5.173H8.25l.758.94h5.972l.674 1.35h2.474l-1.708-.99v.04L12 6.77', + }, + { + title: 'Autotask', + hex: 'E51937', + issue: 'https://github.com/simple-icons/simple-icons/pull/5250', + path: 'M17.93 11.626l2.782 6.988h-4.298l-1.825-4.736-9.885 6.667L1 12.6h.815l4.39 3.418 7.61-4.148-1.085-2.82-1.168 2.481-4.938 2.716 3.553-9.342h5.077l2.022 5.08L24 6.32V0H0v24h24V7.532z', + }, + { + title: 'Aventrix', + hex: '0099DD', + issue: 'https://github.com/simple-icons/simple-icons/pull/5249', + path: 'M12 24C5.372 24 0 18.628 0 12S5.372 0 12 0s12 5.372 12 12-5.372 12-12 12zm5.371-8.138c-.23.161-.644.322-1.081.322-.46 0-.805-.184-.805-.851v-5.011c0-3.149-1.403-4.321-4.139-4.321-1.517 0-2.875.367-3.656.827-.322.529-.391 1.425-.23 2a6.782 6.782 0 0 1 3.518-1.012c1.793 0 2.53.805 2.53 2.713v.598c-.667-.275-1.541-.367-2.299-.367-2.599 0-4.599 1.103-4.599 3.793 0 2.506 1.724 3.448 3.702 3.448 1.518 0 2.575-.483 3.242-1.357h.092c.184.851.782 1.357 1.816 1.357h.009c.557 0 1.077-.154 1.522-.421l-.013.007c.299-.414.437-1.126.391-1.724zm-6.554.321c-1.241 0-2.207-.529-2.207-1.724 0-1.219.989-2.069 2.897-2.069a5.76 5.76 0 0 1 2 .345v2.253c-.598.874-1.702 1.195-2.69 1.195z', + }, + { + title: 'Bancontact', + hex: '005498', + path: '', + issue: 'https://github.com/simple-icons/simple-icons/pull/5264', + }, + { + title: 'Brand.ai', + hex: '0AA0FF', + issue: 'https://github.com/simple-icons/simple-icons/pull/4365', + path: 'M23.956 11.2626C23.578 5.007 18.4025.0485 12.061.0095h-.142c-2.2398.016-4.3356.64-6.1245 1.7239A12.0293 12.0293 0 001.747 5.766C.7599 7.381.1499 9.2527.023 11.2556c-.015.247-.023.494-.023.7469 0 .25.01.5.025.746.123 2.0028.734 3.8726 1.7229 5.4895.9999 1.6478 2.3838 3.0297 4.0236 4.0326 1.7979 1.074 3.8967 1.7049 6.1295 1.7199h.18c6.3425-.043 11.497-4.9896 11.889-11.239.014-.24.03-.496.03-.735s0-.495-.016-.734l-.027-.022zm-11.955 4.3796v3.8297c.096 2.3398-.57 2.7297-1.3699 2.7657-.034 0-.066.003-.1.004-4.5556-.6449-8.1573-4.2566-8.7832-8.8222-.066-.464-.1-.938-.1-1.4199 0-.48.034-.953.1-1.4179.6249-4.5596 4.2176-8.1693 8.7692-8.8192l.115.01c.8.043 1.4649.43 1.3699 2.7637v3.8277c-.01 1.5729.895 3.0717 1.8568 3.6397-.9619.56-1.8678 1.8748-1.8578 3.6337z', + }, + { + title: 'CEVO', + hex: '1EABE2', + issue: 'https://github.com/simple-icons/simple-icons/pull/4509', + path: 'M3.5 6h12l6 10.3L24 12 18 1.6H6L3.5 6zm-.9 1.5L0 12l6 10.4h12l2.6-4.5-2.5-4.3-2.6 4.5h-7L5 12l2.6-4.5h-5z', + }, + { + title: 'ComproPago', + hex: '00AAEF', + issue: 'https://github.com/simple-icons/simple-icons/pull/5270', + path: 'M18.104 3.07a5.896 5.896 0 0 0-4.183 1.738l-9.247 9.247c-.587.587-.587 1.526 0 2.084.588.587 1.527.587 2.084 0l.089-.088.822-.822 6.956-6.957 1.35-1.35.089-.088a2.905 2.905 0 0 1 2.084-.852 2.905 2.905 0 0 1 2.935 2.936 2.91 2.91 0 0 1-.851 2.084l-8.894 8.923c1.145 1.145 2.994 1.145 4.168.03l6.751-6.752c2.32-2.348 2.319-6.076.03-8.395a5.896 5.896 0 0 0-4.183-1.739zm-7.489.142a3.017 3.017 0 0 0-2.095.833l-6.78 6.78a5.9 5.9 0 0 0 0 8.366 5.9 5.9 0 0 0 8.365 0l9.246-9.246c.587-.587.587-1.526 0-2.084-.587-.587-1.526-.587-2.084 0l-.088.088-.822.822-6.986 6.957-1.438 1.438a2.905 2.905 0 0 1-2.084.851 2.905 2.905 0 0 1-2.936-2.935c0-.793.294-1.526.852-2.084l8.923-8.924a2.939 2.939 0 0 0-2.073-.862z', + }, + { + title: 'Everplaces', + hex: 'FA4B32', + path: 'M10.839 23.972C4.76 23.388 0 18.257 0 12.028c0-6.623 5.377-12 12-12s12 5.377 12 12c0 6.23-4.76 11.359-10.839 11.943v-7.046c2.22-.525 3.87-2.521 3.87-4.897 0-2.778-2.253-5.033-5.031-5.033S6.968 9.25 6.968 12.028c0 2.377 1.653 4.372 3.87 4.897l.001 7.047zm-.388-14.655c.642 0 1.162.521 1.162 1.162 0 .641-.521 1.162-1.162 1.162-.641 0-1.16-.521-1.16-1.162 0-.641.52-1.161 1.16-1.162z', + issue: 'https://github.com/simple-icons/simple-icons/pull/5366', + }, + { + title: 'EVRY', + hex: '063A54', + issue: 'https://github.com/simple-icons/simple-icons/pull/4040', + path: 'M.443 12.919c.102.255.113.426.072.692-.031.202-.068.404-.108.605-.035.174-.117.55.003.694.117.139.35.131.622.098.302-.037 1.81-.342 3.397-.997.215-.093.435-.205.622-.345.431-.324.5-1.005.5-1.005.011-.13.009-.316-.164-.413-.126-.07-.301-.026-.562.043-.433.116-1.502.519-1.873.628-.15.044-.447.114-.561-.027-.19-.234.082-.969.245-1.378.163-.409.419-.738 1.205-.96.289-.082.762-.229.954-.293.211-.071.489-.207.607-.675.135-.534-.278-.616-.655-.718-.539-.147-.878-.165-.641-.679.097-.21.187-.303.397-.358.214-.056 2.029-.338 2.751-.467.405-.072.542-.286.711-.631.365-.746-.093-.794-.462-.761-.836.076-2.178.315-2.753.397-.306.044-.102-.47-.46-.494-.704-.049-1.302.243-1.541.425-.226.172-.334.703-.334.703l-.697 2.368c-.06.273-.146.543-.343.659-.479.283-1.457.302-1.37 1.34 0 0 .019.51.437 1.551zm6.318-4.424c.279-.047.654-.115.756.586.031.212.032 2.661.032 2.661s.269-.252 1.094-1.526c.626-.965 1.317-2.211 1.577-2.648.152-.256.433-.522.918-.165.541.398.553.685.315 1.093-.244.419-.9 1.486-1.827 2.772-.842 1.168-1.245 1.631-1.599 2.016-.354.385-.826.83-1.319.762-.654-.091-.604-1.198-.63-1.515-.026-.317-.154-2.832-.066-3.419.034-.228.025-.496.749-.618zm8.845.065c.302.161-.045.855-.626 1.277-.374.272-1.014.679-1.672.679a6.206 6.206 0 0 1 1.017-1.298c.47-.461 1.018-.799 1.281-.658zm8.17-.153c.291-.373.349-.596-.133-1.061-.433-.417-.723-.171-.934.045-.035.042-1.016 1.001-2.049 2.17-.804.91-1.499 1.756-1.499 1.756s-.025-.57.062-1.286c.049-.408.186-1.201.226-1.453.204-1.274-.593-1.325-.89-1.343-.312-.019-.461.145-.554.533-.085.356-.55 2.311-.365 4.325.033.363.105.737.112.761l-.188.257c-1.749-.485-2.946-1.664-2.946-1.664s.574-.165 1.204-.543c.501-.3 1.465-1.043 1.363-2.353-.087-1.112-1.271-1.62-1.707-1.529-.397.083-1.091.558-1.747 1.14-.044-.304-.052-.639-.368-.676-.232-.027-.501.082-.696.182a1.116 1.116 0 0 0-.501.473l-.736 1.665c-.024.059-.072.072-.11.08-.394.09-.521.371-.549.449 0 0-.165.347.126.661-.146.385-.533 1.282-.533 1.282-.48 1.101-.449 1.483-.277 1.717.087.119.393.291.762.351.278.046.491-.119.723-.482.343-.537 1.032-1.953 1.032-1.953s1.37 1.474 4.121 2.443c0 0-1.455 1.973-1.665 3.064 0 0-.108.715.872.713.246 0 .617-.058.886-.221a.475.475 0 0 0 .223-.281.216.216 0 0 0-.021-.153c-.027-.047-.069-.073-.101-.104-.05-.049-.043-.113-.016-.187.539-1.544 2.732-4.169 3.197-4.738 1.233-1.507 3.512-3.854 3.673-4.041z', + }, + { + title: 'FedRAMP', + hex: '112E51', + path: 'M1.886 3.412A1.85 1.85 0 000 5.27v15.319h3.922v-6.094h4.934V10.66H3.922V7.336h14.595a1.67 1.67 0 010 3.324h-6.844a1.431 1.431 0 00-1.298 1.325v8.601h3.919V14.54h2.168l3.138 6.047h4.378l-3.46-6.657a5.442 5.442 0 00-2.001-10.517z', + issue: 'https://github.com/simple-icons/simple-icons/pull/4046', + }, + { + title: 'Gauges', + hex: '2FA66A', + issue: 'https://github.com/simple-icons/simple-icons/pull/5748', + path: 'M12.6 12.635l-1.125-.053c-.945-.033-1.197-.083-1.197-.435 0-.135.1-.318.303-.42.167.036.337.053.507.053 2.415 0 3.63-1.17 3.63-2.98 0-.3-.074-.57-.225-.735h.96v-2.01H12.6c-.472-.115-.892-.2-1.465-.2-2.543 0-3.804 1.474-3.804 3.18 0 1.07.506 1.84 1.26 2.242-.584.234-1.022.87-1.022 1.54 0 .586.322 1.054.81 1.287-.64.336-1.215 1.155-1.215 1.94 0 1.66 1.35 2.476 3.64 2.476 2.873 0 4.695-1.604 4.695-3.41h-.018c0-1.674-1.078-2.41-2.88-2.475zm-1.462-4.78c.895 0 1.342.48 1.342 1.193 0 .71-.5 1.14-1.325 1.14-.893 0-1.342-.445-1.342-1.173 0-.68.483-1.16 1.325-1.16zm2.008 7.554c0 .63-.612 1.113-1.82 1.113-.944 0-1.5-.405-1.5-1.002 0-.353.226-.708.6-.997.09.015.226 0 .33.015l1.35.032c.796.033 1.08.388 1.08.84h-.04zM17.637 10.854v.002c-.99 0-1.824.834-1.824 1.845 0 1.01.834 1.823 1.824 1.823 1.01 0 1.846-.814 1.846-1.824 0-1.01-.837-1.846-1.846-1.846zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 22.335C6.293 22.335 1.665 17.708 1.665 12 1.665 6.293 6.293 1.665 12 1.665c5.708 0 10.335 4.628 10.335 10.335 0 5.708-4.627 10.335-10.335 10.335z', + }, + { + title: 'GOV.UK', + hex: '005EA5', + issue: 'https://github.com/simple-icons/simple-icons/pull/4060', + path: 'M2.4 13.031c.261-.64-.04-1.374-.682-1.638-.631-.262-1.362.049-1.623.688-.266.637.038 1.363.668 1.623.632.267 1.368-.037 1.623-.673m.858-3.244c.256-.636-.045-1.37-.691-1.639-.631-.258-1.367.053-1.639.687-.27.638.03 1.369.662 1.629.646.266 1.367-.039 1.639-.677m1.218-1.095c.645.264 1.367-.041 1.637-.675.256-.639-.045-1.375-.676-1.639-.632-.26-1.368.049-1.639.686-.271.638.046 1.367.678 1.626m3.156 1.053c.646.256 1.368-.045 1.64-.676.255-.646-.046-1.383-.691-1.639-.634-.271-1.37.046-1.626.676-.27.632.045 1.368.677 1.625M21.6 13.006c.271.631.993.933 1.639.661.632-.27.933-.992.661-1.639-.271-.646-1.008-.947-1.639-.676-.646.256-.945.992-.676 1.639m.752-2.57c.631-.257.931-.993.676-1.64-.271-.632-1.008-.946-1.639-.677-.646.271-.947.992-.676 1.639.256.632.993.933 1.624.678m-2.78-1.729c.631-.26.932-.992.672-1.631-.27-.646-1.001-.947-1.639-.686-.632.271-.937.992-.67 1.639.27.631 1.007.932 1.638.676m-3.412.858c.631-.271.932-1.007.677-1.639-.271-.646-.993-.947-1.64-.691-.631.271-.932 1.008-.661 1.639.271.632.993.932 1.64.662M9.425 4.935l.093 2.399 1.752-.923c.035.039.079.078.12.107-.181.718-.621 1.914-.896 2.575-.335.812.051 1.744.862 2.078.812.331 1.747-.06 2.083-.872.241-.57.121-1.188-.24-1.623-.391-.678-.781-1.533-.992-2.195.061-.045.105-.105.15-.15l1.895.977.09-2.39-1.969.632c-.016-.031-.031-.061-.045-.075l.766-2.181-2.33-.074.707 2.148c-.061.031-.105.076-.15.137l-1.896-.57zm11.896 9.109c.16.883.188 1.284-.015 1.859-.285-.286-.54-.807-.749-1.594l-.872 2.79c.52-.346.915-.565 1.364-.571-.815 1.713-1.819 2.146-2.461 2.021-.787-.158-1.15-.867-1.012-1.466.175-.842 1.052-1.052 1.448-.067.792-1.566-.52-2.078-1.368-1.624 1.313-1.28 1.468-2.426.426-3.836-1.464 1.106-1.49 2.21-.851 3.772-.842-.985-2.18-.466-1.713 1.113.627-.949 1.432-.346 1.298.565-.109.796-1.163 1.413-2.461 1.292-1.864-.165-1.954-1.457-1.983-2.525.451-.074 1.277.361 1.983 1.354l.286-2.962c-.767.782-1.474.946-2.24.962.271-.781 1.459-2.09 1.459-2.09l-3.729-.045s1.188 1.323 1.443 2.119c-.768-.014-1.459-.164-2.225-.961l.255 2.961c.706-.991 1.534-1.412 1.984-1.338-.045 1.053-.15 2.346-2.015 2.511-1.293.105-2.345-.526-2.449-1.323-.121-.901.691-1.503 1.307-.541.481-1.578-.856-2.104-1.699-1.127.662-1.564.647-2.676-.811-3.789-1.053 1.398-.902 2.541.405 3.85-.842-.467-2.165.029-1.383 1.607.405-.992 1.278-.766 1.458.076.12.601-.24 1.308-1.021 1.457-.646.121-1.639-.315-2.451-2.044.451.016.842.241 1.354.587l-.859-2.783c-.209.781-.48 1.295-.766 1.578-.186-.57-.166-.977.014-1.859l-1.803.613c.922 1.264 1.857 3.021 2.59 6.104 2.275-.376 6.157-.603 8.509-.603 2.345.015 6.229.285 8.494.691.767-3.081 1.713-4.825 2.646-6.073l-1.773-.646-.014-.015z', + }, + { + title: 'Adobe Typekit', + hex: '87EC00', + issue: 'https://github.com/simple-icons/simple-icons/pull/2943', + path: 'M0 0v24h24V0H0zm1 1.026h22v21.948H1V1.026zM7.165 7.983H4.394c-.082 0-.115-.033-.099-.132l.198-1.385c.016-.083.049-.116.132-.116h6.926c.099 0 .132.033.149.132l.132 1.369c.016.099-.033.132-.116.132H8.962v9.235c0 .083-.033.132-.132.132H7.296c-.098 0-.131-.033-.131-.132V7.983zM14.718 12.749l2.523-3.414c.066-.082.082-.115.165-.115h1.682c.099 0 .132.066.066.148-.396.511-2.21 2.754-2.804 3.48a.108.108 0 0 0 0 .099l3.2 4.271c.033.066.016.132-.083.132h-1.946c-.099 0-.132-.033-.165-.099a158.661 158.661 0 0 1-2.638-3.678v3.662c0 .082-.017.115-.116.115h-1.55c-.116 0-.132-.033-.132-.132V6.449c0-.049.016-.099.115-.099h1.567c.066 0 .116.033.116.116v6.283z', + }, + { + title: 'Greenkeeper', + hex: '00C775', + issue: 'https://github.com/simple-icons/simple-icons/pull/2943', + path: 'M12.04 22.547a2.206 2.206 0 0 1-2.014-3.108l-2.699-1.8a2.201 2.201 0 1 1 .42-.626l2.702 1.8c.082-.085.172-.164.267-.236l-4.33-8.659a2.209 2.209 0 1 1 .672-.343l4.33 8.659c.077-.024.156-.044.235-.059v-4.128a2.206 2.206 0 0 1 0-4.333v-3.89a2.206 2.206 0 1 1 .755.014v3.866a2.205 2.205 0 0 1 0 4.359v4.097c.082.013.164.03.244.052l4.32-8.638a2.202 2.202 0 1 1 .672.344l-4.309 8.617c.1.07.194.148.28.233l2.616-1.776a2.209 2.209 0 1 1 .44.613l-2.615 1.777a2.206 2.206 0 0 1-1.986 3.165zM12 24C5.373 24 0 18.628 0 12a12 12 0 0 1 3.515-8.485c4.686-4.686 12.284-4.686 16.97 0s4.687 12.284 0 16.97A11.921 11.921 0 0 1 12 24zM12 .755C5.79.755.755 5.79.755 12c0 2.982 1.185 5.843 3.294 7.951 4.376 4.407 11.495 4.433 15.902.057s4.432-11.496.057-15.903A11.173 11.173 0 0 0 12 .755z', + }, + { + title: 'Geeklist', + hex: '8CC63F', + issue: 'https://github.com/simple-icons/simple-icons/pull/849', + path: 'm 13.65,10.863 c 0.324,0.354 0.76,0.53 1.31,0.53 0.55,0 0.972,-0.172 1.267,-0.516 0.297,-0.346 0.445,-0.81 0.445,-1.426 0,-0.494 -0.158,-0.914 -0.477,-1.26 -0.318,-0.344 -0.73,-0.51 -1.236,-0.51 -0.53,0 -0.96,0.166 -1.295,0.51 -0.267,0.27 -0.426,0.6 -0.48,0.976 0.014,0.215 0.013,0.43 0,0.645 V 9.785 c 0.05,0.435 0.206,0.795 0.465,1.08 z m 2.226,4.825 c -0.26,0 -0.646,0.03 -1.155,0.09 -0.514,0.06 -0.9,0.09 -1.157,0.09 -0.656,0 -1.177,-0.09 -1.563,-0.284 v 0.054 c -0.386,0.195 -0.906,0.29 -1.56,0.29 -0.26,0 -0.645,-0.028 -1.158,-0.103 -0.513,-0.06 -0.9,-0.09 -1.158,-0.09 -0.956,0 -1.434,0.284 -1.434,0.87 0,0.345 0.216,0.614 0.648,0.81 0.432,0.194 0.98,0.285 1.647,0.285 0.99,0 2.224,-0.495 3.03,-1.23 l 0.015,-0.015 c 0.807,0.734 1.992,1.245 2.986,1.245 0.666,0 1.215,-0.105 1.646,-0.3 0.432,-0.21 0.648,-0.48 0.648,-0.825 0,-0.587 -0.48,-0.887 -1.434,-0.887 z M 12,0 C 5.373,0 0,5.373 0,12 0,18.627 5.373,24 12,24 18.627,24 24,18.627 24,12 24,5.373 18.627,0 12,0 Z m 6.27,18.917 c -0.898,0.57 -1.978,0.854 -3.253,0.854 -1.05,0 -2.04,-0.208 -2.97,-0.644 -0.93,0.44 -1.944,0.666 -2.97,0.66 -1.26,0 -2.356,-0.285 -3.256,-0.855 -0.9,-0.57 -1.35,-1.35 -1.35,-2.353 0,-1.8 1.126,-2.716 3.376,-2.716 0.33,0 0.705,0.047 1.17,0.15 0.45,0.09 0.765,0.15 0.96,0.15 0.42,0 0.645,-0.12 0.645,-0.36 0,-0.134 -0.134,-0.283 -0.434,-0.404 -0.285,-0.12 -0.45,-0.194 -0.495,-0.194 l -0.39,0.06 c -0.27,0.03 -0.494,0.045 -0.66,0.045 -1.05,0 -1.92,-0.33 -2.61,-1.005 C 5.343,11.63 4.999,10.73 4.999,9.59 4.999,8.81 5.194,8.12 5.569,7.535 L 4.475,6.74 6.065,5.285 6.98,6.335 C 7.58,6.005 8.33,5.84 9.215,5.84 c 1.125,0 2.07,0.345 2.85,1.02 L 12,6.783 c 0.77,-0.675 1.72,-1.016 2.84,-1.016 0.89,0 1.633,0.165 2.23,0.5 l 0.906,-1.055 1.6,1.455 -1.096,0.803 c 0.39,0.58 0.586,1.266 0.586,2.055 0,1.13 -0.344,2.03 -1.02,2.708 -0.69,0.674 -1.545,1.012 -2.595,1.012 -0.164,0 -0.39,-0.015 -0.66,-0.045 l -0.39,-0.06 c -0.044,0 -0.194,0.067 -0.494,0.2 -0.285,0.132 -0.42,0.27 -0.42,0.41 0,0.246 0.21,0.37 0.645,0.37 0.196,0 0.512,-0.046 0.96,-0.14 0.45,-0.09 0.84,-0.134 1.156,-0.134 2.25,0 3.375,0.914 3.375,2.715 0.002,1.006 -0.448,1.788 -1.35,2.357 z M 12.498,12.563 C 12.324,12.448 12.158,12.321 12,12.185 c -0.156,0.138 -0.322,0.264 -0.498,0.376 0.177,0.074 0.345,0.17 0.498,0.288 0.154,-0.118 0.32,-0.213 0.498,-0.285 z M 10.803,9.467 c 0,-0.104 0.006,-0.196 0.012,-0.3 V 9.143 C 10.769,8.773 10.6,8.427 10.335,8.163 10.005,7.833 9.57,7.665 9.04,7.665 c -0.505,0 -0.917,0.173 -1.235,0.517 -0.317,0.346 -0.488,0.8 -0.476,1.27 0,0.614 0.146,1.08 0.443,1.424 0.295,0.346 0.72,0.526 1.268,0.526 0.548,0 0.986,-0.18 1.31,-0.525 0.26,-0.286 0.417,-0.646 0.468,-1.08 -0.01,-0.106 -0.015,-0.226 -0.015,-0.33 z', + }, + { + title: 'Gratipay', + hex: '663300', + issue: 'https://github.com/simple-icons/simple-icons/pull/849', + path: 'M24 12c0 6.629-5.37 12-12 12-6.627 0-12-5.373-12-12S5.373 0 12 0c6.63 0 12 5.369 12 12zm-7.119-4.523c-1.35-.891-2.634-.216-3.306.566-.252.291-.681.635-1.492.635-.811 0-1.241-.346-1.491-.635-.66-.781-1.95-1.455-3.301-.566-1.574 1.047-1.125 2.936-.659 3.48l5.46 7.393 5.46-7.393c.464-.545.93-2.434-.661-3.48h-.01z', + }, + { + title: 'Lanyrd', + hex: '3C80CA', + issue: 'https://github.com/simple-icons/simple-icons/issues/1569', + path: 'M10.814 23.586c-2.486.814-2.736.686-3.859-2.801l-2.753-8.519c-.653-2.018-2.654-7.455-2.991-8.498C.588 1.829.588 1.723 4.24.534c2.865-.938 2.979-.906 4.02 2.322.84 2.604 1.377 4.699 2.236 7.357l2.344 7.246L20.329 15c1.479-.488 1.973-.465 2.386 1.352l.305 1.373c.344 1.6-.463 2.006-1.317 2.283L10.814 23.58v.006z', + }, + { + title: 'Google Allo', + hex: 'ECB842', + issue: 'https://github.com/simple-icons/simple-icons/issues/1568', + path: 'M11.665.005c-.702.018-1.417.098-2.14.243C4.788 1.193 1.08 4.974.21 9.728c-1.36 7.406 4.096 14.256 11.16 14.256L22.227 24c.98 0 1.774-.793 1.774-1.774V12C24 5.26 18.445-.18 11.665.005zM12 6.135c3.238 0 5.862 2.626 5.862 5.865v5.61c0 .245-.293.367-.467.194l-1.46-1.46c-1.04.944-2.42 1.52-3.936 1.52-3.24 0-5.865-2.626-5.865-5.864 0-3.24 2.627-5.865 5.865-5.865z', + }, + { + title: 'iDEAL', + hex: 'CC0066', + path: '', + issue: 'https://github.com/simple-icons/simple-icons/pull/4577', + }, + { + title: 'Mathworks', + hex: '0076A8', + path: '', + issue: 'https://github.com/simple-icons/simple-icons/pull/5351', + }, + { + title: 'Yandex', + hex: 'FF0000', + path: '', + issue: 'https://github.com/simple-icons/simple-icons/pull/5428', + }, + { + title: 'Graphcool', + hex: '27AE60', + issue: 'https://github.com/simple-icons/simple-icons/pull/5602', + path: 'M21.138 7.929c-1.167-.657-2.633.2-2.868.348l-5.037 2.857c-.744-.591-1.804-.566-2.519.06-.715.625-.881 1.671-.395 2.488s1.486 1.168 2.376.836 1.416-1.252 1.25-2.187l5.023-2.851.032-.019c.33-.209 1.096-.521 1.454-.319.258.146.405.633.417 1.35h-.006v6.301c-.001.588-.314 1.131-.823 1.426l-7.222 4.172c-.51.293-1.137.293-1.646 0l-7.222-4.172c-.509-.295-.822-.838-.823-1.426v-8.34c.001-.588.314-1.131.823-1.425l6.536-3.772c.621.713 1.664.882 2.479.4.815-.48 1.172-1.475.848-2.363-.324-.89-1.236-1.421-2.169-1.266-.934.156-1.623.955-1.641 1.901L3.262 5.823c-.942.542-1.522 1.544-1.524 2.63v8.338c.001 1.086.579 2.088 1.519 2.631l7.221 4.172c.94.541 2.097.541 3.037 0l7.222-4.172c.938-.543 1.517-1.545 1.519-2.629v-6.062h.005c.034-1.422-.347-2.363-1.123-2.802z', + }, + { + title: 'HackHands', + hex: '00ACBD', + issue: 'https://github.com/simple-icons/simple-icons/pull/5693', + path: 'M5.3 17.63h6.35c.5 0 .89-.4.89-.9s-.4-.89-.9-.89H5.3c-.5 0-.89.4-.89.89 0 .5.4.9.9.9zM16.58 13.77c0-.5-.4-.9-.9-.9H6.54c-.5 0-.89.4-.89.9s.4.9.9.9h9.15c.5 0 .9-.4.9-.9zM18.44 10.8a.91.91 0 0 0-.89-.88H6.53c-.5 0-.89.39-.89.89s.4.89.9.89h11.01c.5 0 .89-.4.89-.9zM5.64 7.82c0 .5.4.89.9.89h9.5c.49 0 .88-.4.88-.9 0-.49-.4-.88-.89-.88h-9.5c-.5 0-.89.39-.89.89zM7.92 3.96H5.3c-.5 0-.89.4-.89.9s.4.89.9.89h2.64c.5 0 .9-.4.9-.9a.93.93 0 0 0-.93-.89zM22.87 20.8a.93.93 0 0 0-.94-.94H4.7c-.95 0-1.73-.8-1.73-1.74V3.57c0-.95.78-1.73 1.73-1.73h14.55c.95 0 1.74.76 1.74 1.73v11.8c0 .5.42.92.9.92.51 0 .93-.42.93-.92V3.57c0-1.97-1.6-3.57-3.57-3.57H4.7a3.57 3.57 0 0 0-3.57 3.57v14.55c0 1.97 1.6 3.57 3.57 3.57H20.4L22.87 24v-3.2z', + }, + { + title: 'Highly', + hex: 'FF3C00', + issue: 'https://github.com/simple-icons/simple-icons/pull/4243', + path: 'M10.2 20.4H13.799999999999999V24H10.2zM9 0H15V18H9z', + }, + { + title: 'HipChat', + hex: '0052CC', + issue: 'https://github.com/simple-icons/simple-icons/pull/5556', + path: 'M19.736 19.056s.103-.073.267-.198C22.46 16.958 24 14.203 24 11.139 24 5.424 18.627.787 12.003.787 5.377.787 0 5.424 0 11.139c0 5.717 5.371 10.356 11.998 10.356.847 0 1.694-.073 2.524-.228l.262-.045c1.683 1.092 4.139 1.99 6.288 1.99.665 0 .978-.546.552-1.104-.648-.795-1.541-2.068-1.888-3.052zm-1.462-4.526c-.716 1.069-2.934 2.889-6.254 2.889h-.046c-3.328 0-5.543-1.831-6.254-2.889a1.137 1.137 0 0 1-.273-.574.49.49 0 0 1 .447-.526c.008-.003.014-.003.021-.003.117.006.23.043.328.111a9.137 9.137 0 0 0 5.754 2.056 8.805 8.805 0 0 0 5.76-2.059.461.461 0 0 1 .313-.122c.267 0 .478.213.483.475a1.321 1.321 0 0 1-.268.643h-.011z', + }, + { + title: 'HockeyApp', + hex: '009EE1', + issue: 'https://github.com/simple-icons/simple-icons/pull/5038', + path: 'M21.794 15.002c.075-.057.181-.007.194.083.006.057.012.114.012.171C22 16.842 18.669 19 12 19c-6.669 0-10-2.158-10-3.737 0-.057.006-.115.013-.166a.12.12 0 0 1 .193-.082c1.656 1.19 4.919 2.209 9.794 2.209 4.881 0 8.144-1.019 9.794-2.222zM12 14.168c-5.406 0-8.988-1.229-10.738-2.649a.122.122 0 0 0-.187.039c-.094.178-.137.369-.137.56 0 1.75 3.687 4.087 11.062 4.087s11.063-2.33 11.063-4.087c0-.198-.044-.382-.138-.56a.122.122 0 0 0-.188-.039c-1.75 1.42-5.33 2.649-10.737 2.649zm12-5.73c0 2.018-4 4.711-12 4.711S0 10.456 0 8.438C0 6.42 4 5 12 5s12 1.42 12 3.438zm-3.5-.318c0-1.013-2.831-1.592-8.5-1.592-5.669 0-8.5.58-8.5 1.592s2.831 2.483 8.5 2.483c5.669 0 8.5-1.471 8.5-2.483z', + }, + { + title: 'Klout', + hex: 'E44600', + issue: 'https://github.com/simple-icons/simple-icons/pull/5280', + path: 'M0 2.673v14.72h16.17L24 21.327V2.673H0zm9.827 8.42h-1.17l-2.88 4.054H2.35l3.94-5.265-3.638-5.07h3.336l2.66 3.885h1.18v2.397zm8.407 4.053l-2.88-4.053h-1.966v4.053h-2.73V4.812h2.734v3.885h1.965l2.658-3.885h3.33l-3.636 5.07 3.94 5.265h-3.416z', + }, + { + title: 'LINE WEBTOON', + hex: '00D564', + issue: 'https://github.com/simple-icons/simple-icons/pull/5381', + path: 'M15.023 15.26c.695 0 1.014-.404 1.014-1.051 0-.551-.308-1.01-.984-1.01-.58 0-.912.404-.912 1.016 0 .543.32 1.045.882 1.045zM10.135 15.447c.764 0 1.113-.443 1.113-1.154 0-.604-.338-1.109-1.082-1.109-.637 0-1.002.445-1.002 1.115 0 .597.352 1.148.971 1.148zM24 10.201l-3.15.029.83-9.686L1.958 3.605l1.686 6.248H0l3.734 11.488 8.713-1.283v3.396l10.113-4.641L24 10.201zm-9.104-3.594c0-.049.039-.092.088-.094l1.879-.125.446-.029c.524-.035 1.634.063 1.634 1.236 0 .83-.619 1.184-.619 1.184s.75.189.707 1.092c0 1.602-1.943 1.389-1.943 1.389l-.225-.006-1.908-.053a.089.089 0 0 1-.086-.09l.027-4.504zm-3.675.243c0-.047.039-.09.088-.092l3.064-.203a.08.08 0 0 1 .087.08v.943c0 .049-.039.09-.087.092l-1.9.08a.094.094 0 0 0-.088.09l-.005.394a.083.083 0 0 0 .086.084l1.646-.066a.082.082 0 0 1 .086.084l-.02 1.012a.089.089 0 0 1-.089.086h-1.63a.089.089 0 0 0-.088.088v.416c0 .047.039.088.088.088l1.87.033a.09.09 0 0 1 .087.09v.951a.084.084 0 0 1-.087.084l-3.063-.123a.09.09 0 0 1-.087-.09l.042-4.121zm-6.01.312l.975-.064a.101.101 0 0 1 .105.08l.458 2.205c.01.047.027.047.039 0l.576-2.281a.132.132 0 0 1 .108-.09l.921-.061a.108.108 0 0 1 .109.078l.564 2.342c.012.047.029.047.041 0l.6-2.424a.131.131 0 0 1 .108-.092l.996-.064c.048-.004.077.031.065.078l-1.09 4.104a.113.113 0 0 1-.109.082l-1.121-.031a.12.12 0 0 1-.109-.086l-.535-1.965c-.012-.047-.033-.047-.045 0l-.522 1.934a.12.12 0 0 1-.11.082l-1.109-.031a.123.123 0 0 1-.108-.088l-.873-3.618c-.011-.047.019-.088.066-.09zm-.288 9.623v-3.561a.089.089 0 0 0-.087-.088l-1.252-.029a.095.095 0 0 1-.091-.09l-.046-1.125a.082.082 0 0 1 .083-.086l4.047.096c.048 0 .087.041.085.088l-.022 1.088a.093.093 0 0 1-.089.088l-1.139.004a.09.09 0 0 0-.087.088v3.447c0 .049-.039.09-.087.092l-1.227.07a.08.08 0 0 1-.088-.082zm2.834-2.379c0-1.918 1.321-2.482 2.416-2.482s2.339.73 2.339 2.316c0 1.9-1.383 2.482-2.416 2.482-1.033.001-2.339-.724-2.339-2.316zm5.139-.115c0-1.746 1.166-2.238 2.162-2.238s2.129.664 2.129 2.107c0 1.729-1.259 2.26-2.198 2.26s-2.093-.68-2.093-2.129zm7.259 1.711a.175.175 0 0 1-.139-.064l-1.187-1.631c-.029-.039-.053-.031-.053.018v1.67c0 .047-.039.09-.086.092l-1.052.061a.082.082 0 0 1-.087-.082l.039-3.842c0-.047.039-.086.088-.084l.881.02a.2.2 0 0 1 .137.074l1.293 1.902c.027.041.051.033.051-.014l.032-1.846a.087.087 0 0 1 .089-.086l.963.029c.047 0 .085.041.083.09l-.138 3.555a.097.097 0 0 1-.091.092l-.823.046zM16.258 8.23l.724-.014s.47.018.47-.434c0-.357-.411-.33-.411-.33l-.782.008a.09.09 0 0 0-.088.088v.598a.083.083 0 0 0 .087.084zM16.229 10.191h.99c.024 0 .35-.051.35-.404 0-.293-.229-.402-.441-.398l-.898.029a.089.089 0 0 0-.087.09v.596a.086.086 0 0 0 .086.087z', + }, + { + title: 'Livestream', + hex: 'CF202E', + issue: 'https://github.com/simple-icons/simple-icons/pull/4647', + path: 'M20.987 6.25l.041.002.039.006.04.011.039.015.038.02.039.022.035.03.035.029.037.045.046.045.03.045.044.045.075.119.029.06.029.075.03.074.031.074.028.074.029.09.029.09.03.09.031.089.029.104.028.104.031.105.03.104.029.104.029.104.03.12.03.118.029.135.015.12.029.134.03.134.017.135.028.149.015.148.015.149.031.149.015.149.016.148.015.165.015.164.015.163.015.165.015.164.016.179.015.343.016.179.015.179.015.18.015.18.015.193.015.193.015.193.016.195.015.193v.388l.016.209.015.209v.403l.015.208v.611l.015.419.015.625v1.269l.015.373.03.269.046.179.043.119.047.104.059.09.045.044.045.045.044.045.062.029.089.046.089.029.096.03.142.029.193.011.269-.016h.1v2.253l-.239.029-.566.026-.61-.029-.448-.067-.344-.089-.254-.089-.237-.119-.236-.15-.208-.184-.134-.134-.136-.149-.17-.269-.15-.313-.119-.342-.082-.403-.054-.456-.015-.508v-1.938l-.015-.418v-.865l-.015-.402v-.287l-.016-.199v-.397l-.015-.194v-.193l-.008-.193-.015-.194-.014-.179-.003-.18-.015-.179-.015-.183v-.178l-.015-.18-.017-.179-.012-.179-.014-.17-.017-.17-.015-.164-.015-.169-.015-.16-.014-.163-.015-.164-.017-.15-.015-.148-.016-.158-.015-.141-.015-.135-.044-.278-.016-.134-.015-.135-.03-.125-.026-.135-.029-.118-.03-.12-.031-.119-.034-.103-.029-.104-.025-.103-.045-.09-.029-.104-.029-.089-.022-.09-.029-.089-.031-.09-.03-.074-.029-.076-.029-.074-.03-.059-.03-.061-.029-.06-.044-.06-.03-.045-.036-.045-.031-.044-.041-.03-.028-.029-.046-.03-.028-.015-.046-.016-.049-.012-.044-.016-.03-.015h-.03 2.552zM.008 3.084l1.169.021 1.089.026.97.015.851.03.73.029.642.029.567.03.506.029.463.046.418.044.387.046.357.044.329.046.313.044.283.061.27.059.252.059.24.06.223.06.209.06.194.075.194.059.179.074.163.076.166.074.148.074.164.074.148.09.135.09.135.09.119.088.119.09.119.09.119.09.104.09.104.104.104.09.105.104.09.104.09.104.104.105.09.104.09.104.074.104.09.105.074.119.074.104.074.119.075.12.074.119.074.12.06.119.061.119.074.119.06.119.06.119.06.119.06.12.045.118.048.12.06.135.05.118.06.135.06.119.044.119.061.135.054.135.044.119.051.134.045.12.045.133.045.135.045.135.045.134.044.135.03.134.045.135.039.135.029.133.039.135.029.135.041.134.029.134.045.135.029.119.045.135v.014l.029.12.031.127.029.134.029.135.03.119.03.135.029.133.045.12.029.134.03.119.03.135.029.119.029.119.03.12.03.119.029.12.03.119.03.119.029.119.029.119.03.119.03.119.014.12.03.104.046.223.029.105.029.104.03.104.022.104.029.104.016.104.029.104.03.104.015.104.029.105.03.09.03.097.015.089.03.09.015.09.015.089.015.09.015.075.016.09.015.085.016.075.014.074.016.078.024.074.015.074.015.075.015.068.016.06.023.074.023.061.016.065.015.06.016.06.015.06.015.06.015.06.015.045.03.051.015.045.015.045.016.044.029.046.015.044.038.075.015.038.03.061.015.029.015.03.015.029.016.03.015.015.015.015.015.015.016.015.015.016.029.016.016.004.015.015h.03-7.027l-.051-.015-.057-.016-.057-.014-.06-.016-.06-.015h-.016l-.052-.024-.056-.015-.057-.031-.061-.03-.044-.029-.06-.03-.045-.029-.061-.03-.044-.045-.044-.045-.061-.045-.045-.045-.06-.044-.06-.06-.06-.056-.044-.06-.061-.054-.06-.045-.06-.06-.061-.06-.044-.06-.062-.005-.059-.06-.045-.068-.054-.065-.119-.148-.059-.075-.045-.074-.061-.09-.059-.074-.061-.09-.06-.075-.06-.088-.06-.09-.06-.09-.061-.09-.059-.09-.061-.09-.06-.089-.06-.104-.059-.09-.046-.104-.06-.105-.06-.104-.06-.105-.061-.104-.059-.104-.06-.104-.06-.104-.061-.104-.059-.104-.061-.104-.059-.104-.061-.119-.06-.12-.06-.119-.061-.12-.059-.119-.061-.119-.059-.119-.06-.119-.135-.028-.049-.126-.059-.123-.061-.123-.059-.125-.064-.125-.06-.127-.06-.119-.064-.119-.06-.119-.063-.119-.06-.119-.06-.15-.06-.134-.063-.119-.063-.12-.06-.134-.063-.119-.061-.135-.06-.119-.06-.135-.06-.134-.06-.134-.058-.134-.059-.135-.061-.119-.059-.134-.059-.133-.059-.135-.06-.135-.06-.134-.119-.268-.06-.149-.06-.12-.059-.134-.061-.12-.06-.119-.073-.118-.06-.135-.074-.12-.06-.118-.074-.12-.061-.119-.059-.12-.06-.119-.06-.119-.059-.137-.12-.239-.06-.119-.061-.119-.074-.119-.074-.119-.135-.229-.058-.119-.074-.11-.076-.12-.059-.112-.061-.104-.125-.208-.074-.106-.061-.103-.058-.105-.061-.089-.06-.105-.063-.104-.066-.09-.059-.09-.074-.09-.076-.088-.059-.089-.075-.09-.088-.117-.067-.076-.069-.078-.059-.074-.058-.1-.074-.074-.066-.06-.075-.069-.062-.065-.075-.081-.065-.06-.065-.06-.068-.058-.067-.053-.069-.045-.07-.045-.064-.059-.075-.046-.06-.044-.074-.044-.067-.03-.068-.03-.07-.03-.071-.03-.068-.031-.059-.023L0 3.088h.008z', + }, + { + title: 'Monogram', + hex: 'FDB22A', + issue: 'https://github.com/simple-icons/simple-icons/pull/5345', + path: 'M23.158 0v23.503c0 .451-.533.668-.83.338L12 12.38 3.301 2.73.842 0h22.316zM11.029 13.46L1.672 23.841c-.297.33-.83.111-.83-.338V0l10.187 13.46z', + }, + { + title: 'Periscope', + hex: '40A4C4', + issue: 'https://github.com/simple-icons/simple-icons/pull/5415', + path: 'M12.135 24c1.875 0 9.314-8.439 9.314-14.096C21.449 4.49 17.22 0 12.135 0 6.78 0 2.551 4.488 2.551 9.904 2.551 15.56 9.99 24 12.135 24zM10.639 3.846c.485-.12.995-.185 1.524-.185 3 0 5.581 2.551 5.581 5.865 0 2.985-2.581 5.535-5.596 5.535-3.345 0-5.925-2.55-5.925-5.535 0-1.396.45-2.64 1.229-3.63v.03c0 1.245 1.006 2.234 2.25 2.234C10.948 8.161 12 7.14 12 5.896c0-.919-.56-1.708-1.359-2.053l-.002.003z', + }, + { + title: 'Pingup', + hex: '00B1AB', + issue: 'https://github.com/simple-icons/simple-icons/pull/5416', + path: 'M13.667 0H1.721v24h7.536V9.717h-2.76c-.504 0-.65-.314-.32-.698l4.324-5.044c.327-.384.867-.384 1.195 0l4.324 5.044c.314.384.18.698-.33.698h-2.759v6.676h.73c6.225 0 8.617-4.309 8.617-8.481C22.291 3.906 19.666 0 13.667 0', + }, + { + title: 'Quantopian', + hex: 'C51E25', + path: 'M14.5 12c0 1.103-.897 2-2 2h-1c-1.103 0-2-.897-2-2V9.5c0-1.103.897-2 2-2h1c1.103 0 2 .897 2 2zm-2-5.5h-1c-1.654 0-3 1.346-3 3V12c0 1.654 1.346 3 3 3v.5c0 .603.4 1.5 1.5 1.5h1v-1h-1c-.403 0-.494-.275-.5-.5V15c1.654 0 3-1.346 3-3V9.5c0-1.654-1.346-3-3-3M1 21.5v-19C1 1.673 1.673 1 2.5 1h19c.827 0 1.5.673 1.5 1.5v19c0 .827-.673 1.5-1.5 1.5h-19c-.827 0-1.5-.673-1.5-1.5zm23 0v-19C24 1.121 22.878 0 21.5 0h-19A2.503 2.503 0 000 2.5v19C0 22.878 1.121 24 2.5 24h19c1.378 0 2.5-1.122 2.5-2.5Z', + issue: 'https://github.com/simple-icons/simple-icons/pull/5414', + }, + { + title: 'Staticman', + hex: '000000', + issue: 'https://github.com/simple-icons/simple-icons/pull/4200', + path: 'M17.17 3.046l-.063.002c-.067 0-.133.003-.2.006-.038.002-.078.006-.117.01-.05.003-.1.01-.152.015l-.123.015c-.053.008-.106.018-.16.028-.075.014-.15.03-.224.048-.027.008-.055.014-.083.02l-.174.05c-.01.004-.023.007-.035.01-1.054.333-1.955 1.055-2.51 2.05-.015.023-.03.047-.042.07-.01.023-.024.043-.036.066l-.016.037c-.3.595-.47 1.267-.47 1.978v.8c-.207 0-.373.165-.373.37s.168.373.373.373v2.868c-1.006.1-1.976.436-2.824.98-.243.156-.475.327-.69.508l-.01.01c-.004.003-.01.01-.014.012-.075.07-.146.135-.217.195-.19.162-.39.31-.6.443-.005.003-.007.007-.01.01-.26.16-.474.277-.678.37-.16.07-.322.128-.494.182l-.067.02c-.017.007-.035.012-.054.017-.505.155-1.03.235-1.57.235-1.39 0-2.685-.527-3.66-1.44.455.16.935.243 1.425.243 1.082 0 2.118-.412 2.904-1.13.143.684.444 1.327.878 1.877.196-.06.378-.12.553-.2.058-.026.118-.055.178-.086-.602-.676-.948-1.55-.96-2.463-.002-.16-.107-.3-.26-.35s-.32.007-.414.136c-.668.92-1.745 1.47-2.88 1.47-.998 0-1.957-.424-2.63-1.164-.113-.124-.294-.157-.443-.082s-.23.24-.198.405l.012.055v.003c.883 3.818 3.737 6.984 7.446 8.26.84.29 1.72.483 2.613.57l.037.002c.092 0 .18-.034.25-.096.078-.07.122-.17.122-.276v-1.985c0-.94.19-1.85.57-2.703.262-.588.607-1.132 1.027-1.62l-.407-.242.488.147 2.503.714c.132.06.267.115.404.166v-.8c-.63-.278-1.176-.684-1.59-1.193v-4.07h.15v1.01c0 .733.595 1.33 1.328 1.33h.532c.69 0 1.258-.53 1.323-1.202.004-.02.007-.042.007-.064 0-.18.145-.324.324-.324s.324.145.324.324c0 .022.003.043.006.064.064.674.633 1.203 1.323 1.203h.533c.733 0 1.33-.596 1.33-1.33v-1.01h.146v4.072c-.414.508-.96.914-1.59 1.192v.8c.138-.05.273-.106.404-.167l2.502-.715.005.006.505-.15-.42.248c.365.428.674.897.92 1.4.063.13.193.21.335.21h.022c.15-.01.28-.108.33-.25.103-.297.155-.61.155-.933 0-1.44-1.04-2.624-2.424-2.84V8.994c.206 0 .372-.167.372-.372s-.166-.37-.372-.37v-.8c0-.265-.025-.526-.07-.78-.002-.006 0-.012-.002-.018l-.014-.075-.005-.024c-.172-.837-.582-1.6-1.19-2.21-.268-.27-.57-.504-.893-.693-.033-.02-.067-.036-.1-.055l-.06-.033c-.052-.027-.103-.054-.154-.078-.018-.01-.036-.016-.054-.025-.088-.042-.177-.08-.266-.114-.036-.014-.07-.028-.108-.04-.04-.016-.082-.03-.123-.043-.044-.014-.09-.028-.134-.04-.037-.012-.074-.022-.11-.032-.078-.02-.156-.04-.236-.055-.025-.005-.05-.01-.075-.013-.06-.01-.122-.022-.183-.03-.035-.006-.07-.01-.107-.015l-.157-.016-.11-.008c-.06-.004-.122-.005-.183-.006l-.072-.003zm3.14 1.814s-.076.077-.214.21c-.068.067-.156.143-.254.232-.098.09-.214.185-.34.29-.09.07-.19.145-.29.22.36.723.945 1.193 1.602 1.274.012.12.018.243.018.366v.798h-2.615c-.046-.153-.186-.266-.355-.266H16.48c-.168 0-.31.113-.355.266H13.51v-.798c0-.398.064-.78.182-1.14.117.112.243.212.378.3.04.02.12.063.242.116.173.077.43.162.746.21.158.024.33.037.514.038.045 0 .094 0 .136-.003l.145-.01c.1-.003.193-.02.29-.03s.2-.035.3-.052c.1-.02.2-.048.302-.07.1-.03.202-.06.303-.092.1-.036.202-.07.3-.108.2-.076.398-.16.588-.252l.28-.14.272-.145c.175-.1.344-.198.5-.297.08-.047.155-.1.23-.146s.144-.092.21-.14c.132-.093.258-.173.364-.252.107-.078.203-.143.277-.202.15-.115.24-.178.24-.178zm-3.46 3.87h.64v.212h-.64V8.73zm-2.45.265h1.7v1.01c0 .323-.262.585-.584.585h-.532c-.323 0-.585-.262-.585-.585v-1.01zm3.84 0h1.7v1.01c0 .323-.262.585-.585.585h-.532c-.323 0-.585-.262-.585-.585v-1.01zm-2.99.16c-.234 0-.424.19-.424.424s.19.424.425.424.426-.19.426-.425c0-.07-.018-.132-.046-.19-.04.05-.1.083-.166.083-.117 0-.213-.095-.213-.213 0-.038.012-.073.03-.103l-.03-.003zm3.84 0c-.234 0-.425.19-.425.424s.19.424.425.424.425-.19.425-.425c0-.07-.017-.132-.046-.19-.04.05-.1.083-.168.083-.117 0-.213-.095-.213-.213 0-.038.01-.073.027-.103-.01 0-.02-.003-.028-.003zm-3.436 4.356c-.066.006-.13.03-.186.068-.1.07-.158.183-.158.304v2.02c0 .12.06.235.158.304.064.045.14.068.215.068.042 0 .084-.007.125-.022l1.364-.487 1.364.487c.04.015.083.022.125.022.077 0 .152-.023.216-.068.1-.07.158-.183.158-.304v-2.02c0-.12-.06-.235-.158-.304s-.225-.087-.34-.046l-1.363.487-1.363-.488c-.03-.01-.058-.017-.087-.02-.022-.002-.044-.003-.066 0zm.4.9l.744.266v.432l-.744.266v-.964zm2.233 0v.964l-.744-.266v-.432l.744-.266z', + }, + { + title: 'Storify', + hex: '3A98D9', + issue: 'https://github.com/simple-icons/simple-icons/pull/4204', + path: 'M22.98 8.566c.32.607.563 1.275.732 2.005.17.73.264 1.495.285 2.292.02.795-.061 1.605-.24 2.416-.18.815-.447 1.611-.797 2.388s-.83 1.515-1.441 2.22c-.613.706-1.313 1.339-2.107 1.901-.781.554-1.74 1.034-2.85 1.409-1.111.39-2.326.645-3.646.795l-.299-.721c.074-.015.164-.045.299-.089.137-.046.375-.135.721-.301.359-.15.689-.329 1.02-.54.33-.21.689-.495 1.08-.87.404-.375.734-.779 1.02-1.215.285-.449.525-.99.721-1.649.195-.66.301-1.365.301-2.115 0-.721-.09-1.381-.285-2.01-.195-.631-.451-1.155-.766-1.621-.314-.449-.674-.885-1.049-1.289-.375-.405-.766-.795-1.141-1.155-.391-.36-.734-.735-1.066-1.095-.314-.361-.584-.766-.779-1.215-.195-.45-.3-.916-.3-1.41 0-.885.361-1.65 1.05-2.28.705-.646 1.664-.96 2.895-.96.361 0 .721.029 1.096.105.375.074.824.209 1.334.435.512.226.992.51 1.455.854.467.346.961.84 1.471 1.455.51.619.977 1.335 1.395 2.145l-.109.115zM1.02 15.451c-.319-.607-.563-1.275-.731-2.006-.169-.731-.265-1.494-.285-2.291-.021-.796.061-1.605.24-2.416.181-.816.445-1.612.795-2.388.352-.777.832-1.516 1.44-2.22.615-.705 1.315-1.34 2.109-1.9.78-.556 1.739-1.035 2.851-1.41C8.55.427 9.765.158 11.085.007l.299.711c-.063.014-.158.044-.285.08-.124.039-.359.135-.712.293-.35.156-.687.334-1.013.537-.322.202-.68.489-1.072.861s-.73.777-1.012 1.215c-.284.439-.521.985-.716 1.64-.196.654-.291 1.355-.291 2.107 0 .71.09 1.375.301 2 .195.625.449 1.162.765 1.613.315.466.675.885 1.05 1.307.375.419.766.794 1.141 1.154.375.359.734.734 1.05 1.096.329.375.585.779.78 1.214.195.45.299.915.299 1.41 0 .899-.359 1.666-1.049 2.296-.706.645-1.667.959-2.897.959-.359 0-.72-.03-1.095-.105-.375-.074-.825-.209-1.32-.435-.51-.226-.99-.51-1.47-.855-.466-.345-.96-.84-1.47-1.455-.51-.614-.975-1.334-1.396-2.144l.048-.055z', + }, + { + title: 'Tencent Weibo', + hex: '20B8E5', + issue: 'https://github.com/simple-icons/simple-icons/pull/4222', + path: 'M4.252 23.936a.97.97 0 0 1-.474-.466c-.08-.167-.086-.222-.086-.653 0-.93.15-2.428.362-3.587.698-3.827 2.373-7.127 4.915-9.671l.574-.58-.074-.293c-.14-.561-.079-1.306.149-1.826.25-.564.784-1.142 1.3-1.416.134-.071.25-.127.253-.123.008 0 .066-.021.137-.049.07-.03.153-.061.189-.068.034-.006.095-.023.14-.034a2.93 2.93 0 0 1 1.341 0c.038.007.11.031.165.052.05.02.091.027.091.02 0-.01.172.072.375.177.61.315 1.03.75 1.317 1.362.222.465.273.704.271 1.248-.004.398-.017.506-.095.764-.182.605-.45 1.004-.965 1.456-.117.1-.25.202-.295.23a7.209 7.209 0 0 1-.54.268c-.011.005-.04.019-.068.03-.027.013-.091.026-.144.036a.562.562 0 0 0-.127.035c-.014.01-.119.026-.23.038-.111.01-.255.023-.32.033-.148.021-.609-.031-.872-.096a3.027 3.027 0 0 1-.623-.262l-.26-.137-.11.08c-.146.114-.835.85-1.186 1.27-2.335 2.805-3.652 6.45-3.827 10.62-.027.628-.052.913-.088 1.023-.072.193-.28.419-.472.512a.993.993 0 0 1-.723.007zm7.853-7.88a1.684 1.684 0 0 0-.307-.038 5.104 5.104 0 0 1-.839-.105c-.038-.007-.126-.021-.2-.035a.753.753 0 0 1-.166-.037.566.566 0 0 0-.122-.034 1.821 1.821 0 0 1-.23-.069.535.535 0 0 0-.147-.048 2.58 2.58 0 0 1-.28-.086 1.747 1.747 0 0 0-.28-.082c-.025.017-.34-.208-.418-.3-.212-.253-.29-.643-.182-.903.148-.343.504-.6.849-.609.116-.003.23.01.256.034.028.02.05.031.05.017 0-.013.036.004.083.035s.086.044.086.031c0-.014.022-.012.045.007.044.037.335.136.462.163.04.007.089.022.106.031s.08.029.143.037c.065.006.246.042.407.073.315.058 1.33.089 1.54.044.064-.014.197-.035.289-.044.096-.007.195-.024.223-.035.029-.01.1-.024.154-.034.14-.024.287-.057.393-.095.027-.011.12-.038.203-.063.084-.02.191-.057.238-.077.049-.019.11-.038.139-.045.023-.005.23-.1.46-.213a6.243 6.243 0 0 0 2.29-1.92c.275-.394.699-1.232.843-1.677.721-2.254.147-4.733-1.478-6.372a6.522 6.522 0 0 0-2.328-1.457 4.057 4.057 0 0 0-.412-.123 3.08 3.08 0 0 1-.246-.057 3.39 3.39 0 0 0-.188-.048 3.985 3.985 0 0 0-.479-.066 2.042 2.042 0 0 1-.273-.037c-.055-.02-.855-.013-1.06.007-.243.02-.396.044-.564.077a3.96 3.96 0 0 1-.257.052l-.171.038-.137.034a.608.608 0 0 0-.1.032.096.096 0 0 0-.057.027c-.015.016-.059.027-.099.027a.191.191 0 0 0-.114.041c-.023.024-.04.028-.04.013 0-.017-.024-.01-.05.015-.03.023-.052.03-.052.02 0-.014-.036-.005-.076.02-.045.02-.093.045-.113.048-.071.014-.729.348-.93.48-.462.29-.627.423-1.054.85-.533.53-.818.924-1.145 1.575a6.276 6.276 0 0 0-.581 3.931c.06.359.143.65.304 1.088.061.163.068.23.044.367-.098.55-.707.957-1.152.772-.065-.026-.12-.045-.12-.033 0 .037-.287-.2-.376-.312a1.87 1.87 0 0 1-.205-.42c-.469-1.301-.55-2.946-.216-4.368a8.318 8.318 0 0 1 1.587-3.222c.315-.39.991-1.053 1.358-1.337.274-.21.899-.622.944-.622.007 0 .13-.069.273-.155a2.15 2.15 0 0 1 .26-.136c0 .01.065-.018.147-.058.079-.042.16-.08.178-.082.02-.004.096-.035.171-.065.075-.036.136-.055.14-.048 0 .005.027-.007.058-.035.034-.024.06-.034.06-.02 0 .015.023.008.05-.017.027-.024.05-.03.05-.018 0 .014.025.007.052-.017s.051-.03.051-.016.025.006.052-.018c.027-.023.05-.033.05-.02 0 .01.043.003.096-.018.052-.02.12-.043.156-.05.054-.015.163-.04.246-.061a.887.887 0 0 0 .101-.032c.038-.01.124-.03.189-.04.065-.01.263-.042.437-.068.237-.038.537-.05 1.215-.043.492.007.945.021.998.031.058.012.172.031.254.041.086.015.214.038.29.059.079.016.192.04.257.052a.629.629 0 0 1 .154.037.23.23 0 0 0 .082.034c.1.024.16.04.17.045.006.007.017.01.035.012l.264.09c.134.044.246.084.255.084s.05.022.086.043c.037.02.08.037.096.04.014 0 .072.028.127.056.057.03.102.046.102.037 0-.024.742.379.949.516.105.072.22.148.252.164.347.212.861.643 1.283 1.077a8.174 8.174 0 0 1 2.154 4.07c.082.414.096.555.108 1.334.015.998-.024 1.392-.215 2.14-.402 1.574-1.23 2.908-2.541 4.098a10 10 0 0 1-1.22.882c-.18.108-1.044.537-1.044.52 0-.01-.033.004-.074.028-.045.024-.086.045-.096.045-.011 0-.125.04-.258.084-.128.045-.246.086-.255.086l-.069.028a.569.569 0 0 1-.137.037c-.167.035-.24.052-.269.069a.554.554 0 0 1-.145.037 3.77 3.77 0 0 0-.273.049 5.506 5.506 0 0 1-.715.089c-.575.045-.875.057-.889.04z', + }, + { + title: 'Vine', + hex: '11B48A', + issue: 'https://github.com/simple-icons/simple-icons/pull/5259', + path: 'M22.522 11.923a7.862 7.862 0 01-1.758.206c-3.028 0-5.362-2.116-5.362-5.794 0-1.802.706-2.732 1.697-2.732.946 0 1.562.841 1.562 2.553 0 .975-.256 2.04-.45 2.672 0 0 .93 1.636 3.481 1.125.54-1.201.842-2.762.842-4.127C22.534 2.146 20.658 0 17.22 0c-3.544-.017-5.616 2.7-5.616 6.289 0 3.55 1.66 6.597 4.395 7.985-1.15 2.301-2.614 4.328-4.142 5.857-2.77-3.352-5.274-7.821-6.303-16.543H1.466c1.889 14.527 7.518 19.15 9.005 20.037.84.504 1.566.48 2.336.049 1.215-.688 4.849-4.316 6.86-8.564.84-.003 1.861-.1 2.867-.328v-2.865z', + }, + { + title: 'Virb', + hex: '0093DA', + path: 'M17.733 7.237c0-.25 0-.476.15-.625.199-.176.4-.15.6-.15h1.428c.766 0 1.875.199 2.625.877.75.699.915 1.701.915 2.604v2.252c0 .599.015 1.027-.284 1.578-.375.701-1.155.9-1.155 1.002 0 .1.839.252 1.214 1.002.301.6.27.975.27 1.576v3.105c0 .615 0 1.395-.899 2.445-.855.943-2.039 1.08-2.64 1.08-.449 0-.779.016-1.23 0-.299-.031-.749.016-.854-.137-.149-.223-.194-.178-.194-.854V7.229l.054.008zm-5.46 16.349c0 .402-.099.402-.85.402-.576 0-.75 0-.75-.352V7.229c0-.25.023-.523.174-.674.201-.176.375-.101.576-.101h1.428c.801 0 1.878.199 2.628.876.75.699.927 1.728.927 2.604v2.26c0 .599.025 1.027-.276 1.578-.375.701-1.176.9-1.176 1.002 0 .1.825.252 1.2 1.002.3.6.277.975.277 1.576v6.225c0 .391-.18.391-.855.391-.584 0-.75.016-.75-.359V17.25c0-1.027-.674-1.652-1.229-1.652-1.185 0-1.335-.023-1.335.375v7.59l.011.023zm-3.828.375c-.676 0-.75 0-.75-.35V6.862c0-.325.148-.375.75-.375.674 0 .85.023.85.398v16.679c0 .375-.045.404-.84.404l-.01-.007zm11.165-1.627c.196.031.226.031.451.031.27 0 .899-.074 1.35-.541.495-.539.525-.898.525-1.318v-3.211c0-1.154-.675-1.648-1.425-1.648-1.08 0-1.156.074-1.156.674v5.264c0 .287.015.75.24.781l.015-.032zM3.609 18.777c.426-4.303.801-7.96 1.199-11.893.051-.423.252-.398.705-.398.699 0 .949.051.924.325-.75 6.164-1.326 10.724-2.077 16.814-.046.361-.315.375-.825.375-.645 0-.945 0-1.005-.42C1.855 17.939 1.24 12.93.506 6.782c-.016-.301.105-.301.809-.301.735 0 .886.075.899.404.406 4.381.706 7.785 1.081 11.955 0 .076.031.24.15.24.15 0 .18-.164.18-.27l-.016-.033zm9.315-10.662c-.225 0-.451 0-.553.173-.074.15-.074.277-.074.427v4.682c0 .275-.051.551.15.701.148.119.324.09.449.09.277 0 .93-.074 1.38-.555.499-.557.499-.975.499-1.335V9.944c0-.575-.1-1.002-.525-1.451-.275-.25-.425-.375-1.326-.375v-.003zm7.234 0c-.352 0-.625 0-.727.173-.073.15-.073.277-.073.427v4.682c0 .275-.026.5.149.676.149.15.251.125.45.125.35 0 .927-.074 1.38-.549.498-.557.498-.932.498-1.335v-2.37c0-.575-.099-1.002-.526-1.451-.275-.25-.448-.375-1.151-.375v-.003zM10.89 2.01H9.312V.395C9.312.024 9.139 0 8.476 0c-.587 0-.735.049-.735.368V2.01H6.204c-.369 0-.396.174-.396.835 0 .59.051.735.369.735H7.74v1.549c0 .342.075.342.734.342.786 0 .836-.023.836-.393V3.583h1.627c.345 0 .345-.076.345-.736.001-.786-.024-.836-.392-.837z', + issue: 'https://github.com/simple-icons/simple-icons/pull/5257', + }, + { + title: 'X-Pack', + hex: '005571', + path: 'M13.7 19.55l5.88-5.89 3.35 3.36a3.57 3.57 0 0 1 0 5.05l-.83.83a3.57 3.57 0 0 1-5.05 0zM22.92 1.9l-.83-.83a3.57 3.57 0 0 0-5.05 0L12 6.12 6.95 1.07a3.57 3.57 0 0 0-5.05 0l-.83.83a3.57 3.57 0 0 0 0 5.05L6.12 12l-5.05 5.05a3.57 3.57 0 0 0 0 5.05l.83.83a3.57 3.57 0 0 0 5.05 0L12 17.88l3.68-3.68 2.2-2.2 5.05-5.05a3.57 3.57 0 0 0 0-5.05z', + issue: 'https://github.com/simple-icons/simple-icons/pull/4239', + }, + { + title: 'Sprint', + hex: 'FFCE0A', + path: 'M2.201 0c2.416 2.642 5.96 7.925 7.203 9.821C8.41 7.09 5.904 1.4 2.2 0zm5.464 2.461c1.264 3.635 2.37 8.828 2.687 11.356.429-2.845.203-6.276-.361-8.443C9.697 4.2 8.636 2.867 7.665 2.46zm4.177 2.348c.022 2.732-.948 9.099-1.987 11.876 2.303-2.98 4.132-6.458 4.132-8.964 0-1.31-.926-2.212-2.145-2.912zm4.064 2.8c-1.92 4.492-6.232 10.114-8.602 12.575 3.341-2.28 8.173-6.638 9.82-8.986.385-.542.678-.88.678-1.467 0-.948-1.106-1.648-1.896-2.123zm3.477 2.912C15.093 14.991 6.559 21.675 2.292 24c5.396-1.806 13.23-6.028 18.694-9.799.451-.316.813-.61.813-1.129 0-.88-1.626-2.077-2.416-2.551z', + issue: 'https://github.com/simple-icons/simple-icons/pull/4710', + }, + { + title: 'Mixer', + hex: '002050', + path: 'M2.456 1.375a2.461 2.461 0 0 0-1.65.642C-.134 2.884-.21 4.348.553 5.38l4.917 6.59-4.946 6.65c-.762 1.032-.702 2.496.254 3.363a2.45 2.45 0 0 0 3.617-.344l6.904-9.28a.65.65 0 0 0 0-.763L4.423 2.361a2.432 2.432 0 0 0-1.967-.986zm19.089 0a2.432 2.432 0 0 0-1.968.986l-6.86 9.22a.65.65 0 0 0 0 .762l6.89 9.296a2.45 2.45 0 0 0 3.617.344c.956-.867 1.016-2.331.254-3.363l-4.947-6.65 4.917-6.59c.762-1.032.687-2.496-.254-3.363a2.459 2.459 0 0 0-1.65-.641z', + issue: 'https://github.com/simple-icons/simple-icons/pull/4119', + }, + { + title: 'Google+', + hex: 'DC4E41', + path: 'M7.635 10.909v2.619h4.335c-.173 1.125-1.31 3.295-4.331 3.295-2.604 0-4.731-2.16-4.731-4.823 0-2.662 2.122-4.822 4.728-4.822 1.485 0 2.479.633 3.045 1.178l2.073-1.994c-1.33-1.245-3.056-1.995-5.115-1.995C3.412 4.365 0 7.785 0 12s3.414 7.635 7.635 7.635c4.41 0 7.332-3.098 7.332-7.461 0-.501-.054-.885-.12-1.265H7.635zm16.365 0h-2.183V8.726h-2.183v2.183h-2.182v2.181h2.184v2.184h2.189V13.09H24', + issue: 'https://github.com/simple-icons/simple-icons/pull/1513', + }, + { + title: 'StumbleUpon', + hex: 'EB4924', + path: 'M12 0C5.37 0 0 5.373 0 12c0 6.63 5.37 12 12 12s12-5.37 12-12c0-6.627-5.37-12-12-12zm-.618 8.907v4.949c0 1.854-1.692 3.251-3.45 3.251-1.644 0-3.18-.776-3.354-2.634V11.37h2.475v2.475c0 .615.436.716.878.716.439 0 .975-.099.975-.717v-4.95c.05-1.843 1.58-3.014 3.29-3.014 1.744 0 2.899 1.319 2.899 3.016v1.05l-1.228.585-1.248-.585V8.289s-.164-.18-.42-.18c-.424 0-.816.18-.817.798zm8.04 4.949c0 1.854-1.59 3.111-3.353 3.111-1.761 0-3.45-1.257-3.45-3.112V11.38h2.476v2.475c0 .618.535.717.975.717.44 0 .879-.099.879-.717V11.38h2.461v2.475l.012.001z', + issue: 'https://github.com/simple-icons/simple-icons/pull/976', + }, + { + title: 'Rdio', + hex: '008FD5', + issue: 'https://github.com/simple-icons/simple-icons/pull/556', + path: 'M23.38 6.564c-2.773.081-6.123-2.096-7.421-2.915-.121-.076-.146-.15-.271-.211-.135-.074-.276-.15-.417-.225v8.006h-.001c.004.72-.307 1.47-.755 2.189l-.03.061c-1.289 2.098-4.018 3.313-6.582 2.443-2.488-.84-3.148-3.254-1.829-5.382l.044-.028c1.274-2.085 4.003-3.313 6.566-2.444.195.064.378.145.555.23V2.495c-.92-.247-1.889-.39-2.916-.39C4.4 2.105 0 6.539 0 12v.07c0 5.462 4.363 9.824 10.25 9.824 5.923 0 10.321-4.432 10.321-9.894v-.07c0-.426-.029-.844-.074-1.254 3.088-.805 4.363-3.998 2.895-4.112', + }, + { + title: 'Minecraft', + hex: '62B74A', + issue: 'https://github.com/simple-icons/simple-icons/pull/552', + path: 'M20 24h-4v-4H8v4H4V12h4V8h8v4h4v12zM16 0h8v8h-8V0zM0 0h8v8H0V0z', + }, +]; diff --git a/tests/e2e.test.js b/tests/e2e.test.js index d9e0ac48..c643c7ae 100644 --- a/tests/e2e.test.js +++ b/tests/e2e.test.js @@ -11,6 +11,7 @@ import * as simpleIcons from 'simple-icons/icons'; import { getClipboardValue, + getAttribute, getValue, hasClass, isDisabled, @@ -129,6 +130,16 @@ describe('External links', () => { expect(page).toClick(link.getProperty('innerText')), ); }); + + it('is possible to click outdated icon link', async () => { + const reportIcons = await page.$$('a.report__icon'); + expect(page).toClick( + await getAttribute( + reportIcons[Math.floor(Math.random() * reportIcons.length)], + 'href', + ), + ); + }); }); describe('Search', () => { @@ -327,26 +338,27 @@ describe('Ordering', () => { it('orders grid items alphabetically', async () => { await expect(page).toClick('#order-alpha'); - const $gridItems = await page.$$('.grid-item'); + const $gridItemTitles = await page.$$('.grid-item .grid-item__title'); + for (let i = 0; i < nIcons; i++) { - const $gridItem = $gridItems[i]; + const $gridItemTitle = $gridItemTitles[i]; const expectedTitle = titles[i]; - const title = await ( - await $gridItem.getProperty('textContent') - ).jsonValue(); + const title = await getTextContent($gridItemTitle); await expect(title).toMatch(expectedTitle); } }); it('orders grid items by color', async () => { await expect(page).toClick('#order-color'); - const $gridItems = await page.$$('button.grid-item__color'); + const $gridItems = await page.$$( + '.grid-item__footer button.grid-item__color', + ); const hexes = []; for (let i = 0; i < nIcons; i++) { const $gridItem = $gridItems[i]; const color = await getTextContent($gridItem); - const hex = color.slice(1); + const hex = color; hexes.push(hex); } await expect(sortByColors(hexes)).toEqual(hexes); @@ -451,7 +463,9 @@ describe('Grid item', () => { }); it('copies the hex value when it is clicked', async () => { - await expect(page).toClick('button.copy-color'); + await expect(page).toClick( + '.grid-item__footer button.grid-item__color.copy-color', + ); const clipboardValue = await getClipboardValue(page); expect(clipboardValue).toMatch(COLOR_REGEX); }); @@ -474,6 +488,13 @@ describe('Grid item', () => { await expect(page).toClick('a[download].grid-item__button'); }, ); + + it.each(['layout-comfortable', 'layout-compact'])( + 'is possible to click on the "%s" button', + async (layoutType) => { + await expect(page).toClick(`button#${layoutType}`); + }, + ); }); describe('JavaScript disabled', () => { @@ -510,7 +531,9 @@ describe('JavaScript disabled', () => { }); it('has the color value button disabled', async () => { - const $colorButton = await page.$('button.copy-color'); + const $colorButton = await page.$( + '.grid-item__footer button.grid-item__color.copy-color', + ); expect(await isDisabled($colorButton)).toBeTruthy(); }); diff --git a/tests/modal.test.js b/tests/modal.test.js index cc16efa7..4ed23926 100644 --- a/tests/modal.test.js +++ b/tests/modal.test.js @@ -41,6 +41,6 @@ describe('Extensions modal', () => { initModal(document, domUtils); eventListeners.get(event)(newEventMock(eventParam)); - expect(domUtils.hideElement).toHaveBeenCalledTimes(1); + expect(domUtils.hideElement).toHaveBeenCalledTimes(2); }); }); diff --git a/webpack.config.js b/webpack.config.js index cfdf1af5..e0e0a664 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -218,7 +218,6 @@ const generateStructuredData = async () => { siMembersFileContent = await fs.readFile(siMembersCachePath, 'utf8'); } catch (error) { const siOrgMembers = await githubAPI.GET('/orgs/simple-icons/members'); - const users = await Promise.all( siOrgMembers.map(async (member) => Object.assign(member, await githubAPI.GET(`/users/${member.login}`)), @@ -354,6 +353,13 @@ export default async (env, argv) => { plugins: [ new CopyPlugin({ patterns: [ + { + from: path.resolve( + NODE_MODULES, + 'simple-icons/_data/simple-icons.json', + ), + to: path.resolve(OUT_DIR, 'simple-icons.json'), + }, { from: path.resolve(NODE_MODULES, 'simple-icons/icons'), to: path.resolve(OUT_DIR, 'icons'),