From 49c0319e91b3526e996ba62c05f31fa3dc36fe6d Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Wed, 12 Jul 2023 18:14:12 -0300 Subject: [PATCH 01/66] fix(src/icons): use lib to fix svg import error --- package-lock.json | 1425 +++++++++++++++++ package.json | 5 + .../components/genericIconComponent/index.tsx | 12 + src/frontend/src/icons/Airbyte/Airbyte.jsx | 24 + src/frontend/src/icons/Airbyte/index.tsx | 4 +- src/frontend/src/icons/AzLogo/AzLogo.jsx | 18 + src/frontend/src/icons/AzLogo/index.tsx | 4 +- src/frontend/src/icons/Bing/Bing.jsx | 95 ++ src/frontend/src/icons/Bing/index.tsx | 4 +- src/frontend/src/icons/ChromaIcon/Chroma.jsx | 23 + src/frontend/src/icons/ChromaIcon/index.tsx | 4 +- src/frontend/src/icons/Cohere/Cohere.jsx | 53 + src/frontend/src/icons/Cohere/index.tsx | 4 +- .../src/icons/Evernote/EvernoteIcon.jsx | 14 + src/frontend/src/icons/Evernote/index.tsx | 4 +- .../FacebookMessengerLogo2020.jsx | 53 + .../src/icons/FacebookMessenger/index.tsx | 4 +- .../src/icons/GitBook/GitbookSvgrepoCom.jsx | 13 + src/frontend/src/icons/GitBook/index.tsx | 4 +- src/frontend/src/icons/Google/Google.jsx | 29 + src/frontend/src/icons/Google/index.tsx | 4 +- src/frontend/src/icons/HuggingFace/HfLogo.jsx | 43 + src/frontend/src/icons/HuggingFace/index.tsx | 4 +- .../src/icons/IFixIt/IfixitSeeklogoCom.jsx | 16 + src/frontend/src/icons/IFixIt/index.tsx | 4 +- src/frontend/src/icons/Meta/MetaIcon.jsx | 59 + src/frontend/src/icons/Meta/index.tsx | 4 +- .../src/icons/Midjorney/MidjourneyEmblem.jsx | 14 + src/frontend/src/icons/Midjorney/index.tsx | 4 +- .../src/icons/MongoDB/MongodbIcon.jsx | 24 + src/frontend/src/icons/MongoDB/index.tsx | 4 +- src/frontend/src/icons/Notion/NotionLogo.jsx | 23 + src/frontend/src/icons/OpenAi/OpenAi.jsx | 23 + src/frontend/src/icons/OpenAi/index.tsx | 4 +- .../src/icons/Pinecone/PineconeLogo.jsx | 134 ++ src/frontend/src/icons/Pinecone/index.tsx | 4 +- .../src/icons/PowerPoint/PowerPoint.jsx | 77 + src/frontend/src/icons/QDrant/QDrant.jsx | 64 + src/frontend/src/icons/QDrant/index.tsx | 4 +- .../icons/ReadTheDocs/ReadthedocsioIcon.jsx | 10 + src/frontend/src/icons/ReadTheDocs/index.tsx | 4 +- src/frontend/src/icons/Searx/SearxLogo.jsx | 152 ++ src/frontend/src/icons/Searx/index.tsx | 4 +- src/frontend/src/icons/Serper/Serper.jsx | 18 + src/frontend/src/icons/Serper/index.tsx | 4 +- src/frontend/src/icons/Slack/SlackIcon.jsx | 40 + src/frontend/src/icons/Slack/index.tsx | 4 +- src/frontend/src/icons/VertexAI/VertexAi.jsx | 53 + src/frontend/src/icons/VertexAI/index.tsx | 4 +- src/frontend/src/icons/Weaviate/Weaviate.jsx | 358 +++++ src/frontend/src/icons/Weaviate/index.tsx | 4 +- .../src/icons/Wikipedia/Wikipedia.jsx | 237 +++ src/frontend/src/icons/Wikipedia/index.tsx | 4 +- src/frontend/src/icons/Wolfram/Wolfram.jsx | 403 +++++ src/frontend/src/icons/Wolfram/index.tsx | 4 +- src/frontend/src/icons/Word/Word.jsx | 78 + src/frontend/src/icons/Word/index.tsx | 4 +- .../src/icons/hackerNews/YCombinatorLogo.jsx | 18 + src/frontend/src/icons/hackerNews/index.tsx | 4 +- .../src/icons/supabase/SupabaseIcon.jsx | 63 + src/frontend/src/icons/supabase/index.tsx | 4 +- 61 files changed, 3727 insertions(+), 56 deletions(-) create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/frontend/src/components/genericIconComponent/index.tsx create mode 100644 src/frontend/src/icons/Airbyte/Airbyte.jsx create mode 100644 src/frontend/src/icons/AzLogo/AzLogo.jsx create mode 100644 src/frontend/src/icons/Bing/Bing.jsx create mode 100644 src/frontend/src/icons/ChromaIcon/Chroma.jsx create mode 100644 src/frontend/src/icons/Cohere/Cohere.jsx create mode 100644 src/frontend/src/icons/Evernote/EvernoteIcon.jsx create mode 100644 src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx create mode 100644 src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx create mode 100644 src/frontend/src/icons/Google/Google.jsx create mode 100644 src/frontend/src/icons/HuggingFace/HfLogo.jsx create mode 100644 src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx create mode 100644 src/frontend/src/icons/Meta/MetaIcon.jsx create mode 100644 src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx create mode 100644 src/frontend/src/icons/MongoDB/MongodbIcon.jsx create mode 100644 src/frontend/src/icons/Notion/NotionLogo.jsx create mode 100644 src/frontend/src/icons/OpenAi/OpenAi.jsx create mode 100644 src/frontend/src/icons/Pinecone/PineconeLogo.jsx create mode 100644 src/frontend/src/icons/PowerPoint/PowerPoint.jsx create mode 100644 src/frontend/src/icons/QDrant/QDrant.jsx create mode 100644 src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx create mode 100644 src/frontend/src/icons/Searx/SearxLogo.jsx create mode 100644 src/frontend/src/icons/Serper/Serper.jsx create mode 100644 src/frontend/src/icons/Slack/SlackIcon.jsx create mode 100644 src/frontend/src/icons/VertexAI/VertexAi.jsx create mode 100644 src/frontend/src/icons/Weaviate/Weaviate.jsx create mode 100644 src/frontend/src/icons/Wikipedia/Wikipedia.jsx create mode 100644 src/frontend/src/icons/Wolfram/Wolfram.jsx create mode 100644 src/frontend/src/icons/Word/Word.jsx create mode 100644 src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx create mode 100644 src/frontend/src/icons/supabase/SupabaseIcon.jsx diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..d5e70dae7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1425 @@ +{ + "name": "langflow", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@svgr/cli": "^8.0.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.0.0.tgz", + "integrity": "sha512-UKrY3860AQICgH7g+6h2zkoxeVEPLYwX/uAjmqo4PIq2FIHppwhIqZstIyTz0ZtlwreKR41O3W3BzsBBiJV2Aw==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.0.0.tgz", + "integrity": "sha512-KLcjiZychInVrhs86OvcYPLTFu9L5XV2vj0XAaE1HwE3J3jLmIzRY8ttdeAg/iFyp8nhavJpafpDZTt+1LIpkQ==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.0.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/cli": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/cli/-/cli-8.0.1.tgz", + "integrity": "sha512-o8CLcozNalKz4c2wFyldaWCQYj5UwXhB2S9ZaR0iZGY2FrU30qzwG1QdtTBTiR6g13udqAPGwDi91Re1QICIKQ==", + "dependencies": { + "@svgr/core": "8.0.0", + "@svgr/plugin-jsx": "8.0.1", + "@svgr/plugin-prettier": "8.0.1", + "@svgr/plugin-svgo": "8.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "dashify": "^2.0.0", + "glob": "^8.0.3", + "snake-case": "^3.0.4" + }, + "bin": { + "svgr": "bin/svgr" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.0.0.tgz", + "integrity": "sha512-aJKtc+Pie/rFYsVH/unSkDaZGvEeylNv/s2cP+ta9/rYWxRVvoV/S4Qw65Kmrtah4CBK5PM6ISH9qUH7IJQCng==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.0.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.0.1.tgz", + "integrity": "sha512-bfCFb+4ZsM3UuKP2t7KmDwn6YV8qVn9HIQJmau6xeQb/iV65Rpi7NBNBWA2hcCd4GKoCqG8hpaaDk5FDR0eH+g==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.0.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-prettier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-prettier/-/plugin-prettier-8.0.1.tgz", + "integrity": "sha512-5ukxApPhNM5JvA91azPGSNp0FtmYXgCiTF8DZtEoM1X4FcPSoN5Pbi930lb226XDO/RtMFy0C8yyFUZ90K8U3A==", + "dependencies": { + "deepmerge": "^4.3.1", + "prettier": "^2.8.7" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.0.1.tgz", + "integrity": "sha512-29OJ1QmJgnohQHDAgAuY2h21xWD6TZiXji+hnx+W635RiXTAlHTbjrZDktfqzkN0bOeQEtNe+xgq73/XeWFfSg==", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, + "node_modules/dashify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dashify/-/dashify-2.0.0.tgz", + "integrity": "sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A==", + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.457", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.457.tgz", + "integrity": "sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", + "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..7613c32cd --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@svgr/cli": "^8.0.1" + } +} diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx new file mode 100644 index 000000000..4b299ad3d --- /dev/null +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -0,0 +1,12 @@ +/* import React, { forwardRef } from "react"; + +export default function IconComponent(icon, props, ref) { + return ( + forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> + >((props, ref) => { + return < ref={ref} {...props} />; + }) + ); +} */ \ No newline at end of file diff --git a/src/frontend/src/icons/Airbyte/Airbyte.jsx b/src/frontend/src/icons/Airbyte/Airbyte.jsx new file mode 100644 index 000000000..7e0a19e89 --- /dev/null +++ b/src/frontend/src/icons/Airbyte/Airbyte.jsx @@ -0,0 +1,24 @@ +import * as React from "react"; +const SvgAirbyte = (props) => ( + + + +); +export default SvgAirbyte; diff --git a/src/frontend/src/icons/Airbyte/index.tsx b/src/frontend/src/icons/Airbyte/index.tsx index 6fb8daf24..30f68bf7d 100644 --- a/src/frontend/src/icons/Airbyte/index.tsx +++ b/src/frontend/src/icons/Airbyte/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as AirbyteSVG } from "./airbyte.svg"; +import SvgAirbyte from "./Airbyte"; export const AirbyteIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/AzLogo/AzLogo.jsx b/src/frontend/src/icons/AzLogo/AzLogo.jsx new file mode 100644 index 000000000..9dc13765b --- /dev/null +++ b/src/frontend/src/icons/AzLogo/AzLogo.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +const SvgAzLogo = (props) => ( + + + +); +export default SvgAzLogo; diff --git a/src/frontend/src/icons/AzLogo/index.tsx b/src/frontend/src/icons/AzLogo/index.tsx index 96a8a058a..4fa00c204 100644 --- a/src/frontend/src/icons/AzLogo/index.tsx +++ b/src/frontend/src/icons/AzLogo/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as AzSVG } from "./az_logo.svg"; +import SvgAzLogo from "./AzLogo"; export const AzIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Bing/Bing.jsx b/src/frontend/src/icons/Bing/Bing.jsx new file mode 100644 index 000000000..3f9f2128b --- /dev/null +++ b/src/frontend/src/icons/Bing/Bing.jsx @@ -0,0 +1,95 @@ +import * as React from "react"; +const SvgBing = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgBing; diff --git a/src/frontend/src/icons/Bing/index.tsx b/src/frontend/src/icons/Bing/index.tsx index abaf31be4..8e030ca88 100644 --- a/src/frontend/src/icons/Bing/index.tsx +++ b/src/frontend/src/icons/Bing/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as BingSVG } from "./bing.svg"; +import SvgBing from "./Bing"; export const BingIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/ChromaIcon/Chroma.jsx b/src/frontend/src/icons/ChromaIcon/Chroma.jsx new file mode 100644 index 000000000..c93bc0ed0 --- /dev/null +++ b/src/frontend/src/icons/ChromaIcon/Chroma.jsx @@ -0,0 +1,23 @@ +import * as React from "react"; +const SvgChroma = (props) => ( + + + + + + +); +export default SvgChroma; diff --git a/src/frontend/src/icons/ChromaIcon/index.tsx b/src/frontend/src/icons/ChromaIcon/index.tsx index afcb868a8..657d479e6 100644 --- a/src/frontend/src/icons/ChromaIcon/index.tsx +++ b/src/frontend/src/icons/ChromaIcon/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as ChromaSVG } from "./chroma.svg"; +import SvgChroma from "./Chroma"; export const ChromaIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Cohere/Cohere.jsx b/src/frontend/src/icons/Cohere/Cohere.jsx new file mode 100644 index 000000000..b339380ec --- /dev/null +++ b/src/frontend/src/icons/Cohere/Cohere.jsx @@ -0,0 +1,53 @@ +import * as React from "react"; +const SvgCohere = (props) => ( + + + + + + + + + + + + +); +export default SvgCohere; diff --git a/src/frontend/src/icons/Cohere/index.tsx b/src/frontend/src/icons/Cohere/index.tsx index bcb15dd24..58b53b097 100644 --- a/src/frontend/src/icons/Cohere/index.tsx +++ b/src/frontend/src/icons/Cohere/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as CohereSVG } from "./cohere.svg"; +import SvgCohere from "./Cohere"; export const CohereIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Evernote/EvernoteIcon.jsx b/src/frontend/src/icons/Evernote/EvernoteIcon.jsx new file mode 100644 index 000000000..ca76b7d3d --- /dev/null +++ b/src/frontend/src/icons/Evernote/EvernoteIcon.jsx @@ -0,0 +1,14 @@ +import * as React from "react"; +const SvgEvernoteIcon = (props) => ( + + + +); +export default SvgEvernoteIcon; diff --git a/src/frontend/src/icons/Evernote/index.tsx b/src/frontend/src/icons/Evernote/index.tsx index 685d9da13..b2460d7e7 100644 --- a/src/frontend/src/icons/Evernote/index.tsx +++ b/src/frontend/src/icons/Evernote/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as EvernoteSVG } from "./evernote-icon.svg"; +import SvgEvernoteIcon from "./EvernoteIcon"; export const EvernoteIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx b/src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx new file mode 100644 index 000000000..bbb45a4e4 --- /dev/null +++ b/src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx @@ -0,0 +1,53 @@ +import * as React from "react"; +const SvgFacebookMessengerLogo2020 = (props) => ( + + + + + + + + + + +); +export default SvgFacebookMessengerLogo2020; diff --git a/src/frontend/src/icons/FacebookMessenger/index.tsx b/src/frontend/src/icons/FacebookMessenger/index.tsx index 4450570aa..621e5b766 100644 --- a/src/frontend/src/icons/FacebookMessenger/index.tsx +++ b/src/frontend/src/icons/FacebookMessenger/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as FacebookMessengerSVG } from "./Facebook_Messenger_logo_2020.svg"; +import SvgFacebookMessengerLogo2020 from "./FacebookMessengerLogo2020"; export const FBIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx b/src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx new file mode 100644 index 000000000..98b3a4870 --- /dev/null +++ b/src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx @@ -0,0 +1,13 @@ +import * as React from "react"; +const SvgGitbookSvgrepoCom = (props) => ( + + + +); +export default SvgGitbookSvgrepoCom; diff --git a/src/frontend/src/icons/GitBook/index.tsx b/src/frontend/src/icons/GitBook/index.tsx index 0e312a8e1..a9ba12cb0 100644 --- a/src/frontend/src/icons/GitBook/index.tsx +++ b/src/frontend/src/icons/GitBook/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as GitBookSVG } from "./gitbook-svgrepo-com.svg"; +import SvgGitbookSvgrepoCom from "./GitbookSvgrepoCom"; export const GitBookIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Google/Google.jsx b/src/frontend/src/icons/Google/Google.jsx new file mode 100644 index 000000000..92863046d --- /dev/null +++ b/src/frontend/src/icons/Google/Google.jsx @@ -0,0 +1,29 @@ +import * as React from "react"; +const SvgGoogle = (props) => ( + + + + + + +); +export default SvgGoogle; diff --git a/src/frontend/src/icons/Google/index.tsx b/src/frontend/src/icons/Google/index.tsx index 5159ba23b..89bd546ef 100644 --- a/src/frontend/src/icons/Google/index.tsx +++ b/src/frontend/src/icons/Google/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as GoogleSVG } from "./google.svg"; +import SvgGoogle from "./Google"; export const GoogleIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/HuggingFace/HfLogo.jsx b/src/frontend/src/icons/HuggingFace/HfLogo.jsx new file mode 100644 index 000000000..617d64610 --- /dev/null +++ b/src/frontend/src/icons/HuggingFace/HfLogo.jsx @@ -0,0 +1,43 @@ +import * as React from "react"; +const SvgHfLogo = (props) => ( + + + + + + + + +); +export default SvgHfLogo; diff --git a/src/frontend/src/icons/HuggingFace/index.tsx b/src/frontend/src/icons/HuggingFace/index.tsx index 36599e0f6..3f7ccdeca 100644 --- a/src/frontend/src/icons/HuggingFace/index.tsx +++ b/src/frontend/src/icons/HuggingFace/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as HugginFaceSVG } from "./hf-logo.svg"; +import SvgHfLogo from "./HfLogo"; export const HuggingFaceIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx b/src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx new file mode 100644 index 000000000..43898cc72 --- /dev/null +++ b/src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx @@ -0,0 +1,16 @@ +import * as React from "react"; +const SvgIfixitSeeklogocom = (props) => ( + + + +); +export default SvgIfixitSeeklogocom; diff --git a/src/frontend/src/icons/IFixIt/index.tsx b/src/frontend/src/icons/IFixIt/index.tsx index 9124266e4..7d94a4fcd 100644 --- a/src/frontend/src/icons/IFixIt/index.tsx +++ b/src/frontend/src/icons/IFixIt/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as IFixItSVG } from "./ifixit-seeklogo.com.svg"; +import SvgIfixitSeeklogocom from "./IfixitSeeklogoCom"; export const IFixIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Meta/MetaIcon.jsx b/src/frontend/src/icons/Meta/MetaIcon.jsx new file mode 100644 index 000000000..cbbe8aac2 --- /dev/null +++ b/src/frontend/src/icons/Meta/MetaIcon.jsx @@ -0,0 +1,59 @@ +import * as React from "react"; +const SvgMetaIcon = (props) => ( + + + + + + + + + + + + + + + + + +); +export default SvgMetaIcon; diff --git a/src/frontend/src/icons/Meta/index.tsx b/src/frontend/src/icons/Meta/index.tsx index 0aabeea74..0882b673d 100644 --- a/src/frontend/src/icons/Meta/index.tsx +++ b/src/frontend/src/icons/Meta/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as MetaSVG } from "./meta-icon.svg"; +import SvgMetaIcon from "./MetaIcon"; export const MetaIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx b/src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx new file mode 100644 index 000000000..58b1acbec --- /dev/null +++ b/src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx @@ -0,0 +1,14 @@ +import * as React from "react"; +const SvgMidjourneyEmblem = (props) => ( + + + + +); +export default SvgMidjourneyEmblem; diff --git a/src/frontend/src/icons/Midjorney/index.tsx b/src/frontend/src/icons/Midjorney/index.tsx index fc2daacb8..f691abeb8 100644 --- a/src/frontend/src/icons/Midjorney/index.tsx +++ b/src/frontend/src/icons/Midjorney/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as MidjourneySVG } from "./Midjourney_Emblem.svg"; +import SvgMidjourneyEmblem from "./MidjourneyEmblem"; export const MidjourneyIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/MongoDB/MongodbIcon.jsx b/src/frontend/src/icons/MongoDB/MongodbIcon.jsx new file mode 100644 index 000000000..c208b031c --- /dev/null +++ b/src/frontend/src/icons/MongoDB/MongodbIcon.jsx @@ -0,0 +1,24 @@ +import * as React from "react"; +const SvgMongodbIcon = (props) => ( + + + + + +); +export default SvgMongodbIcon; diff --git a/src/frontend/src/icons/MongoDB/index.tsx b/src/frontend/src/icons/MongoDB/index.tsx index aa27955c1..d39169c89 100644 --- a/src/frontend/src/icons/MongoDB/index.tsx +++ b/src/frontend/src/icons/MongoDB/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as MongoDBSVG } from "./mongodb-icon.svg"; +import SvgMongodbIcon from "./MongodbIcon"; export const MongoDBIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Notion/NotionLogo.jsx b/src/frontend/src/icons/Notion/NotionLogo.jsx new file mode 100644 index 000000000..3c464438b --- /dev/null +++ b/src/frontend/src/icons/Notion/NotionLogo.jsx @@ -0,0 +1,23 @@ +import * as React from "react"; +const SvgNotionLogo = (props) => ( + + + + +); +export default SvgNotionLogo; diff --git a/src/frontend/src/icons/OpenAi/OpenAi.jsx b/src/frontend/src/icons/OpenAi/OpenAi.jsx new file mode 100644 index 000000000..948305c58 --- /dev/null +++ b/src/frontend/src/icons/OpenAi/OpenAi.jsx @@ -0,0 +1,23 @@ +import * as React from "react"; +const SvgOpenAi = (props) => ( + + + + +); +export default SvgOpenAi; diff --git a/src/frontend/src/icons/OpenAi/index.tsx b/src/frontend/src/icons/OpenAi/index.tsx index 940f4f908..a1b7545d4 100644 --- a/src/frontend/src/icons/OpenAi/index.tsx +++ b/src/frontend/src/icons/OpenAi/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as OpenAiSVG } from "./openAI.svg"; +import SvgOpenAi from "./OpenAi"; export const OpenAiIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Pinecone/PineconeLogo.jsx b/src/frontend/src/icons/Pinecone/PineconeLogo.jsx new file mode 100644 index 000000000..8e9186a64 --- /dev/null +++ b/src/frontend/src/icons/Pinecone/PineconeLogo.jsx @@ -0,0 +1,134 @@ +import * as React from "react"; +const SvgPineconeLogo = (props) => ( + + + + + + + + + + + + + + + + + + + + + +); +export default SvgPineconeLogo; diff --git a/src/frontend/src/icons/Pinecone/index.tsx b/src/frontend/src/icons/Pinecone/index.tsx index 3e0b9123e..972f3da69 100644 --- a/src/frontend/src/icons/Pinecone/index.tsx +++ b/src/frontend/src/icons/Pinecone/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as PineconeSVG } from "./pinecone_logo.svg"; +import SvgPineconeLogo from "./PineconeLogo"; export const PineconeIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/PowerPoint/PowerPoint.jsx b/src/frontend/src/icons/PowerPoint/PowerPoint.jsx new file mode 100644 index 000000000..cffa66335 --- /dev/null +++ b/src/frontend/src/icons/PowerPoint/PowerPoint.jsx @@ -0,0 +1,77 @@ +import * as React from "react"; +const SvgPowerPoint = (props) => ( + + + + + + + + + + + + + + + + +); +export default SvgPowerPoint; diff --git a/src/frontend/src/icons/QDrant/QDrant.jsx b/src/frontend/src/icons/QDrant/QDrant.jsx new file mode 100644 index 000000000..c097615c2 --- /dev/null +++ b/src/frontend/src/icons/QDrant/QDrant.jsx @@ -0,0 +1,64 @@ +import * as React from "react"; +const SvgQDrant = (props) => ( + + + + + + + + + + + + + + + + + + + +); +export default SvgQDrant; diff --git a/src/frontend/src/icons/QDrant/index.tsx b/src/frontend/src/icons/QDrant/index.tsx index 5bc03e070..48fde5ad4 100644 --- a/src/frontend/src/icons/QDrant/index.tsx +++ b/src/frontend/src/icons/QDrant/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as QDrantSVG } from "./QDrant.svg"; +import SvgQDrant from "./QDrant"; export const QDrantIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx b/src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx new file mode 100644 index 000000000..ad4c21737 --- /dev/null +++ b/src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx @@ -0,0 +1,10 @@ +import * as React from "react"; +const SvgReadthedocsioIcon = (props) => ( + + + +); +export default SvgReadthedocsioIcon; diff --git a/src/frontend/src/icons/ReadTheDocs/index.tsx b/src/frontend/src/icons/ReadTheDocs/index.tsx index 87a327912..bb9860986 100644 --- a/src/frontend/src/icons/ReadTheDocs/index.tsx +++ b/src/frontend/src/icons/ReadTheDocs/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as ReadTheDocsSVG } from "./readthedocsio-icon.svg"; +import SvgReadthedocsioIcon from "./ReadthedocsioIcon"; export const ReadTheDocsIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Searx/SearxLogo.jsx b/src/frontend/src/icons/Searx/SearxLogo.jsx new file mode 100644 index 000000000..6ac039ffa --- /dev/null +++ b/src/frontend/src/icons/Searx/SearxLogo.jsx @@ -0,0 +1,152 @@ +import * as React from "react"; +const SvgSearxLogo = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgSearxLogo; diff --git a/src/frontend/src/icons/Searx/index.tsx b/src/frontend/src/icons/Searx/index.tsx index c1196c68a..f78252072 100644 --- a/src/frontend/src/icons/Searx/index.tsx +++ b/src/frontend/src/icons/Searx/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SearxSVG } from "./Searx_logo.svg"; +import SvgSearxLogo from "./SearxLogo"; export const SearxIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Serper/Serper.jsx b/src/frontend/src/icons/Serper/Serper.jsx new file mode 100644 index 000000000..63cfb749a --- /dev/null +++ b/src/frontend/src/icons/Serper/Serper.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +const SvgSerper = (props) => ( + + + +); +export default SvgSerper; diff --git a/src/frontend/src/icons/Serper/index.tsx b/src/frontend/src/icons/Serper/index.tsx index 77ea58077..35abc4b44 100644 --- a/src/frontend/src/icons/Serper/index.tsx +++ b/src/frontend/src/icons/Serper/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SerperSVG } from "./serper.svg"; +import SvgSerper from "./Serper"; export const SerperIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Slack/SlackIcon.jsx b/src/frontend/src/icons/Slack/SlackIcon.jsx new file mode 100644 index 000000000..e61fa930b --- /dev/null +++ b/src/frontend/src/icons/Slack/SlackIcon.jsx @@ -0,0 +1,40 @@ +import * as React from "react"; +const SvgSlackIcon = (props) => ( + + + + + + +); +export default SvgSlackIcon; diff --git a/src/frontend/src/icons/Slack/index.tsx b/src/frontend/src/icons/Slack/index.tsx index ec5bdc108..eab13486f 100644 --- a/src/frontend/src/icons/Slack/index.tsx +++ b/src/frontend/src/icons/Slack/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SlackSVG } from "./slack-icon.svg"; +import SvgSlackIcon from "./SlackIcon"; export const SlackIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/VertexAI/VertexAi.jsx b/src/frontend/src/icons/VertexAI/VertexAi.jsx new file mode 100644 index 000000000..4b866803b --- /dev/null +++ b/src/frontend/src/icons/VertexAI/VertexAi.jsx @@ -0,0 +1,53 @@ +import * as React from "react"; +const SvgVertexAi = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgVertexAi; diff --git a/src/frontend/src/icons/VertexAI/index.tsx b/src/frontend/src/icons/VertexAI/index.tsx index a5115da7e..48f193146 100644 --- a/src/frontend/src/icons/VertexAI/index.tsx +++ b/src/frontend/src/icons/VertexAI/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as VertexAISVG } from "./vertex_ai.svg"; +import SvgVertexAi from "./VertexAi"; export const VertexAIIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Weaviate/Weaviate.jsx b/src/frontend/src/icons/Weaviate/Weaviate.jsx new file mode 100644 index 000000000..8224587ab --- /dev/null +++ b/src/frontend/src/icons/Weaviate/Weaviate.jsx @@ -0,0 +1,358 @@ +import * as React from "react"; +const SvgWeaviate = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgWeaviate; diff --git a/src/frontend/src/icons/Weaviate/index.tsx b/src/frontend/src/icons/Weaviate/index.tsx index f1aeeb1af..0b242f8f8 100644 --- a/src/frontend/src/icons/Weaviate/index.tsx +++ b/src/frontend/src/icons/Weaviate/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WeaviateSVG } from "./weaviate.svg"; +import SvgWeaviate from "./Weaviate"; export const WeaviateIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Wikipedia/Wikipedia.jsx b/src/frontend/src/icons/Wikipedia/Wikipedia.jsx new file mode 100644 index 000000000..53d5f6996 --- /dev/null +++ b/src/frontend/src/icons/Wikipedia/Wikipedia.jsx @@ -0,0 +1,237 @@ +import * as React from "react"; +const SvgWikipedia = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgWikipedia; diff --git a/src/frontend/src/icons/Wikipedia/index.tsx b/src/frontend/src/icons/Wikipedia/index.tsx index 446f9c108..20525b70d 100644 --- a/src/frontend/src/icons/Wikipedia/index.tsx +++ b/src/frontend/src/icons/Wikipedia/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WikipediaSVG } from "./Wikipedia.svg"; +import SvgWikipedia from "./Wikipedia"; export const WikipediaIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Wolfram/Wolfram.jsx b/src/frontend/src/icons/Wolfram/Wolfram.jsx new file mode 100644 index 000000000..281cedbba --- /dev/null +++ b/src/frontend/src/icons/Wolfram/Wolfram.jsx @@ -0,0 +1,403 @@ +import * as React from "react"; +const SvgWolfram = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgWolfram; diff --git a/src/frontend/src/icons/Wolfram/index.tsx b/src/frontend/src/icons/Wolfram/index.tsx index 8f1b3e089..1d49b96fc 100644 --- a/src/frontend/src/icons/Wolfram/index.tsx +++ b/src/frontend/src/icons/Wolfram/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WolframSVG } from "./wolfram.svg"; +import SvgWolfram from "./Wolfram"; export const WolframIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Word/Word.jsx b/src/frontend/src/icons/Word/Word.jsx new file mode 100644 index 000000000..e3c8d062c --- /dev/null +++ b/src/frontend/src/icons/Word/Word.jsx @@ -0,0 +1,78 @@ +import * as React from "react"; +const SvgWord = (props) => ( + + + + + + + + + + + + + + + + + +); +export default SvgWord; diff --git a/src/frontend/src/icons/Word/index.tsx b/src/frontend/src/icons/Word/index.tsx index 8c6cf9f31..ac7842e2f 100644 --- a/src/frontend/src/icons/Word/index.tsx +++ b/src/frontend/src/icons/Word/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WordSVG } from "./word.svg"; +import SvgWord from "./Word"; export const WordIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx b/src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx new file mode 100644 index 000000000..726ebc634 --- /dev/null +++ b/src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +const SvgYCombinatorLogo = (props) => ( + + + + +); +export default SvgYCombinatorLogo; diff --git a/src/frontend/src/icons/hackerNews/index.tsx b/src/frontend/src/icons/hackerNews/index.tsx index 787a94274..14e916c93 100644 --- a/src/frontend/src/icons/hackerNews/index.tsx +++ b/src/frontend/src/icons/hackerNews/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as HackerNewsSVG } from "./Y_Combinator_logo.svg"; +import SvgYCombinatorLogo from "./YCombinatorLogo"; export const HackerNewsIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/supabase/SupabaseIcon.jsx b/src/frontend/src/icons/supabase/SupabaseIcon.jsx new file mode 100644 index 000000000..55a9aa2c1 --- /dev/null +++ b/src/frontend/src/icons/supabase/SupabaseIcon.jsx @@ -0,0 +1,63 @@ +import * as React from "react"; +const SvgSupabaseIcon = (props) => ( + + + + + + + + + + + + + + + +); +export default SvgSupabaseIcon; diff --git a/src/frontend/src/icons/supabase/index.tsx b/src/frontend/src/icons/supabase/index.tsx index f9e699ace..644f22b3f 100644 --- a/src/frontend/src/icons/supabase/index.tsx +++ b/src/frontend/src/icons/supabase/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SupabaseSvg } from "./supabase-icon.svg"; +import SvgSupabaseIcon from "./SupabaseIcon"; export const SupabaseIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); From f1c174e8db068c4f58c954159d8d508774eb7b6b Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 17:08:48 -0300 Subject: [PATCH 02/66] delete dead code --- .../components/parameterComponent/index.tsx | 2 +- src/frontend/src/utils.ts | 109 ------------------ .../src/{util => utils}/reactflowUtils.ts | 2 +- 3 files changed, 2 insertions(+), 111 deletions(-) rename src/frontend/src/{util => utils}/reactflowUtils.ts (95%) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index a3e3e6357..f45a6a562 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -17,7 +17,6 @@ import { PopUpContext } from "../../../../contexts/popUpContext"; import { TabsContext } from "../../../../contexts/tabsContext"; import { typesContext } from "../../../../contexts/typesContext"; import { ParameterComponentType } from "../../../../types/components"; -import { cleanEdges } from "../../../../util/reactflowUtils"; import { classNames, getRandomKeyByssmm, @@ -27,6 +26,7 @@ import { nodeIconsLucide, nodeNames, } from "../../../../utils"; +import { cleanEdges } from "../../../../utils/reactflowUtils"; export default function ParameterComponent({ left, diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 5ae191c67..9663c95ef 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -62,29 +62,6 @@ export enum TypeModal { PROMPT = 2, } -export const textColors = { - white: "text-white", - red: "text-red-700", - orange: "text-orange-700", - amber: "text-amber-700", - yellow: "text-yellow-700", - lime: "text-lime-700", - green: "text-green-700", - emerald: "text-emerald-700", - teal: "text-teal-700", - cyan: "text-cyan-700", - sky: "text-sky-700", - blue: "text-blue-700", - indigo: "text-indigo-700", - violet: "text-violet-700", - purple: "text-purple-700", - fuchsia: "text-fuchsia-700", - pink: "text-pink-700", - rose: "text-rose-700", - black: "text-black-700", - gray: "text-gray-700", -}; - export const borderLColors = { white: "border-l-white", red: "border-l-red-500", @@ -343,92 +320,6 @@ export const gradients = [ "bg-gradient-to-br from-lime-600 via-yellow-300 to-red-600", ]; -export const bgColors = { - white: "bg-white", - red: "bg-red-100", - orange: "bg-orange-100", - amber: "bg-amber-100", - yellow: "bg-yellow-100", - lime: "bg-lime-100", - green: "bg-green-100", - emerald: "bg-emerald-100", - teal: "bg-teal-100", - cyan: "bg-cyan-100", - sky: "bg-sky-100", - blue: "bg-blue-100", - indigo: "bg-indigo-100", - violet: "bg-violet-100", - purple: "bg-purple-100", - fuchsia: "bg-fuchsia-100", - pink: "bg-pink-100", - rose: "bg-rose-100", - black: "bg-black-100", - gray: "bg-gray-100", -}; - -export const bgColorsHover = { - white: "hover:bg-white", - black: "hover:bg-black-50", - gray: "hover:bg-gray-50", - red: "hover:bg-red-50", - orange: "hover:bg-orange-50", - amber: "hover:bg-amber-50", - yellow: "hover:bg-yellow-50", - lime: "hover:bg-lime-50", - green: "hover:bg-green-50", - emerald: "hover:bg-emerald-50", - teal: "hover:bg-teal-50", - cyan: "hover:bg-cyan-50", - sky: "hover:bg-sky-50", - blue: "hover:bg-blue-50", - indigo: "hover:bg-indigo-50", - violet: "hover:bg-violet-50", - purple: "hover:bg-purple-50", - fuchsia: "hover:bg-fuchsia-50", - pink: "hover:bg-pink-50", - rose: "hover:bg-rose-50", -}; - -export const textColorsHex = { - red: "rgb(185 28 28)", - orange: "rgb(194 65 12)", - amber: "rgb(180 83 9)", - yellow: "rgb(161 98 7)", - lime: "rgb(77 124 15)", - green: "rgb(21 128 61)", - emerald: "rgb(4 120 87)", - teal: "rgb(15 118 110)", - cyan: "rgb(14 116 144)", - sky: "rgb(3 105 161)", - blue: "rgb(29 78 216)", - indigo: "rgb(67 56 202)", - violet: "rgb(109 40 217)", - purple: "rgb(126 34 206)", - fuchsia: "rgb(162 28 175)", - pink: "rgb(190 24 93)", - rose: "rgb(190 18 60)", -}; - -export const bgColorsHex = { - red: "rgb(254 226 226)", - orange: "rgb(255 237 213)", - amber: "rgb(254 243 199)", - yellow: "rgb(254 249 195)", - lime: "rgb(236 252 203)", - green: "rgb(220 252 231)", - emerald: "rgb(209 250 229)", - teal: "rgb(204 251 241)", - cyan: "rgb(207 250 254)", - sky: "rgb(224 242 254)", - blue: "rgb(219 234 254)", - indigo: "rgb(224 231 255)", - violet: "rgb(237 233 254)", - purple: "rgb(243 232 255)", - fuchsia: "rgb(250 232 255)", - pink: "rgb(252 231 243)", - rose: "rgb(255 228 230)", -}; - export const taskTypeMap: { [key: string]: string } = { MULTICLASS_CLASSIFICATION: "Multiclass Classification", }; diff --git a/src/frontend/src/util/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts similarity index 95% rename from src/frontend/src/util/reactflowUtils.ts rename to src/frontend/src/utils/reactflowUtils.ts index da04cc75c..2f9c58343 100644 --- a/src/frontend/src/util/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -1,5 +1,5 @@ import _ from "lodash"; -import { cleanEdgesType } from "./../types/utils/reactflowUtils"; +import { cleanEdgesType } from "../types/utils/reactflowUtils"; export function cleanEdges({ flow: { edges, nodes }, From dfd7ecf6672de40de52bddf818b349d59dcf087d Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 17:12:24 -0300 Subject: [PATCH 03/66] remove dead code --- src/frontend/src/utils.ts | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 9663c95ef..eea82ca70 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -62,29 +62,6 @@ export enum TypeModal { PROMPT = 2, } -export const borderLColors = { - white: "border-l-white", - red: "border-l-red-500", - orange: "border-l-orange-500", - amber: "border-l-amber-500", - yellow: "border-l-yellow-500", - lime: "border-l-lime-500", - green: "border-l-green-500", - emerald: "border-l-emerald-500", - teal: "border-l-teal-500", - cyan: "border-l-cyan-500", - sky: "border-l-sky-500", - blue: "border-l-blue-500", - indigo: "border-l-indigo-500", - violet: "border-l-violet-500", - purple: "border-l-purple-500", - fuchsia: "border-l-fuchsia-500", - pink: "border-l-pink-500", - rose: "border-l-rose-500", - black: "border-l-black-500", - gray: "border-l-gray-500", -}; - export const nodeColors: { [char: string]: string } = { prompts: "#4367BF", llms: "#6344BE", From 11e4bd3aa20d8784f1c76e2171d55ba550802a4e Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 17:29:48 -0300 Subject: [PATCH 04/66] nodeColors passed tl styleUtils --- .../components/parameterComponent/index.tsx | 2 +- .../src/CustomNodes/GenericNode/index.tsx | 8 +-- .../src/components/cardComponent/index.tsx | 2 +- src/frontend/src/modals/NodeModal/index.tsx | 2 +- .../modals/formModal/chatMessage/index.tsx | 2 +- .../src/modals/genericModal/index.tsx | 22 ++++--- .../extraSidebarComponent/index.tsx | 8 +-- src/frontend/src/utils.ts | 57 ------------------- src/frontend/src/utils/styleUtils.ts | 56 ++++++++++++++++++ 9 files changed, 79 insertions(+), 80 deletions(-) create mode 100644 src/frontend/src/utils/styleUtils.ts diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index f45a6a562..8fabc07e2 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -22,11 +22,11 @@ import { getRandomKeyByssmm, groupByFamily, isValidConnection, - nodeColors, nodeIconsLucide, nodeNames, } from "../../../../utils"; import { cleanEdges } from "../../../../utils/reactflowUtils"; +import { nodeColors } from "../../../../utils/styleUtils"; export default function ParameterComponent({ left, diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index ee62461bd..18b42c670 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -10,12 +10,8 @@ import { typesContext } from "../../contexts/typesContext"; import NodeModal from "../../modals/NodeModal"; import NodeToolbarComponent from "../../pages/FlowPage/components/nodeToolbarComponent"; import { NodeDataType } from "../../types/flow"; -import { - classNames, - nodeColors, - nodeIconsLucide, - toTitleCase, -} from "../../utils"; +import { classNames, nodeIconsLucide, toTitleCase } from "../../utils"; +import { nodeColors } from "../../utils/styleUtils"; import ParameterComponent from "./components/parameterComponent"; export default function GenericNode({ diff --git a/src/frontend/src/components/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx index 285aa91b7..5f4498f97 100644 --- a/src/frontend/src/components/cardComponent/index.tsx +++ b/src/frontend/src/components/cardComponent/index.tsx @@ -2,7 +2,7 @@ import { Trash2 } from "lucide-react"; import { useContext } from "react"; import { TabsContext } from "../../contexts/tabsContext"; import { FlowType } from "../../types/flow"; -import { gradients } from "../../utils"; +import { gradients } from "../../utils/styleUtils"; import { Card, CardDescription, diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index c61af4ff4..95c0e5512 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -7,10 +7,10 @@ import { NodeDataType } from "../../types/flow"; import { classNames, limitScrollFieldsModal, - nodeColors, nodeIconsLucide, toTitleCase, } from "../../utils"; +import { nodeColors } from "../../utils/styleUtils"; import ModalField from "./components/ModalField"; export default function NodeModal({ data }: { data: NodeDataType }) { diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx index 9affce87e..953aed530 100644 --- a/src/frontend/src/modals/formModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx @@ -81,7 +81,7 @@ export default function ChatMessage({ remarkPlugins={[remarkGfm, remarkMath]} rehypePlugins={[rehypeMathjax]} className="markdown prose inline-block break-words text-primary - dark:prose-invert sm:max-w-[30vw] lg:max-w-[40vw] sm:w-[30vw] lg:w-[40vw]" + dark:prose-invert sm:w-[30vw] sm:max-w-[30vw] lg:w-[40vw] lg:max-w-[40vw]" components={{ code: ({ node, diff --git a/src/frontend/src/modals/genericModal/index.tsx b/src/frontend/src/modals/genericModal/index.tsx index b76a71c4b..fa26af1be 100644 --- a/src/frontend/src/modals/genericModal/index.tsx +++ b/src/frontend/src/modals/genericModal/index.tsx @@ -6,7 +6,11 @@ import { Badge } from "../../components/ui/badge"; import { Button } from "../../components/ui/button"; import { DialogTitle } from "../../components/ui/dialog"; import { Textarea } from "../../components/ui/textarea"; -import { MAX_WORDS_HIGHLIGHT, PROMPT_DIALOG_SUBTITLE, TEXT_DIALOG_SUBTITLE } from "../../constants"; +import { + MAX_WORDS_HIGHLIGHT, + PROMPT_DIALOG_SUBTITLE, + TEXT_DIALOG_SUBTITLE, +} from "../../constants"; import { alertContext } from "../../contexts/alertContext"; import { darkContext } from "../../contexts/darkContext"; import { PopUpContext } from "../../contexts/popUpContext"; @@ -120,15 +124,16 @@ export default function GenericModal({ ); }; - function getClassByNumberLength(){ + function getClassByNumberLength() { let sumOfCaracteres: number = 0; - wordsHighlight.forEach(element => { - sumOfCaracteres = sumOfCaracteres + element.replace(/[{}]/g, "").length + wordsHighlight.forEach((element) => { + sumOfCaracteres = sumOfCaracteres + element.replace(/[{}]/g, "").length; }); - return sumOfCaracteres > MAX_WORDS_HIGHLIGHT ? "code-highlight" : "code-nohighlight" + return sumOfCaracteres > MAX_WORDS_HIGHLIGHT + ? "code-highlight" + : "code-nohighlight"; } - function validatePrompt(closeModal: boolean) { postValidatePrompt(field_name, inputValue, nodeClass) .then((apiReturn) => { @@ -234,7 +239,10 @@ export default function GenericModal({
{type === TypeModal.PROMPT && (
-
+
diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index f7223d67a..7317341e2 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -9,12 +9,8 @@ import { typesContext } from "../../../../contexts/typesContext"; import ApiModal from "../../../../modals/ApiModal"; import ExportModal from "../../../../modals/exportModal"; import { APIClassType, APIObjectType } from "../../../../types/api"; -import { - classNames, - nodeColors, - nodeIconsLucide, - nodeNames, -} from "../../../../utils"; +import { classNames, nodeIconsLucide, nodeNames } from "../../../../utils"; +import { nodeColors } from "../../../../utils/styleUtils"; import DisclosureComponent from "../DisclosureComponent"; export default function ExtraSidebar() { diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index eea82ca70..c5db58157 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -62,29 +62,6 @@ export enum TypeModal { PROMPT = 2, } -export const nodeColors: { [char: string]: string } = { - prompts: "#4367BF", - llms: "#6344BE", - chains: "#FE7500", - agents: "#903BBE", - tools: "#FF3434", - memories: "#F5B85A", - advanced: "#000000", - chat: "#198BF6", - thought: "#272541", - embeddings: "#42BAA7", - documentloaders: "#7AAE42", - vectorstores: "#AA8742", - textsplitters: "#B47CB5", - toolkits: "#DB2C2C", - wrappers: "#E6277A", - utilities: "#31A3CC", - output_parsers: "#E6A627", - str: "#049524", - retrievers: "#e6b25a", - unknown: "#9CA3AF", -}; - export const nodeNames: { [char: string]: string } = { prompts: "Prompts", llms: "LLMs", @@ -263,40 +240,6 @@ export const nodeIconsLucide: { >, }; -export const gradients = [ - "bg-gradient-to-br from-gray-800 via-rose-700 to-violet-900", - "bg-gradient-to-br from-green-200 via-green-300 to-blue-500", - "bg-gradient-to-br from-yellow-200 via-yellow-400 to-yellow-700", - "bg-gradient-to-br from-green-200 via-green-400 to-purple-700", - "bg-gradient-to-br from-blue-100 via-blue-300 to-blue-500", - "bg-gradient-to-br from-purple-400 to-yellow-400", - "bg-gradient-to-br from-red-800 via-yellow-600 to-yellow-500", - "bg-gradient-to-br from-blue-300 via-green-200 to-yellow-300", - "bg-gradient-to-br from-blue-700 via-blue-800 to-gray-900", - "bg-gradient-to-br from-green-300 to-purple-400", - "bg-gradient-to-br from-yellow-200 via-pink-200 to-pink-400", - "bg-gradient-to-br from-green-500 to-green-700", - "bg-gradient-to-br from-rose-400 via-fuchsia-500 to-indigo-500", - "bg-gradient-to-br from-sky-400 to-blue-500", - "bg-gradient-to-br from-green-200 via-green-400 to-green-500", - "bg-gradient-to-br from-red-400 via-gray-300 to-blue-500", - "bg-gradient-to-br from-gray-900 to-gray-600 bg-gradient-to-r", - "bg-gradient-to-br from-rose-500 via-red-400 to-red-500", - "bg-gradient-to-br from-fuchsia-600 to-pink-600", - "bg-gradient-to-br from-emerald-500 to-lime-600", - "bg-gradient-to-br from-rose-500 to-indigo-700", - "bg-gradient-to-br bg-gradient-to-tr from-violet-500 to-orange-300", - "bg-gradient-to-br from-gray-900 via-purple-900 to-violet-600", - "bg-gradient-to-br from-yellow-200 via-red-500 to-fuchsia-500", - "bg-gradient-to-br from-sky-400 to-indigo-900", - "bg-gradient-to-br from-amber-200 via-violet-600 to-sky-900", - "bg-gradient-to-br from-amber-700 via-orange-300 to-rose-800", - "bg-gradient-to-br from-gray-300 via-fuchsia-600 to-orange-600", - "bg-gradient-to-br from-fuchsia-500 via-red-600 to-orange-400", - "bg-gradient-to-br from-sky-400 via-rose-400 to-lime-400", - "bg-gradient-to-br from-lime-600 via-yellow-300 to-red-600", -]; - export const taskTypeMap: { [key: string]: string } = { MULTICLASS_CLASSIFICATION: "Multiclass Classification", }; diff --git a/src/frontend/src/utils/styleUtils.ts b/src/frontend/src/utils/styleUtils.ts new file mode 100644 index 000000000..ac42d2072 --- /dev/null +++ b/src/frontend/src/utils/styleUtils.ts @@ -0,0 +1,56 @@ +export const gradients = [ + "bg-gradient-to-br from-gray-800 via-rose-700 to-violet-900", + "bg-gradient-to-br from-green-200 via-green-300 to-blue-500", + "bg-gradient-to-br from-yellow-200 via-yellow-400 to-yellow-700", + "bg-gradient-to-br from-green-200 via-green-400 to-purple-700", + "bg-gradient-to-br from-blue-100 via-blue-300 to-blue-500", + "bg-gradient-to-br from-purple-400 to-yellow-400", + "bg-gradient-to-br from-red-800 via-yellow-600 to-yellow-500", + "bg-gradient-to-br from-blue-300 via-green-200 to-yellow-300", + "bg-gradient-to-br from-blue-700 via-blue-800 to-gray-900", + "bg-gradient-to-br from-green-300 to-purple-400", + "bg-gradient-to-br from-yellow-200 via-pink-200 to-pink-400", + "bg-gradient-to-br from-green-500 to-green-700", + "bg-gradient-to-br from-rose-400 via-fuchsia-500 to-indigo-500", + "bg-gradient-to-br from-sky-400 to-blue-500", + "bg-gradient-to-br from-green-200 via-green-400 to-green-500", + "bg-gradient-to-br from-red-400 via-gray-300 to-blue-500", + "bg-gradient-to-br from-gray-900 to-gray-600 bg-gradient-to-r", + "bg-gradient-to-br from-rose-500 via-red-400 to-red-500", + "bg-gradient-to-br from-fuchsia-600 to-pink-600", + "bg-gradient-to-br from-emerald-500 to-lime-600", + "bg-gradient-to-br from-rose-500 to-indigo-700", + "bg-gradient-to-br bg-gradient-to-tr from-violet-500 to-orange-300", + "bg-gradient-to-br from-gray-900 via-purple-900 to-violet-600", + "bg-gradient-to-br from-yellow-200 via-red-500 to-fuchsia-500", + "bg-gradient-to-br from-sky-400 to-indigo-900", + "bg-gradient-to-br from-amber-200 via-violet-600 to-sky-900", + "bg-gradient-to-br from-amber-700 via-orange-300 to-rose-800", + "bg-gradient-to-br from-gray-300 via-fuchsia-600 to-orange-600", + "bg-gradient-to-br from-fuchsia-500 via-red-600 to-orange-400", + "bg-gradient-to-br from-sky-400 via-rose-400 to-lime-400", + "bg-gradient-to-br from-lime-600 via-yellow-300 to-red-600", +]; + +export const nodeColors: { [char: string]: string } = { + prompts: "#4367BF", + llms: "#6344BE", + chains: "#FE7500", + agents: "#903BBE", + tools: "#FF3434", + memories: "#F5B85A", + advanced: "#000000", + chat: "#198BF6", + thought: "#272541", + embeddings: "#42BAA7", + documentloaders: "#7AAE42", + vectorstores: "#AA8742", + textsplitters: "#B47CB5", + toolkits: "#DB2C2C", + wrappers: "#E6277A", + utilities: "#31A3CC", + output_parsers: "#E6A627", + str: "#049524", + retrievers: "#e6b25a", + unknown: "#9CA3AF", +}; From d88be5dd99c02d52b65f10bc75b095027c929253 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 17:31:28 -0300 Subject: [PATCH 05/66] remove dead code --- src/frontend/src/utils.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index c5db58157..5fd11f3a6 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -240,10 +240,6 @@ export const nodeIconsLucide: { >, }; -export const taskTypeMap: { [key: string]: string } = { - MULTICLASS_CLASSIFICATION: "Multiclass Classification", -}; - const charWidths: { [char: string]: number } = { " ": 0.2, "!": 0.2, From 1c769e54f919752f9196adfd5bcca6843466f4bd Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 17:36:46 -0300 Subject: [PATCH 06/66] update node names --- .../components/parameterComponent/index.tsx | 3 +-- .../extraSidebarComponent/index.tsx | 4 ++-- src/frontend/src/utils.ts | 21 ------------------- src/frontend/src/utils/styleUtils.ts | 21 +++++++++++++++++++ 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index 8fabc07e2..91d41800a 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -23,10 +23,9 @@ import { groupByFamily, isValidConnection, nodeIconsLucide, - nodeNames, } from "../../../../utils"; import { cleanEdges } from "../../../../utils/reactflowUtils"; -import { nodeColors } from "../../../../utils/styleUtils"; +import { nodeColors, nodeNames } from "../../../../utils/styleUtils"; export default function ParameterComponent({ left, diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index 7317341e2..68a3f7b94 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -9,8 +9,8 @@ import { typesContext } from "../../../../contexts/typesContext"; import ApiModal from "../../../../modals/ApiModal"; import ExportModal from "../../../../modals/exportModal"; import { APIClassType, APIObjectType } from "../../../../types/api"; -import { classNames, nodeIconsLucide, nodeNames } from "../../../../utils"; -import { nodeColors } from "../../../../utils/styleUtils"; +import { classNames, nodeIconsLucide } from "../../../../utils"; +import { nodeColors, nodeNames } from "../../../../utils/styleUtils"; import DisclosureComponent from "../DisclosureComponent"; export default function ExtraSidebar() { diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 5fd11f3a6..7b06e47d5 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -62,27 +62,6 @@ export enum TypeModal { PROMPT = 2, } -export const nodeNames: { [char: string]: string } = { - prompts: "Prompts", - llms: "LLMs", - chains: "Chains", - agents: "Agents", - tools: "Tools", - memories: "Memories", - advanced: "Advanced", - chat: "Chat", - embeddings: "Embeddings", - documentloaders: "Loaders", - vectorstores: "Vector Stores", - toolkits: "Toolkits", - wrappers: "Wrappers", - textsplitters: "Text Splitters", - retrievers: "Retrievers", - utilities: "Utilities", - output_parsers: "Output Parsers", - unknown: "Unknown", -}; - export const nodeIconsLucide: { [char: string]: React.ForwardRefExoticComponent< ComponentType> diff --git a/src/frontend/src/utils/styleUtils.ts b/src/frontend/src/utils/styleUtils.ts index ac42d2072..2e96d48cd 100644 --- a/src/frontend/src/utils/styleUtils.ts +++ b/src/frontend/src/utils/styleUtils.ts @@ -54,3 +54,24 @@ export const nodeColors: { [char: string]: string } = { retrievers: "#e6b25a", unknown: "#9CA3AF", }; + +export const nodeNames: { [char: string]: string } = { + prompts: "Prompts", + llms: "LLMs", + chains: "Chains", + agents: "Agents", + tools: "Tools", + memories: "Memories", + advanced: "Advanced", + chat: "Chat", + embeddings: "Embeddings", + documentloaders: "Loaders", + vectorstores: "Vector Stores", + toolkits: "Toolkits", + wrappers: "Wrappers", + textsplitters: "Text Splitters", + retrievers: "Retrievers", + utilities: "Utilities", + output_parsers: "Output Parsers", + unknown: "Unknown", +}; From 2aabf54b9d4cd84ab73bbc12d7f0e045155891cb Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 17:55:21 -0300 Subject: [PATCH 07/66] remove some constants from utils to constants --- .../src/components/promptComponent/index.tsx | 11 +++++------ .../src/components/textAreaComponent/index.tsx | 2 +- src/frontend/src/{constants.tsx => constants.ts} | 14 ++++++++++++++ src/frontend/src/modals/NodeModal/index.tsx | 8 ++------ src/frontend/src/modals/genericModal/index.tsx | 2 +- src/frontend/src/utils.ts | 7 ------- 6 files changed, 23 insertions(+), 21 deletions(-) rename src/frontend/src/{constants.tsx => constants.ts} (97%) diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx index 22384c299..6e547d683 100644 --- a/src/frontend/src/components/promptComponent/index.tsx +++ b/src/frontend/src/components/promptComponent/index.tsx @@ -1,12 +1,11 @@ -import { useContext, useEffect, useState } from "react"; -import { PopUpContext } from "../../contexts/popUpContext"; -import GenericModal from "../../modals/genericModal"; -import { TextAreaComponentType } from "../../types/components"; -import { TypeModal } from "../../utils"; - import { ExternalLink } from "lucide-react"; +import { useContext, useEffect, useState } from "react"; +import { TypeModal } from "../../constants"; +import { PopUpContext } from "../../contexts/popUpContext"; import { typesContext } from "../../contexts/typesContext"; import { postValidatePrompt } from "../../controllers/API"; +import GenericModal from "../../modals/genericModal"; +import { TextAreaComponentType } from "../../types/components"; export default function PromptAreaComponent({ field_name, diff --git a/src/frontend/src/components/textAreaComponent/index.tsx b/src/frontend/src/components/textAreaComponent/index.tsx index 8083b4eb7..873bab1e0 100644 --- a/src/frontend/src/components/textAreaComponent/index.tsx +++ b/src/frontend/src/components/textAreaComponent/index.tsx @@ -2,9 +2,9 @@ import { useContext, useEffect, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; import GenericModal from "../../modals/genericModal"; import { TextAreaComponentType } from "../../types/components"; -import { TypeModal } from "../../utils"; import { ExternalLink } from "lucide-react"; +import { TypeModal } from "../../constants"; import { TabsContext } from "../../contexts/tabsContext"; export default function TextAreaComponent({ diff --git a/src/frontend/src/constants.tsx b/src/frontend/src/constants.ts similarity index 97% rename from src/frontend/src/constants.tsx rename to src/frontend/src/constants.ts index 9c167c271..d7c8f01ae 100644 --- a/src/frontend/src/constants.tsx +++ b/src/frontend/src/constants.ts @@ -5,6 +5,14 @@ import { FlowType } from "./types/flow"; import { TabsState } from "./types/tabs"; import { buildInputs, buildTweaks } from "./utils"; +/** + * enum for the different types of nodes + * @enum + */ +export enum TypeModal { + TEXT = 1, + PROMPT = 2, +} /** * Number maximum of components to scroll on tooltips * @constant @@ -17,6 +25,12 @@ export const MAX_LENGTH_TO_SCROLL_TOOLTIP = 200; */ export const MAX_WORDS_HIGHLIGHT = 79; +/** + * Limit of items before show scroll on fields modal + * @constant + */ +export const limitScrollFieldsModal = 10; + /** * The base text for subtitle of Export Dialog (Toolbar) * @constant diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index 95c0e5512..c84858c6d 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -1,15 +1,11 @@ import { Dialog, Transition } from "@headlessui/react"; import { X } from "lucide-react"; import { Fragment, useContext, useRef, useState } from "react"; +import { limitScrollFieldsModal } from "../../constants"; import { PopUpContext } from "../../contexts/popUpContext"; import { typesContext } from "../../contexts/typesContext"; import { NodeDataType } from "../../types/flow"; -import { - classNames, - limitScrollFieldsModal, - nodeIconsLucide, - toTitleCase, -} from "../../utils"; +import { classNames, nodeIconsLucide, toTitleCase } from "../../utils"; import { nodeColors } from "../../utils/styleUtils"; import ModalField from "./components/ModalField"; diff --git a/src/frontend/src/modals/genericModal/index.tsx b/src/frontend/src/modals/genericModal/index.tsx index fa26af1be..9de3b1b73 100644 --- a/src/frontend/src/modals/genericModal/index.tsx +++ b/src/frontend/src/modals/genericModal/index.tsx @@ -10,6 +10,7 @@ import { MAX_WORDS_HIGHLIGHT, PROMPT_DIALOG_SUBTITLE, TEXT_DIALOG_SUBTITLE, + TypeModal, } from "../../constants"; import { alertContext } from "../../contexts/alertContext"; import { darkContext } from "../../contexts/darkContext"; @@ -18,7 +19,6 @@ import { postValidatePrompt } from "../../controllers/API"; import { APIClassType } from "../../types/api"; import { INVALID_CHARACTERS, - TypeModal, classNames, getRandomKeyByssmm, regexHighlight, diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 7b06e47d5..e327877b7 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -55,13 +55,6 @@ export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); } -export const limitScrollFieldsModal = 10; - -export enum TypeModal { - TEXT = 1, - PROMPT = 2, -} - export const nodeIconsLucide: { [char: string]: React.ForwardRefExoticComponent< ComponentType> From 6cde1f5f3724b5f20622176b0ab1bbdce692a0a7 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:00:49 -0300 Subject: [PATCH 08/66] remove dead code --- src/frontend/src/utils.ts | 76 --------------------------------------- 1 file changed, 76 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index e327877b7..53efccd74 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -212,86 +212,10 @@ export const nodeIconsLucide: { >, }; -const charWidths: { [char: string]: number } = { - " ": 0.2, - "!": 0.2, - '"': 0.3, - "#": 0.5, - $: 0.5, - "%": 0.5, - "&": 0.5, - "(": 0.2, - ")": 0.2, - "*": 0.5, - "+": 0.5, - ",": 0.2, - "-": 0.2, - ".": 0.1, - "/": 0.5, - ":": 0.2, - ";": 0.2, - "<": 0.5, - "=": 0.5, - ">": 0.5, - "?": 0.2, - "@": 0.5, - "[": 0.2, - "\\": 0.5, - "]": 0.2, - "^": 0.5, - _: 0.2, - "`": 0.5, - "{": 0.2, - "|": 0.2, - "}": 0.2, - "~": 0.5, -}; - -for (let i = 65; i <= 90; i++) { - charWidths[String.fromCharCode(i)] = 0.6; -} -for (let i = 97; i <= 122; i++) { - charWidths[String.fromCharCode(i)] = 0.5; -} - -export function measureTextWidth(text: string, fontSize: number) { - let wordWidth = 0; - for (let j = 0; j < text.length; j++) { - let char = text[j]; - let charWidth = charWidths[char] || 0.5; - wordWidth += charWidth * fontSize; - } - return wordWidth; -} - export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } -export function measureTextHeight( - text: string, - width: number, - fontSize: number -) { - const charHeight = fontSize; - const lineHeight = charHeight * 1.5; - const words = text.split(" "); - let lineWidth = 0; - let totalHeight = 0; - for (let i = 0; i < words.length; i++) { - let word = words[i]; - let wordWidth = measureTextWidth(word, fontSize); - if (lineWidth + wordWidth + charWidths[" "] * fontSize <= width) { - lineWidth += wordWidth + charWidths[" "] * fontSize; - } else { - totalHeight += lineHeight; - lineWidth = wordWidth; - } - } - totalHeight += lineHeight; - return totalHeight; -} - export function toCamelCase(str: string) { return str .split(" ") From 3dc89726a3d4971d2ecd0b88807ede74e65f8d06 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:17:27 -0300 Subject: [PATCH 09/66] icons in styleUtils --- .../components/parameterComponent/index.tsx | 7 +- .../src/CustomNodes/GenericNode/index.tsx | 4 +- src/frontend/src/modals/NodeModal/index.tsx | 4 +- .../extraSidebarComponent/index.tsx | 8 +- src/frontend/src/utils.ts | 209 +----------------- src/frontend/src/utils/styleUtils.ts | 209 ++++++++++++++++++ 6 files changed, 225 insertions(+), 216 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index 91d41800a..d63a91ea2 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -22,10 +22,13 @@ import { getRandomKeyByssmm, groupByFamily, isValidConnection, - nodeIconsLucide, } from "../../../../utils"; import { cleanEdges } from "../../../../utils/reactflowUtils"; -import { nodeColors, nodeNames } from "../../../../utils/styleUtils"; +import { + nodeColors, + nodeIconsLucide, + nodeNames, +} from "../../../../utils/styleUtils"; export default function ParameterComponent({ left, diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 18b42c670..f53c0bb97 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -10,8 +10,8 @@ import { typesContext } from "../../contexts/typesContext"; import NodeModal from "../../modals/NodeModal"; import NodeToolbarComponent from "../../pages/FlowPage/components/nodeToolbarComponent"; import { NodeDataType } from "../../types/flow"; -import { classNames, nodeIconsLucide, toTitleCase } from "../../utils"; -import { nodeColors } from "../../utils/styleUtils"; +import { classNames, toTitleCase } from "../../utils"; +import { nodeColors, nodeIconsLucide } from "../../utils/styleUtils"; import ParameterComponent from "./components/parameterComponent"; export default function GenericNode({ diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index c84858c6d..2446f1148 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -5,8 +5,8 @@ import { limitScrollFieldsModal } from "../../constants"; import { PopUpContext } from "../../contexts/popUpContext"; import { typesContext } from "../../contexts/typesContext"; import { NodeDataType } from "../../types/flow"; -import { classNames, nodeIconsLucide, toTitleCase } from "../../utils"; -import { nodeColors } from "../../utils/styleUtils"; +import { classNames, toTitleCase } from "../../utils"; +import { nodeColors, nodeIconsLucide } from "../../utils/styleUtils"; import ModalField from "./components/ModalField"; export default function NodeModal({ data }: { data: NodeDataType }) { diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index 68a3f7b94..883777f29 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -9,8 +9,12 @@ import { typesContext } from "../../../../contexts/typesContext"; import ApiModal from "../../../../modals/ApiModal"; import ExportModal from "../../../../modals/exportModal"; import { APIClassType, APIObjectType } from "../../../../types/api"; -import { classNames, nodeIconsLucide } from "../../../../utils"; -import { nodeColors, nodeNames } from "../../../../utils/styleUtils"; +import { classNames } from "../../../../utils"; +import { + nodeColors, + nodeIconsLucide, + nodeNames, +} from "../../../../utils/styleUtils"; import DisclosureComponent from "../DisclosureComponent"; export default function ExtraSidebar() { diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 53efccd74..de42e7819 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,52 +1,8 @@ import clsx, { ClassValue } from "clsx"; import _ from "lodash"; -import { - Compass, - Cpu, - FileSearch, - Fingerprint, - Gift, - Hammer, - HelpCircle, - Laptop2, - Layers, - Lightbulb, - Link, - MessageCircle, - Paperclip, - Rocket, - Scissors, - TerminalSquare, - Wand2, - Wrench, -} from "lucide-react"; -import { ComponentType, SVGProps } from "react"; -import { Connection, Edge, Node, ReactFlowInstance } from "reactflow"; +import { Connection, ReactFlowInstance } from "reactflow"; import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; -import { AirbyteIcon } from "./icons/Airbyte"; -import { AnthropicIcon } from "./icons/Anthropic"; -import { BingIcon } from "./icons/Bing"; -import { ChromaIcon } from "./icons/ChromaIcon"; -import { CohereIcon } from "./icons/Cohere"; -import { EvernoteIcon } from "./icons/Evernote"; -import { FBIcon } from "./icons/FacebookMessenger"; -import { GitBookIcon } from "./icons/GitBook"; -import { GoogleIcon } from "./icons/Google"; -import { HuggingFaceIcon } from "./icons/HuggingFace"; -import { IFixIcon } from "./icons/IFixIt"; -import { MetaIcon } from "./icons/Meta"; -import { MidjourneyIcon } from "./icons/Midjorney"; -import { MongoDBIcon } from "./icons/MongoDB"; -import { NotionIcon } from "./icons/Notion"; -import { OpenAiIcon } from "./icons/OpenAi"; -import { PineconeIcon } from "./icons/Pinecone"; -import { QDrantIcon } from "./icons/QDrant"; -import { SearxIcon } from "./icons/Searx"; -import { SlackIcon } from "./icons/Slack"; -import { VertexAIIcon } from "./icons/VertexAI"; -import { HackerNewsIcon } from "./icons/hackerNews"; -import { SupabaseIcon } from "./icons/supabase"; import { APITemplateType } from "./types/api"; import { IVarHighlightType } from "./types/components"; import { FlowType, NodeType } from "./types/flow"; @@ -55,163 +11,6 @@ export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); } -export const nodeIconsLucide: { - [char: string]: React.ForwardRefExoticComponent< - ComponentType> - >; -} = { - Chroma: ChromaIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - AirbyteJSONLoader: AirbyteIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Anthropic: AnthropicIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - ChatAnthropic: AnthropicIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - BingSearchAPIWrapper: BingIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - BingSearchRun: BingIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Cohere: CohereIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - CohereEmbeddings: CohereIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - EverNoteLoader: EvernoteIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - FacebookChatLoader: FBIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GitbookLoader: GitBookIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GoogleSearchAPIWrapper: GoogleIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GoogleSearchResults: GoogleIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GoogleSearchRun: GoogleIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - HNLoader: HackerNewsIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - HuggingFaceHub: HuggingFaceIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - HuggingFaceEmbeddings: HuggingFaceIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - IFixitLoader: IFixIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Meta: MetaIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Midjorney: MidjourneyIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - MongoDBAtlasVectorSearch: MongoDBIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - NotionDirectoryLoader: NotionIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - ChatOpenAI: OpenAiIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - OpenAI: OpenAiIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - OpenAIEmbeddings: OpenAiIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Pinecone: PineconeIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Qdrant: QDrantIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Searx: SearxIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - SlackDirectoryLoader: SlackIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - SupabaseVectorStore: SupabaseIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - VertexAI: VertexAIIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - ChatVertexAI: VertexAIIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - agents: Rocket as React.ForwardRefExoticComponent< - ComponentType> - >, - chains: Link as React.ForwardRefExoticComponent< - ComponentType> - >, - memories: Cpu as React.ForwardRefExoticComponent< - ComponentType> - >, - llms: Lightbulb as React.ForwardRefExoticComponent< - ComponentType> - >, - prompts: TerminalSquare as React.ForwardRefExoticComponent< - ComponentType> - >, - tools: Wrench as React.ForwardRefExoticComponent< - ComponentType> - >, - advanced: Laptop2 as React.ForwardRefExoticComponent< - ComponentType> - >, - chat: MessageCircle as React.ForwardRefExoticComponent< - ComponentType> - >, - embeddings: Fingerprint as React.ForwardRefExoticComponent< - ComponentType> - >, - documentloaders: Paperclip as React.ForwardRefExoticComponent< - ComponentType> - >, - vectorstores: Layers as React.ForwardRefExoticComponent< - ComponentType> - >, - toolkits: Hammer as React.ForwardRefExoticComponent< - ComponentType> - >, - textsplitters: Scissors as React.ForwardRefExoticComponent< - ComponentType> - >, - wrappers: Gift as React.ForwardRefExoticComponent< - ComponentType> - >, - utilities: Wand2 as React.ForwardRefExoticComponent< - ComponentType> - >, - output_parsers: Compass as React.ForwardRefExoticComponent< - ComponentType> - >, - retrievers: FileSearch as React.ForwardRefExoticComponent< - ComponentType> - >, - unknown: HelpCircle as React.ForwardRefExoticComponent< - ComponentType> - >, -}; - export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } @@ -275,12 +74,6 @@ export function roundNumber(x: number, decimals: number) { return Math.round(x * Math.pow(10, decimals)) / Math.pow(10, decimals); } -export function getConnectedNodes(edge: Edge, nodes: Array): Array { - const sourceId = edge.source; - const targetId = edge.target; - return nodes.filter((node) => node.id === targetId || node.id === sourceId); -} - export function isValidConnection( { source, target, sourceHandle, targetHandle }: Connection, reactFlowInstance: ReactFlowInstance diff --git a/src/frontend/src/utils/styleUtils.ts b/src/frontend/src/utils/styleUtils.ts index 2e96d48cd..47aa1c5ce 100644 --- a/src/frontend/src/utils/styleUtils.ts +++ b/src/frontend/src/utils/styleUtils.ts @@ -1,3 +1,49 @@ +import { + Compass, + Cpu, + FileSearch, + Fingerprint, + Gift, + Hammer, + HelpCircle, + Laptop2, + Layers, + Lightbulb, + Link, + MessageCircle, + Paperclip, + Rocket, + Scissors, + SlackIcon, + TerminalSquare, + Wand2, + Wrench, +} from "lucide-react"; +import { ComponentType, SVGProps } from "react"; +import { Edge, Node } from "reactflow"; +import { AirbyteIcon } from "../icons/Airbyte"; +import { AnthropicIcon } from "../icons/Anthropic"; +import { BingIcon } from "../icons/Bing"; +import { ChromaIcon } from "../icons/ChromaIcon"; +import { CohereIcon } from "../icons/Cohere"; +import { EvernoteIcon } from "../icons/Evernote"; +import { FBIcon } from "../icons/FacebookMessenger"; +import { GitBookIcon } from "../icons/GitBook"; +import { GoogleIcon } from "../icons/Google"; +import { HuggingFaceIcon } from "../icons/HuggingFace"; +import { IFixIcon } from "../icons/IFixIt"; +import { MetaIcon } from "../icons/Meta"; +import { MidjourneyIcon } from "../icons/Midjorney"; +import { MongoDBIcon } from "../icons/MongoDB"; +import { NotionIcon } from "../icons/Notion"; +import { OpenAiIcon } from "../icons/OpenAi"; +import { PineconeIcon } from "../icons/Pinecone"; +import { QDrantIcon } from "../icons/QDrant"; +import { SearxIcon } from "../icons/Searx"; +import { VertexAIIcon } from "../icons/VertexAI"; +import { HackerNewsIcon } from "../icons/hackerNews"; +import { SupabaseIcon } from "../icons/supabase"; + export const gradients = [ "bg-gradient-to-br from-gray-800 via-rose-700 to-violet-900", "bg-gradient-to-br from-green-200 via-green-300 to-blue-500", @@ -75,3 +121,166 @@ export const nodeNames: { [char: string]: string } = { output_parsers: "Output Parsers", unknown: "Unknown", }; + +export const nodeIconsLucide: { + [char: string]: React.ForwardRefExoticComponent< + ComponentType> + >; +} = { + Chroma: ChromaIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + AirbyteJSONLoader: AirbyteIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + Anthropic: AnthropicIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + ChatAnthropic: AnthropicIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + BingSearchAPIWrapper: BingIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + BingSearchRun: BingIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + Cohere: CohereIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + CohereEmbeddings: CohereIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + EverNoteLoader: EvernoteIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + FacebookChatLoader: FBIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + GitbookLoader: GitBookIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + GoogleSearchAPIWrapper: GoogleIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + GoogleSearchResults: GoogleIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + GoogleSearchRun: GoogleIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + HNLoader: HackerNewsIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + HuggingFaceHub: HuggingFaceIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + HuggingFaceEmbeddings: HuggingFaceIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + IFixitLoader: IFixIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + Meta: MetaIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + Midjorney: MidjourneyIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + MongoDBAtlasVectorSearch: MongoDBIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + NotionDirectoryLoader: NotionIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + ChatOpenAI: OpenAiIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + OpenAI: OpenAiIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + OpenAIEmbeddings: OpenAiIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + Pinecone: PineconeIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + Qdrant: QDrantIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + Searx: SearxIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + SlackDirectoryLoader: SlackIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + SupabaseVectorStore: SupabaseIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + VertexAI: VertexAIIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + ChatVertexAI: VertexAIIcon as React.ForwardRefExoticComponent< + ComponentType> + >, + agents: Rocket as React.ForwardRefExoticComponent< + ComponentType> + >, + chains: Link as React.ForwardRefExoticComponent< + ComponentType> + >, + memories: Cpu as React.ForwardRefExoticComponent< + ComponentType> + >, + llms: Lightbulb as React.ForwardRefExoticComponent< + ComponentType> + >, + prompts: TerminalSquare as React.ForwardRefExoticComponent< + ComponentType> + >, + tools: Wrench as React.ForwardRefExoticComponent< + ComponentType> + >, + advanced: Laptop2 as React.ForwardRefExoticComponent< + ComponentType> + >, + chat: MessageCircle as React.ForwardRefExoticComponent< + ComponentType> + >, + embeddings: Fingerprint as React.ForwardRefExoticComponent< + ComponentType> + >, + documentloaders: Paperclip as React.ForwardRefExoticComponent< + ComponentType> + >, + vectorstores: Layers as React.ForwardRefExoticComponent< + ComponentType> + >, + toolkits: Hammer as React.ForwardRefExoticComponent< + ComponentType> + >, + textsplitters: Scissors as React.ForwardRefExoticComponent< + ComponentType> + >, + wrappers: Gift as React.ForwardRefExoticComponent< + ComponentType> + >, + utilities: Wand2 as React.ForwardRefExoticComponent< + ComponentType> + >, + output_parsers: Compass as React.ForwardRefExoticComponent< + ComponentType> + >, + retrievers: FileSearch as React.ForwardRefExoticComponent< + ComponentType> + >, + unknown: HelpCircle as React.ForwardRefExoticComponent< + ComponentType> + >, +}; + +export function getConnectedNodes(edge: Edge, nodes: Array): Array { + const sourceId = edge.source; + const targetId = edge.target; + return nodes.filter((node) => node.id === targetId || node.id === sourceId); +} From 3cb25486140ffd6791434ef9ddda5e1054383351 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:19:26 -0300 Subject: [PATCH 10/66] refactor --- src/frontend/src/modals/EditNodeModal/index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/modals/EditNodeModal/index.tsx b/src/frontend/src/modals/EditNodeModal/index.tsx index 84d85014d..18afc0df3 100644 --- a/src/frontend/src/modals/EditNodeModal/index.tsx +++ b/src/frontend/src/modals/EditNodeModal/index.tsx @@ -29,11 +29,12 @@ import { TableHeader, TableRow, } from "../../components/ui/table"; +import { limitScrollFieldsModal } from "../../constants"; import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; import { typesContext } from "../../contexts/typesContext"; import { NodeDataType } from "../../types/flow"; -import { classNames, limitScrollFieldsModal } from "../../utils"; +import { classNames } from "../../utils"; export default function EditNodeModal({ data }: { data: NodeDataType }) { const [open, setOpen] = useState(true); From 81f25662f1e657a63f80271a3343dea48456f060 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:25:37 -0300 Subject: [PATCH 11/66] is validConnection migration done --- .../components/parameterComponent/index.tsx | 6 ++- .../components/PageComponent/index.tsx | 2 +- src/frontend/src/utils.ts | 44 +------------------ src/frontend/src/utils/reactflowUtils.ts | 43 ++++++++++++++++++ 4 files changed, 49 insertions(+), 46 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index d63a91ea2..f50a559c7 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -21,9 +21,11 @@ import { classNames, getRandomKeyByssmm, groupByFamily, - isValidConnection, } from "../../../../utils"; -import { cleanEdges } from "../../../../utils/reactflowUtils"; +import { + cleanEdges, + isValidConnection, +} from "../../../../utils/reactflowUtils"; import { nodeColors, nodeIconsLucide, diff --git a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx index a6ac0f4df..163e3d9bc 100644 --- a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx @@ -26,7 +26,7 @@ import { typesContext } from "../../../../contexts/typesContext"; import { undoRedoContext } from "../../../../contexts/undoRedoContext"; import { APIClassType } from "../../../../types/api"; import { FlowType, NodeType } from "../../../../types/flow"; -import { isValidConnection } from "../../../../utils"; +import { isValidConnection } from "../../../../utils/reactflowUtils"; import ConnectionLineComponent from "../ConnectionLineComponent"; import ExtraSidebar from "../extraSidebarComponent"; diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index de42e7819..95890a3c8 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,6 +1,6 @@ import clsx, { ClassValue } from "clsx"; import _ from "lodash"; -import { Connection, ReactFlowInstance } from "reactflow"; +import { ReactFlowInstance } from "reactflow"; import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; import { APITemplateType } from "./types/api"; @@ -74,48 +74,6 @@ export function roundNumber(x: number, decimals: number) { return Math.round(x * Math.pow(10, decimals)) / Math.pow(10, decimals); } -export function isValidConnection( - { source, target, sourceHandle, targetHandle }: Connection, - reactFlowInstance: ReactFlowInstance -) { - if ( - targetHandle - .split("|")[0] - .split(";") - .some((n) => n === sourceHandle.split("|")[0]) || - sourceHandle - .split("|") - .slice(2) - .some((t) => - targetHandle - .split("|")[0] - .split(";") - .some((n) => n === t) - ) || - targetHandle.split("|")[0] === "str" - ) { - let targetNode = reactFlowInstance?.getNode(target)?.data?.node; - if (!targetNode) { - if ( - !reactFlowInstance - .getEdges() - .find((e) => e.targetHandle === targetHandle) - ) { - return true; - } - } else if ( - (!targetNode.template[targetHandle.split("|")[1]].list && - !reactFlowInstance - .getEdges() - .find((e) => e.targetHandle === targetHandle)) || - targetNode.template[targetHandle.split("|")[1]].list - ) { - return true; - } - } - return false; -} - export function removeApiKeys(flow: FlowType): FlowType { let cleanFLow = _.cloneDeep(flow); cleanFLow.data.nodes.forEach((node) => { diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index 2f9c58343..c5fe272e7 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -1,4 +1,5 @@ import _ from "lodash"; +import { Connection, ReactFlowInstance } from "reactflow"; import { cleanEdgesType } from "../types/utils/reactflowUtils"; export function cleanEdges({ @@ -44,3 +45,45 @@ export function cleanEdges({ }); updateEdge(newEdges); } + +export function isValidConnection( + { source, target, sourceHandle, targetHandle }: Connection, + reactFlowInstance: ReactFlowInstance +) { + if ( + targetHandle + .split("|")[0] + .split(";") + .some((n) => n === sourceHandle.split("|")[0]) || + sourceHandle + .split("|") + .slice(2) + .some((t) => + targetHandle + .split("|")[0] + .split(";") + .some((n) => n === t) + ) || + targetHandle.split("|")[0] === "str" + ) { + let targetNode = reactFlowInstance?.getNode(target)?.data?.node; + if (!targetNode) { + if ( + !reactFlowInstance + .getEdges() + .find((e) => e.targetHandle === targetHandle) + ) { + return true; + } + } else if ( + (!targetNode.template[targetHandle.split("|")[1]].list && + !reactFlowInstance + .getEdges() + .find((e) => e.targetHandle === targetHandle)) || + targetNode.template[targetHandle.split("|")[1]].list + ) { + return true; + } + } + return false; +} From 6c9220ec1e7a5d8e3cd4042c085ebb7db7091fa0 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Thu, 13 Jul 2023 18:28:10 -0300 Subject: [PATCH 12/66] feat[genericIconComponent]: Add a SVG method to the icon component --- package-lock.json | 1425 +++++++++++++++++ package.json | 5 + .../components/genericIconComponent/index.tsx | 19 + src/frontend/src/icons/Airbyte/Airbyte.jsx | 24 + src/frontend/src/icons/Airbyte/index.tsx | 4 +- .../src/icons/Anthropic/Anthropic.jsx | 18 + .../src/icons/Anthropic/AnthropicBox.jsx | 19 + src/frontend/src/icons/Anthropic/index.tsx | 4 +- src/frontend/src/icons/AzLogo/AzLogo.jsx | 18 + src/frontend/src/icons/AzLogo/index.tsx | 4 +- src/frontend/src/icons/Bing/Bing.jsx | 95 ++ src/frontend/src/icons/Bing/index.tsx | 4 +- src/frontend/src/icons/ChromaIcon/Chroma.jsx | 23 + src/frontend/src/icons/ChromaIcon/index.tsx | 4 +- src/frontend/src/icons/Cohere/Cohere.jsx | 53 + src/frontend/src/icons/Cohere/index.tsx | 4 +- .../src/icons/Evernote/EvernoteIcon.jsx | 14 + src/frontend/src/icons/Evernote/index.tsx | 4 +- .../FacebookMessengerLogo2020.jsx | 53 + .../src/icons/FacebookMessenger/index.tsx | 4 +- .../src/icons/GitBook/GitbookSvgrepoCom.jsx | 13 + src/frontend/src/icons/GitBook/index.tsx | 4 +- src/frontend/src/icons/Google/Google.jsx | 29 + src/frontend/src/icons/Google/index.tsx | 4 +- src/frontend/src/icons/HuggingFace/HfLogo.jsx | 43 + src/frontend/src/icons/HuggingFace/index.tsx | 4 +- .../src/icons/IFixIt/IfixitSeeklogoCom.jsx | 16 + src/frontend/src/icons/IFixIt/index.tsx | 4 +- src/frontend/src/icons/Meta/MetaIcon.jsx | 59 + src/frontend/src/icons/Meta/index.tsx | 4 +- .../src/icons/Midjorney/MidjourneyEmblem.jsx | 14 + src/frontend/src/icons/Midjorney/index.tsx | 4 +- .../src/icons/MongoDB/MongodbIcon.jsx | 24 + src/frontend/src/icons/MongoDB/index.tsx | 4 +- src/frontend/src/icons/Notion/NotionLogo.jsx | 23 + src/frontend/src/icons/Notion/index.tsx | 4 +- src/frontend/src/icons/OpenAi/OpenAi.jsx | 23 + src/frontend/src/icons/OpenAi/index.tsx | 4 +- .../src/icons/Pinecone/PineconeLogo.jsx | 134 ++ src/frontend/src/icons/Pinecone/index.tsx | 4 +- .../src/icons/PowerPoint/PowerPoint.jsx | 77 + src/frontend/src/icons/QDrant/QDrant.jsx | 64 + src/frontend/src/icons/QDrant/index.tsx | 4 +- .../icons/ReadTheDocs/ReadthedocsioIcon.jsx | 10 + src/frontend/src/icons/ReadTheDocs/index.tsx | 4 +- src/frontend/src/icons/Searx/SearxLogo.jsx | 152 ++ src/frontend/src/icons/Searx/index.tsx | 4 +- src/frontend/src/icons/Serper/Serper.jsx | 18 + src/frontend/src/icons/Serper/index.tsx | 4 +- src/frontend/src/icons/Slack/SlackIcon.jsx | 40 + src/frontend/src/icons/Slack/index.tsx | 4 +- src/frontend/src/icons/VertexAI/VertexAi.jsx | 53 + src/frontend/src/icons/VertexAI/index.tsx | 4 +- src/frontend/src/icons/Weaviate/Weaviate.jsx | 358 +++++ src/frontend/src/icons/Weaviate/index.tsx | 4 +- .../src/icons/Wikipedia/Wikipedia.jsx | 237 +++ src/frontend/src/icons/Wikipedia/index.tsx | 4 +- src/frontend/src/icons/Wolfram/Wolfram.jsx | 403 +++++ src/frontend/src/icons/Wolfram/index.tsx | 4 +- src/frontend/src/icons/Word/Word.jsx | 78 + src/frontend/src/icons/Word/index.tsx | 4 +- .../src/icons/hackerNews/YCombinatorLogo.jsx | 18 + src/frontend/src/icons/hackerNews/index.tsx | 4 +- .../src/icons/supabase/SupabaseIcon.jsx | 63 + src/frontend/src/icons/supabase/index.tsx | 4 +- src/frontend/src/modals/formModal/index.tsx | 9 +- src/frontend/src/pages/FlowPage/index.tsx | 1 + src/frontend/src/types/components/index.ts | 9 + src/frontend/src/utils.ts | 63 + 69 files changed, 3855 insertions(+), 62 deletions(-) create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/frontend/src/components/genericIconComponent/index.tsx create mode 100644 src/frontend/src/icons/Airbyte/Airbyte.jsx create mode 100644 src/frontend/src/icons/Anthropic/Anthropic.jsx create mode 100644 src/frontend/src/icons/Anthropic/AnthropicBox.jsx create mode 100644 src/frontend/src/icons/AzLogo/AzLogo.jsx create mode 100644 src/frontend/src/icons/Bing/Bing.jsx create mode 100644 src/frontend/src/icons/ChromaIcon/Chroma.jsx create mode 100644 src/frontend/src/icons/Cohere/Cohere.jsx create mode 100644 src/frontend/src/icons/Evernote/EvernoteIcon.jsx create mode 100644 src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx create mode 100644 src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx create mode 100644 src/frontend/src/icons/Google/Google.jsx create mode 100644 src/frontend/src/icons/HuggingFace/HfLogo.jsx create mode 100644 src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx create mode 100644 src/frontend/src/icons/Meta/MetaIcon.jsx create mode 100644 src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx create mode 100644 src/frontend/src/icons/MongoDB/MongodbIcon.jsx create mode 100644 src/frontend/src/icons/Notion/NotionLogo.jsx create mode 100644 src/frontend/src/icons/OpenAi/OpenAi.jsx create mode 100644 src/frontend/src/icons/Pinecone/PineconeLogo.jsx create mode 100644 src/frontend/src/icons/PowerPoint/PowerPoint.jsx create mode 100644 src/frontend/src/icons/QDrant/QDrant.jsx create mode 100644 src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx create mode 100644 src/frontend/src/icons/Searx/SearxLogo.jsx create mode 100644 src/frontend/src/icons/Serper/Serper.jsx create mode 100644 src/frontend/src/icons/Slack/SlackIcon.jsx create mode 100644 src/frontend/src/icons/VertexAI/VertexAi.jsx create mode 100644 src/frontend/src/icons/Weaviate/Weaviate.jsx create mode 100644 src/frontend/src/icons/Wikipedia/Wikipedia.jsx create mode 100644 src/frontend/src/icons/Wolfram/Wolfram.jsx create mode 100644 src/frontend/src/icons/Word/Word.jsx create mode 100644 src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx create mode 100644 src/frontend/src/icons/supabase/SupabaseIcon.jsx diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..d5e70dae7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1425 @@ +{ + "name": "langflow", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@svgr/cli": "^8.0.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", + "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.9", + "@babel/helper-module-transforms": "^7.22.9", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.8", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.0.0.tgz", + "integrity": "sha512-UKrY3860AQICgH7g+6h2zkoxeVEPLYwX/uAjmqo4PIq2FIHppwhIqZstIyTz0ZtlwreKR41O3W3BzsBBiJV2Aw==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.0.0.tgz", + "integrity": "sha512-KLcjiZychInVrhs86OvcYPLTFu9L5XV2vj0XAaE1HwE3J3jLmIzRY8ttdeAg/iFyp8nhavJpafpDZTt+1LIpkQ==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.0.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/cli": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/cli/-/cli-8.0.1.tgz", + "integrity": "sha512-o8CLcozNalKz4c2wFyldaWCQYj5UwXhB2S9ZaR0iZGY2FrU30qzwG1QdtTBTiR6g13udqAPGwDi91Re1QICIKQ==", + "dependencies": { + "@svgr/core": "8.0.0", + "@svgr/plugin-jsx": "8.0.1", + "@svgr/plugin-prettier": "8.0.1", + "@svgr/plugin-svgo": "8.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "commander": "^9.4.1", + "dashify": "^2.0.0", + "glob": "^8.0.3", + "snake-case": "^3.0.4" + }, + "bin": { + "svgr": "bin/svgr" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.0.0.tgz", + "integrity": "sha512-aJKtc+Pie/rFYsVH/unSkDaZGvEeylNv/s2cP+ta9/rYWxRVvoV/S4Qw65Kmrtah4CBK5PM6ISH9qUH7IJQCng==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.0.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.0.1.tgz", + "integrity": "sha512-bfCFb+4ZsM3UuKP2t7KmDwn6YV8qVn9HIQJmau6xeQb/iV65Rpi7NBNBWA2hcCd4GKoCqG8hpaaDk5FDR0eH+g==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.0.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-prettier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-prettier/-/plugin-prettier-8.0.1.tgz", + "integrity": "sha512-5ukxApPhNM5JvA91azPGSNp0FtmYXgCiTF8DZtEoM1X4FcPSoN5Pbi930lb226XDO/RtMFy0C8yyFUZ90K8U3A==", + "dependencies": { + "deepmerge": "^4.3.1", + "prettier": "^2.8.7" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.0.1.tgz", + "integrity": "sha512-29OJ1QmJgnohQHDAgAuY2h21xWD6TZiXji+hnx+W635RiXTAlHTbjrZDktfqzkN0bOeQEtNe+xgq73/XeWFfSg==", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cosmiconfig": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", + "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, + "node_modules/dashify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dashify/-/dashify-2.0.0.tgz", + "integrity": "sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A==", + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.457", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.457.tgz", + "integrity": "sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", + "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..7613c32cd --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@svgr/cli": "^8.0.1" + } +} diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx new file mode 100644 index 000000000..0d82793f2 --- /dev/null +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -0,0 +1,19 @@ +import { FC } from "react"; +import SvgGoogle from "../../icons/Google/Google"; +import SvgBing from "../../icons/Bing/Bing"; +import { IconComponentProps, SvgIconProps } from "../../types/components"; +import { svgIcons } from "../../utils"; + +export function IconFromSvg({ name }: SvgIconProps): JSX.Element { + const TargetSvg = svgIcons[name] + return ( + + ); +} + +export default function IconComponent({ method, name }: IconComponentProps): JSX.Element { + switch (method) { + case 'SVG': + return + } +} \ No newline at end of file diff --git a/src/frontend/src/icons/Airbyte/Airbyte.jsx b/src/frontend/src/icons/Airbyte/Airbyte.jsx new file mode 100644 index 000000000..7e0a19e89 --- /dev/null +++ b/src/frontend/src/icons/Airbyte/Airbyte.jsx @@ -0,0 +1,24 @@ +import * as React from "react"; +const SvgAirbyte = (props) => ( + + + +); +export default SvgAirbyte; diff --git a/src/frontend/src/icons/Airbyte/index.tsx b/src/frontend/src/icons/Airbyte/index.tsx index 6fb8daf24..30f68bf7d 100644 --- a/src/frontend/src/icons/Airbyte/index.tsx +++ b/src/frontend/src/icons/Airbyte/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as AirbyteSVG } from "./airbyte.svg"; +import SvgAirbyte from "./Airbyte"; export const AirbyteIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Anthropic/Anthropic.jsx b/src/frontend/src/icons/Anthropic/Anthropic.jsx new file mode 100644 index 000000000..6f68808b8 --- /dev/null +++ b/src/frontend/src/icons/Anthropic/Anthropic.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +const SvgAnthropic = (props) => ( + + + +); +export default SvgAnthropic; diff --git a/src/frontend/src/icons/Anthropic/AnthropicBox.jsx b/src/frontend/src/icons/Anthropic/AnthropicBox.jsx new file mode 100644 index 000000000..53080e5fe --- /dev/null +++ b/src/frontend/src/icons/Anthropic/AnthropicBox.jsx @@ -0,0 +1,19 @@ +import * as React from "react"; +const SvgAnthropicBox = (props) => ( + + + + + + +); +export default SvgAnthropicBox; diff --git a/src/frontend/src/icons/Anthropic/index.tsx b/src/frontend/src/icons/Anthropic/index.tsx index 4cdf8f910..9dd920c64 100644 --- a/src/frontend/src/icons/Anthropic/index.tsx +++ b/src/frontend/src/icons/Anthropic/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as AnthropicSVG } from "./anthropic_box.svg"; +import SvgAnthropicBox from "./AnthropicBox"; export const AnthropicIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/AzLogo/AzLogo.jsx b/src/frontend/src/icons/AzLogo/AzLogo.jsx new file mode 100644 index 000000000..9dc13765b --- /dev/null +++ b/src/frontend/src/icons/AzLogo/AzLogo.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +const SvgAzLogo = (props) => ( + + + +); +export default SvgAzLogo; diff --git a/src/frontend/src/icons/AzLogo/index.tsx b/src/frontend/src/icons/AzLogo/index.tsx index 96a8a058a..4fa00c204 100644 --- a/src/frontend/src/icons/AzLogo/index.tsx +++ b/src/frontend/src/icons/AzLogo/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as AzSVG } from "./az_logo.svg"; +import SvgAzLogo from "./AzLogo"; export const AzIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Bing/Bing.jsx b/src/frontend/src/icons/Bing/Bing.jsx new file mode 100644 index 000000000..3f9f2128b --- /dev/null +++ b/src/frontend/src/icons/Bing/Bing.jsx @@ -0,0 +1,95 @@ +import * as React from "react"; +const SvgBing = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgBing; diff --git a/src/frontend/src/icons/Bing/index.tsx b/src/frontend/src/icons/Bing/index.tsx index abaf31be4..8e030ca88 100644 --- a/src/frontend/src/icons/Bing/index.tsx +++ b/src/frontend/src/icons/Bing/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as BingSVG } from "./bing.svg"; +import SvgBing from "./Bing"; export const BingIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/ChromaIcon/Chroma.jsx b/src/frontend/src/icons/ChromaIcon/Chroma.jsx new file mode 100644 index 000000000..c93bc0ed0 --- /dev/null +++ b/src/frontend/src/icons/ChromaIcon/Chroma.jsx @@ -0,0 +1,23 @@ +import * as React from "react"; +const SvgChroma = (props) => ( + + + + + + +); +export default SvgChroma; diff --git a/src/frontend/src/icons/ChromaIcon/index.tsx b/src/frontend/src/icons/ChromaIcon/index.tsx index afcb868a8..657d479e6 100644 --- a/src/frontend/src/icons/ChromaIcon/index.tsx +++ b/src/frontend/src/icons/ChromaIcon/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as ChromaSVG } from "./chroma.svg"; +import SvgChroma from "./Chroma"; export const ChromaIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Cohere/Cohere.jsx b/src/frontend/src/icons/Cohere/Cohere.jsx new file mode 100644 index 000000000..b339380ec --- /dev/null +++ b/src/frontend/src/icons/Cohere/Cohere.jsx @@ -0,0 +1,53 @@ +import * as React from "react"; +const SvgCohere = (props) => ( + + + + + + + + + + + + +); +export default SvgCohere; diff --git a/src/frontend/src/icons/Cohere/index.tsx b/src/frontend/src/icons/Cohere/index.tsx index bcb15dd24..58b53b097 100644 --- a/src/frontend/src/icons/Cohere/index.tsx +++ b/src/frontend/src/icons/Cohere/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as CohereSVG } from "./cohere.svg"; +import SvgCohere from "./Cohere"; export const CohereIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Evernote/EvernoteIcon.jsx b/src/frontend/src/icons/Evernote/EvernoteIcon.jsx new file mode 100644 index 000000000..ca76b7d3d --- /dev/null +++ b/src/frontend/src/icons/Evernote/EvernoteIcon.jsx @@ -0,0 +1,14 @@ +import * as React from "react"; +const SvgEvernoteIcon = (props) => ( + + + +); +export default SvgEvernoteIcon; diff --git a/src/frontend/src/icons/Evernote/index.tsx b/src/frontend/src/icons/Evernote/index.tsx index 685d9da13..b2460d7e7 100644 --- a/src/frontend/src/icons/Evernote/index.tsx +++ b/src/frontend/src/icons/Evernote/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as EvernoteSVG } from "./evernote-icon.svg"; +import SvgEvernoteIcon from "./EvernoteIcon"; export const EvernoteIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx b/src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx new file mode 100644 index 000000000..bbb45a4e4 --- /dev/null +++ b/src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx @@ -0,0 +1,53 @@ +import * as React from "react"; +const SvgFacebookMessengerLogo2020 = (props) => ( + + + + + + + + + + +); +export default SvgFacebookMessengerLogo2020; diff --git a/src/frontend/src/icons/FacebookMessenger/index.tsx b/src/frontend/src/icons/FacebookMessenger/index.tsx index 4450570aa..621e5b766 100644 --- a/src/frontend/src/icons/FacebookMessenger/index.tsx +++ b/src/frontend/src/icons/FacebookMessenger/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as FacebookMessengerSVG } from "./Facebook_Messenger_logo_2020.svg"; +import SvgFacebookMessengerLogo2020 from "./FacebookMessengerLogo2020"; export const FBIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx b/src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx new file mode 100644 index 000000000..98b3a4870 --- /dev/null +++ b/src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx @@ -0,0 +1,13 @@ +import * as React from "react"; +const SvgGitbookSvgrepoCom = (props) => ( + + + +); +export default SvgGitbookSvgrepoCom; diff --git a/src/frontend/src/icons/GitBook/index.tsx b/src/frontend/src/icons/GitBook/index.tsx index 0e312a8e1..a9ba12cb0 100644 --- a/src/frontend/src/icons/GitBook/index.tsx +++ b/src/frontend/src/icons/GitBook/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as GitBookSVG } from "./gitbook-svgrepo-com.svg"; +import SvgGitbookSvgrepoCom from "./GitbookSvgrepoCom"; export const GitBookIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Google/Google.jsx b/src/frontend/src/icons/Google/Google.jsx new file mode 100644 index 000000000..92863046d --- /dev/null +++ b/src/frontend/src/icons/Google/Google.jsx @@ -0,0 +1,29 @@ +import * as React from "react"; +const SvgGoogle = (props) => ( + + + + + + +); +export default SvgGoogle; diff --git a/src/frontend/src/icons/Google/index.tsx b/src/frontend/src/icons/Google/index.tsx index 5159ba23b..89bd546ef 100644 --- a/src/frontend/src/icons/Google/index.tsx +++ b/src/frontend/src/icons/Google/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as GoogleSVG } from "./google.svg"; +import SvgGoogle from "./Google"; export const GoogleIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/HuggingFace/HfLogo.jsx b/src/frontend/src/icons/HuggingFace/HfLogo.jsx new file mode 100644 index 000000000..617d64610 --- /dev/null +++ b/src/frontend/src/icons/HuggingFace/HfLogo.jsx @@ -0,0 +1,43 @@ +import * as React from "react"; +const SvgHfLogo = (props) => ( + + + + + + + + +); +export default SvgHfLogo; diff --git a/src/frontend/src/icons/HuggingFace/index.tsx b/src/frontend/src/icons/HuggingFace/index.tsx index 36599e0f6..3f7ccdeca 100644 --- a/src/frontend/src/icons/HuggingFace/index.tsx +++ b/src/frontend/src/icons/HuggingFace/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as HugginFaceSVG } from "./hf-logo.svg"; +import SvgHfLogo from "./HfLogo"; export const HuggingFaceIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx b/src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx new file mode 100644 index 000000000..43898cc72 --- /dev/null +++ b/src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx @@ -0,0 +1,16 @@ +import * as React from "react"; +const SvgIfixitSeeklogocom = (props) => ( + + + +); +export default SvgIfixitSeeklogocom; diff --git a/src/frontend/src/icons/IFixIt/index.tsx b/src/frontend/src/icons/IFixIt/index.tsx index 9124266e4..7d94a4fcd 100644 --- a/src/frontend/src/icons/IFixIt/index.tsx +++ b/src/frontend/src/icons/IFixIt/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as IFixItSVG } from "./ifixit-seeklogo.com.svg"; +import SvgIfixitSeeklogocom from "./IfixitSeeklogoCom"; export const IFixIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Meta/MetaIcon.jsx b/src/frontend/src/icons/Meta/MetaIcon.jsx new file mode 100644 index 000000000..cbbe8aac2 --- /dev/null +++ b/src/frontend/src/icons/Meta/MetaIcon.jsx @@ -0,0 +1,59 @@ +import * as React from "react"; +const SvgMetaIcon = (props) => ( + + + + + + + + + + + + + + + + + +); +export default SvgMetaIcon; diff --git a/src/frontend/src/icons/Meta/index.tsx b/src/frontend/src/icons/Meta/index.tsx index 0aabeea74..0882b673d 100644 --- a/src/frontend/src/icons/Meta/index.tsx +++ b/src/frontend/src/icons/Meta/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as MetaSVG } from "./meta-icon.svg"; +import SvgMetaIcon from "./MetaIcon"; export const MetaIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx b/src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx new file mode 100644 index 000000000..58b1acbec --- /dev/null +++ b/src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx @@ -0,0 +1,14 @@ +import * as React from "react"; +const SvgMidjourneyEmblem = (props) => ( + + + + +); +export default SvgMidjourneyEmblem; diff --git a/src/frontend/src/icons/Midjorney/index.tsx b/src/frontend/src/icons/Midjorney/index.tsx index fc2daacb8..f691abeb8 100644 --- a/src/frontend/src/icons/Midjorney/index.tsx +++ b/src/frontend/src/icons/Midjorney/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as MidjourneySVG } from "./Midjourney_Emblem.svg"; +import SvgMidjourneyEmblem from "./MidjourneyEmblem"; export const MidjourneyIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/MongoDB/MongodbIcon.jsx b/src/frontend/src/icons/MongoDB/MongodbIcon.jsx new file mode 100644 index 000000000..c208b031c --- /dev/null +++ b/src/frontend/src/icons/MongoDB/MongodbIcon.jsx @@ -0,0 +1,24 @@ +import * as React from "react"; +const SvgMongodbIcon = (props) => ( + + + + + +); +export default SvgMongodbIcon; diff --git a/src/frontend/src/icons/MongoDB/index.tsx b/src/frontend/src/icons/MongoDB/index.tsx index aa27955c1..d39169c89 100644 --- a/src/frontend/src/icons/MongoDB/index.tsx +++ b/src/frontend/src/icons/MongoDB/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as MongoDBSVG } from "./mongodb-icon.svg"; +import SvgMongodbIcon from "./MongodbIcon"; export const MongoDBIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Notion/NotionLogo.jsx b/src/frontend/src/icons/Notion/NotionLogo.jsx new file mode 100644 index 000000000..3c464438b --- /dev/null +++ b/src/frontend/src/icons/Notion/NotionLogo.jsx @@ -0,0 +1,23 @@ +import * as React from "react"; +const SvgNotionLogo = (props) => ( + + + + +); +export default SvgNotionLogo; diff --git a/src/frontend/src/icons/Notion/index.tsx b/src/frontend/src/icons/Notion/index.tsx index 265a5c153..cf3e3f48b 100644 --- a/src/frontend/src/icons/Notion/index.tsx +++ b/src/frontend/src/icons/Notion/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as NotionSVG } from "./Notion-logo.svg"; +import SvgNotionLogo from "./NotionLogo"; export const NotionIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/OpenAi/OpenAi.jsx b/src/frontend/src/icons/OpenAi/OpenAi.jsx new file mode 100644 index 000000000..948305c58 --- /dev/null +++ b/src/frontend/src/icons/OpenAi/OpenAi.jsx @@ -0,0 +1,23 @@ +import * as React from "react"; +const SvgOpenAi = (props) => ( + + + + +); +export default SvgOpenAi; diff --git a/src/frontend/src/icons/OpenAi/index.tsx b/src/frontend/src/icons/OpenAi/index.tsx index 940f4f908..a1b7545d4 100644 --- a/src/frontend/src/icons/OpenAi/index.tsx +++ b/src/frontend/src/icons/OpenAi/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as OpenAiSVG } from "./openAI.svg"; +import SvgOpenAi from "./OpenAi"; export const OpenAiIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Pinecone/PineconeLogo.jsx b/src/frontend/src/icons/Pinecone/PineconeLogo.jsx new file mode 100644 index 000000000..8e9186a64 --- /dev/null +++ b/src/frontend/src/icons/Pinecone/PineconeLogo.jsx @@ -0,0 +1,134 @@ +import * as React from "react"; +const SvgPineconeLogo = (props) => ( + + + + + + + + + + + + + + + + + + + + + +); +export default SvgPineconeLogo; diff --git a/src/frontend/src/icons/Pinecone/index.tsx b/src/frontend/src/icons/Pinecone/index.tsx index 3e0b9123e..972f3da69 100644 --- a/src/frontend/src/icons/Pinecone/index.tsx +++ b/src/frontend/src/icons/Pinecone/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as PineconeSVG } from "./pinecone_logo.svg"; +import SvgPineconeLogo from "./PineconeLogo"; export const PineconeIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/PowerPoint/PowerPoint.jsx b/src/frontend/src/icons/PowerPoint/PowerPoint.jsx new file mode 100644 index 000000000..cffa66335 --- /dev/null +++ b/src/frontend/src/icons/PowerPoint/PowerPoint.jsx @@ -0,0 +1,77 @@ +import * as React from "react"; +const SvgPowerPoint = (props) => ( + + + + + + + + + + + + + + + + +); +export default SvgPowerPoint; diff --git a/src/frontend/src/icons/QDrant/QDrant.jsx b/src/frontend/src/icons/QDrant/QDrant.jsx new file mode 100644 index 000000000..c097615c2 --- /dev/null +++ b/src/frontend/src/icons/QDrant/QDrant.jsx @@ -0,0 +1,64 @@ +import * as React from "react"; +const SvgQDrant = (props) => ( + + + + + + + + + + + + + + + + + + + +); +export default SvgQDrant; diff --git a/src/frontend/src/icons/QDrant/index.tsx b/src/frontend/src/icons/QDrant/index.tsx index 5bc03e070..48fde5ad4 100644 --- a/src/frontend/src/icons/QDrant/index.tsx +++ b/src/frontend/src/icons/QDrant/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as QDrantSVG } from "./QDrant.svg"; +import SvgQDrant from "./QDrant"; export const QDrantIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx b/src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx new file mode 100644 index 000000000..ad4c21737 --- /dev/null +++ b/src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx @@ -0,0 +1,10 @@ +import * as React from "react"; +const SvgReadthedocsioIcon = (props) => ( + + + +); +export default SvgReadthedocsioIcon; diff --git a/src/frontend/src/icons/ReadTheDocs/index.tsx b/src/frontend/src/icons/ReadTheDocs/index.tsx index 87a327912..bb9860986 100644 --- a/src/frontend/src/icons/ReadTheDocs/index.tsx +++ b/src/frontend/src/icons/ReadTheDocs/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as ReadTheDocsSVG } from "./readthedocsio-icon.svg"; +import SvgReadthedocsioIcon from "./ReadthedocsioIcon"; export const ReadTheDocsIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Searx/SearxLogo.jsx b/src/frontend/src/icons/Searx/SearxLogo.jsx new file mode 100644 index 000000000..6ac039ffa --- /dev/null +++ b/src/frontend/src/icons/Searx/SearxLogo.jsx @@ -0,0 +1,152 @@ +import * as React from "react"; +const SvgSearxLogo = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgSearxLogo; diff --git a/src/frontend/src/icons/Searx/index.tsx b/src/frontend/src/icons/Searx/index.tsx index c1196c68a..f78252072 100644 --- a/src/frontend/src/icons/Searx/index.tsx +++ b/src/frontend/src/icons/Searx/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SearxSVG } from "./Searx_logo.svg"; +import SvgSearxLogo from "./SearxLogo"; export const SearxIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/Serper/Serper.jsx b/src/frontend/src/icons/Serper/Serper.jsx new file mode 100644 index 000000000..63cfb749a --- /dev/null +++ b/src/frontend/src/icons/Serper/Serper.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +const SvgSerper = (props) => ( + + + +); +export default SvgSerper; diff --git a/src/frontend/src/icons/Serper/index.tsx b/src/frontend/src/icons/Serper/index.tsx index 77ea58077..35abc4b44 100644 --- a/src/frontend/src/icons/Serper/index.tsx +++ b/src/frontend/src/icons/Serper/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SerperSVG } from "./serper.svg"; +import SvgSerper from "./Serper"; export const SerperIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Slack/SlackIcon.jsx b/src/frontend/src/icons/Slack/SlackIcon.jsx new file mode 100644 index 000000000..e61fa930b --- /dev/null +++ b/src/frontend/src/icons/Slack/SlackIcon.jsx @@ -0,0 +1,40 @@ +import * as React from "react"; +const SvgSlackIcon = (props) => ( + + + + + + +); +export default SvgSlackIcon; diff --git a/src/frontend/src/icons/Slack/index.tsx b/src/frontend/src/icons/Slack/index.tsx index ec5bdc108..eab13486f 100644 --- a/src/frontend/src/icons/Slack/index.tsx +++ b/src/frontend/src/icons/Slack/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SlackSVG } from "./slack-icon.svg"; +import SvgSlackIcon from "./SlackIcon"; export const SlackIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/VertexAI/VertexAi.jsx b/src/frontend/src/icons/VertexAI/VertexAi.jsx new file mode 100644 index 000000000..4b866803b --- /dev/null +++ b/src/frontend/src/icons/VertexAI/VertexAi.jsx @@ -0,0 +1,53 @@ +import * as React from "react"; +const SvgVertexAi = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgVertexAi; diff --git a/src/frontend/src/icons/VertexAI/index.tsx b/src/frontend/src/icons/VertexAI/index.tsx index a5115da7e..48f193146 100644 --- a/src/frontend/src/icons/VertexAI/index.tsx +++ b/src/frontend/src/icons/VertexAI/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as VertexAISVG } from "./vertex_ai.svg"; +import SvgVertexAi from "./VertexAi"; export const VertexAIIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Weaviate/Weaviate.jsx b/src/frontend/src/icons/Weaviate/Weaviate.jsx new file mode 100644 index 000000000..8224587ab --- /dev/null +++ b/src/frontend/src/icons/Weaviate/Weaviate.jsx @@ -0,0 +1,358 @@ +import * as React from "react"; +const SvgWeaviate = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgWeaviate; diff --git a/src/frontend/src/icons/Weaviate/index.tsx b/src/frontend/src/icons/Weaviate/index.tsx index f1aeeb1af..0b242f8f8 100644 --- a/src/frontend/src/icons/Weaviate/index.tsx +++ b/src/frontend/src/icons/Weaviate/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WeaviateSVG } from "./weaviate.svg"; +import SvgWeaviate from "./Weaviate"; export const WeaviateIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Wikipedia/Wikipedia.jsx b/src/frontend/src/icons/Wikipedia/Wikipedia.jsx new file mode 100644 index 000000000..53d5f6996 --- /dev/null +++ b/src/frontend/src/icons/Wikipedia/Wikipedia.jsx @@ -0,0 +1,237 @@ +import * as React from "react"; +const SvgWikipedia = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgWikipedia; diff --git a/src/frontend/src/icons/Wikipedia/index.tsx b/src/frontend/src/icons/Wikipedia/index.tsx index 446f9c108..20525b70d 100644 --- a/src/frontend/src/icons/Wikipedia/index.tsx +++ b/src/frontend/src/icons/Wikipedia/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WikipediaSVG } from "./Wikipedia.svg"; +import SvgWikipedia from "./Wikipedia"; export const WikipediaIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Wolfram/Wolfram.jsx b/src/frontend/src/icons/Wolfram/Wolfram.jsx new file mode 100644 index 000000000..281cedbba --- /dev/null +++ b/src/frontend/src/icons/Wolfram/Wolfram.jsx @@ -0,0 +1,403 @@ +import * as React from "react"; +const SvgWolfram = (props) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default SvgWolfram; diff --git a/src/frontend/src/icons/Wolfram/index.tsx b/src/frontend/src/icons/Wolfram/index.tsx index 8f1b3e089..1d49b96fc 100644 --- a/src/frontend/src/icons/Wolfram/index.tsx +++ b/src/frontend/src/icons/Wolfram/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WolframSVG } from "./wolfram.svg"; +import SvgWolfram from "./Wolfram"; export const WolframIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/Word/Word.jsx b/src/frontend/src/icons/Word/Word.jsx new file mode 100644 index 000000000..e3c8d062c --- /dev/null +++ b/src/frontend/src/icons/Word/Word.jsx @@ -0,0 +1,78 @@ +import * as React from "react"; +const SvgWord = (props) => ( + + + + + + + + + + + + + + + + + +); +export default SvgWord; diff --git a/src/frontend/src/icons/Word/index.tsx b/src/frontend/src/icons/Word/index.tsx index 8c6cf9f31..ac7842e2f 100644 --- a/src/frontend/src/icons/Word/index.tsx +++ b/src/frontend/src/icons/Word/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef } from "react"; -import { ReactComponent as WordSVG } from "./word.svg"; +import SvgWord from "./Word"; export const WordIcon = forwardRef>( (props, ref) => { - return ; + return ; } ); diff --git a/src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx b/src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx new file mode 100644 index 000000000..726ebc634 --- /dev/null +++ b/src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx @@ -0,0 +1,18 @@ +import * as React from "react"; +const SvgYCombinatorLogo = (props) => ( + + + + +); +export default SvgYCombinatorLogo; diff --git a/src/frontend/src/icons/hackerNews/index.tsx b/src/frontend/src/icons/hackerNews/index.tsx index 787a94274..14e916c93 100644 --- a/src/frontend/src/icons/hackerNews/index.tsx +++ b/src/frontend/src/icons/hackerNews/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as HackerNewsSVG } from "./Y_Combinator_logo.svg"; +import SvgYCombinatorLogo from "./YCombinatorLogo"; export const HackerNewsIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/icons/supabase/SupabaseIcon.jsx b/src/frontend/src/icons/supabase/SupabaseIcon.jsx new file mode 100644 index 000000000..55a9aa2c1 --- /dev/null +++ b/src/frontend/src/icons/supabase/SupabaseIcon.jsx @@ -0,0 +1,63 @@ +import * as React from "react"; +const SvgSupabaseIcon = (props) => ( + + + + + + + + + + + + + + + +); +export default SvgSupabaseIcon; diff --git a/src/frontend/src/icons/supabase/index.tsx b/src/frontend/src/icons/supabase/index.tsx index f9e699ace..644f22b3f 100644 --- a/src/frontend/src/icons/supabase/index.tsx +++ b/src/frontend/src/icons/supabase/index.tsx @@ -1,9 +1,9 @@ import React, { forwardRef } from "react"; -import { ReactComponent as SupabaseSvg } from "./supabase-icon.svg"; +import SvgSupabaseIcon from "./SupabaseIcon"; export const SupabaseIcon = forwardRef< SVGSVGElement, React.PropsWithChildren<{}> >((props, ref) => { - return ; + return ; }); diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index e80bc6c35..45c101f3f 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -50,7 +50,7 @@ export default function FormModal({ const handleKeys = formKeysData.handle_keys; const keyToUse = Object.keys(inputKeys).find( - (k) => !handleKeys.some((j) => j === k) + (k) => !handleKeys.some((j) => j === k) && inputKeys[k] === "" ); return inputKeys[keyToUse]; @@ -73,7 +73,9 @@ export default function FormModal({ const tabsStateFlowIdFormKeysData = tabsStateFlowId.formKeysData; const [chatKey, setChatKey] = useState( Object.keys(tabsState[flow.id].formKeysData.input_keys).find( - (k) => !tabsState[flow.id].formKeysData.handle_keys.some((j) => j === k) + (k) => + !tabsState[flow.id].formKeysData.handle_keys.some((j) => j === k) && + tabsState[flow.id].formKeysData.input_keys[k] === "" ) ); @@ -381,6 +383,9 @@ export default function FormModal({ if (checked === true) { setChatKey(i); setChatValue(tabsState[flow.id].formKeysData.input_keys[i]); + } else { + setChatKey(null); + setChatValue(""); } } return ( diff --git a/src/frontend/src/pages/FlowPage/index.tsx b/src/frontend/src/pages/FlowPage/index.tsx index f9b170197..fb80f657c 100644 --- a/src/frontend/src/pages/FlowPage/index.tsx +++ b/src/frontend/src/pages/FlowPage/index.tsx @@ -3,6 +3,7 @@ import { useParams } from "react-router-dom"; import { TabsContext } from "../../contexts/tabsContext"; import { getVersion } from "../../controllers/API"; import Page from "./components/PageComponent"; +import IconComponent from "../../components/genericIconComponent"; export default function FlowPage() { const { flows, tabId, setTabId } = useContext(TabsContext); diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 4ce9e526f..3b0416a6d 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -161,3 +161,12 @@ export type TextHighlightType = { export interface IVarHighlightType { name: string; } + +export type SvgIconProps = { + name: string; +} + +export type IconComponentProps = { + method: string; + name: string; +} diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 5ae191c67..5c441bce2 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -50,6 +50,36 @@ import { SupabaseIcon } from "./icons/supabase"; import { APITemplateType } from "./types/api"; import { IVarHighlightType } from "./types/components"; import { FlowType, NodeType } from "./types/flow"; +import SvgAirbyte from "./icons/Airbyte/Airbyte"; +import SvgAnthropicBox from "./icons/Anthropic/AnthropicBox"; +import SvgBing from "./icons/Bing/Bing"; +import SvgChroma from "./icons/ChromaIcon/Chroma"; +import SvgCohere from "./icons/Cohere/Cohere"; +import SvgEvernoteIcon from "./icons/Evernote/EvernoteIcon"; +import SvgFacebookMessengerLogo2020 from "./icons/FacebookMessenger/FacebookMessengerLogo2020"; +import SvgGitbookSvgrepoCom from "./icons/GitBook/GitbookSvgrepoCom"; +import SvgGoogle from "./icons/Google/Google"; +import SvgYCombinatorLogo from "./icons/hackerNews/YCombinatorLogo"; +import SvgHfLogo from "./icons/HuggingFace/HfLogo"; +import SvgIfixitSeeklogocom from "./icons/IFixIt/IfixitSeeklogoCom"; +import SvgMetaIcon from "./icons/Meta/MetaIcon"; +import SvgMidjourneyEmblem from "./icons/Midjorney/MidjourneyEmblem"; +import SvgMongodbIcon from "./icons/MongoDB/MongodbIcon"; +import SvgNotionLogo from "./icons/Notion/NotionLogo"; +import SvgOpenAi from "./icons/OpenAi/OpenAi"; +import SvgPineconeLogo from "./icons/Pinecone/PineconeLogo"; +import SvgPowerPoint from "./icons/PowerPoint/PowerPoint"; +import SvgQDrant from "./icons/QDrant/QDrant"; +import SvgReadthedocsioIcon from "./icons/ReadTheDocs/ReadthedocsioIcon"; +import SvgSearxLogo from "./icons/Searx/SearxLogo"; +import SvgSerper from "./icons/Serper/Serper"; +import SvgSlackIcon from "./icons/Slack/SlackIcon"; +import SvgSupabaseIcon from "./icons/supabase/SupabaseIcon"; +import SvgVertexAi from "./icons/VertexAI/VertexAi"; +import SvgWeaviate from "./icons/Weaviate/Weaviate"; +import SvgWikipedia from "./icons/Wikipedia/Wikipedia"; +import SvgWolfram from "./icons/Wolfram/Wolfram"; +import SvgWord from "./icons/Word/Word"; export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); @@ -62,6 +92,39 @@ export enum TypeModal { PROMPT = 2, } +export const svgIcons = { + Airbyte: SvgAirbyte, + Anthropic: SvgAnthropicBox, + Bing: SvgBing, + ChromaIcon: SvgChroma, + Cohere: SvgCohere, + Evernote: SvgEvernoteIcon, + FacebookMessenger: SvgFacebookMessengerLogo2020, + GitBook: SvgGitbookSvgrepoCom, + Google: SvgGoogle, + HackerNews: SvgYCombinatorLogo, + HuggingFace: SvgHfLogo, + IFixIt: SvgIfixitSeeklogocom, + Meta: SvgMetaIcon, + MidJorney: SvgMidjourneyEmblem, + MongoDB: SvgMongodbIcon, + Notion: SvgNotionLogo, + OpenAi: SvgOpenAi, + Pinecone: SvgPineconeLogo, + PowerPoint: SvgPowerPoint, + QDrant: SvgQDrant, + ReadTheDocs: SvgReadthedocsioIcon, + Searx: SvgSearxLogo, + Serper: SvgSerper, + Slack: SvgSlackIcon, + Supabase: SvgSupabaseIcon, + VertexAI: SvgVertexAi, + Weaviate: SvgWeaviate, + Wikipedia: SvgWikipedia, + Wolfram: SvgWolfram, + Word: SvgWord, +}; + export const textColors = { white: "text-white", red: "text-red-700", From 4c9dc55205848c24d2b8e8330e6272e146e81e89 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:32:47 -0300 Subject: [PATCH 13/66] removeApiKeys migration done --- src/frontend/src/modals/exportModal/index.tsx | 2 +- src/frontend/src/utils.ts | 18 +----------------- src/frontend/src/utils/reactflowUtils.ts | 13 +++++++++++++ 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/frontend/src/modals/exportModal/index.tsx b/src/frontend/src/modals/exportModal/index.tsx index fb6867811..3a1d27b6f 100644 --- a/src/frontend/src/modals/exportModal/index.tsx +++ b/src/frontend/src/modals/exportModal/index.tsx @@ -16,7 +16,7 @@ import { EXPORT_DIALOG_SUBTITLE } from "../../constants"; import { alertContext } from "../../contexts/alertContext"; import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; -import { removeApiKeys } from "../../utils"; +import { removeApiKeys } from "../../utils/reactflowUtils"; export default function ExportModal() { const [open, setOpen] = useState(true); diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 95890a3c8..8e9b6cb64 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -5,7 +5,7 @@ import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; import { APITemplateType } from "./types/api"; import { IVarHighlightType } from "./types/components"; -import { FlowType, NodeType } from "./types/flow"; +import { NodeType } from "./types/flow"; export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); @@ -70,22 +70,6 @@ export function normalCaseToSnakeCase(str: string) { .join("_"); } -export function roundNumber(x: number, decimals: number) { - return Math.round(x * Math.pow(10, decimals)) / Math.pow(10, decimals); -} - -export function removeApiKeys(flow: FlowType): FlowType { - let cleanFLow = _.cloneDeep(flow); - cleanFLow.data.nodes.forEach((node) => { - for (const key in node.data.node.template) { - if (node.data.node.template[key].password) { - node.data.node.template[key].value = ""; - } - } - }); - return cleanFLow; -} - export function updateObject>( reference: T, objectToUpdate: T diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index c5fe272e7..7bd9cc4a2 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -1,5 +1,6 @@ import _ from "lodash"; import { Connection, ReactFlowInstance } from "reactflow"; +import { FlowType } from "../types/flow"; import { cleanEdgesType } from "../types/utils/reactflowUtils"; export function cleanEdges({ @@ -87,3 +88,15 @@ export function isValidConnection( } return false; } + +export function removeApiKeys(flow: FlowType): FlowType { + let cleanFLow = _.cloneDeep(flow); + cleanFLow.data.nodes.forEach((node) => { + for (const key in node.data.node.template) { + if (node.data.node.template[key].password) { + node.data.node.template[key].value = ""; + } + } + }); + return cleanFLow; +} From db8f5a74d375b5d8fa175aef59f94a349dde3328 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:40:38 -0300 Subject: [PATCH 14/66] updateTemplate migration done --- src/frontend/src/utils.ts | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 8e9b6cb64..2b488d54e 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -3,7 +3,6 @@ import _ from "lodash"; import { ReactFlowInstance } from "reactflow"; import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; -import { APITemplateType } from "./types/api"; import { IVarHighlightType } from "./types/components"; import { NodeType } from "./types/flow"; @@ -101,29 +100,6 @@ export function debounce(func, wait) { }; } -export function updateTemplate( - reference: APITemplateType, - objectToUpdate: APITemplateType -): APITemplateType { - let clonedObject: APITemplateType = _.cloneDeep(reference); - - // Loop through each key in the reference object - for (const key in clonedObject) { - // If the key is not in the object to update, add it - if (objectToUpdate[key] && objectToUpdate[key].value) { - clonedObject[key].value = objectToUpdate[key].value; - } - if ( - objectToUpdate[key] && - objectToUpdate[key].advanced !== null && - objectToUpdate[key].advanced !== undefined - ) { - clonedObject[key].advanced = objectToUpdate[key].advanced; - } - } - return clonedObject; -} - interface languageMap { [key: string]: string | undefined; } From 9a41ca9ce2eeaf6ed636bc79593d17e1227a1a32 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:43:57 -0300 Subject: [PATCH 15/66] updateTemplate migration done --- src/frontend/src/contexts/tabsContext.tsx | 8 ++------ src/frontend/src/utils/reactflowUtils.ts | 24 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 479131db2..c5c4264de 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -20,12 +20,8 @@ import { import { APIClassType, APITemplateType } from "../types/api"; import { FlowType, NodeType } from "../types/flow"; import { TabsContextType, TabsState } from "../types/tabs"; -import { - getRandomDescription, - getRandomName, - updateIds, - updateTemplate, -} from "../utils"; +import { getRandomDescription, getRandomName, updateIds } from "../utils"; +import { updateTemplate } from "../utils/reactflowUtils"; import { alertContext } from "./alertContext"; import { typesContext } from "./typesContext"; diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index 7bd9cc4a2..c8623cf69 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -1,5 +1,6 @@ import _ from "lodash"; import { Connection, ReactFlowInstance } from "reactflow"; +import { APITemplateType } from "../types/api"; import { FlowType } from "../types/flow"; import { cleanEdgesType } from "../types/utils/reactflowUtils"; @@ -100,3 +101,26 @@ export function removeApiKeys(flow: FlowType): FlowType { }); return cleanFLow; } + +export function updateTemplate( + reference: APITemplateType, + objectToUpdate: APITemplateType +): APITemplateType { + let clonedObject: APITemplateType = _.cloneDeep(reference); + + // Loop through each key in the reference object + for (const key in clonedObject) { + // If the key is not in the object to update, add it + if (objectToUpdate[key] && objectToUpdate[key].value) { + clonedObject[key].value = objectToUpdate[key].value; + } + if ( + objectToUpdate[key] && + objectToUpdate[key].advanced !== null && + objectToUpdate[key].advanced !== undefined + ) { + clonedObject[key].advanced = objectToUpdate[key].advanced; + } + } + return clonedObject; +} From e72010ca40081a367c0dceecbd169359027bba0a Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Thu, 13 Jul 2023 18:49:18 -0300 Subject: [PATCH 16/66] Remove unnecessary imports --- src/frontend/src/components/genericIconComponent/index.tsx | 3 --- src/frontend/src/pages/FlowPage/index.tsx | 1 - 2 files changed, 4 deletions(-) diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index 5a00d2460..c875224fe 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -1,6 +1,3 @@ -import { FC } from "react"; -import SvgGoogle from "../../icons/Google/Google"; -import SvgBing from "../../icons/Bing/Bing"; import { IconComponentProps, SvgIconProps } from "../../types/components"; import { svgIcons } from "../../utils"; diff --git a/src/frontend/src/pages/FlowPage/index.tsx b/src/frontend/src/pages/FlowPage/index.tsx index fb80f657c..f9b170197 100644 --- a/src/frontend/src/pages/FlowPage/index.tsx +++ b/src/frontend/src/pages/FlowPage/index.tsx @@ -3,7 +3,6 @@ import { useParams } from "react-router-dom"; import { TabsContext } from "../../contexts/tabsContext"; import { getVersion } from "../../controllers/API"; import Page from "./components/PageComponent"; -import IconComponent from "../../components/genericIconComponent"; export default function FlowPage() { const { flows, tabId, setTabId } = useContext(TabsContext); From 75c14c67a599784871e2410d38f3429917a554d7 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 18:56:16 -0300 Subject: [PATCH 17/66] remove dead code --- src/frontend/src/utils.ts | 53 --------------------------------------- 1 file changed, 53 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 2b488d54e..863d907da 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,5 +1,4 @@ import clsx, { ClassValue } from "clsx"; -import _ from "lodash"; import { ReactFlowInstance } from "reactflow"; import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; @@ -14,27 +13,6 @@ export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } -export function toCamelCase(str: string) { - return str - .split(" ") - .map((word, index) => - index === 0 - ? word.toLowerCase() - : word[0].toUpperCase() + word.slice(1).toLowerCase() - ) - .join(""); -} -export function toFirstUpperCase(str: string) { - return str - .split(" ") - .map((word, index) => word[0].toUpperCase() + word.slice(1).toLowerCase()) - .join(""); -} - -export function snakeToSpaces(str: string) { - return str.split("_").join(" "); -} - export function toNormalCase(str: string) { let result = str .split("_") @@ -69,37 +47,6 @@ export function normalCaseToSnakeCase(str: string) { .join("_"); } -export function updateObject>( - reference: T, - objectToUpdate: T -): T { - let clonedObject = _.cloneDeep(objectToUpdate); - // Loop through each key in the object to update - for (const key in clonedObject) { - // If the key is not in the reference object, delete it - if (!(key in reference)) { - delete clonedObject[key]; - } - } - // Loop through each key in the reference object - for (const key in reference) { - // If the key is not in the object to update, add it - if (!(key in clonedObject)) { - clonedObject[key] = reference[key]; - } - } - return clonedObject; -} - -export function debounce(func, wait) { - let timeout; - return function (...args) { - const context = this; - clearTimeout(timeout); - timeout = setTimeout(() => func.apply(context, args), wait); - }; -} - interface languageMap { [key: string]: string | undefined; } From cd1d3c226a79432b25bc21cdbf8bdc09c486e8f4 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 19:11:34 -0300 Subject: [PATCH 18/66] moved programmingLanguages to constant file --- src/frontend/src/constants.ts | 35 +++++++++++++++++++ .../formModal/chatMessage/codeBlock/index.tsx | 2 +- src/frontend/src/utils.ts | 31 ---------------- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/frontend/src/constants.ts b/src/frontend/src/constants.ts index d7c8f01ae..7e1e3885e 100644 --- a/src/frontend/src/constants.ts +++ b/src/frontend/src/constants.ts @@ -5,6 +5,41 @@ import { FlowType } from "./types/flow"; import { TabsState } from "./types/tabs"; import { buildInputs, buildTweaks } from "./utils"; +/** + * constants fpr programming languages box on chat form + * @constant + */ +interface languageMap { + [key: string]: string | undefined; +} + +export const programmingLanguages: languageMap = { + javascript: ".js", + python: ".py", + java: ".java", + c: ".c", + cpp: ".cpp", + "c++": ".cpp", + "c#": ".cs", + ruby: ".rb", + php: ".php", + swift: ".swift", + "objective-c": ".m", + kotlin: ".kt", + typescript: ".ts", + go: ".go", + perl: ".pl", + rust: ".rs", + scala: ".scala", + haskell: ".hs", + lua: ".lua", + shell: ".sh", + sql: ".sql", + html: ".html", + css: ".css", + // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component +}; + /** * enum for the different types of nodes * @enum diff --git a/src/frontend/src/modals/formModal/chatMessage/codeBlock/index.tsx b/src/frontend/src/modals/formModal/chatMessage/codeBlock/index.tsx index 884215ebb..44011821d 100644 --- a/src/frontend/src/modals/formModal/chatMessage/codeBlock/index.tsx +++ b/src/frontend/src/modals/formModal/chatMessage/codeBlock/index.tsx @@ -2,7 +2,7 @@ import { IconCheck, IconClipboard, IconDownload } from "@tabler/icons-react"; import { useState } from "react"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; import { oneDark } from "react-syntax-highlighter/dist/cjs/styles/prism"; -import { programmingLanguages } from "../../../../utils"; +import { programmingLanguages } from "../../../../constants"; interface Props { language: string; diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 863d907da..0972d9972 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -47,37 +47,6 @@ export function normalCaseToSnakeCase(str: string) { .join("_"); } -interface languageMap { - [key: string]: string | undefined; -} - -export const programmingLanguages: languageMap = { - javascript: ".js", - python: ".py", - java: ".java", - c: ".c", - cpp: ".cpp", - "c++": ".cpp", - "c#": ".cs", - ruby: ".rb", - php: ".php", - swift: ".swift", - "objective-c": ".m", - kotlin: ".kt", - typescript: ".ts", - go: ".go", - perl: ".pl", - rust: ".rs", - scala: ".scala", - haskell: ".hs", - lua: ".lua", - shell: ".sh", - sql: ".sql", - html: ".html", - css: ".css", - // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component -}; - export function toTitleCase(str: string) { let result = str .split("_") From ffda93ee3437f6e71213b4c59f99a73b836a232e Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 19:22:18 -0300 Subject: [PATCH 19/66] updateIds migration done --- src/frontend/src/contexts/tabsContext.tsx | 4 +-- src/frontend/src/utils.ts | 35 --------------------- src/frontend/src/utils/reactflowUtils.ts | 37 ++++++++++++++++++++++- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index c5c4264de..bbd77007d 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -20,8 +20,8 @@ import { import { APIClassType, APITemplateType } from "../types/api"; import { FlowType, NodeType } from "../types/flow"; import { TabsContextType, TabsState } from "../types/tabs"; -import { getRandomDescription, getRandomName, updateIds } from "../utils"; -import { updateTemplate } from "../utils/reactflowUtils"; +import { getRandomDescription, getRandomName } from "../utils"; +import { updateIds, updateTemplate } from "../utils/reactflowUtils"; import { alertContext } from "./alertContext"; import { typesContext } from "./typesContext"; diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 0972d9972..c5f57bc5a 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -84,41 +84,6 @@ export function checkUpperWords(str: string) { return words.join(" "); } -export function updateIds(newFlow, getNodeId) { - let idsMap = {}; - - newFlow.nodes.forEach((n: NodeType) => { - // Generate a unique node ID - let newId = getNodeId(n.data.type); - idsMap[n.id] = newId; - n.id = newId; - n.data.id = newId; - // Add the new node to the list of nodes in state - }); - - newFlow.edges.forEach((e) => { - e.source = idsMap[e.source]; - e.target = idsMap[e.target]; - let sourceHandleSplitted = e.sourceHandle.split("|"); - e.sourceHandle = - sourceHandleSplitted[0] + - "|" + - e.source + - "|" + - sourceHandleSplitted.slice(2).join("|"); - let targetHandleSplitted = e.targetHandle.split("|"); - e.targetHandle = - targetHandleSplitted.slice(0, -1).join("|") + "|" + e.target; - e.id = - "reactflow__edge-" + - e.source + - e.sourceHandle + - "-" + - e.target + - e.targetHandle; - }); -} - export function groupByFamily(data, baseClasses, left, type) { let parentOutput: string; let arrOfParent: string[] = []; diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index c8623cf69..3183bd1af 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -1,7 +1,7 @@ import _ from "lodash"; import { Connection, ReactFlowInstance } from "reactflow"; import { APITemplateType } from "../types/api"; -import { FlowType } from "../types/flow"; +import { FlowType, NodeType } from "../types/flow"; import { cleanEdgesType } from "../types/utils/reactflowUtils"; export function cleanEdges({ @@ -124,3 +124,38 @@ export function updateTemplate( } return clonedObject; } + +export function updateIds(newFlow, getNodeId) { + let idsMap = {}; + + newFlow.nodes.forEach((n: NodeType) => { + // Generate a unique node ID + let newId = getNodeId(n.data.type); + idsMap[n.id] = newId; + n.id = newId; + n.data.id = newId; + // Add the new node to the list of nodes in state + }); + + newFlow.edges.forEach((e) => { + e.source = idsMap[e.source]; + e.target = idsMap[e.target]; + let sourceHandleSplitted = e.sourceHandle.split("|"); + e.sourceHandle = + sourceHandleSplitted[0] + + "|" + + e.source + + "|" + + sourceHandleSplitted.slice(2).join("|"); + let targetHandleSplitted = e.targetHandle.split("|"); + e.targetHandle = + targetHandleSplitted.slice(0, -1).join("|") + "|" + e.target; + e.id = + "reactflow__edge-" + + e.source + + e.sourceHandle + + "-" + + e.target + + e.targetHandle; + }); +} From 28c0b35fd7e5b8bbae95e65c5079f836a1b407c4 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 19:31:00 -0300 Subject: [PATCH 20/66] buildTweaks migration done --- src/frontend/src/constants.ts | 3 ++- src/frontend/src/modals/ApiModal/index.tsx | 4 ++-- src/frontend/src/utils.ts | 6 ------ src/frontend/src/utils/reactflowUtils.ts | 7 +++++++ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/frontend/src/constants.ts b/src/frontend/src/constants.ts index 7e1e3885e..b3cbeedcc 100644 --- a/src/frontend/src/constants.ts +++ b/src/frontend/src/constants.ts @@ -3,7 +3,8 @@ import { MessageSquare } from "lucide-react"; import { FlowType } from "./types/flow"; import { TabsState } from "./types/tabs"; -import { buildInputs, buildTweaks } from "./utils"; +import { buildInputs } from "./utils"; +import { buildTweaks } from "./utils/reactflowUtils"; /** * constants fpr programming languages box on chat form diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index f3f84a9ac..f6902f663 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -51,8 +51,8 @@ import { import { darkContext } from "../../contexts/darkContext"; import { TabsContext } from "../../contexts/tabsContext"; import { FlowType } from "../../types/flow/index"; -import { buildTweaks, classNames } from "../../utils"; - +import { classNames } from "../../utils"; +import { buildTweaks } from "../../utils/reactflowUtils"; export default function ApiModal({ flow }: { flow: FlowType }) { const [open, setOpen] = useState(true); const { dark } = useContext(darkContext); diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index c5f57bc5a..6aed03239 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -209,12 +209,6 @@ export function buildInputs(tabsState, id) { : '{"input": "message"}'; } -export function buildTweaks(flow) { - return flow.data.nodes.reduce((acc, node) => { - acc[node.data.id] = {}; - return acc; - }, {}); -} export function validateNode( n: NodeType, reactFlowInstance: ReactFlowInstance diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index 3183bd1af..515199574 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -159,3 +159,10 @@ export function updateIds(newFlow, getNodeId) { e.targetHandle; }); } + +export function buildTweaks(flow) { + return flow.data.nodes.reduce((acc, node) => { + acc[node.data.id] = {}; + return acc; + }, {}); +} From 33cfb8600a38ca65a3a26b60549a7bf249c48b35 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 19:34:32 -0300 Subject: [PATCH 21/66] validateNodes migration done --- .../chatComponent/buildTrigger/index.tsx | 2 +- src/frontend/src/modals/formModal/index.tsx | 3 +- src/frontend/src/utils.ts | 54 ------------------- src/frontend/src/utils/reactflowUtils.ts | 53 ++++++++++++++++++ 4 files changed, 56 insertions(+), 56 deletions(-) diff --git a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx index 09ab90ff7..f551d6d06 100644 --- a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx +++ b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx @@ -7,9 +7,9 @@ import { alertContext } from "../../../contexts/alertContext"; import { typesContext } from "../../../contexts/typesContext"; import { postBuildInit } from "../../../controllers/API"; import { FlowType } from "../../../types/flow"; -import { validateNodes } from "../../../utils"; import { TabsContext } from "../../../contexts/tabsContext"; +import { validateNodes } from "../../../utils/reactflowUtils"; import RadialProgressComponent from "../../RadialProgress"; export default function BuildTrigger({ diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index 12f7683b3..6bcd1a331 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -5,7 +5,7 @@ import { typesContext } from "../../contexts/typesContext"; import { sendAllProps } from "../../types/api"; import { ChatMessageType } from "../../types/chat"; import { FlowType } from "../../types/flow"; -import { classNames, validateNodes } from "../../utils"; +import { classNames } from "../../utils"; import ChatInput from "./chatInput"; import ChatMessage from "./chatMessage"; @@ -29,6 +29,7 @@ import { import { Textarea } from "../../components/ui/textarea"; import { CHAT_FORM_DIALOG_SUBTITLE, THOUGHTS_ICON } from "../../constants"; import { TabsContext } from "../../contexts/tabsContext"; +import { validateNodes } from "../../utils/reactflowUtils"; export default function FormModal({ flow, diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 6aed03239..beec2239e 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,9 +1,7 @@ import clsx, { ClassValue } from "clsx"; -import { ReactFlowInstance } from "reactflow"; import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; import { IVarHighlightType } from "./types/components"; -import { NodeType } from "./types/flow"; export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); @@ -209,58 +207,6 @@ export function buildInputs(tabsState, id) { : '{"input": "message"}'; } -export function validateNode( - n: NodeType, - reactFlowInstance: ReactFlowInstance -): Array { - if (!n.data?.node?.template || !Object.keys(n.data.node.template)) { - return [ - "We've noticed a potential issue with a node in the flow. Please review it and, if necessary, submit a bug report with your exported flow file. Thank you for your help!", - ]; - } - - const { - type, - node: { template }, - } = n.data; - - return Object.keys(template).reduce( - (errors: Array, t) => - errors.concat( - template[t].required && - template[t].show && - (template[t].value === undefined || - template[t].value === null || - template[t].value === "") && - !reactFlowInstance - .getEdges() - .some( - (e) => - e.targetHandle.split("|")[1] === t && - e.targetHandle.split("|")[2] === n.id - ) - ? [ - `${type} is missing ${ - template.display_name || toNormalCase(template[t].name) - }.`, - ] - : [] - ), - [] as string[] - ); -} - -export function validateNodes(reactFlowInstance: ReactFlowInstance) { - if (reactFlowInstance.getNodes().length === 0) { - return [ - "No nodes found in the flow. Please add at least one node to the flow.", - ]; - } - return reactFlowInstance - .getNodes() - .flatMap((n: NodeType) => validateNode(n, reactFlowInstance)); -} - export function getRandomElement(array: T[]): T { return array[Math.floor(Math.random() * array.length)]; } diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index 515199574..b14a24c70 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -3,6 +3,7 @@ import { Connection, ReactFlowInstance } from "reactflow"; import { APITemplateType } from "../types/api"; import { FlowType, NodeType } from "../types/flow"; import { cleanEdgesType } from "../types/utils/reactflowUtils"; +import { toNormalCase } from "../utils"; export function cleanEdges({ flow: { edges, nodes }, @@ -166,3 +167,55 @@ export function buildTweaks(flow) { return acc; }, {}); } + +export function validateNode( + n: NodeType, + reactFlowInstance: ReactFlowInstance +): Array { + if (!n.data?.node?.template || !Object.keys(n.data.node.template)) { + return [ + "We've noticed a potential issue with a node in the flow. Please review it and, if necessary, submit a bug report with your exported flow file. Thank you for your help!", + ]; + } + + const { + type, + node: { template }, + } = n.data; + + return Object.keys(template).reduce( + (errors: Array, t) => + errors.concat( + template[t].required && + template[t].show && + (template[t].value === undefined || + template[t].value === null || + template[t].value === "") && + !reactFlowInstance + .getEdges() + .some( + (e) => + e.targetHandle.split("|")[1] === t && + e.targetHandle.split("|")[2] === n.id + ) + ? [ + `${type} is missing ${ + template.display_name || toNormalCase(template[t].name) + }.`, + ] + : [] + ), + [] as string[] + ); +} + +export function validateNodes(reactFlowInstance: ReactFlowInstance) { + if (reactFlowInstance.getNodes().length === 0) { + return [ + "No nodes found in the flow. Please add at least one node to the flow.", + ]; + } + return reactFlowInstance + .getNodes() + .flatMap((n: NodeType) => validateNode(n, reactFlowInstance)); +} From 62dde544c17422be58c002e2335558afc7328dc1 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 19:45:04 -0300 Subject: [PATCH 22/66] moved some constants to constant file --- src/frontend/src/constants.ts | 33 +++++++++++++++++++ .../src/modals/genericModal/index.tsx | 11 +++---- src/frontend/src/utils.ts | 25 -------------- 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/src/frontend/src/constants.ts b/src/frontend/src/constants.ts index b3cbeedcc..c642f09f7 100644 --- a/src/frontend/src/constants.ts +++ b/src/frontend/src/constants.ts @@ -1,6 +1,7 @@ // src/constants.tsx import { MessageSquare } from "lucide-react"; +import { IVarHighlightType } from "./types/components"; import { FlowType } from "./types/flow"; import { TabsState } from "./types/tabs"; import { buildInputs } from "./utils"; @@ -13,6 +14,38 @@ import { buildTweaks } from "./utils/reactflowUtils"; interface languageMap { [key: string]: string | undefined; } +/** + * invalid characters for flow name + * @constant + */ +export const INVALID_CHARACTERS = [ + " ", + ",", + ".", + ":", + ";", + "!", + "?", + "/", + "\\", + "(", + ")", + "[", + "]", + "\n", +]; + +/** + * regex to highlight the variables in the text + * @constant + */ + +export const regexHighlight = /\{([^}]+)\}/g; + +export const varHighlightHTML = ({ name }: IVarHighlightType) => { + const html = `{${name}}`; + return html; +}; export const programmingLanguages: languageMap = { javascript: ".js", diff --git a/src/frontend/src/modals/genericModal/index.tsx b/src/frontend/src/modals/genericModal/index.tsx index 9de3b1b73..a53ce1218 100644 --- a/src/frontend/src/modals/genericModal/index.tsx +++ b/src/frontend/src/modals/genericModal/index.tsx @@ -7,23 +7,20 @@ import { Button } from "../../components/ui/button"; import { DialogTitle } from "../../components/ui/dialog"; import { Textarea } from "../../components/ui/textarea"; import { + INVALID_CHARACTERS, MAX_WORDS_HIGHLIGHT, PROMPT_DIALOG_SUBTITLE, TEXT_DIALOG_SUBTITLE, TypeModal, + regexHighlight, + varHighlightHTML, } from "../../constants"; import { alertContext } from "../../contexts/alertContext"; import { darkContext } from "../../contexts/darkContext"; import { PopUpContext } from "../../contexts/popUpContext"; import { postValidatePrompt } from "../../controllers/API"; import { APIClassType } from "../../types/api"; -import { - INVALID_CHARACTERS, - classNames, - getRandomKeyByssmm, - regexHighlight, - varHighlightHTML, -} from "../../utils"; +import { classNames, getRandomKeyByssmm } from "../../utils"; import BaseModal from "../baseModal"; export default function GenericModal({ diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index beec2239e..af83e83ff 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,7 +1,6 @@ import clsx, { ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; -import { IVarHighlightType } from "./types/components"; export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); @@ -252,27 +251,3 @@ export function getRandomKeyByssmm(): string { const milliseconds = String(now.getMilliseconds()).padStart(3, "0"); return seconds + milliseconds + Math.abs(Math.floor(Math.random() * 10001)); } - -export const INVALID_CHARACTERS = [ - " ", - ",", - ".", - ":", - ";", - "!", - "?", - "/", - "\\", - "(", - ")", - "[", - "]", - "\n", -]; - -export const regexHighlight = /\{([^}]+)\}/g; - -export const varHighlightHTML = ({ name }: IVarHighlightType) => { - const html = `{${name}}`; - return html; -}; From c3bdc2c0a49832d43d0b8364cfdea44da347f767 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Thu, 13 Jul 2023 19:48:41 -0300 Subject: [PATCH 23/66] moved utils file to utils folder --- .../components/parameterComponent/index.tsx | 10 +++++----- src/frontend/src/CustomNodes/GenericNode/index.tsx | 2 +- .../src/components/ExtraSidebarComponent/index.tsx | 2 +- .../src/components/ReactTooltipComponent/index.tsx | 2 +- .../src/components/dropdownComponent/index.tsx | 2 +- src/frontend/src/components/inputComponent/index.tsx | 2 +- src/frontend/src/components/toggleComponent/index.tsx | 2 +- src/frontend/src/components/ui/accordion.tsx | 2 +- src/frontend/src/components/ui/badge.tsx | 2 +- src/frontend/src/components/ui/button.tsx | 2 +- src/frontend/src/components/ui/card.tsx | 2 +- src/frontend/src/components/ui/checkbox.tsx | 2 +- src/frontend/src/components/ui/dialog.tsx | 2 +- src/frontend/src/components/ui/dropdown-menu.tsx | 2 +- src/frontend/src/components/ui/input.tsx | 2 +- src/frontend/src/components/ui/label.tsx | 2 +- src/frontend/src/components/ui/menubar.tsx | 2 +- src/frontend/src/components/ui/progress.tsx | 2 +- src/frontend/src/components/ui/rename-label.tsx | 2 +- src/frontend/src/components/ui/separator.tsx | 2 +- src/frontend/src/components/ui/switch.tsx | 2 +- src/frontend/src/components/ui/table.tsx | 2 +- src/frontend/src/components/ui/tabs.tsx | 2 +- src/frontend/src/components/ui/textarea.tsx | 2 +- src/frontend/src/components/ui/tooltip.tsx | 2 +- src/frontend/src/constants.ts | 2 +- src/frontend/src/contexts/tabsContext.tsx | 2 +- src/frontend/src/modals/ApiModal/index.tsx | 2 +- src/frontend/src/modals/EditNodeModal/index.tsx | 2 +- .../modals/NodeModal/components/ModalField/index.tsx | 2 +- src/frontend/src/modals/NodeModal/index.tsx | 2 +- src/frontend/src/modals/formModal/chatInput/index.tsx | 2 +- .../src/modals/formModal/chatMessage/index.tsx | 2 +- src/frontend/src/modals/formModal/index.tsx | 2 +- src/frontend/src/modals/genericModal/index.tsx | 2 +- .../src/modals/importModal/buttonBox/index.tsx | 2 +- src/frontend/src/modals/importModal/index.tsx | 2 +- .../components/extraSidebarComponent/index.tsx | 2 +- .../FlowPage/components/nodeToolbarComponent/index.tsx | 2 +- src/frontend/src/utils/reactflowUtils.ts | 2 +- src/frontend/src/{ => utils}/utils.ts | 2 +- 41 files changed, 45 insertions(+), 45 deletions(-) rename src/frontend/src/{ => utils}/utils.ts (98%) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index f50a559c7..0e8705f60 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -17,11 +17,6 @@ import { PopUpContext } from "../../../../contexts/popUpContext"; import { TabsContext } from "../../../../contexts/tabsContext"; import { typesContext } from "../../../../contexts/typesContext"; import { ParameterComponentType } from "../../../../types/components"; -import { - classNames, - getRandomKeyByssmm, - groupByFamily, -} from "../../../../utils"; import { cleanEdges, isValidConnection, @@ -31,6 +26,11 @@ import { nodeIconsLucide, nodeNames, } from "../../../../utils/styleUtils"; +import { + classNames, + getRandomKeyByssmm, + groupByFamily, +} from "../../../../utils/utils"; export default function ParameterComponent({ left, diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index f53c0bb97..34d02a9fa 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -10,8 +10,8 @@ import { typesContext } from "../../contexts/typesContext"; import NodeModal from "../../modals/NodeModal"; import NodeToolbarComponent from "../../pages/FlowPage/components/nodeToolbarComponent"; import { NodeDataType } from "../../types/flow"; -import { classNames, toTitleCase } from "../../utils"; import { nodeColors, nodeIconsLucide } from "../../utils/styleUtils"; +import { classNames, toTitleCase } from "../../utils/utils"; import ParameterComponent from "./components/parameterComponent"; export default function GenericNode({ diff --git a/src/frontend/src/components/ExtraSidebarComponent/index.tsx b/src/frontend/src/components/ExtraSidebarComponent/index.tsx index e307e5234..06f62b3af 100644 --- a/src/frontend/src/components/ExtraSidebarComponent/index.tsx +++ b/src/frontend/src/components/ExtraSidebarComponent/index.tsx @@ -2,7 +2,7 @@ import { Disclosure } from "@headlessui/react"; import { useContext } from "react"; import { Link } from "react-router-dom"; import { locationContext } from "../../contexts/locationContext"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; export default function ExtraSidebar() { const { diff --git a/src/frontend/src/components/ReactTooltipComponent/index.tsx b/src/frontend/src/components/ReactTooltipComponent/index.tsx index f49e252a6..0f0c64b89 100644 --- a/src/frontend/src/components/ReactTooltipComponent/index.tsx +++ b/src/frontend/src/components/ReactTooltipComponent/index.tsx @@ -3,7 +3,7 @@ import type { FC } from "react"; import React from "react"; import { Tooltip as ReactTooltip } from "react-tooltip"; import "react-tooltip/dist/react-tooltip.css"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; type TooltipProps = { selector: string; diff --git a/src/frontend/src/components/dropdownComponent/index.tsx b/src/frontend/src/components/dropdownComponent/index.tsx index 53489a2ee..657de23d1 100644 --- a/src/frontend/src/components/dropdownComponent/index.tsx +++ b/src/frontend/src/components/dropdownComponent/index.tsx @@ -3,7 +3,7 @@ import { Check, ChevronsUpDown } from "lucide-react"; import { Fragment, useContext, useEffect, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; import { DropDownComponentType } from "../../types/components"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; export default function Dropdown({ value, diff --git a/src/frontend/src/components/inputComponent/index.tsx b/src/frontend/src/components/inputComponent/index.tsx index 8da5c428e..8d564bdcd 100644 --- a/src/frontend/src/components/inputComponent/index.tsx +++ b/src/frontend/src/components/inputComponent/index.tsx @@ -2,7 +2,7 @@ import { useContext, useEffect, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; import { InputComponentType } from "../../types/components"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; export default function InputComponent({ value, diff --git a/src/frontend/src/components/toggleComponent/index.tsx b/src/frontend/src/components/toggleComponent/index.tsx index 81a2b2d8b..107e65b20 100644 --- a/src/frontend/src/components/toggleComponent/index.tsx +++ b/src/frontend/src/components/toggleComponent/index.tsx @@ -1,7 +1,7 @@ import { Switch } from "@headlessui/react"; import { useEffect } from "react"; import { ToggleComponentType } from "../../types/components"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; export default function ToggleComponent({ enabled, diff --git a/src/frontend/src/components/ui/accordion.tsx b/src/frontend/src/components/ui/accordion.tsx index 4b5a12384..ced816cfc 100644 --- a/src/frontend/src/components/ui/accordion.tsx +++ b/src/frontend/src/components/ui/accordion.tsx @@ -3,7 +3,7 @@ import * as AccordionPrimitive from "@radix-ui/react-accordion"; import { ChevronDownIcon } from "@radix-ui/react-icons"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Accordion = AccordionPrimitive.Root; diff --git a/src/frontend/src/components/ui/badge.tsx b/src/frontend/src/components/ui/badge.tsx index 5464f382e..c101e3114 100644 --- a/src/frontend/src/components/ui/badge.tsx +++ b/src/frontend/src/components/ui/badge.tsx @@ -1,6 +1,6 @@ import { cva, type VariantProps } from "class-variance-authority"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const badgeVariants = cva( "inline-flex items-center border rounded-full px-2.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", diff --git a/src/frontend/src/components/ui/button.tsx b/src/frontend/src/components/ui/button.tsx index 170494927..becc8d5f1 100644 --- a/src/frontend/src/components/ui/button.tsx +++ b/src/frontend/src/components/ui/button.tsx @@ -1,7 +1,7 @@ import { Slot } from "@radix-ui/react-slot"; import { cva, type VariantProps } from "class-variance-authority"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const buttonVariants = cva( "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background", diff --git a/src/frontend/src/components/ui/card.tsx b/src/frontend/src/components/ui/card.tsx index 0c5863871..585a81a76 100644 --- a/src/frontend/src/components/ui/card.tsx +++ b/src/frontend/src/components/ui/card.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Card = React.forwardRef< HTMLDivElement, diff --git a/src/frontend/src/components/ui/checkbox.tsx b/src/frontend/src/components/ui/checkbox.tsx index 18332b073..d2d42c1fc 100644 --- a/src/frontend/src/components/ui/checkbox.tsx +++ b/src/frontend/src/components/ui/checkbox.tsx @@ -3,7 +3,7 @@ import * as CheckboxPrimitive from "@radix-ui/react-checkbox"; import { Check } from "lucide-react"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Checkbox = React.forwardRef< React.ElementRef, diff --git a/src/frontend/src/components/ui/dialog.tsx b/src/frontend/src/components/ui/dialog.tsx index 2ad709f48..068d3a3bd 100644 --- a/src/frontend/src/components/ui/dialog.tsx +++ b/src/frontend/src/components/ui/dialog.tsx @@ -1,7 +1,7 @@ import * as DialogPrimitive from "@radix-ui/react-dialog"; import { X } from "lucide-react"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Dialog = DialogPrimitive.Root; diff --git a/src/frontend/src/components/ui/dropdown-menu.tsx b/src/frontend/src/components/ui/dropdown-menu.tsx index 0e5468e6e..4d96cba70 100644 --- a/src/frontend/src/components/ui/dropdown-menu.tsx +++ b/src/frontend/src/components/ui/dropdown-menu.tsx @@ -3,7 +3,7 @@ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; import { Check, ChevronRight, Circle } from "lucide-react"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const DropdownMenu = DropdownMenuPrimitive.Root; diff --git a/src/frontend/src/components/ui/input.tsx b/src/frontend/src/components/ui/input.tsx index f3a8757e8..a59b419f3 100644 --- a/src/frontend/src/components/ui/input.tsx +++ b/src/frontend/src/components/ui/input.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; export interface InputProps extends React.InputHTMLAttributes {} diff --git a/src/frontend/src/components/ui/label.tsx b/src/frontend/src/components/ui/label.tsx index 57fbc9d8a..f8d45c11d 100644 --- a/src/frontend/src/components/ui/label.tsx +++ b/src/frontend/src/components/ui/label.tsx @@ -3,7 +3,7 @@ import * as LabelPrimitive from "@radix-ui/react-label"; import { cva, type VariantProps } from "class-variance-authority"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const labelVariants = cva( "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" diff --git a/src/frontend/src/components/ui/menubar.tsx b/src/frontend/src/components/ui/menubar.tsx index 0a3362ca6..7ae83d576 100644 --- a/src/frontend/src/components/ui/menubar.tsx +++ b/src/frontend/src/components/ui/menubar.tsx @@ -4,7 +4,7 @@ import * as MenubarPrimitive from "@radix-ui/react-menubar"; import { Check, ChevronRight, Circle } from "lucide-react"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const MenubarMenu = MenubarPrimitive.Menu; diff --git a/src/frontend/src/components/ui/progress.tsx b/src/frontend/src/components/ui/progress.tsx index a08efeb52..c2afa8a4c 100644 --- a/src/frontend/src/components/ui/progress.tsx +++ b/src/frontend/src/components/ui/progress.tsx @@ -2,7 +2,7 @@ import * as ProgressPrimitive from "@radix-ui/react-progress"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Progress = React.forwardRef< React.ElementRef, diff --git a/src/frontend/src/components/ui/rename-label.tsx b/src/frontend/src/components/ui/rename-label.tsx index e5fef11bf..81d3ce446 100644 --- a/src/frontend/src/components/ui/rename-label.tsx +++ b/src/frontend/src/components/ui/rename-label.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef, useState } from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; export default function RenameLabel(props) { const [internalState, setInternalState] = useState(false); diff --git a/src/frontend/src/components/ui/separator.tsx b/src/frontend/src/components/ui/separator.tsx index 1fa0287d8..1fec6d2ca 100644 --- a/src/frontend/src/components/ui/separator.tsx +++ b/src/frontend/src/components/ui/separator.tsx @@ -2,7 +2,7 @@ import * as SeparatorPrimitive from "@radix-ui/react-separator"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Separator = React.forwardRef< React.ElementRef, diff --git a/src/frontend/src/components/ui/switch.tsx b/src/frontend/src/components/ui/switch.tsx index 8ec7c3c80..0d4bc8224 100644 --- a/src/frontend/src/components/ui/switch.tsx +++ b/src/frontend/src/components/ui/switch.tsx @@ -2,7 +2,7 @@ import * as SwitchPrimitives from "@radix-ui/react-switch"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Switch = React.forwardRef< React.ElementRef, diff --git a/src/frontend/src/components/ui/table.tsx b/src/frontend/src/components/ui/table.tsx index 9b7bdd8ce..80a74f378 100644 --- a/src/frontend/src/components/ui/table.tsx +++ b/src/frontend/src/components/ui/table.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Table = React.forwardRef< HTMLTableElement, diff --git a/src/frontend/src/components/ui/tabs.tsx b/src/frontend/src/components/ui/tabs.tsx index 8c382e35e..1a5d42254 100644 --- a/src/frontend/src/components/ui/tabs.tsx +++ b/src/frontend/src/components/ui/tabs.tsx @@ -2,7 +2,7 @@ import * as TabsPrimitive from "@radix-ui/react-tabs"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const Tabs = TabsPrimitive.Root; diff --git a/src/frontend/src/components/ui/textarea.tsx b/src/frontend/src/components/ui/textarea.tsx index fc0cda2ff..64aec41a1 100644 --- a/src/frontend/src/components/ui/textarea.tsx +++ b/src/frontend/src/components/ui/textarea.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; export interface TextareaProps extends React.TextareaHTMLAttributes {} diff --git a/src/frontend/src/components/ui/tooltip.tsx b/src/frontend/src/components/ui/tooltip.tsx index 6bb983652..c54245a53 100644 --- a/src/frontend/src/components/ui/tooltip.tsx +++ b/src/frontend/src/components/ui/tooltip.tsx @@ -2,7 +2,7 @@ import * as TooltipPrimitive from "@radix-ui/react-tooltip"; import * as React from "react"; -import { cn } from "../../utils"; +import { cn } from "../../utils/utils"; const TooltipProvider = TooltipPrimitive.Provider; diff --git a/src/frontend/src/constants.ts b/src/frontend/src/constants.ts index c642f09f7..a814c6efb 100644 --- a/src/frontend/src/constants.ts +++ b/src/frontend/src/constants.ts @@ -4,8 +4,8 @@ import { MessageSquare } from "lucide-react"; import { IVarHighlightType } from "./types/components"; import { FlowType } from "./types/flow"; import { TabsState } from "./types/tabs"; -import { buildInputs } from "./utils"; import { buildTweaks } from "./utils/reactflowUtils"; +import { buildInputs } from "./utils/utils"; /** * constants fpr programming languages box on chat form diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index bbd77007d..dc87ab3aa 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -20,8 +20,8 @@ import { import { APIClassType, APITemplateType } from "../types/api"; import { FlowType, NodeType } from "../types/flow"; import { TabsContextType, TabsState } from "../types/tabs"; -import { getRandomDescription, getRandomName } from "../utils"; import { updateIds, updateTemplate } from "../utils/reactflowUtils"; +import { getRandomDescription, getRandomName } from "../utils/utils"; import { alertContext } from "./alertContext"; import { typesContext } from "./typesContext"; diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index f6902f663..e5338ca16 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -51,8 +51,8 @@ import { import { darkContext } from "../../contexts/darkContext"; import { TabsContext } from "../../contexts/tabsContext"; import { FlowType } from "../../types/flow/index"; -import { classNames } from "../../utils"; import { buildTweaks } from "../../utils/reactflowUtils"; +import { classNames } from "../../utils/utils"; export default function ApiModal({ flow }: { flow: FlowType }) { const [open, setOpen] = useState(true); const { dark } = useContext(darkContext); diff --git a/src/frontend/src/modals/EditNodeModal/index.tsx b/src/frontend/src/modals/EditNodeModal/index.tsx index 18afc0df3..6606f3483 100644 --- a/src/frontend/src/modals/EditNodeModal/index.tsx +++ b/src/frontend/src/modals/EditNodeModal/index.tsx @@ -34,7 +34,7 @@ import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; import { typesContext } from "../../contexts/typesContext"; import { NodeDataType } from "../../types/flow"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; export default function EditNodeModal({ data }: { data: NodeDataType }) { const [open, setOpen] = useState(true); diff --git a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx index ad82d0c0d..15c0984ea 100644 --- a/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx +++ b/src/frontend/src/modals/NodeModal/components/ModalField/index.tsx @@ -9,7 +9,7 @@ import IntComponent from "../../../../components/intComponent"; import PromptAreaComponent from "../../../../components/promptComponent"; import TextAreaComponent from "../../../../components/textAreaComponent"; import ToggleComponent from "../../../../components/toggleComponent"; -import { classNames } from "../../../../utils"; +import { classNames } from "../../../../utils/utils"; export default function ModalField({ data, diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index 2446f1148..a686cf338 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -5,8 +5,8 @@ import { limitScrollFieldsModal } from "../../constants"; import { PopUpContext } from "../../contexts/popUpContext"; import { typesContext } from "../../contexts/typesContext"; import { NodeDataType } from "../../types/flow"; -import { classNames, toTitleCase } from "../../utils"; import { nodeColors, nodeIconsLucide } from "../../utils/styleUtils"; +import { classNames, toTitleCase } from "../../utils/utils"; import ModalField from "./components/ModalField"; export default function NodeModal({ data }: { data: NodeDataType }) { diff --git a/src/frontend/src/modals/formModal/chatInput/index.tsx b/src/frontend/src/modals/formModal/chatInput/index.tsx index ec62c0505..0340c1cfd 100644 --- a/src/frontend/src/modals/formModal/chatInput/index.tsx +++ b/src/frontend/src/modals/formModal/chatInput/index.tsx @@ -1,6 +1,6 @@ import { Lock, LucideSend, Sparkles } from "lucide-react"; import { useEffect } from "react"; -import { classNames } from "../../../utils"; +import { classNames } from "../../../utils/utils"; export default function ChatInput({ lockChat, diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx index 953aed530..a460fec93 100644 --- a/src/frontend/src/modals/formModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx @@ -10,7 +10,7 @@ import Robot from "../../../assets/robot.png"; import SanitizedHTMLWrapper from "../../../components/SanitizedHTMLWrapper"; import { THOUGHTS_ICON } from "../../../constants"; import { ChatMessageType } from "../../../types/chat"; -import { classNames } from "../../../utils"; +import { classNames } from "../../../utils/utils"; import FileCard from "../fileComponent"; import { CodeBlock } from "./codeBlock"; export default function ChatMessage({ diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index 6bcd1a331..4dc78e376 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -5,7 +5,7 @@ import { typesContext } from "../../contexts/typesContext"; import { sendAllProps } from "../../types/api"; import { ChatMessageType } from "../../types/chat"; import { FlowType } from "../../types/flow"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; import ChatInput from "./chatInput"; import ChatMessage from "./chatMessage"; diff --git a/src/frontend/src/modals/genericModal/index.tsx b/src/frontend/src/modals/genericModal/index.tsx index a53ce1218..e73d5d3a0 100644 --- a/src/frontend/src/modals/genericModal/index.tsx +++ b/src/frontend/src/modals/genericModal/index.tsx @@ -20,7 +20,7 @@ import { darkContext } from "../../contexts/darkContext"; import { PopUpContext } from "../../contexts/popUpContext"; import { postValidatePrompt } from "../../controllers/API"; import { APIClassType } from "../../types/api"; -import { classNames, getRandomKeyByssmm } from "../../utils"; +import { classNames, getRandomKeyByssmm } from "../../utils/utils"; import BaseModal from "../baseModal"; export default function GenericModal({ diff --git a/src/frontend/src/modals/importModal/buttonBox/index.tsx b/src/frontend/src/modals/importModal/buttonBox/index.tsx index a1116a8d4..0a998d56e 100644 --- a/src/frontend/src/modals/importModal/buttonBox/index.tsx +++ b/src/frontend/src/modals/importModal/buttonBox/index.tsx @@ -1,5 +1,5 @@ import { ReactNode } from "react"; -import { classNames } from "../../../utils"; +import { classNames } from "../../../utils/utils"; export default function ButtonBox({ onClick, diff --git a/src/frontend/src/modals/importModal/index.tsx b/src/frontend/src/modals/importModal/index.tsx index 4302fd9d8..ded17f5d9 100644 --- a/src/frontend/src/modals/importModal/index.tsx +++ b/src/frontend/src/modals/importModal/index.tsx @@ -21,7 +21,7 @@ import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; import { getExamples } from "../../controllers/API"; import { FlowType } from "../../types/flow"; -import { classNames } from "../../utils"; +import { classNames } from "../../utils/utils"; import ButtonBox from "./buttonBox"; export default function ImportModal() { diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index 883777f29..0fcf7d0fa 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -9,12 +9,12 @@ import { typesContext } from "../../../../contexts/typesContext"; import ApiModal from "../../../../modals/ApiModal"; import ExportModal from "../../../../modals/exportModal"; import { APIClassType, APIObjectType } from "../../../../types/api"; -import { classNames } from "../../../../utils"; import { nodeColors, nodeIconsLucide, nodeNames, } from "../../../../utils/styleUtils"; +import { classNames } from "../../../../utils/utils"; import DisclosureComponent from "../DisclosureComponent"; export default function ExtraSidebar() { diff --git a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx index 0183dcb16..5fc250928 100644 --- a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx @@ -4,7 +4,7 @@ import { useReactFlow } from "reactflow"; import ShadTooltip from "../../../../components/ShadTooltipComponent"; import { TabsContext } from "../../../../contexts/tabsContext"; import EditNodeModal from "../../../../modals/EditNodeModal"; -import { classNames } from "../../../../utils"; +import { classNames } from "../../../../utils/utils"; const NodeToolbarComponent = (props) => { const [nodeLength, setNodeLength] = useState( diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index b14a24c70..c4bec22c9 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -3,7 +3,7 @@ import { Connection, ReactFlowInstance } from "reactflow"; import { APITemplateType } from "../types/api"; import { FlowType, NodeType } from "../types/flow"; import { cleanEdgesType } from "../types/utils/reactflowUtils"; -import { toNormalCase } from "../utils"; +import { toNormalCase } from "./utils"; export function cleanEdges({ flow: { edges, nodes }, diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils/utils.ts similarity index 98% rename from src/frontend/src/utils.ts rename to src/frontend/src/utils/utils.ts index af83e83ff..37e35b643 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils/utils.ts @@ -1,6 +1,6 @@ import clsx, { ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; -import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; +import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "../flow_constants"; export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); From c6e7e9cad4d9141450187b3e90ae2e8032252849 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Thu, 13 Jul 2023 19:58:55 -0300 Subject: [PATCH 24/66] feat[genericIconComponent]: Add a lucide method to the icon component --- .../components/genericIconComponent/index.tsx | 19 +- src/frontend/src/types/components/index.ts | 2 +- src/frontend/src/utils.ts | 208 +++++------------- 3 files changed, 68 insertions(+), 161 deletions(-) diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index c875224fe..5c462add8 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -1,8 +1,15 @@ -import { IconComponentProps, SvgIconProps } from "../../types/components"; -import { svgIcons } from "../../utils"; +import { IconComponentProps, IconProps } from "../../types/components"; +import { nodeIconsLucide, svgIcons } from "../../utils"; -export function IconFromSvg({ name }: SvgIconProps): JSX.Element { - const TargetSvg = svgIcons[name] +export function IconFromLucide({ name }: IconProps): JSX.Element { + const TargetIcon = nodeIconsLucide[name]; + return ( + + ); +} + +export function IconFromSvg({ name }: IconProps): JSX.Element { + const TargetSvg = svgIcons[name]; return ( ); @@ -12,5 +19,9 @@ export default function IconComponent({ method, name }: IconComponentProps): JSX switch (method) { case 'SVG': return + case 'LUCIDE': + return + default: + return } } diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 3b0416a6d..9acf69714 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -162,7 +162,7 @@ export interface IVarHighlightType { name: string; } -export type SvgIconProps = { +export type IconProps = { name: string; } diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 5c441bce2..b7e3895ed 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -96,7 +96,7 @@ export const svgIcons = { Airbyte: SvgAirbyte, Anthropic: SvgAnthropicBox, Bing: SvgBing, - ChromaIcon: SvgChroma, + Chroma: SvgChroma, Cohere: SvgCohere, Evernote: SvgEvernoteIcon, FacebookMessenger: SvgFacebookMessengerLogo2020, @@ -215,161 +215,57 @@ export const nodeNames: { [char: string]: string } = { unknown: "Unknown", }; -export const nodeIconsLucide: { - [char: string]: React.ForwardRefExoticComponent< - ComponentType> - >; -} = { - Chroma: ChromaIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - AirbyteJSONLoader: AirbyteIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Anthropic: AnthropicIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - ChatAnthropic: AnthropicIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - BingSearchAPIWrapper: BingIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - BingSearchRun: BingIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Cohere: CohereIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - CohereEmbeddings: CohereIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - EverNoteLoader: EvernoteIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - FacebookChatLoader: FBIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GitbookLoader: GitBookIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GoogleSearchAPIWrapper: GoogleIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GoogleSearchResults: GoogleIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - GoogleSearchRun: GoogleIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - HNLoader: HackerNewsIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - HuggingFaceHub: HuggingFaceIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - HuggingFaceEmbeddings: HuggingFaceIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - IFixitLoader: IFixIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Meta: MetaIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Midjorney: MidjourneyIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - MongoDBAtlasVectorSearch: MongoDBIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - NotionDirectoryLoader: NotionIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - ChatOpenAI: OpenAiIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - OpenAI: OpenAiIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - OpenAIEmbeddings: OpenAiIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Pinecone: PineconeIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Qdrant: QDrantIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - Searx: SearxIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - SlackDirectoryLoader: SlackIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - SupabaseVectorStore: SupabaseIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - VertexAI: VertexAIIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - ChatVertexAI: VertexAIIcon as React.ForwardRefExoticComponent< - ComponentType> - >, - agents: Rocket as React.ForwardRefExoticComponent< - ComponentType> - >, - chains: Link as React.ForwardRefExoticComponent< - ComponentType> - >, - memories: Cpu as React.ForwardRefExoticComponent< - ComponentType> - >, - llms: Lightbulb as React.ForwardRefExoticComponent< - ComponentType> - >, - prompts: TerminalSquare as React.ForwardRefExoticComponent< - ComponentType> - >, - tools: Wrench as React.ForwardRefExoticComponent< - ComponentType> - >, - advanced: Laptop2 as React.ForwardRefExoticComponent< - ComponentType> - >, - chat: MessageCircle as React.ForwardRefExoticComponent< - ComponentType> - >, - embeddings: Fingerprint as React.ForwardRefExoticComponent< - ComponentType> - >, - documentloaders: Paperclip as React.ForwardRefExoticComponent< - ComponentType> - >, - vectorstores: Layers as React.ForwardRefExoticComponent< - ComponentType> - >, - toolkits: Hammer as React.ForwardRefExoticComponent< - ComponentType> - >, - textsplitters: Scissors as React.ForwardRefExoticComponent< - ComponentType> - >, - wrappers: Gift as React.ForwardRefExoticComponent< - ComponentType> - >, - utilities: Wand2 as React.ForwardRefExoticComponent< - ComponentType> - >, - output_parsers: Compass as React.ForwardRefExoticComponent< - ComponentType> - >, - retrievers: FileSearch as React.ForwardRefExoticComponent< - ComponentType> - >, - unknown: HelpCircle as React.ForwardRefExoticComponent< - ComponentType> - >, +export const nodeIconsLucide = { + Chroma: ChromaIcon, + AirbyteJSONLoader: AirbyteIcon, + Anthropic: AnthropicIcon, + ChatAnthropic: AnthropicIcon, + BingSearchAPIWrapper: BingIcon, + BingSearchRun: BingIcon, + Cohere: CohereIcon, + CohereEmbeddings: CohereIcon, + EverNoteLoader: EvernoteIcon, + FacebookChatLoader: FBIcon, + GitbookLoader: GitBookIcon, + GoogleSearchAPIWrapper: GoogleIcon, + GoogleSearchResults: GoogleIcon, + GoogleSearchRun: GoogleIcon, + HNLoader: HackerNewsIcon, + HuggingFaceHub: HuggingFaceIcon, + HuggingFaceEmbeddings: HuggingFaceIcon, + IFixitLoader: IFixIcon, + Meta: MetaIcon, + Midjorney: MidjourneyIcon, + MongoDBAtlasVectorSearch: MongoDBIcon, + NotionDirectoryLoader: NotionIcon, + ChatOpenAI: OpenAiIcon, + OpenAI: OpenAiIcon, + OpenAIEmbeddings: OpenAiIcon, + Pinecone: PineconeIcon, + Qdrant: QDrantIcon, + Searx: SearxIcon, + SlackDirectoryLoader: SlackIcon, + SupabaseVectorStore: SupabaseIcon, + VertexAI: VertexAIIcon, + ChatVertexAI: VertexAIIcon, + agents: Rocket, + chains: Link, + memories: Cpu, + llms: Lightbulb, + prompts: TerminalSquare, + tools: Wrench, + advanced: Laptop2, + chat: MessageCircle, + embeddings: Fingerprint, + documentloaders: Paperclip, + vectorstores: Layers, + toolkits: Hammer, + textsplitters: Scissors, + wrappers: Gift, + utilities: Wand2, + output_parsers: Compass, + retrievers: FileSearch, + unknown: HelpCircle, }; export const gradients = [ From 7d2f8536302a36cc3bd80bafe7c580b286bbb0f3 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Fri, 14 Jul 2023 15:18:36 -0300 Subject: [PATCH 25/66] added enum type for Icon method --- src/frontend/src/types/components/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 9acf69714..85a8c4d67 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -164,9 +164,9 @@ export interface IVarHighlightType { export type IconProps = { name: string; -} +}; export type IconComponentProps = { - method: string; + method: "SVG" | "LUCIDE"; name: string; -} +}; From 2f1b675122991e91f0d23723df36729a1a97719f Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Fri, 14 Jul 2023 15:19:52 -0300 Subject: [PATCH 26/66] format code --- .../components/genericIconComponent/index.tsx | 23 ++++---- src/frontend/src/icons/Airbyte/Airbyte.jsx | 1 - .../src/icons/Anthropic/Anthropic.jsx | 1 - .../src/icons/Anthropic/AnthropicBox.jsx | 1 - src/frontend/src/icons/AzLogo/AzLogo.jsx | 1 - src/frontend/src/icons/Bing/Bing.jsx | 1 - src/frontend/src/icons/ChromaIcon/Chroma.jsx | 1 - src/frontend/src/icons/Cohere/Cohere.jsx | 1 - .../src/icons/Evernote/EvernoteIcon.jsx | 1 - .../FacebookMessengerLogo2020.jsx | 1 - .../src/icons/GitBook/GitbookSvgrepoCom.jsx | 1 - src/frontend/src/icons/Google/Google.jsx | 1 - src/frontend/src/icons/HuggingFace/HfLogo.jsx | 1 - .../src/icons/IFixIt/IfixitSeeklogoCom.jsx | 1 - src/frontend/src/icons/Meta/MetaIcon.jsx | 1 - .../src/icons/Midjorney/MidjourneyEmblem.jsx | 1 - .../src/icons/MongoDB/MongodbIcon.jsx | 1 - src/frontend/src/icons/Notion/NotionLogo.jsx | 1 - src/frontend/src/icons/OpenAi/OpenAi.jsx | 1 - .../src/icons/Pinecone/PineconeLogo.jsx | 1 - .../src/icons/PowerPoint/PowerPoint.jsx | 1 - src/frontend/src/icons/QDrant/QDrant.jsx | 1 - .../icons/ReadTheDocs/ReadthedocsioIcon.jsx | 1 - src/frontend/src/icons/Searx/SearxLogo.jsx | 1 - src/frontend/src/icons/Serper/Serper.jsx | 1 - src/frontend/src/icons/Slack/SlackIcon.jsx | 1 - src/frontend/src/icons/VertexAI/VertexAi.jsx | 1 - src/frontend/src/icons/Weaviate/Weaviate.jsx | 1 - .../src/icons/Wikipedia/Wikipedia.jsx | 1 - src/frontend/src/icons/Wolfram/Wolfram.jsx | 1 - src/frontend/src/icons/Word/Word.jsx | 1 - .../src/icons/hackerNews/YCombinatorLogo.jsx | 1 - .../src/icons/supabase/SupabaseIcon.jsx | 1 - src/frontend/src/utils.ts | 55 +++++++++---------- 34 files changed, 38 insertions(+), 72 deletions(-) diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index 5c462add8..a5dc7f632 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -3,25 +3,24 @@ import { nodeIconsLucide, svgIcons } from "../../utils"; export function IconFromLucide({ name }: IconProps): JSX.Element { const TargetIcon = nodeIconsLucide[name]; - return ( - - ); + return ; } export function IconFromSvg({ name }: IconProps): JSX.Element { const TargetSvg = svgIcons[name]; - return ( - - ); + return ; } -export default function IconComponent({ method, name }: IconComponentProps): JSX.Element { +export default function IconComponent({ + method, + name, +}: IconComponentProps): JSX.Element { switch (method) { - case 'SVG': - return - case 'LUCIDE': - return + case "SVG": + return ; + case "LUCIDE": + return ; default: - return + return; } } diff --git a/src/frontend/src/icons/Airbyte/Airbyte.jsx b/src/frontend/src/icons/Airbyte/Airbyte.jsx index 7e0a19e89..a4d660434 100644 --- a/src/frontend/src/icons/Airbyte/Airbyte.jsx +++ b/src/frontend/src/icons/Airbyte/Airbyte.jsx @@ -1,4 +1,3 @@ -import * as React from "react"; const SvgAirbyte = (props) => ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( diff --git a/src/frontend/src/icons/Wolfram/Wolfram.jsx b/src/frontend/src/icons/Wolfram/Wolfram.jsx index 281cedbba..c1f6a2796 100644 --- a/src/frontend/src/icons/Wolfram/Wolfram.jsx +++ b/src/frontend/src/icons/Wolfram/Wolfram.jsx @@ -1,4 +1,3 @@ -import * as React from "react"; const SvgWolfram = (props) => ( ( ( ( ) { return classes.filter(Boolean).join(" "); From 18820facbb71b910bd183a7da3ecff499f6cd9ba Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Fri, 14 Jul 2023 15:27:53 -0300 Subject: [PATCH 27/66] added fallback icon in IconComponent --- src/frontend/src/components/genericIconComponent/index.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index a5dc7f632..cca138100 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -2,12 +2,12 @@ import { IconComponentProps, IconProps } from "../../types/components"; import { nodeIconsLucide, svgIcons } from "../../utils"; export function IconFromLucide({ name }: IconProps): JSX.Element { - const TargetIcon = nodeIconsLucide[name]; + const TargetIcon = nodeIconsLucide[name] ?? nodeIconsLucide["unknown"]; return ; } export function IconFromSvg({ name }: IconProps): JSX.Element { - const TargetSvg = svgIcons[name]; + const TargetSvg = svgIcons[name] ?? nodeIconsLucide["unknown"]; return ; } @@ -21,6 +21,7 @@ export default function IconComponent({ case "LUCIDE": return ; default: - return; + console.error("IconComponent: invalid method"); + return ; } } From c33205078844506e81b11ae0e0019815b62dde01 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Fri, 14 Jul 2023 17:05:27 -0300 Subject: [PATCH 28/66] feat[utils.ts]:Add hard-coded icons into lucide utils icon object --- .../components/genericIconComponent/index.tsx | 1 + src/frontend/src/types/components/index.ts | 1 + src/frontend/src/utils.ts | 91 +++++++++++++++++++ 3 files changed, 93 insertions(+) diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index cca138100..b93784e45 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -14,6 +14,7 @@ export function IconFromSvg({ name }: IconProps): JSX.Element { export default function IconComponent({ method, name, + className, }: IconComponentProps): JSX.Element { switch (method) { case "SVG": diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 85a8c4d67..4b446b54f 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -169,4 +169,5 @@ export type IconProps = { export type IconComponentProps = { method: "SVG" | "LUCIDE"; name: string; + className?: string; }; diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index be2307823..2e95e6ceb 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,24 +1,68 @@ import clsx, { ClassValue } from "clsx"; import _ from "lodash"; import { + Bell, + Check, + CheckCircle2, + ChevronDown, + ChevronLeft, + ChevronRight, + ChevronsUpDown, + Circle, + Clipboard, + Code2, Compass, + Copy, Cpu, + Download, + DownloadCloud, + Eraser, + ExternalLink, + File, + FileDown, FileSearch, + FileSearch2, + FileText, + FileUp, Fingerprint, Gift, + GitFork, + GithubIcon, Hammer, HelpCircle, + Home, + Info, Laptop2, Layers, Lightbulb, Link, + Lock, + LucideSend, + Menu, MessageCircle, + MessageSquare, + MoonIcon, Paperclip, + Plus, + Redo, Rocket, + Save, Scissors, + Search, + Settings2, + Sparkles, + SunIcon, TerminalSquare, + Trash2, + Undo, + Upload, + Users2, + Variable, Wand2, Wrench, + X, + XCircle, + Zap, } from "lucide-react"; import { Connection, Edge, Node, ReactFlowInstance } from "reactflow"; import { twMerge } from "tailwind-merge"; @@ -265,7 +309,54 @@ export const nodeIconsLucide = { output_parsers: Compass, retrievers: FileSearch, unknown: HelpCircle, + + + Trash2, + X, + XCircle, + Info, + CheckCircle2, + Zap, + MessageSquare, + ExternalLink, + ChevronsUpDown, + Check, + Home, + Users2, + SunIcon, + MoonIcon, + Bell, + ChevronLeft, + ChevronDown, + Plus, + Redo, + Settings2, + Undo, + FileSearch2, + ChevronRight, + Circle, + Clipboard, + Code2, + Variable, + Download, + Eraser, + Lock, + LucideSend, + Sparkles, + DownloadCloud, + File, + FileText, + GitFork, + GithubIcon, + FileDown, + FileUp, + Menu, + Save, + Search, + Copy, + Upload, }; +/* Trash2 */ export const gradients = [ "bg-gradient-to-br from-gray-800 via-rose-700 to-violet-900", From 8101bbc21e770130f13619d1ab6cd0c93e6cf23d Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Fri, 14 Jul 2023 20:55:24 -0300 Subject: [PATCH 29/66] feat: Change hard coded lucide icons to generic icon component --- .../components/parameterComponent/index.tsx | 3 +- .../src/CustomNodes/GenericNode/index.tsx | 9 ++-- .../components/singleAlertComponent/index.tsx | 40 ++++++++++++----- .../src/alerts/alertDropDown/index.tsx | 14 ++++-- src/frontend/src/alerts/error/index.tsx | 8 ++-- src/frontend/src/alerts/notice/index.tsx | 9 +++- src/frontend/src/alerts/success/index.tsx | 9 +++- .../src/components/cardComponent/index.tsx | 8 +++- .../chatComponent/buildTrigger/index.tsx | 9 ++-- .../chatComponent/chatTrigger/index.tsx | 10 ++--- .../components/codeAreaComponent/index.tsx | 9 ++-- .../components/dropdownComponent/index.tsx | 14 +++--- .../components/genericIconComponent/index.tsx | 22 +++++---- .../components/menuBar/index.tsx | 45 +++++++++++++------ .../src/components/headerComponent/index.tsx | 33 +++++++++++--- .../components/inputFileComponent/index.tsx | 9 ++-- .../components/inputListComponent/index.tsx | 14 ++++-- .../src/components/promptComponent/index.tsx | 9 ++-- .../components/textAreaComponent/index.tsx | 9 ++-- src/frontend/src/components/ui/checkbox.tsx | 8 +++- src/frontend/src/components/ui/dialog.tsx | 8 +++- .../src/components/ui/dropdown-menu.tsx | 20 +++++++-- src/frontend/src/components/ui/menubar.tsx | 20 +++++++-- src/frontend/src/modals/ApiModal/index.tsx | 9 ++-- .../src/modals/EditNodeModal/index.tsx | 8 +++- src/frontend/src/modals/NodeModal/index.tsx | 9 +++- .../src/modals/codeAreaModal/index.tsx | 9 ++-- src/frontend/src/modals/exportModal/index.tsx | 9 ++-- .../src/modals/flowSettingsModal/index.tsx | 8 +++- .../src/modals/formModal/chatInput/index.tsx | 23 ++++++++-- .../modals/formModal/chatMessage/index.tsx | 8 ++-- .../modals/formModal/fileComponent/index.tsx | 20 +++++++-- src/frontend/src/modals/formModal/index.tsx | 20 ++++++--- .../src/modals/genericModal/index.tsx | 15 ++++--- .../src/pages/CommunityPage/index.tsx | 20 +++++++-- .../components/DisclosureComponent/index.tsx | 8 ++-- .../extraSidebarComponent/index.tsx | 42 ++++++++++------- .../components/nodeToolbarComponent/index.tsx | 26 ++++++++--- src/frontend/src/pages/MainPage/index.tsx | 32 ++++++++++--- src/frontend/src/types/components/index.ts | 3 +- src/frontend/src/utils.ts | 4 +- 41 files changed, 436 insertions(+), 176 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index a3e3e6357..e3311beea 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -27,6 +27,7 @@ import { nodeIconsLucide, nodeNames, } from "../../../../utils"; +import IconComponent from "../../../../components/genericIconComponent"; export default function ParameterComponent({ left, @@ -164,7 +165,7 @@ export default function ParameterComponent({
{info !== "" && ( - + )}
diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index ee62461bd..c5949ed9d 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -1,4 +1,3 @@ -import { Zap } from "lucide-react"; import { useContext, useEffect, useRef, useState } from "react"; import { NodeToolbar } from "reactflow"; import ShadTooltip from "../../components/ShadTooltipComponent"; @@ -17,6 +16,7 @@ import { toTitleCase, } from "../../utils"; import ParameterComponent from "./components/parameterComponent"; +import IconComponent from "../../components/genericIconComponent"; export default function GenericNode({ data, @@ -119,9 +119,10 @@ export default function GenericNode({ ) : !validationStatus ? ( Build{" "} - {" "} flow to validate status. diff --git a/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx b/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx index 18475b039..1b5c6384b 100644 --- a/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx +++ b/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx @@ -1,8 +1,8 @@ import { Transition } from "@headlessui/react"; -import { CheckCircle2, Info, X, XCircle } from "lucide-react"; import { useState } from "react"; import { Link } from "react-router-dom"; import { SingleAlertComponentType } from "../../../../types/alerts"; +import IconComponent from "../../../../components/genericIconComponent"; export default function SingleAlert({ dropItem, @@ -29,7 +29,12 @@ export default function SingleAlert({ key={dropItem.id} >
-

@@ -62,8 +67,10 @@ export default function SingleAlert({ className="inline-flex rounded-md p-1.5 text-status-red" > Dismiss -

diff --git a/src/frontend/src/alerts/error/index.tsx b/src/frontend/src/alerts/error/index.tsx index 3824c3e87..ae89d6269 100644 --- a/src/frontend/src/alerts/error/index.tsx +++ b/src/frontend/src/alerts/error/index.tsx @@ -1,7 +1,7 @@ import { Transition } from "@headlessui/react"; -import { XCircle } from "lucide-react"; import { useEffect, useState } from "react"; import { ErrorAlertType } from "../../types/alerts"; +import IconComponent from "../../components/genericIconComponent"; export default function ErrorAlert({ title, @@ -44,8 +44,10 @@ export default function ErrorAlert({ >
-
diff --git a/src/frontend/src/alerts/notice/index.tsx b/src/frontend/src/alerts/notice/index.tsx index c77a4bcd6..62cb6c73c 100644 --- a/src/frontend/src/alerts/notice/index.tsx +++ b/src/frontend/src/alerts/notice/index.tsx @@ -1,8 +1,8 @@ import { Transition } from "@headlessui/react"; -import { Info } from "lucide-react"; import { useEffect, useState } from "react"; import { Link } from "react-router-dom"; import { NoticeAlertType } from "../../types/alerts"; +import IconComponent from "../../components/genericIconComponent"; export default function NoticeAlert({ title, @@ -40,7 +40,12 @@ export default function NoticeAlert({ >
-

{title}

diff --git a/src/frontend/src/alerts/success/index.tsx b/src/frontend/src/alerts/success/index.tsx index 60dba1e93..90b181a77 100644 --- a/src/frontend/src/alerts/success/index.tsx +++ b/src/frontend/src/alerts/success/index.tsx @@ -1,7 +1,7 @@ import { Transition } from "@headlessui/react"; -import { CheckCircle2 } from "lucide-react"; import { useEffect, useState } from "react"; import { SuccessAlertType } from "../../types/alerts"; +import IconComponent from "../../components/genericIconComponent"; export default function SuccessAlert({ title, @@ -38,7 +38,12 @@ export default function SuccessAlert({ >
-

{title}

diff --git a/src/frontend/src/components/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx index 285aa91b7..8cee9c031 100644 --- a/src/frontend/src/components/cardComponent/index.tsx +++ b/src/frontend/src/components/cardComponent/index.tsx @@ -1,4 +1,3 @@ -import { Trash2 } from "lucide-react"; import { useContext } from "react"; import { TabsContext } from "../../contexts/tabsContext"; import { FlowType } from "../../types/flow"; @@ -10,6 +9,7 @@ import { CardHeader, CardTitle, } from "../ui/card"; +import IconComponent from "../genericIconComponent"; export const CardComponent = ({ flow, @@ -37,7 +37,11 @@ export const CardComponent = ({ {flow.name} {onDelete && ( )} diff --git a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx index 09ab90ff7..25279f504 100644 --- a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx +++ b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx @@ -1,5 +1,4 @@ import { Transition } from "@headlessui/react"; -import { Zap } from "lucide-react"; import { useContext, useState } from "react"; import Loading from "../../../components/ui/loading"; import { useSSE } from "../../../contexts/SSEContext"; @@ -11,6 +10,7 @@ import { validateNodes } from "../../../utils"; import { TabsContext } from "../../../contexts/tabsContext"; import RadialProgressComponent from "../../RadialProgress"; +import IconComponent from "../../genericIconComponent"; export default function BuildTrigger({ open, @@ -190,9 +190,10 @@ export default function BuildTrigger({ className="build-trigger-loading-icon" /> ) : ( - )}
diff --git a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx index c0cd53550..cc05270fc 100644 --- a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx +++ b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx @@ -1,5 +1,4 @@ import { Transition } from "@headlessui/react"; -import { MessagesSquare } from "lucide-react"; import { useContext } from "react"; import { @@ -9,6 +8,7 @@ import { FLOW_NOT_BUILT_TITLE, } from "../../../constants"; import { alertContext } from "../../../contexts/alertContext"; +import IconComponent from "../../genericIconComponent"; export default function ChatTrigger({ open, setOpen, isBuilt, canOpen }) { const { setErrorData } = useContext(alertContext); @@ -50,15 +50,15 @@ export default function ChatTrigger({ open, setOpen, isBuilt, canOpen }) { } >
-
diff --git a/src/frontend/src/components/codeAreaComponent/index.tsx b/src/frontend/src/components/codeAreaComponent/index.tsx index 966d8f26d..7bb4373f0 100644 --- a/src/frontend/src/components/codeAreaComponent/index.tsx +++ b/src/frontend/src/components/codeAreaComponent/index.tsx @@ -3,7 +3,7 @@ import { PopUpContext } from "../../contexts/popUpContext"; import CodeAreaModal from "../../modals/codeAreaModal"; import { TextAreaComponentType } from "../../types/components"; -import { ExternalLink } from "lucide-react"; +import IconComponent from "../genericIconComponent"; export default function CodeAreaComponent({ value, @@ -70,9 +70,10 @@ export default function CodeAreaComponent({ }} > {!editNode && ( - - @@ -99,8 +101,10 @@ export default function Dropdown({ "dropdown-component-choosal" )} > - ; + return ; } -export function IconFromSvg({ name }: IconProps): JSX.Element { +export function IconFromSvg({ + name, + style +}: IconProps): JSX.Element { const TargetSvg = svgIcons[name] ?? nodeIconsLucide["unknown"]; - return ; + return ; } export default function IconComponent({ method, name, - className, + style, }: IconComponentProps): JSX.Element { switch (method) { case "SVG": - return ; + return ; case "LUCIDE": - return ; + return ; default: console.error("IconComponent: invalid method"); - return ; + return ; } } diff --git a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx index b362307e7..0a66b7970 100644 --- a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx +++ b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx @@ -1,11 +1,3 @@ -import { - ChevronDown, - ChevronLeft, - Plus, - Redo, - Settings2, - Undo, -} from "lucide-react"; import { useContext } from "react"; import { PopUpContext } from "../../../../contexts/popUpContext"; import { TabsContext } from "../../../../contexts/tabsContext"; @@ -22,6 +14,7 @@ import { alertContext } from "../../../../contexts/alertContext"; import { undoRedoContext } from "../../../../contexts/undoRedoContext"; import FlowSettingsModal from "../../../../modals/flowSettingsModal"; import { Button } from "../../../ui/button"; +import IconComponent from "../../../genericIconComponent"; export const MenuBar = ({ flows, tabId }) => { const { updateFlow, setTabId, addFlow } = useContext(TabsContext); @@ -46,7 +39,11 @@ export const MenuBar = ({ flows, tabId }) => { return (
- +
@@ -54,7 +51,11 @@ export const MenuBar = ({ flows, tabId }) => { @@ -66,7 +67,11 @@ export const MenuBar = ({ flows, tabId }) => { }} className="cursor-pointer" > - + New { }} className="cursor-pointer" > - + Settings { }} className="cursor-pointer" > - + Undo { }} className="cursor-pointer" > - + Redo {/* */} diff --git a/src/frontend/src/components/headerComponent/index.tsx b/src/frontend/src/components/headerComponent/index.tsx index 8f8618eff..c76e9ce16 100644 --- a/src/frontend/src/components/headerComponent/index.tsx +++ b/src/frontend/src/components/headerComponent/index.tsx @@ -1,4 +1,3 @@ -import { Bell, Home, MoonIcon, SunIcon, Users2 } from "lucide-react"; import { useContext, useEffect, useState } from "react"; import { FaDiscord, FaGithub, FaTwitter } from "react-icons/fa"; import { Link, useLocation, useParams } from "react-router-dom"; @@ -13,6 +12,7 @@ import { getRepoStars } from "../../controllers/API"; import { Button } from "../ui/button"; import { Separator } from "../ui/separator"; import MenuBar from "./components/menuBar"; +import IconComponent from "../genericIconComponent"; export default function Header() { const { flows, addFlow, tabId } = useContext(TabsContext); @@ -51,7 +51,11 @@ export default function Header() { variant={location.pathname === "/" ? "primary" : "secondary"} size="sm" > - +
{USER_PROJECTS_HEADER}
@@ -63,7 +67,11 @@ export default function Header() { } size="sm" > - +
Community Examples
@@ -105,9 +113,17 @@ export default function Header() { }} > {dark ? ( - + ) : ( - + )}
diff --git a/src/frontend/src/components/inputFileComponent/index.tsx b/src/frontend/src/components/inputFileComponent/index.tsx index 7316566ae..f92479ec5 100644 --- a/src/frontend/src/components/inputFileComponent/index.tsx +++ b/src/frontend/src/components/inputFileComponent/index.tsx @@ -1,9 +1,9 @@ -import { FileSearch2 } from "lucide-react"; import { useContext, useEffect, useState } from "react"; import { alertContext } from "../../contexts/alertContext"; import { TabsContext } from "../../contexts/tabsContext"; import { uploadFile } from "../../controllers/API"; import { FileComponentType } from "../../types/components"; +import IconComponent from "../genericIconComponent"; export default function InputFileComponent({ value, @@ -108,9 +108,10 @@ export default function InputFileComponent({ ) : ( )}
diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx index 22384c299..f3c3ab6fb 100644 --- a/src/frontend/src/components/promptComponent/index.tsx +++ b/src/frontend/src/components/promptComponent/index.tsx @@ -4,9 +4,9 @@ import GenericModal from "../../modals/genericModal"; import { TextAreaComponentType } from "../../types/components"; import { TypeModal } from "../../utils"; -import { ExternalLink } from "lucide-react"; import { typesContext } from "../../contexts/typesContext"; import { postValidatePrompt } from "../../controllers/API"; +import IconComponent from "../genericIconComponent"; export default function PromptAreaComponent({ field_name, @@ -106,9 +106,10 @@ export default function PromptAreaComponent({ }} > {!editNode && ( - {!editNode && ( - , @@ -20,7 +20,11 @@ const Checkbox = React.forwardRef< - + )); diff --git a/src/frontend/src/components/ui/dialog.tsx b/src/frontend/src/components/ui/dialog.tsx index 2ad709f48..7353502ca 100644 --- a/src/frontend/src/components/ui/dialog.tsx +++ b/src/frontend/src/components/ui/dialog.tsx @@ -1,7 +1,7 @@ import * as DialogPrimitive from "@radix-ui/react-dialog"; -import { X } from "lucide-react"; import * as React from "react"; import { cn } from "../../utils"; +import IconComponent from "../genericIconComponent"; const Dialog = DialogPrimitive.Root; @@ -51,7 +51,11 @@ const DialogContent = React.forwardRef< > {children} - + Close diff --git a/src/frontend/src/components/ui/dropdown-menu.tsx b/src/frontend/src/components/ui/dropdown-menu.tsx index 0e5468e6e..34c53ca9b 100644 --- a/src/frontend/src/components/ui/dropdown-menu.tsx +++ b/src/frontend/src/components/ui/dropdown-menu.tsx @@ -1,9 +1,9 @@ "use client"; import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; -import { Check, ChevronRight, Circle } from "lucide-react"; import * as React from "react"; import { cn } from "../../utils"; +import IconComponent from "../genericIconComponent"; const DropdownMenu = DropdownMenuPrimitive.Root; @@ -33,7 +33,11 @@ const DropdownMenuSubTrigger = React.forwardRef< {...props} > {children} - + )); DropdownMenuSubTrigger.displayName = @@ -106,7 +110,11 @@ const DropdownMenuCheckboxItem = React.forwardRef< > - + {children} @@ -129,7 +137,11 @@ const DropdownMenuRadioItem = React.forwardRef< > - + {children} diff --git a/src/frontend/src/components/ui/menubar.tsx b/src/frontend/src/components/ui/menubar.tsx index 0a3362ca6..36672d68d 100644 --- a/src/frontend/src/components/ui/menubar.tsx +++ b/src/frontend/src/components/ui/menubar.tsx @@ -1,10 +1,10 @@ "use client"; import * as MenubarPrimitive from "@radix-ui/react-menubar"; -import { Check, ChevronRight, Circle } from "lucide-react"; import * as React from "react"; import { cn } from "../../utils"; +import IconComponent from "../genericIconComponent"; const MenubarMenu = MenubarPrimitive.Menu; @@ -62,7 +62,11 @@ const MenubarSubTrigger = React.forwardRef< {...props} > {children} - + )); MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName; @@ -140,7 +144,11 @@ const MenubarCheckboxItem = React.forwardRef< > - + {children} @@ -162,7 +170,11 @@ const MenubarRadioItem = React.forwardRef< > - + {children} diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index f3f84a9ac..7eb7bebd3 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -5,7 +5,7 @@ import "ace-builds/src-noconflict/theme-twilight"; import { useContext, useEffect, useRef, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; // import "ace-builds/webpack-resolver"; -import { Check, Clipboard, Code2 } from "lucide-react"; +import { Check, Clipboard } from "lucide-react"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; import { oneDark } from "react-syntax-highlighter/dist/cjs/styles/prism"; import AccordionComponent from "../../components/AccordionComponent"; @@ -52,6 +52,7 @@ import { darkContext } from "../../contexts/darkContext"; import { TabsContext } from "../../contexts/tabsContext"; import { FlowType } from "../../types/flow/index"; import { buildTweaks, classNames } from "../../utils"; +import IconComponent from "../../components/genericIconComponent"; export default function ApiModal({ flow }: { flow: FlowType }) { const [open, setOpen] = useState(true); @@ -271,8 +272,10 @@ export default function ApiModal({ flow }: { flow: FlowType }) { Code - diff --git a/src/frontend/src/modals/EditNodeModal/index.tsx b/src/frontend/src/modals/EditNodeModal/index.tsx index 84d85014d..3e78e00c9 100644 --- a/src/frontend/src/modals/EditNodeModal/index.tsx +++ b/src/frontend/src/modals/EditNodeModal/index.tsx @@ -1,4 +1,3 @@ -import { Variable } from "lucide-react"; import { useContext, useRef, useState } from "react"; import CodeAreaComponent from "../../components/codeAreaComponent"; import Dropdown from "../../components/dropdownComponent"; @@ -34,6 +33,7 @@ import { TabsContext } from "../../contexts/tabsContext"; import { typesContext } from "../../contexts/typesContext"; import { NodeDataType } from "../../types/flow"; import { classNames, limitScrollFieldsModal } from "../../utils"; +import IconComponent from "../../components/genericIconComponent"; export default function EditNodeModal({ data }: { data: NodeDataType }) { const [open, setOpen] = useState(true); @@ -109,7 +109,11 @@ export default function EditNodeModal({ data }: { data: NodeDataType }) {
{data.node?.description}
- + Parameters
diff --git a/src/frontend/src/modals/NodeModal/index.tsx b/src/frontend/src/modals/NodeModal/index.tsx index c61af4ff4..25189cf23 100644 --- a/src/frontend/src/modals/NodeModal/index.tsx +++ b/src/frontend/src/modals/NodeModal/index.tsx @@ -1,5 +1,4 @@ import { Dialog, Transition } from "@headlessui/react"; -import { X } from "lucide-react"; import { Fragment, useContext, useRef, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; import { typesContext } from "../../contexts/typesContext"; @@ -12,6 +11,7 @@ import { toTitleCase, } from "../../utils"; import ModalField from "./components/ModalField"; +import IconComponent from "../../components/genericIconComponent"; export default function NodeModal({ data }: { data: NodeDataType }) { const [open, setOpen] = useState(true); @@ -69,7 +69,12 @@ export default function NodeModal({ data }: { data: NodeDataType }) { }} > Close -
diff --git a/src/frontend/src/modals/codeAreaModal/index.tsx b/src/frontend/src/modals/codeAreaModal/index.tsx index cc0495977..588caf460 100644 --- a/src/frontend/src/modals/codeAreaModal/index.tsx +++ b/src/frontend/src/modals/codeAreaModal/index.tsx @@ -4,7 +4,6 @@ import "ace-builds/src-noconflict/ext-language_tools"; import "ace-builds/src-noconflict/mode-python"; import "ace-builds/src-noconflict/theme-github"; import "ace-builds/src-noconflict/theme-twilight"; -import { TerminalSquare } from "lucide-react"; import { useContext, useState } from "react"; import AceEditor from "react-ace"; import { Button } from "../../components/ui/button"; @@ -15,6 +14,7 @@ import { PopUpContext } from "../../contexts/popUpContext"; import { postValidateCode } from "../../controllers/API"; import { APIClassType } from "../../types/api"; import BaseModal from "../baseModal"; +import IconComponent from "../../components/genericIconComponent"; export default function CodeAreaModal({ value, @@ -83,9 +83,10 @@ export default function CodeAreaModal({ Edit Code - diff --git a/src/frontend/src/modals/exportModal/index.tsx b/src/frontend/src/modals/exportModal/index.tsx index fb6867811..5be244ce0 100644 --- a/src/frontend/src/modals/exportModal/index.tsx +++ b/src/frontend/src/modals/exportModal/index.tsx @@ -1,4 +1,3 @@ -import { Download } from "lucide-react"; import { useContext, useRef, useState } from "react"; import EditFlowSettings from "../../components/EditFlowSettingsComponent"; import { Button } from "../../components/ui/button"; @@ -17,6 +16,7 @@ import { alertContext } from "../../contexts/alertContext"; import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; import { removeApiKeys } from "../../utils"; +import IconComponent from "../../components/genericIconComponent"; export default function ExportModal() { const [open, setOpen] = useState(true); @@ -46,9 +46,10 @@ export default function ExportModal() { Export - diff --git a/src/frontend/src/modals/flowSettingsModal/index.tsx b/src/frontend/src/modals/flowSettingsModal/index.tsx index 44f82e331..e27a82cf9 100644 --- a/src/frontend/src/modals/flowSettingsModal/index.tsx +++ b/src/frontend/src/modals/flowSettingsModal/index.tsx @@ -1,4 +1,3 @@ -import { Settings2 } from "lucide-react"; import { useContext, useRef, useState } from "react"; import EditFlowSettings from "../../components/EditFlowSettingsComponent"; import { Button } from "../../components/ui/button"; @@ -15,6 +14,7 @@ import { SETTINGS_DIALOG_SUBTITLE } from "../../constants"; import { alertContext } from "../../contexts/alertContext"; import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; +import IconComponent from "../../components/genericIconComponent"; export default function FlowSettingsModal() { const [open, setOpen] = useState(true); @@ -51,7 +51,11 @@ export default function FlowSettingsModal() { Settings - + {SETTINGS_DIALOG_SUBTITLE} diff --git a/src/frontend/src/modals/formModal/chatInput/index.tsx b/src/frontend/src/modals/formModal/chatInput/index.tsx index ec62c0505..3ceb2a1fd 100644 --- a/src/frontend/src/modals/formModal/chatInput/index.tsx +++ b/src/frontend/src/modals/formModal/chatInput/index.tsx @@ -1,6 +1,6 @@ -import { Lock, LucideSend, Sparkles } from "lucide-react"; import { useEffect } from "react"; import { classNames } from "../../../utils"; +import IconComponent from "../../../components/genericIconComponent"; export default function ChatInput({ lockChat, @@ -77,11 +77,26 @@ export default function ChatInput({ onClick={() => sendMessage()} > {lockChat ? ( -
diff --git a/src/frontend/src/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx index 8cbf0877c..279ee8d72 100644 --- a/src/frontend/src/modals/formModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/formModal/chatMessage/index.tsx @@ -1,5 +1,4 @@ import Convert from "ansi-to-html"; -import { ChevronDown } from "lucide-react"; import { useMemo, useState } from "react"; import ReactMarkdown from "react-markdown"; import rehypeMathjax from "rehype-mathjax"; @@ -13,6 +12,7 @@ import { ChatMessageType } from "../../../types/chat"; import { classNames } from "../../../utils"; import FileCard from "../fileComponent"; import { CodeBlock } from "./codeBlock"; +import IconComponent from "../../../components/genericIconComponent"; export default function ChatMessage({ chat, lockChat, @@ -160,10 +160,12 @@ export default function ChatMessage({ }} > Display Prompt - diff --git a/src/frontend/src/modals/formModal/fileComponent/index.tsx b/src/frontend/src/modals/formModal/fileComponent/index.tsx index 6ede4e136..610a56bca 100644 --- a/src/frontend/src/modals/formModal/fileComponent/index.tsx +++ b/src/frontend/src/modals/formModal/fileComponent/index.tsx @@ -1,6 +1,6 @@ import * as base64js from "base64-js"; -import { DownloadCloud, File } from "lucide-react"; import { useState } from "react"; +import IconComponent from "../../../components/genericIconComponent"; export default function FileCard({ fileName, content, fileType }) { const handleDownload = () => { @@ -41,7 +41,11 @@ export default function FileCard({ fileName, content, fileType }) { className="file-card-modal-image-button " onClick={handleDownload} > - +
)} @@ -60,14 +64,22 @@ export default function FileCard({ fileName, content, fileType }) { className="h-8 w-8" /> ) : ( - + )}
{" "}
{fileName}
{fileType}
- +
); diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index 45c101f3f..c18ce4753 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -1,4 +1,3 @@ -import { Eraser, TerminalSquare, Variable } from "lucide-react"; import { useContext, useEffect, useRef, useState } from "react"; import { alertContext } from "../../contexts/alertContext"; import { typesContext } from "../../contexts/typesContext"; @@ -29,6 +28,7 @@ import { import { Textarea } from "../../components/ui/textarea"; import { CHAT_FORM_DIALOG_SUBTITLE, THOUGHTS_ICON } from "../../constants"; import { TabsContext } from "../../contexts/tabsContext"; +import IconComponent from "../../components/genericIconComponent"; export default function FormModal({ flow, @@ -396,8 +396,10 @@ export default function FormModal({ Chat - @@ -407,7 +409,11 @@ export default function FormModal({
- + Input Variables @@ -501,14 +507,16 @@ export default function FormModal({
diff --git a/src/frontend/src/modals/genericModal/index.tsx b/src/frontend/src/modals/genericModal/index.tsx index b2cf02fdb..e40467806 100644 --- a/src/frontend/src/modals/genericModal/index.tsx +++ b/src/frontend/src/modals/genericModal/index.tsx @@ -1,4 +1,3 @@ -import { FileText, Variable } from "lucide-react"; import { useContext, useEffect, useRef, useState } from "react"; import SanitizedHTMLWrapper from "../../components/SanitizedHTMLWrapper"; import ShadTooltip from "../../components/ShadTooltipComponent"; @@ -21,6 +20,7 @@ import { varHighlightHTML, } from "../../utils"; import BaseModal from "../baseModal"; +import IconComponent from "../../components/genericIconComponent"; export default function GenericModal({ field_name = "", @@ -172,9 +172,10 @@ export default function GenericModal({ > {myModalTitle} - @@ -225,7 +226,11 @@ export default function GenericModal({
- + Prompt Variables: diff --git a/src/frontend/src/pages/CommunityPage/index.tsx b/src/frontend/src/pages/CommunityPage/index.tsx index 6d09999cc..658ddcd18 100644 --- a/src/frontend/src/pages/CommunityPage/index.tsx +++ b/src/frontend/src/pages/CommunityPage/index.tsx @@ -1,4 +1,3 @@ -import { GitFork, GithubIcon, Users2 } from "lucide-react"; import { useContext, useEffect, useState } from "react"; import { Button } from "../../components/ui/button"; import { alertContext } from "../../contexts/alertContext"; @@ -8,6 +7,7 @@ import { useNavigate } from "react-router-dom"; import { CardComponent } from "../../components/cardComponent"; import { getExamples } from "../../controllers/API"; import { FlowType } from "../../types/flow"; +import IconComponent from "../../components/genericIconComponent"; export default function CommunityPage() { const { flows, setTabId, downloadFlows, uploadFlows, addFlow } = useContext(TabsContext); @@ -40,7 +40,11 @@ export default function CommunityPage() {
- + Community Examples
@@ -50,7 +54,11 @@ export default function CommunityPage() { rel="noreferrer" > @@ -79,7 +87,11 @@ export default function CommunityPage() { }); }} > - + Fork Example } diff --git a/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx index d49a099a5..d6aa0cc75 100644 --- a/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx @@ -1,6 +1,6 @@ import { Disclosure } from "@headlessui/react"; -import { ChevronRight } from "lucide-react"; import { DisclosureComponentType } from "../../../../types/components"; +import IconComponent from "../../../../components/genericIconComponent"; export default function DisclosureComponent({ button: { title, Icon, buttons = [] }, @@ -24,10 +24,12 @@ export default function DisclosureComponent({ ))}
-
diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index f7223d67a..26d9e4ddd 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -1,4 +1,4 @@ -import { Code2, FileDown, FileUp, Menu, Save, Search } from "lucide-react"; +import { Search } from "lucide-react"; import { useContext, useState } from "react"; import ShadTooltip from "../../../../components/ShadTooltipComponent"; import { Separator } from "../../../../components/ui/separator"; @@ -16,6 +16,7 @@ import { nodeNames, } from "../../../../utils"; import DisclosureComponent from "../DisclosureComponent"; +import IconComponent from "../../../../components/genericIconComponent"; export default function ExtraSidebar() { const { data } = useContext(typesContext); @@ -68,10 +69,11 @@ export default function ExtraSidebar() { uploadFlow(); }} > - + @@ -82,10 +84,11 @@ export default function ExtraSidebar() { openPopUp(); }} > - + @@ -95,7 +98,11 @@ export default function ExtraSidebar() { openPopUp( f.id === tabId)} />); }} > - + @@ -108,13 +115,14 @@ export default function ExtraSidebar() { }} disabled={!isPending} > - + />
@@ -187,7 +195,11 @@ export default function ExtraSidebar() { {data[d][t].display_name} - +
diff --git a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx index 0183dcb16..31d487c58 100644 --- a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx @@ -1,10 +1,10 @@ -import { Copy, FileText, Settings2, Trash2 } from "lucide-react"; import { useContext, useState } from "react"; import { useReactFlow } from "reactflow"; import ShadTooltip from "../../../../components/ShadTooltipComponent"; import { TabsContext } from "../../../../contexts/tabsContext"; import EditNodeModal from "../../../../modals/EditNodeModal"; import { classNames } from "../../../../utils"; +import IconComponent from "../../../../components/genericIconComponent"; const NodeToolbarComponent = (props) => { const [nodeLength, setNodeLength] = useState( @@ -36,7 +36,11 @@ const NodeToolbarComponent = (props) => { props.deleteNode(props.data.id); }} > - + @@ -61,7 +65,11 @@ const NodeToolbarComponent = (props) => { ); }} > - + @@ -90,7 +98,11 @@ const NodeToolbarComponent = (props) => { } }} > - + @@ -110,7 +122,11 @@ const NodeToolbarComponent = (props) => { props.openPopUp(); }} > - + diff --git a/src/frontend/src/pages/MainPage/index.tsx b/src/frontend/src/pages/MainPage/index.tsx index e2871a313..abccea1b1 100644 --- a/src/frontend/src/pages/MainPage/index.tsx +++ b/src/frontend/src/pages/MainPage/index.tsx @@ -1,10 +1,10 @@ -import { Download, ExternalLink, Home, Plus, Upload } from "lucide-react"; import { useContext, useEffect } from "react"; import { Link, useNavigate } from "react-router-dom"; import { CardComponent } from "../../components/cardComponent"; import { Button } from "../../components/ui/button"; import { USER_PROJECTS_HEADER } from "../../constants"; import { TabsContext } from "../../contexts/tabsContext"; +import IconComponent from "../../components/genericIconComponent"; export default function HomePage() { const { flows, setTabId, downloadFlows, uploadFlows, addFlow, removeFlow } = useContext(TabsContext); @@ -16,7 +16,11 @@ export default function HomePage() {
- + {USER_PROJECTS_HEADER}
@@ -26,7 +30,11 @@ export default function HomePage() { downloadFlows(); }} > - + Download Collection
@@ -67,7 +83,11 @@ export default function HomePage() { size="sm" className="whitespace-nowrap " > - + Edit Flow diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 4b446b54f..973837d35 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -164,10 +164,11 @@ export interface IVarHighlightType { export type IconProps = { name: string; + style: string; }; export type IconComponentProps = { method: "SVG" | "LUCIDE"; name: string; - className?: string; + style: string; }; diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 2e95e6ceb..f36334089 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -40,7 +40,7 @@ import { LucideSend, Menu, MessageCircle, - MessageSquare, + MessagesSquare, MoonIcon, Paperclip, Plus, @@ -317,7 +317,7 @@ export const nodeIconsLucide = { Info, CheckCircle2, Zap, - MessageSquare, + MessagesSquare, ExternalLink, ChevronsUpDown, Check, From 5486e31d145b3dec7abc71d8499954ff419a4f45 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Sun, 16 Jul 2023 17:50:13 -0300 Subject: [PATCH 30/66] feat[GenericNode]: Change GenericNode icon to generic icon --- .../src/CustomNodes/GenericNode/index.tsx | 15 ++++++++------- .../src/components/genericIconComponent/index.tsx | 11 +++++++---- src/frontend/src/types/components/index.ts | 2 ++ src/frontend/src/utils.ts | 4 ++-- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index c5949ed9d..7f5140642 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -28,11 +28,13 @@ export default function GenericNode({ const { setErrorData } = useContext(alertContext); const showError = useRef(true); const { types, deleteNode } = useContext(typesContext); - + const { closePopUp, openPopUp } = useContext(PopUpContext); // any to avoid type conflict const Icon: any = nodeIconsLucide[data.type] || nodeIconsLucide[types[data.type]]; + console.log({ data, Icon, types: data.type || types[data.type], color: nodeColors[types[data.type]] }) + const name = nodeIconsLucide[data.type] ? data.type : types[data.type] const [validationStatus, setValidationStatus] = useState(null); // State for outline color const { sseData, isBuilding } = useSSE(); @@ -86,12 +88,11 @@ export default function GenericNode({ >
-
diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index ea7850e77..e38807261 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -4,14 +4,16 @@ import { nodeIconsLucide, svgIcons } from "../../utils"; export function IconFromLucide({ name, style, + iconColor, }: IconProps): JSX.Element { const TargetIcon = nodeIconsLucide[name] ?? nodeIconsLucide["unknown"]; - return ; + return ; } export function IconFromSvg({ name, - style + style, + iconColor, }: IconProps): JSX.Element { const TargetSvg = svgIcons[name] ?? nodeIconsLucide["unknown"]; return ; @@ -21,12 +23,13 @@ export default function IconComponent({ method, name, style, + iconColor, }: IconComponentProps): JSX.Element { switch (method) { case "SVG": - return ; + return ; case "LUCIDE": - return ; + return ; default: console.error("IconComponent: invalid method"); return ; diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 973837d35..d61935176 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -165,10 +165,12 @@ export interface IVarHighlightType { export type IconProps = { name: string; style: string; + iconColor?: string; }; export type IconComponentProps = { method: "SVG" | "LUCIDE"; name: string; style: string; + iconColor?: string; }; diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index f36334089..acfcd3c03 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -136,7 +136,7 @@ export enum TypeModal { } export const svgIcons = { - Airbyte: SvgAirbyte, + /* Airbyte: SvgAirbyte, Anthropic: SvgAnthropicBox, Bing: SvgBing, Chroma: SvgChroma, @@ -165,7 +165,7 @@ export const svgIcons = { Weaviate: SvgWeaviate, Wikipedia: SvgWikipedia, Wolfram: SvgWolfram, - Word: SvgWord, + Word: SvgWord, */ }; export const textColors = { From 1dcabe67512a14f15d15f844bafbc84cf4f58cca Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Sun, 16 Jul 2023 17:51:30 -0300 Subject: [PATCH 31/66] Remove console.log --- src/frontend/src/CustomNodes/GenericNode/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 7f5140642..558df65de 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -33,7 +33,6 @@ export default function GenericNode({ // any to avoid type conflict const Icon: any = nodeIconsLucide[data.type] || nodeIconsLucide[types[data.type]]; - console.log({ data, Icon, types: data.type || types[data.type], color: nodeColors[types[data.type]] }) const name = nodeIconsLucide[data.type] ? data.type : types[data.type] const [validationStatus, setValidationStatus] = useState(null); // State for outline color From c6ffb9a698bd696d9d5a4fe36a4becfd31fcadae Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Mon, 17 Jul 2023 14:14:33 -0300 Subject: [PATCH 32/66] refactor: Remove unnused SVG icon method --- .../components/parameterComponent/index.tsx | 1 - .../src/components/genericIconComponent/index.tsx | 13 +------------ 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index e3311beea..57cd78c47 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -1,4 +1,3 @@ -import { Info } from "lucide-react"; import React, { useContext, useEffect, useRef, useState } from "react"; import { Handle, Position, useUpdateNodeInternals } from "reactflow"; import ShadTooltip from "../../../../components/ShadTooltipComponent"; diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index e38807261..bbe8ee841 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -1,5 +1,5 @@ import { IconComponentProps, IconProps } from "../../types/components"; -import { nodeIconsLucide, svgIcons } from "../../utils"; +import { nodeIconsLucide } from "../../utils"; export function IconFromLucide({ name, @@ -10,15 +10,6 @@ export function IconFromLucide({ return ; } -export function IconFromSvg({ - name, - style, - iconColor, -}: IconProps): JSX.Element { - const TargetSvg = svgIcons[name] ?? nodeIconsLucide["unknown"]; - return ; -} - export default function IconComponent({ method, name, @@ -26,8 +17,6 @@ export default function IconComponent({ iconColor, }: IconComponentProps): JSX.Element { switch (method) { - case "SVG": - return ; case "LUCIDE": return ; default: From 709e3ef0e707b87de0b8f4220cf93139618a257e Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Mon, 17 Jul 2023 14:40:08 -0300 Subject: [PATCH 33/66] refactor[cardComponent]: Remove unnused code --- src/frontend/src/components/cardComponent/index.tsx | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/frontend/src/components/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx index 8cee9c031..04c8080e8 100644 --- a/src/frontend/src/components/cardComponent/index.tsx +++ b/src/frontend/src/components/cardComponent/index.tsx @@ -56,13 +56,6 @@ export const CardComponent = ({
- {/* Agent - -
- -
-  OpenAI+ -
*/}
{button && button}
From 8317fecc2401281fca4b3cfc478a489f2b7c738e Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 17 Jul 2023 15:27:15 -0300 Subject: [PATCH 34/66] =?UTF-8?q?=F0=9F=8E=A8=20style(index.css):=20add=20?= =?UTF-8?q?animation=20for=20accordion=20content=20to=20slide=20down=20and?= =?UTF-8?q?=20slide=20up=20for=20better=20user=20experience=20=F0=9F=94=A7?= =?UTF-8?q?=20chore(tailwind.config.js):=20remove=20unused=20keyframes=20a?= =?UTF-8?q?nd=20animations=20related=20to=20accordion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/index.css | 28 ++++++++++++++++++++++++++++ src/frontend/tailwind.config.js | 30 +----------------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/frontend/src/index.css b/src/frontend/src/index.css index ffba3b082..b76e2a724 100644 --- a/src/frontend/src/index.css +++ b/src/frontend/src/index.css @@ -152,6 +152,34 @@ The cursor: default; property value restores the browser's default cursor style cursor: default; } +.AccordionContent { + overflow: hidden; +} +.AccordionContent[data-state='open'] { + animation: slideDown 300ms ease-out; +} +.AccordionContent[data-state='closed'] { + animation: slideUp 300ms ease-out; +} + +@keyframes slideDown { + from { + height: 0; + } + to { + height: var(--radix-accordion-content-height); + } +} + +@keyframes slideUp { + from { + height: var(--radix-accordion-content-height); + } + to { + height: 0; + } +} + @layer components { .round-buttons-position { diff --git a/src/frontend/tailwind.config.js b/src/frontend/tailwind.config.js index 429b9b26a..b1ac8f14d 100644 --- a/src/frontend/tailwind.config.js +++ b/src/frontend/tailwind.config.js @@ -28,20 +28,6 @@ module.exports = { }, }, extend: { - keyframes: { - "accordion-down": { - from: { height: 0 }, - to: { height: "var(--radix-accordion-content-height)" }, - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: 0 }, - }, - }, - animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - }, colors: { connection: "var(--connection)", "almost-dark-gray": "var(--almost-dark-gray)", @@ -128,21 +114,7 @@ module.exports = { }, fontFamily: { sans: ["var(--font-sans)", ...fontFamily.sans], - }, - keyframes: { - slideDown: { - from: { height: 0 }, - to: { height: 100 }, - }, - slideUp: { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: 0 }, - }, - }, - animation: { - "accordion-down": "slideDown 300ms ease-out", - "accordion-up": "slideUp 300ms ease-in", - }, + } }, }, From b156d68caca38e442e7af126590456aec7315723 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Mon, 17 Jul 2023 15:29:00 -0300 Subject: [PATCH 35/66] refactor[src/components/ExtraSideBarComponent/index.tsx]: Remove duplicate side bar component --- .../ExtraSidebarComponent/index.tsx | 117 ------------------ 1 file changed, 117 deletions(-) delete mode 100644 src/frontend/src/components/ExtraSidebarComponent/index.tsx diff --git a/src/frontend/src/components/ExtraSidebarComponent/index.tsx b/src/frontend/src/components/ExtraSidebarComponent/index.tsx deleted file mode 100644 index e307e5234..000000000 --- a/src/frontend/src/components/ExtraSidebarComponent/index.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { Disclosure } from "@headlessui/react"; -import { useContext } from "react"; -import { Link } from "react-router-dom"; -import { locationContext } from "../../contexts/locationContext"; -import { classNames } from "../../utils"; - -export default function ExtraSidebar() { - const { - current, - isStackedOpen, - setIsStackedOpen, - extraNavigation, - extraComponent, - } = useContext(locationContext); - - return ( - <> - - - ); -} From 69380447b00aeb60f5e6b075b119173fb5d8b906 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 17 Jul 2023 15:46:25 -0300 Subject: [PATCH 36/66] =?UTF-8?q?=F0=9F=8E=A8=20style(AccordionComponent):?= =?UTF-8?q?=20change=20border=20style=20of=20AccordionItem=20to=20improve?= =?UTF-8?q?=20visual=20consistency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/components/AccordionComponent/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/frontend/src/components/AccordionComponent/index.tsx b/src/frontend/src/components/AccordionComponent/index.tsx index 3b0ddd596..68f31aed6 100644 --- a/src/frontend/src/components/AccordionComponent/index.tsx +++ b/src/frontend/src/components/AccordionComponent/index.tsx @@ -34,7 +34,7 @@ export default function AccordionComponent({ return ( <> - + { handleClick(); From 3249f0153e962f0f08c4ebaeadbf63866cead56b Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Mon, 17 Jul 2023 15:54:40 -0300 Subject: [PATCH 37/66] refactor[promptComponent]: Remove unnused code --- .../src/components/promptComponent/index.tsx | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx index f3c3ab6fb..e5828173f 100644 --- a/src/frontend/src/components/promptComponent/index.tsx +++ b/src/frontend/src/components/promptComponent/index.tsx @@ -39,24 +39,6 @@ export default function PromptAreaComponent({ } }, [value, reactFlowInstance]); - // useEffect(() => { - // if (value !== "" && myValue !== value && reactFlowInstance) { - // // only executed once - // setMyValue(value); - // postValidatePrompt(field_name, value, nodeClass) - // .then((apiReturn) => { - // if (apiReturn.data) { - // setNodeClass(apiReturn.data.frontend_node); - // // need to update reactFlowInstance to re-render the nodes. - // reactFlowInstance.setEdges( - // _.cloneDeep(reactFlowInstance.getEdges()) - // ); - // } - // }) - // .catch((error) => {}); - // } - // }, [reactFlowInstance, field_name, myValue, nodeClass, setNodeClass, value]); - return (
From 010f502adcbf08d8776c50d0f75b0472440acc75 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Mon, 17 Jul 2023 15:57:29 -0300 Subject: [PATCH 38/66] refactor[tabsContext]: Remove unnused code --- src/frontend/src/contexts/tabsContext.tsx | 47 ----------------------- 1 file changed, 47 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index a7ddf11f8..92ee19436 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -106,53 +106,6 @@ export function TabsProvider({ children }: { children: ReactNode }) { } } - // function loadCookie(cookie: string) { - // if (cookie && Object.keys(templates).length > 0) { - // let cookieObject: LangflowState = JSON.parse(cookie); - // try { - // cookieObject.flows.forEach((flow) => { - // if (!flow.data) { - // return; - // } - // flow.data.edges.forEach((edge) => { - // edge.className = ""; - // edge.style = { stroke: "#555555" }; - // }); - - // flow.data.nodes.forEach((node) => { - // const template = templates[node.data.type]; - // if (!template) { - // setErrorData({ title: `Unknown node type: ${node.data.type}` }); - // return; - // } - // if (Object.keys(template["template"]).length > 0) { - // node.data.node.base_classes = template["base_classes"]; - // flow.data.edges.forEach((edge) => { - // if (edge.source === node.id) { - // edge.sourceHandle = edge.sourceHandle - // .split("|") - // .slice(0, 2) - // .concat(template["base_classes"]) - // .join("|"); - // } - // }); - // node.data.node.description = template["description"]; - // node.data.node.template = updateTemplate( - // template["template"] as unknown as APITemplateType, - // node.data.node.template as APITemplateType - // ); - // } - // }); - // }); - // setTabIndex(cookieObject.tabIndex); - // setFlows(cookieObject.flows); - // setId(cookieObject.id); - // } catch (e) { - // console.log(e); - // } - // } - // } - function refreshFlows() { getTabsDataFromDB().then((DbData) => { if (DbData && Object.keys(templates).length > 0) { From 7a9abc2af5623939f74f946bb8d27a2f71ec3af7 Mon Sep 17 00:00:00 2001 From: Igor Carvalho Date: Mon, 17 Jul 2023 19:06:46 -0300 Subject: [PATCH 39/66] refactor[GenericNode]: Remove unnused code --- .../src/CustomNodes/GenericNode/index.tsx | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 558df65de..34479429b 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -176,25 +176,6 @@ export default function GenericNode({ .filter((t) => t.charAt(0) !== "_") .map((t: string, idx) => (
- {/* {idx === 0 ? ( -
- !key.startsWith("_") && - data.node.template[key].show && - !data.node.template[key].advanced - ).length === 0 - ? "hidden" - : "" - )} - > - Inputs -
- ) : ( - <> - )} */} {data.node.template[t].show && !data.node.template[t].advanced ? ( {" "}
- {/*
- Output -
*/} Date: Mon, 17 Jul 2023 19:21:26 -0300 Subject: [PATCH 40/66] refactor: Remove unnused code --- src/frontend/src/modals/ApiModal/index.tsx | 30 ------ .../components/PageComponent/index.tsx | 1 - .../components/nodeToolbarComponent/index.tsx | 93 ------------------- src/frontend/src/utils.ts | 64 ------------- 4 files changed, 188 deletions(-) diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index 7eb7bebd3..d57b24d37 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -4,7 +4,6 @@ import "ace-builds/src-noconflict/theme-github"; import "ace-builds/src-noconflict/theme-twilight"; import { useContext, useEffect, useRef, useState } from "react"; import { PopUpContext } from "../../contexts/popUpContext"; -// import "ace-builds/webpack-resolver"; import { Check, Clipboard } from "lucide-react"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; import { oneDark } from "react-syntax-highlighter/dist/cjs/styles/prism"; @@ -379,7 +378,6 @@ export default function ApiModal({ flow }: { flow: FlowType }) { "int") ) .map((n, i) => { - //console.log(t.data.node.template[n]); return ( ))} - - {/* -
- - - - - TWEAK - - - VALUE - - - - - {invoices.map((invoice) => ( - - - {invoice.paymentStatus} - - - {invoice.paymentMethod} - - - ))} - -
-
*/}
diff --git a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx index a6ac0f4df..dbbba51c1 100644 --- a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx @@ -91,7 +91,6 @@ export default function Page({ flow }: { flow: FlowType }) { lastSelection ) { event.preventDefault(); - // addFlow(newFlow, false); } }; const handleMouseMove = (event) => { diff --git a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx index 31d487c58..bedabd06a 100644 --- a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx @@ -129,99 +129,6 @@ const NodeToolbarComponent = (props) => { />
- - {/* - - - )} - - - {({ active }) => ( - - )} - -
- - - - */}
diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index acfcd3c03..2f212ad5c 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -68,58 +68,28 @@ import { Connection, Edge, Node, ReactFlowInstance } from "reactflow"; import { twMerge } from "tailwind-merge"; import { ADJECTIVES, DESCRIPTIONS, NOUNS } from "./flow_constants"; import { AirbyteIcon } from "./icons/Airbyte"; -import SvgAirbyte from "./icons/Airbyte/Airbyte"; import { AnthropicIcon } from "./icons/Anthropic"; -import SvgAnthropicBox from "./icons/Anthropic/AnthropicBox"; import { BingIcon } from "./icons/Bing"; -import SvgBing from "./icons/Bing/Bing"; import { ChromaIcon } from "./icons/ChromaIcon"; -import SvgChroma from "./icons/ChromaIcon/Chroma"; import { CohereIcon } from "./icons/Cohere"; -import SvgCohere from "./icons/Cohere/Cohere"; import { EvernoteIcon } from "./icons/Evernote"; -import SvgEvernoteIcon from "./icons/Evernote/EvernoteIcon"; import { FBIcon } from "./icons/FacebookMessenger"; -import SvgFacebookMessengerLogo2020 from "./icons/FacebookMessenger/FacebookMessengerLogo2020"; import { GitBookIcon } from "./icons/GitBook"; -import SvgGitbookSvgrepoCom from "./icons/GitBook/GitbookSvgrepoCom"; import { GoogleIcon } from "./icons/Google"; -import SvgGoogle from "./icons/Google/Google"; import { HuggingFaceIcon } from "./icons/HuggingFace"; -import SvgHfLogo from "./icons/HuggingFace/HfLogo"; import { IFixIcon } from "./icons/IFixIt"; -import SvgIfixitSeeklogocom from "./icons/IFixIt/IfixitSeeklogoCom"; import { MetaIcon } from "./icons/Meta"; -import SvgMetaIcon from "./icons/Meta/MetaIcon"; import { MidjourneyIcon } from "./icons/Midjorney"; -import SvgMidjourneyEmblem from "./icons/Midjorney/MidjourneyEmblem"; import { MongoDBIcon } from "./icons/MongoDB"; -import SvgMongodbIcon from "./icons/MongoDB/MongodbIcon"; import { NotionIcon } from "./icons/Notion"; -import SvgNotionLogo from "./icons/Notion/NotionLogo"; import { OpenAiIcon } from "./icons/OpenAi"; -import SvgOpenAi from "./icons/OpenAi/OpenAi"; import { PineconeIcon } from "./icons/Pinecone"; -import SvgPineconeLogo from "./icons/Pinecone/PineconeLogo"; -import SvgPowerPoint from "./icons/PowerPoint/PowerPoint"; import { QDrantIcon } from "./icons/QDrant"; -import SvgQDrant from "./icons/QDrant/QDrant"; -import SvgReadthedocsioIcon from "./icons/ReadTheDocs/ReadthedocsioIcon"; import { SearxIcon } from "./icons/Searx"; -import SvgSearxLogo from "./icons/Searx/SearxLogo"; -import SvgSerper from "./icons/Serper/Serper"; import { SlackIcon } from "./icons/Slack"; -import SvgSlackIcon from "./icons/Slack/SlackIcon"; import { VertexAIIcon } from "./icons/VertexAI"; -import SvgVertexAi from "./icons/VertexAI/VertexAi"; -import SvgWeaviate from "./icons/Weaviate/Weaviate"; -import SvgWikipedia from "./icons/Wikipedia/Wikipedia"; -import SvgWolfram from "./icons/Wolfram/Wolfram"; -import SvgWord from "./icons/Word/Word"; import { HackerNewsIcon } from "./icons/hackerNews"; -import SvgYCombinatorLogo from "./icons/hackerNews/YCombinatorLogo"; import { SupabaseIcon } from "./icons/supabase"; -import SvgSupabaseIcon from "./icons/supabase/SupabaseIcon"; import { APITemplateType } from "./types/api"; import { IVarHighlightType } from "./types/components"; import { FlowType, NodeType } from "./types/flow"; @@ -135,39 +105,6 @@ export enum TypeModal { PROMPT = 2, } -export const svgIcons = { - /* Airbyte: SvgAirbyte, - Anthropic: SvgAnthropicBox, - Bing: SvgBing, - Chroma: SvgChroma, - Cohere: SvgCohere, - Evernote: SvgEvernoteIcon, - FacebookMessenger: SvgFacebookMessengerLogo2020, - GitBook: SvgGitbookSvgrepoCom, - Google: SvgGoogle, - HackerNews: SvgYCombinatorLogo, - HuggingFace: SvgHfLogo, - IFixIt: SvgIfixitSeeklogocom, - Meta: SvgMetaIcon, - MidJorney: SvgMidjourneyEmblem, - MongoDB: SvgMongodbIcon, - Notion: SvgNotionLogo, - OpenAi: SvgOpenAi, - Pinecone: SvgPineconeLogo, - PowerPoint: SvgPowerPoint, - QDrant: SvgQDrant, - ReadTheDocs: SvgReadthedocsioIcon, - Searx: SvgSearxLogo, - Serper: SvgSerper, - Slack: SvgSlackIcon, - Supabase: SvgSupabaseIcon, - VertexAI: SvgVertexAi, - Weaviate: SvgWeaviate, - Wikipedia: SvgWikipedia, - Wolfram: SvgWolfram, - Word: SvgWord, */ -}; - export const textColors = { white: "text-white", red: "text-red-700", @@ -356,7 +293,6 @@ export const nodeIconsLucide = { Copy, Upload, }; -/* Trash2 */ export const gradients = [ "bg-gradient-to-br from-gray-800 via-rose-700 to-violet-900", From 0db3ed20d83239e1d4cfdce2b5b6e57b79496af1 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 17 Jul 2023 19:30:39 -0300 Subject: [PATCH 41/66] =?UTF-8?q?=F0=9F=90=9B=20fix(AccordionComponent):?= =?UTF-8?q?=20change=20trigger=20prop=20type=20to=20accept=20string=20or?= =?UTF-8?q?=20ReactElement=20to=20improve=20flexibility=20=E2=9C=A8=20feat?= =?UTF-8?q?(AccordionComponent):=20add=20keyValue=20prop=20to=20uniquely?= =?UTF-8?q?=20identify=20each=20accordion=20item=20for=20better=20performa?= =?UTF-8?q?nce=20and=20stability=20=F0=9F=90=9B=20fix(ApiModal):=20add=20k?= =?UTF-8?q?eyValue=20prop=20to=20AccordionComponent=20to=20uniquely=20iden?= =?UTF-8?q?tify=20each=20accordion=20item=20for=20better=20performance=20a?= =?UTF-8?q?nd=20stability=20=F0=9F=90=9B=20fix(formModal):=20remove=20unus?= =?UTF-8?q?ed=20imports=20and=20replace=20Accordion,=20AccordionContent,?= =?UTF-8?q?=20AccordionItem,=20and=20AccordionTrigger=20with=20AccordionCo?= =?UTF-8?q?mponent=20=E2=9C=A8=20feat(formModal):=20add=20keyValue=20prop?= =?UTF-8?q?=20to=20AccordionComponent=20to=20uniquely=20identify=20each=20?= =?UTF-8?q?accordion=20item=20for=20better=20performance=20and=20stability?= =?UTF-8?q?=20=F0=9F=90=9B=20fix(types):=20change=20trigger=20prop=20type?= =?UTF-8?q?=20in=20AccordionComponentType=20to=20accept=20string=20or=20Re?= =?UTF-8?q?actElement=20to=20improve=20flexibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/package-lock.json | 39 ++-- .../components/AccordionComponent/index.tsx | 7 +- src/frontend/src/modals/ApiModal/index.tsx | 1 + src/frontend/src/modals/formModal/index.tsx | 192 +++++++++++------- src/frontend/src/types/components/index.ts | 3 +- 5 files changed, 150 insertions(+), 92 deletions(-) diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 6ac6b625c..b0302450f 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -147,9 +147,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz", - "integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "engines": { "node": ">=6.9.0" } @@ -194,6 +194,14 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/core/node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { "version": "7.22.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.7.tgz", @@ -226,6 +234,14 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", @@ -1175,9 +1191,9 @@ } }, "node_modules/@mui/private-theming/node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -1338,14 +1354,6 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, - "node_modules/@nicolo-ribaudo/semver-v6": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", - "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3542,7 +3550,7 @@ "version": "16.18.12", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.12.tgz", "integrity": "sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==", - "devOptional": true + "dev": true }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -5588,6 +5596,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ diff --git a/src/frontend/src/components/AccordionComponent/index.tsx b/src/frontend/src/components/AccordionComponent/index.tsx index 68f31aed6..03d8c0a1d 100644 --- a/src/frontend/src/components/AccordionComponent/index.tsx +++ b/src/frontend/src/components/AccordionComponent/index.tsx @@ -11,6 +11,7 @@ export default function AccordionComponent({ trigger, children, open = [], + keyValue, }: AccordionComponentType) { const [value, setValue] = useState( open.length === 0 ? "" : getOpenAccordion() @@ -28,13 +29,13 @@ export default function AccordionComponent({ } function handleClick() { - value == "" ? setValue(trigger) : setValue(""); + value == "" ? setValue(keyValue) : setValue(""); } return ( <> - - + + { handleClick(); diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index f3f84a9ac..19b012f13 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -340,6 +340,7 @@ export default function ApiModal({ flow }: { flow: FlowType }) { {tweaksList.current.includes(t["data"]["id"]) && (
diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index 12f7683b3..7bcb244de 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -10,13 +10,9 @@ import ChatInput from "./chatInput"; import ChatMessage from "./chatMessage"; import _ from "lodash"; +import AccordionComponent from "../../components/AccordionComponent"; import ToggleShadComponent from "../../components/toggleShadComponent"; -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from "../../components/ui/accordion"; +import { AccordionItem } from "../../components/ui/accordion"; import { Badge } from "../../components/ui/badge"; import { Dialog, @@ -388,6 +384,7 @@ export default function FormModal({ setChatValue(""); } } + return ( @@ -422,80 +419,129 @@ export default function FormModal({
- - {Object.keys(tabsState[id.current].formKeysData.input_keys).map( - (i, k) => ( -
- - -
- - {i} - -
{ - event.stopPropagation(); - }} - > - - handleOnCheckedChange(value, i) - } - size="small" - disabled={tabsState[ - id.current - ].formKeysData.handle_keys.some((t) => t === i)} - /> -
-
-
- -
- {tabsState[ - id.current - ].formKeysData.handle_keys.some((t) => t === i) && ( -
- Source: Component -
- )} - + size="small" + disabled={tabsState[ + id.current + ].formKeysData.handle_keys.some((t) => t === i)} + />
-
-
-
- ) - )} - {tabsState[id.current].formKeysData.memory_keys.map((i, k) => ( - -
-
- +
+ } + key={k} + keyValue={i} + > +
+ {tabsState[id.current].formKeysData.handle_keys.some( + (t) => t === i + ) && ( +
+ Source: Component +
+ )} + +
+ +
+ ) + )} + {tabsState[id.current].formKeysData.memory_keys.map((i, k) => ( +
+ + {i} + +
{ + event.stopPropagation(); + }} + > + + handleOnCheckedChange(value, i) + } + size="small" + disabled={tabsState[ + id.current + ].formKeysData.handle_keys.some((t) => t === i)} + /> +
- Used as memory key + } + key={k} + keyValue={i} + > +
+ {tabsState[id.current].formKeysData.handle_keys.some( + (t) => t === i + ) && ( +
+ Source: Component +
+ )} +
-
- ))} -
+ +
+ ))}
diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index 4ce9e526f..d4f0cb0d7 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -130,7 +130,8 @@ export type RadialProgressType = { export type AccordionComponentType = { children?: ReactElement; open?: string[]; - trigger?: string; + trigger?: string | ReactElement; + keyValue?: string; }; export type Side = "top" | "right" | "bottom" | "left"; From 6ee309ab22f45c558fa2c2a2cfb5a8b98a5f0aaf Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 17 Jul 2023 19:31:12 -0300 Subject: [PATCH 42/66] formated code --- .../components/parameterComponent/index.tsx | 8 ++++++-- .../src/CustomNodes/GenericNode/index.tsx | 6 +++--- .../components/singleAlertComponent/index.tsx | 2 +- .../src/alerts/alertDropDown/index.tsx | 8 ++------ src/frontend/src/alerts/error/index.tsx | 2 +- src/frontend/src/alerts/notice/index.tsx | 2 +- src/frontend/src/alerts/success/index.tsx | 2 +- .../src/components/cardComponent/index.tsx | 5 ++--- .../components/genericIconComponent/index.tsx | 4 ++-- .../components/menuBar/index.tsx | 8 ++------ .../src/components/headerComponent/index.tsx | 14 +++---------- src/frontend/src/components/ui/checkbox.tsx | 6 +----- src/frontend/src/components/ui/dialog.tsx | 6 +----- .../src/components/ui/dropdown-menu.tsx | 6 +----- src/frontend/src/components/ui/menubar.tsx | 6 +----- src/frontend/src/modals/ApiModal/index.tsx | 7 +++---- .../src/modals/EditNodeModal/index.tsx | 2 +- src/frontend/src/modals/NodeModal/index.tsx | 2 +- .../src/modals/codeAreaModal/index.tsx | 2 +- src/frontend/src/modals/exportModal/index.tsx | 2 +- .../src/modals/flowSettingsModal/index.tsx | 2 +- .../src/modals/formModal/chatInput/index.tsx | 2 +- .../modals/formModal/chatMessage/index.tsx | 2 +- .../modals/formModal/fileComponent/index.tsx | 6 +----- src/frontend/src/modals/formModal/index.tsx | 2 +- .../src/modals/genericModal/index.tsx | 2 +- .../src/pages/CommunityPage/index.tsx | 8 ++------ .../components/DisclosureComponent/index.tsx | 2 +- .../extraSidebarComponent/index.tsx | 2 +- .../components/nodeToolbarComponent/index.tsx | 20 ++++--------------- src/frontend/src/pages/MainPage/index.tsx | 8 ++------ src/frontend/src/utils.ts | 1 - 32 files changed, 51 insertions(+), 106 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index 57cd78c47..058b33e4e 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -4,6 +4,7 @@ import ShadTooltip from "../../../../components/ShadTooltipComponent"; import CodeAreaComponent from "../../../../components/codeAreaComponent"; import Dropdown from "../../../../components/dropdownComponent"; import FloatComponent from "../../../../components/floatComponent"; +import IconComponent from "../../../../components/genericIconComponent"; import InputComponent from "../../../../components/inputComponent"; import InputFileComponent from "../../../../components/inputFileComponent"; import InputListComponent from "../../../../components/inputListComponent"; @@ -26,7 +27,6 @@ import { nodeIconsLucide, nodeNames, } from "../../../../utils"; -import IconComponent from "../../../../components/genericIconComponent"; export default function ParameterComponent({ left, @@ -164,7 +164,11 @@ export default function ParameterComponent({
{info !== "" && ( - + )}
diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 34479429b..5a3e1e8be 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -2,6 +2,7 @@ import { useContext, useEffect, useRef, useState } from "react"; import { NodeToolbar } from "reactflow"; import ShadTooltip from "../../components/ShadTooltipComponent"; import Tooltip from "../../components/TooltipComponent"; +import IconComponent from "../../components/genericIconComponent"; import { useSSE } from "../../contexts/SSEContext"; import { alertContext } from "../../contexts/alertContext"; import { PopUpContext } from "../../contexts/popUpContext"; @@ -16,7 +17,6 @@ import { toTitleCase, } from "../../utils"; import ParameterComponent from "./components/parameterComponent"; -import IconComponent from "../../components/genericIconComponent"; export default function GenericNode({ data, @@ -28,12 +28,12 @@ export default function GenericNode({ const { setErrorData } = useContext(alertContext); const showError = useRef(true); const { types, deleteNode } = useContext(typesContext); - + const { closePopUp, openPopUp } = useContext(PopUpContext); // any to avoid type conflict const Icon: any = nodeIconsLucide[data.type] || nodeIconsLucide[types[data.type]]; - const name = nodeIconsLucide[data.type] ? data.type : types[data.type] + const name = nodeIconsLucide[data.type] ? data.type : types[data.type]; const [validationStatus, setValidationStatus] = useState(null); // State for outline color const { sseData, isBuilding } = useSSE(); diff --git a/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx b/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx index 1b5c6384b..dcfdf5a39 100644 --- a/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx +++ b/src/frontend/src/alerts/alertDropDown/components/singleAlertComponent/index.tsx @@ -1,8 +1,8 @@ import { Transition } from "@headlessui/react"; import { useState } from "react"; import { Link } from "react-router-dom"; -import { SingleAlertComponentType } from "../../../../types/alerts"; import IconComponent from "../../../../components/genericIconComponent"; +import { SingleAlertComponentType } from "../../../../types/alerts"; export default function SingleAlert({ dropItem, diff --git a/src/frontend/src/alerts/alertDropDown/index.tsx b/src/frontend/src/alerts/alertDropDown/index.tsx index 7b140de6d..679ac9516 100644 --- a/src/frontend/src/alerts/alertDropDown/index.tsx +++ b/src/frontend/src/alerts/alertDropDown/index.tsx @@ -1,10 +1,10 @@ import { useContext, useRef } from "react"; +import IconComponent from "../../components/genericIconComponent"; import { alertContext } from "../../contexts/alertContext"; import { PopUpContext } from "../../contexts/popUpContext"; import { AlertDropdownType } from "../../types/alerts"; import { useOnClickOutside } from "../hooks/useOnClickOutside"; import SingleAlert from "./components/singleAlertComponent"; -import IconComponent from "../../components/genericIconComponent"; export default function AlertDropdown({}: AlertDropdownType) { const { closePopUp } = useContext(PopUpContext); @@ -46,11 +46,7 @@ export default function AlertDropdown({}: AlertDropdownType) { className="text-foreground hover:text-status-red" onClick={closePopUp} > - +
diff --git a/src/frontend/src/alerts/error/index.tsx b/src/frontend/src/alerts/error/index.tsx index ae89d6269..3bb61da80 100644 --- a/src/frontend/src/alerts/error/index.tsx +++ b/src/frontend/src/alerts/error/index.tsx @@ -1,7 +1,7 @@ import { Transition } from "@headlessui/react"; import { useEffect, useState } from "react"; -import { ErrorAlertType } from "../../types/alerts"; import IconComponent from "../../components/genericIconComponent"; +import { ErrorAlertType } from "../../types/alerts"; export default function ErrorAlert({ title, diff --git a/src/frontend/src/alerts/notice/index.tsx b/src/frontend/src/alerts/notice/index.tsx index 62cb6c73c..6ffb11e5f 100644 --- a/src/frontend/src/alerts/notice/index.tsx +++ b/src/frontend/src/alerts/notice/index.tsx @@ -1,8 +1,8 @@ import { Transition } from "@headlessui/react"; import { useEffect, useState } from "react"; import { Link } from "react-router-dom"; -import { NoticeAlertType } from "../../types/alerts"; import IconComponent from "../../components/genericIconComponent"; +import { NoticeAlertType } from "../../types/alerts"; export default function NoticeAlert({ title, diff --git a/src/frontend/src/alerts/success/index.tsx b/src/frontend/src/alerts/success/index.tsx index 90b181a77..a15728596 100644 --- a/src/frontend/src/alerts/success/index.tsx +++ b/src/frontend/src/alerts/success/index.tsx @@ -1,7 +1,7 @@ import { Transition } from "@headlessui/react"; import { useEffect, useState } from "react"; -import { SuccessAlertType } from "../../types/alerts"; import IconComponent from "../../components/genericIconComponent"; +import { SuccessAlertType } from "../../types/alerts"; export default function SuccessAlert({ title, diff --git a/src/frontend/src/components/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx index 04c8080e8..80e162a07 100644 --- a/src/frontend/src/components/cardComponent/index.tsx +++ b/src/frontend/src/components/cardComponent/index.tsx @@ -2,6 +2,7 @@ import { useContext } from "react"; import { TabsContext } from "../../contexts/tabsContext"; import { FlowType } from "../../types/flow"; import { gradients } from "../../utils"; +import IconComponent from "../genericIconComponent"; import { Card, CardDescription, @@ -9,7 +10,6 @@ import { CardHeader, CardTitle, } from "../ui/card"; -import IconComponent from "../genericIconComponent"; export const CardComponent = ({ flow, @@ -55,8 +55,7 @@ export const CardComponent = ({
-
-
+
{button && button}
diff --git a/src/frontend/src/components/genericIconComponent/index.tsx b/src/frontend/src/components/genericIconComponent/index.tsx index bbe8ee841..cfaf1e0cf 100644 --- a/src/frontend/src/components/genericIconComponent/index.tsx +++ b/src/frontend/src/components/genericIconComponent/index.tsx @@ -7,7 +7,7 @@ export function IconFromLucide({ iconColor, }: IconProps): JSX.Element { const TargetIcon = nodeIconsLucide[name] ?? nodeIconsLucide["unknown"]; - return ; + return ; } export default function IconComponent({ @@ -18,7 +18,7 @@ export default function IconComponent({ }: IconComponentProps): JSX.Element { switch (method) { case "LUCIDE": - return ; + return ; default: console.error("IconComponent: invalid method"); return ; diff --git a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx index 0a66b7970..2e2c163e8 100644 --- a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx +++ b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx @@ -13,8 +13,8 @@ import { Link, useNavigate } from "react-router-dom"; import { alertContext } from "../../../../contexts/alertContext"; import { undoRedoContext } from "../../../../contexts/undoRedoContext"; import FlowSettingsModal from "../../../../modals/flowSettingsModal"; -import { Button } from "../../../ui/button"; import IconComponent from "../../../genericIconComponent"; +import { Button } from "../../../ui/button"; export const MenuBar = ({ flows, tabId }) => { const { updateFlow, setTabId, addFlow } = useContext(TabsContext); @@ -39,11 +39,7 @@ export const MenuBar = ({ flows, tabId }) => { return (
- +
diff --git a/src/frontend/src/components/headerComponent/index.tsx b/src/frontend/src/components/headerComponent/index.tsx index c76e9ce16..6bbff0f4e 100644 --- a/src/frontend/src/components/headerComponent/index.tsx +++ b/src/frontend/src/components/headerComponent/index.tsx @@ -9,10 +9,10 @@ import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; import { typesContext } from "../../contexts/typesContext"; import { getRepoStars } from "../../controllers/API"; +import IconComponent from "../genericIconComponent"; import { Button } from "../ui/button"; import { Separator } from "../ui/separator"; import MenuBar from "./components/menuBar"; -import IconComponent from "../genericIconComponent"; export default function Header() { const { flows, addFlow, tabId } = useContext(TabsContext); @@ -51,11 +51,7 @@ export default function Header() { variant={location.pathname === "/" ? "primary" : "secondary"} size="sm" > - +
{USER_PROJECTS_HEADER}
@@ -67,11 +63,7 @@ export default function Header() { } size="sm" > - +
Community Examples
diff --git a/src/frontend/src/components/ui/checkbox.tsx b/src/frontend/src/components/ui/checkbox.tsx index eb7ecc5a0..55b3895b4 100644 --- a/src/frontend/src/components/ui/checkbox.tsx +++ b/src/frontend/src/components/ui/checkbox.tsx @@ -20,11 +20,7 @@ const Checkbox = React.forwardRef< - + )); diff --git a/src/frontend/src/components/ui/dialog.tsx b/src/frontend/src/components/ui/dialog.tsx index 7353502ca..243391d16 100644 --- a/src/frontend/src/components/ui/dialog.tsx +++ b/src/frontend/src/components/ui/dialog.tsx @@ -51,11 +51,7 @@ const DialogContent = React.forwardRef< > {children} - + Close diff --git a/src/frontend/src/components/ui/dropdown-menu.tsx b/src/frontend/src/components/ui/dropdown-menu.tsx index 34c53ca9b..487e13c27 100644 --- a/src/frontend/src/components/ui/dropdown-menu.tsx +++ b/src/frontend/src/components/ui/dropdown-menu.tsx @@ -110,11 +110,7 @@ const DropdownMenuCheckboxItem = React.forwardRef< > - + {children} diff --git a/src/frontend/src/components/ui/menubar.tsx b/src/frontend/src/components/ui/menubar.tsx index 36672d68d..24bfd19a7 100644 --- a/src/frontend/src/components/ui/menubar.tsx +++ b/src/frontend/src/components/ui/menubar.tsx @@ -144,11 +144,7 @@ const MenubarCheckboxItem = React.forwardRef< > - + {children} diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index d57b24d37..53829949e 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -2,9 +2,8 @@ import "ace-builds/src-noconflict/ext-language_tools"; import "ace-builds/src-noconflict/mode-python"; import "ace-builds/src-noconflict/theme-github"; import "ace-builds/src-noconflict/theme-twilight"; -import { useContext, useEffect, useRef, useState } from "react"; -import { PopUpContext } from "../../contexts/popUpContext"; import { Check, Clipboard } from "lucide-react"; +import { useContext, useEffect, useRef, useState } from "react"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; import { oneDark } from "react-syntax-highlighter/dist/cjs/styles/prism"; import AccordionComponent from "../../components/AccordionComponent"; @@ -12,6 +11,7 @@ import ShadTooltip from "../../components/ShadTooltipComponent"; import CodeAreaComponent from "../../components/codeAreaComponent"; import Dropdown from "../../components/dropdownComponent"; import FloatComponent from "../../components/floatComponent"; +import IconComponent from "../../components/genericIconComponent"; import InputComponent from "../../components/inputComponent"; import InputFileComponent from "../../components/inputFileComponent"; import InputListComponent from "../../components/inputListComponent"; @@ -48,10 +48,10 @@ import { getPythonCode, } from "../../constants"; import { darkContext } from "../../contexts/darkContext"; +import { PopUpContext } from "../../contexts/popUpContext"; import { TabsContext } from "../../contexts/tabsContext"; import { FlowType } from "../../types/flow/index"; import { buildTweaks, classNames } from "../../utils"; -import IconComponent from "../../components/genericIconComponent"; export default function ApiModal({ flow }: { flow: FlowType }) { const [open, setOpen] = useState(true); @@ -378,7 +378,6 @@ export default function ApiModal({ flow }: { flow: FlowType }) { "int") ) .map((n, i) => { - return ( ) : ( - + )}
{" "} diff --git a/src/frontend/src/modals/formModal/index.tsx b/src/frontend/src/modals/formModal/index.tsx index c18ce4753..a6c10850d 100644 --- a/src/frontend/src/modals/formModal/index.tsx +++ b/src/frontend/src/modals/formModal/index.tsx @@ -9,6 +9,7 @@ import ChatInput from "./chatInput"; import ChatMessage from "./chatMessage"; import _ from "lodash"; +import IconComponent from "../../components/genericIconComponent"; import ToggleShadComponent from "../../components/toggleShadComponent"; import { Accordion, @@ -28,7 +29,6 @@ import { import { Textarea } from "../../components/ui/textarea"; import { CHAT_FORM_DIALOG_SUBTITLE, THOUGHTS_ICON } from "../../constants"; import { TabsContext } from "../../contexts/tabsContext"; -import IconComponent from "../../components/genericIconComponent"; export default function FormModal({ flow, diff --git a/src/frontend/src/modals/genericModal/index.tsx b/src/frontend/src/modals/genericModal/index.tsx index e40467806..780d5d74d 100644 --- a/src/frontend/src/modals/genericModal/index.tsx +++ b/src/frontend/src/modals/genericModal/index.tsx @@ -1,6 +1,7 @@ import { useContext, useEffect, useRef, useState } from "react"; import SanitizedHTMLWrapper from "../../components/SanitizedHTMLWrapper"; import ShadTooltip from "../../components/ShadTooltipComponent"; +import IconComponent from "../../components/genericIconComponent"; import { Badge } from "../../components/ui/badge"; import { Button } from "../../components/ui/button"; import { DialogTitle } from "../../components/ui/dialog"; @@ -20,7 +21,6 @@ import { varHighlightHTML, } from "../../utils"; import BaseModal from "../baseModal"; -import IconComponent from "../../components/genericIconComponent"; export default function GenericModal({ field_name = "", diff --git a/src/frontend/src/pages/CommunityPage/index.tsx b/src/frontend/src/pages/CommunityPage/index.tsx index 658ddcd18..c5abeb834 100644 --- a/src/frontend/src/pages/CommunityPage/index.tsx +++ b/src/frontend/src/pages/CommunityPage/index.tsx @@ -5,9 +5,9 @@ import { TabsContext } from "../../contexts/tabsContext"; import { useNavigate } from "react-router-dom"; import { CardComponent } from "../../components/cardComponent"; +import IconComponent from "../../components/genericIconComponent"; import { getExamples } from "../../controllers/API"; import { FlowType } from "../../types/flow"; -import IconComponent from "../../components/genericIconComponent"; export default function CommunityPage() { const { flows, setTabId, downloadFlows, uploadFlows, addFlow } = useContext(TabsContext); @@ -40,11 +40,7 @@ export default function CommunityPage() {
- + Community Examples
diff --git a/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx index d6aa0cc75..46c6145d5 100644 --- a/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/DisclosureComponent/index.tsx @@ -1,6 +1,6 @@ import { Disclosure } from "@headlessui/react"; -import { DisclosureComponentType } from "../../../../types/components"; import IconComponent from "../../../../components/genericIconComponent"; +import { DisclosureComponentType } from "../../../../types/components"; export default function DisclosureComponent({ button: { title, Icon, buttons = [] }, diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index 26d9e4ddd..e7a56f74c 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -1,6 +1,7 @@ import { Search } from "lucide-react"; import { useContext, useState } from "react"; import ShadTooltip from "../../../../components/ShadTooltipComponent"; +import IconComponent from "../../../../components/genericIconComponent"; import { Separator } from "../../../../components/ui/separator"; import { alertContext } from "../../../../contexts/alertContext"; import { PopUpContext } from "../../../../contexts/popUpContext"; @@ -16,7 +17,6 @@ import { nodeNames, } from "../../../../utils"; import DisclosureComponent from "../DisclosureComponent"; -import IconComponent from "../../../../components/genericIconComponent"; export default function ExtraSidebar() { const { data } = useContext(typesContext); diff --git a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx index bedabd06a..ece265ef3 100644 --- a/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/nodeToolbarComponent/index.tsx @@ -1,10 +1,10 @@ import { useContext, useState } from "react"; import { useReactFlow } from "reactflow"; import ShadTooltip from "../../../../components/ShadTooltipComponent"; +import IconComponent from "../../../../components/genericIconComponent"; import { TabsContext } from "../../../../contexts/tabsContext"; import EditNodeModal from "../../../../modals/EditNodeModal"; import { classNames } from "../../../../utils"; -import IconComponent from "../../../../components/genericIconComponent"; const NodeToolbarComponent = (props) => { const [nodeLength, setNodeLength] = useState( @@ -36,11 +36,7 @@ const NodeToolbarComponent = (props) => { props.deleteNode(props.data.id); }} > - + @@ -65,11 +61,7 @@ const NodeToolbarComponent = (props) => { ); }} > - + @@ -98,11 +90,7 @@ const NodeToolbarComponent = (props) => { } }} > - + diff --git a/src/frontend/src/pages/MainPage/index.tsx b/src/frontend/src/pages/MainPage/index.tsx index abccea1b1..368e6997a 100644 --- a/src/frontend/src/pages/MainPage/index.tsx +++ b/src/frontend/src/pages/MainPage/index.tsx @@ -1,10 +1,10 @@ import { useContext, useEffect } from "react"; import { Link, useNavigate } from "react-router-dom"; import { CardComponent } from "../../components/cardComponent"; +import IconComponent from "../../components/genericIconComponent"; import { Button } from "../../components/ui/button"; import { USER_PROJECTS_HEADER } from "../../constants"; import { TabsContext } from "../../contexts/tabsContext"; -import IconComponent from "../../components/genericIconComponent"; export default function HomePage() { const { flows, setTabId, downloadFlows, uploadFlows, addFlow, removeFlow } = useContext(TabsContext); @@ -16,11 +16,7 @@ export default function HomePage() {
- + {USER_PROJECTS_HEADER}
diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 2f212ad5c..ab620a368 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -247,7 +247,6 @@ export const nodeIconsLucide = { retrievers: FileSearch, unknown: HelpCircle, - Trash2, X, XCircle, From d0f477e6053e56455863ea1805d4f44391074f87 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 17 Jul 2023 19:31:50 -0300 Subject: [PATCH 43/66] formatting code --- .../components/AccordionComponent/index.tsx | 7 +++++- src/frontend/src/components/ui/accordion.tsx | 2 +- .../modals/formModal/chatMessage/index.tsx | 2 +- src/frontend/src/modals/formModal/index.tsx | 9 ++------ .../src/modals/genericModal/index.tsx | 22 +++++++++++++------ src/frontend/tailwind.config.js | 2 +- 6 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/frontend/src/components/AccordionComponent/index.tsx b/src/frontend/src/components/AccordionComponent/index.tsx index 03d8c0a1d..b7be94f0a 100644 --- a/src/frontend/src/components/AccordionComponent/index.tsx +++ b/src/frontend/src/components/AccordionComponent/index.tsx @@ -34,7 +34,12 @@ export default function AccordionComponent({ return ( <> - + { diff --git a/src/frontend/src/components/ui/accordion.tsx b/src/frontend/src/components/ui/accordion.tsx index 4b5a12384..4ee52db10 100644 --- a/src/frontend/src/components/ui/accordion.tsx +++ b/src/frontend/src/components/ui/accordion.tsx @@ -46,7 +46,7 @@ const AccordionContent = React.forwardRef<
- {Object.keys(tabsState[id.current].formKeysData.input_keys).map( (i, k) => ( -
( -
+
@@ -523,9 +520,7 @@ export default function FormModal({
)}