From ded3a608894564f537dadf15730ffb659862d7d5 Mon Sep 17 00:00:00 2001 From: Gianluca Costa Date: Sun, 5 Nov 2023 14:07:10 +0100 Subject: [PATCH] Introduce icon shortcuts --- package.json | 2 +- src/manifest-extra.json | 22 ++++++++++++++++++++++ static/shortcuts/help.png | Bin 0 -> 10714 bytes static/shortcuts/play.png | Bin 0 -> 7121 bytes static/shortcuts/top-score.png | Bin 0 -> 5353 bytes webpack.common.js | 1 + 6 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/manifest-extra.json create mode 100644 static/shortcuts/help.png create mode 100644 static/shortcuts/play.png create mode 100644 static/shortcuts/top-score.png diff --git a/package.json b/package.json index 35e0104..9d30e4f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "solvenius", - "version": "4.8.0", + "version": "4.9.0", "description": "Logic game in modern Elm", "private": true, "scripts": { diff --git a/src/manifest-extra.json b/src/manifest-extra.json new file mode 100644 index 0000000..f56e354 --- /dev/null +++ b/src/manifest-extra.json @@ -0,0 +1,22 @@ +{ + "shortcuts": [ + { + "name": "Play!", + "url": "game", + "description": "Play a game", + "icons": [{ "src": "../shortcuts/play.png", "sizes": "192x192" }] + }, + { + "name": "Top score", + "url": "top-score", + "description": "Top score on this device", + "icons": [{ "src": "../shortcuts/top-score.png", "sizes": "192x192" }] + }, + { + "name": "Help", + "url": "help", + "description": "Online help", + "icons": [{ "src": "../shortcuts/help.png", "sizes": "192x192" }] + } + ] +} diff --git a/static/shortcuts/help.png b/static/shortcuts/help.png new file mode 100644 index 0000000000000000000000000000000000000000..e79f0989b7f46e294ab17ee461a60fad6974f343 GIT binary patch literal 10714 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 M07*qoM6N<$f)X}xKmY&$ literal 0 HcmV?d00001 diff --git a/static/shortcuts/play.png b/static/shortcuts/play.png new file mode 100644 index 0000000000000000000000000000000000000000..86a78be2f1aca01db0054b594fd46108f474d441 GIT binary patch literal 7121 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 Hu0mjfDY$69 literal 0 HcmV?d00001 diff --git a/static/shortcuts/top-score.png b/static/shortcuts/top-score.png new file mode 100644 index 0000000000000000000000000000000000000000..6c214bf7ec8201a2bd6da3cdd3c6fd54a2fbf1b5 GIT binary patch literal 5353 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