@club-employes/utopia 4.42.0 → 4.44.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.
Files changed (122) hide show
  1. package/README.md +7 -1
  2. package/dist/components/atoms/Button/Button.d.ts +30 -0
  3. package/dist/components/atoms/Button/index.d.ts +1 -0
  4. package/dist/components/atoms/Button/types.d.ts +9 -0
  5. package/dist/components/atoms/Card/Card.d.ts +25 -0
  6. package/dist/components/atoms/Card/index.d.ts +2 -0
  7. package/dist/components/atoms/Card/types.d.ts +7 -0
  8. package/dist/components/atoms/Checkbox/Checkbox.d.ts +27 -0
  9. package/dist/components/atoms/Checkbox/index.d.ts +1 -0
  10. package/dist/components/atoms/Checkbox/types.d.ts +5 -0
  11. package/dist/components/atoms/Chip/Chip.d.ts +30 -0
  12. package/dist/components/atoms/Chip/index.d.ts +2 -0
  13. package/dist/components/atoms/Chip/types.d.ts +11 -0
  14. package/dist/components/atoms/Icon/Icon.d.ts +23 -0
  15. package/dist/components/atoms/Icon/index.d.ts +2 -0
  16. package/dist/components/atoms/InputText/InputText.d.ts +41 -0
  17. package/dist/components/atoms/InputText/index.d.ts +1 -0
  18. package/dist/components/atoms/InputText/types.d.ts +22 -0
  19. package/dist/components/atoms/Link/Link.d.ts +22 -0
  20. package/dist/components/atoms/Link/LinkContent.d.ts +12 -0
  21. package/dist/components/atoms/Link/index.d.ts +1 -0
  22. package/dist/components/atoms/Link/types.d.ts +11 -0
  23. package/dist/components/atoms/Logo/Logo.d.ts +20 -0
  24. package/dist/components/atoms/Logo/index.d.ts +2 -0
  25. package/dist/components/atoms/Logo/types.d.ts +10 -0
  26. package/dist/components/atoms/RangeSlider/RangeSlider.d.ts +18 -0
  27. package/dist/components/atoms/RangeSlider/index.d.ts +1 -0
  28. package/dist/components/atoms/RangeSlider/types.d.ts +8 -0
  29. package/dist/components/atoms/Skeleton/Skeleton.d.ts +35 -0
  30. package/dist/components/atoms/Skeleton/SkeletonAvatar.d.ts +12 -0
  31. package/dist/components/atoms/Skeleton/SkeletonText.d.ts +16 -0
  32. package/dist/components/atoms/Skeleton/index.d.ts +3 -0
  33. package/dist/components/atoms/Skeleton/types.d.ts +21 -0
  34. package/dist/components/atoms/Switch/Switch.d.ts +27 -0
  35. package/dist/components/atoms/Switch/index.d.ts +1 -0
  36. package/dist/components/atoms/Switch/types.d.ts +6 -0
  37. package/dist/components/atoms/Text/Text.d.ts +24 -0
  38. package/dist/components/atoms/Text/index.d.ts +1 -0
  39. package/dist/components/atoms/Text/types.d.ts +16 -0
  40. package/dist/components/atoms/index.d.ts +23 -0
  41. package/dist/components/index.d.ts +4 -0
  42. package/dist/components/layouts/AuthLayout/AuthLayout.d.ts +56 -0
  43. package/dist/components/layouts/AuthLayout/index.d.ts +1 -0
  44. package/dist/components/layouts/AuthLayout/types.d.ts +5 -0
  45. package/dist/components/layouts/DefaultLayout/DefaultLayout.d.ts +48 -0
  46. package/dist/components/layouts/DefaultLayout/components/Header.d.ts +27 -0
  47. package/dist/components/layouts/DefaultLayout/components/Menu.d.ts +44 -0
  48. package/dist/components/layouts/DefaultLayout/components/MenuSection.d.ts +11 -0
  49. package/dist/components/layouts/DefaultLayout/components/MobileMenu.d.ts +34 -0
  50. package/dist/components/layouts/DefaultLayout/components/MobileMenuButton.d.ts +8 -0
  51. package/dist/components/layouts/DefaultLayout/components/NavItem.d.ts +43 -0
  52. package/dist/components/layouts/DefaultLayout/components/index.d.ts +6 -0
  53. package/dist/components/layouts/DefaultLayout/index.d.ts +1 -0
  54. package/dist/components/layouts/index.d.ts +7 -0
  55. package/dist/components/molecules/BottomSheet/BottomSheet.d.ts +31 -0
  56. package/dist/components/molecules/BottomSheet/index.d.ts +2 -0
  57. package/dist/components/molecules/BottomSheet/types.d.ts +10 -0
  58. package/dist/components/molecules/DropDown/DropDown.d.ts +109 -0
  59. package/dist/components/molecules/DropDown/index.d.ts +1 -0
  60. package/dist/components/molecules/DropDown/types.d.ts +21 -0
  61. package/dist/components/molecules/FeedbackState/FeedbackState.d.ts +14 -0
  62. package/dist/components/molecules/FeedbackState/index.d.ts +1 -0
  63. package/dist/components/molecules/FeedbackState/types.d.ts +11 -0
  64. package/dist/components/molecules/FilterChip/FilterChip.d.ts +14 -0
  65. package/dist/components/molecules/FilterChip/index.d.ts +1 -0
  66. package/dist/components/molecules/FilterChip/types.d.ts +7 -0
  67. package/dist/components/molecules/InputCode/InputCode.d.ts +43 -0
  68. package/dist/components/molecules/InputCode/index.d.ts +2 -0
  69. package/dist/components/molecules/InputCode/types.d.ts +13 -0
  70. package/dist/components/molecules/Modal/Modal.d.ts +187 -0
  71. package/dist/components/molecules/Modal/index.d.ts +1 -0
  72. package/dist/components/molecules/Modal/types.d.ts +22 -0
  73. package/dist/components/molecules/PriceTag/PriceTag.d.ts +9 -0
  74. package/dist/components/molecules/PriceTag/index.d.ts +1 -0
  75. package/dist/components/molecules/PriceTag/types.d.ts +9 -0
  76. package/dist/components/molecules/SearchBox/SearchBox.d.ts +26 -0
  77. package/dist/components/molecules/SearchBox/index.d.ts +1 -0
  78. package/dist/components/molecules/SearchBox/types.d.ts +7 -0
  79. package/dist/components/molecules/Slider/Slider.d.ts +38 -0
  80. package/dist/components/molecules/Slider/SliderProps.d.ts +17 -0
  81. package/dist/components/molecules/Slider/index.d.ts +2 -0
  82. package/dist/components/molecules/Tooltip/Tooltip.d.ts +37 -0
  83. package/dist/components/molecules/Tooltip/index.d.ts +1 -0
  84. package/dist/components/molecules/Tooltip/types.d.ts +10 -0
  85. package/dist/components/molecules/index.d.ts +13 -0
  86. package/dist/components/organisms/BalanceCard/BalanceCard.d.ts +26 -0
  87. package/dist/components/organisms/BalanceCard/index.d.ts +2 -0
  88. package/dist/components/organisms/BalanceCard/types.d.ts +13 -0
  89. package/dist/components/organisms/BalanceCardGroup/BalanceCardGroup.d.ts +20 -0
  90. package/dist/components/organisms/BalanceCardGroup/index.d.ts +2 -0
  91. package/dist/components/organisms/BalanceCardGroup/types.d.ts +14 -0
  92. package/dist/components/organisms/Breadcrumbs/Breadcrumbs.d.ts +4 -0
  93. package/dist/components/organisms/Breadcrumbs/index.d.ts +1 -0
  94. package/dist/components/organisms/Breadcrumbs/types.d.ts +9 -0
  95. package/dist/components/organisms/DataTable/DataTable.d.ts +54 -0
  96. package/dist/components/organisms/DataTable/index.d.ts +1 -0
  97. package/dist/components/organisms/FilterPrice/FilterPrice.d.ts +14 -0
  98. package/dist/components/organisms/FilterPrice/index.d.ts +1 -0
  99. package/dist/components/organisms/FilterPrice/types.d.ts +9 -0
  100. package/dist/components/organisms/PageNavigation/PageNavigation.d.ts +18 -0
  101. package/dist/components/organisms/PageNavigation/index.d.ts +1 -0
  102. package/dist/components/organisms/PageNavigation/types.d.ts +11 -0
  103. package/dist/components/organisms/ProductCard/ProductCard.d.ts +28 -0
  104. package/dist/components/organisms/ProductCard/index.d.ts +1 -0
  105. package/dist/components/organisms/ProductCard/types.d.ts +19 -0
  106. package/dist/components/organisms/index.d.ts +9 -0
  107. package/dist/composables/index.d.ts +6 -0
  108. package/dist/composables/initializeTheme.d.ts +49 -0
  109. package/dist/composables/useBreakpoints.d.ts +11 -0
  110. package/dist/composables/useCurrency.d.ts +6 -0
  111. package/dist/composables/useFavicon.d.ts +10 -0
  112. package/dist/composables/useScrollShadows.d.ts +46 -0
  113. package/dist/composables/useTheme.d.ts +22 -0
  114. package/dist/icons-list.json +1 -1
  115. package/dist/index.d.ts +35 -522
  116. package/dist/index.js +765 -761
  117. package/dist/theme-provider/ThemeProvider.d.ts +28 -0
  118. package/dist/theme-provider/index.d.ts +11 -0
  119. package/dist/themes/club-employes/index.d.ts +4 -0
  120. package/dist/themes/gifteo/index.d.ts +4 -0
  121. package/dist/utopia.css +1 -1
  122. 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,6 @@
1
+ import { Currency } from '../components/atoms';
2
+ import { ComputedRef } from 'vue';
3
+ export declare function useCurrency(currency: Currency): {
4
+ currencyIconName: ComputedRef<string>;
5
+ };
6
+ export type UseCurrencyReturn = ReturnType<typeof useCurrency>;
@@ -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
+ };
@@ -1,5 +1,5 @@
1
1
  {
2
- "generated": "2025-11-23T10:40:07.839Z",
2
+ "generated": "2025-11-24T13:59:15.901Z",
3
3
  "count": 1238,
4
4
  "icons": [
5
5
  "Accessibility",