@club-employes/utopia 4.41.0 → 4.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/components/atoms/Button/Button.d.ts +30 -0
- package/dist/components/atoms/Button/index.d.ts +1 -0
- package/dist/components/atoms/Button/types.d.ts +9 -0
- package/dist/components/atoms/Card/Card.d.ts +25 -0
- package/dist/components/atoms/Card/index.d.ts +2 -0
- package/dist/components/atoms/Card/types.d.ts +7 -0
- package/dist/components/atoms/Checkbox/Checkbox.d.ts +27 -0
- package/dist/components/atoms/Checkbox/index.d.ts +1 -0
- package/dist/components/atoms/Checkbox/types.d.ts +5 -0
- package/dist/components/atoms/Chip/Chip.d.ts +30 -0
- package/dist/components/atoms/Chip/index.d.ts +2 -0
- package/dist/components/atoms/Chip/types.d.ts +11 -0
- package/dist/components/atoms/Icon/Icon.d.ts +23 -0
- package/dist/components/atoms/Icon/index.d.ts +2 -0
- package/dist/components/atoms/InputText/InputText.d.ts +41 -0
- package/dist/components/atoms/InputText/index.d.ts +1 -0
- package/dist/components/atoms/InputText/types.d.ts +22 -0
- package/dist/components/atoms/Link/Link.d.ts +22 -0
- package/dist/components/atoms/Link/LinkContent.d.ts +12 -0
- package/dist/components/atoms/Link/index.d.ts +1 -0
- package/dist/components/atoms/Link/types.d.ts +11 -0
- package/dist/components/atoms/Logo/Logo.d.ts +20 -0
- package/dist/components/atoms/Logo/index.d.ts +2 -0
- package/dist/components/atoms/Logo/types.d.ts +10 -0
- package/dist/components/atoms/RangeSlider/RangeSlider.d.ts +18 -0
- package/dist/components/atoms/RangeSlider/index.d.ts +1 -0
- package/dist/components/atoms/RangeSlider/types.d.ts +8 -0
- package/dist/components/atoms/Skeleton/Skeleton.d.ts +35 -0
- package/dist/components/atoms/Skeleton/SkeletonAvatar.d.ts +12 -0
- package/dist/components/atoms/Skeleton/SkeletonText.d.ts +16 -0
- package/dist/components/atoms/Skeleton/index.d.ts +3 -0
- package/dist/components/atoms/Skeleton/types.d.ts +21 -0
- package/dist/components/atoms/Switch/Switch.d.ts +27 -0
- package/dist/components/atoms/Switch/index.d.ts +1 -0
- package/dist/components/atoms/Switch/types.d.ts +6 -0
- package/dist/components/atoms/Text/Text.d.ts +24 -0
- package/dist/components/atoms/Text/index.d.ts +1 -0
- package/dist/components/atoms/Text/types.d.ts +16 -0
- package/dist/components/atoms/index.d.ts +23 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/layouts/AuthLayout/AuthLayout.d.ts +56 -0
- package/dist/components/layouts/AuthLayout/index.d.ts +1 -0
- package/dist/components/layouts/AuthLayout/types.d.ts +5 -0
- package/dist/components/layouts/DefaultLayout/DefaultLayout.d.ts +48 -0
- package/dist/components/layouts/DefaultLayout/components/Header.d.ts +27 -0
- package/dist/components/layouts/DefaultLayout/components/Menu.d.ts +44 -0
- package/dist/components/layouts/DefaultLayout/components/MenuSection.d.ts +11 -0
- package/dist/components/layouts/DefaultLayout/components/MobileMenu.d.ts +34 -0
- package/dist/components/layouts/DefaultLayout/components/MobileMenuButton.d.ts +8 -0
- package/dist/components/layouts/DefaultLayout/components/NavItem.d.ts +43 -0
- package/dist/components/layouts/DefaultLayout/components/index.d.ts +6 -0
- package/dist/components/layouts/DefaultLayout/index.d.ts +1 -0
- package/dist/components/layouts/index.d.ts +7 -0
- package/dist/components/molecules/BottomSheet/BottomSheet.d.ts +31 -0
- package/dist/components/molecules/BottomSheet/index.d.ts +2 -0
- package/dist/components/molecules/BottomSheet/types.d.ts +10 -0
- package/dist/components/molecules/DropDown/DropDown.d.ts +109 -0
- package/dist/components/molecules/DropDown/index.d.ts +1 -0
- package/dist/components/molecules/DropDown/types.d.ts +21 -0
- package/dist/components/molecules/FeedbackState/FeedbackState.d.ts +14 -0
- package/dist/components/molecules/FeedbackState/index.d.ts +1 -0
- package/dist/components/molecules/FeedbackState/types.d.ts +11 -0
- package/dist/components/molecules/FilterChip/FilterChip.d.ts +14 -0
- package/dist/components/molecules/FilterChip/index.d.ts +1 -0
- package/dist/components/molecules/FilterChip/types.d.ts +7 -0
- package/dist/components/molecules/InputCode/InputCode.d.ts +43 -0
- package/dist/components/molecules/InputCode/index.d.ts +2 -0
- package/dist/components/molecules/InputCode/types.d.ts +13 -0
- package/dist/components/molecules/Modal/Modal.d.ts +187 -0
- package/dist/components/molecules/Modal/index.d.ts +1 -0
- package/dist/components/molecules/Modal/types.d.ts +22 -0
- package/dist/components/molecules/PriceTag/PriceTag.d.ts +9 -0
- package/dist/components/molecules/PriceTag/index.d.ts +1 -0
- package/dist/components/molecules/PriceTag/types.d.ts +9 -0
- package/dist/components/molecules/SearchBox/SearchBox.d.ts +26 -0
- package/dist/components/molecules/SearchBox/index.d.ts +1 -0
- package/dist/components/molecules/SearchBox/types.d.ts +7 -0
- package/dist/components/molecules/Slider/Slider.d.ts +38 -0
- package/dist/components/molecules/Slider/SliderProps.d.ts +17 -0
- package/dist/components/molecules/Slider/index.d.ts +2 -0
- package/dist/components/molecules/Tooltip/Tooltip.d.ts +37 -0
- package/dist/components/molecules/Tooltip/index.d.ts +1 -0
- package/dist/components/molecules/Tooltip/types.d.ts +10 -0
- package/dist/components/molecules/index.d.ts +13 -0
- package/dist/components/organisms/BalanceCard/BalanceCard.d.ts +26 -0
- package/dist/components/organisms/BalanceCard/index.d.ts +2 -0
- package/dist/components/organisms/BalanceCard/types.d.ts +13 -0
- package/dist/components/organisms/BalanceCardGroup/BalanceCardGroup.d.ts +20 -0
- package/dist/components/organisms/BalanceCardGroup/index.d.ts +2 -0
- package/dist/components/organisms/BalanceCardGroup/types.d.ts +14 -0
- package/dist/components/organisms/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/dist/components/organisms/Breadcrumbs/index.d.ts +1 -0
- package/dist/components/organisms/Breadcrumbs/types.d.ts +9 -0
- package/dist/components/organisms/DataTable/DataTable.d.ts +54 -0
- package/dist/components/organisms/DataTable/index.d.ts +1 -0
- package/dist/components/organisms/FilterPrice/FilterPrice.d.ts +14 -0
- package/dist/components/organisms/FilterPrice/index.d.ts +1 -0
- package/dist/components/organisms/FilterPrice/types.d.ts +9 -0
- package/dist/components/organisms/PageNavigation/PageNavigation.d.ts +18 -0
- package/dist/components/organisms/PageNavigation/index.d.ts +1 -0
- package/dist/components/organisms/PageNavigation/types.d.ts +11 -0
- package/dist/components/organisms/ProductCard/ProductCard.d.ts +28 -0
- package/dist/components/organisms/ProductCard/index.d.ts +1 -0
- package/dist/components/organisms/ProductCard/types.d.ts +19 -0
- package/dist/components/organisms/index.d.ts +9 -0
- package/dist/composables/index.d.ts +6 -0
- package/dist/composables/initializeTheme.d.ts +49 -0
- package/dist/composables/useBreakpoints.d.ts +11 -0
- package/dist/composables/useCurrency.d.ts +6 -0
- package/dist/composables/useFavicon.d.ts +10 -0
- package/dist/composables/useScrollShadows.d.ts +46 -0
- package/dist/composables/useTheme.d.ts +22 -0
- package/dist/icons-list.json +1 -1
- package/dist/index.d.ts +35 -506
- package/dist/index.js +2757 -2575
- package/dist/theme-provider/ThemeProvider.d.ts +28 -0
- package/dist/theme-provider/index.d.ts +11 -0
- package/dist/themes/club-employes/index.d.ts +4 -0
- package/dist/themes/gifteo/index.d.ts +4 -0
- package/dist/utopia.css +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ProductCardProps } from './types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
declare const _default: DefineComponent<ProductCardProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
4
|
+
"toggle-favorite": (payload: {
|
|
5
|
+
id: string;
|
|
6
|
+
newState: boolean;
|
|
7
|
+
}) => any;
|
|
8
|
+
"card-click": (payload: {
|
|
9
|
+
id: string;
|
|
10
|
+
}) => any;
|
|
11
|
+
}, string, PublicProps, Readonly<ProductCardProps> & Readonly<{
|
|
12
|
+
"onToggle-favorite"?: ((payload: {
|
|
13
|
+
id: string;
|
|
14
|
+
newState: boolean;
|
|
15
|
+
}) => any) | undefined;
|
|
16
|
+
"onCard-click"?: ((payload: {
|
|
17
|
+
id: string;
|
|
18
|
+
}) => any) | undefined;
|
|
19
|
+
}>, {
|
|
20
|
+
currency: string;
|
|
21
|
+
language: "fr" | "en";
|
|
22
|
+
imageUrl: string;
|
|
23
|
+
available: boolean;
|
|
24
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
25
|
+
titleRef: HTMLHeadingElement;
|
|
26
|
+
descriptionRef: HTMLParagraphElement;
|
|
27
|
+
}, HTMLDivElement>;
|
|
28
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ProductCard } from './ProductCard';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ProductCardProps {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
imageUrl: string;
|
|
6
|
+
logoUrl?: string;
|
|
7
|
+
isFavorite: boolean;
|
|
8
|
+
tags?: string[];
|
|
9
|
+
available?: boolean;
|
|
10
|
+
variantCount?: number;
|
|
11
|
+
price?: number;
|
|
12
|
+
oldPrice?: number;
|
|
13
|
+
discount?: string;
|
|
14
|
+
discountTooltip?: string;
|
|
15
|
+
currency?: string;
|
|
16
|
+
subventionName?: string;
|
|
17
|
+
subventionTooltip?: string;
|
|
18
|
+
language?: 'fr' | 'en';
|
|
19
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { BalanceCard } from './BalanceCard';
|
|
2
|
+
export type { BalanceCardProps } from './BalanceCard';
|
|
3
|
+
export { BalanceCardGroup } from './BalanceCardGroup';
|
|
4
|
+
export type { BalanceCardData, BalanceCardGroupProps } from './BalanceCardGroup';
|
|
5
|
+
export { DataTable } from './DataTable';
|
|
6
|
+
export { Breadcrumbs } from './Breadcrumbs';
|
|
7
|
+
export { ProductCard } from './ProductCard';
|
|
8
|
+
export { FilterPrice } from './FilterPrice';
|
|
9
|
+
export { PageNavigation } from './PageNavigation';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { getActiveTheme, initializeTheme, isValidThemeName, unlockBrand, type ThemeName } from './initializeTheme';
|
|
2
|
+
export { useFavicon } from './useFavicon';
|
|
3
|
+
export { useScrollShadows, type UseScrollShadowsOptions, type UseScrollShadowsReturn } from './useScrollShadows';
|
|
4
|
+
export { useTheme, type BrandTheme, type ThemeMode } from './useTheme';
|
|
5
|
+
export { useBreakpoints } from './useBreakpoints';
|
|
6
|
+
export { useCurrency } from './useCurrency';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialize theme before Vue app mounts to prevent FOUC (Flash of Unstyled Content)
|
|
3
|
+
*
|
|
4
|
+
* This function should be called BEFORE creating the Vue app instance.
|
|
5
|
+
* It loads and injects the theme CSS synchronously into the document head.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { initializeTheme } from '@utopia/design-system'
|
|
10
|
+
*
|
|
11
|
+
* // Detect theme from domain
|
|
12
|
+
* const domain = window.location.hostname
|
|
13
|
+
* const themeName = domain.includes('gifteo') ? 'gifteo-light' : 'club-employes-light'
|
|
14
|
+
*
|
|
15
|
+
* // Initialize theme BEFORE creating Vue app
|
|
16
|
+
* await initializeTheme(themeName)
|
|
17
|
+
*
|
|
18
|
+
* // Now create Vue app (no FOUC)
|
|
19
|
+
* const app = createApp(App)
|
|
20
|
+
* app.mount('#app')
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export type ThemeName = 'club-employes-light' | 'club-employes-dark' | 'gifteo-light' | 'gifteo-dark';
|
|
24
|
+
/**
|
|
25
|
+
* Validates if the theme name is valid
|
|
26
|
+
*/
|
|
27
|
+
export declare function isValidThemeName(themeName: string): themeName is ThemeName;
|
|
28
|
+
/**
|
|
29
|
+
* Initialize theme CSS before app mount
|
|
30
|
+
* @param themeName - The theme name to load (e.g., 'club-employes-light')
|
|
31
|
+
* @throws Error if theme name is invalid or CSS cannot be loaded
|
|
32
|
+
*/
|
|
33
|
+
export declare function initializeTheme(themeName: string): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the currently active theme name from the DOM
|
|
36
|
+
* @returns The active theme name or null if none is set
|
|
37
|
+
*/
|
|
38
|
+
export declare function getActiveTheme(): ThemeName | null;
|
|
39
|
+
/**
|
|
40
|
+
* Unlock the brand to allow manual brand switching
|
|
41
|
+
* Useful for demo/showcase applications like utopia-website
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* // In a showcase/demo app, unlock the brand to allow testing
|
|
46
|
+
* unlockBrand()
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function unlockBrand(): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
export declare const breakpoints: {
|
|
3
|
+
mobile: number;
|
|
4
|
+
tablet: number;
|
|
5
|
+
desktop: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const useBreakpoints: () => {
|
|
8
|
+
isMobile: Ref<boolean, boolean>;
|
|
9
|
+
isTablet: Ref<boolean, boolean>;
|
|
10
|
+
isDesktop: Ref<boolean, boolean>;
|
|
11
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComputedRef } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Composable pour gérer le favicon dynamique basé sur le thème actuel
|
|
4
|
+
*/
|
|
5
|
+
export declare function useFavicon(): {
|
|
6
|
+
faviconUrl: ComputedRef<string>;
|
|
7
|
+
refreshFavicon: () => void;
|
|
8
|
+
updateFavicon: (faviconUrl: string) => void;
|
|
9
|
+
};
|
|
10
|
+
export type UseFaviconReturn = ReturnType<typeof useFavicon>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
export interface UseScrollShadowsOptions {
|
|
3
|
+
/** Délai avant la première vérification (ms) */
|
|
4
|
+
initialDelay?: number;
|
|
5
|
+
/** Tolérance en pixels pour détecter le bas */
|
|
6
|
+
bottomTolerance?: number;
|
|
7
|
+
/** Tolérance en pixels pour détecter le haut */
|
|
8
|
+
topTolerance?: number;
|
|
9
|
+
/** Configuration des ombres */
|
|
10
|
+
shadowConfig?: {
|
|
11
|
+
/** Offset du haut en px */
|
|
12
|
+
topOffset?: number;
|
|
13
|
+
/** Offset du bas en px */
|
|
14
|
+
bottomOffset?: number;
|
|
15
|
+
/** Hauteur des ombres en px */
|
|
16
|
+
height?: number;
|
|
17
|
+
/** Opacité des ombres (0-1) */
|
|
18
|
+
opacity?: number;
|
|
19
|
+
/** Z-index des ombres */
|
|
20
|
+
zIndex?: number;
|
|
21
|
+
};
|
|
22
|
+
/** Injecter automatiquement les styles CSS */
|
|
23
|
+
injectStyles?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface UseScrollShadowsReturn {
|
|
26
|
+
/** Ref de l'élément scrollable */
|
|
27
|
+
scrollElementRef: Ref<HTMLElement | undefined>;
|
|
28
|
+
/** État de l'ombre du haut */
|
|
29
|
+
showTopShadow: Ref<boolean>;
|
|
30
|
+
/** État de l'ombre du bas */
|
|
31
|
+
showBottomShadow: Ref<boolean>;
|
|
32
|
+
/** Fonction à appeler sur l'événement scroll */
|
|
33
|
+
handleScroll: () => void;
|
|
34
|
+
/** Fonction pour vérifier manuellement la position */
|
|
35
|
+
checkScrollPosition: () => void;
|
|
36
|
+
/** Fonction d'initialisation à appeler dans onMounted */
|
|
37
|
+
initialize: () => void;
|
|
38
|
+
/** Classes CSS calculées pour le conteneur */
|
|
39
|
+
containerClasses: Ref<string[]>;
|
|
40
|
+
/** Classes CSS pour l'élément scrollable */
|
|
41
|
+
scrollClasses: Ref<string[]>;
|
|
42
|
+
/** Fonction pour initialiser avec un watcher */
|
|
43
|
+
initializeOnChange: (trigger: () => any) => () => void;
|
|
44
|
+
}
|
|
45
|
+
export declare function useScrollShadows(options?: UseScrollShadowsOptions): UseScrollShadowsReturn;
|
|
46
|
+
export type ScrollShadowsComposable = ReturnType<typeof useScrollShadows>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ThemeConfig } from '../theme-provider';
|
|
2
|
+
import { ComputedRef } from 'vue';
|
|
3
|
+
export type BrandTheme = 'club-employes' | 'gifteo';
|
|
4
|
+
export type ThemeMode = 'light' | 'dark';
|
|
5
|
+
export declare function useTheme(): {
|
|
6
|
+
currentTheme: ComputedRef<ThemeConfig>;
|
|
7
|
+
currentBrand: ComputedRef<BrandTheme>;
|
|
8
|
+
currentMode: ComputedRef<ThemeMode>;
|
|
9
|
+
currentBrandName: ComputedRef<string>;
|
|
10
|
+
availableBrands: ComputedRef<Array<{
|
|
11
|
+
key: BrandTheme;
|
|
12
|
+
name: string;
|
|
13
|
+
}>>;
|
|
14
|
+
menuCollapsed: ComputedRef<boolean>;
|
|
15
|
+
isBrandLocked: ComputedRef<boolean>;
|
|
16
|
+
toggleBrand: () => void;
|
|
17
|
+
toggleMode: () => void;
|
|
18
|
+
setBrand: (brand: BrandTheme) => void;
|
|
19
|
+
setMode: (mode: ThemeMode) => void;
|
|
20
|
+
toggleMenuCollapsed: () => void;
|
|
21
|
+
setMenuCollapsed: (collapsed: boolean) => void;
|
|
22
|
+
};
|
package/dist/icons-list.json
CHANGED