@wakastellar/ui 0.6.0 → 1.0.2

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 (62) hide show
  1. package/dist/blocks/index.d.ts +28 -39
  2. package/dist/components/DataTable/DataTable.d.ts +1 -1
  3. package/dist/components/DataTable/DataTableAdvanced.d.ts +1 -1
  4. package/dist/components/DataTable/DataTableFilters.d.ts +3 -3
  5. package/dist/components/DataTable/DataTableSelection.d.ts +12 -17
  6. package/dist/components/DataTable/hooks/useDataTable.d.ts +1 -1
  7. package/dist/components/DataTable/hooks/useDataTableAdvanced.d.ts +6 -6
  8. package/dist/components/DataTable/hooks/useDataTableExport.d.ts +4 -15
  9. package/dist/components/DataTable/hooks/useDataTableImport.d.ts +2 -16
  10. package/dist/components/DataTable/hooks/useDataTableVirtualization.d.ts +1 -1
  11. package/dist/components/DataTable/index.d.ts +2 -48
  12. package/dist/components/DataTable/types.d.ts +25 -417
  13. package/dist/components/command/index.d.ts +2 -6
  14. package/dist/components/index.d.ts +20 -24
  15. package/dist/components/language-selector/index.d.ts +1 -19
  16. package/dist/components/theme-selector/index.d.ts +0 -10
  17. package/dist/components/typography/index.d.ts +1 -1
  18. package/dist/components/waka-spinner/index.d.ts +21 -57
  19. package/dist/components/waka-theme-creator/index.d.ts +22 -73
  20. package/dist/components/waka-theme-manager/index.d.ts +1 -14
  21. package/dist/context/admincrumb-context.d.ts +1 -118
  22. package/dist/context/index.d.ts +2 -2
  23. package/dist/context/language-context.d.ts +23 -177
  24. package/dist/context/theme-context.d.ts +3 -4
  25. package/dist/context/theme-provider.d.ts +19 -57
  26. package/dist/context/waka-provider.d.ts +7 -50
  27. package/dist/hooks/use-toast.d.ts +0 -116
  28. package/dist/hooks/use-translation.d.ts +1 -24
  29. package/dist/hooks/useToast.d.ts +0 -82
  30. package/dist/index.cjs.js +44 -57
  31. package/dist/index.d.ts +3 -35
  32. package/dist/index.es.js +17836 -21739
  33. package/dist/types/provider.d.ts +17 -48
  34. package/dist/ui.css +1 -1
  35. package/dist/utils/cn.d.ts +1 -15
  36. package/dist/utils/datetime-helpers.d.ts +33 -241
  37. package/dist/utils/index.d.ts +0 -4
  38. package/dist/utils/theme-loader.d.ts +30 -140
  39. package/dist/utils/tweak.d.ts +1 -14
  40. package/package.json +40 -107
  41. package/src/styles/datepicker.css +2 -9
  42. package/src/styles/globals.css +4 -4
  43. package/dist/charts.cjs.js +0 -1
  44. package/dist/charts.es.js +0 -16
  45. package/dist/cn-CAc3sAGM.js +0 -21
  46. package/dist/cn-zrNBeCrC.js +0 -1
  47. package/dist/components/DataTable/DataTableGroupRow.d.ts +0 -35
  48. package/dist/components/DataTable/DataTableRow.d.ts +0 -30
  49. package/dist/components/WakaKeycloakLogin/WakaKeycloakLogin.d.ts +0 -3
  50. package/dist/components/WakaKeycloakLogin/index.d.ts +0 -2
  51. package/dist/components/WakaKeycloakLogin/types.d.ts +0 -56
  52. package/dist/export.cjs.js +0 -1
  53. package/dist/export.es.js +0 -5
  54. package/dist/index-CENPre_9.js +0 -466
  55. package/dist/index-CHLjUBPo.js +0 -1
  56. package/dist/rich-text.cjs.js +0 -1
  57. package/dist/rich-text.es.js +0 -4
  58. package/dist/types-Bjy1Hy76.js +0 -1111
  59. package/dist/types-CHv7a1SP.js +0 -1
  60. package/dist/useDataTableImport-DqeEL4GC.js +0 -124
  61. package/dist/useDataTableImport-sQwBFAJ_.js +0 -775
  62. package/dist/utils/logger.d.ts +0 -60
@@ -1,211 +1,57 @@
1
- import { WakaError } from '../utils/error-handling';
2
- /**
3
- * @fileoverview Contexte de gestion des langues pour WakaStart UI
4
- *
5
- * Ce module fournit un système complet de gestion de l'internationalisation:
6
- * - Chargement dynamique des traductions depuis URL ou inline JSON
7
- * - Cache des traductions déjà chargées
8
- * - Intégration transparente avec i18next
9
- * - Persistance de la langue dans localStorage
10
- * - Chargement à la volée de traductions JSON
11
- *
12
- * @module context/language-context
13
- */
14
1
  import * as React from "react";
15
- /**
16
- * Format standard i18n pour les traductions
17
- * Compatible avec i18next resource bundles
18
- *
19
- * @example
20
- * ```json
21
- * {
22
- * "common": {
23
- * "save": "Enregistrer",
24
- * "cancel": "Annuler",
25
- * "confirm": "Confirmer"
26
- * },
27
- * "errors": {
28
- * "required": "Ce champ est requis",
29
- * "invalid_email": "Email invalide"
30
- * }
31
- * }
32
- * ```
33
- */
34
- export type I18nTranslations = Record<string, string | Record<string, unknown>>;
35
- /**
36
- * Configuration d'une langue disponible
37
- */
38
- export interface LanguageConfig {
39
- /** Code ISO de la langue (ex: "fr", "en", "es") */
40
- code: string;
41
- /** Libellé d'affichage */
42
- label: string;
43
- /** Emoji du drapeau (optionnel) */
44
- flagEmoji?: string;
45
- /** URL de l'image du drapeau (optionnel) */
46
- flag?: string;
47
- /**
48
- * Traductions inline au format i18n JSON
49
- * Si fourni, les traductions sont utilisées directement
50
- */
51
- translations?: I18nTranslations;
52
- /**
53
- * URL pour charger le JSON des traductions (optionnel)
54
- * Le JSON doit être au format I18nTranslations
55
- */
56
- jsonUrl?: string;
57
- }
58
- /**
59
- * Configuration pour le chargement distant (legacy, utiliser jsonUrl dans LanguageConfig)
60
- * @deprecated Utiliser `jsonUrl` dans LanguageConfig à la place
61
- */
62
2
  export interface S3Config {
63
- /** URL de base */
3
+ /** URL de base du bucket S3 */
64
4
  baseUrl: string;
65
- /** Préfixe des fichiers */
5
+ /** Préfixe des fichiers (ex: "translations/") */
66
6
  prefix?: string;
67
7
  /** Extension des fichiers (défaut: "json") */
68
8
  extension?: string;
69
- /** Headers HTTP personnalisés */
9
+ /** Headers personnalisés pour les requêtes */
70
10
  headers?: Record<string, string>;
71
11
  }
72
- /**
73
- * Type pour les traductions JSON (alias pour compatibilité)
74
- */
75
- export type TranslationsJSON = I18nTranslations;
76
- /**
77
- * Valeur exposée par le contexte de langue
78
- */
12
+ export interface LanguageConfig {
13
+ code: string;
14
+ label: string;
15
+ flagEmoji?: string;
16
+ flag?: string;
17
+ }
79
18
  export interface LanguageContextValue {
80
- /** Code de la langue actuellement active */
19
+ /** Langue courante */
81
20
  currentLanguage: string;
82
- /** Liste des langues disponibles configurées */
21
+ /** Liste des langues disponibles */
83
22
  languages: LanguageConfig[];
84
- /** Change la langue active et charge les traductions si nécessaire */
23
+ /** Changer de langue */
85
24
  changeLanguage: (code: string) => Promise<void>;
86
- /** Indique si un chargement de traductions est en cours */
25
+ /** État de chargement */
87
26
  isLoading: boolean;
88
- /** Set des codes de langues dont les traductions sont chargées */
27
+ /** Traductions chargées */
89
28
  loadedLanguages: Set<string>;
90
- /**
91
- * Charge des traductions depuis un objet JSON à la volée
92
- * @param langCode - Code de la langue
93
- * @param translations - Traductions au format i18n JSON
94
- * @param apply - Si true, change aussi la langue courante (défaut: true)
95
- */
96
- loadLanguageFromJSON: (langCode: string, translations: I18nTranslations, apply?: boolean) => Promise<void>;
97
- /**
98
- * Ajoute/met à jour une langue dans la liste
99
- * @param config - Configuration de la langue
100
- */
101
- addLanguage: (config: LanguageConfig) => void;
102
- /**
103
- * Recharge les traductions d'une langue depuis son URL
104
- * @param langCode - Code de la langue à recharger
105
- */
106
- reloadLanguage: (langCode: string) => Promise<void>;
107
29
  }
108
- /**
109
- * Props du provider de langue
110
- */
111
30
  export interface LanguageProviderProps {
112
- /** Composants enfants */
113
31
  children: React.ReactNode;
114
- /** Liste des langues disponibles dans l'application */
32
+ /** Langues disponibles */
115
33
  languages: LanguageConfig[];
116
- /** Code de la langue par défaut (défaut: "fr") */
34
+ /** Langue par défaut */
117
35
  defaultLanguage?: string;
118
- /**
119
- * Configuration S3 (legacy)
120
- * @deprecated Utiliser `jsonUrl` dans chaque LanguageConfig à la place
121
- */
36
+ /** Configuration S3 (optionnel - si non fourni, utilise les traductions locales) */
122
37
  s3Config?: S3Config;
123
- /** Callback appelé après chaque changement de langue réussi */
38
+ /** Callback après changement de langue */
124
39
  onLanguageChange?: (code: string) => void;
125
- /** Callback en cas d'erreur */
126
- onError?: (error: WakaError) => void;
127
- /** Headers personnalisés pour les requêtes fetch */
128
- fetchHeaders?: Record<string, string>;
129
- /** Timeout en millisecondes pour les requêtes fetch (défaut: 10000) */
130
- fetchTimeout?: number;
131
40
  }
132
41
  /**
133
42
  * LanguageProvider
134
43
  *
135
- * Provider pour la gestion de l'internationalisation avec support
136
- * du chargement dynamique de traductions JSON.
44
+ * Provider pour gérer les langues et charger les traductions depuis S3.
137
45
  *
138
46
  * Features:
139
- * - Traductions inline ou chargées depuis URL
140
- * - Chargement à la volée via loadLanguageFromJSON()
47
+ * - Chargement dynamique des traductions depuis S3
141
48
  * - Cache des traductions déjà chargées
142
49
  * - Intégration avec i18next
143
50
  * - Persistance dans localStorage
144
- *
145
- * @example
146
- * ```tsx
147
- * // Configuration avec traductions inline
148
- * <LanguageProvider
149
- * languages={[
150
- * {
151
- * code: "fr",
152
- * label: "Français",
153
- * flagEmoji: "🇫🇷",
154
- * translations: {
155
- * common: { save: "Enregistrer", cancel: "Annuler" }
156
- * }
157
- * },
158
- * {
159
- * code: "en",
160
- * label: "English",
161
- * flagEmoji: "🇬🇧",
162
- * jsonUrl: "https://example.com/i18n/en.json"
163
- * }
164
- * ]}
165
- * defaultLanguage="fr"
166
- * >
167
- * <App />
168
- * </LanguageProvider>
169
- * ```
51
+ * - Support des traductions locales si pas de S3
170
52
  */
171
- export declare function LanguageProvider({ children, languages: initialLanguages, defaultLanguage, s3Config, onLanguageChange, onError, fetchHeaders, fetchTimeout, }: LanguageProviderProps): import("react/jsx-runtime").JSX.Element;
53
+ export declare function LanguageProvider({ children, languages, defaultLanguage, s3Config, onLanguageChange, }: LanguageProviderProps): import("react/jsx-runtime").JSX.Element;
172
54
  /**
173
- * Hook pour accéder au contexte de langue
174
- *
175
- * @throws {Error} Si utilisé en dehors d'un LanguageProvider
176
- *
177
- * @example
178
- * ```tsx
179
- * function LanguageSwitcher() {
180
- * const { currentLanguage, languages, changeLanguage, isLoading } = useLanguage()
181
- *
182
- * return (
183
- * <select
184
- * value={currentLanguage}
185
- * onChange={(e) => changeLanguage(e.target.value)}
186
- * disabled={isLoading}
187
- * >
188
- * {languages.map((lang) => (
189
- * <option key={lang.code} value={lang.code}>
190
- * {lang.flagEmoji} {lang.label}
191
- * </option>
192
- * ))}
193
- * </select>
194
- * )
195
- * }
196
- *
197
- * // Charger des traductions à la volée
198
- * function LoadCustomTranslations() {
199
- * const { loadLanguageFromJSON } = useLanguage()
200
- *
201
- * const handleLoad = async () => {
202
- * await loadLanguageFromJSON("custom", {
203
- * common: { hello: "Bonjour" }
204
- * })
205
- * }
206
- *
207
- * return <button onClick={handleLoad}>Load Custom</button>
208
- * }
209
- * ```
55
+ * Hook pour utiliser le contexte de langue
210
56
  */
211
57
  export declare function useLanguage(): LanguageContextValue;
@@ -6,18 +6,17 @@ export interface ThemeContextValue {
6
6
  themes: ThemeConfigItem[];
7
7
  systemTheme?: string;
8
8
  isLoadingThemes?: boolean;
9
- themesSource?: "config" | "fallback";
9
+ themesSource?: "config" | "s3" | "fallback";
10
10
  }
11
11
  export interface ThemeProviderProps {
12
12
  children: React.ReactNode;
13
13
  config?: WakaThemeConfig;
14
14
  }
15
15
  /**
16
- * Provider de thème legacy pour WakaStart UI
16
+ * Provider de thème pour WakaStart UI
17
17
  *
18
18
  * Gère le thème actif, le stockage dans localStorage et la détection du thème système
19
- *
20
- * @deprecated Utiliser ThemeProvider de theme-provider.tsx avec support shadcn registry-item
19
+ * Charge automatiquement les thèmes depuis S3 si non fournis dans la config
21
20
  *
22
21
  * @example
23
22
  * ```tsx
@@ -1,34 +1,16 @@
1
- import { WakaError } from '../utils/error-handling';
2
1
  import * as React from "react";
3
- /**
4
- * Format shadcn/ui registry-item pour les thèmes
5
- * Compatible avec https://ui.shadcn.com/schema/registry-item.json
6
- */
7
- export interface ShadcnRegistryItem {
8
- /** Schema URL (optionnel) */
9
- $schema?: string;
10
- /** Nom du thème */
11
- name: string;
12
- /** Type de registry item */
13
- type?: "registry:style" | "registry:theme" | string;
14
- /** CSS personnalisé avec support @layer */
15
- css?: {
16
- "@layer base"?: Record<string, Record<string, string>>;
17
- [selector: string]: Record<string, string> | Record<string, Record<string, string>> | undefined;
18
- };
19
- /** Variables CSS par mode */
20
- cssVars?: {
21
- /** Variables communes au thème (fonts, radius, etc.) */
22
- theme?: Record<string, string>;
23
- /** Variables mode clair */
24
- light?: Record<string, string>;
25
- /** Variables mode sombre */
26
- dark?: Record<string, string>;
27
- };
2
+ export interface ThemeS3Config {
3
+ /** URL de base du bucket S3 */
4
+ baseUrl: string;
5
+ /** Préfixe des fichiers (ex: "themes/") */
6
+ prefix?: string;
7
+ /** Extension des fichiers (défaut: "css") */
8
+ extension?: string;
9
+ /** Headers personnalisés pour les requêtes */
10
+ headers?: Record<string, string>;
11
+ /** Timeout en millisecondes */
12
+ timeout?: number;
28
13
  }
29
- /**
30
- * Configuration d'un thème
31
- */
32
14
  export interface ThemeConfig {
33
15
  /** Identifiant du thème (utilisé dans data-theme) */
34
16
  id: string;
@@ -38,16 +20,6 @@ export interface ThemeConfig {
38
20
  description?: string;
39
21
  /** Couleur représentative du thème (pour preview) */
40
22
  previewColor?: string;
41
- /**
42
- * Données du thème au format shadcn registry-item
43
- * C'est le format recommandé pour définir les thèmes
44
- */
45
- registryItem?: ShadcnRegistryItem;
46
- /**
47
- * URL pour charger le JSON du thème (optionnel)
48
- * Le JSON doit être au format ShadcnRegistryItem
49
- */
50
- jsonUrl?: string;
51
23
  }
52
24
  export interface ThemeContextValue {
53
25
  /** Thème courant */
@@ -68,12 +40,6 @@ export interface ThemeContextValue {
68
40
  preloadTheme: (id: string) => Promise<void>;
69
41
  /** Vérifier si un thème est chargé */
70
42
  isThemeLoaded: (id: string) => boolean;
71
- /**
72
- * Charger un thème depuis un objet JSON
73
- * @param themeId - ID du thème à créer/mettre à jour
74
- * @param registryItem - Données au format shadcn registry-item
75
- */
76
- loadThemeFromJSON: (themeId: string, registryItem: ShadcnRegistryItem) => Promise<void>;
77
43
  }
78
44
  export interface ThemeProviderProps {
79
45
  children: React.ReactNode;
@@ -81,31 +47,27 @@ export interface ThemeProviderProps {
81
47
  themes: ThemeConfig[];
82
48
  /** Thème par défaut */
83
49
  defaultTheme?: string;
50
+ /** Configuration S3 (optionnel - si non fourni, utilise les thèmes locaux) */
51
+ s3Config?: ThemeS3Config;
84
52
  /** Callback après changement de thème */
85
53
  onThemeChange?: (id: string) => void;
86
- /** Callback en cas d'erreur */
87
- onError?: (error: WakaError) => void;
88
54
  /** Activer le mode sombre (optionnel) */
89
55
  enableDarkMode?: boolean;
90
- /** Headers personnalisés pour les requêtes fetch (optionnel) */
91
- fetchHeaders?: Record<string, string>;
92
- /** Timeout en millisecondes pour les requêtes fetch (défaut: 10000) */
93
- fetchTimeout?: number;
94
56
  }
95
57
  /**
96
58
  * ThemeProvider
97
59
  *
98
- * Provider pour gérer les thèmes avec support du format shadcn/ui registry-item.
60
+ * Provider pour gérer les thèmes et charger les CSS depuis S3 avec support TweakCN.
99
61
  *
100
62
  * Features:
101
- * - Support complet du format shadcn registry-item JSON
102
- * - Chargement dynamique depuis URL ou inline
63
+ * - Chargement dynamique des thèmes depuis S3
103
64
  * - Cache des thèmes déjà chargés
104
- * - Support @layer base pour styles personnalisés
65
+ * - Support TweakCN avec data-theme
105
66
  * - Persistance dans localStorage
106
- * - Support dark mode
67
+ * - Préchargement de thèmes
68
+ * - Support des thèmes locaux si pas de S3
107
69
  */
108
- export declare function ThemeProvider({ children, themes, defaultTheme, onThemeChange, onError, enableDarkMode, fetchHeaders, fetchTimeout, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
70
+ export declare function ThemeProvider({ children, themes, defaultTheme, s3Config, onThemeChange, enableDarkMode, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
109
71
  /**
110
72
  * Hook pour utiliser le ThemeProvider
111
73
  */
@@ -2,66 +2,23 @@ import { WakaProviderConfig, WakaProviderProps } from '../types/provider';
2
2
  /**
3
3
  * WakaProvider - Provider principal pour WakaStart UI
4
4
  *
5
- * Centralise la configuration du thème et de la langue.
6
- * Fonctionne avec des thèmes/traductions inline (sans dépendance S3)
7
- * ou avec S3 pour un chargement distant.
5
+ * Centralise la configuration du thème, de la langue et des traductions S3
8
6
  *
9
7
  * @example
10
8
  * ```tsx
11
- * // Configuration avec thèmes et traductions inline (sans S3)
12
9
  * <WakaProvider config={{
13
10
  * theme: {
14
11
  * defaultTheme: "light",
15
- * themes: [
16
- * {
17
- * id: "light",
18
- * label: "Clair",
19
- * cssVars: {
20
- * "--background": "0 0% 100%",
21
- * "--foreground": "222.2 84% 4.9%"
22
- * }
23
- * },
24
- * {
25
- * id: "dark",
26
- * label: "Sombre",
27
- * cssVars: {
28
- * "--background": "222.2 84% 4.9%",
29
- * "--foreground": "210 40% 98%"
30
- * }
31
- * }
32
- * ]
12
+ * themes: ["light", "dark", "forest"],
13
+ * enableSystem: true
33
14
  * },
34
15
  * language: {
35
16
  * defaultLanguage: "fr",
36
17
  * supportedLanguages: ["fr", "en"],
37
- * languages: [
38
- * {
39
- * code: "fr",
40
- * label: "Français",
41
- * translations: { common: { save: "Enregistrer" } }
42
- * },
43
- * {
44
- * code: "en",
45
- * label: "English",
46
- * translations: { common: { save: "Save" } }
47
- * }
48
- * ]
49
- * }
50
- * }}>
51
- * <App />
52
- * </WakaProvider>
53
- *
54
- * // Configuration avec S3 (chargement distant)
55
- * <WakaProvider config={{
56
- * theme: {
57
- * defaultTheme: "light",
58
- * themes: [{ id: "light", label: "Clair" }],
59
- * s3Config: { baseUrl: "https://cdn.example.com/themes" }
60
- * },
61
- * language: {
62
- * defaultLanguage: "fr",
63
- * supportedLanguages: ["fr", "en"],
64
- * s3Config: { bucketUrl: "https://cdn.example.com", translationsPath: "i18n" }
18
+ * s3Config: {
19
+ * bucketUrl: "https://my-bucket.s3.amazonaws.com",
20
+ * translationsPath: "translations"
21
+ * }
65
22
  * }
66
23
  * }}>
67
24
  * <App />
@@ -1,34 +1,11 @@
1
1
  import { ToastActionElement, ToastProps } from '../components/toast';
2
- /**
3
- * @fileoverview Hook de gestion des notifications toast
4
- *
5
- * Ce module fournit un système de notifications toast avec:
6
- * - Gestion d'état globale via un reducer
7
- * - Limite configurable du nombre de toasts
8
- * - Suppression automatique après un délai
9
- * - API simple pour créer, mettre à jour et fermer les toasts
10
- *
11
- * @module hooks/use-toast
12
- */
13
2
  import * as React from "react";
14
- /**
15
- * Type représentant un toast dans le système
16
- * Étend ToastProps avec des propriétés additionnelles pour la gestion
17
- */
18
3
  type ToasterToast = ToastProps & {
19
- /** Identifiant unique du toast */
20
4
  id: string;
21
- /** Titre du toast */
22
5
  title?: React.ReactNode;
23
- /** Description/contenu du toast */
24
6
  description?: React.ReactNode;
25
- /** Élément d'action optionnel (bouton, lien, etc.) */
26
7
  action?: ToastActionElement;
27
8
  };
28
- /**
29
- * Types d'actions disponibles pour le reducer de toasts
30
- * @internal
31
- */
32
9
  declare const actionTypes: {
33
10
  readonly ADD_TOAST: "ADD_TOAST";
34
11
  readonly UPDATE_TOAST: "UPDATE_TOAST";
@@ -36,10 +13,6 @@ declare const actionTypes: {
36
13
  readonly REMOVE_TOAST: "REMOVE_TOAST";
37
14
  };
38
15
  type ActionType = typeof actionTypes;
39
- /**
40
- * Union type des actions possibles pour le reducer de toasts
41
- * @internal
42
- */
43
16
  type Action = {
44
17
  type: ActionType["ADD_TOAST"];
45
18
  toast: ToasterToast;
@@ -53,108 +26,19 @@ type Action = {
53
26
  type: ActionType["REMOVE_TOAST"];
54
27
  toastId?: ToasterToast["id"];
55
28
  };
56
- /**
57
- * État du gestionnaire de toasts
58
- */
59
29
  interface State {
60
- /** Liste des toasts actuellement affichés */
61
30
  toasts: ToasterToast[];
62
31
  }
63
- /**
64
- * Reducer pour gérer l'état des toasts
65
- *
66
- * @param state - État actuel
67
- * @param action - Action à exécuter
68
- * @returns Nouvel état
69
- *
70
- * @example
71
- * ```ts
72
- * // Ajouter un toast
73
- * reducer(state, { type: "ADD_TOAST", toast: { id: "1", title: "Hello" } })
74
- *
75
- * // Fermer un toast
76
- * reducer(state, { type: "DISMISS_TOAST", toastId: "1" })
77
- * ```
78
- */
79
32
  export declare const reducer: (state: State, action: Action) => State;
80
- /**
81
- * Type pour les props d'un nouveau toast (sans l'ID qui est généré automatiquement)
82
- */
83
33
  type Toast = Omit<ToasterToast, "id">;
84
- /**
85
- * Crée et affiche un nouveau toast
86
- *
87
- * @param props - Propriétés du toast (title, description, variant, action, etc.)
88
- * @returns Objet avec l'ID du toast et les méthodes dismiss/update
89
- *
90
- * @example
91
- * ```tsx
92
- * // Toast simple
93
- * toast({ title: "Succès", description: "Opération réussie" })
94
- *
95
- * // Toast avec action
96
- * toast({
97
- * title: "Nouveau message",
98
- * description: "Vous avez reçu un message",
99
- * action: <ToastAction altText="Voir">Voir</ToastAction>
100
- * })
101
- *
102
- * // Toast destructif
103
- * toast({
104
- * variant: "destructive",
105
- * title: "Erreur",
106
- * description: "Une erreur est survenue"
107
- * })
108
- *
109
- * // Contrôler le toast
110
- * const { id, dismiss, update } = toast({ title: "Chargement..." })
111
- * // Plus tard...
112
- * update({ title: "Terminé!" })
113
- * // Ou...
114
- * dismiss()
115
- * ```
116
- */
117
34
  declare function toast({ ...props }: Toast): {
118
- /** Identifiant unique du toast créé */
119
35
  id: string;
120
- /** Ferme le toast */
121
36
  dismiss: () => void;
122
- /** Met à jour le toast avec de nouvelles propriétés */
123
37
  update: (props: ToasterToast) => void;
124
38
  };
125
- /**
126
- * Hook pour accéder au système de toasts
127
- *
128
- * Fournit l'état actuel des toasts et les méthodes pour les gérer.
129
- *
130
- * @returns Objet contenant les toasts, la fonction toast() et dismiss()
131
- *
132
- * @example
133
- * ```tsx
134
- * function MyComponent() {
135
- * const { toast, toasts, dismiss } = useToast()
136
- *
137
- * const handleClick = () => {
138
- * toast({
139
- * title: "Hello!",
140
- * description: "Ceci est une notification"
141
- * })
142
- * }
143
- *
144
- * return (
145
- * <button onClick={handleClick}>
146
- * Afficher toast
147
- * </button>
148
- * )
149
- * }
150
- * ```
151
- */
152
39
  declare function useToast(): {
153
- /** Fonction pour créer un nouveau toast */
154
40
  toast: typeof toast;
155
- /** Fonction pour fermer un toast spécifique ou tous les toasts */
156
41
  dismiss: (toastId?: string) => void;
157
- /** Liste des toasts actuellement affichés */
158
42
  toasts: ToasterToast[];
159
43
  };
160
44
  export { useToast, toast };
@@ -1,22 +1,3 @@
1
- import { default as i18n } from '../lib/i18n';
2
- /**
3
- * Type pour les options de traduction
4
- */
5
- type TranslationOptions = Record<string, string | number | boolean> & {
6
- defaultValue?: string;
7
- };
8
- /**
9
- * Type pour la fonction de traduction
10
- */
11
- type TranslationFunction = (key: string, options?: TranslationOptions) => string;
12
- /**
13
- * Type de retour du hook useTranslation
14
- */
15
- interface TranslationResult {
16
- t: TranslationFunction;
17
- i18n: typeof i18n;
18
- ready: boolean;
19
- }
20
1
  /**
21
2
  * Hook pour utiliser les traductions dans les composants
22
3
  *
@@ -25,14 +6,10 @@ interface TranslationResult {
25
6
  *
26
7
  * Si i18next n'est pas encore prêt, retourne la clé de traduction telle quelle.
27
8
  *
28
- * @param namespace - Namespace i18n optionnel
29
- * @returns Objet contenant la fonction t, l'instance i18n et l'état ready
30
- *
31
9
  * @example
32
10
  * ```tsx
33
11
  * const { t } = useTranslation()
34
12
  * return <div>{t('hello')}</div>
35
13
  * ```
36
14
  */
37
- export declare function useTranslation(namespace?: string): TranslationResult;
38
- export {};
15
+ export declare function useTranslation(): any;