47 lines
1.7 KiB
Vue
47 lines
1.7 KiB
Vue
<script setup lang="ts">
|
|
definePageMeta({
|
|
layout: 'auth',
|
|
});
|
|
|
|
const { isAdmin } = useAuth();
|
|
|
|
// the rest of first-run setup belongs to the admin who just made the account
|
|
if (!isAdmin.value) {
|
|
await navigateTo('/');
|
|
}
|
|
|
|
const finish = () => navigateTo('/');
|
|
const back = () => navigateTo('/setup/instance');
|
|
</script>
|
|
|
|
<template>
|
|
<div class="relative flex flex-col items-center justify-center w-full h-full p-4 overflow-hidden">
|
|
<!-- Background decorative blobs -->
|
|
<div
|
|
class="absolute -top-24 -right-24 w-96 h-96 bg-[var(--color-accent)] opacity-10 blur-[100px] rounded-full pointer-events-none">
|
|
</div>
|
|
<div
|
|
class="absolute -bottom-24 -left-24 w-96 h-96 bg-[var(--color-accent)] opacity-5 blur-[100px] rounded-full pointer-events-none">
|
|
</div>
|
|
|
|
<div class="z-10 max-w-104 w-full flex flex-col gap-5">
|
|
<div class="flex flex-col items-center gap-1 text-center">
|
|
<h1 class="text-3xl font-bold tracking-tight">Veridian</h1>
|
|
<p class="text-[var(--text-secondary)]">Connect your first AI provider</p>
|
|
</div>
|
|
|
|
<OnboardingSetupSteps :current="3"></OnboardingSetupSteps>
|
|
|
|
<OnboardingProviderForm submit-label="Fetch models and finish" :show-back="true" @done="finish"
|
|
@back="back">
|
|
<template #note>
|
|
<p class="text-xs leading-normal text-[var(--text-secondary)]">
|
|
Providers are per account. Other people on this instance add their own keys, and nobody,
|
|
including admins, can read yours.
|
|
</p>
|
|
</template>
|
|
</OnboardingProviderForm>
|
|
</div>
|
|
</div>
|
|
</template>
|