diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 9c05c131ee..47cb9ddc0a 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -217,22 +217,101 @@
}
},
"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==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/highlight": "^7.22.5"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/code-frame/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,
+ "peer": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/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,
+ "peer": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/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,
+ "peer": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/code-frame/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,
+ "peer": true
+ },
+ "node_modules/@babel/code-frame/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,
+ "peer": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/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,
+ "peer": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/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,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"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==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"peer": true,
"engines": {
@@ -240,14 +319,14 @@
}
},
"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==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"engines": {
@@ -344,9 +423,9 @@
}
},
"node_modules/@csstools/css-parser-algorithms": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz",
- "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz",
+ "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==",
"dev": true,
"funding": [
{
@@ -363,13 +442,13 @@
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
- "@csstools/css-tokenizer": "^2.2.0"
+ "@csstools/css-tokenizer": "^2.2.1"
}
},
"node_modules/@csstools/css-tokenizer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz",
- "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz",
+ "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==",
"dev": true,
"funding": [
{
@@ -387,9 +466,9 @@
}
},
"node_modules/@csstools/media-query-list-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.3.tgz",
- "integrity": "sha512-ATul1u+pic4aVpstgueqxEv4MsObEbszAxfTXpx9LHaeD3LAh+wFqdCteyegWmjk0k5rkSCAvIOaJe9U3DD09w==",
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz",
+ "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==",
"dev": true,
"funding": [
{
@@ -406,8 +485,8 @@
"node": "^14 || ^16 || >=18"
},
"peerDependencies": {
- "@csstools/css-parser-algorithms": "^2.3.1",
- "@csstools/css-tokenizer": "^2.2.0"
+ "@csstools/css-parser-algorithms": "^2.3.2",
+ "@csstools/css-tokenizer": "^2.2.1"
}
},
"node_modules/@esbuild/android-arm": {
@@ -1641,9 +1720,9 @@
}
},
"node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz",
+ "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==",
"dev": true,
"peer": true
},
@@ -1667,9 +1746,9 @@
}
},
"node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz",
+ "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==",
"dev": true,
"peer": true
},
@@ -2847,15 +2926,15 @@
}
},
"node_modules/cosmiconfig": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
- "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
"peer": true,
"dependencies": {
- "import-fresh": "^3.2.1",
+ "import-fresh": "^3.3.0",
"js-yaml": "^4.1.0",
- "parse-json": "^5.0.0",
+ "parse-json": "^5.2.0",
"path-type": "^4.0.0"
},
"engines": {
@@ -2863,6 +2942,14 @@
},
"funding": {
"url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/cross-spawn": {
@@ -2900,13 +2987,13 @@
}
},
"node_modules/css-functions-list": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz",
- "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
+ "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
"dev": true,
"peer": true,
"engines": {
- "node": ">=12.22"
+ "node": ">=12 || >=16"
}
},
"node_modules/css-select": {
@@ -4134,22 +4221,23 @@
}
},
"node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
+ "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
"dev": true,
"dependencies": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=12.0.0"
}
},
"node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true
},
"node_modules/form-data": {
@@ -4970,6 +5058,12 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"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",
@@ -5020,6 +5114,15 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
"node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -5039,9 +5142,9 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
- "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
"dev": true,
"peer": true
},
@@ -8468,9 +8571,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
- "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
+ "version": "3.0.16",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
+ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
"dev": true,
"peer": true
},
@@ -8575,25 +8678,25 @@
}
},
"node_modules/stylelint": {
- "version": "15.10.2",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.2.tgz",
- "integrity": "sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg==",
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
+ "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true,
"peer": true,
"dependencies": {
- "@csstools/css-parser-algorithms": "^2.3.0",
- "@csstools/css-tokenizer": "^2.1.1",
- "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0",
+ "@csstools/media-query-list-parser": "^2.1.4",
"@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
"cosmiconfig": "^8.2.0",
- "css-functions-list": "^3.2.0",
+ "css-functions-list": "^3.2.1",
"css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.3.0",
+ "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
@@ -8602,13 +8705,13 @@
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.27.0",
+ "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3",
"meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.25",
+ "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
"postcss-selector-parser": "^6.0.13",
@@ -8675,6 +8778,19 @@
"dev": true,
"peer": true
},
+ "node_modules/stylelint/node_modules/file-entry-cache": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz",
+ "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "flat-cache": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/stylelint/node_modules/postcss-selector-parser": {
"version": "6.0.13",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
@@ -10281,31 +10397,97 @@
}
},
"@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==",
+ "version": "7.22.13",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
+ "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"dev": true,
"peer": true,
"requires": {
- "@babel/highlight": "^7.22.5"
+ "@babel/highlight": "^7.22.13",
+ "chalk": "^2.4.2"
+ },
+ "dependencies": {
+ "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,
+ "peer": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "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,
+ "peer": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "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,
+ "peer": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "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,
+ "peer": true
+ },
+ "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,
+ "peer": true
+ },
+ "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,
+ "peer": true
+ },
+ "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,
+ "peer": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@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==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"peer": true
},
"@babel/highlight": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz",
- "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
+ "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"dev": true,
"peer": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.22.5",
- "chalk": "^2.0.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"dependencies": {
@@ -10383,24 +10565,24 @@
}
},
"@csstools/css-parser-algorithms": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz",
- "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz",
+ "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==",
"dev": true,
"peer": true,
"requires": {}
},
"@csstools/css-tokenizer": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz",
- "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz",
+ "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==",
"dev": true,
"peer": true
},
"@csstools/media-query-list-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.3.tgz",
- "integrity": "sha512-ATul1u+pic4aVpstgueqxEv4MsObEbszAxfTXpx9LHaeD3LAh+wFqdCteyegWmjk0k5rkSCAvIOaJe9U3DD09w==",
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz",
+ "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==",
"dev": true,
"peer": true,
"requires": {}
@@ -11278,9 +11460,9 @@
}
},
"@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.4.tgz",
+ "integrity": "sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==",
"dev": true,
"peer": true
},
@@ -11304,9 +11486,9 @@
}
},
"@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz",
+ "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==",
"dev": true,
"peer": true
},
@@ -12084,15 +12266,15 @@
"dev": true
},
"cosmiconfig": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz",
- "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==",
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
"peer": true,
"requires": {
- "import-fresh": "^3.2.1",
+ "import-fresh": "^3.3.0",
"js-yaml": "^4.1.0",
- "parse-json": "^5.0.0",
+ "parse-json": "^5.2.0",
"path-type": "^4.0.0"
}
},
@@ -12120,9 +12302,9 @@
"requires": {}
},
"css-functions-list": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz",
- "integrity": "sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz",
+ "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==",
"dev": true,
"peer": true
},
@@ -13035,19 +13217,20 @@
}
},
"flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
+ "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
"dev": true,
"requires": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
}
},
"flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "version": "3.2.9",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true
},
"form-data": {
@@ -13646,6 +13829,12 @@
"argparse": "^2.0.1"
}
},
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"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",
@@ -13690,6 +13879,15 @@
"universalify": "^2.0.0"
}
},
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -13703,9 +13901,9 @@
"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
},
"known-css-properties": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
- "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
"dev": true,
"peer": true
},
@@ -16020,9 +16218,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.13",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
- "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==",
+ "version": "3.0.16",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
+ "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
"dev": true,
"peer": true
},
@@ -16103,25 +16301,25 @@
}
},
"stylelint": {
- "version": "15.10.2",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.2.tgz",
- "integrity": "sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg==",
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
+ "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true,
"peer": true,
"requires": {
- "@csstools/css-parser-algorithms": "^2.3.0",
- "@csstools/css-tokenizer": "^2.1.1",
- "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0",
+ "@csstools/media-query-list-parser": "^2.1.4",
"@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
"cosmiconfig": "^8.2.0",
- "css-functions-list": "^3.2.0",
+ "css-functions-list": "^3.2.1",
"css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.3.0",
+ "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
@@ -16130,13 +16328,13 @@
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.27.0",
+ "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3",
"meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.25",
+ "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
"postcss-selector-parser": "^6.0.13",
@@ -16166,6 +16364,16 @@
"dev": true,
"peer": true
},
+ "file-entry-cache": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz",
+ "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "flat-cache": "^3.1.1"
+ }
+ },
"postcss-selector-parser": {
"version": "6.0.13",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index b1f8fca82b..84ff5b90ee 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -13,7 +13,8 @@
"generate-backend-client": "openapi --input ../backend/windmill-api/openapi.yaml --output ./src/lib/gen --useOptions && sed -i '213 i \\ request.referrerPolicy = \"no-referrer\"\n' src/lib/gen/core/request.ts",
"generate-backend-client-mac": "openapi --input ../backend/windmill-api/openapi.yaml --output ./src/lib/gen --useOptions",
"pretest": "tsc --incremental -p tests/tsconfig.json",
- "test": "playwright test --config=tests-out/playwright.config.js"
+ "test": "playwright test --config=tests-out/playwright.config.js",
+ "delele-orphan-components": "sh scripts/delete-orphan-components.sh"
},
"devDependencies": {
"@floating-ui/core": "^1.3.1",
@@ -51,7 +52,6 @@
"style-to-object": "^0.4.1",
"stylelint-config-recommended": "^13.0.0",
"svelte": "^4.0.0",
- "svelte-awesome": "^3.2.1",
"svelte-awesome-color-picker": "^2.4.5",
"svelte-check": "^3.4.3",
"svelte-floating-ui": "^1.5.3",
@@ -88,8 +88,6 @@
"type": "module",
"dependencies": {
"@aws-crypto/sha256-js": "^4.0.0",
- "@fortawesome/free-brands-svg-icons": "^6.2.1",
- "@fortawesome/free-solid-svg-icons": "^6.2.1",
"@leeoniya/ufuzzy": "^1.0.8",
"@popperjs/core": "^2.11.6",
"@redocly/json-to-json-schema": "^0.0.1",
diff --git a/frontend/scripts/delete-orphan-components.sh b/frontend/scripts/delete-orphan-components.sh
new file mode 100644
index 0000000000..0af63fedd3
--- /dev/null
+++ b/frontend/scripts/delete-orphan-components.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+# ANSI color codes
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+NC='\033[0m' # No Color
+
+# get the list of all .svelte files
+svelte_files=$(find src -type f -name "*.svelte")
+
+# Array to hold unused files
+declare -a unused_files
+
+echo -e "${NC}Scanning src folder to find all .svelte files"
+echo -e " ${GREEN}.${NC} means the .svelte is imported in another file"
+echo -e " ${RED}x${NC} means the .svelte is not imported and should likely be removed"
+
+# loop over each svelte file
+for svelte_file in $svelte_files
+do
+ # extract the filename
+ filename=$(basename -- "$svelte_file")
+
+ # skip files starting with '+'
+ if [[ "$filename" == +* ]]
+ then
+ echo -n -e "${GREEN}.${NC}"
+ continue
+ fi
+
+ # search for the filename in all files
+ found=$(grep -rl "$filename" src)
+
+ # if nothing was found, then the file is unused
+ if [[ -z $found ]]
+ then
+ echo -n -e "${RED}x${NC}"
+ unused_files+=("$svelte_file")
+ else
+ echo -n -e "${GREEN}.${NC}"
+ fi
+done
+
+# Print a newline after progress dots
+echo
+echo
+
+# Print unused files
+for file in "${unused_files[@]}"
+do
+ echo -e "${RED}Unused Svelte file: $file${NC}"
+done
+
+# If no unused components found, print the message and exit
+if [ ${#unused_files[@]} -eq 0 ]; then
+ echo -e "${GREEN}No unused components found.${NC}"
+ exit 0
+fi
+
+# Delete files if user confirms
+if [ ${#unused_files[@]} -gt 0 ]; then
+ echo -e -n "${GREEN}Do you want to delete these ${#unused_files[@]} files? (y/n) ${NC}"
+ read answer
+
+ if [ "$answer" != "${answer#[Yy]}" ] ;then
+ for file in "${unused_files[@]}"
+ do
+ rm "$file"
+ echo -e "${RED}Deleted $file${NC}"
+ done
+ fi
+fi
\ No newline at end of file
diff --git a/frontend/src/lib/components/AddUser.svelte b/frontend/src/lib/components/AddUser.svelte
index 3b5d066e8d..2856c06399 100644
--- a/frontend/src/lib/components/AddUser.svelte
+++ b/frontend/src/lib/components/AddUser.svelte
@@ -69,11 +69,8 @@
containerClasses="border rounded-lg shadow-lg p-4 bg-surface"
>
-
-
-
- Add new user
-
+
+ Add new user
diff --git a/frontend/src/lib/components/ArgInput.svelte b/frontend/src/lib/components/ArgInput.svelte
index f2b22d2434..30469e49d3 100644
--- a/frontend/src/lib/components/ArgInput.svelte
+++ b/frontend/src/lib/components/ArgInput.svelte
@@ -1,12 +1,9 @@
-
-
{
- viewOptions = !viewOptions
- }}
->
-
- {text}
-
-
-
-{#if viewOptions}
-
-{/if}
diff --git a/frontend/src/lib/components/CliHelpBox.svelte b/frontend/src/lib/components/CliHelpBox.svelte
index ad24d694fd..dd2cca0d54 100644
--- a/frontend/src/lib/components/CliHelpBox.svelte
+++ b/frontend/src/lib/components/CliHelpBox.svelte
@@ -1,7 +1,7 @@
@@ -9,17 +9,18 @@
CLI quick setup
-
- Install the latest wmill CLI from deno.land:
- Setup the wmill cli for this workspace & remote:
+
+ Install the latest wmill CLI from deno.land:
+
+
+
+
+ Setup the wmill cli for this workspace & remote:
+
+ />
+
Follow the prompts in your terminal
Use the run command above!
diff --git a/frontend/src/lib/components/CollapseLink.svelte b/frontend/src/lib/components/CollapseLink.svelte
index 4c2c5bc2cc..f53349e4ec 100644
--- a/frontend/src/lib/components/CollapseLink.svelte
+++ b/frontend/src/lib/components/CollapseLink.svelte
@@ -1,10 +1,8 @@
@@ -11,11 +10,8 @@
let:close
>
-
-
-
- Use simplified builder
-
+
+ Use simplified builder
diff --git a/frontend/src/lib/components/DBSchemaExplorer.svelte b/frontend/src/lib/components/DBSchemaExplorer.svelte
index 998ab9542c..98ea190087 100644
--- a/frontend/src/lib/components/DBSchemaExplorer.svelte
+++ b/frontend/src/lib/components/DBSchemaExplorer.svelte
@@ -16,7 +16,7 @@
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte'
import { buildClientSchema, getIntrospectionQuery, printSchema } from 'graphql'
import GraphqlSchemaViewer from './GraphqlSchemaViewer.svelte'
- import { faRefresh } from '@fortawesome/free-solid-svg-icons'
+ import { RefreshCcw } from 'lucide-svelte'
export let resourceType: string | undefined
export let resourcePath: string | undefined = undefined
@@ -284,12 +284,13 @@ GROUP BY table_name".replace('{dataset.id}', dataset.id)
Refresh
+ >
+ Refresh
{#if dbSchema.lang !== 'graphql' && (dbSchema.schema?.public || dbSchema.schema?.PUBLIC)}
diff --git a/frontend/src/lib/components/Dev.svelte b/frontend/src/lib/components/Dev.svelte
index 141f61e4fc..9451d324aa 100644
--- a/frontend/src/lib/components/Dev.svelte
+++ b/frontend/src/lib/components/Dev.svelte
@@ -16,7 +16,6 @@
import { inferArgs } from '$lib/infer'
import { userStore, workspaceStore } from '$lib/stores'
import { emptySchema, getModifierKey, sendUserToast } from '$lib/utils'
- import { faPlay } from '@fortawesome/free-solid-svg-icons'
import { Pane, Splitpanes } from 'svelte-splitpanes'
import { onDestroy, onMount, setContext } from 'svelte'
import DarkModeToggle from '$lib/components/sidebar/DarkModeToggle.svelte'
@@ -32,6 +31,7 @@
import type { FlowEditorContext } from './flows/types'
import { dfs } from './flows/dfs'
import { loadSchemaFromModule } from './flows/flowInfers'
+ import { Play } from 'lucide-svelte'
$: token = $page.url.searchParams.get('wm_token') ?? undefined
$: workspace = $page.url.searchParams.get('workspace') ?? undefined
@@ -397,7 +397,7 @@
btnClasses="w-full"
size="xs"
startIcon={{
- icon: faPlay,
+ icon: Play,
classes: 'animate-none'
}}
>
diff --git a/frontend/src/lib/components/Dropdown.svelte b/frontend/src/lib/components/Dropdown.svelte
deleted file mode 100644
index 1a22910311..0000000000
--- a/frontend/src/lib/components/Dropdown.svelte
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
- {#if !$$slots.default}
-
- {:else}
-
- {/if}
-
- {#if dropdownItems}
- {#each computeDropdowns() as item, i}
- {#if item.action}
- {
- if (!item.disabled) {
- close()
- item.action && item.action(event)
- dispatch('click', { item: item?.eventName })
- }
- }}
- class="block w-full whitespace-nowrap hover:drop-shadow-sm hover:bg-surface-hover hover:bg-opacity-30
- px-4 py-2 text-sm text-primary text-left
- {item.disabled ? 'bg-surface-disabled' : ''}
- {item.separatorTop ? 'border-t' : ''} {item.separatorBottom ? 'border-b' : ''} {item.type ==
- 'delete'
- ? 'text-red-500'
- : ''}"
- role="menuitem"
- tabindex="-1"
- id="user-menu-item-{name}-{i}}"
- disabled={item.disabled}
- >
- {#if item.icon}
-
- {/if}
- {item.displayName}
-
- {:else if item.href && !item.disabled}
-
- {#if item.icon}
-
- {/if}
- {item.displayName}
-
- {:else}
-
-
- {/if}
- {/each}
- {/if}
-
diff --git a/frontend/src/lib/components/DropdownV2.svelte b/frontend/src/lib/components/DropdownV2.svelte
index e6098e0280..72afedf099 100644
--- a/frontend/src/lib/components/DropdownV2.svelte
+++ b/frontend/src/lib/components/DropdownV2.svelte
@@ -7,7 +7,7 @@
type Item = {
displayName: string
action?: (e: CustomEvent) => void
- icon: any
+ icon?: any
href?: string
disabled?: boolean
type?: 'action' | 'delete'
@@ -24,7 +24,7 @@
}
-
+
diff --git a/frontend/src/lib/components/DurationMs.svelte b/frontend/src/lib/components/DurationMs.svelte
index f26adbc61a..1f5b199293 100644
--- a/frontend/src/lib/components/DurationMs.svelte
+++ b/frontend/src/lib/components/DurationMs.svelte
@@ -1,20 +1,19 @@
-
-
- Ran in {msToSec(duration_ms)}sFor scripts, this is the time that it took to execute from the time it was picked by a worker,
+
+ Ran in {msToSec(duration_ms)}s
+
+ For scripts, this is the time that it took to execute from the time it was picked by a worker,
to the time the result was stored.
For flows, it is the cumulative time of the execution of each steps. Suspend/sleep/transition times
are not accounted for, and each step's duration in a parallel branch would be added. Hence the time
- here can differ from the time it took for the flow to have a result from start.
+ here can differ from the time it took for the flow to have a result from start.
+
diff --git a/frontend/src/lib/components/EditorBar.svelte b/frontend/src/lib/components/EditorBar.svelte
index 28992c12fb..07c1c21396 100644
--- a/frontend/src/lib/components/EditorBar.svelte
+++ b/frontend/src/lib/components/EditorBar.svelte
@@ -5,16 +5,6 @@
@@ -29,9 +21,9 @@
style="min-height: 150px;"
>
-
-
-
+
+
+
{#if job['success'] != undefined}
Received job: {displayDate(job.created_at ?? '')}
{:else}
@@ -41,68 +33,82 @@
{#if job && 'started_at' in job && job.started_at}
-
-
+
+
+
Started
{job?.started_at}
{/if}
{#if job && job['mem_peak']}
-
-
- Mem peak: {(job['mem_peak'] / 1024).toPrecision(5)}MB
+
+
+ Mem peak: {(job['mem_peak'] / 1024).toPrecision(5)}MB
{/if}
{#if job && job.parent_job}
{#if job.is_flow_step}
-
- Step of flow {job.parent_job}
+
{:else}
-
- Triggered by parent {job.parent_job}
+
{/if}
{:else if job && job.schedule_path}
-
-
Triggered by the schedule: scheduleEditor?.openEdit(job.schedule_path ?? '', job.job_kind == 'flow')}
- >{job.schedule_path}
+
+
+
+ Triggered by the schedule:
+
+ scheduleEditor?.openEdit(job.schedule_path ?? '', job.job_kind == 'flow')}
+ >
+ {job.schedule_path}
+
+
+
{/if}
{#if (job && job.job_kind == 'flow') || job?.job_kind == 'script'}
{@const stem = `/${job?.job_kind}s`}
{@const isScript = job?.job_kind === 'script'}
{@const viewHref = `${stem}/get/${isScript ? job?.script_hash : job?.script_path}`}
-
-
+
{/if}
-
-
+
+
+
+
By {job.created_by}
- {#if job.permissioned_as !== `u/${job.created_by}` && job.permissioned_as != job.created_by}but
- permissioned as {job.permissioned_as}{/if}
+ {#if job.permissioned_as !== `u/${job.created_by}` && job.permissioned_as != job.created_by}
+ but permissioned as {job.permissioned_as}
+ {/if}
- run id:
{job.id}
+ run id:
+
{job.id}
diff --git a/frontend/src/lib/components/FlowPreviewContent.svelte b/frontend/src/lib/components/FlowPreviewContent.svelte
index 1bd657d413..5b43e5713b 100644
--- a/frontend/src/lib/components/FlowPreviewContent.svelte
+++ b/frontend/src/lib/components/FlowPreviewContent.svelte
@@ -8,17 +8,15 @@
type OpenFlow
} from '$lib/gen'
import { workspaceStore } from '$lib/stores'
- import { faClose, faPlay, faRefresh } from '@fortawesome/free-solid-svg-icons'
import { Badge, Button, Drawer, Kbd, Popup } from './common'
import { createEventDispatcher, getContext } from 'svelte'
- import Icon from 'svelte-awesome'
import type { FlowEditorContext } from './flows/types'
import { runFlowPreview } from './flows/utils'
import SchemaForm from './SchemaForm.svelte'
import FlowStatusViewer from '../components/FlowStatusViewer.svelte'
import FlowProgressBar from './flows/FlowProgressBar.svelte'
import CapturePayload from './flows/content/CapturePayload.svelte'
- import { ArrowRight, Loader2 } from 'lucide-svelte'
+ import { ArrowRight, Play, RefreshCw, X } from 'lucide-svelte'
import { emptyString, getModifierKey } from '$lib/utils'
import DrawerContent from './common/drawer/DrawerContent.svelte'
import SavedInputs from './SavedInputs.svelte'
@@ -165,12 +163,14 @@
>
- dispatch('close')}
- class="hover:bg-surface-hover bg-surface-secondary rounded-full w-8 h-8 flex items-center justify-center transition-all"
- >
-
-
+ startIcon={{ icon: X }}
+ iconOnly
+ size="sm"
+ color="light"
+ btnClasses="hover:bg-surface-hover bg-surface-secondaryw-8 h-8 rounded-full p-0"
+ />
{#if isRunning}
@@ -189,8 +189,8 @@
}}
size="sm"
btnClasses="w-full max-w-lg"
+ loading={true}
>
-
Cancel
{:else}
@@ -209,7 +209,7 @@
branch_or_iteration_n: 0
})
}}
- startIcon={{ icon: faPlay }}
+ startIcon={{ icon: Play }}
>
Re-start from
@@ -223,7 +223,7 @@
title={`Re-start this flow from step ${selectedJobStep} (included).`}
variant="border"
color="blue"
- startIcon={{ icon: faRefresh }}
+ startIcon={{ icon: RefreshCw }}
on:click={() => {
runPreview($previewArgs, {
flow_job_id: jobId,
@@ -286,7 +286,7 @@
{/if}
#{($durationStatuses[flowJobIds?.moduleId ?? '']?.iteration_from ?? 0) + j + 1}: {loopJobId}
-
-
{/if}
@@ -603,7 +599,7 @@
{#if node.duration_ms}
-
+
{msToSec(node.duration_ms)} s
{/if}
diff --git a/frontend/src/lib/components/FlowViewer.svelte b/frontend/src/lib/components/FlowViewer.svelte
index c261ac3c91..3cf8fd92e2 100644
--- a/frontend/src/lib/components/FlowViewer.svelte
+++ b/frontend/src/lib/components/FlowViewer.svelte
@@ -1,7 +1,6 @@
-
-
-
{content} copyToClipboard(content)} class="cursor-pointer ml-2"
- >
diff --git a/frontend/src/lib/components/InputTransformSchemaForm.svelte b/frontend/src/lib/components/InputTransformSchemaForm.svelte
index 584b35492f..d8b55d051a 100644
--- a/frontend/src/lib/components/InputTransformSchemaForm.svelte
+++ b/frontend/src/lib/components/InputTransformSchemaForm.svelte
@@ -3,11 +3,11 @@
import { VariableService, type InputTransform } from '$lib/gen'
import { workspaceStore } from '$lib/stores'
import { allTrue } from '$lib/utils'
- import { faPlus } from '@fortawesome/free-solid-svg-icons'
import { Button } from './common'
import InputTransformForm from './InputTransformForm.svelte'
import ItemPicker from './ItemPicker.svelte'
import VariableEditor from './VariableEditor.svelte'
+ import { Plus } from 'lucide-svelte'
export let schema: Schema
export let args: Record
= {}
@@ -105,7 +105,7 @@
variant="border"
color="blue"
size="sm"
- startIcon={{ icon: faPlus }}
+ startIcon={{ icon: Plus }}
on:click={() => {
variableEditor?.initNew?.()
}}
diff --git a/frontend/src/lib/components/InstanceSettings.svelte b/frontend/src/lib/components/InstanceSettings.svelte
index 2affceab24..19ab5a10fe 100644
--- a/frontend/src/lib/components/InstanceSettings.svelte
+++ b/frontend/src/lib/components/InstanceSettings.svelte
@@ -7,7 +7,6 @@
import Tooltip from '$lib/components/Tooltip.svelte'
import { sendUserToast } from '$lib/toast'
import OAuthSetting from '$lib/components/OAuthSetting.svelte'
- import { faPlus } from '@fortawesome/free-solid-svg-icons'
import { deepEqual } from 'fast-equals'
import OktaSetting from './OktaSetting.svelte'
import CloseButton from './common/CloseButton.svelte'
@@ -17,7 +16,7 @@
import { capitalize } from '$lib/utils'
import { enterpriseLicense } from '$lib/stores'
import CustomOauth from './CustomOauth.svelte'
- import { AlertTriangle } from 'lucide-svelte'
+ import { AlertTriangle, Plus } from 'lucide-svelte'
import CustomSso from './CustomSso.svelte'
export let tab: string = 'Core'
@@ -258,7 +257,7 @@
color="blue"
hover="yo"
size="sm"
- endIcon={{ icon: faPlus }}
+ endIcon={{ icon: Plus }}
disabled={clientName == ''}
on:click={() => {
oauths[clientName] = { id: '', secret: '', login_config: {} }
@@ -329,7 +328,7 @@
color="blue"
hover="yo"
size="sm"
- endIcon={{ icon: faPlus }}
+ endIcon={{ icon: Plus }}
disabled={(oauth_name == 'custom' && resourceName == '') ||
(oauth_name == 'custom' && !$enterpriseLicense)}
on:click={() => {
diff --git a/frontend/src/lib/components/InviteUser.svelte b/frontend/src/lib/components/InviteUser.svelte
index e0cbaaec47..c8c450bef7 100644
--- a/frontend/src/lib/components/InviteUser.svelte
+++ b/frontend/src/lib/components/InviteUser.svelte
@@ -66,11 +66,8 @@
-
-
-
- Invite
-
+
+ Invite
diff --git a/frontend/src/lib/components/JobStatus.svelte b/frontend/src/lib/components/JobStatus.svelte
index 0817c321ba..241547cbd9 100644
--- a/frontend/src/lib/components/JobStatus.svelte
+++ b/frontend/src/lib/components/JobStatus.svelte
@@ -1,63 +1,47 @@
{#if job && 'success' in job && job.success}
-
-
+
Success {job.is_skipped ? '(Skipped)' : ''}
{:else if job && 'success' in job}
-
-
- Failed
-
+ Failed
{:else if job && 'running' in job && job.running}
-
-
- Running {#if job.flow_status}({job.flow_status?.step + 1 ?? ''} of {job.raw_flow?.modules
- ?.length ?? '?'}){/if}
+
+ Running
+ {#if job.flow_status}
+ ({job.flow_status?.step + 1 ?? ''} of {job.raw_flow?.modules?.length ?? '?'})
+ {/if}
{:else if job && 'running' in job && 'scheduled_for' in job && job.scheduled_for && forLater(job.scheduled_for)}
-
-
+
Scheduled for {displayDate(job.scheduled_for)}
{:else if job && 'running' in job}
-
-
- Queued
-
+ Queued
{:else}
-
+
{/if}
diff --git a/frontend/src/lib/components/LightweightArgInput.svelte b/frontend/src/lib/components/LightweightArgInput.svelte
index 0f63e88a11..6ff4cefcd1 100644
--- a/frontend/src/lib/components/LightweightArgInput.svelte
+++ b/frontend/src/lib/components/LightweightArgInput.svelte
@@ -1,10 +1,7 @@
@@ -17,9 +16,9 @@
on:click={() => {
scopes = scopes.filter((el) => el != v)
}}
- >
-
-
+ startIcon={{ icon: Minus }}
+ iconOnly
+ />
{/each}
@@ -28,7 +27,7 @@
color="blue"
hover="yo"
size="sm"
- endIcon={{ icon: faPlus }}
+ endIcon={{ icon: Plus }}
on:click={() => {
scopes = scopes.concat('')
}}
diff --git a/frontend/src/lib/components/Path.svelte b/frontend/src/lib/components/Path.svelte
index 0aaf5fd877..b3cec11908 100644
--- a/frontend/src/lib/components/Path.svelte
+++ b/frontend/src/lib/components/Path.svelte
@@ -15,9 +15,7 @@
VariableService
} from '$lib/gen'
import { superadmin, userStore, workspaceStore } from '$lib/stores'
- import { faEye, faPlus } from '@fortawesome/free-solid-svg-icons'
import { createEventDispatcher } from 'svelte'
- import { Icon } from 'svelte-awesome'
import { writable } from 'svelte/store'
import { Button, Drawer, DrawerContent } from './common'
import Badge from './common/badge/Badge.svelte'
@@ -27,7 +25,7 @@
import { random_adj } from './random_positive_adjetive'
import Required from './Required.svelte'
import Tooltip from './Tooltip.svelte'
- import { Folder, User } from 'lucide-svelte'
+ import { Eye, Folder, Plus, User } from 'lucide-svelte'
type PathKind = 'resource' | 'script' | 'variable' | 'flow' | 'schedule' | 'app' | 'raw_app'
let meta: Meta | undefined = undefined
@@ -276,12 +274,7 @@
{#if !folderCreated}
-
+
New folder
@@ -384,9 +377,9 @@
size="xs"
disabled={!meta.owner || meta.owner == ''}
on:click={viewFolder.openDrawer}
- >
-
+ iconOnly
+ startIcon={{ icon: Eye }}
+ />
-
+ iconOnly
+ startIcon={{ icon: Plus }}
+ />
+
{/if}
diff --git a/frontend/src/lib/components/PropertyRow.svelte b/frontend/src/lib/components/PropertyRow.svelte
index 80677d3422..8755063ae8 100644
--- a/frontend/src/lib/components/PropertyRow.svelte
+++ b/frontend/src/lib/components/PropertyRow.svelte
@@ -2,9 +2,9 @@
import Required from './Required.svelte'
import type { PropertyDisplayInfo } from '$lib/common'
import { createEventDispatcher } from 'svelte'
- import { faPen, faTrash } from '@fortawesome/free-solid-svg-icons'
import SchemaEditorProperty from './SchemaEditorProperty.svelte'
import { Button } from './common'
+ import { Pen, Trash } from 'lucide-svelte'
export let displayInfo: PropertyDisplayInfo
export let isAnimated: boolean
@@ -69,7 +69,7 @@
color="light"
variant="border"
size={lightMode ? 'xs' : 'sm'}
- startIcon={{ icon: faPen }}
+ startIcon={{ icon: Pen }}
on:click={() => startEditArgument(displayInfo.name)}
iconOnly={lightMode}
>
@@ -81,7 +81,7 @@
variant="border"
btnClasses="mx-2"
size={lightMode ? 'xs' : 'sm'}
- startIcon={{ icon: faTrash }}
+ startIcon={{ icon: Trash }}
on:click={() => handleDeleteArgument(getArgPath(displayInfo))}
iconOnly={lightMode}
>
diff --git a/frontend/src/lib/components/ResourceEditor.svelte b/frontend/src/lib/components/ResourceEditor.svelte
index 8e1a273d5a..653bc40905 100644
--- a/frontend/src/lib/components/ResourceEditor.svelte
+++ b/frontend/src/lib/components/ResourceEditor.svelte
@@ -8,7 +8,6 @@
import Required from './Required.svelte'
import { userStore, workspaceStore } from '$lib/stores'
- import { faSave } from '@fortawesome/free-solid-svg-icons'
import autosize from 'svelte-autosize'
import DrawerContent from './common/drawer/DrawerContent.svelte'
import SchemaForm from './SchemaForm.svelte'
@@ -16,6 +15,7 @@
import Toggle from './Toggle.svelte'
import { sendUserToast } from '$lib/toast'
import TestConnection from './TestConnection.svelte'
+ import { Save } from 'lucide-svelte'
let path = ''
let initialPath = ''
@@ -207,7 +207,7 @@
diff --git a/frontend/src/lib/components/ResourcePicker.svelte b/frontend/src/lib/components/ResourcePicker.svelte
index 748ae09768..0633610d1f 100644
--- a/frontend/src/lib/components/ResourcePicker.svelte
+++ b/frontend/src/lib/components/ResourcePicker.svelte
@@ -1,9 +1,7 @@
-
-
- {#if accordion}
- (showContent = !showContent)}
- >
-
-
-
-
- {title}
- {#if tooltip}
-
- {tooltip}
-
- {/if}
-
-
- {:else}
-
- {title}
- {#if tooltip}
-
- {tooltip}
-
- {/if}
-
- {/if}
-
-{#if showContent}
-
-
-
-{/if}
diff --git a/frontend/src/lib/components/Slider.svelte b/frontend/src/lib/components/Slider.svelte
index 9b241fd01a..c2ca0abbdd 100644
--- a/frontend/src/lib/components/Slider.svelte
+++ b/frontend/src/lib/components/Slider.svelte
@@ -1,8 +1,9 @@
- (view = !view)} {size} variant="border"
+ (view = !view)}
+ {size}
+ variant="border"
+ endIcon={{
+ icon: ChevronDown,
+ classes: twMerge('duration-300 ', view ? 'rotate-180' : 'rotate-0')
+ }}
>{text}
{#if tooltip}
{tooltip}
{/if}
- {#if !view} {:else} {/if}
+
{#if view}
{/if}
diff --git a/frontend/src/lib/components/UserSettings.svelte b/frontend/src/lib/components/UserSettings.svelte
index 88672ccc41..6267d38693 100644
--- a/frontend/src/lib/components/UserSettings.svelte
+++ b/frontend/src/lib/components/UserSettings.svelte
@@ -3,10 +3,17 @@
import type { TruncatedToken, NewToken } from '$lib/gen'
import { UserService } from '$lib/gen'
import { displayDate, copyToClipboard } from '$lib/utils'
- import { faClipboard, faPlus } from '@fortawesome/free-solid-svg-icons'
import TableCustom from '$lib/components/TableCustom.svelte'
import { Button } from '$lib/components/common'
- import Icon from 'svelte-awesome'
+ import Drawer from '$lib/components/common/drawer/Drawer.svelte'
+ import DrawerContent from '$lib/components/common/drawer/DrawerContent.svelte'
+ import { page } from '$app/stores'
+ import { goto } from '$app/navigation'
+ import { sendUserToast } from '$lib/toast'
+ import Tooltip from './Tooltip.svelte'
+ import Version from './Version.svelte'
+ import { Clipboard, Plus } from 'lucide-svelte'
+ import DarkModeToggle from './sidebar/DarkModeToggle.svelte'
export let scopes: string[] | undefined = undefined
@@ -18,16 +25,6 @@
let newTokenExpiration: number | undefined
let displayCreateToken = scopes != undefined
let login_type = 'none'
-
- import Drawer from '$lib/components/common/drawer/Drawer.svelte'
- import DrawerContent from '$lib/components/common/drawer/DrawerContent.svelte'
- import { page } from '$app/stores'
- import { goto } from '$app/navigation'
- import { sendUserToast } from '$lib/toast'
- import Tooltip from './Tooltip.svelte'
- import Version from './Version.svelte'
- import DarkModeToggle from './sidebar/DarkModeToggle.svelte'
-
let drawer: Drawer
export function openDrawer() {
@@ -152,7 +149,7 @@
{
displayCreateToken = !displayCreateToken
@@ -176,8 +173,9 @@
: 'hidden'} border rounded-md mb-6 px-2 py-2 bg-green-50 dark:bg-green-200 dark:text-green-800 flex flex-row flex-wrap"
>
- Added token: copyToClipboard(newToken ?? '')} class="inline"
- >{newToken}
+ Added token: copyToClipboard(newToken ?? '')} class="inline">
+ {newToken}
+
diff --git a/frontend/src/lib/components/VariableEditor.svelte b/frontend/src/lib/components/VariableEditor.svelte
index f4cd46ed57..924171e2b8 100644
--- a/frontend/src/lib/components/VariableEditor.svelte
+++ b/frontend/src/lib/components/VariableEditor.svelte
@@ -10,13 +10,13 @@
import Alert from './common/alert/Alert.svelte'
import autosize from 'svelte-autosize'
import Toggle from './Toggle.svelte'
- import { faSave } from '@fortawesome/free-solid-svg-icons'
import SimpleEditor from './SimpleEditor.svelte'
import { sendUserToast } from '$lib/toast'
import { canWrite, isOwner } from '$lib/utils'
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte'
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte'
import Section from './Section.svelte'
+ import { Save } from 'lucide-svelte'
const dispatch = createEventDispatcher()
@@ -234,7 +234,7 @@
(edit ? updateVariable() : createVariable())}
disabled={!can_write || !valid || pathError != ''}
- startIcon={{ icon: faSave }}
+ startIcon={{ icon: Save }}
color="dark"
size="sm"
>
diff --git a/frontend/src/lib/components/WorkspaceGroup.svelte b/frontend/src/lib/components/WorkspaceGroup.svelte
index be711080bd..915c459a67 100644
--- a/frontend/src/lib/components/WorkspaceGroup.svelte
+++ b/frontend/src/lib/components/WorkspaceGroup.svelte
@@ -395,9 +395,9 @@
drawer.openDrawer()
}}
>
- {config == undefined ? 'create' : 'edit'} config
+
+ {config == undefined ? 'create' : 'edit'} config
+
{#if config}
diff --git a/frontend/src/lib/components/apps/components/buttons/AppForm.svelte b/frontend/src/lib/components/apps/components/buttons/AppForm.svelte
index 661961c734..b4e3b575be 100644
--- a/frontend/src/lib/components/apps/components/buttons/AppForm.svelte
+++ b/frontend/src/lib/components/apps/components/buttons/AppForm.svelte
@@ -1,8 +1,6 @@
-
-{#if shouldWrap && $mode !== 'preview'}
-
-
-
-{:else}
-
-{/if}
diff --git a/frontend/src/lib/components/apps/editor/AppEditor.svelte b/frontend/src/lib/components/apps/editor/AppEditor.svelte
index 9493091160..a9172fc1b0 100644
--- a/frontend/src/lib/components/apps/editor/AppEditor.svelte
+++ b/frontend/src/lib/components/apps/editor/AppEditor.svelte
@@ -24,7 +24,6 @@
import Tabs from '$lib/components/common/tabs/Tabs.svelte'
import { userStore, workspaceStore } from '$lib/stores'
import { classNames, encodeState } from '$lib/utils'
- import { faPlus } from '@fortawesome/free-solid-svg-icons'
import AppPreview from './AppPreview.svelte'
import ComponentList from './componentsPanel/ComponentList.svelte'
import ContextPanel from './contextPanel/ContextPanel.svelte'
@@ -730,7 +729,7 @@
variant="border"
color="blue"
size="sm"
- startIcon={{ icon: faPlus }}
+ startIcon={{ icon: Plus }}
on:click={() => {
variableEditor?.initNew?.()
}}
diff --git a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte
index a7b8c81980..ede3ff1d86 100644
--- a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte
+++ b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte
@@ -23,11 +23,11 @@
import { AppService, DraftService, Job, Policy } from '$lib/gen'
import { redo, undo } from '$lib/history'
import { enterpriseLicense, workspaceStore } from '$lib/stores'
- import { faClipboard, faSave } from '@fortawesome/free-solid-svg-icons'
import {
AlignHorizontalSpaceAround,
BellOff,
Bug,
+ Clipboard,
DiffIcon,
Expand,
FileJson,
@@ -38,10 +38,10 @@
Loader2,
MoreVertical,
RefreshCw,
+ Save,
Smartphone
} from 'lucide-svelte'
import { getContext } from 'svelte'
- import { Icon } from 'svelte-awesome'
import { Pane, Splitpanes } from 'svelte-splitpanes'
import {
classNames,
@@ -607,7 +607,7 @@
saveInitialDraft()}
>
@@ -694,7 +694,7 @@
{
if (appPath == '') {
@@ -755,7 +755,7 @@
>
{url}
-
+
@@ -1130,16 +1130,16 @@
saveDraft()}
- disabled={$page.params.path !== undefined && !savedApp}
size="xs"
+ disabled={$page.params.path !== undefined && !savedApp}
>
Save draft Ctrl S
Copy content
diff --git a/frontend/src/lib/components/apps/editor/AppJsonEditor.svelte b/frontend/src/lib/components/apps/editor/AppJsonEditor.svelte
index 55498cef44..f3b9b32e2c 100644
--- a/frontend/src/lib/components/apps/editor/AppJsonEditor.svelte
+++ b/frontend/src/lib/components/apps/editor/AppJsonEditor.svelte
@@ -2,14 +2,13 @@
import { Badge, Button } from '$lib/components/common'
import Drawer from '$lib/components/common/drawer/Drawer.svelte'
import DrawerContent from '$lib/components/common/drawer/DrawerContent.svelte'
- import { faSave } from '@fortawesome/free-solid-svg-icons'
import JsonEditor from './settingsPanel/inputEditor/JsonEditor.svelte'
import { AppService, DraftService } from '$lib/gen'
import { sendUserToast } from '$lib/toast'
import { workspaceStore } from '$lib/stores'
import { createEventDispatcher } from 'svelte'
- import { Loader2 } from 'lucide-svelte'
+ import { Loader2, Save } from 'lucide-svelte'
let jsonViewerDrawer: Drawer
@@ -80,9 +79,9 @@
{/if}
- Save as draft
+ Save as draft
- Deploy
+ Deploy
diff --git a/frontend/src/lib/components/apps/editor/componentsPanel/CssSettings.svelte b/frontend/src/lib/components/apps/editor/componentsPanel/CssSettings.svelte
index d0c11d7174..2112cd023e 100644
--- a/frontend/src/lib/components/apps/editor/componentsPanel/CssSettings.svelte
+++ b/frontend/src/lib/components/apps/editor/componentsPanel/CssSettings.svelte
@@ -95,11 +95,9 @@
css: theme
}
}}
+ startIcon={{ icon: GitBranch }}
>
-
-
- Fork theme to edit
-
+ Fork theme to edit
diff --git a/frontend/src/lib/components/apps/editor/componentsPanel/ThemeList.svelte b/frontend/src/lib/components/apps/editor/componentsPanel/ThemeList.svelte
index cdca18cb75..1bd6f05d06 100644
--- a/frontend/src/lib/components/apps/editor/componentsPanel/ThemeList.svelte
+++ b/frontend/src/lib/components/apps/editor/componentsPanel/ThemeList.svelte
@@ -120,11 +120,9 @@
previewTheme.set(undefined)
previewThemePath = undefined
}}
+ startIcon={{ icon: EyeOff }}
>
-
-
- Clear preview
-
+ Clear preview
{/if}
diff --git a/frontend/src/lib/components/apps/editor/componentsPanel/ThemeRow.svelte b/frontend/src/lib/components/apps/editor/componentsPanel/ThemeRow.svelte
index bbc6d36c8f..6ef2047531 100644
--- a/frontend/src/lib/components/apps/editor/componentsPanel/ThemeRow.svelte
+++ b/frontend/src/lib/components/apps/editor/componentsPanel/ThemeRow.svelte
@@ -148,19 +148,18 @@
{/if}
{#if type === 'inlined'}
- toggleUpdate(row)}>
-
-
- Update
-
+ toggleUpdate(row)}
+ startIcon={{ icon: Save }}
+ >
+ Update
{/if}
{#if $app?.theme?.type !== 'path' || $app.theme.path !== row.path}
-
-
-
- Preview
-
+
+ Preview
Apply
{/if}
diff --git a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte
index 107e23bd8e..dd2b3ddafb 100644
--- a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte
+++ b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte
@@ -10,8 +10,7 @@
import { emptySchema } from '$lib/utils'
import { getScriptByPath } from '$lib/scripts'
- import { faCodeBranch } from '@fortawesome/free-solid-svg-icons'
- import { Building, Globe2 } from 'lucide-svelte'
+ import { Building, GitFork, Globe2 } from 'lucide-svelte'
import { createEventDispatcher, getContext } from 'svelte'
import { fly } from 'svelte/transition'
import type { AppViewerContext } from '../../types'
@@ -172,7 +171,7 @@
size="xs"
variant="border"
color="blue"
- startIcon={{ icon: faCodeBranch }}
+ startIcon={{ icon: GitFork }}
btnClasses="truncate"
>
Fork a script
diff --git a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte
index da0dc828c1..c6effaeb6c 100644
--- a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte
+++ b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte
@@ -2,8 +2,8 @@
import { Button, Drawer, DrawerContent } from '$lib/components/common'
import type Editor from '$lib/components/Editor.svelte'
import ScriptEditor from '$lib/components/ScriptEditor.svelte'
- import { faSave } from '@fortawesome/free-solid-svg-icons'
import type { InlineScript } from '../../types'
+ import { Save } from 'lucide-svelte'
let scriptEditorDrawer: Drawer
export let inlineScript: InlineScript
@@ -37,7 +37,7 @@
/>
{/if}
- Automatically Saved
+ Automatically Saved
diff --git a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte
index 121f9b8342..a58336e829 100644
--- a/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte
+++ b/frontend/src/lib/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte
@@ -11,14 +11,6 @@
StaticAppInput,
UserAppInput
} from '../../inputType'
- import {
- faCodeBranch,
- faExternalLinkAlt,
- faEye,
- faPen,
- faRefresh,
- faTrashAlt
- } from '@fortawesome/free-solid-svg-icons'
import type { AppViewerContext } from '../../types'
import { workspaceStore } from '$lib/stores'
import { createEventDispatcher } from 'svelte'
@@ -29,6 +21,7 @@
import { getScriptByPath } from '$lib/scripts'
import { sendUserToast } from '$lib/toast'
import { autoPlacement } from '@floating-ui/core'
+ import { ExternalLink, Eye, GitFork, Pen, RefreshCw, Trash } from 'lucide-svelte'
export let runnable: RunnableByPath
export let fields: Record
@@ -115,7 +108,7 @@
{
sendUserToast('Refreshing inputs')
refresh(runnable)
@@ -129,7 +122,7 @@
size="xs"
variant="border"
color="red"
- startIcon={{ icon: faTrashAlt }}
+ startIcon={{ icon: Trash }}
on:click={() => {
dispatch('delete')
}}
@@ -140,7 +133,7 @@
{
flowPath = runnable.path
drawerFlowViewer.openDrawer()
@@ -151,16 +144,16 @@
Edit
@@ -170,7 +163,7 @@
{
fork(runnable.path)
}}
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte
index 8bb44e2e4e..d14822b67b 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte
@@ -1,7 +1,6 @@
-
- {
- dispatch('pick', { path, summary })
- }}
- itemName="Flow"
- extraField="summary"
- {loadItems}
-/>
-
- itemPicker.openDrawer()}
- btnClasses="w-24 truncate"
- size="sm"
- spacingSize="md"
- variant="border"
- color="light"
->
-
-
-
- Flow
-
-
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/PickInlineScript.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/PickInlineScript.svelte
deleted file mode 100644
index 7d4548a61f..0000000000
--- a/frontend/src/lib/components/apps/editor/settingsPanel/PickInlineScript.svelte
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- {
- dispatch('pick', { path, summary })
- }}
- itemName={'Script'}
- extraField="summary"
- noItemMessage={`There are no inline scripts.
- Click 'Add script ' on the left panel to create one.`}
- {loadItems}
-/>
-
- itemPicker?.openDrawer()}
- btnClasses="w-24 truncate"
- size="sm"
- spacingSize="md"
- variant="border"
- color="light"
->
-
-
- Pick
-
-
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/QuickAddColumn.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/QuickAddColumn.svelte
index 4be14e6cd8..103e2754cc 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/QuickAddColumn.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/QuickAddColumn.svelte
@@ -53,11 +53,14 @@
{#each remainingColumns as column}
-
dispatch('add', column)} size="xs2" color="light" variant="border">
-
+ dispatch('add', column)}
+ size="xs2"
+ color="light"
+ variant="border"
+ startIcon={{ icon: Plus }}
+ >
+ {column}
{/each}
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte
index ff5efeba46..8a27941fed 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/TableActions.svelte
@@ -3,14 +3,12 @@
import Button from '$lib/components/common/button/Button.svelte'
import { getNextId } from '$lib/components/flows/idUtils'
import { classNames } from '$lib/utils'
- import { faTrashAlt } from '@fortawesome/free-solid-svg-icons'
import { getContext } from 'svelte'
- import { Icon } from 'svelte-awesome'
import type { AppViewerContext, BaseAppComponent } from '../../types'
import { appComponentFromType } from '../appUtils'
import type { ButtonComponent, CheckboxComponent, SelectComponent } from '../component'
import PanelSection from './common/PanelSection.svelte'
- import { Inspect, List, ToggleRightIcon } from 'lucide-svelte'
+ import { Inspect, List, ToggleRightIcon, Trash } from 'lucide-svelte'
export let components: (BaseAppComponent &
(ButtonComponent | CheckboxComponent | SelectComponent))[]
@@ -71,9 +69,13 @@
{/if}
- deleteComponent(component.id)}>
-
-
+ deleteComponent(component.id)}
+ startIcon={{ icon: Trash }}
+ iconOnly
+ />
{/each}
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte
index 88c4346e29..180a80e324 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/ConnectedInputEditor.svelte
@@ -1,10 +1,9 @@
-
-
diff --git a/frontend/src/lib/components/common/CloseButton.svelte b/frontend/src/lib/components/common/CloseButton.svelte
index 1219e93a41..3bde7c4fa9 100644
--- a/frontend/src/lib/components/common/CloseButton.svelte
+++ b/frontend/src/lib/components/common/CloseButton.svelte
@@ -1,18 +1,21 @@
-
dispatch('close')}
- class="hover:bg-surface-hover {noBg
- ? ''
- : 'bg-surface-secondary'} rounded-full w-8 h-8 flex items-center justify-center transition-all"
->
-
-
+ startIcon={{ icon: X }}
+ iconOnly
+ size="sm"
+ color="light"
+ btnClasses={twMerge(
+ 'hover:bg-surface-hover w-8 h-8 rounded-full p-0',
+ noBg ? '' : 'bg-surface-secondary'
+ )}
+/>
diff --git a/frontend/src/lib/components/common/alert/Alert.svelte b/frontend/src/lib/components/common/alert/Alert.svelte
index 10cd822c98..f8481c9bf4 100644
--- a/frontend/src/lib/components/common/alert/Alert.svelte
+++ b/frontend/src/lib/components/common/alert/Alert.svelte
@@ -1,14 +1,8 @@
@@ -71,15 +65,17 @@
class:hidden
class:capitalize
>
- {#if iconProps.data && iconProps.position === 'left'}
-
+ {#if icon?.icon && icon.position === 'left'}
+
{/if}
- {#if iconProps.data && iconProps.position === 'right'}
-
+ {#if icon?.icon && icon.position === 'right'}
+
{/if}
{#if dismissable}
-
+
+
+
{/if}
diff --git a/frontend/src/lib/components/common/badge/model.ts b/frontend/src/lib/components/common/badge/model.ts
index 1b52d2feb3..f7b23a4d52 100644
--- a/frontend/src/lib/components/common/badge/model.ts
+++ b/frontend/src/lib/components/common/badge/model.ts
@@ -1,9 +1,8 @@
-import type { IconProps } from 'svelte-awesome/components/Icon.svelte'
-
type BaseColor = 'blue' | 'gray' | 'red' | 'green' | 'yellow' | 'indigo'
export const ColorModifier = 'dark-'
export type BadgeColor = BaseColor | `${typeof ColorModifier}${BaseColor}`
-export interface BadgeIconProps extends IconProps {
+export interface BadgeIconProps {
position?: 'left' | 'right'
+ icon: any
}
diff --git a/frontend/src/lib/components/common/button/Button.svelte b/frontend/src/lib/components/common/button/Button.svelte
index ceb44644fd..9b6cf94b0b 100644
--- a/frontend/src/lib/components/common/button/Button.svelte
+++ b/frontend/src/lib/components/common/button/Button.svelte
@@ -1,6 +1,5 @@
{#if loading}
- {:else if startIcon}
-
+ {:else if startIcon?.icon}
+
{/if}
{#if !iconOnly}
{/if}
- {#if endIcon}
-
+ {#if endIcon?.icon}
+
{/if}
{:else}
@@ -189,15 +195,15 @@
>
{#if loading}
- {:else if startIcon}
-
+ {:else if startIcon?.icon}
+
{/if}
{#if !iconOnly}
{/if}
- {#if endIcon}
-
+ {#if endIcon?.icon}
+
{/if}
{/if}
@@ -216,7 +222,7 @@
)}
>
{#if item.icon}
-
+
{/if}
{item.label}
diff --git a/frontend/src/lib/components/common/button/model.ts b/frontend/src/lib/components/common/button/model.ts
index 9154b01d88..b9bea721bb 100644
--- a/frontend/src/lib/components/common/button/model.ts
+++ b/frontend/src/lib/components/common/button/model.ts
@@ -7,8 +7,9 @@ export namespace ButtonType {
export type Target = '_self' | '_blank'
export type Element = HTMLButtonElement | HTMLAnchorElement
export interface Icon {
- icon: any
+ icon?: any | undefined
classes?: string
+ faIcon?: any | undefined
}
export const FontSizeClasses: Record
= {
diff --git a/frontend/src/lib/components/common/confirmationModal/ConfirmationModal.svelte b/frontend/src/lib/components/common/confirmationModal/ConfirmationModal.svelte
index 7909f908cf..fe8ee7f594 100644
--- a/frontend/src/lib/components/common/confirmationModal/ConfirmationModal.svelte
+++ b/frontend/src/lib/components/common/confirmationModal/ConfirmationModal.svelte
@@ -1,11 +1,10 @@
+
diff --git a/frontend/src/lib/components/common/menu/MenuWrapper.svelte b/frontend/src/lib/components/common/menu/MenuWrapper.svelte
deleted file mode 100644
index b8df2d9bd9..0000000000
--- a/frontend/src/lib/components/common/menu/MenuWrapper.svelte
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/lib/components/common/menu/ResolveOpen.svelte b/frontend/src/lib/components/common/menu/ResolveOpen.svelte
new file mode 100644
index 0000000000..a0c356783a
--- /dev/null
+++ b/frontend/src/lib/components/common/menu/ResolveOpen.svelte
@@ -0,0 +1,14 @@
+
diff --git a/frontend/src/lib/components/common/table/AppRow.svelte b/frontend/src/lib/components/common/table/AppRow.svelte
index 80953528b6..7c51bfec70 100644
--- a/frontend/src/lib/components/common/table/AppRow.svelte
+++ b/frontend/src/lib/components/common/table/AppRow.svelte
@@ -1,25 +1,28 @@
-{title}
+{#if title !== undefined}
+ {title}
+{/if}
import { Tabs, Tab, TabContent, Button } from '$lib/components/common'
import { copyToClipboard } from '$lib/utils'
- import { faClipboard } from '@fortawesome/free-solid-svg-icons'
- import { CalendarCheck2, Terminal, Webhook } from 'lucide-svelte'
+ import { CalendarCheck2, Clipboard, Terminal, Webhook } from 'lucide-svelte'
import { Highlight } from 'svelte-highlight'
import json from 'svelte-highlight/languages/json'
import { Pane, Splitpanes } from 'svelte-splitpanes'
@@ -89,7 +88,7 @@
color="light"
variant="border"
size="xs"
- startIcon={{ icon: faClipboard }}
+ startIcon={{ icon: Clipboard }}
btnClasses="absolute top-2 right-2 w-min"
>
Copy content
diff --git a/frontend/src/lib/components/details/ErrorHandlerToggleButton.svelte b/frontend/src/lib/components/details/ErrorHandlerToggleButton.svelte
index 6b8b139f8f..575424e6a9 100644
--- a/frontend/src/lib/components/details/ErrorHandlerToggleButton.svelte
+++ b/frontend/src/lib/components/details/ErrorHandlerToggleButton.svelte
@@ -55,21 +55,23 @@
size="xs"
on:click={toggleErrorHandler}
color="light"
+ startIcon={{
+ icon: errorHandlerMuted === undefined || !errorHandlerMuted ? Bell : BellOff
+ }}
+ {iconOnly}
>
{#if errorHandlerMuted === undefined || !errorHandlerMuted}
{#if !iconOnly}
Mute
{/if}
-
{:else}
{#if !iconOnly}
Unmute
{/if}
-
{/if}
+
Disable workspace error handler, EE only
-
Disable workspace error handler, EE only
diff --git a/frontend/src/lib/components/flows/CreateActionsApp.svelte b/frontend/src/lib/components/flows/CreateActionsApp.svelte
index a35c449dd4..71811ecded 100644
--- a/frontend/src/lib/components/flows/CreateActionsApp.svelte
+++ b/frontend/src/lib/components/flows/CreateActionsApp.svelte
@@ -1,12 +1,11 @@
-
-
-
+ {
opened = !opened
}}
+ color="light"
+ size="xs2"
+ endIcon={{ icon: ChevronDown, classes: `rotate-0 duration-300 ${opened ? '!rotate-180' : ''}` }}
>
Help
-
-
+
{#if opened}
diff --git a/frontend/src/lib/components/flows/content/FlowBranchesOneWrapper.svelte b/frontend/src/lib/components/flows/content/FlowBranchesOneWrapper.svelte
index f2a1fb2c67..fd2fc22290 100644
--- a/frontend/src/lib/components/flows/content/FlowBranchesOneWrapper.svelte
+++ b/frontend/src/lib/components/flows/content/FlowBranchesOneWrapper.svelte
@@ -29,7 +29,7 @@
-
+
The result of this step is the result of the branch.
diff --git a/frontend/src/lib/components/flows/content/FlowModuleHeader.svelte b/frontend/src/lib/components/flows/content/FlowModuleHeader.svelte
index f1172f160d..80ec0edb8f 100644
--- a/frontend/src/lib/components/flows/content/FlowModuleHeader.svelte
+++ b/frontend/src/lib/components/flows/content/FlowModuleHeader.svelte
@@ -1,9 +1,19 @@
-
-
{
- open = false
- dispatch('canceled')
- }}
- on:confirmed={() => {
- open = false
- dispatch('confirmed')
- }}
->
-
-
Are you sure you want to remove this step?
-
-
- You can press
- SHIFT
- while removing a step to bypass confirmation.
-
-
-
-
diff --git a/frontend/src/lib/components/flows/content/ScriptEditorDrawer.svelte b/frontend/src/lib/components/flows/content/ScriptEditorDrawer.svelte
index f2753e9807..0a9d012d4a 100644
--- a/frontend/src/lib/components/flows/content/ScriptEditorDrawer.svelte
+++ b/frontend/src/lib/components/flows/content/ScriptEditorDrawer.svelte
@@ -6,15 +6,14 @@
import { ScriptService, type Preview, Script } from '$lib/gen'
import { inferArgs } from '$lib/infer'
import { workspaceStore } from '$lib/stores'
+ import { Loader2, Save, DiffIcon } from 'lucide-svelte'
import {
cleanValueProperties,
emptySchema,
orderedJsonStringify,
sendUserToast
} from '$lib/utils'
- import { faSave } from '@fortawesome/free-solid-svg-icons'
import { cloneDeep } from 'lodash'
- import { DiffIcon, Loader2 } from 'lucide-svelte'
import { createEventDispatcher } from 'svelte'
import { fade } from 'svelte/transition'
@@ -247,8 +246,10 @@
scriptEditorDrawer.closeDrawer()
}}
disabled={!script}
- startIcon={{ icon: faSave }}>Save
+ Save
+
diff --git a/frontend/src/lib/components/flows/header/FlowImportExportMenu.svelte b/frontend/src/lib/components/flows/header/FlowImportExportMenu.svelte
index 6e6b12a87b..305e449500 100644
--- a/frontend/src/lib/components/flows/header/FlowImportExportMenu.svelte
+++ b/frontend/src/lib/components/flows/header/FlowImportExportMenu.svelte
@@ -1,15 +1,12 @@
-
-
($selectedId = 'inputs')}
- selected={$selectedId === 'inputs'}
- bold
- label="Flow Input"
- id={'flow_input'}
->
-
-
-
-
diff --git a/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte b/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte
index bb7885dd79..237aeeacfa 100644
--- a/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte
+++ b/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte
@@ -50,7 +50,7 @@
style="width: 275px; height: 34px; background-color: {bgColor};"
on:click
>
-
+
{#if retry}
import { Menu } from '$lib/components/common'
- import {
- faCode,
- faCodeBranch,
- faBarsStaggered,
- faBolt,
- faCheck
- } from '@fortawesome/free-solid-svg-icons'
import { createEventDispatcher } from 'svelte'
- import Icon from 'svelte-awesome'
- import { Cross, Repeat, Square } from 'lucide-svelte'
+ import { CheckCircle2, Code, Cross, GitBranch, Repeat, Square, Zap } from 'lucide-svelte'
import StepGen from '$lib/components/copilot/StepGen.svelte'
import type { FlowModule } from '$lib/gen'
+ import BarsStaggered from '$lib/components/icons/BarsStaggered.svelte'
const dispatch = createEventDispatcher()
export let trigger = false
@@ -50,7 +43,7 @@
{#if funcDesc.length === 0}
{
close()
dispatch('new', 'script')
@@ -58,12 +51,12 @@
role="menuitem"
tabindex="-1"
>
-
+
Action
{#if trigger}
{
close()
dispatch('new', 'trigger')
@@ -71,12 +64,12 @@
role="menuitem"
tabindex="-1"
>
-
+
Trigger
{/if}
{
close()
dispatch('new', 'approval')
@@ -84,57 +77,56 @@
role="menuitem"
tabindex="-1"
>
-
+
Approval
{
close()
dispatch('new', 'forloop')
}}
role="menuitem"
>
-
-
-
+
For Loop
{
close()
dispatch('new', 'branchone')
}}
role="menuitem"
>
-
+
Branch to one
{
close()
dispatch('new', 'branchall')
}}
role="menuitem"
>
-
+
+
Branch to all
{
close()
dispatch('new', 'flow')
}}
role="menuitem"
>
-
+
Flow
{#if stop}
diff --git a/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte b/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte
index 4e180c4e3a..88b3593f2f 100644
--- a/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte
+++ b/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte
@@ -1,10 +1,9 @@
-
-
{
- dispatch('pick', { path, summary, kind })
- }}
- itemName={'Script'}
- extraField="summary"
- {loadItems}
-/>
-
- itemPicker.openDrawer()}
- btnClasses="w-24 truncate"
- size="sm"
- spacingSize="md"
- variant="border"
- color="light"
->
-
-
-
- Script
-
-
diff --git a/frontend/src/lib/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte b/frontend/src/lib/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte
deleted file mode 100644
index 4e64c945fc..0000000000
--- a/frontend/src/lib/components/graph/svelvet/edges/views/Edges/EdgeAnchor.svelte
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
diff --git a/frontend/src/lib/components/home/FlowIcon.svelte b/frontend/src/lib/components/home/FlowIcon.svelte
index c96ef31e9d..4cc4eeba1c 100644
--- a/frontend/src/lib/components/home/FlowIcon.svelte
+++ b/frontend/src/lib/components/home/FlowIcon.svelte
@@ -1,8 +1,7 @@
-
+
diff --git a/frontend/src/lib/components/icons/BarsStaggered.svelte b/frontend/src/lib/components/icons/BarsStaggered.svelte
new file mode 100644
index 0000000000..1a7745e914
--- /dev/null
+++ b/frontend/src/lib/components/icons/BarsStaggered.svelte
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/frontend/src/lib/components/icons/HatIcon.svelte b/frontend/src/lib/components/icons/HatIcon.svelte
deleted file mode 100644
index a954d8e486..0000000000
--- a/frontend/src/lib/components/icons/HatIcon.svelte
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
diff --git a/frontend/src/lib/components/icons/brands/Discord.svelte b/frontend/src/lib/components/icons/brands/Discord.svelte
new file mode 100644
index 0000000000..9321bf89f9
--- /dev/null
+++ b/frontend/src/lib/components/icons/brands/Discord.svelte
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/frontend/src/lib/components/icons/brands/Github.svelte b/frontend/src/lib/components/icons/brands/Github.svelte
new file mode 100644
index 0000000000..11d9833e0c
--- /dev/null
+++ b/frontend/src/lib/components/icons/brands/Github.svelte
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/frontend/src/lib/components/icons/brands/Gitlab.svelte b/frontend/src/lib/components/icons/brands/Gitlab.svelte
new file mode 100644
index 0000000000..27f2966a2f
--- /dev/null
+++ b/frontend/src/lib/components/icons/brands/Gitlab.svelte
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/frontend/src/lib/components/icons/brands/Google.svelte b/frontend/src/lib/components/icons/brands/Google.svelte
new file mode 100644
index 0000000000..d348cfa47a
--- /dev/null
+++ b/frontend/src/lib/components/icons/brands/Google.svelte
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/frontend/src/lib/components/icons/brands/Microsoft.svelte b/frontend/src/lib/components/icons/brands/Microsoft.svelte
new file mode 100644
index 0000000000..3a49e5e91a
--- /dev/null
+++ b/frontend/src/lib/components/icons/brands/Microsoft.svelte
@@ -0,0 +1,20 @@
+
+
+
+ >
+
+
diff --git a/frontend/src/lib/components/jobs/JobDetail.svelte b/frontend/src/lib/components/jobs/JobDetail.svelte
deleted file mode 100644
index 8a8e558761..0000000000
--- a/frontend/src/lib/components/jobs/JobDetail.svelte
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
- goto('/schedules')} bind:this={scheduleEditor} />
-
-
-
-
-
- {#if job === undefined}
- No job found
- {:else}
-
- {#if 'success' in job && job.success}
- {#if job.is_skipped}
-
- {:else}
-
- {/if}
- {:else if 'success' in job}
-
- {:else if 'running' in job && job.running}
-
- {:else if job && 'running' in job && job.scheduled_for && forLater(job.scheduled_for)}
-
- {:else}
-
- {/if}
-
-
-
-
-
-
-
- {#if 'job_kind' in job}
{job.job_kind}
- {/if}
- {#if job.is_flow_step && (job.job_kind == 'script' || job.job_kind == 'preview')}
-
flow step
- {/if}
-
-
- {/if}
-
-
- {truncateRev(job.id, 8, '')}
-
-
-
-
-
-
- By {job.created_by}
-
- {#if job && 'duration_ms' in job && job.duration_ms != undefined}
-
- {/if}
-
-
- {#if 'started_at' in job && job.started_at}
-
-
-
- {#if job?.['duration_ms']}
- Ended
- {:else}
- Started
- {/if}
-
- {/if}
- {#if 'scheduled_for' in job && !job.running && job.scheduled_for && forLater(job.scheduled_for)}
-
-
-
- Scheduled
- for {displayDate(job.scheduled_for ?? '')}
-
-
- {:else if 'scheduled_for' in job && !job.running}
-
-
- Waiting for an executor
-
-
- {/if}
-
- {#if job && job.parent_job}
- {#if job.is_flow_step}
-
- Step of flow {truncateRev(job.parent_job, 6)}
- {:else}
-
- Parent {job.parent_job}
- {/if}
- {:else if job && job.schedule_path}
-
-
Schedule
- scheduleEditor?.openEdit(job.schedule_path ?? '', job.job_kind == 'flow')}
- >{job.schedule_path}
- {/if}
-
-
-
-
-
diff --git a/frontend/src/lib/components/runs/MobileFilters.svelte b/frontend/src/lib/components/runs/MobileFilters.svelte
index 1c8dc264e4..af581d374a 100644
--- a/frontend/src/lib/components/runs/MobileFilters.svelte
+++ b/frontend/src/lib/components/runs/MobileFilters.svelte
@@ -8,11 +8,8 @@
containerClasses="border rounded-lg shadow-lg p-4 bg-surface"
>
-
-
-
- Filters
-
+
+ Filters
diff --git a/frontend/src/lib/components/runs/RunRow.svelte b/frontend/src/lib/components/runs/RunRow.svelte
index b0da2cf2a0..168f5c85b8 100644
--- a/frontend/src/lib/components/runs/RunRow.svelte
+++ b/frontend/src/lib/components/runs/RunRow.svelte
@@ -2,12 +2,12 @@
import { goto } from '$app/navigation'
import type { Job } from '$lib/gen'
import { displayDate, msToSec, truncateHash, truncateRev } from '$lib/utils'
- import { faRobot, faBarsStaggered } from '@fortawesome/free-solid-svg-icons'
- import Icon from 'svelte-awesome'
import { Badge, Button } from '../common'
import ScheduleEditor from '../ScheduleEditor.svelte'
+ import BarsStaggered from '$lib/components/icons/BarsStaggered.svelte'
import {
+ Bot,
Calendar,
Check,
FastForward,
@@ -24,7 +24,6 @@
import Portal from 'svelte-portal'
const dispatch = createEventDispatcher()
- const SMALL_ICON_SCALE = 0.7
export let job: Job
export let selectedId: string | undefined = undefined
@@ -169,7 +168,7 @@
{#if job && job.parent_job}
{#if job.is_flow_step}
{:else}
@@ -208,11 +208,14 @@
let:close
>
-
-
-
- Filter by args/result
-
+
+ Filter by args/result
diff --git a/frontend/src/lib/components/scriptEditor/LogPanel.svelte b/frontend/src/lib/components/scriptEditor/LogPanel.svelte
index 9271c71246..db5aebff14 100644
--- a/frontend/src/lib/components/scriptEditor/LogPanel.svelte
+++ b/frontend/src/lib/components/scriptEditor/LogPanel.svelte
@@ -2,9 +2,6 @@
import { CompletedJob, Job, JobService, Preview } from '$lib/gen'
import { workspaceStore } from '$lib/stores'
import { displayDate } from '$lib/utils'
- import { faTimes } from '@fortawesome/free-solid-svg-icons'
- import Icon from 'svelte-awesome'
- import { check } from 'svelte-awesome/icons'
import Tabs from '../common/tabs/Tabs.svelte'
import Tab from '../common/tabs/Tab.svelte'
import TabContent from '../common/tabs/TabContent.svelte'
@@ -16,7 +13,7 @@
import LogViewer from '../LogViewer.svelte'
import { Pane, Splitpanes } from 'svelte-splitpanes'
import SplitPanesWrapper from '../splitPanes/SplitPanesWrapper.svelte'
- import { Loader2 } from 'lucide-svelte'
+ import { CheckCircle2, Loader2, XCircle } from 'lucide-svelte'
import type Editor from '../Editor.svelte'
import type DiffEditor from '../DiffEditor.svelte'
import ScriptFix from '../copilot/ScriptFix.svelte'
@@ -151,14 +148,13 @@
{displayDate(created_at)}
{#if success}
-
+
{:else}
-
+
{/if}
- {
openDrawer({ mode: 'json', content: undefined, title: 'Result' })
@@ -171,11 +167,10 @@
}}
>
See Result
-
+
- {
const code = (
@@ -193,11 +188,10 @@
}}
>
View code
-
+
- {
const logs = (
@@ -210,7 +204,7 @@
}}
>
View logs
-
+
{/each}
diff --git a/frontend/src/lib/components/scripts/CreateActionsScript.svelte b/frontend/src/lib/components/scripts/CreateActionsScript.svelte
index c07c8d9fee..59db44e2f5 100644
--- a/frontend/src/lib/components/scripts/CreateActionsScript.svelte
+++ b/frontend/src/lib/components/scripts/CreateActionsScript.svelte
@@ -1,13 +1,11 @@
-
+
Script
diff --git a/frontend/src/lib/components/settings/PremiumInfo.svelte b/frontend/src/lib/components/settings/PremiumInfo.svelte
index 0ec70a54a6..d48b076c65 100644
--- a/frontend/src/lib/components/settings/PremiumInfo.svelte
+++ b/frontend/src/lib/components/settings/PremiumInfo.svelte
@@ -1,13 +1,12 @@
@@ -36,17 +33,6 @@
'transition-all'
)}
/>
- {:else if faIcon}
-
{/if}
{#if !isCollapsed}
diff --git a/frontend/src/lib/components/sidebar/MenuLink.svelte b/frontend/src/lib/components/sidebar/MenuLink.svelte
index 88acc0b8d4..1d77ec540e 100644
--- a/frontend/src/lib/components/sidebar/MenuLink.svelte
+++ b/frontend/src/lib/components/sidebar/MenuLink.svelte
@@ -1,8 +1,6 @@