Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | <script setup lang="ts">
import AppLogoIcon from '@/components/AppLogoIcon.vue';
import Footer from '@/components/Footer.vue';
import { home } from '@/routes';
import { Link, usePage } from '@inertiajs/vue3';
const page = usePage();
const name = page.props.name;
const quote = page.props.quote;
defineProps<{
title?: string;
description?: string;
}>();
</script>
<template>
<div class="flex min-h-svh flex-col">
<div
class="relative grid flex-1 flex-col items-center justify-center px-8 sm:px-0 lg:max-w-none lg:grid-cols-2 lg:px-0"
>
<div
class="relative hidden h-full flex-col bg-muted p-10 text-white lg:flex dark:border-r"
>
<div class="absolute inset-0 bg-zinc-900" />
<Link
:href="home()"
class="relative z-20 flex items-center text-lg font-medium"
>
<AppLogoIcon class="mr-2 size-8 fill-current text-white" />
{{ name }}
</Link>
<div v-if="quote" class="relative z-20 mt-auto">
<blockquote class="space-y-2">
<p class="text-lg">“{{ quote.message }}”</p>
<footer class="text-sm text-neutral-300">
{{ quote.author }}
</footer>
</blockquote>
</div>
</div>
<div class="lg:p-8">
<div
class="mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]"
>
<div class="flex flex-col space-y-2 text-center">
<h1 class="text-xl font-medium tracking-tight" v-if="title">
{{ title }}
</h1>
<p class="text-sm text-muted-foreground" v-if="description">
{{ description }}
</p>
</div>
<slot />
</div>
</div>
</div>
<Footer />
</div>
</template>
|