Merge pull request #38 from Wuzado/master

Make Theseus compilable out of the box again, update Tauri to 1.0.4
This commit is contained in:
venashial
2022-08-03 00:25:15 -07:00
committed by GitHub
38 changed files with 3226 additions and 1923 deletions
+1
View File
@@ -2,6 +2,7 @@
node_modules/
.svelte-kit/
theseus_gui/build/
theseus_gui/generated/
WixTools
.direnv/
+3
View File
@@ -0,0 +1,3 @@
[submodule "theseus_gui/locales"]
path = theseus_gui/locales
url = https://github.com/modrinth/translations
+1
View File
@@ -47,6 +47,7 @@
<sourceFolder url="file://$MODULE_DIR$/target/debug/build/crossbeam-utils-bab62be590a5955d/out" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/target/debug/build/memoffset-235ac8b3550fb50a/out" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/theseus/examples" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/theseus_gui/src-tauri/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
<excludeFolder url="file://$MODULE_DIR$/theseus_gui/.svelte-kit" />
<excludeFolder url="file://$MODULE_DIR$/theseus_gui/build" />
Generated
+373 -306
View File
File diff suppressed because it is too large Load Diff
Submodule theseus_gui/locales added at 73d326c7ef
+12 -9
View File
@@ -1,11 +1,11 @@
{
"scripts": {
"dev": "tauri dev",
"dev:web": "svelte-kit dev",
"kill:web": "kill-port 3000",
"dev:web": "vite",
"kill:web": "kill-port 5173",
"tauri": "tauri",
"build": "tauri build",
"build:web": "svelte-kit build",
"build:web": "vite build",
"test": "cargo ../test --manifest-path ./src-tauri/Cargo.toml",
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. src",
"check": "cargo check --manifest-path src-tauri/Cargo.toml && svelte-check --tsconfig ./tsconfig.json"
@@ -13,7 +13,7 @@
"devDependencies": {
"@sveltejs/adapter-static": "next",
"@sveltejs/kit": "next",
"@tauri-apps/cli": "^1.0.0-rc.5",
"@tauri-apps/cli": "^1.0.4",
"@typescript-eslint/eslint-plugin": "^5.10.1",
"@typescript-eslint/parser": "^5.10.1",
"eslint": "^7.32.0",
@@ -24,8 +24,10 @@
"prettier-plugin-svelte": "^2.5.0",
"svelte": "^3.46.0",
"svelte-check": "^2.2.6",
"svelte-intl-precompile": "^0.11.1",
"tslib": "^2.3.1",
"typescript": "~4.5.4"
"typescript": "~4.5.4",
"vite": "^3.0.0"
},
"type": "module",
"dependencies": {
@@ -34,9 +36,10 @@
"@iconify-json/heroicons-outline": "^1.1.1",
"@iconify-json/heroicons-solid": "^1.1.1",
"@iconify-json/lucide": "^1.1.5",
"@tauri-apps/api": "^1.0.0-rc.1",
"omorphia": "0.0.17",
"svrollbar": "^0.10.4",
"unplugin-icons": "^0.13.2"
"@tauri-apps/api": "^1.0.2",
"omorphia": "0.0.67",
"svrollbar": "^0.12.0",
"unplugin-icons": "^0.14.7",
"highlight.js": "11.5.1"
}
}
+2151 -980
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
module.exports = require('omorphia/config/postcss.config.cjs')
module.exports = require('omorphia/config/postcss.cjs')
+2 -2
View File
@@ -8,12 +8,12 @@ rust-version = "1.57"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
tauri-build = { version = "1.0.0-rc.3", features = [] }
tauri-build = { version = "1.0.4", features = [] }
[dependencies]
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
tauri = { version = "1.0.0-rc.3", features = ["api-all"] }
tauri = { version = "1.0.4", features = ["api-all"] }
[features]
# by default Tauri runs in production mode
+7 -6
View File
@@ -9,12 +9,12 @@ use tauri::{
};
fn main() {
let ctx = tauri::generate_context!();
let ctx = tauri::generate_context!(); // Run `pnpm build:web` (builds the web app) to get rid of the error.
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![])
.create_window("main", WindowUrl::default(), |win, webview| {
let win = win
.setup(|app| {
let _win = WindowBuilder::new(app, "main", WindowUrl::default())
.title("Modrinth")
.resizable(true)
.decorations(true)
@@ -22,15 +22,16 @@ fn main() {
.inner_size(800.0, 550.0)
.min_inner_size(400.0, 200.0)
.skip_taskbar(false)
.fullscreen(false);
return (win, webview);
.fullscreen(false)
.build()?;
Ok(())
})
.menu(Menu::with_items([
#[cfg(target_os = "macos")]
MenuEntry::Submenu(Submenu::new(
&ctx.package_info().name,
Menu::with_items([
MenuItem::About(ctx.package_info().name.clone()).into(),
// MenuItem::About(ctx.package_info().name.clone()).into(),
MenuItem::Separator.into(),
MenuItem::Services.into(),
MenuItem::Separator.into(),
+2 -4
View File
@@ -4,7 +4,7 @@
},
"build": {
"distDir": "../build",
"devPath": "http://localhost:3000",
"devPath": "http://localhost:5173",
"beforeDevCommand": "pnpm dev:web",
"beforeBuildCommand": "pnpm run build:web"
},
@@ -32,13 +32,11 @@
"shortDescription": "",
"longDescription": "",
"deb": {
"depends": [],
"useBootstrapper": false
"depends": []
},
"macOS": {
"frameworks": [],
"minimumSystemVersion": "",
"useBootstrapper": false,
"exceptionDomain": "",
"signingIdentity": null,
"providerShortName": null,
+6 -3
View File
@@ -3,9 +3,12 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%svelte.head%
<link rel="preload" href="/fonts/InterRegular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="/fonts/InterBold.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="/fonts/InterSemiBold.woff2" as="font" type="font/woff2" crossorigin />
%sveltekit.head%
</head>
<body style="background-color: hsl(220, 13%, 15%)">
%svelte.body%
<body class="base theme-dark" style="background-color: hsl(220, 13%, 15%)">
%sveltekit.body%
</body>
</html>
+3 -4
View File
@@ -9,7 +9,6 @@
</div>
</div>
<style lang="postcss">
.card-row {
display: flex;
@@ -25,8 +24,8 @@
&::after {
flex: 1 1;
content: " ";
background-color: hsla(0,0%,100%,0.2);
content: ' ';
background-color: hsla(0, 0%, 100%, 0.2);
height: 0.2rem;
border-radius: var(--rounded-max);
}
@@ -48,7 +47,7 @@
}
&:nth-of-type(even) {
background-color: hsla(0,0%,0%,0.2);
background-color: hsla(0, 0%, 0%, 0.2);
}
}
</style>
@@ -1,57 +1,57 @@
<script lang="ts">
import { FormField, Slider, TextInput, Button } from "omorphia"
import TitledSection from "$components/TitledSection.svelte"
import WindowSettings from "$components/WindowSettings.svelte"
import { Field, Slider, TextInput, Button } from 'omorphia';
import TitledSection from '$components/TitledSection.svelte';
import WindowSettings from '$components/WindowSettings.svelte';
export let maxConcurrentDownloads: number = 20;
</script>
<div class="section">
<TitledSection title="Downloads">
<FormField label="Max concurrent downloads">
<Slider min=1 max=64 bind:value={maxConcurrentDownloads} />
</FormField>
<Field label="Max concurrent downloads">
<Slider min="1" max="64" bind:value={maxConcurrentDownloads} />
</Field>
</TitledSection>
<TitledSection title="Override game resolution" toggleable=true>
<TitledSection title="Override game resolution" toggleable="true">
<WindowSettings />
</TitledSection>
<TitledSection title="Profile hooks">
<FormField label="Pre-launch">
<Field label="Pre-launch">
<TextInput />
</FormField>
<FormField label="Wrapper">
</Field>
<Field label="Wrapper">
<TextInput />
</FormField>
<FormField label="Post-exit">
</Field>
<Field label="Post-exit">
<TextInput />
</FormField>
</Field>
</TitledSection>
<TitledSection title="Java">
<FormField label="Java 8 installation">
<Field label="Java 8 installation">
<TextInput placeholder="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home" />
<div class="button-group">
<Button>Auto-detect</Button>
<Button>Browse installations</Button>
<Button>Test</Button>
</div>
</FormField>
<FormField label="Java 17 installation">
</Field>
<Field label="Java 17 installation">
<TextInput placeholder="/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home" />
<div class="button-group">
<Button>Auto-detect</Button>
<Button>Browse installations</Button>
<Button>Test</Button>
</div>
</FormField>
<FormField label="Minimum memory allocatted (in MB)">
</Field>
<Field label="Minimum memory allocatted (in MB)">
<TextInput />
</FormField>
<FormField label="Maximum memory allocatted (in MB)">
</Field>
<Field label="Maximum memory allocatted (in MB)">
<TextInput value="2048" />
</FormField>
<FormField label="Arguments">
<TextInput/>
</FormField>
</Field>
<Field label="Arguments">
<TextInput />
</Field>
</TitledSection>
</div>
+10 -5
View File
@@ -1,6 +1,6 @@
<script lang="ts">
import IconPlayFilled from "virtual:icons/carbon/play-filled-alt"
import IconBadgeCheck from "virtual:icons/heroicons-solid/badge-check"
import IconPlayFilled from 'virtual:icons/carbon/play-filled-alt';
import IconBadgeCheck from 'virtual:icons/heroicons-solid/badge-check';
export let title: string;
export let id: string;
@@ -9,9 +9,14 @@
export let image: string;
</script>
<a class="instance" href="/library/instance/{id}/settings"
style:background-image="linear-gradient(5deg, hsla(0,0%,0%,0.8) 0%, hsla(0,0%,0%,0) 100%), url('{image}')">
<div class="instance__version">{version}{#if modpack}<IconBadgeCheck />{/if}</div>
<a
class="instance"
href="/library/instance/{id}/settings"
style:background-image="linear-gradient(5deg, hsla(0,0%,0%,0.8) 0%, hsla(0,0%,0%,0) 100%), url('{image}')"
>
<div class="instance__version">
{version}{#if modpack}<IconBadgeCheck />{/if}
</div>
<div class="instance__title">{title}</div>
<button class="play-button">
<IconPlayFilled />
@@ -1,10 +1,10 @@
<script lang="ts">
import { Checkbox } from "omorphia"
import { Checkbox } from 'omorphia';
export let title: string
export let toggleable: boolean = false
export let title: string;
export let toggleable: boolean = false;
export let enabled: boolean = false
export let enabled: boolean = false;
</script>
<div class="section">
@@ -32,7 +32,7 @@
&::after {
flex: 1 1;
content: " ";
content: ' ';
background-color: hsla(0, 0%, 100%, 0.2);
height: 0.2rem;
border-radius: var(--rounded-max);
@@ -1,21 +1,19 @@
<script lang="ts">
import { SvelteComponent } from 'svelte'
import { page } from "$app/stores";
import { SvelteComponent } from 'svelte';
import { page } from '$app/stores';
export let items: {
label: string,
label: string;
/** Page href, without slash prefix */
href: string,
icon: SvelteComponent
href: string;
icon: SvelteComponent;
}[];
/** Path level in URL, zero-indexed */
export let level = 0;
let path: string[];
$: path = $page.url.pathname
.substring(1)
.split('/')
$: path = $page.url.pathname.substring(1).split('/');
</script>
<div class="vertical-nav">
@@ -1,14 +1,14 @@
<script lang="ts">
import { FormField, TextInput } from "omorphia"
import { Field, TextInput } from 'omorphia';
</script>
<div class="section">
<FormField label="Window width">
<Field label="Window width">
<TextInput />
</FormField>
<FormField label="Window height">
</Field>
<Field label="Window height">
<TextInput />
</FormField>
</Field>
</div>
<style lang="postcss">
+1 -1
View File
@@ -1,6 +1,6 @@
/** @type {import('@sveltejs/kit').Handle} */
export async function handle({ event, resolve }) {
return await resolve(event, {
ssr: false,
ssr: false
});
}
+4 -4
View File
@@ -1,8 +1,8 @@
<script lang="ts">
import { Svrollbar } from 'svrollbar'
import { Svrollbar } from 'svrollbar';
let viewport: Element
let contents: Element
let viewport: Element;
let contents: Element;
</script>
<div class="page">
@@ -24,7 +24,7 @@
--svrollbar-track-opacity: 0;
--svrollbar-thumb-width: 8px;
--svrollbar-thumb-background: hsla(216,5%,60%);
--svrollbar-thumb-background: hsla(216, 5%, 60%);
--svrollbar-thumb-opacity: 0.9;
}
+15 -13
View File
@@ -1,18 +1,18 @@
<script lang="ts">
import VerticalNav from '../components/VerticalNav.svelte'
import IconHome from 'virtual:icons/lucide/home'
import IconSearch from 'virtual:icons/heroicons-outline/search'
import IconPlus from 'virtual:icons/heroicons-outline/plus'
import VerticalNav from '../components/VerticalNav.svelte';
import IconHome from 'virtual:icons/lucide/home';
import IconSearch from 'virtual:icons/heroicons-outline/search';
import IconPlus from 'virtual:icons/heroicons-outline/plus';
import IconLibrary from 'virtual:icons/lucide/library';
import IconSettings from 'virtual:icons/lucide/settings'
import { page } from "$app/stores";
import { Button } from 'omorphia'
import IconSettings from 'virtual:icons/lucide/settings';
import { page } from '$app/stores';
import { Button } from 'omorphia';
</script>
<div class="sidebar">
<div class="account">
<div class="account__heads">
<img src="https://mc-heads.net/avatar/venashial" alt="Minecraft head"/>
<img src="https://mc-heads.net/avatar/venashial" alt="Minecraft head" />
</div>
<a class="account__info" href="/settings/accounts">
@@ -21,23 +21,25 @@
</a>
</div>
<VerticalNav items={[
<VerticalNav
items={[
{
label: 'Home',
href: '',
icon: IconHome,
icon: IconHome
},
{
label: 'Search',
href: 'search',
icon: IconSearch,
icon: IconSearch
},
{
label: 'Library',
href: 'library',
icon: IconLibrary,
icon: IconLibrary
}
]}/>
]}
/>
<div class="instance-list">
<div class="instance-list__title">Instances</div>
+3 -5
View File
@@ -2,12 +2,10 @@
import IconChevronLeft from 'virtual:icons/lucide/chevron-left';
import IconChevronRight from 'virtual:icons/lucide/chevron-right';
import IconCaretRight from 'virtual:icons/carbon/caret-right';
import { page } from '$app/stores'
import { page } from '$app/stores';
let path: string[];
$: path = $page.url.pathname
.substring(1)
.split('/')
$: path = $page.url.pathname.substring(1).split('/');
</script>
<div class="status-bar">
@@ -58,7 +56,7 @@
}
:global(.icon) {
color: var(--color-text-lightest)
color: var(--color-text-lightest);
}
}
+26 -9
View File
@@ -1,17 +1,34 @@
<script context="module" lang="ts">
import { init, waitLocale, t, getLocaleFromAcceptLanguageHeader } from 'svelte-intl-precompile';
import { registerAll, availableLocales } from '$locales';
registerAll();
export const load: import('@sveltejs/kit').Load = async ({ session }) => {
init({
fallbackLocale: 'en',
initialLocale: getLocaleFromAcceptLanguageHeader(session.acceptLanguage, availableLocales)
});
await waitLocale();
return {};
};
</script>
<script lang="ts">
import '@fontsource/inter'
import 'omorphia/styles.postcss'
import '$styles/global.postcss'
import Sidebar from '$layout/Sidebar.svelte'
import StatusBar from "$layout/StatusBar.svelte";
import Page from "$layout/Page.svelte";
import '@fontsource/inter';
import 'omorphia/styles.postcss';
import '$styles/global.postcss';
import Sidebar from '$layout/Sidebar.svelte';
import StatusBar from '$layout/StatusBar.svelte';
import Page from '$layout/Page.svelte';
</script>
<div class="app base theme-dark">
<Sidebar />
<StatusBar />
<Page>
<slot/>
<slot />
</Page>
</div>
@@ -21,8 +38,8 @@
width: 100%;
display: grid;
grid-template-areas:
"sidebar status-bar"
"sidebar page";
'sidebar status-bar'
'sidebar page';
grid-template-rows: 2.5rem 1fr;
grid-template-columns: 14rem 1fr;
}
+21 -7
View File
@@ -1,27 +1,41 @@
<script lang="ts">
import Instance from "$components/Instance.svelte";
import CardRow from "$components/CardRow.svelte";
import Instance from '$components/Instance.svelte';
import CardRow from '$components/CardRow.svelte';
</script>
<CardRow title="Jump back in">
{#each Array(5) as _, i}
<Instance title="New Caves" id="234" version="1.18" image="https://i.ibb.co/8KDxBwq/patchnotes-cavesandcliffs.jpg" />
<Instance
title="New Caves"
id="234"
version="1.18"
image="https://i.ibb.co/8KDxBwq/patchnotes-cavesandcliffs.jpg"
/>
{/each}
</CardRow>
<CardRow title="Popular packs">
{#each Array(5) as _, i}
<Instance title="All of Fabric 5" id="567" version="1.18.1" image="https://media.forgecdn.net/avatars/458/829/637733746768258525.png" modpack />
<Instance
title="All of Fabric 5"
id="567"
version="1.18.1"
image="https://media.forgecdn.net/avatars/458/829/637733746768258525.png"
modpack
/>
{/each}
</CardRow>
<CardRow title="New releases">
{#each Array(5) as _, i}
<Instance title="New Caves" id="234" version="1.18.2" image="https://i.ibb.co/8KDxBwq/patchnotes-cavesandcliffs.jpg" />
<Instance
title="New Caves"
id="234"
version="1.18.2"
image="https://i.ibb.co/8KDxBwq/patchnotes-cavesandcliffs.jpg"
/>
{/each}
</CardRow>
<style lang="postcss">
</style>
@@ -1,11 +1,8 @@
<script context="module" lang="ts">
</script>
<script lang="ts">
</script>
<style lang="postcss">
</style>
@@ -1,29 +1,32 @@
<script lang="ts">
import VerticalNav from "$components/VerticalNav.svelte";
import IconPackage from 'virtual:icons/lucide/package'
import IconAdjustments from 'virtual:icons/heroicons-outline/adjustments'
import IconFileText from 'virtual:icons/lucide/file-text'
import VerticalNav from '$components/VerticalNav.svelte';
import IconPackage from 'virtual:icons/lucide/package';
import IconAdjustments from 'virtual:icons/heroicons-outline/adjustments';
import IconFileText from 'virtual:icons/lucide/file-text';
</script>
<div class="layout-instance">
<div class="instance-sidebar">
<VerticalNav level={3} items={[
<VerticalNav
level={3}
items={[
{
label: 'Mods',
href: 'mods',
icon: IconPackage,
icon: IconPackage
},
{
label: 'Settings',
href: 'settings',
icon: IconAdjustments,
icon: IconAdjustments
},
{
label: 'Logs',
href: 'logs',
icon: IconFileText,
icon: IconFileText
}
]}/>
]}
/>
</div>
<div class="layout-instance__page">
@@ -1,17 +1,15 @@
<script context="module" lang="ts">
</script>
<script lang="ts">
import { Checkbox, FormField, TextInput, Button } from "omorphia"
import GlobalSettings from "$components/GlobalSettings.svelte"
import TitledSection from "$components/TitledSection.svelte"
import GlobalSettings from '$components/GlobalSettings.svelte';
import TitledSection from '$components/TitledSection.svelte';
export let overrideGlobalSettings = false
export let overrideGlobalSettings = false;
</script>
<div class="section">
<TitledSection title="Override global settings" toggleable=true>
<TitledSection title="Override global settings" toggleable="true">
<GlobalSettings />
</TitledSection>
</div>
+1 -3
View File
@@ -1,10 +1,8 @@
<script context="module" lang="ts">
</script>
<script lang="ts">
import { Checkbox, FormField, TextInput, Button } from "omorphia"
import GlobalSettings from "$components/GlobalSettings.svelte"
import GlobalSettings from '$components/GlobalSettings.svelte';
</script>
<div class="section">
+3
View File
@@ -0,0 +1,3 @@
import { writable } from 'svelte/store';
export const token = writable('');
+3 -3
View File
@@ -5,11 +5,11 @@
padding: 0.5rem 0.75rem;
border-radius: var(--rounded-sm);
box-shadow: var(--shadow-inset-sm) var(--shadow-raised);
transition: background-color 0.2s ease-in-out,
color 0.1s ease-in-out;
transition: background-color 0.2s ease-in-out, color 0.1s ease-in-out;
color: var(--color-text-light);
&:hover, &.active {
&:hover,
&.active {
color: var(--color-text);
}
+1 -1
View File
@@ -8,5 +8,5 @@
--color-bg: hsl(217, 9%, 18%);
--color-brand: hsl(145, 75%, 45%);
--color-brand-contrast: black;
--sub-page-bg: hsl(220, 9%, 13%)
--sub-page-bg: hsl(220, 9%, 13%);
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
+8 -14
View File
@@ -1,29 +1,23 @@
import adapter from '@sveltejs/adapter-static';
import path from "path";
import { preprocess, plugins } from 'omorphia/config/svelte.config'
import { preprocess } from 'omorphia/config/svelte';
import path from 'path';
/** @type {import('@sveltejs/kit').Config} */
const config = {
preprocess,
preprocess: [preprocess],
kit: {
adapter: adapter({
fallback: '200.html',
fallback: '200.html'
}),
vite: {
plugins: [
...plugins,
],
resolve: {
alias: {
$generated: path.resolve('./generated'),
$stores: path.resolve('./src/stores'),
$assets: path.resolve('./src/assets'),
$components: path.resolve('./src/components'),
$layout: path.resolve('./src/layout'),
$lib: path.resolve('./src/lib'),
$stores: path.resolve('./src/stores'),
$styles: path.resolve('./src/styles'),
$generated: path.resolve('./src/generated'),
},
},
$styles: path.resolve('./src/styles')
}
}
};
+28
View File
@@ -0,0 +1,28 @@
import { sveltekit } from '@sveltejs/kit/vite';
import path from 'path';
import { plugins } from 'omorphia/config/vite';
import precompileIntl from 'svelte-intl-precompile/sveltekit-plugin';
import { Generator } from 'omorphia/plugins';
/** @type {import('vite').UserConfig} */
const config = {
plugins: [
sveltekit(),
...plugins,
precompileIntl('locales'),
Generator({
gameVersions: true,
openapi: true
})
],
optimizeDeps: {
include: ['highlight.js/lib/core']
},
server: {
fs: {
allow: ['generated']
}
}
};
export default config;