chore: ⬆️ Upgrade dependencies

This commit is contained in:
Jesse Wierzbinski 2025-03-27 22:20:04 +01:00
parent 3e28801709
commit 7649ecfb80
No known key found for this signature in database
14 changed files with 947 additions and 627 deletions

View file

@ -1,15 +1,24 @@
<template>
<div class="h-svh flex items-center justify-center px-4 bg-center bg-no-repeat bg-cover" :style="{
backgroundImage: 'url(/images/banner.webp)'
}">
<div
class="h-svh flex items-center justify-center px-4 bg-center bg-no-repeat bg-cover"
:style="{
backgroundImage: 'url(/images/banner.webp)',
}"
>
<Card class="w-full max-w-md">
<CardHeader>
<CardTitle>{{ m.aware_awful_crow_spur() }}</CardTitle>
<CardDescription>{{ m.mushy_soft_lizard_propel() }}<br />{{ m.short_arable_leopard_zap() }}
<CardDescription
>{{ m.mushy_soft_lizard_propel() }}<br />{{
m.short_arable_leopard_zap()
}}
</CardDescription>
</CardHeader>
<CardContent class="grid">
<pre class="rounded bg-muted px-4 py-2 border text-center w-full font-mono text-sm font-semibold select-all">{{ code }}</pre>
<pre
class="rounded bg-muted px-4 py-2 border text-center w-full font-mono text-sm font-semibold select-all"
>{{ code }}</pre
>
</CardContent>
</Card>
</div>

View file

@ -1,41 +1,83 @@
<template>
<div class="flex h-svh items-center justify-center px-6 py-12 lg:px-8 bg-center bg-no-repeat bg-cover" :style="{
backgroundImage: 'url(/images/banner.webp)'
}">
<Card class="w-full max-w-md" as="form" method="POST" :action="url.pathname.replace('/oauth/consent', '/oauth/authorize')">
<input type="hidden" v-for="([key, value]) in url.searchParams" :key="key" :name="key" :value="value" />
<div
class="flex h-svh items-center justify-center px-6 py-12 lg:px-8 bg-center bg-no-repeat bg-cover"
:style="{
backgroundImage: 'url(/images/banner.webp)',
}"
>
<Card
class="w-full max-w-md"
as="form"
method="POST"
:action="url.pathname.replace('/oauth/consent', '/oauth/authorize')"
>
<input
type="hidden"
v-for="[key, value] in url.searchParams"
:key="key"
:name="key"
:value="value"
/>
<CardHeader>
<CardTitle as="h1" class="text-2xl break-words">{{ m.fresh_broad_cockroach_radiate({
application: application ?? "",
}) }}</CardTitle>
<CardTitle as="h1" class="text-2xl break-words">{{
m.fresh_broad_cockroach_radiate({
application: application ?? "",
})
}}</CardTitle>
</CardHeader>
<CardContent>
<Card>
<CardContent class="flex flex-col px-4 py-2">
<CardTitle as="h2" class="text-lg">{{ application }}</CardTitle>
<a v-if="website" :href="website" target="_blank" rel="noopener noreferrer" class="underline">{{ website }}</a>
<CardTitle as="h2" class="text-lg">{{
application
}}</CardTitle>
<a
v-if="website"
:href="website"
target="_blank"
rel="noopener noreferrer"
class="underline"
>{{ website }}</a
>
</CardContent>
</Card>
<ul class="list-none my-6 [&>li]:mt-2">
<li v-for="text in getScopeText(scopes)" :key="text[1]" class="flex flex-row gap-1 items-center">
<li
v-for="text in getScopeText(scopes)"
:key="text[1]"
class="flex flex-row gap-1 items-center"
>
<Check class="size-4" />
<h2 class="text-sm">
<strong class="font-bold">{{ text[0] }}</strong> {{ text[1] }}
<strong class="font-bold">{{ text[0] }}</strong>
{{ text[1] }}
</h2>
</li>
</ul>
<div class="flex-col flex gap-y-1 text-sm">
<p v-html="m.gross_antsy_kangaroo_succeed({
application: application ?? '',
})"></p>
<p v-html="m.hour_close_giraffe_mop({
application: application ?? '',
})"></p>
<p
v-html="
m.gross_antsy_kangaroo_succeed({
application: application ?? '',
})
"
></p>
<p
v-html="
m.hour_close_giraffe_mop({
application: application ?? '',
})
"
></p>
</div>
</CardContent>
<CardFooter class="grid gap-2">
<Button variant="default" type="submit">{{ m.last_spare_polecat_reside() }}</Button>
<Button :as="NuxtLink" href="/" variant="secondary">{{ m.soft_bold_ant_attend() }}</Button>
<Button variant="default" type="submit">{{
m.last_spare_polecat_reside()
}}</Button>
<Button :as="NuxtLink" href="/" variant="secondary">{{
m.soft_bold_ant_attend()
}}</Button>
</CardFooter>
</Card>
</div>
@ -44,7 +86,13 @@
<script setup lang="ts">
import { Check } from "lucide-vue-next";
import { Button } from "~/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card";
import {
Card,
CardContent,
CardFooter,
CardHeader,
CardTitle,
} from "~/components/ui/card";
import * as m from "~/paraglide/messages.js";
import { NuxtLink } from "#components";

View file

@ -1,7 +1,10 @@
<template>
<div class="flex h-svh items-center justify-center px-6 py-12 lg:px-8 bg-center bg-no-repeat bg-cover" :style="{
backgroundImage: 'url(/images/banner.webp)'
}">
<div
class="flex h-svh items-center justify-center px-6 py-12 lg:px-8 bg-center bg-no-repeat bg-cover"
:style="{
backgroundImage: 'url(/images/banner.webp)',
}"
>
<Card v-if="params.success" class="w-full max-w-md">
<CardHeader>
<CardTitle>{{ m.late_mean_capybara_fade() }}</CardTitle>
@ -16,23 +19,39 @@
</CardFooter>
</Card>
<Card v-else class="w-full max-w-md">
<form method="POST" action="/api/auth/reset" @submit="form.submitForm">
<form
method="POST"
action="/api/auth/reset"
@submit="form.submitForm"
>
<CardHeader>
<Alert v-if="params.login_reset" variant="default" class="mb-4">
<Alert
v-if="params.login_reset"
variant="default"
class="mb-4"
>
<AlertCircle class="size-4" />
<AlertTitle>{{ m.east_loud_lobster_explore() }}</AlertTitle>
<AlertTitle>{{
m.east_loud_lobster_explore()
}}</AlertTitle>
<AlertDescription>
{{ m.good_plane_gazelle_glow() }}
</AlertDescription>
</Alert>
<Alert v-if="params.error" variant="destructive" class="mb-4">
<Alert
v-if="params.error"
variant="destructive"
class="mb-4"
>
<AlertCircle class="size-4" />
<AlertTitle>{{ params.error }}</AlertTitle>
<AlertDescription>
{{ params.error_description }}
</AlertDescription>
</Alert>
<CardTitle as="h1">{{ m.tired_green_sloth_evoke() }}</CardTitle>
<CardTitle as="h1">{{
m.tired_green_sloth_evoke()
}}</CardTitle>
<CardDescription>
{{ m.solid_slow_platypus_talk() }}
</CardDescription>
@ -51,27 +70,42 @@
{{ m.true_male_gadfly_stab() }}
</FormLabel>
<FormControl>
<Input placeholder="hunter2" type="password" auto-capitalize="none" auto-correct="off"
v-bind="componentField" />
<Input
placeholder="hunter2"
type="password"
auto-capitalize="none"
auto-correct="off"
v-bind="componentField"
/>
</FormControl>
<FormMessage />
</FormItem>
</FormField>
<FormField v-slot="{ componentField }" name="password-confirm">
<FormField
v-slot="{ componentField }"
name="password-confirm"
>
<FormItem>
<FormLabel>
{{ m.awful_cozy_jannes_rise() }}
</FormLabel>
<FormControl>
<Input placeholder="hunter2" type="password" auto-capitalize="none" auto-correct="off"
v-bind="componentField" />
<Input
placeholder="hunter2"
type="password"
auto-capitalize="none"
auto-correct="off"
v-bind="componentField"
/>
</FormControl>
<FormMessage />
</FormItem>
</FormField>
</CardContent>
<CardFooter class="grid gap-2">
<Button variant="default" type="submit">{{ m.noisy_round_skate_yell() }}</Button>
<Button variant="default" type="submit">{{
m.noisy_round_skate_yell()
}}</Button>
</CardFooter>
</form>
</Card>
@ -88,6 +122,7 @@ import { Button } from "~/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
@ -147,7 +182,7 @@ const formSchema = toTypedSchema(
});
}
return {};
}),
})
);
const params = useUrlSearchParams();
@ -158,4 +193,4 @@ const form = useForm({
token: (params.token as string) ?? undefined,
},
});
</script>
</script>

View file

@ -1,21 +1,28 @@
<template>
<div class="md:px-8 px-4 py-2 max-w-7xl mx-auto w-full space-y-6">
<div :class="cn('grid gap-2', canUpload && 'grid-cols-[1fr,auto]')">
<h1 class="scroll-m-20 text-3xl font-extrabold tracking-tight lg:text-4xl capitalize">
<h1
class="scroll-m-20 text-3xl font-extrabold tracking-tight lg:text-4xl capitalize"
>
{{ m.suave_smart_mantis_climb() }}
</h1>
<Uploader v-if="canUpload">
<Button variant="default">
<Upload /> Upload
</Button>
<Button variant="default"> <Upload /> Upload </Button>
</Uploader>
</div>
<div v-if="emojis.length > 0" class="max-w-sm w-full relative">
<Input v-model="search" placeholder="Search" class="pl-8" />
<Search class="absolute size-4 top-1/2 left-2.5 transform -translate-y-1/2" />
<Search
class="absolute size-4 top-1/2 left-2.5 transform -translate-y-1/2"
/>
</div>
<Category v-if="emojis.length > 0" v-for="([name, emojis]) in categories" :key="name" :emojis="emojis"
:name="name" />
<Category
v-if="emojis.length > 0"
v-for="[name, emojis] in categories"
:key="name"
:emojis="emojis"
:name="name"
/>
<Card v-else class="shadow-none bg-transparent border-none p-4">
<CardHeader class="text-center gap-y-4">
<CardTitle>{{ m.actual_steep_llama_rest() }}</CardTitle>
@ -33,6 +40,7 @@ import { type Emoji, RolePermission } from "@versia/client/types";
import { Search, Upload } from "lucide-vue-next";
import Category from "~/components/preferences/emojis/category.vue";
import Uploader from "~/components/preferences/emojis/uploader.vue";
import { Button } from "~/components/ui/button";
import {
Card,
CardDescription,
@ -60,14 +68,14 @@ const permissions = usePermissions();
const canUpload = computed(
() =>
permissions.value.includes(RolePermission.ManageOwnEmojis) ||
permissions.value.includes(RolePermission.ManageEmojis),
permissions.value.includes(RolePermission.ManageEmojis)
);
const emojis = computed(
() =>
identity.value?.emojis?.filter((emoji) =>
emoji.shortcode.toLowerCase().includes(search.value.toLowerCase()),
) ?? [],
emoji.shortcode.toLowerCase().includes(search.value.toLowerCase())
) ?? []
);
const search = ref("");
@ -95,4 +103,4 @@ const categories = computed(() => {
}
return categories;
});
</script>
</script>