diff --git a/package-lock.json b/package-lock.json index c03fc00a..d6333857 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "cron-validator": "^1.3.1", - "cronstrue": "^2.44.0", + "cronstrue": "^2.47.0", "parse-json": "^8.1.0", "preact": "^10.19.2", "react-hint": "^3.2.1", @@ -21,10 +21,10 @@ "devDependencies": { "@babel/plugin-transform-react-jsx": "^7.23.4", "@babel/preset-typescript": "^7.23.3", - "@evilmartians/lefthook": "^1.5.4", + "@evilmartians/lefthook": "^1.5.5", "@types/css-modules": "^1.0.5", "@types/jest": "^29.5.10", - "@types/node": "^20.10.1", + "@types/node": "^20.10.2", "@types/react-hint": "^3.2.3", "@types/react-modal": "^3.16.3", "@types/wicg-file-system-access": "^2023.10.4", @@ -36,7 +36,7 @@ "css-loader": "^6.8.1", "css-minimizer-webpack-plugin": "^5.0.1", "css-mqpacker-webpack-plugin": "^0.14.0", - "eslint": "^8.54.0", + "eslint": "^8.55.0", "eslint-plugin-react": "^7.33.2", "fork-ts-checker-webpack-plugin": "^9.0.2", "html-inline-css-webpack-plugin": "^1.11.2", @@ -44,7 +44,7 @@ "jest": "^29.7.0", "mini-css-class-name": "^0.15.0", "mini-css-extract-plugin": "^2.7.6", - "postcss": "^8.4.31", + "postcss": "^8.4.32", "postcss-import": "^15.1.0", "postcss-loader": "^7.3.3", "postcss-simple-vars": "^7.0.1", @@ -1976,9 +1976,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2038,18 +2038,18 @@ } }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@evilmartians/lefthook": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@evilmartians/lefthook/-/lefthook-1.5.4.tgz", - "integrity": "sha512-oyfKxXgZ9QjLFzj67RzqAfmqIUQ4hhIb5lZcfWuFf6COObjMHkb4HQQb8jgEmMPFWwk3JEuVJgxatrwZ2M8J5g==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@evilmartians/lefthook/-/lefthook-1.5.5.tgz", + "integrity": "sha512-vSJQ3rt52kHMqv4DpTf48jzZap5Q+X5C/qeYMBW58KkB+0a7jmMVy611CUfr/cUXeliZOqbSaOi2/kRYsLiSfQ==", "cpu": [ "x64", "arm64", @@ -3299,9 +3299,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.1.tgz", - "integrity": "sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==", + "version": "20.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.2.tgz", + "integrity": "sha512-37MXfxkb0vuIlRKHNxwCkb60PNBpR94u4efQuN4JgIAm66zfCDXGSAFCef9XUWFovX2R1ok6Z7MHhtdVXXkkIw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -3341,9 +3341,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.39.tgz", - "integrity": "sha512-Oiw+ppED6IremMInLV4HXGbfbG6GyziY3kqAwJYOR0PNbkYDmLWQA3a95EhdSmamsvbkJN96ZNN+YD+fGjzSBA==", + "version": "18.2.40", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.40.tgz", + "integrity": "sha512-H+BUhb9C1zBtogDLAk+KCNRKiHDrqSwQT/0z0PVTwMFBxqg3011ByLomADtgkgMkfwj4AMOiXBReyLTUBg681g==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -5432,9 +5432,9 @@ "integrity": "sha512-C1HsxuPCY/5opR55G5/WNzyEGDWFVG+6GLrA+fW/sCTcP6A6NTjUP2AK7B8n2PyFs90kDG2qzwm8LMheADku6A==" }, "node_modules/cronstrue": { - "version": "2.44.0", - "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.44.0.tgz", - "integrity": "sha512-71aQD16uXrqjDUYHsFYY4/SSmEepzQZqTqWsU9x2kDMCYKyIp/5e0QW/cp2lBNO9PJB1xOpIbBJuQEa5yKx98A==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.47.0.tgz", + "integrity": "sha512-fnFwJy7zslTEz6h7O7BkwgHNBvuuPmkhAYKqPDxK5mBQLz2nG08T9afbnjm+yrvcc/wxrd+otaVSnoXT9ulUOw==", "bin": { "cronstrue": "bin/cli.js" } @@ -6101,9 +6101,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.597", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.597.tgz", - "integrity": "sha512-0XOQNqHhg2YgRVRUrS4M4vWjFCFIP2ETXcXe/0KIQBjXE9Cpy+tgzzYfuq6HGai3hWq0YywtG+5XK8fyG08EjA==", + "version": "1.4.601", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.601.tgz", + "integrity": "sha512-SpwUMDWe9tQu8JX5QCO1+p/hChAi9AE9UpoC3rcHVc+gdCGlbT3SGb5I1klgb952HRIyvt9wZhSz9bNBYz9swA==", "dev": true }, "node_modules/emittery": { @@ -6321,15 +6321,15 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -11131,9 +11131,9 @@ "dev": true }, "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==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { @@ -11253,13 +11253,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -11516,9 +11516,9 @@ } }, "node_modules/parse-json/node_modules/type-fest": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.2.tgz", - "integrity": "sha512-mcvrCjixA5166hSrUoJgGb9gBQN4loMYyj9zxuMs/66ibHNEFd5JXMw37YVDx58L4/QID9jIzdTBB4mDwDJ6KQ==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.8.3.tgz", + "integrity": "sha512-//BaTm14Q/gHBn09xlnKNqfI8t6bmdzx2DXYfPBNofN0WUybCEUDcbCWcTa0oF09lzLjZgPphXAsvRiMK0V6Bw==", "engines": { "node": ">=16" }, @@ -11727,9 +11727,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -11746,7 +11746,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -14262,9 +14262,9 @@ "dev": true }, "node_modules/svgo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.4.tgz", - "integrity": "sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.5.tgz", + "integrity": "sha512-HQKHEo73pMNOlDlBcLgZRcHW2+1wo7bFYayAXkGN0l/2+h68KjlfZyMRhdhaGvoHV2eApOovl12zoFz42sT6rQ==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", diff --git a/package.json b/package.json index 077dd196..2169dc19 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "cron-validator": "^1.3.1", - "cronstrue": "^2.44.0", + "cronstrue": "^2.47.0", "parse-json": "^8.1.0", "preact": "^10.19.2", "react-hint": "^3.2.1", @@ -26,10 +26,10 @@ "devDependencies": { "@babel/plugin-transform-react-jsx": "^7.23.4", "@babel/preset-typescript": "^7.23.3", - "@evilmartians/lefthook": "^1.5.4", + "@evilmartians/lefthook": "^1.5.5", "@types/css-modules": "^1.0.5", "@types/jest": "^29.5.10", - "@types/node": "^20.10.1", + "@types/node": "^20.10.2", "@types/react-hint": "^3.2.3", "@types/react-modal": "^3.16.3", "@types/wicg-file-system-access": "^2023.10.4", @@ -41,7 +41,7 @@ "css-loader": "^6.8.1", "css-minimizer-webpack-plugin": "^5.0.1", "css-mqpacker-webpack-plugin": "^0.14.0", - "eslint": "^8.54.0", + "eslint": "^8.55.0", "eslint-plugin-react": "^7.33.2", "fork-ts-checker-webpack-plugin": "^9.0.2", "html-inline-css-webpack-plugin": "^1.11.2", @@ -49,7 +49,7 @@ "jest": "^29.7.0", "mini-css-class-name": "^0.15.0", "mini-css-extract-plugin": "^2.7.6", - "postcss": "^8.4.31", + "postcss": "^8.4.32", "postcss-import": "^15.1.0", "postcss-loader": "^7.3.3", "postcss-simple-vars": "^7.0.1", diff --git a/src/components/DownloadButton/util.ts b/src/components/DownloadButton/util.ts index c3d7c37d..8f61555e 100644 --- a/src/components/DownloadButton/util.ts +++ b/src/components/DownloadButton/util.ts @@ -3,6 +3,7 @@ export const isSupportFilePicker = typeof showSaveFilePicker === 'function'; export const saveFile = async (content: string): Promise => { const file = await showSaveFilePicker({ suggestedName: 'jobs.config', + startIn: 'desktop', }); const writable = await file.createWritable(); diff --git a/src/components/Editor/Buttons.tsx b/src/components/Editor/Buttons.tsx index 6a4fe2a1..ca3819c8 100644 --- a/src/components/Editor/Buttons.tsx +++ b/src/components/Editor/Buttons.tsx @@ -1,6 +1,6 @@ import { useStoreon } from '../../store'; import { Button } from '../Button'; -import { Toolbar } from '../Toolbar'; +import { ToolbarWrapper, ToolbarHint } from '../Toolbar'; import { IconPlus } from '../Icons/IconPlus'; import { IconUpload } from '../Icons/IconUpload'; import { MAX_ITEMS, ROUTER } from '../../constants'; @@ -17,8 +17,8 @@ export const Buttons: FC = () => { }; return ( - - + + - - + + - - + + ); }; diff --git a/src/components/Icons/IconThreeDots.tsx b/src/components/Icons/IconThreeDots.tsx index 5230f1e2..7531b77a 100644 --- a/src/components/Icons/IconThreeDots.tsx +++ b/src/components/Icons/IconThreeDots.tsx @@ -1,9 +1,8 @@ export const IconThreeDots: FC = () => ( diff --git a/src/components/Jobs/Cron.tsx b/src/components/Jobs/Cron.tsx index f4ecccd7..6907a5bd 100644 --- a/src/components/Jobs/Cron.tsx +++ b/src/components/Jobs/Cron.tsx @@ -17,7 +17,7 @@ export const Cron: FC = ({ value, error }) => { }, [error]); return ( -