@club-employes/utopia
Version:
🎨 Modern Vue 3 design system with multi-brand theming, design tokens, and 30+ components. Supports Club Employés & Gifteo brands with light/dark modes.
47 lines (46 loc) • 1.8 kB
TypeScript
import { Ref } from 'vue';
export interface UseScrollShadowsOptions {
/** Délai avant la première vérification (ms) */
initialDelay?: number;
/** Tolérance en pixels pour détecter le bas */
bottomTolerance?: number;
/** Tolérance en pixels pour détecter le haut */
topTolerance?: number;
/** Configuration des ombres */
shadowConfig?: {
/** Offset du haut en px */
topOffset?: number;
/** Offset du bas en px */
bottomOffset?: number;
/** Hauteur des ombres en px */
height?: number;
/** Opacité des ombres (0-1) */
opacity?: number;
/** Z-index des ombres */
zIndex?: number;
};
/** Injecter automatiquement les styles CSS */
injectStyles?: boolean;
}
export interface UseScrollShadowsReturn {
/** Ref de l'élément scrollable */
scrollElementRef: Ref<HTMLElement | undefined>;
/** État de l'ombre du haut */
showTopShadow: Ref<boolean>;
/** État de l'ombre du bas */
showBottomShadow: Ref<boolean>;
/** Fonction à appeler sur l'événement scroll */
handleScroll: () => void;
/** Fonction pour vérifier manuellement la position */
checkScrollPosition: () => void;
/** Fonction d'initialisation Ă appeler dans onMounted */
initialize: () => void;
/** Classes CSS calculées pour le conteneur */
containerClasses: Ref<string[]>;
/** Classes CSS pour l'élément scrollable */
scrollClasses: Ref<string[]>;
/** Fonction pour initialiser avec un watcher */
initializeOnChange: (trigger: () => any) => () => void;
}
export declare function useScrollShadows(options?: UseScrollShadowsOptions): UseScrollShadowsReturn;
export type ScrollShadowsComposable = ReturnType<typeof useScrollShadows>;