shadcn-vue/apps/www/registry/default/ui/carousel/interface.ts
2024-11-21 11:52:31 +08:00

27 lines
731 B
TypeScript

import type useEmblaCarousel from 'embla-carousel-vue'
import type {
EmblaCarouselVueType,
} from 'embla-carousel-vue'
import type { HTMLAttributes, UnwrapRef } from 'vue'
type CarouselApi = EmblaCarouselVueType[1]
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>
type CarouselOptions = UseCarouselParameters[0]
type CarouselPlugin = UseCarouselParameters[1]
export type UnwrapRefCarouselApi = UnwrapRef<CarouselApi>
export interface CarouselProps {
opts?: CarouselOptions
plugins?: CarouselPlugin
orientation?: 'horizontal' | 'vertical'
}
export interface CarouselEmits {
(e: 'init-api', payload: UnwrapRefCarouselApi): void
}
export interface WithClassAsProps {
class?: HTMLAttributes['class']
}