refactor: ♻️ Fix more broken UIs, rewrite account switcher

This commit is contained in:
Jesse Wierzbinski 2025-04-10 18:44:53 +02:00
parent ac0a571ecc
commit a4d42e3086
No known key found for this signature in database
31 changed files with 167 additions and 176 deletions

View file

@ -16,7 +16,7 @@ export const alertVariants = cva(
layout: {
default:
"has-[>svg]:grid-cols-[1fr_auto] grid-rows-2 gap-x-3 gap-y-1 items-start",
button: "grid-cols-[auto_1fr_auto] items-center gap-x-3 gap-y-0.5",
button: "grid-cols-[auto_1fr_auto] items-center gap-x-3 gap-y-0.5 *:data-[slot=alert-description]:col-start-2 *:data-[slot=alert-description]:row-start-2 has-[>[data-slot=alert-description]]:[&>button]:row-span-2",
},
},
defaultVariants: {

View file

@ -18,7 +18,7 @@ const delegatedProps = computed(() => {
<AvatarFallback
data-slot="avatar-fallback"
v-bind="delegatedProps"
:class="cn('bg-muted flex size-full items-center justify-center rounded-full', props.class)"
:class="cn('bg-muted flex size-full items-center justify-center', props.class)"
>
<slot />
</AvatarFallback>

View file

@ -9,7 +9,7 @@ const props = defineProps<{
<template>
<div data-slot="card" :class="cn(
'bg-card text-card-foreground flex flex-col gap-6 rounded-md border py-6 shadow-sm',
'bg-card text-card-foreground flex flex-col gap-6 rounded-md border p-6 shadow-sm',
props.class,
)
">

View file

@ -10,7 +10,7 @@ const props = defineProps<{
<template>
<div
data-slot="card-content"
:class="cn('px-6', props.class)"
:class="cn('flex flex-col', props.class)"
>
<slot />
</div>

View file

@ -10,7 +10,7 @@ const props = defineProps<{
<template>
<div
data-slot="card-footer"
:class="cn('flex items-center px-6 [.border-t]:pt-6', props.class)"
:class="cn('flex items-center [.border-t]:pt-6', props.class)"
>
<slot />
</div>

View file

@ -10,7 +10,7 @@ const props = defineProps<{
<template>
<div
data-slot="card-header"
:class="cn('@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 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 />
</div>

View file

@ -18,7 +18,7 @@ const delegatedProps = computed(() => {
<DialogOverlay
data-slot="dialog-overlay"
v-bind="delegatedProps"
:class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80', props.class)"
:class="cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80 backdrop-blur-md', props.class)"
>
<slot />
</DialogOverlay>

View file

@ -45,9 +45,13 @@ watch(isValidUrl, (value) => {
</script>
<template>
<div class="space-y-3">
<div class="space-y-2">
<Input v-model="modelValue" v-bind="$attrs" />
<p v-if="isValidUrl" class="text-green-600 text-sm"><Check class="inline size-4" /> {{ m.sunny_small_warbler_express() }}</p>
<p v-else-if="(modelValue?.toString().length ?? 0) > 0" class="text-destructive text-sm"><X class="inline size-4" /> {{ m.teal_late_grebe_blend() }}</p>
<p v-if="isValidUrl" class="text-green-600 text-xs">
{{ m.sunny_small_warbler_express() }}
</p>
<p v-else-if="(modelValue?.toString().length ?? 0) > 0" class="text-destructive text-xs">
{{ m.teal_late_grebe_blend() }}
</p>
</div>
</template>

View file

@ -24,7 +24,7 @@ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
<div
v-if="collapsible === 'none'"
data-slot="sidebar"
:class="cn('bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col', props.class)"
:class="cn('bg-sidebar text-sidebar-foreground flex h-dvh w-(--sidebar-width) flex-col', props.class)"
v-bind="$attrs"
>
<slot />