-
Workspace folder
-
-
+
+
+
+ {#each sections as item}
(section = item.id)}
>
-
- Browse
+
+ {item.label}
-
-
- Projects are stored as plain folders here.
-
-
+ {/each}
+
-
- TypstDrive server
-
-
+
+ {#if section === "files"}
+
+
+
+ Workspace folder
+
+
+
+
+
+ Browse
+
+
+
+ Projects and documents are stored as plain files here.
+
+
-
- Autosave
-
- {#each autosaveOptions as option}
- {option.label}
- {/each}
-
-
- Saves the file being edited after you stop typing.
-
-
-
-
- Automatic sync
-
- {#each syncOptions as option}
- {option.label}
- {/each}
-
-
- Pulls and pushes cloud-linked projects on a timer. Conflicts pause
- syncing until they are resolved.
-
-
-
-
-
-
- {#if app.account}
-
{app.account.username}
-
{app.account.email}
- {:else}
-
Not connected
-
- Sign in to sync projects to the cloud.
-
- {/if}
-
- {#if app.account}
-
- Sign out
-
- {:else}
-
- Sign in
-
- {/if}
-
-
-
-
Appearance
-
- {#each [["light", "ph:sun"], ["dark", "ph:moon"]] as [value, icon]}
-
applyTheme(value as "light" | "dark")}
+
+ Autosave
+
+ {#each autosaveOptions as option}
+ {option.label}
+ {/each}
+
+
+ Saves the file being edited after you stop typing.
+
+
+
+ {:else if section === "appearance"}
+
+
+
Theme
+
+ {#each [["light", "Light", "ph:sun"], ["dark", "Dark", "ph:moon"]] as [value, label, icon]}
+ applyTheme(value as "light" | "dark")}
+ >
+
+ {label}
+
+ {/each}
+
+
+ Applies immediately to the editor and preview.
+
+
+
+ {:else if section === "account"}
+
+
-
- {value === "light" ? "Light" : "Dark"}
-
- {/each}
-
+
+
+ {#if app.account}
+
{app.account.username}
+
{app.account.email}
+ {:else}
+
Not connected
+
+ Sign in to sync projects to the cloud.
+
+ {/if}
+
+ {#if app.account}
+
+ Sign out
+
+ {:else}
+
+ Sign in
+
+ {/if}
+
+
+
+
+ TypstDrive server
+
+
+
+
+
+
+ Automatic sync
+
+
+ {#each syncOptions as option}
+ {option.label}
+ {/each}
+
+
+ Pulls and pushes cloud-linked projects on a timer. Conflicts pause
+ syncing until they are resolved.
+
+
+
+ {:else}
+
+
+
+
+
Typst Desktop
+
+ A local editor for Typst documents
+
+
+
+
+ {#if info}
+
+ {#each [["Version", info.version], ["Typst", info.typst_version], ["Tauri", info.tauri_version], ["Author", info.authors], ["License", info.license]] as [label, value]}
+
+
{label}
+ {value}
+
+ {/each}
+
+ {/if}
+
+
+ {#each links as link}
+ openUrl(link.url)}
+ >
+
+ {link.label}
+
+
+ {/each}
+
+
+
+ Typst Desktop is a community application and is not affiliated with,
+ endorsed by, or supported by the official Typst project. The links
+ above open the official Typst website in your browser.
+
+
+ {/if}
@@ -197,14 +309,16 @@
class="rounded-md px-3 py-1.5 text-xs text-[var(--color-ink-muted)] hover:bg-[var(--color-surface-sunken)]"
onclick={onclose}
>
- Cancel
-
-
- Save
+ {section === "about" || section === "appearance" ? "Close" : "Cancel"}
+ {#if section !== "about" && section !== "appearance"}
+
+ {saving ? "Saving..." : "Save"}
+
+ {/if}
{/snippet}
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index b4d94c5..56c5f43 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -17,7 +17,6 @@
import AssetsModal from "$lib/components/AssetsModal.svelte";
import WindowControls from "$lib/components/WindowControls.svelte";
import ImageViewer from "$lib/components/ImageViewer.svelte";
- import InfoModal from "$lib/components/InfoModal.svelte";
import EditorToolbar from "$lib/components/EditorToolbar.svelte";
import PageSettingsModal from "$lib/components/PageSettingsModal.svelte";
@@ -67,7 +66,6 @@
| { kind: "delete-file"; path: string }
| { kind: "login" }
| { kind: "settings" }
- | { kind: "info" }
| { kind: "assets" }
| { kind: "page-settings" }
| { kind: "conflicts" };
@@ -514,14 +512,6 @@
-
(dialog = { kind: "info" })}
- aria-label="About"
- >
-
-
-
@@ -838,8 +828,6 @@
/>
{:else if dialog.kind === "settings"}
(dialog = { kind: "login" })} />
-{:else if dialog.kind === "info"}
-
{:else if dialog.kind === "assets"}