49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
// Re-export types from their specific modules
|
|
export type { Service } from './service';
|
|
export type { Language, Translation } from './i18n';
|
|
|
|
// Types communs pour les composants UI
|
|
export interface AccordionItemProps {
|
|
title: React.ReactNode;
|
|
children: React.ReactNode;
|
|
isOpen: boolean;
|
|
onToggle: () => void;
|
|
}
|
|
|
|
// Types pour les hooks communs
|
|
export interface UseModalReturn<T> {
|
|
data: T | null;
|
|
open: (data: T) => void;
|
|
close: () => void;
|
|
isOpen: boolean;
|
|
}
|
|
|
|
export interface UseToggleReturn {
|
|
state: boolean;
|
|
toggle: () => void;
|
|
setTrue: () => void;
|
|
setFalse: () => void;
|
|
setState: (state: boolean) => void;
|
|
}
|
|
|
|
// Types pour les composants de navigation
|
|
export interface NavigationHandler {
|
|
(sectionId: string): void;
|
|
}
|
|
|
|
// Classes CSS communes
|
|
export type CommonClassKey =
|
|
| 'transition'
|
|
| 'transitionFast'
|
|
| 'hoverLift'
|
|
| 'hoverScale'
|
|
| 'buttonBase'
|
|
| 'navLink'
|
|
| 'cardBase'
|
|
| 'cardHover'
|
|
| 'mobileMenuItem';
|
|
|
|
// Variants pour les boutons optimisés
|
|
export type ButtonVariant = 'primary' | 'discord' | 'auth' | 'secondary' | 'ghost' | 'outline';
|
|
export type ButtonSize = 'sm' | 'md' | 'lg';
|