Update src/components/cardStack/types.ts

This commit is contained in:
2026-03-11 19:39:14 +00:00
parent cfa9842e81
commit fe2f8fa0ee

View File

@@ -2,3 +2,68 @@ export interface CardStackItemShape {
id?: string;
title: string;
}
export interface ButtonConfig {
text: string;
onClick?: () => void;
href?: string;
}
export type ButtonAnimationType = 'none' | 'opacity' | 'slide-up' | 'blur-reveal';
export type CardAnimationType = 'none' | 'opacity' | 'slide-up' | 'scale-rotate' | 'blur-reveal';
export type CardAnimationTypeWith3D = 'none' | 'opacity' | 'slide-up' | 'scale-rotate' | 'blur-reveal' | 'depth-3d';
export type TextboxLayout = 'default' | 'split' | 'split-actions' | 'split-description' | 'inline-image';
export type InvertedBackground = boolean;
export type GridVariant = 'uniform-all-items-equal' | 'bento-grid' | 'bento-grid-inverted' | 'two-columns-alternating-heights' | 'asymmetric-60-wide-40-narrow' | 'three-columns-all-equal-width' | 'four-items-2x2-equal-grid' | 'one-large-right-three-stacked-left' | 'items-top-row-full-width-bottom' | 'full-width-top-items-bottom-row' | 'one-large-left-three-stacked-right' | 'two-items-per-row' | 'timeline';
export interface TitleSegment {
type: 'text' | 'image';
content?: string;
src?: string;
alt?: string;
}
export interface CardStackProps {
children: React.ReactNode;
className?: string;
}
export interface TextBoxProps {
title: string;
description: string;
className?: string;
}
export interface UseCardAnimationReturn {
isActive: boolean;
isMobile: boolean;
itemRefs: React.RefObject<HTMLElement>[];
containerRef?: React.RefObject<HTMLElement>;
perspectiveRef?: React.RefObject<HTMLElement>;
bottomContentRef?: React.RefObject<HTMLElement>;
}
export interface ArrowCarouselProps {
items: CardStackItemShape[];
className?: string;
}
export interface AutoCarouselProps {
items: CardStackItemShape[];
className?: string;
}
export interface ButtonCarouselProps {
items: CardStackItemShape[];
className?: string;
}
export interface FullWidthCarouselProps {
items: CardStackItemShape[];
className?: string;
}
export interface GridLayoutProps {
items: CardStackItemShape[];
className?: string;
}