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