feat: initial commit - Phase 1 & 2 core features

This commit is contained in:
hiderfong
2026-04-22 17:07:33 +08:00
commit 1773bda06b
25005 changed files with 6252106 additions and 0 deletions
@@ -0,0 +1,36 @@
import { CarouselItemProps } from "./carousel-item.js";
import { InjectionKey, Ref, VNode } from "vue";
//#region ../../packages/components/carousel/src/constants.d.ts
type CarouselItemStates = {
hover: boolean;
translate: number;
scale: number;
active: boolean;
ready: boolean;
inStage: boolean;
animating: boolean;
};
type CarouselItemContext = {
props: Required<CarouselItemProps>;
states: CarouselItemStates;
uid: number;
getVnode: () => VNode;
translateItem: (index: number, activeIndex: number, oldIndex?: number) => void;
};
type CarouselContext = {
root: Ref<HTMLElement | undefined>;
items: Ref<CarouselItemContext[]>;
isCardType: Ref<boolean>;
isVertical: Ref<boolean>;
loop: boolean;
cardScale: number;
addItem: (item: CarouselItemContext) => void;
removeItem: (item: CarouselItemContext) => void;
setActiveItem: (index: number) => void;
setContainerHeight: (height: number) => void;
};
declare const carouselContextKey: InjectionKey<CarouselContext>;
declare const CAROUSEL_ITEM_NAME = "ElCarouselItem";
//#endregion
export { CAROUSEL_ITEM_NAME, CarouselContext, CarouselItemContext, CarouselItemStates, carouselContextKey };