diff --git a/frontend/nuxt.config.js b/frontend/nuxt.config.js index 9acc66dbf..ad00a298b 100644 --- a/frontend/nuxt.config.js +++ b/frontend/nuxt.config.js @@ -25,7 +25,12 @@ export default { content: "Mealie is a recipe management app for your kitchen.", }, ], - link: [{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" }], + link: [ + { hid: "favicon", rel: "icon", type: "image/x-icon", href: "/favicon.ico", "data-n-head": "ssr" }, + { hid: "shortcut icon", rel: "shortcut icon", type: "image/png", href: "/icons/icon-x64.png", "data-n-head": "ssr" }, + { hid: "apple-touch-icon", rel: "apple-touch-icon", type: "image/png", href: "/icons/apple-touch-icon.png", "data-n-head": "ssr" }, + { hid: "mask-icon", rel: "mask-icon", href: "/icons/safari-pinned-tab.svg", "data-n-head": "ssr" } + ], }, env: { @@ -323,7 +328,7 @@ export default { /* meta options */ name: "Mealie", description: "Mealie is a recipe management and meal planning app", - theme_color: "#E58325", + theme_color: process.env.THEME_LIGHT_PRIMARY || "#E58325", ogSiteName: "Mealie", }, manifest: { @@ -331,43 +336,46 @@ export default { lang: "en", name: "Mealie", short_name: "Mealie", - title: "Mealie", + description: "Mealie is a recipe management and meal planning app", + theme_color: process.env.THEME_LIGHT_PRIMARY || "#E58325", background_color: "#FFFFFF", + display: "standalone", share_target: { - action: "/", + action: "/recipe/create/url", method: "GET", + enctype: "application/x-www-form-urlencoded", params: { - title: "title", - text: "recipe_import_url", + url: "recipe_import_url", }, }, + icons: [ + { + src: "/icons/android-chrome-192x192.png", + sizes: "192x192", + type: "image/png", + purpose: "any", + }, + { + src: "/icons/android-chrome-512x512.png", + sizes: "512x512", + type: "image/png", + purpose: "any", + }, + { + src: "/icons/android-chrome-maskable-192x192.png", + sizes: "192x192", + type: "image/png", + purpose: "maskable", + }, + { + src: "/icons/android-chrome-maskable-512x512.png", + sizes: "512x512", + type: "image/png", + purpose: "maskable", + }, + ], }, - icons: [ - { - src: "[srcDir]/[staticDir]/icons/android-chrome-192x192.png", - sizes: "192x192", - type: "image/png", - purpose: "any", - }, - { - src: "[srcDir]/[staticDir]/icons/android-chrome-512x512.png", - sizes: "512x512", - type: "image/png", - purpose: "any", - }, - { - src: "[srcDir]/[staticDir]/icons/android-chrome-maskable-192x192.png", - sizes: "192x192", - type: "image/png", - purpose: "maskable", - }, - { - src: "[srcDir]/[staticDir]/icons/android-chrome-maskable-512x512.png", - sizes: "512x512", - type: "image/png", - purpose: "maskable", - }, - ], + icon: false, // disables the icon module }, // Vuetify module configuration: https://go.nuxtjs.dev/config-vuetify diff --git a/frontend/package.json b/frontend/package.json index fdb73b48e..37c5e98bf 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -22,7 +22,7 @@ "@nuxtjs/axios": "^5.13.6", "@nuxtjs/i18n": "7.2.0", "@nuxtjs/proxy": "^2.1.0", - "@nuxtjs/pwa": "3.2.0", + "@nuxtjs/pwa": "^3.3.5", "@vueuse/core": "^9.9.0", "core-js": "^3.27.0", "date-fns": "^2.29.3", diff --git a/frontend/static/favicon.ico b/frontend/static/favicon.ico index 37be96f5e..8d727977a 100644 Binary files a/frontend/static/favicon.ico and b/frontend/static/favicon.ico differ diff --git a/frontend/static/icons/android-chrome-maskable-192x192.png b/frontend/static/icons/android-chrome-maskable-192x192.png index df6cdbc88..7c878a293 100644 Binary files a/frontend/static/icons/android-chrome-maskable-192x192.png and b/frontend/static/icons/android-chrome-maskable-192x192.png differ diff --git a/frontend/static/icons/android-chrome-maskable-512x512.png b/frontend/static/icons/android-chrome-maskable-512x512.png index 71a0bcf83..ef6a5e372 100644 Binary files a/frontend/static/icons/android-chrome-maskable-512x512.png and b/frontend/static/icons/android-chrome-maskable-512x512.png differ diff --git a/frontend/static/icons/icon-x64.png b/frontend/static/icons/icon-x64.png new file mode 100644 index 000000000..930b2cb94 Binary files /dev/null and b/frontend/static/icons/icon-x64.png differ diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 883d9d358..2ab0984ee 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1910,18 +1910,20 @@ dependencies: http-proxy-middleware "^1.0.6" -"@nuxtjs/pwa@3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@nuxtjs/pwa/-/pwa-3.2.0.tgz#23b72a3a940b941febd87dbbd98ec48f292b6b0e" - integrity sha512-IpzVC5WrP6kQU+gwe2vBjB9xRZlQprhlB1a2nh6SrD0N1IbvCq+AyiEJBDxhr/Z4887zLsRdHVSHS+o08F2oTA== +"@nuxtjs/pwa@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@nuxtjs/pwa/-/pwa-3.3.5.tgz#db7c905536ebe8a464a347b6ae3215810642c044" + integrity sha512-8tTmW8DBspWxlJwTimOHTkwfkwPpL9wIcGmy75Gcmin+c9YtX2Ehxmhgt/TLFOC9XsLAqojqynw3/Agr/9OE1w== dependencies: - defu "^3.1.0" - execa "^4.0.3" - fs-extra "^9.0.1" + clone-deep "^4.0.1" + defu "^3.2.2" + execa "^5.0.0" + fs-extra "^9.1.0" hasha "^5.2.2" jimp-compact "^0.16.1" lodash.template "^4.5.0" - workbox-cdn "^5.1.3" + serve-static "^1.14.1" + workbox-cdn "^5.1.4" "@nuxtjs/vuetify@^1.12.1": version "1.12.3" @@ -3792,6 +3794,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + clone-response@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" @@ -4074,7 +4085,7 @@ create-require@^1.1.1: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4389,7 +4400,7 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defu@^3.1.0: +defu@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/defu/-/defu-3.2.2.tgz#be20f4cc49b9805d54ee6b610658d53894942e97" integrity sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ== @@ -5322,22 +5333,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^5.1.1: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -5688,7 +5684,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -5794,7 +5790,7 @@ get-port-please@^2.2.0: dependencies: fs-memo "^1.2.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -6303,11 +6299,6 @@ https-proxy-agent@^5.0.1: agent-base "6" debug "4" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -7903,7 +7894,7 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -9783,6 +9774,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -11407,7 +11405,7 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -workbox-cdn@^5.1.3: +workbox-cdn@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/workbox-cdn/-/workbox-cdn-5.1.4.tgz#dbd8acee70b1978be70106207590bbb76af935cf" integrity sha512-04gM3mi8QGutokkSaA9xunVfjURnLbo9TTWyi8+pSDCEW5cD8u5GbJiliLK1vB9CShk/9OY1UDfW+XcmD+d6KQ==