mirror of
https://github.com/versia-pub/frontend.git
synced 2026-01-26 04:16:02 +01:00
style: 🎨 Run Biome formatter
This commit is contained in:
parent
74c3b26f20
commit
68e23a818a
|
|
@ -1,13 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<TooltipProvider>
|
<TooltipProvider>
|
||||||
<Component is="style">{{ preferences.custom_css }}</Component>
|
<Component is="style">{{ preferences.custom_css }}</Component>
|
||||||
<NuxtPwaAssets/>
|
<NuxtPwaAssets />
|
||||||
<NuxtLayout>
|
<NuxtLayout>
|
||||||
<NuxtPage/>
|
<NuxtPage />
|
||||||
</NuxtLayout>
|
</NuxtLayout>
|
||||||
<ConfirmationModal/>
|
<ConfirmationModal />
|
||||||
<!-- pointer-events-auto fixes https://github.com/unovue/shadcn-vue/issues/462 -->
|
<!-- pointer-events-auto fixes https://github.com/unovue/shadcn-vue/issues/462 -->
|
||||||
<Toaster class="pointer-events-auto"/>
|
<Toaster class="pointer-events-auto" />
|
||||||
</TooltipProvider>
|
</TooltipProvider>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-if="relation" class="overflow-auto max-h-72">
|
<div v-if="relation" class="overflow-auto max-h-72">
|
||||||
<Note :note="relation.note" :hide-actions="true" :small-layout="true"/>
|
<Note :note="relation.note" :hide-actions="true" :small-layout="true" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<InputGroup class="p-1">
|
<InputGroup class="p-1">
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
align="block-end"
|
align="block-end"
|
||||||
class="overflow-x-auto *:shrink-0"
|
class="overflow-x-auto *:shrink-0"
|
||||||
>
|
>
|
||||||
<Files v-model:files="store.files" :composer-key="composerKey"/>
|
<Files v-model:files="store.files" :composer-key="composerKey" />
|
||||||
</InputGroupAddon>
|
</InputGroupAddon>
|
||||||
|
|
||||||
<InputGroupAddon align="block-end">
|
<InputGroupAddon align="block-end">
|
||||||
|
|
@ -42,8 +42,8 @@
|
||||||
disable-select-icon
|
disable-select-icon
|
||||||
>
|
>
|
||||||
<InputGroupButton variant="ghost" size="icon-sm">
|
<InputGroupButton variant="ghost" size="icon-sm">
|
||||||
<LetterText v-if="store.contentType === 'text/html'"/>
|
<LetterText v-if="store.contentType === 'text/html'" />
|
||||||
<Type v-else/>
|
<Type v-else />
|
||||||
</InputGroupButton>
|
</InputGroupButton>
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="store.relation?.type === 'edit'"
|
:disabled="store.relation?.type === 'edit'"
|
||||||
>
|
>
|
||||||
<component :is="visibilities[store.visibility].icon"/>
|
<component :is="visibilities[store.visibility].icon" />
|
||||||
</InputGroupButton>
|
</InputGroupButton>
|
||||||
</VisibilityPicker>
|
</VisibilityPicker>
|
||||||
<InputGroupButton
|
<InputGroupButton
|
||||||
|
|
@ -65,10 +65,10 @@
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
@click="fileInput?.click()"
|
@click="fileInput?.click()"
|
||||||
>
|
>
|
||||||
<FilePlus2/>
|
<FilePlus2 />
|
||||||
</InputGroupButton>
|
</InputGroupButton>
|
||||||
<Toggle size="sm" v-model="store.sensitive">
|
<Toggle size="sm" v-model="store.sensitive">
|
||||||
<TriangleAlert/>
|
<TriangleAlert />
|
||||||
</Toggle>
|
</Toggle>
|
||||||
<InputGroupText
|
<InputGroupText
|
||||||
:class="['ml-auto', charactersLeft < 0 && 'text-destructive']"
|
:class="['ml-auto', charactersLeft < 0 && 'text-destructive']"
|
||||||
|
|
@ -79,15 +79,15 @@
|
||||||
compactDisplay: 'short',
|
compactDisplay: 'short',
|
||||||
}) }}
|
}) }}
|
||||||
</InputGroupText>
|
</InputGroupText>
|
||||||
<Separator orientation="vertical" class="h-4!"/>
|
<Separator orientation="vertical" class="h-4!" />
|
||||||
<InputGroupButton
|
<InputGroupButton
|
||||||
variant="default"
|
variant="default"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="store.sending || !store.canSend"
|
:disabled="store.sending || !store.canSend"
|
||||||
@click="send"
|
@click="send"
|
||||||
>
|
>
|
||||||
<Spinner v-if="store.sending"/>
|
<Spinner v-if="store.sending" />
|
||||||
<ArrowUp v-else/>
|
<ArrowUp v-else />
|
||||||
<span class="sr-only">Send</span>
|
<span class="sr-only">Send</span>
|
||||||
</InputGroupButton>
|
</InputGroupButton>
|
||||||
</InputGroupAddon>
|
</InputGroupAddon>
|
||||||
|
|
|
||||||
|
|
@ -84,24 +84,20 @@ const relation = ref(
|
||||||
class="sm:max-w-xl max-w-full w-[calc(100%-2*0.5rem)] grid-cols-1 max-h-[90dvh] p-0 top-2 sm:top-1/2 translate-y-0 sm:-translate-y-1/2 border-none bg-transparent shadow-none"
|
class="sm:max-w-xl max-w-full w-[calc(100%-2*0.5rem)] grid-cols-1 max-h-[90dvh] p-0 top-2 sm:top-1/2 translate-y-0 sm:-translate-y-1/2 border-none bg-transparent shadow-none"
|
||||||
>
|
>
|
||||||
<DialogTitle class="sr-only">
|
<DialogTitle class="sr-only">
|
||||||
{{
|
{{ relation?.type === "reply"
|
||||||
relation?.type === "reply"
|
|
||||||
? m.loved_busy_mantis_slide()
|
? m.loved_busy_mantis_slide()
|
||||||
: relation?.type === "quote"
|
: relation?.type === "quote"
|
||||||
? "Quote"
|
? "Quote"
|
||||||
: m.chunky_dull_marlin_trip()
|
: m.chunky_dull_marlin_trip() }}
|
||||||
}}
|
|
||||||
</DialogTitle>
|
</DialogTitle>
|
||||||
<DialogDescription class="sr-only">
|
<DialogDescription class="sr-only">
|
||||||
{{
|
{{ relation?.type === "reply"
|
||||||
relation?.type === "reply"
|
|
||||||
? m.tired_grassy_vulture_forgive()
|
? m.tired_grassy_vulture_forgive()
|
||||||
: relation?.type === "quote"
|
: relation?.type === "quote"
|
||||||
? m.livid_livid_nils_snip()
|
? m.livid_livid_nils_snip()
|
||||||
: m.brief_cool_capybara_fear()
|
: m.brief_cool_capybara_fear() }}
|
||||||
}}
|
|
||||||
</DialogDescription>
|
</DialogDescription>
|
||||||
<Composer :relation="relation ?? undefined"/>
|
<Composer :relation="relation ?? undefined" />
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
class="object-contain h-28 w-full"
|
class="object-contain h-28 w-full"
|
||||||
:alt="file.alt"
|
:alt="file.alt"
|
||||||
>
|
>
|
||||||
<FileIcon v-else class="size-6 m-auto text-muted-foreground"/>
|
<FileIcon v-else class="size-6 m-auto text-muted-foreground" />
|
||||||
<Badge
|
<Badge
|
||||||
v-if="file.file && !(file.uploading || file.updating)"
|
v-if="file.file && !(file.uploading || file.updating)"
|
||||||
class="absolute bottom-1 right-1"
|
class="absolute bottom-1 right-1"
|
||||||
|
|
@ -28,14 +28,14 @@
|
||||||
<DropdownMenuLabel v-if="file.file">
|
<DropdownMenuLabel v-if="file.file">
|
||||||
{{ file.file.name }}
|
{{ file.file.name }}
|
||||||
</DropdownMenuLabel>
|
</DropdownMenuLabel>
|
||||||
<DropdownMenuSeparator/>
|
<DropdownMenuSeparator />
|
||||||
<DropdownMenuItem @click="editCaption">
|
<DropdownMenuItem @click="editCaption">
|
||||||
<Captions/>
|
<Captions />
|
||||||
Add caption
|
Add caption
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuSeparator/>
|
<DropdownMenuSeparator />
|
||||||
<DropdownMenuItem @click="emit('remove')">
|
<DropdownMenuItem @click="emit('remove')">
|
||||||
<Delete/>
|
<Delete />
|
||||||
Remove
|
Remove
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Select v-model:model-value="visibility">
|
<Select v-model:model-value="visibility">
|
||||||
<SelectTrigger as-child disable-default-classes disable-select-icon>
|
<SelectTrigger as-child disable-default-classes disable-select-icon>
|
||||||
<slot/>
|
<slot />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem
|
<SelectItem
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<div
|
<div
|
||||||
class="flex flex-row gap-3 items-center w-full justify-between"
|
class="flex flex-row gap-3 items-center w-full justify-between"
|
||||||
>
|
>
|
||||||
<component :is="v.icon" class="size-4"/>
|
<component :is="v.icon" class="size-4" />
|
||||||
<div class="flex flex-col gap-1">
|
<div class="flex flex-col gap-1">
|
||||||
<span class="font-semibold">{{ v.name }}</span>
|
<span class="font-semibold">{{ v.name }}</span>
|
||||||
<span>{{ v.text }}</span>
|
<span>{{ v.text }}</span>
|
||||||
|
|
|
||||||
|
|
@ -75,25 +75,25 @@ watch(active, (value) => {
|
||||||
class="bg-popover rounded-md"
|
class="bg-popover rounded-md"
|
||||||
>
|
>
|
||||||
<ToggleGroupItem value="bold">
|
<ToggleGroupItem value="bold">
|
||||||
<BoldIcon/>
|
<BoldIcon />
|
||||||
</ToggleGroupItem>
|
</ToggleGroupItem>
|
||||||
<ToggleGroupItem value="italic">
|
<ToggleGroupItem value="italic">
|
||||||
<ItalicIcon/>
|
<ItalicIcon />
|
||||||
</ToggleGroupItem>
|
</ToggleGroupItem>
|
||||||
<ToggleGroupItem value="underline">
|
<ToggleGroupItem value="underline">
|
||||||
<UnderlineIcon/>
|
<UnderlineIcon />
|
||||||
</ToggleGroupItem>
|
</ToggleGroupItem>
|
||||||
<ToggleGroupItem value="code">
|
<ToggleGroupItem value="code">
|
||||||
<CurlyBracesIcon/>
|
<CurlyBracesIcon />
|
||||||
</ToggleGroupItem>
|
</ToggleGroupItem>
|
||||||
<ToggleGroupItem value="strike">
|
<ToggleGroupItem value="strike">
|
||||||
<StrikethroughIcon/>
|
<StrikethroughIcon />
|
||||||
</ToggleGroupItem>
|
</ToggleGroupItem>
|
||||||
<ToggleGroupItem value="subscript">
|
<ToggleGroupItem value="subscript">
|
||||||
<SubscriptIcon/>
|
<SubscriptIcon />
|
||||||
</ToggleGroupItem>
|
</ToggleGroupItem>
|
||||||
<ToggleGroupItem value="superscript">
|
<ToggleGroupItem value="superscript">
|
||||||
<SuperscriptIcon/>
|
<SuperscriptIcon />
|
||||||
</ToggleGroupItem>
|
</ToggleGroupItem>
|
||||||
</ToggleGroup>
|
</ToggleGroup>
|
||||||
</BubbleMenu>
|
</BubbleMenu>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<BubbleMenu :editor="editor"/>
|
<BubbleMenu :editor="editor" />
|
||||||
<EditorContent :editor="editor" v-bind="$attrs" :class="$style.content"/>
|
<EditorContent :editor="editor" v-bind="$attrs" :class="$style.content" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import SquarePattern from "../graphics/square-pattern.vue";
|
||||||
<div
|
<div
|
||||||
class="grid min-h-screen place-items-center px-6 py-24 sm:py-32 lg:px-8 fixed inset-0 z-[1000000] bg-dark-900"
|
class="grid min-h-screen place-items-center px-6 py-24 sm:py-32 lg:px-8 fixed inset-0 z-[1000000] bg-dark-900"
|
||||||
>
|
>
|
||||||
<SquarePattern/>
|
<SquarePattern />
|
||||||
<div class="prose prose-invert max-w-lg">
|
<div class="prose prose-invert max-w-lg">
|
||||||
<h1
|
<h1
|
||||||
class="mt-4 text-3xl font-bold tracking-tight text-gray-100 sm:text-5xl"
|
class="mt-4 text-3xl font-bold tracking-tight text-gray-100 sm:text-5xl"
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<slot/>
|
<slot />
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Card>
|
</Card>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>{{ title }}</FormLabel>
|
<FormLabel>{{ title }}</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<slot/>
|
<slot />
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormDescription v-if="description">{{ description }}</FormDescription>
|
<FormDescription v-if="description">{{ description }}</FormDescription>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<Card class="flex items-center justify-center">
|
<Card class="flex items-center justify-center">
|
||||||
<Loader class="size-6 animate-spin"/>
|
<Loader class="size-6 animate-spin" />
|
||||||
</Card>
|
</Card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,26 +7,16 @@
|
||||||
:name="instance.title"
|
:name="instance.title"
|
||||||
/>
|
/>
|
||||||
<div class="grid text-sm leading-tight *:line-clamp-1">
|
<div class="grid text-sm leading-tight *:line-clamp-1">
|
||||||
<span class="truncate font-semibold">
|
<span class="truncate font-semibold"> {{ instance.domain }} </span>
|
||||||
{{
|
|
||||||
instance.domain
|
|
||||||
}}
|
|
||||||
</span>
|
|
||||||
<span class="line-clamp-3 text-xs">
|
<span class="line-clamp-3 text-xs">
|
||||||
{{
|
{{ instance.versia_version || instance.version }}
|
||||||
instance.versia_version || instance.version
|
|
||||||
}}
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="line-clamp-1 text-sm font-semibold col-span-2">
|
<h1 class="line-clamp-1 text-sm font-semibold col-span-2">
|
||||||
{{
|
{{ instance.title }}
|
||||||
instance.title
|
|
||||||
}}
|
|
||||||
</h1>
|
</h1>
|
||||||
<p class="line-clamp-5 text-xs col-span-2">
|
<p class="line-clamp-5 text-xs col-span-2">
|
||||||
{{
|
{{ instance.description }}
|
||||||
instance.description
|
|
||||||
}}
|
|
||||||
</p>
|
</p>
|
||||||
</Card>
|
</Card>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ const inputValue = ref<string>("");
|
||||||
<template>
|
<template>
|
||||||
<Dialog>
|
<Dialog>
|
||||||
<DialogTrigger :as-child="true">
|
<DialogTrigger :as-child="true">
|
||||||
<slot/>
|
<slot />
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent class="sm:max-w-[425px]">
|
<DialogContent class="sm:max-w-[425px]">
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<DrawerContent class="flex flex-col gap-2 px-4 mb-4 [&>:nth-child(2)]:mt-4">
|
<DrawerContent class="flex flex-col gap-2 px-4 mb-4 [&>:nth-child(2)]:mt-4">
|
||||||
<slot/>
|
<slot />
|
||||||
</DrawerContent>
|
</DrawerContent>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
class="fixed md:hidden bottom-0 inset-x-0 border-t h-16 bg-background z-10 flex items-center justify-around *:h-full *:w-full gap-6 px-4 py-2 [&>a>svg]:size-5 [&>button>svg]:size-5"
|
class="fixed md:hidden bottom-0 inset-x-0 border-t h-16 bg-background z-10 flex items-center justify-around *:h-full *:w-full gap-6 px-4 py-2 [&>a>svg]:size-5 [&>button>svg]:size-5"
|
||||||
>
|
>
|
||||||
<Button :as="NuxtLink" href="/" variant="ghost" size="icon">
|
<Button :as="NuxtLink" href="/" variant="ghost" size="icon">
|
||||||
<Home/>
|
<Home />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
:as="NuxtLink"
|
:as="NuxtLink"
|
||||||
|
|
@ -11,10 +11,10 @@
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="icon"
|
size="icon"
|
||||||
>
|
>
|
||||||
<Bell/>
|
<Bell />
|
||||||
</Button>
|
</Button>
|
||||||
<Button variant="ghost" size="icon">
|
<Button variant="ghost" size="icon">
|
||||||
<User/>
|
<User />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="default"
|
variant="default"
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
:title="m.salty_aloof_turkey_nudge()"
|
:title="m.salty_aloof_turkey_nudge()"
|
||||||
@click="useEvent('composer:open')"
|
@click="useEvent('composer:open')"
|
||||||
>
|
>
|
||||||
<Pen/>
|
<Pen />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Button variant="ghost" size="sm">
|
<Button variant="ghost" size="sm">
|
||||||
<component :is="icon" class="size-4"/>
|
<component :is="icon" class="size-4" />
|
||||||
<slot/>
|
<slot />
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
v-else-if="attachment.type === 'audio'"
|
v-else-if="attachment.type === 'audio'"
|
||||||
:attachment="attachment"
|
:attachment="attachment"
|
||||||
/>
|
/>
|
||||||
<FileAttachment v-else :attachment="attachment"/>
|
<FileAttachment v-else :attachment="attachment" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
class="w-full h-full overflow-hidden relative p-0 *:first:w-full *:first:h-full *:first:object-contain *:first:bg-muted/20"
|
class="w-full h-full overflow-hidden relative p-0 *:first:w-full *:first:h-full *:first:object-contain *:first:bg-muted/20"
|
||||||
>
|
>
|
||||||
<DialogTrigger v-if="lightbox" :as-child="true">
|
<DialogTrigger v-if="lightbox" :as-child="true">
|
||||||
<slot/>
|
<slot />
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<slot v-else/>
|
<slot v-else />
|
||||||
<!-- Alt text viewer -->
|
<!-- Alt text viewer -->
|
||||||
<Popover v-if="attachment.description">
|
<Popover v-if="attachment.description">
|
||||||
<div class="absolute top-0 right-0 p-2">
|
<div class="absolute top-0 right-0 p-2">
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
size="icon"
|
size="icon"
|
||||||
title="View alt text"
|
title="View alt text"
|
||||||
>
|
>
|
||||||
<Captions/>
|
<Captions />
|
||||||
</Button>
|
</Button>
|
||||||
</PopoverTrigger>
|
</PopoverTrigger>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -43,18 +43,18 @@
|
||||||
size="icon"
|
size="icon"
|
||||||
class="ml-auto"
|
class="ml-auto"
|
||||||
>
|
>
|
||||||
<Download/>
|
<Download />
|
||||||
</Button>
|
</Button>
|
||||||
<DialogClose :as-child="true">
|
<DialogClose :as-child="true">
|
||||||
<Button variant="outline" size="icon">
|
<Button variant="outline" size="icon">
|
||||||
<X/>
|
<X />
|
||||||
</Button>
|
</Button>
|
||||||
</DialogClose>
|
</DialogClose>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="flex items-center justify-center overflow-hidden *:max-h-[80vh] *:max-w-[80vw] *:w-full *:h-full *:object-contain"
|
class="flex items-center justify-center overflow-hidden *:max-h-[80vh] *:max-w-[80vw] *:w-full *:h-full *:object-contain"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
<DialogDescription class="flex items-center justify-center">
|
<DialogDescription class="flex items-center justify-center">
|
||||||
<Card
|
<Card
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<div
|
<div
|
||||||
class="flex flex-col items-center justify-center min-h-48 text-sm gap-2"
|
class="flex flex-col items-center justify-center min-h-48 text-sm gap-2"
|
||||||
>
|
>
|
||||||
<File class="size-12"/>
|
<File class="size-12" />
|
||||||
<span>File attachment</span>
|
<span>File attachment</span>
|
||||||
</div>
|
</div>
|
||||||
</AttachmentBase>
|
</AttachmentBase>
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,7 @@
|
||||||
{{ hidden ? m.bald_direct_turtle_win() :
|
{{ hidden ? m.bald_direct_turtle_win() :
|
||||||
m.known_flaky_cockroach_dash() }}
|
m.known_flaky_cockroach_dash() }}
|
||||||
{{ characterCount > 0 ? ` (${characterCount} characters` : "" }}
|
{{ characterCount > 0 ? ` (${characterCount} characters` : "" }}
|
||||||
{{
|
{{ attachmentCount > 0 ? `${characterCount > 0 ? " · " : " ("}${attachmentCount} file(s)` : "" }}
|
||||||
attachmentCount > 0 ? `${characterCount > 0 ? " · " : " ("}${attachmentCount} file(s)` : "" }}
|
|
||||||
{{ (characterCount > 0 || attachmentCount > 0) ? ")" : "" }}
|
{{ (characterCount > 0 || attachmentCount > 0) ? ")" : "" }}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div v-if="quote" class="mt-4 rounded border overflow-hidden">
|
<div v-if="quote" class="mt-4 rounded border overflow-hidden">
|
||||||
<Note :note="quote" :hide-actions="true" :small-layout="true"/>
|
<Note :note="quote" :hide-actions="true" :small-layout="true" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="flex items-start justify-between">
|
<div class="flex items-start justify-between">
|
||||||
<div class="flex items-center gap-3">
|
<div class="flex items-center gap-3">
|
||||||
<NuxtLink :href="urlAsPath">
|
<NuxtLink :href="urlAsPath">
|
||||||
<Avatar :src="author.avatar" :name="author.display_name"/>
|
<Avatar :src="author.avatar" :name="author.display_name" />
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
<div class="flex flex-col gap-0.5">
|
<div class="flex flex-col gap-0.5">
|
||||||
<div class="flex items-center gap-1">
|
<div class="flex items-center gap-1">
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
@delete="emit('delete')"
|
@delete="emit('delete')"
|
||||||
>
|
>
|
||||||
<Button variant="ghost" size="icon">
|
<Button variant="ghost" size="icon">
|
||||||
<Ellipsis/>
|
<Ellipsis />
|
||||||
</Button>
|
</Button>
|
||||||
</Menu>
|
</Menu>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ const _delete = async () => {
|
||||||
<template>
|
<template>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger as-child>
|
<DropdownMenuTrigger as-child>
|
||||||
<slot/>
|
<slot />
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent class="min-w-56">
|
<DropdownMenuContent class="min-w-56">
|
||||||
<DropdownMenuGroup>
|
<DropdownMenuGroup>
|
||||||
|
|
@ -88,22 +88,22 @@ const _delete = async () => {
|
||||||
as="button"
|
as="button"
|
||||||
@click="emit('edit')"
|
@click="emit('edit')"
|
||||||
>
|
>
|
||||||
<Pencil/>
|
<Pencil />
|
||||||
{{ m.front_lime_grizzly_persist() }}
|
{{ m.front_lime_grizzly_persist() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem as="button" @click="copyText(apiNoteString)">
|
<DropdownMenuItem as="button" @click="copyText(apiNoteString)">
|
||||||
<Code/>
|
<Code />
|
||||||
{{ m.yummy_moving_scallop_sail() }}
|
{{ m.yummy_moving_scallop_sail() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem as="button" @click="copyText(noteId)">
|
<DropdownMenuItem as="button" @click="copyText(noteId)">
|
||||||
<Hash/>
|
<Hash />
|
||||||
{{ m.sunny_zany_jellyfish_pop() }}
|
{{ m.sunny_zany_jellyfish_pop() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator/>
|
<DropdownMenuSeparator />
|
||||||
<DropdownMenuGroup>
|
<DropdownMenuGroup>
|
||||||
<DropdownMenuItem as="button" @click="copyText(url)">
|
<DropdownMenuItem as="button" @click="copyText(url)">
|
||||||
<Link/>
|
<Link />
|
||||||
{{ m.ago_new_pelican_drip() }}
|
{{ m.ago_new_pelican_drip() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
|
|
@ -111,7 +111,7 @@ const _delete = async () => {
|
||||||
v-if="isRemote && remoteUrl"
|
v-if="isRemote && remoteUrl"
|
||||||
@click="copyText(remoteUrl)"
|
@click="copyText(remoteUrl)"
|
||||||
>
|
>
|
||||||
<Link/>
|
<Link />
|
||||||
{{ m.solid_witty_zebra_walk() }}
|
{{ m.solid_witty_zebra_walk() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
|
|
@ -121,29 +121,29 @@ const _delete = async () => {
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
:href="remoteUrl"
|
:href="remoteUrl"
|
||||||
>
|
>
|
||||||
<ExternalLink/>
|
<ExternalLink />
|
||||||
{{ m.active_trite_lark_inspire() }}
|
{{ m.active_trite_lark_inspire() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator v-if="authorIsMe"/>
|
<DropdownMenuSeparator v-if="authorIsMe" />
|
||||||
<DropdownMenuGroup v-if="authorIsMe">
|
<DropdownMenuGroup v-if="authorIsMe">
|
||||||
<DropdownMenuItem as="button" :disabled="true">
|
<DropdownMenuItem as="button" :disabled="true">
|
||||||
<Delete/>
|
<Delete />
|
||||||
{{ m.real_green_clownfish_pet() }}
|
{{ m.real_green_clownfish_pet() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem as="button" @click="_delete">
|
<DropdownMenuItem as="button" @click="_delete">
|
||||||
<Trash/>
|
<Trash />
|
||||||
{{ m.tense_quick_cod_favor() }}
|
{{ m.tense_quick_cod_favor() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator v-if="authStore.isSignedIn && !authorIsMe"/>
|
<DropdownMenuSeparator v-if="authStore.isSignedIn && !authorIsMe" />
|
||||||
<DropdownMenuGroup v-if="authStore.isSignedIn && !authorIsMe">
|
<DropdownMenuGroup v-if="authStore.isSignedIn && !authorIsMe">
|
||||||
<DropdownMenuItem as="button" :disabled="true">
|
<DropdownMenuItem as="button" :disabled="true">
|
||||||
<Flag/>
|
<Flag />
|
||||||
{{ m.great_few_jaguar_rise() }}
|
{{ m.great_few_jaguar_rise() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem as="button" @click="blockUser(authorId)">
|
<DropdownMenuItem as="button" @click="blockUser(authorId)">
|
||||||
<Ban/>
|
<Ban />
|
||||||
{{ m.misty_soft_sparrow_vent() }}
|
{{ m.misty_soft_sparrow_vent() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
maxHeight: collapsed ? '18rem' : `${container?.scrollHeight}px`,
|
maxHeight: collapsed ? '18rem' : `${container?.scrollHeight}px`,
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
<div
|
<div
|
||||||
v-if="isOverflowing && collapsed"
|
v-if="isOverflowing && collapsed"
|
||||||
class="absolute inset-x-0 bottom-0 h-36 bg-gradient-to-t from-black/5 to-transparent rounded-b"
|
class="absolute inset-x-0 bottom-0 h-36 bg-gradient-to-t from-black/5 to-transparent rounded-b"
|
||||||
|
|
@ -16,13 +16,11 @@
|
||||||
@click="collapsed = !collapsed"
|
@click="collapsed = !collapsed"
|
||||||
class="absolute bottom-2 right-1/2 translate-x-1/2"
|
class="absolute bottom-2 right-1/2 translate-x-1/2"
|
||||||
>
|
>
|
||||||
{{
|
{{ collapsed
|
||||||
collapsed
|
|
||||||
? `${m.lazy_honest_mammoth_bump()}${formattedCharacterCount ? ` • ${m.dark_spare_goldfish_charm({
|
? `${m.lazy_honest_mammoth_bump()}${formattedCharacterCount ? ` • ${m.dark_spare_goldfish_charm({
|
||||||
count: formattedCharacterCount,
|
count: formattedCharacterCount,
|
||||||
})}` : ""}`
|
})}` : ""}`
|
||||||
: m.that_misty_mule_arrive()
|
: m.that_misty_mule_arrive() }}
|
||||||
}}
|
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
$style.content,
|
$style.content,
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Popover v-model:open="open">
|
<Popover v-model:open="open">
|
||||||
<PopoverTrigger as-child>
|
<PopoverTrigger as-child>
|
||||||
<slot/>
|
<slot />
|
||||||
</PopoverTrigger>
|
</PopoverTrigger>
|
||||||
<PopoverContent class="p-0 w-fit">
|
<PopoverContent class="p-0 w-fit">
|
||||||
<div
|
<div
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
ref="emojiContainer"
|
ref="emojiContainer"
|
||||||
>
|
>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<Input placeholder="Search" v-model="filter"/>
|
<Input placeholder="Search" v-model="filter" />
|
||||||
</div>
|
</div>
|
||||||
<VList
|
<VList
|
||||||
:data="virtualizedItems"
|
:data="virtualizedItems"
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<Sidebar :categories="categories" @select="scrollToCategory"/>
|
<Sidebar :categories="categories" @select="scrollToCategory" />
|
||||||
</div>
|
</div>
|
||||||
</PopoverContent>
|
</PopoverContent>
|
||||||
</Popover>
|
</Popover>
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
</Button>
|
</Button>
|
||||||
</HoverCardTrigger>
|
</HoverCardTrigger>
|
||||||
<HoverCardContent class="p-3">
|
<HoverCardContent class="p-3">
|
||||||
<Spinner v-if="accounts === null" class="border-0"/>
|
<Spinner v-if="accounts === null" class="border-0" />
|
||||||
<ul v-else class="flex flex-col gap-4">
|
<ul v-else class="flex flex-col gap-4">
|
||||||
<li v-for="account in accounts">
|
<li v-for="account in accounts">
|
||||||
<NuxtLink
|
<NuxtLink
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<Card
|
<Card
|
||||||
class="flex-row px-2 py-1 items-center gap-2 hover:bg-muted duration-100 text-sm"
|
class="flex-row px-2 py-1 items-center gap-2 hover:bg-muted duration-100 text-sm"
|
||||||
>
|
>
|
||||||
<Repeat class="size-4 text-primary"/>
|
<Repeat class="size-4 text-primary" />
|
||||||
<Avatar class="size-6 border" :src="avatar" :name="displayName"/>
|
<Avatar class="size-6 border" :src="avatar" :name="displayName" />
|
||||||
<span class="font-semibold" v-render-emojis="emojis"
|
<span class="font-semibold" v-render-emojis="emojis"
|
||||||
>{{ displayName }}</span
|
>{{ displayName }}</span
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
:reply-bar="true"
|
:reply-bar="true"
|
||||||
class="rounded-b-none"
|
class="rounded-b-none"
|
||||||
/>
|
/>
|
||||||
<Note :note="note" :class="parent && 'border-t-0 rounded-t-none'"/>
|
<Note :note="note" :class="parent && 'border-t-0 rounded-t-none'" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,23 +16,21 @@
|
||||||
<span
|
<span
|
||||||
class="truncate font-semibold"
|
class="truncate font-semibold"
|
||||||
v-render-emojis="follower.emojis"
|
v-render-emojis="follower.emojis"
|
||||||
>{{
|
>{{ follower.display_name }}</span
|
||||||
follower.display_name
|
|
||||||
}}</span
|
|
||||||
>
|
>
|
||||||
<span class="truncate tracking-tight">
|
<span class="truncate tracking-tight">
|
||||||
<Address :username="username" :domain="domain"/>
|
<Address :username="username" :domain="domain" />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="loading" class="flex p-2 items-center justify-center h-12">
|
<div v-if="loading" class="flex p-2 items-center justify-center h-12">
|
||||||
<Loader class="size-4 animate-spin"/>
|
<Loader class="size-4 animate-spin" />
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="relationship?.requested_by === false"
|
v-else-if="relationship?.requested_by === false"
|
||||||
class="flex p-2 items-center justify-center h-12"
|
class="flex p-2 items-center justify-center h-12"
|
||||||
>
|
>
|
||||||
<Check class="size-4"/>
|
<Check class="size-4" />
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="grid grid-cols-2 p-2 gap-2">
|
<div v-else class="grid grid-cols-2 p-2 gap-2">
|
||||||
<Button
|
<Button
|
||||||
|
|
@ -41,7 +39,7 @@
|
||||||
@click="accept"
|
@click="accept"
|
||||||
:title="m.slow_these_kestrel_sail()"
|
:title="m.slow_these_kestrel_sail()"
|
||||||
>
|
>
|
||||||
<Check/>
|
<Check />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
|
@ -49,7 +47,7 @@
|
||||||
@click="reject"
|
@click="reject"
|
||||||
:title="m.weary_steep_yak_embrace()"
|
:title="m.weary_steep_yak_embrace()"
|
||||||
>
|
>
|
||||||
<X/>
|
<X />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
v-if="notification.account"
|
v-if="notification.account"
|
||||||
class="flex flex-row items-center gap-2 px-2"
|
class="flex flex-row items-center gap-2 px-2"
|
||||||
>
|
>
|
||||||
<component :is="icon" class="size-5 shrink-0"/>
|
<component :is="icon" class="size-5 shrink-0" />
|
||||||
<Avatar
|
<Avatar
|
||||||
class="size-5 border border-card"
|
class="size-5 border border-card"
|
||||||
:src="notification.account.avatar"
|
:src="notification.account.avatar"
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
class="ml-auto [&_svg]:data-[state=open]:-rotate-180"
|
class="ml-auto [&_svg]:data-[state=open]:-rotate-180"
|
||||||
:title="open ? 'Collapse' : 'Expand'"
|
:title="open ? 'Collapse' : 'Expand'"
|
||||||
>
|
>
|
||||||
<ChevronDown class="duration-200"/>
|
<ChevronDown class="duration-200" />
|
||||||
</Button>
|
</Button>
|
||||||
</CollapsibleTrigger>
|
</CollapsibleTrigger>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
{{ value }}
|
{{ value }}
|
||||||
</dd>
|
</dd>
|
||||||
<dd class="font-mono" v-else>
|
<dd class="font-mono" v-else>
|
||||||
<component :is="value"/>
|
<component :is="value" />
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ useListen("preferences:open", () => {
|
||||||
:key="page"
|
:key="page"
|
||||||
:value="page"
|
:value="page"
|
||||||
>
|
>
|
||||||
<component :is="icons[page]" class="size-4 mr-2"/>
|
<component :is="icons[page]" class="size-4 mr-2" />
|
||||||
{{ page }}
|
{{ page }}
|
||||||
</TabsTrigger>
|
</TabsTrigger>
|
||||||
</TabsList>
|
</TabsList>
|
||||||
|
|
@ -130,17 +130,17 @@ useListen("preferences:open", () => {
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
<TabsContent value="Emojis" as-child>
|
<TabsContent value="Emojis" as-child>
|
||||||
<Page title="Emojis">
|
<Page title="Emojis">
|
||||||
<Emojis/>
|
<Emojis />
|
||||||
</Page>
|
</Page>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
<TabsContent value="Account" as-child>
|
<TabsContent value="Account" as-child>
|
||||||
<Page title="Account">
|
<Page title="Account">
|
||||||
<Profile/>
|
<Profile />
|
||||||
</Page>
|
</Page>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
<TabsContent value="Developer" as-child>
|
<TabsContent value="Developer" as-child>
|
||||||
<Page title="Developer">
|
<Page title="Developer">
|
||||||
<Developer/>
|
<Developer />
|
||||||
</Page>
|
</Page>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
<TabsContent value="About" as-child>
|
<TabsContent value="About" as-child>
|
||||||
|
|
@ -150,9 +150,9 @@ useListen("preferences:open", () => {
|
||||||
{{ pkg.description }}
|
{{ pkg.description }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<Stats/>
|
<Stats />
|
||||||
</section>
|
</section>
|
||||||
<Separator/>
|
<Separator />
|
||||||
<section class="space-y-2">
|
<section class="space-y-2">
|
||||||
<h3 class="text-lg font-semibold tracking-tight">
|
<h3 class="text-lg font-semibold tracking-tight">
|
||||||
Developers
|
Developers
|
||||||
|
|
@ -182,7 +182,7 @@ useListen("preferences:open", () => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<Separator/>
|
<Separator />
|
||||||
<section class="space-y-2">
|
<section class="space-y-2">
|
||||||
<h3 class="text-lg font-semibold tracking-tight">
|
<h3 class="text-lg font-semibold tracking-tight">
|
||||||
Dependencies
|
Dependencies
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger as-child>
|
<DropdownMenuTrigger as-child>
|
||||||
<slot/>
|
<slot />
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent class="min-w-48">
|
<DropdownMenuContent class="min-w-48">
|
||||||
<DropdownMenuItem @click="deleteAll" :disabled="!canEdit">
|
<DropdownMenuItem @click="deleteAll" :disabled="!canEdit">
|
||||||
<Delete/>
|
<Delete />
|
||||||
{{ m.tense_quick_cod_favor() }}
|
{{ m.tense_quick_cod_favor() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,12 @@
|
||||||
title="Open menu"
|
title="Open menu"
|
||||||
class="size-8 p-0"
|
class="size-8 p-0"
|
||||||
>
|
>
|
||||||
<MoreHorizontal class="size-4"/>
|
<MoreHorizontal class="size-4" />
|
||||||
</Button>
|
</Button>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent class="min-w-48">
|
<DropdownMenuContent class="min-w-48">
|
||||||
<DropdownMenuItem @click="editName">
|
<DropdownMenuItem @click="editName">
|
||||||
<TextCursorInput/>
|
<TextCursorInput />
|
||||||
{{ m.cuddly_such_swallow_hush() }}
|
{{ m.cuddly_such_swallow_hush() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<!-- <DropdownMenuItem @click="editCaption">
|
<!-- <DropdownMenuItem @click="editCaption">
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuSeparator /> -->
|
<DropdownMenuSeparator /> -->
|
||||||
<DropdownMenuItem @click="_delete">
|
<DropdownMenuItem @click="_delete">
|
||||||
<Delete/>
|
<Delete />
|
||||||
{{ m.tense_quick_cod_favor() }}
|
{{ m.tense_quick_cod_favor() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-if="authStore.emojis.length > 0" class="grow">
|
<div v-if="authStore.emojis.length > 0" class="grow">
|
||||||
<Table :emojis="authStore.emojis" :can-upload="canUpload"/>
|
<Table :emojis="authStore.emojis" :can-upload="canUpload" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -290,14 +290,14 @@ const table = useVueTable({
|
||||||
/>
|
/>
|
||||||
<Uploader v-if="props.canUpload">
|
<Uploader v-if="props.canUpload">
|
||||||
<Button variant="outline" size="icon" title="Upload emoji">
|
<Button variant="outline" size="icon" title="Upload emoji">
|
||||||
<Plus class="size-4"/>
|
<Plus class="size-4" />
|
||||||
</Button>
|
</Button>
|
||||||
</Uploader>
|
</Uploader>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger as-child>
|
<DropdownMenuTrigger as-child>
|
||||||
<Button variant="outline">
|
<Button variant="outline">
|
||||||
Columns
|
Columns
|
||||||
<ChevronDown class="ml-2 size-4"/>
|
<ChevronDown class="ml-2 size-4" />
|
||||||
</Button>
|
</Button>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent align="end">
|
<DropdownMenuContent align="end">
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Dialog v-model:open="open">
|
<Dialog v-model:open="open">
|
||||||
<DialogTrigger>
|
<DialogTrigger>
|
||||||
<slot/>
|
<slot />
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogTitle>{{ m.whole_icy_puffin_smile() }}</DialogTitle>
|
<DialogTitle>{{ m.whole_icy_puffin_smile() }}</DialogTitle>
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
{{ m.lime_late_millipede_urge() }}
|
{{ m.lime_late_millipede_urge() }}
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
{{ m.glad_day_kestrel_amaze() }}
|
{{ m.glad_day_kestrel_amaze() }}
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
|
|
@ -97,7 +97,7 @@
|
||||||
:disabled="isSubmitting"
|
:disabled="isSubmitting"
|
||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
|
|
@ -116,7 +116,7 @@
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
{{ m.weird_fun_jurgen_arise() }}
|
{{ m.weird_fun_jurgen_arise() }}
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<Dialog/>
|
<Dialog />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<section class="gap-4 flex flex-col">
|
<section class="gap-4 flex flex-col">
|
||||||
<h2 class="text-xl font-bold tracking-tight">{{ title }}</h2>
|
<h2 class="text-xl font-bold tracking-tight">{{ title }}</h2>
|
||||||
|
|
||||||
<slot/>
|
<slot />
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
v-if="dirty"
|
v-if="dirty"
|
||||||
class="absolute bottom-2 z-10 inset-x-2 w-[calc(100%-1rem)] grid-cols-[calc(var(--spacing)*4)_1fr_auto]!"
|
class="absolute bottom-2 z-10 inset-x-2 w-[calc(100%-1rem)] grid-cols-[calc(var(--spacing)*4)_1fr_auto]!"
|
||||||
>
|
>
|
||||||
<SaveOff class="size-4"/>
|
<SaveOff class="size-4" />
|
||||||
<AlertTitle>Unsaved changes</AlertTitle>
|
<AlertTitle>Unsaved changes</AlertTitle>
|
||||||
<Button
|
<Button
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
:title="m.mild_known_mallard_jolt()"
|
:title="m.mild_known_mallard_jolt()"
|
||||||
:description="m.lime_dry_skunk_loop()"
|
:description="m.lime_dry_skunk_loop()"
|
||||||
>
|
>
|
||||||
<Input v-bind="componentField"/>
|
<Input v-bind="componentField" />
|
||||||
</TextInput>
|
</TextInput>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
:title="m.neat_silly_dog_prosper()"
|
:title="m.neat_silly_dog_prosper()"
|
||||||
:description="m.petty_plane_tadpole_earn()"
|
:description="m.petty_plane_tadpole_earn()"
|
||||||
>
|
>
|
||||||
<Input v-bind="componentField"/>
|
<Input v-bind="componentField" />
|
||||||
</TextInput>
|
</TextInput>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
:title="m.next_caring_ladybug_hack()"
|
:title="m.next_caring_ladybug_hack()"
|
||||||
:description="m.stale_just_anaconda_earn()"
|
:description="m.stale_just_anaconda_earn()"
|
||||||
>
|
>
|
||||||
<Textarea rows="10" v-bind="componentField"/>
|
<Textarea rows="10" v-bind="componentField" />
|
||||||
</TextInput>
|
</TextInput>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
@click="addField()"
|
@click="addField()"
|
||||||
:title="m.front_north_eel_gulp()"
|
:title="m.front_north_eel_gulp()"
|
||||||
>
|
>
|
||||||
<Plus/>
|
<Plus />
|
||||||
</Button>
|
</Button>
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
size="icon"
|
size="icon"
|
||||||
class="drag-handle cursor-grab"
|
class="drag-handle cursor-grab"
|
||||||
>
|
>
|
||||||
<GripVertical/>
|
<GripVertical />
|
||||||
</Button>
|
</Button>
|
||||||
<Input
|
<Input
|
||||||
:model-value="field.name"
|
:model-value="field.name"
|
||||||
|
|
@ -55,11 +55,11 @@
|
||||||
size="icon"
|
size="icon"
|
||||||
@click="removeField(index)"
|
@click="removeField(index)"
|
||||||
>
|
>
|
||||||
<Trash/>
|
<Trash />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</VueDraggable>
|
</VueDraggable>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormControl>
|
</FormControl>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="h-fit w-fit p-0 m-0 relative group border overflow-hidden"
|
class="h-fit w-fit p-0 m-0 relative group border overflow-hidden"
|
||||||
>
|
>
|
||||||
<Avatar class="size-32" :src="image" :name="displayName"/>
|
<Avatar class="size-32" :src="image" :name="displayName" />
|
||||||
<div
|
<div
|
||||||
class="absolute inset-0 bg-background/80 flex group-hover:opacity-100 opacity-0 duration-200 items-center justify-center"
|
class="absolute inset-0 bg-background/80 flex group-hover:opacity-100 opacity-0 duration-200 items-center justify-center"
|
||||||
>
|
>
|
||||||
<Upload/>
|
<Upload />
|
||||||
</div>
|
</div>
|
||||||
</Button>
|
</Button>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
{{ m.lime_late_millipede_urge() }}
|
{{ m.lime_late_millipede_urge() }}
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
|
|
@ -81,14 +81,15 @@
|
||||||
placeholder="peter.griffin@fox.com"
|
placeholder="peter.griffin@fox.com"
|
||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
<div v-if="value" class="grid gap-4 !mt-4">
|
<div v-if="value" class="grid gap-4 !mt-4">
|
||||||
<Label>
|
<Label>
|
||||||
{{
|
{{ m.witty_honest_wallaby_support() }}
|
||||||
m.witty_honest_wallaby_support()
|
|
||||||
}}
|
|
||||||
</Label>
|
</Label>
|
||||||
<Avatar class="size-32" :src="gravatarUrl"/>
|
<Avatar
|
||||||
|
class="size-32"
|
||||||
|
:src="gravatarUrl"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
@ -109,14 +110,12 @@
|
||||||
placeholder="https://mysite.com/avatar.webp"
|
placeholder="https://mysite.com/avatar.webp"
|
||||||
/>
|
/>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormMessage/>
|
<FormMessage />
|
||||||
<div v-if="value" class="grid gap-4 !mt-4">
|
<div v-if="value" class="grid gap-4 !mt-4">
|
||||||
<Label>
|
<Label>
|
||||||
{{
|
{{ m.witty_honest_wallaby_support() }}
|
||||||
m.witty_honest_wallaby_support()
|
|
||||||
}}
|
|
||||||
</Label>
|
</Label>
|
||||||
<Avatar class="size-32" :src="value"/>
|
<Avatar class="size-32" :src="value" />
|
||||||
</div>
|
</div>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</FormField>
|
</FormField>
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
{{ value }}
|
{{ value }}
|
||||||
</dd>
|
</dd>
|
||||||
<dd class="font-mono" v-else>
|
<dd class="font-mono" v-else>
|
||||||
<component :is="value"/>
|
<component :is="value" />
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<TypeBase :pref="pref" :name="name" v-slot="{ setValue, value }">
|
<TypeBase :pref="pref" :name="name" v-slot="{ setValue, value }">
|
||||||
<Switch @update:model-value="setValue" :model-value="value"/>
|
<Switch @update:model-value="setValue" :model-value="value" />
|
||||||
</TypeBase>
|
</TypeBase>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@
|
||||||
:step="pref.options.integer ? 1 : pref.options.step"
|
:step="pref.options.integer ? 1 : pref.options.step"
|
||||||
>
|
>
|
||||||
<NumberFieldContent>
|
<NumberFieldContent>
|
||||||
<NumberFieldDecrement/>
|
<NumberFieldDecrement />
|
||||||
<NumberFieldInput/>
|
<NumberFieldInput />
|
||||||
<NumberFieldIncrement/>
|
<NumberFieldIncrement />
|
||||||
</NumberFieldContent>
|
</NumberFieldContent>
|
||||||
</NumberField>
|
</NumberField>
|
||||||
</TypeBase>
|
</TypeBase>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<TypeBase :pref="pref" :name="name" v-slot="{ setValue, value }">
|
<TypeBase :pref="pref" :name="name" v-slot="{ setValue, value }">
|
||||||
<Select :model-value="value" @update:model-value="setValue">
|
<Select :model-value="value" @update:model-value="setValue">
|
||||||
<SelectTrigger>
|
<SelectTrigger>
|
||||||
<SelectValue placeholder="Select an option"/>
|
<SelectValue placeholder="Select an option" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectGroup>
|
<SelectGroup>
|
||||||
|
|
|
||||||
|
|
@ -9,14 +9,13 @@
|
||||||
<small
|
<small
|
||||||
v-if="pref.options.description"
|
v-if="pref.options.description"
|
||||||
class="text-xs font-medium leading-none text-muted-foreground"
|
class="text-xs font-medium leading-none text-muted-foreground"
|
||||||
>{{
|
>{{ pref.options.description }}</small
|
||||||
pref.options.description }}</small
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center justify-end">
|
<div class="flex items-center justify-end">
|
||||||
<slot :value="value" :set-value="setValue"/>
|
<slot :value="value" :set-value="setValue" />
|
||||||
</div>
|
</div>
|
||||||
<slot name="extra" :value="value" :set-value="setValue"/>
|
<slot name="extra" :value="value" :set-value="setValue" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Avatar :class="['rounded-md bg-secondary']">
|
<Avatar :class="['rounded-md bg-secondary']">
|
||||||
<AvatarFallback v-if="name">{{ getInitials(name) }}</AvatarFallback>
|
<AvatarFallback v-if="name">{{ getInitials(name) }}</AvatarFallback>
|
||||||
<AvatarImage v-if="src" :src="src" :alt="`${name}'s avatar`"/>
|
<AvatarImage v-if="src" :src="src" :alt="`${name}'s avatar`" />
|
||||||
</Avatar>
|
</Avatar>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger as-child>
|
<DropdownMenuTrigger as-child>
|
||||||
<slot/>
|
<slot />
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent class="min-w-56">
|
<DropdownMenuContent class="min-w-56">
|
||||||
<DropdownMenuGroup>
|
<DropdownMenuGroup>
|
||||||
|
|
@ -9,29 +9,29 @@
|
||||||
as="button"
|
as="button"
|
||||||
@click="copyText(account.username)"
|
@click="copyText(account.username)"
|
||||||
>
|
>
|
||||||
<AtSign/>
|
<AtSign />
|
||||||
{{ m.cool_dark_tapir_belong() }}
|
{{ m.cool_dark_tapir_belong() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
as="button"
|
as="button"
|
||||||
@click="copyText(JSON.stringify(account, null, 4))"
|
@click="copyText(JSON.stringify(account, null, 4))"
|
||||||
>
|
>
|
||||||
<Code/>
|
<Code />
|
||||||
{{ m.yummy_moving_scallop_sail() }}
|
{{ m.yummy_moving_scallop_sail() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem as="button" @click="copyText(account.id)">
|
<DropdownMenuItem as="button" @click="copyText(account.id)">
|
||||||
<Hash/>
|
<Hash />
|
||||||
{{ m.sunny_zany_jellyfish_pop() }}
|
{{ m.sunny_zany_jellyfish_pop() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator/>
|
<DropdownMenuSeparator />
|
||||||
<DropdownMenuGroup>
|
<DropdownMenuGroup>
|
||||||
<DropdownMenuItem as="button" @click="copyText(url)">
|
<DropdownMenuItem as="button" @click="copyText(url)">
|
||||||
<Link/>
|
<Link />
|
||||||
{{ m.ago_new_pelican_drip() }}
|
{{ m.ago_new_pelican_drip() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem as="button" @click="copyText(account.url)">
|
<DropdownMenuItem as="button" @click="copyText(account.url)">
|
||||||
<Link/>
|
<Link />
|
||||||
{{ m.solid_witty_zebra_walk() }}
|
{{ m.solid_witty_zebra_walk() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
|
|
@ -41,32 +41,32 @@
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
:href="account.url"
|
:href="account.url"
|
||||||
>
|
>
|
||||||
<ExternalLink/>
|
<ExternalLink />
|
||||||
{{ m.active_trite_lark_inspire() }}
|
{{ m.active_trite_lark_inspire() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator v-if="authStore.isSignedIn && !isMe"/>
|
<DropdownMenuSeparator v-if="authStore.isSignedIn && !isMe" />
|
||||||
<DropdownMenuGroup v-if="authStore.isSignedIn && !isMe">
|
<DropdownMenuGroup v-if="authStore.isSignedIn && !isMe">
|
||||||
<DropdownMenuItem as="button" @click="muteUser(account.id)">
|
<DropdownMenuItem as="button" @click="muteUser(account.id)">
|
||||||
<VolumeX/>
|
<VolumeX />
|
||||||
{{ m.spare_wild_mole_intend() }}
|
{{ m.spare_wild_mole_intend() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem as="button" @click="blockUser(account.id)">
|
<DropdownMenuItem as="button" @click="blockUser(account.id)">
|
||||||
<Ban/>
|
<Ban />
|
||||||
{{ m.misty_soft_sparrow_vent() }}
|
{{ m.misty_soft_sparrow_vent() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator v-if="isRemote"/>
|
<DropdownMenuSeparator v-if="isRemote" />
|
||||||
<DropdownMenuGroup v-if="isRemote">
|
<DropdownMenuGroup v-if="isRemote">
|
||||||
<DropdownMenuItem as="button" @click="refresh">
|
<DropdownMenuItem as="button" @click="refresh">
|
||||||
<RefreshCw/>
|
<RefreshCw />
|
||||||
{{ m.slow_chunky_chipmunk_hush() }}
|
{{ m.slow_chunky_chipmunk_hush() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuSeparator v-if="authStore.isSignedIn && !isMe"/>
|
<DropdownMenuSeparator v-if="authStore.isSignedIn && !isMe" />
|
||||||
<DropdownMenuGroup v-if="authStore.isSignedIn && !isMe">
|
<DropdownMenuGroup v-if="authStore.isSignedIn && !isMe">
|
||||||
<DropdownMenuItem as="button" :disabled="true">
|
<DropdownMenuItem as="button" :disabled="true">
|
||||||
<Flag/>
|
<Flag />
|
||||||
{{ m.great_few_jaguar_rise() }}
|
{{ m.great_few_jaguar_rise() }}
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger :as-child="true">
|
<TooltipTrigger :as-child="true">
|
||||||
<Badge variant="default" class="gap-1">
|
<Badge variant="default" class="gap-1">
|
||||||
<BadgeCheck v-if="verified"/>
|
<BadgeCheck v-if="verified" />
|
||||||
<img v-else-if="icon" :src="icon" alt="" class="size-4 rounded">
|
<img v-else-if="icon" :src="icon" alt="" class="size-4 rounded">
|
||||||
{{ name }}
|
{{ name }}
|
||||||
</Badge>
|
</Badge>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<HeadingSmall v-render-emojis="emojis">
|
<HeadingSmall v-render-emojis="emojis">
|
||||||
{{ field.name }}
|
{{ field.name }}
|
||||||
</HeadingSmall>
|
</HeadingSmall>
|
||||||
<Html v-html="field.value" v-render-emojis="emojis"/>
|
<Html v-html="field.value" v-render-emojis="emojis" />
|
||||||
</Column>
|
</Column>
|
||||||
</Column>
|
</Column>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
<div
|
<div
|
||||||
class="absolute bottom-0 translate-y-1/3 left-4 flex flex-row items-start gap-2"
|
class="absolute bottom-0 translate-y-1/3 left-4 flex flex-row items-start gap-2"
|
||||||
>
|
>
|
||||||
<Avatar class="size-32 border" :src="avatar" :name="displayName"/>
|
<Avatar class="size-32 border" :src="avatar" :name="displayName" />
|
||||||
</div>
|
</div>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -5,15 +5,13 @@
|
||||||
v-if="!isMe && authStore.isSignedIn"
|
v-if="!isMe && authStore.isSignedIn"
|
||||||
@click="relationship?.following ? unfollow() : follow()"
|
@click="relationship?.following ? unfollow() : follow()"
|
||||||
>
|
>
|
||||||
<Loader v-if="isLoading" class="animate-spin"/>
|
<Loader v-if="isLoading" class="animate-spin" />
|
||||||
<span v-else>
|
<span v-else>
|
||||||
{{
|
{{ relationship?.following
|
||||||
relationship?.following
|
|
||||||
? m.brief_upper_otter_cuddle()
|
? m.brief_upper_otter_cuddle()
|
||||||
: relationship?.requested
|
: relationship?.requested
|
||||||
? m.weak_bright_larva_grasp()
|
? m.weak_bright_larva_grasp()
|
||||||
: m.lazy_major_loris_grasp()
|
: m.lazy_major_loris_grasp() }}
|
||||||
}}
|
|
||||||
</span>
|
</span>
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,10 @@
|
||||||
:display-name="account.display_name"
|
:display-name="account.display_name"
|
||||||
/>
|
/>
|
||||||
<Row class="justify-end gap-2">
|
<Row class="justify-end gap-2">
|
||||||
<ProfileRelationshipActions :account="account"/>
|
<ProfileRelationshipActions :account="account" />
|
||||||
<ProfileActions :account="account">
|
<ProfileActions :account="account">
|
||||||
<Button variant="secondary" size="icon">
|
<Button variant="secondary" size="icon">
|
||||||
<Ellipsis/>
|
<Ellipsis />
|
||||||
</Button>
|
</Button>
|
||||||
</ProfileActions>
|
</ProfileActions>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
@ -17,24 +17,24 @@
|
||||||
<Text class="font-bold" v-render-emojis="account.emojis">
|
<Text class="font-bold" v-render-emojis="account.emojis">
|
||||||
{{ account.display_name }}
|
{{ account.display_name }}
|
||||||
</Text>
|
</Text>
|
||||||
<Address :username="username" :domain="domain"/>
|
<Address :username="username" :domain="domain" />
|
||||||
</Column>
|
</Column>
|
||||||
<ProfileBadges :account="account"/>
|
<ProfileBadges :account="account" />
|
||||||
<Html v-html="account.note" v-render-emojis="account.emojis"/>
|
<Html v-html="account.note" v-render-emojis="account.emojis" />
|
||||||
<Separator/>
|
<Separator />
|
||||||
<ProfileFields
|
<ProfileFields
|
||||||
v-if="account.fields.length > 0"
|
v-if="account.fields.length > 0"
|
||||||
:fields="account.fields"
|
:fields="account.fields"
|
||||||
:emojis="account.emojis"
|
:emojis="account.emojis"
|
||||||
/>
|
/>
|
||||||
<Separator v-if="account.fields.length > 0"/>
|
<Separator v-if="account.fields.length > 0" />
|
||||||
<Row>
|
<Row>
|
||||||
<HeadingSmall class="flex items-center gap-1">
|
<HeadingSmall class="flex items-center gap-1">
|
||||||
<CalendarDays class="size-4"/>
|
<CalendarDays class="size-4" />
|
||||||
{{ formattedCreationDate }}
|
{{ formattedCreationDate }}
|
||||||
</HeadingSmall>
|
</HeadingSmall>
|
||||||
</Row>
|
</Row>
|
||||||
<Separator/>
|
<Separator />
|
||||||
<ProfileStats
|
<ProfileStats
|
||||||
:follower-count="account.followers_count"
|
:follower-count="account.followers_count"
|
||||||
:following-count="account.following_count"
|
:following-count="account.following_count"
|
||||||
|
|
|
||||||
|
|
@ -26,14 +26,14 @@
|
||||||
<Text class="font-bold" v-render-emojis="account.emojis">
|
<Text class="font-bold" v-render-emojis="account.emojis">
|
||||||
{{ account.display_name }}
|
{{ account.display_name }}
|
||||||
</Text>
|
</Text>
|
||||||
<Address :username="username" :domain="domain"/>
|
<Address :username="username" :domain="domain" />
|
||||||
</div>
|
</div>
|
||||||
<Html
|
<Html
|
||||||
v-html="account.note"
|
v-html="account.note"
|
||||||
v-render-emojis="account.emojis"
|
v-render-emojis="account.emojis"
|
||||||
class="mt-4 max-h-72 overflow-y-auto"
|
class="mt-4 max-h-72 overflow-y-auto"
|
||||||
/>
|
/>
|
||||||
<Separator v-if="account.fields.length > 0" class="mt-4"/>
|
<Separator v-if="account.fields.length > 0" class="mt-4" />
|
||||||
<ProfileFields
|
<ProfileFields
|
||||||
v-if="account.fields.length > 0"
|
v-if="account.fields.length > 0"
|
||||||
:fields="account.fields"
|
:fields="account.fields"
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<Text class="font-semibold" v-render-emojis="account.emojis">
|
<Text class="font-semibold" v-render-emojis="account.emojis">
|
||||||
{{ account.display_name }}
|
{{ account.display_name }}
|
||||||
</Text>
|
</Text>
|
||||||
<Address :username="account.username" :domain="domain"/>
|
<Address :username="account.username" :domain="domain" />
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Dialog>
|
<Dialog>
|
||||||
<DialogTrigger as-child>
|
<DialogTrigger as-child>
|
||||||
<slot/>
|
<slot />
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
size="icon"
|
size="icon"
|
||||||
:title="m.sharp_big_mallard_reap()"
|
:title="m.sharp_big_mallard_reap()"
|
||||||
>
|
>
|
||||||
<LogOut/>
|
<LogOut />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -46,11 +46,11 @@
|
||||||
</div>
|
</div>
|
||||||
<DialogFooter>
|
<DialogFooter>
|
||||||
<Button :as="NuxtLink" href="/register" variant="outline">
|
<Button :as="NuxtLink" href="/register" variant="outline">
|
||||||
<UserPlus/>
|
<UserPlus />
|
||||||
{{ m.honest_few_baboon_pop() }}
|
{{ m.honest_few_baboon_pop() }}
|
||||||
</Button>
|
</Button>
|
||||||
<Button @click="signInAction">
|
<Button @click="signInAction">
|
||||||
<LogIn/>
|
<LogIn />
|
||||||
{{ m.sunny_pink_hyena_walk() }}
|
{{ m.sunny_pink_hyena_walk() }}
|
||||||
</Button>
|
</Button>
|
||||||
</DialogFooter>
|
</DialogFooter>
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,12 @@ const authStore = useAuthStore();
|
||||||
:domain="authStore.instance.domain"
|
:domain="authStore.instance.domain"
|
||||||
naked
|
naked
|
||||||
/>
|
/>
|
||||||
<ChevronsUpDown class="ml-auto size-4"/>
|
<ChevronsUpDown class="ml-auto size-4" />
|
||||||
</SidebarMenuButton>
|
</SidebarMenuButton>
|
||||||
<SidebarMenuButton v-else>
|
<SidebarMenuButton v-else>
|
||||||
<UserPlus/>
|
<UserPlus />
|
||||||
{{ m.sunny_pink_hyena_walk() }}
|
{{ m.sunny_pink_hyena_walk() }}
|
||||||
<ChevronsUpDown class="ml-auto size-4"/>
|
<ChevronsUpDown class="ml-auto size-4" />
|
||||||
</SidebarMenuButton>
|
</SidebarMenuButton>
|
||||||
</AccountManager>
|
</AccountManager>
|
||||||
</SidebarMenuItem>
|
</SidebarMenuItem>
|
||||||
|
|
@ -52,7 +52,7 @@ const authStore = useAuthStore();
|
||||||
class="w-full group-data-[collapsible=icon]:px-4"
|
class="w-full group-data-[collapsible=icon]:px-4"
|
||||||
@click="useEvent('composer:open')"
|
@click="useEvent('composer:open')"
|
||||||
>
|
>
|
||||||
<Pen/>
|
<Pen />
|
||||||
<span class="group-data-[collapsible=icon]:hidden">
|
<span class="group-data-[collapsible=icon]:hidden">
|
||||||
{{ m.salty_aloof_turkey_nudge() }}
|
{{ m.salty_aloof_turkey_nudge() }}
|
||||||
</span>
|
</span>
|
||||||
|
|
@ -63,7 +63,7 @@ const authStore = useAuthStore();
|
||||||
variant="secondary"
|
variant="secondary"
|
||||||
@click="useEvent('preferences:open')"
|
@click="useEvent('preferences:open')"
|
||||||
>
|
>
|
||||||
<Cog/>
|
<Cog />
|
||||||
Preferences
|
Preferences
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
|
|
@ -73,7 +73,7 @@ const authStore = useAuthStore();
|
||||||
class="w-full group-data-[collapsible=icon]:px-4"
|
class="w-full group-data-[collapsible=icon]:px-4"
|
||||||
@click="$pwa?.updateServiceWorker(true)"
|
@click="$pwa?.updateServiceWorker(true)"
|
||||||
>
|
>
|
||||||
<DownloadCloud/>
|
<DownloadCloud />
|
||||||
<span class="group-data-[collapsible=icon]:hidden">
|
<span class="group-data-[collapsible=icon]:hidden">
|
||||||
{{ m.quaint_low_felix_pave() }}
|
{{ m.quaint_low_felix_pave() }}
|
||||||
</span>
|
</span>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<Sidebar collapsible="offcanvas">
|
<Sidebar collapsible="offcanvas">
|
||||||
<InstanceHeader/>
|
<InstanceHeader />
|
||||||
<SidebarContent>
|
<SidebarContent>
|
||||||
<SidebarGroup>
|
<SidebarGroup>
|
||||||
<SidebarGroupLabel>
|
<SidebarGroupLabel>
|
||||||
{{
|
{{ m.trite_real_sawfish_drum() }}
|
||||||
m.trite_real_sawfish_drum()
|
|
||||||
}}
|
|
||||||
</SidebarGroupLabel>
|
</SidebarGroupLabel>
|
||||||
<NavItems
|
<NavItems
|
||||||
:items="
|
:items="
|
||||||
|
|
@ -17,8 +15,8 @@
|
||||||
/>
|
/>
|
||||||
</SidebarGroup>
|
</SidebarGroup>
|
||||||
</SidebarContent>
|
</SidebarContent>
|
||||||
<FooterActions/>
|
<FooterActions />
|
||||||
<SidebarRail/>
|
<SidebarRail />
|
||||||
</Sidebar>
|
</Sidebar>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ defineProps<{
|
||||||
<SidebarMenuItem>
|
<SidebarMenuItem>
|
||||||
<CollapsibleTrigger as-child>
|
<CollapsibleTrigger as-child>
|
||||||
<SidebarMenuButton :tooltip="item.title">
|
<SidebarMenuButton :tooltip="item.title">
|
||||||
<component :is="item.icon"/>
|
<component :is="item.icon" />
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
<ChevronRight
|
<ChevronRight
|
||||||
class="ml-auto transition-transform group-data-[state=open]/collapsible:rotate-180"
|
class="ml-auto transition-transform group-data-[state=open]/collapsible:rotate-180"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ defineProps<{
|
||||||
<SidebarMenuItem v-for="item in items" :key="item.title">
|
<SidebarMenuItem v-for="item in items" :key="item.title">
|
||||||
<SidebarMenuButton as-child>
|
<SidebarMenuButton as-child>
|
||||||
<NuxtLink :href="item.url">
|
<NuxtLink :href="item.url">
|
||||||
<component :is="item.icon"/>
|
<component :is="item.icon" />
|
||||||
<span>{{ item.title }}</span>
|
<span>{{ item.title }}</span>
|
||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</SidebarMenuButton>
|
</SidebarMenuButton>
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
style="--sidebar-width: 24rem; --sidebar-width-mobile: 18rem"
|
style="--sidebar-width: 24rem; --sidebar-width-mobile: 18rem"
|
||||||
>
|
>
|
||||||
<SidebarContent class="overflow-y-auto *:p-2 *:gap-2">
|
<SidebarContent class="overflow-y-auto *:p-2 *:gap-2">
|
||||||
<NotificationsTimeline/>
|
<NotificationsTimeline />
|
||||||
</SidebarContent>
|
</SidebarContent>
|
||||||
</Sidebar>
|
</Sidebar>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -14,15 +14,15 @@ const authStore = useAuthStore();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<LeftSidebar/>
|
<LeftSidebar />
|
||||||
<main class="grow h-dvh overflow-y-auto">
|
<main class="grow h-dvh overflow-y-auto">
|
||||||
<header
|
<header
|
||||||
v-if="showTimelines"
|
v-if="showTimelines"
|
||||||
class="flex h-16 items-center bg-background/80 backdrop-blur-2xl sticky top-0 inset-x-0 z-10 p-4"
|
class="flex h-16 items-center bg-background/80 backdrop-blur-2xl sticky top-0 inset-x-0 z-10 p-4"
|
||||||
>
|
>
|
||||||
<Timelines/>
|
<Timelines />
|
||||||
</header>
|
</header>
|
||||||
<slot/>
|
<slot />
|
||||||
</main>
|
</main>
|
||||||
<RightSidebar
|
<RightSidebar
|
||||||
v-if="authStore.isSignedIn"
|
v-if="authStore.isSignedIn"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<slot/>
|
<slot />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,12 @@
|
||||||
@delete="removeItem"
|
@delete="removeItem"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Spinner v-if="isLoading"/>
|
<Spinner v-if="isLoading" />
|
||||||
|
|
||||||
<div v-if="error" class="timeline-error">{{ error.message }}</div>
|
<div v-if="error" class="timeline-error">{{ error.message }}</div>
|
||||||
|
|
||||||
<!-- If there are no posts at all -->
|
<!-- If there are no posts at all -->
|
||||||
<NoPosts v-else-if="hasReachedEnd && items.length === 0"/>
|
<NoPosts v-else-if="hasReachedEnd && items.length === 0" />
|
||||||
|
|
||||||
<div v-else-if="!preferences.infinite_scroll" class="py-10 px-4">
|
<div v-else-if="!preferences.infinite_scroll" class="py-10 px-4">
|
||||||
<Button
|
<Button
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('font-semibold', props.class)"
|
:class="cn('font-semibold', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('text-4xl font-extrabold tracking-tight text-balance', props.class)"
|
:class="cn('text-4xl font-extrabold tracking-tight text-balance', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('text-3xl font-semibold tracking-tight', props.class)"
|
:class="cn('text-3xl font-semibold tracking-tight', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('text-sm font-semibold tracking-tight', props.class)"
|
:class="cn('text-sm font-semibold tracking-tight', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('prose prose-sm block relative dark:prose-invert duration-200 !max-w-full break-words prose-a:no-underline prose-a:hover:underline', $style.content, props.class)"
|
:class="cn('prose prose-sm block relative dark:prose-invert duration-200 !max-w-full break-words prose-a:no-underline prose-a:hover:underline', $style.content, props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('flex flex-col', props.wrap && 'flex-wrap', props.class, props.centered && 'items-center')"
|
:class="cn('flex flex-col', props.wrap && 'flex-wrap', props.class, props.centered && 'items-center')"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('flex flex-row', props.wrap && 'flex-wrap', props.class, props.centered && 'items-center')"
|
:class="cn('flex flex-row', props.wrap && 'flex-wrap', props.class, props.centered && 'items-center')"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('text-xs', props.class, props.muted && 'text-muted-foreground')"
|
:class="cn('text-xs', props.class, props.muted && 'text-muted-foreground')"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn('leading-7', props.class, props.muted && 'text-muted-foreground')"
|
:class="cn('leading-7', props.class, props.muted && 'text-muted-foreground')"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,6 @@ const forwarded = useForwardPropsEmits(props, emits);
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<AlertDialogRoot data-slot="alert-dialog" v-bind="forwarded">
|
<AlertDialogRoot data-slot="alert-dialog" v-bind="forwarded">
|
||||||
<slot/>
|
<slot />
|
||||||
</AlertDialogRoot>
|
</AlertDialogRoot>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,6 @@ const delegatedProps = computed(() => {
|
||||||
v-bind="delegatedProps"
|
v-bind="delegatedProps"
|
||||||
:class="cn(buttonVariants(), props.class)"
|
:class="cn(buttonVariants(), props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AlertDialogAction>
|
</AlertDialogAction>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,6 @@ const delegatedProps = computed(() => {
|
||||||
props.class,
|
props.class,
|
||||||
)"
|
)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AlertDialogCancel>
|
</AlertDialogCancel>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AlertDialogContent>
|
</AlertDialogContent>
|
||||||
</AlertDialogPortal>
|
</AlertDialogPortal>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,6 @@ const delegatedProps = computed(() => {
|
||||||
v-bind="delegatedProps"
|
v-bind="delegatedProps"
|
||||||
:class="cn('text-muted-foreground text-sm', props.class)"
|
:class="cn('text-muted-foreground text-sm', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AlertDialogDescription>
|
</AlertDialogDescription>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,6 @@ const props = defineProps<{
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="alert-dialog-header"
|
data-slot="alert-dialog-header"
|
||||||
:class="cn('flex flex-col gap-2 text-center sm:text-left', props.class)"
|
:class="cn('flex flex-col gap-2 text-center sm:text-left', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,6 @@ const delegatedProps = computed(() => {
|
||||||
v-bind="delegatedProps"
|
v-bind="delegatedProps"
|
||||||
:class="cn('text-lg font-semibold', props.class)"
|
:class="cn('text-lg font-semibold', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AlertDialogTitle>
|
</AlertDialogTitle>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,6 @@ const props = defineProps<AlertDialogTriggerProps>();
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<AlertDialogTrigger data-slot="alert-dialog-trigger" v-bind="props">
|
<AlertDialogTrigger data-slot="alert-dialog-trigger" v-bind="props">
|
||||||
<slot/>
|
<slot />
|
||||||
</AlertDialogTrigger>
|
</AlertDialogTrigger>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,6 @@ const props = defineProps<{
|
||||||
:class="cn(alertVariants({ variant }), props.class)"
|
:class="cn(alertVariants({ variant }), props.class)"
|
||||||
role="alert"
|
role="alert"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="alert-description"
|
data-slot="alert-description"
|
||||||
:class="cn('text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', props.class)"
|
:class="cn('text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="alert-title"
|
data-slot="alert-title"
|
||||||
:class="cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', props.class)"
|
:class="cn('col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,6 @@ const props = defineProps<{
|
||||||
data-slot="avatar"
|
data-slot="avatar"
|
||||||
:class="cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', props.class)"
|
:class="cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AvatarRoot>
|
</AvatarRoot>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,6 @@ const delegatedProps = computed(() => {
|
||||||
v-bind="delegatedProps"
|
v-bind="delegatedProps"
|
||||||
:class="cn('bg-muted flex size-full items-center justify-center', props.class)"
|
:class="cn('bg-muted flex size-full items-center justify-center', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AvatarFallback>
|
</AvatarFallback>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,6 @@ const props = defineProps<AvatarImageProps>();
|
||||||
v-bind="props"
|
v-bind="props"
|
||||||
class="aspect-square size-full"
|
class="aspect-square size-full"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</AvatarImage>
|
</AvatarImage>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,6 @@ const delegatedProps = computed(() => {
|
||||||
:class="cn(badgeVariants({ variant }), props.class)"
|
:class="cn(badgeVariants({ variant }), props.class)"
|
||||||
v-bind="delegatedProps"
|
v-bind="delegatedProps"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,6 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
:as-child="asChild"
|
:as-child="asChild"
|
||||||
:class="cn(buttonVariants({ variant, size }), props.class)"
|
:class="cn(buttonVariants({ variant, size }), props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</Primitive>
|
</Primitive>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,6 @@ const props = defineProps<{
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="card-action"
|
data-slot="card-action"
|
||||||
:class="cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', props.class)"
|
:class="cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,6 @@ const props = defineProps<{
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div data-slot="card-content" :class="cn('flex flex-col', props.class)">
|
<div data-slot="card-content" :class="cn('flex flex-col', props.class)">
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="card-description"
|
data-slot="card-description"
|
||||||
:class="cn('text-muted-foreground text-sm', props.class)"
|
:class="cn('text-muted-foreground text-sm', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</p>
|
</p>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="card-footer"
|
data-slot="card-footer"
|
||||||
:class="cn('flex items-center [.border-t]:pt-6', props.class)"
|
:class="cn('flex items-center [.border-t]:pt-6', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="card-header"
|
data-slot="card-header"
|
||||||
:class="cn('@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6', props.class)"
|
:class="cn('@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ const props = defineProps<{
|
||||||
data-slot="card-title"
|
data-slot="card-title"
|
||||||
:class="cn('leading-none font-semibold', props.class)"
|
:class="cn('leading-none font-semibold', props.class)"
|
||||||
>
|
>
|
||||||
<slot/>
|
<slot />
|
||||||
</h3>
|
</h3>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -32,10 +32,10 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
||||||
class="flex items-center justify-center text-current transition-none"
|
class="flex items-center justify-center text-current transition-none"
|
||||||
>
|
>
|
||||||
<slot>
|
<slot>
|
||||||
<Check class="size-3.5"/>
|
<Check class="size-3.5" />
|
||||||
</slot>
|
</slot>
|
||||||
</CheckboxIndicator>
|
</CheckboxIndicator>
|
||||||
<!-- Fixes an issue where empty buttons behave weirdly in tanstack table layouts -->
|
<!-- Fixes an issue where empty buttons behave weirdly in tanstack table layouts -->
|
||||||
<Check class="size-3.5 opacity-0"/>
|
<Check class="size-3.5 opacity-0" />
|
||||||
</CheckboxRoot>
|
</CheckboxRoot>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue