diff --git a/theseus_gui/package.json b/theseus_gui/package.json index a5f51b3e0..6797f2b76 100644 --- a/theseus_gui/package.json +++ b/theseus_gui/package.json @@ -18,7 +18,7 @@ "floating-vue": "^2.0.0-beta.20", "mixpanel-browser": "^2.47.0", "ofetch": "^1.0.1", - "omorphia": "^0.4.31", + "omorphia": "^0.4.33", "pinia": "^2.1.3", "tauri-plugin-window-state-api": "github:tauri-apps/tauri-plugin-window-state#v1", "vite-svg-loader": "^4.0.0", @@ -38,5 +38,5 @@ "vite": "^4.3.9", "vite-plugin-eslint": "^1.8.1" }, - "packageManager": "pnpm@8.5.1" + "packageManager": "pnpm@8.6.0" } diff --git a/theseus_gui/pnpm-lock.yaml b/theseus_gui/pnpm-lock.yaml index 251c9dac2..1051f77d7 100644 --- a/theseus_gui/pnpm-lock.yaml +++ b/theseus_gui/pnpm-lock.yaml @@ -1,4 +1,8 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false dependencies: '@tauri-apps/api': @@ -17,14 +21,14 @@ dependencies: specifier: ^1.0.1 version: 1.0.1 omorphia: - specifier: ^0.4.31 - version: 0.4.31 + specifier: ^0.4.33 + version: 0.4.33 pinia: specifier: ^2.1.3 version: 2.1.3(vue@3.3.4) tauri-plugin-window-state-api: specifier: github:tauri-apps/tauri-plugin-window-state#v1 - version: github.com/tauri-apps/tauri-plugin-window-state/56fd671f8d5ac2d8b826a358af486f220a125c3d + version: github.com/tauri-apps/tauri-plugin-window-state/347c792535d2623fc21f66590d06f4c8dadd85ba vite-svg-loader: specifier: ^4.0.0 version: 4.0.0 @@ -409,6 +413,11 @@ packages: engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false + /@tauri-apps/api@1.4.0: + resolution: {integrity: sha512-Jd6HPoTM1PZSFIzq7FB8VmMu3qSSyo/3lSwLpoapW+lQ41CL5Dow2KryLg+gyazA/58DRWI9vu/XpEeHK4uMdw==} + engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + dev: false + /@tauri-apps/cli-darwin-arm64@1.3.1: resolution: {integrity: sha512-QlepYVPgOgspcwA/u4kGG4ZUijlXfdRtno00zEy+LxinN/IRXtk+6ErVtsmoLi1ZC9WbuMwzAcsRvqsD+RtNAg==} engines: {node: '>= 10'} @@ -1336,13 +1345,14 @@ packages: ufo: 1.1.2 dev: false - /omorphia@0.4.31: - resolution: {integrity: sha512-xeb9bD42VFRDKCkKz678hBYCIS//Atd4/hx6/YmboJLMEIjIJfS2Ocf9G53G52XkfS4DWs9CIzKz71NDh86kxQ==} + /omorphia@0.4.33: + resolution: {integrity: sha512-Wo0t16zRL8ZLJSKVAYv6pdYhL4YXYjDYs18shO7V5cfxjcynvd5j0sui6uBR8ghVMWFEJH994AEC/urLwcHiBA==} dependencies: dayjs: 1.11.7 floating-vue: 2.0.0-beta.20(vue@3.3.4) highlight.js: 11.8.0 markdown-it: 13.0.1 + qrcode.vue: 3.4.0(vue@3.3.4) vue: 3.3.4 vue-router: 4.2.1(vue@3.3.4) vue-select: 4.0.0-beta.6(vue@3.3.4) @@ -1460,6 +1470,14 @@ packages: engines: {node: '>=6'} dev: true + /qrcode.vue@3.4.0(vue@3.3.4): + resolution: {integrity: sha512-4XeImbv10Fin16Fl2DArCMhGyAdvIg2jb7vDT+hZiIAMg/6H6mz9nUZr/dR8jBcun5VzNzkiwKhiqOGbloinwA==} + peerDependencies: + vue: ^3.0.0 + dependencies: + vue: 3.3.4 + dev: false + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -1791,10 +1809,10 @@ packages: engines: {node: '>=10'} dev: true - github.com/tauri-apps/tauri-plugin-window-state/56fd671f8d5ac2d8b826a358af486f220a125c3d: - resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-window-state/tar.gz/56fd671f8d5ac2d8b826a358af486f220a125c3d} + github.com/tauri-apps/tauri-plugin-window-state/347c792535d2623fc21f66590d06f4c8dadd85ba: + resolution: {tarball: https://codeload.github.com/tauri-apps/tauri-plugin-window-state/tar.gz/347c792535d2623fc21f66590d06f4c8dadd85ba} name: tauri-plugin-window-state-api version: 0.0.0 dependencies: - '@tauri-apps/api': 1.3.0 + '@tauri-apps/api': 1.4.0 dev: false diff --git a/theseus_gui/src/assets/external/github.svg b/theseus_gui/src/assets/external/github.svg new file mode 100644 index 000000000..2f0f9348f --- /dev/null +++ b/theseus_gui/src/assets/external/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/assets/external/index.js b/theseus_gui/src/assets/external/index.js index b7aff27d4..2ac283e18 100644 --- a/theseus_gui/src/assets/external/index.js +++ b/theseus_gui/src/assets/external/index.js @@ -4,3 +4,7 @@ export { default as KoFiIcon } from './kofi.svg' export { default as PatreonIcon } from './patreon.svg' export { default as PaypalIcon } from './paypal.svg' export { default as OpenCollectiveIcon } from './opencollective.svg' +export { default as TwitterIcon } from './twitter.svg' +export { default as GithubIcon } from './github.svg' +export { default as MastodonIcon } from './mastodon.svg' +export { default as RedditIcon } from './reddit.svg' diff --git a/theseus_gui/src/assets/external/mastodon.svg b/theseus_gui/src/assets/external/mastodon.svg new file mode 100644 index 000000000..9e96c9410 --- /dev/null +++ b/theseus_gui/src/assets/external/mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/assets/external/reddit.svg b/theseus_gui/src/assets/external/reddit.svg new file mode 100644 index 000000000..5cfd11243 --- /dev/null +++ b/theseus_gui/src/assets/external/reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/assets/external/twitter.svg b/theseus_gui/src/assets/external/twitter.svg new file mode 100644 index 000000000..a43d68d9f --- /dev/null +++ b/theseus_gui/src/assets/external/twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/assets/icons/add-project.svg b/theseus_gui/src/assets/icons/add-project.svg new file mode 100644 index 000000000..8a1665368 --- /dev/null +++ b/theseus_gui/src/assets/icons/add-project.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theseus_gui/src/assets/icons/index.js b/theseus_gui/src/assets/icons/index.js index 195e41cfc..020e12313 100644 --- a/theseus_gui/src/assets/icons/index.js +++ b/theseus_gui/src/assets/icons/index.js @@ -2,5 +2,11 @@ export { default as ServerIcon } from './server.svg' export { default as MinimizeIcon } from './minimize.svg' export { default as MaximizeIcon } from './maximize.svg' export { default as SwapIcon } from './arrow-left-right.svg' +export { default as ToggleIcon } from './toggle.svg' export { default as PackageIcon } from './package.svg' export { default as VersionIcon } from './milestone.svg' +export { default as MoreIcon } from './more.svg' +export { default as TextInputIcon } from './text-cursor-input.svg' +export { default as AddProjectImage } from './add-project.svg' +export { default as NewInstanceImage } from './new-instance.svg' +export { default as MenuIcon } from './menu.svg' diff --git a/theseus_gui/src/assets/icons/menu.svg b/theseus_gui/src/assets/icons/menu.svg new file mode 100644 index 000000000..7bafeae4a --- /dev/null +++ b/theseus_gui/src/assets/icons/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/assets/icons/more.svg b/theseus_gui/src/assets/icons/more.svg new file mode 100644 index 000000000..98f4a4dfe --- /dev/null +++ b/theseus_gui/src/assets/icons/more.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/assets/icons/new-instance.svg b/theseus_gui/src/assets/icons/new-instance.svg new file mode 100644 index 000000000..b526f23ce --- /dev/null +++ b/theseus_gui/src/assets/icons/new-instance.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theseus_gui/src/assets/icons/text-cursor-input.svg b/theseus_gui/src/assets/icons/text-cursor-input.svg new file mode 100644 index 000000000..7bf2628df --- /dev/null +++ b/theseus_gui/src/assets/icons/text-cursor-input.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/assets/icons/toggle.svg b/theseus_gui/src/assets/icons/toggle.svg new file mode 100644 index 000000000..202f4537d --- /dev/null +++ b/theseus_gui/src/assets/icons/toggle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theseus_gui/src/helpers/utils.js b/theseus_gui/src/helpers/utils.js index ea8d61412..ae5b478c2 100644 --- a/theseus_gui/src/helpers/utils.js +++ b/theseus_gui/src/helpers/utils.js @@ -57,3 +57,13 @@ export const installVersionDependencies = async (profile, version) => { } } } + +export const openLink = (url) => { + window.__TAURI_INVOKE__('tauri', { + __tauriModule: 'Shell', + message: { + cmd: 'open', + path: url, + }, + }) +} diff --git a/theseus_gui/src/pages/Library.vue b/theseus_gui/src/pages/Library.vue index 54af6a5f6..354f90f05 100644 --- a/theseus_gui/src/pages/Library.vue +++ b/theseus_gui/src/pages/Library.vue @@ -6,6 +6,9 @@ import { useRoute } from 'vue-router' import { useBreadcrumbs } from '@/store/breadcrumbs' import { profile_listener } from '@/helpers/events.js' import { handleError } from '@/store/notifications.js' +import { Button, PlusIcon } from 'omorphia' +import InstanceCreationModal from '@/components/ui/InstanceCreationModal.vue' +import { NewInstanceImage } from '@/assets/icons' const route = useRoute() const breadcrumbs = useBreadcrumbs() @@ -23,7 +26,23 @@ onUnmounted(() => unlisten()) diff --git a/theseus_gui/src/pages/instance/Index.vue b/theseus_gui/src/pages/instance/Index.vue index 8db75a1e3..f479b1d48 100644 --- a/theseus_gui/src/pages/instance/Index.vue +++ b/theseus_gui/src/pages/instance/Index.vue @@ -101,6 +101,17 @@ + + + + + + + + + @@ -120,6 +131,12 @@ import { ClipboardCopyIcon, PlusIcon, ExternalIcon, + HashIcon, + GlobeIcon, + EyeIcon, + XIcon, + CheckCircleIcon, + UpdatedIcon, } from 'omorphia' import { get, run } from '@/helpers/profile' import { @@ -340,6 +357,7 @@ Button { flex-direction: row; overflow: auto; gap: 1rem; + min-height: 100%; } .content { diff --git a/theseus_gui/src/pages/instance/Logs.vue b/theseus_gui/src/pages/instance/Logs.vue index c9eaa1636..185e05947 100644 --- a/theseus_gui/src/pages/instance/Logs.vue +++ b/theseus_gui/src/pages/instance/Logs.vue @@ -15,8 +15,8 @@ {{ copied ? 'Copied' : 'Copy' }} -