style: 🎨 Run Biome formatter

This commit is contained in:
Jesse Wierzbinski 2026-01-09 21:47:12 +01:00
parent 74c3b26f20
commit 68e23a818a
No known key found for this signature in database
244 changed files with 435 additions and 470 deletions

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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"

View file

@ -15,9 +15,9 @@
</FormDescription> </FormDescription>
</CardHeader> </CardHeader>
<FormControl> <FormControl>
<slot/> <slot />
</FormControl> </FormControl>
<FormMessage/> <FormMessage />
</FormItem> </FormItem>
</Card> </Card>
</template> </template>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -5,7 +5,7 @@
$style.content, $style.content,
]" ]"
> >
<slot/> <slot />
</div> </div>
</template> </template>

View file

@ -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>

View file

@ -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

View file

@ -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
> >

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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">

View file

@ -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>

View file

@ -1,5 +1,5 @@
<template> <template>
<Dialog/> <Dialog />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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"

View file

@ -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"

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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"

View file

@ -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>

View file

@ -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>

View file

@ -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"

View file

@ -1,5 +1,5 @@
<template> <template>
<slot/> <slot />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -24,6 +24,6 @@ const delegatedProps = computed(() => {
props.class, props.class,
)" )"
> >
<slot/> <slot />
</AlertDialogCancel> </AlertDialogCancel>
</template> </template>

View file

@ -40,7 +40,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
) )
" "
> >
<slot/> <slot />
</AlertDialogContent> </AlertDialogContent>
</AlertDialogPortal> </AlertDialogPortal>
</template> </template>

View file

@ -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>

View file

@ -17,6 +17,6 @@ const props = defineProps<{
) )
" "
> >
<slot/> <slot />
</div> </div>
</template> </template>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -16,6 +16,6 @@ const props = defineProps<{
) )
" "
> >
<slot/> <slot />
</div> </div>
</template> </template>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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