Skip to content
This repository was archived by the owner on Sep 24, 2024. It is now read-only.

Commit 7bd3ba4

Browse files
SelemondevSelemondev
authored andcommitted
fix: slideover transitions
1 parent 2fd26ea commit 7bd3ba4

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

packages/nuxtlabs-ui-vue/src/App.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const isOpen = ref(false)
77
<template>
88
<div class="grid place-items-center w-full min-h-screen">
99
<UButton label="Open" @click="isOpen = true" />
10-
<USlideover v-model="isOpen" prevent-close>
10+
<USlideover v-model="isOpen" side="right" prevent-close>
1111
<UCard
1212
class="flex flex-col flex-1"
1313
:ui="{ body: { base: 'flex-1' }, ring: '', divide: 'divide-y divide-gray-100 dark:divide-gray-800' }"

packages/nuxtlabs-ui-vue/src/components/overlays/Slideover/USlideover.vue

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { computed, defineComponent, useAttrs } from 'vue'
33
import type { PropType, WritableComputedRef } from 'vue'
44
import { Dialog as HDialog, DialogPanel as HDialogPanel, TransitionChild, TransitionRoot } from '@headlessui/vue'
55
import { twMerge } from 'tailwind-merge'
6+
import classNames from 'classnames'
67
import type { VariantJSWithClassesListProps } from '@/utils/getVariantProps'
78
import { getVariantPropsWithClassesList } from '@/utils/getVariantProps'
89
import type { USlideover } from '@/Types/componentsTypes/components'
@@ -21,7 +22,7 @@ const props = defineProps({
2122
},
2223
side: {
2324
type: String,
24-
default: 'right',
25+
default: 'left',
2526
validator: (value: string) => ['left', 'right'].includes(value),
2627
},
2728
overlay: {
@@ -95,6 +96,15 @@ function close(value: boolean) {
9596
isOpen.value = value
9697
emit('close')
9798
}
99+
100+
const dialogWrapperClass = computed(() => {
101+
return classNames(
102+
wrapperClass.value,
103+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
104+
// @ts-expect-error
105+
{ [variant.value?.justifyEnd]: props.side === 'right' },
106+
)
107+
})
98108
</script>
99109

100110
<script lang="ts">
@@ -106,7 +116,11 @@ export default defineComponent({
106116

107117
<template>
108118
<TransitionRoot as="template" :appear="appear" :show="isOpen">
109-
<HDialog :class="[wrapperClass, { 'justify-end': side === 'right' }]" v-bind="attrs" @close="(e) => !preventClose && close(e)">
119+
<HDialog
120+
:class="[
121+
dialogWrapperClass,
122+
]" v-bind="attrs" @close="(e) => !preventClose && close(e)"
123+
>
110124
<TransitionChild v-if="overlay" as="template" :appear="appear" v-bind="overlayTransitions">
111125
<div :class="[variant.overlayBase, variant.overlayBackground]" />
112126
</TransitionChild>

packages/nuxtlabs-ui-vue/src/theme/nuxtLabsTheme.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1479,6 +1479,7 @@ export default {
14791479
overlayEnterTransition: 'ease-in-out duration-500',
14801480
overlayEnterFrom: 'opacity-0',
14811481
overlayEnterTo: 'opacity-100',
1482+
justifyEnd: 'justify-end',
14821483
overlayLeaveTransition: 'ease-in-out duration-500',
14831484
overlayLeaveFrom: 'opacity-100',
14841485
enterFromLeft: '-translate-x-full',

0 commit comments

Comments
 (0)