diff --git a/locales/en-US.yml b/locales/en-US.yml
index d236419020..08b42f59de 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -1786,3 +1786,20 @@ _deck:
list: "List"
mentions: "Mentions"
direct: "Direct messages"
+_apps:
+ apps: "Apps"
+ crossPlatform: "Cross platform"
+ mobile: "Android"
+ desktop: "iOS"
+ firstParty: "First party"
+ firstClass: "First class"
+ secondClass: "Second class"
+ thirdClass: "Third class"
+ desktop: "Desktop"
+ pwa: "Install PWA"
+ kaiteki: "Kaiteki"
+ milktea: "Milktea"
+ subwayTooter: "Subway Tooter"
+ kimis: "Kimis"
+ theDesk: "TheDesk"
+ lesskey: "Lesskey"
diff --git a/package.json b/package.json
index f8c04778ba..0e83ccc3a8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "calckey",
- "version": "13.1.3-beta",
+ "version": "13.1.3-beta1",
"codename": "aqua",
"repository": {
"type": "git",
diff --git a/packages/client/package.json b/packages/client/package.json
index c055e5c207..5a184dbc0f 100644
--- a/packages/client/package.json
+++ b/packages/client/package.json
@@ -7,12 +7,14 @@
"lint": "pnpm rome check \"src/**/*.{ts,vue}\""
},
"dependencies": {
-
+ "@khmyznikov/pwa-install": "^0.2.0"
},
"devDependencies": {
+ "@discordapp/twemoji": "14.0.2",
"@rollup/plugin-alias": "3.1.9",
"@rollup/plugin-json": "4.1.0",
"@rollup/pluginutils": "^4.2.1",
+ "@syuilo/aiscript": "0.11.1",
"@types/escape-regexp": "0.0.1",
"@types/glob": "8.0.0",
"@types/gulp": "4.0.10",
@@ -26,13 +28,6 @@
"@types/uuid": "8.3.4",
"@vitejs/plugin-vue": "4.0.0",
"@vue/compiler-sfc": "3.2.45",
- "cross-env": "7.0.3",
- "cypress": "10.11.0",
- "rollup": "3.9.1",
- "start-server-and-test": "1.15.2",
- "typescript": "4.9.4",
- "@discordapp/twemoji": "14.0.2",
- "@syuilo/aiscript": "0.11.1",
"autobind-decorator": "2.4.0",
"autosize": "5.0.2",
"blurhash": "1.1.5",
@@ -45,6 +40,8 @@
"chartjs-plugin-zoom": "1.2.1",
"compare-versions": "5.0.3",
"cropperjs": "2.0.0-beta.2",
+ "cross-env": "7.0.3",
+ "cypress": "10.11.0",
"date-fns": "2.29.3",
"escape-regexp": "0.0.1",
"eventemitter3": "4.0.7",
@@ -59,9 +56,11 @@
"punycode": "2.1.1",
"querystring": "0.2.1",
"rndstr": "1.0.0",
+ "rollup": "3.9.1",
"s-age": "1.1.2",
"sass": "1.57.1",
"seedrandom": "3.0.5",
+ "start-server-and-test": "1.15.2",
"strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0",
"swiper": "^8.4.5",
@@ -73,6 +72,7 @@
"tsc-alias": "1.8.2",
"tsconfig-paths": "4.1.2",
"twemoji-parser": "14.0.0",
+ "typescript": "4.9.4",
"uuid": "9.0.0",
"vanilla-tilt": "1.8.0",
"vite": "^4.1.1",
diff --git a/packages/client/src/pages/apps.vue b/packages/client/src/pages/apps.vue
new file mode 100644
index 0000000000..56ad149e9e
--- /dev/null
+++ b/packages/client/src/pages/apps.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts
index bf87efec0f..48aad0820f 100644
--- a/packages/client/src/router.ts
+++ b/packages/client/src/router.ts
@@ -282,6 +282,10 @@ export const routes = [
path: "/about-calckey",
component: page(() => import("./pages/about-calckey.vue")),
},
+ {
+ path: "/apps",
+ component: page(() => import("./pages/apps.vue")),
+ },
{
path: "/theme-editor",
component: page(() => import("./pages/theme-editor.vue")),
diff --git a/packages/client/src/ui/_common_/navbar.vue b/packages/client/src/ui/_common_/navbar.vue
index c44c766b3c..10bd75db71 100644
--- a/packages/client/src/ui/_common_/navbar.vue
+++ b/packages/client/src/ui/_common_/navbar.vue
@@ -44,9 +44,17 @@
-