diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..46c31a07c
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1551 @@
+{
+ "name": "langflow",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "devDependencies": {
+ "@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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/commander": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/cosmiconfig": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
+ "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/dashify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dashify/-/dashify-2.0.0.tgz",
+ "integrity": "sha512-hpA5C/YrPjucXypHPPc0oJ1l9Hf6wWbiOL7Ik42cxnsUOhWiCB/fylKbKqqJalW9FgkNQCw16YO8uW9Hs0Iy1A==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/svgo": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz",
+ "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 000000000..b80f86e35
--- /dev/null
+++ b/package.json
@@ -0,0 +1,5 @@
+{
+ "devDependencies": {
+ "@svgr/cli": "^8.0.1"
+ }
+}
diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx
index a3e3e6357..2d93ca1ac 100644
--- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx
+++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx
@@ -1,10 +1,10 @@
-import { Info } from "lucide-react";
import React, { useContext, useEffect, useRef, useState } from "react";
import { Handle, Position, useUpdateNodeInternals } from "reactflow";
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";
@@ -17,16 +17,20 @@ 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 {
+ cleanEdges,
+ isValidConnection,
+} from "../../../../utils/reactflowUtils";
+import {
+ nodeColors,
+ nodeIconsLucide,
+ nodeNames,
+} from "../../../../utils/styleUtils";
import {
classNames,
getRandomKeyByssmm,
groupByFamily,
- isValidConnection,
- nodeColors,
- nodeIconsLucide,
- nodeNames,
-} from "../../../../utils";
+} from "../../../../utils/utils";
export default function ParameterComponent({
left,
@@ -83,6 +87,7 @@ export default function ParameterComponent({
};
useEffect(() => {
+ if (name === "openai_api_base") console.log(info);
infoHtml.current = (
{info.split("\n").map((line, i) => (
@@ -145,7 +150,6 @@ export default function ParameterComponent({
);
});
}, [tooltipTitle]);
-
return (
{info !== "" && (
-
+ {/* put div to avoid bug that does not display tooltip */}
+
+
+
)}
diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx
index ee62461bd..ba506c855 100644
--- a/src/frontend/src/CustomNodes/GenericNode/index.tsx
+++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx
@@ -1,8 +1,8 @@
-import { Zap } from "lucide-react";
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";
@@ -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 { nodeColors, nodeIconsLucide } from "../../utils/styleUtils";
+import { classNames, toTitleCase } from "../../utils/utils";
import ParameterComponent from "./components/parameterComponent";
export default function GenericNode({
@@ -33,17 +29,12 @@ export default function GenericNode({
// 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 [validationStatus, setValidationStatus] = useState(null);
// State for outline color
const { sseData, isBuilding } = useSSE();
const refHtml = useRef(null);
- // useEffect(() => {
- // if (reactFlowInstance) {
- // setParams(Object.values(reactFlowInstance.toObject()));
- // }
- // }, [save]);
-
// New useEffect to watch for changes in sseData and update validation status
useEffect(() => {
const relevantData = sseData[data.id];
@@ -86,12 +77,10 @@ export default function GenericNode({
>
-
@@ -119,9 +108,9 @@ export default function GenericNode({
) : !validationStatus ? (
Build{" "}
- {" "}
flow to validate status.
@@ -175,25 +164,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
-
*/}
-
+
@@ -62,7 +66,8 @@ export default function SingleAlert({
className="inline-flex rounded-md p-1.5 text-status-red"
>
Dismiss
-
@@ -76,7 +81,11 @@ export default function SingleAlert({
key={dropItem.id}
>
-
+
@@ -108,7 +117,8 @@ export default function SingleAlert({
className="inline-flex rounded-md p-1.5 text-info-foreground"
>
Dismiss
-
@@ -122,7 +132,8 @@ export default function SingleAlert({
key={dropItem.id}
>
-
@@ -145,7 +156,8 @@ export default function SingleAlert({
className="inline-flex rounded-md p-1.5 text-status-green"
>
Dismiss
-
diff --git a/src/frontend/src/alerts/alertDropDown/index.tsx b/src/frontend/src/alerts/alertDropDown/index.tsx
index c14c1806d..a3f69d707 100644
--- a/src/frontend/src/alerts/alertDropDown/index.tsx
+++ b/src/frontend/src/alerts/alertDropDown/index.tsx
@@ -1,5 +1,5 @@
-import { Trash2, X } from "lucide-react";
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";
@@ -36,13 +36,13 @@ export default function AlertDropdown({}: AlertDropdownType) {
setTimeout(clearNotificationList, 100);
}}
>
-
+
diff --git a/src/frontend/src/alerts/error/index.tsx b/src/frontend/src/alerts/error/index.tsx
index 3824c3e87..2b898f58a 100644
--- a/src/frontend/src/alerts/error/index.tsx
+++ b/src/frontend/src/alerts/error/index.tsx
@@ -1,6 +1,6 @@
import { Transition } from "@headlessui/react";
-import { XCircle } from "lucide-react";
import { useEffect, useState } from "react";
+import IconComponent from "../../components/genericIconComponent";
import { ErrorAlertType } from "../../types/alerts";
export default function ErrorAlert({
@@ -44,7 +44,8 @@ export default function ErrorAlert({
>
-
diff --git a/src/frontend/src/alerts/notice/index.tsx b/src/frontend/src/alerts/notice/index.tsx
index c77a4bcd6..494d9d4dc 100644
--- a/src/frontend/src/alerts/notice/index.tsx
+++ b/src/frontend/src/alerts/notice/index.tsx
@@ -1,7 +1,7 @@
import { Transition } from "@headlessui/react";
-import { Info } from "lucide-react";
import { useEffect, useState } from "react";
import { Link } from "react-router-dom";
+import IconComponent from "../../components/genericIconComponent";
import { NoticeAlertType } from "../../types/alerts";
export default function NoticeAlert({
@@ -40,7 +40,11 @@ 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..5cb89b530 100644
--- a/src/frontend/src/alerts/success/index.tsx
+++ b/src/frontend/src/alerts/success/index.tsx
@@ -1,6 +1,6 @@
import { Transition } from "@headlessui/react";
-import { CheckCircle2 } from "lucide-react";
import { useEffect, useState } from "react";
+import IconComponent from "../../components/genericIconComponent";
import { SuccessAlertType } from "../../types/alerts";
export default function SuccessAlert({
@@ -38,7 +38,11 @@ export default function SuccessAlert({
>
-
+
{title}
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 (
- <>
-
- >
- );
-}
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/cardComponent/index.tsx b/src/frontend/src/components/cardComponent/index.tsx
index 285aa91b7..12c409047 100644
--- a/src/frontend/src/components/cardComponent/index.tsx
+++ b/src/frontend/src/components/cardComponent/index.tsx
@@ -1,8 +1,8 @@
-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 IconComponent from "../genericIconComponent";
import {
Card,
CardDescription,
@@ -37,7 +37,10 @@ export const CardComponent = ({
{flow.name}
{onDelete && (
)}
@@ -51,15 +54,7 @@ export const CardComponent = ({
-
- {/*
Agent
-
-
-
-
- OpenAI+
- */}
-
+
{button && button}
diff --git a/src/frontend/src/components/chatComponent/buildTrigger/index.tsx b/src/frontend/src/components/chatComponent/buildTrigger/index.tsx
index 09ab90ff7..4eb69546e 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";
@@ -7,10 +6,11 @@ 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";
+import IconComponent from "../../genericIconComponent";
export default function BuildTrigger({
open,
@@ -190,8 +190,8 @@ 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..cc36425bb 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,14 @@ 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..4f0fc3b17 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,8 +70,8 @@ export default function CodeAreaComponent({
}}
>
{!editNode && (
-
-
@@ -99,7 +100,8 @@ export default function Dropdown({
"dropdown-component-choosal"
)}
>
- ;
+}
diff --git a/src/frontend/src/components/headerComponent/components/menuBar/index.tsx b/src/frontend/src/components/headerComponent/components/menuBar/index.tsx
index b362307e7..84777c5fe 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";
@@ -21,6 +13,7 @@ import { Link, useNavigate } from "react-router-dom";
import { alertContext } from "../../../../contexts/alertContext";
import { undoRedoContext } from "../../../../contexts/undoRedoContext";
import FlowSettingsModal from "../../../../modals/flowSettingsModal";
+import IconComponent from "../../../genericIconComponent";
import { Button } from "../../../ui/button";
export const MenuBar = ({ flows, tabId }) => {
@@ -46,7 +39,7 @@ export const MenuBar = ({ flows, tabId }) => {
return (
-
+
@@ -54,7 +47,7 @@ export const MenuBar = ({ flows, tabId }) => {
@@ -66,7 +59,7 @@ export const MenuBar = ({ flows, tabId }) => {
}}
className="cursor-pointer"
>
-
+
New
{
}}
className="cursor-pointer"
>
-
+
Settings
{
}}
className="cursor-pointer"
>
-
+
Undo
{
}}
className="cursor-pointer"
>
-
+
Redo
- {/* */}
- {/* Projects */}
- {/* {
- setTabId(value);
- }}
- >
- {flows.map((flow, idx) => {
- return (
-
-
- {flow.name}
-
-
- );
- })}
- */}
diff --git a/src/frontend/src/components/headerComponent/index.tsx b/src/frontend/src/components/headerComponent/index.tsx
index 8f8618eff..0a8b39f89 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";
@@ -10,6 +9,7 @@ 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";
@@ -51,7 +51,7 @@ export default function Header() {
variant={location.pathname === "/" ? "primary" : "secondary"}
size="sm"
>
-
+
{USER_PROJECTS_HEADER}
@@ -63,7 +63,7 @@ export default function Header() {
}
size="sm"
>
-
+
Community Examples
@@ -105,9 +105,9 @@ export default function Header() {
}}
>
{dark ? (
-
+
) : (
-
+
)}
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/inputFileComponent/index.tsx b/src/frontend/src/components/inputFileComponent/index.tsx
index 7316566ae..3d4b8000f 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,8 +108,8 @@ export default function InputFileComponent({
) : (
)}
diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx
index 22384c299..62e425614 100644
--- a/src/frontend/src/components/promptComponent/index.tsx
+++ b/src/frontend/src/components/promptComponent/index.tsx
@@ -1,12 +1,12 @@
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 { PopUpContext } from "../../contexts/popUpContext";
import { typesContext } from "../../contexts/typesContext";
import { postValidatePrompt } from "../../controllers/API";
+import GenericModal from "../../modals/genericModal";
+import { TextAreaComponentType } from "../../types/components";
+import IconComponent from "../genericIconComponent";
export default function PromptAreaComponent({
field_name,
@@ -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 (
@@ -106,8 +88,8 @@ export default function PromptAreaComponent({
}}
>
{!editNode && (
-
{!editNode && (
- ,
@@ -20,7 +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 2ad709f48..d68f281fb 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";
+import IconComponent from "../genericIconComponent";
const Dialog = DialogPrimitive.Root;
@@ -51,7 +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 0e5468e6e..c61e09fc1 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 { cn } from "../../utils/utils";
+import IconComponent from "../genericIconComponent";
const DropdownMenu = DropdownMenuPrimitive.Root;
@@ -33,7 +33,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
{...props}
>
{children}
-
+
));
DropdownMenuSubTrigger.displayName =
@@ -106,7 +106,7 @@ const DropdownMenuCheckboxItem = React.forwardRef<
>
-
+
{children}
@@ -129,7 +129,7 @@ const DropdownMenuRadioItem = React.forwardRef<
>
-
+
{children}
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..276f5fc5b 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 { cn } from "../../utils/utils";
+import IconComponent from "../genericIconComponent";
const MenubarMenu = MenubarPrimitive.Menu;
@@ -62,7 +62,7 @@ const MenubarSubTrigger = React.forwardRef<
{...props}
>
{children}
-
+
));
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
@@ -140,7 +140,7 @@ const MenubarCheckboxItem = React.forwardRef<
>
-
+
{children}
@@ -162,7 +162,7 @@ const MenubarRadioItem = React.forwardRef<
>
-
+
{children}
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.tsx b/src/frontend/src/constants.ts
similarity index 87%
rename from src/frontend/src/constants.tsx
rename to src/frontend/src/constants.ts
index 9c167c271..a814c6efb 100644
--- a/src/frontend/src/constants.tsx
+++ b/src/frontend/src/constants.ts
@@ -1,10 +1,87 @@
// 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, buildTweaks } from "./utils";
+import { buildTweaks } from "./utils/reactflowUtils";
+import { buildInputs } from "./utils/utils";
+/**
+ * constants fpr programming languages box on chat form
+ * @constant
+ */
+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",
+ 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
+ */
+export enum TypeModal {
+ TEXT = 1,
+ PROMPT = 2,
+}
/**
* Number maximum of components to scroll on tooltips
* @constant
@@ -17,6 +94,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/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx
index 479131db2..f60b92635 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 { updateIds, updateTemplate } from "../utils/reactflowUtils";
+import { getRandomDescription, getRandomName } from "../utils/utils";
import { alertContext } from "./alertContext";
import { typesContext } from "./typesContext";
@@ -106,53 +102,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) {
diff --git a/src/frontend/src/icons/Airbyte/Airbyte.jsx b/src/frontend/src/icons/Airbyte/Airbyte.jsx
new file mode 100644
index 000000000..a4d660434
--- /dev/null
+++ b/src/frontend/src/icons/Airbyte/Airbyte.jsx
@@ -0,0 +1,23 @@
+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..c5615c062
--- /dev/null
+++ b/src/frontend/src/icons/Anthropic/Anthropic.jsx
@@ -0,0 +1,17 @@
+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..223164ee0
--- /dev/null
+++ b/src/frontend/src/icons/Anthropic/AnthropicBox.jsx
@@ -0,0 +1,18 @@
+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..0aaa35014
--- /dev/null
+++ b/src/frontend/src/icons/AzLogo/AzLogo.jsx
@@ -0,0 +1,17 @@
+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..bf40f0dda
--- /dev/null
+++ b/src/frontend/src/icons/Bing/Bing.jsx
@@ -0,0 +1,94 @@
+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..2aa0660b3
--- /dev/null
+++ b/src/frontend/src/icons/ChromaIcon/Chroma.jsx
@@ -0,0 +1,22 @@
+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..6b78b2b13
--- /dev/null
+++ b/src/frontend/src/icons/Cohere/Cohere.jsx
@@ -0,0 +1,52 @@
+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..e3feab995
--- /dev/null
+++ b/src/frontend/src/icons/Evernote/EvernoteIcon.jsx
@@ -0,0 +1,13 @@
+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..131f11cc0
--- /dev/null
+++ b/src/frontend/src/icons/FacebookMessenger/FacebookMessengerLogo2020.jsx
@@ -0,0 +1,52 @@
+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..151f1b552
--- /dev/null
+++ b/src/frontend/src/icons/GitBook/GitbookSvgrepoCom.jsx
@@ -0,0 +1,12 @@
+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..688796629
--- /dev/null
+++ b/src/frontend/src/icons/Google/Google.jsx
@@ -0,0 +1,28 @@
+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..eab4c7e54
--- /dev/null
+++ b/src/frontend/src/icons/HuggingFace/HfLogo.jsx
@@ -0,0 +1,42 @@
+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..f20ac6062
--- /dev/null
+++ b/src/frontend/src/icons/IFixIt/IfixitSeeklogoCom.jsx
@@ -0,0 +1,15 @@
+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..95f49089d
--- /dev/null
+++ b/src/frontend/src/icons/Meta/MetaIcon.jsx
@@ -0,0 +1,58 @@
+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..f42caaecc
--- /dev/null
+++ b/src/frontend/src/icons/Midjorney/MidjourneyEmblem.jsx
@@ -0,0 +1,13 @@
+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..99cdf326b
--- /dev/null
+++ b/src/frontend/src/icons/MongoDB/MongodbIcon.jsx
@@ -0,0 +1,23 @@
+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..e0ac3e68c
--- /dev/null
+++ b/src/frontend/src/icons/Notion/NotionLogo.jsx
@@ -0,0 +1,22 @@
+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..8a69b7d58
--- /dev/null
+++ b/src/frontend/src/icons/OpenAi/OpenAi.jsx
@@ -0,0 +1,22 @@
+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..033912309
--- /dev/null
+++ b/src/frontend/src/icons/Pinecone/PineconeLogo.jsx
@@ -0,0 +1,133 @@
+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..21c0cc5bc
--- /dev/null
+++ b/src/frontend/src/icons/PowerPoint/PowerPoint.jsx
@@ -0,0 +1,76 @@
+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..0400bca7e
--- /dev/null
+++ b/src/frontend/src/icons/QDrant/QDrant.jsx
@@ -0,0 +1,63 @@
+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..5c55789c9
--- /dev/null
+++ b/src/frontend/src/icons/ReadTheDocs/ReadthedocsioIcon.jsx
@@ -0,0 +1,9 @@
+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..c3f889003
--- /dev/null
+++ b/src/frontend/src/icons/Searx/SearxLogo.jsx
@@ -0,0 +1,151 @@
+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..ff0bb9e04
--- /dev/null
+++ b/src/frontend/src/icons/Serper/Serper.jsx
@@ -0,0 +1,17 @@
+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..11f7bd9cd
--- /dev/null
+++ b/src/frontend/src/icons/Slack/SlackIcon.jsx
@@ -0,0 +1,29 @@
+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/Slack/slack-icon.svg b/src/frontend/src/icons/Slack/slack-icon.svg
index c5f26c10e..cde79af01 100644
--- a/src/frontend/src/icons/Slack/slack-icon.svg
+++ b/src/frontend/src/icons/Slack/slack-icon.svg
@@ -1,6 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/frontend/src/icons/VertexAI/VertexAi.jsx b/src/frontend/src/icons/VertexAI/VertexAi.jsx
new file mode 100644
index 000000000..11fc05909
--- /dev/null
+++ b/src/frontend/src/icons/VertexAI/VertexAi.jsx
@@ -0,0 +1,52 @@
+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..4a4ad1c83
--- /dev/null
+++ b/src/frontend/src/icons/Weaviate/Weaviate.jsx
@@ -0,0 +1,357 @@
+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..7ee7fe810
--- /dev/null
+++ b/src/frontend/src/icons/Wikipedia/Wikipedia.jsx
@@ -0,0 +1,12 @@
+const SvgWikipedia = (props) => (
+
+);
+export default SvgWikipedia;
diff --git a/src/frontend/src/icons/Wikipedia/Wikipedia.svg b/src/frontend/src/icons/Wikipedia/Wikipedia.svg
index aa0cec73f..4fd216dd3 100644
--- a/src/frontend/src/icons/Wikipedia/Wikipedia.svg
+++ b/src/frontend/src/icons/Wikipedia/Wikipedia.svg
@@ -1,424 +1 @@
-
-
-
+
\ No newline at end of file
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..e7651e637
--- /dev/null
+++ b/src/frontend/src/icons/Wolfram/Wolfram.jsx
@@ -0,0 +1,23 @@
+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/Wolfram/wolfram.svg b/src/frontend/src/icons/Wolfram/wolfram.svg
index 105a2c12b..beee25d71 100644
--- a/src/frontend/src/icons/Wolfram/wolfram.svg
+++ b/src/frontend/src/icons/Wolfram/wolfram.svg
@@ -1,250 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/frontend/src/icons/Word/Word.jsx b/src/frontend/src/icons/Word/Word.jsx
new file mode 100644
index 000000000..2f86db92b
--- /dev/null
+++ b/src/frontend/src/icons/Word/Word.jsx
@@ -0,0 +1,77 @@
+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..507ed03fa
--- /dev/null
+++ b/src/frontend/src/icons/hackerNews/YCombinatorLogo.jsx
@@ -0,0 +1,17 @@
+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..b7f1f08b5
--- /dev/null
+++ b/src/frontend/src/icons/supabase/SupabaseIcon.jsx
@@ -0,0 +1,62 @@
+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/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx
index 19b012f13..29a6827b8 100644
--- a/src/frontend/src/modals/ApiModal/index.tsx
+++ b/src/frontend/src/modals/ApiModal/index.tsx
@@ -2,10 +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 { Check, Clipboard } from "lucide-react";
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 { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
import { oneDark } from "react-syntax-highlighter/dist/cjs/styles/prism";
import AccordionComponent from "../../components/AccordionComponent";
@@ -13,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";
@@ -49,10 +48,11 @@ 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 { 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);
@@ -271,7 +271,8 @@ export default function ApiModal({ flow }: { flow: FlowType }) {
Code
-
@@ -377,8 +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/modals/EditNodeModal/index.tsx b/src/frontend/src/modals/EditNodeModal/index.tsx
index 84d85014d..86cd2be0b 100644
--- a/src/frontend/src/modals/EditNodeModal/index.tsx
+++ b/src/frontend/src/modals/EditNodeModal/index.tsx
@@ -1,8 +1,8 @@
-import { Variable } from "lucide-react";
import { useContext, useRef, useState } from "react";
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";
@@ -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/utils";
export default function EditNodeModal({ data }: { data: NodeDataType }) {
const [open, setOpen] = useState(true);
@@ -109,7 +110,10 @@ export default function EditNodeModal({ data }: { data: NodeDataType }) {
{data.node?.description}
-
+
Parameters
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 c61af4ff4..c3f50cd21 100644
--- a/src/frontend/src/modals/NodeModal/index.tsx
+++ b/src/frontend/src/modals/NodeModal/index.tsx
@@ -1,16 +1,12 @@
import { Dialog, Transition } from "@headlessui/react";
-import { X } from "lucide-react";
import { Fragment, useContext, useRef, useState } from "react";
+import IconComponent from "../../components/genericIconComponent";
+import { limitScrollFieldsModal } from "../../constants";
import { PopUpContext } from "../../contexts/popUpContext";
import { typesContext } from "../../contexts/typesContext";
import { NodeDataType } from "../../types/flow";
-import {
- classNames,
- limitScrollFieldsModal,
- nodeColors,
- nodeIconsLucide,
- 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 }) {
@@ -69,7 +65,11 @@ 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..8c82e7477 100644
--- a/src/frontend/src/modals/codeAreaModal/index.tsx
+++ b/src/frontend/src/modals/codeAreaModal/index.tsx
@@ -4,9 +4,9 @@ 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 IconComponent from "../../components/genericIconComponent";
import { Button } from "../../components/ui/button";
import { CODE_PROMPT_DIALOG_SUBTITLE } from "../../constants";
import { alertContext } from "../../contexts/alertContext";
@@ -83,8 +83,8 @@ 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..fbaf75a55 100644
--- a/src/frontend/src/modals/exportModal/index.tsx
+++ b/src/frontend/src/modals/exportModal/index.tsx
@@ -1,6 +1,6 @@
-import { Download } from "lucide-react";
import { useContext, useRef, useState } from "react";
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
+import IconComponent from "../../components/genericIconComponent";
import { Button } from "../../components/ui/button";
import { Checkbox } from "../../components/ui/checkbox";
import {
@@ -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);
@@ -46,8 +46,8 @@ 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..8ce1aba3a 100644
--- a/src/frontend/src/modals/flowSettingsModal/index.tsx
+++ b/src/frontend/src/modals/flowSettingsModal/index.tsx
@@ -1,6 +1,6 @@
-import { Settings2 } from "lucide-react";
import { useContext, useRef, useState } from "react";
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
+import IconComponent from "../../components/genericIconComponent";
import { Button } from "../../components/ui/button";
import {
Dialog,
@@ -51,7 +51,7 @@ 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..63f224e92 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";
+import { classNames } from "../../../utils/utils";
export default function ChatInput({
lockChat,
@@ -77,11 +77,23 @@ export default function ChatInput({
onClick={() => sendMessage()}
>
{lockChat ? (
-
+
) : noInput ? (
-
+
) : (
-
+
)}
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/modals/formModal/chatMessage/index.tsx b/src/frontend/src/modals/formModal/chatMessage/index.tsx
index 953aed530..a2efa8035 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";
@@ -8,9 +7,10 @@ import remarkMath from "remark-math";
import MaleTechnology from "../../../assets/male-technologist.png";
import Robot from "../../../assets/robot.png";
import SanitizedHTMLWrapper from "../../../components/SanitizedHTMLWrapper";
+import IconComponent from "../../../components/genericIconComponent";
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({
@@ -160,7 +160,8 @@ export default function ChatMessage({
}}
>
Display Prompt
-
{
@@ -41,7 +41,10 @@ export default function FileCard({ fileName, content, fileType }) {
className="file-card-modal-image-button "
onClick={handleDownload}
>
-
+
)}
@@ -60,14 +63,17 @@ 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 ff31672f2..0fa9e367e 100644
--- a/src/frontend/src/modals/formModal/index.tsx
+++ b/src/frontend/src/modals/formModal/index.tsx
@@ -1,16 +1,16 @@
-import { Eraser, TerminalSquare, Variable } from "lucide-react";
import { useContext, useEffect, useRef, useState } from "react";
import { alertContext } from "../../contexts/alertContext";
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/utils";
import ChatInput from "./chatInput";
import ChatMessage from "./chatMessage";
import _ from "lodash";
import AccordionComponent from "../../components/AccordionComponent";
+import IconComponent from "../../components/genericIconComponent";
import ToggleShadComponent from "../../components/toggleShadComponent";
import { Badge } from "../../components/ui/badge";
import {
@@ -24,6 +24,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,
@@ -392,7 +393,8 @@ export default function FormModal({
Chat
-
@@ -403,7 +405,10 @@ export default function FormModal({
-
+
Input Variables
@@ -460,7 +465,7 @@ export default function FormModal({
)}