frontend/components/ui/carousel/interface.ts

26 lines
753 B
TypeScript
Raw Normal View History

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 type CarouselEmits = (
e: "init-api",
payload: UnwrapRefCarouselApi,
) => void;
export interface WithClassAsProps {
class?: HTMLAttributes["class"];
}