@club-employes/utopia 4.384.0 → 4.386.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.
@@ -5,8 +5,8 @@ declare const _default: DefineComponent<EmptyStateProps, {}, {}, {}, {}, Compone
5
5
  title: string;
6
6
  icon: IconName;
7
7
  iconSize: IconSize;
8
- iconColor: string;
9
8
  description: string;
9
+ iconColor: string;
10
10
  buttonLabel: string;
11
11
  buttonAction: () => void;
12
12
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
@@ -8,12 +8,12 @@ declare const _default: DefineComponent<PageNavigationProps, {}, {}, {}, {}, Com
8
8
  "onSize-change"?: ((page: number) => any) | undefined;
9
9
  }>, {
10
10
  size: number;
11
+ goToPageLabel: string;
12
+ sizeLabel: string;
11
13
  compact: boolean;
12
14
  showSize: boolean;
13
- sizeLabel: string;
14
15
  sizeOptions: number[];
15
16
  showGoToPage: boolean;
16
- goToPageLabel: string;
17
17
  goToPageDropdownMaxPages: number;
18
18
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
19
19
  export default _default;
@@ -4,4 +4,5 @@ export interface SummaryMetricCardProps {
4
4
  value: string | number;
5
5
  icon: string;
6
6
  variant?: SummaryMetricCardVariant;
7
+ subValue?: string | number;
7
8
  }
@@ -1,41 +1,14 @@
1
1
  import { ComputedRef, MaybeRefOrGetter } from 'vue';
2
- export type TableLanguage = 'fr' | 'en';
3
- interface TableTranslations {
4
- goToPageLabel: string;
5
- sizeLabel: string;
6
- elements: string;
7
- to: string;
8
- filter: {
9
- equals: string;
10
- notEquals: string;
11
- before: string;
12
- after: string;
13
- contains: string;
14
- notContains: string;
15
- startsWith: string;
16
- lessThan: string;
17
- greaterThan: string;
18
- lessThanOrEqual: string;
19
- greaterThanOrEqual: string;
20
- between: string;
21
- notBetween: string;
22
- };
23
- emptyState: {
24
- loading: {
25
- title: string;
26
- description: string;
27
- };
28
- noData: {
29
- title: string;
30
- description: string;
31
- };
32
- noSearchResults: {
33
- title: string;
34
- description: string;
35
- };
36
- };
37
- editModeLabelOn: string;
38
- editModeLabelOff: string;
39
- }
2
+ import { UtopiaLocale, UtopiaMessagesTree } from '../i18n/types';
3
+ /** @deprecated Alias historique — utiliser `UtopiaLocale`. Exporté à vie (rétro-compat). */
4
+ export type TableLanguage = UtopiaLocale;
5
+ export type TableTranslations = UtopiaMessagesTree['table'];
6
+ /**
7
+ * Wrapper rétro-compatible au-dessus du socle i18n du DS : les dictionnaires
8
+ * vivent désormais dans `src/i18n/messages/{fr,en}.ts` (clé `table`).
9
+ *
10
+ * Signature et comportement inchangés pour une langue définie ; si `language`
11
+ * résout `undefined`, retombe sur la locale globale Utopia (puis `'fr'`) —
12
+ * même chaîne de résolution que `useUtopiaI18n`.
13
+ */
40
14
  export declare function useTableTranslations(language: MaybeRefOrGetter<TableLanguage | string>): ComputedRef<TableTranslations>;
41
- export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export { mergeMessagesDeep, normalizeUtopiaLocale, useEffectiveLocale, useUtopiaI18n, useUtopiaIntlLocale, type UseUtopiaI18nReturn } from './useUtopiaI18n';
2
+ export type { DeepPartialMessages, MessagePath, UtopiaComponentKey, UtopiaLocale, UtopiaMessagesOverride, UtopiaMessagesTree } from './types';
3
+ export { default as utopiaMessagesFr } from './messages/fr';
4
+ export { default as utopiaMessagesEn } from './messages/en';
@@ -0,0 +1,10 @@
1
+ import { UtopiaMessagesOverride } from '../types';
2
+ /**
3
+ * Dictionnaire EN — surcharge partielle du dictionnaire FR canonique (`fr.ts`).
4
+ *
5
+ * Toute clé absente ici retombe silencieusement sur la valeur FR au runtime
6
+ * (jamais de clé brute affichée). Le type `UtopiaMessagesOverride` garantit
7
+ * qu'aucune clé inconnue de `fr.ts` ne peut être introduite ici.
8
+ */
9
+ declare const en: UtopiaMessagesOverride;
10
+ export default en;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Dictionnaire canonique des libellés internes du DS — locale FR (défaut).
3
+ *
4
+ * Source de vérité du shape de l'arbre de messages : `en.ts` est typé
5
+ * `UtopiaMessagesOverride` (partiel récursif de cet arbre) et retombe sur
6
+ * ces valeurs à la moindre clé manquante.
7
+ *
8
+ * Règles :
9
+ * - une clé racine par composant (camelCase du nom du composant), plus `common`
10
+ * pour les libellés transverses (aria, actions génériques) ;
11
+ * - les chaînes migrées depuis un composant sont copiées **à l'identique,
12
+ * caractère pour caractère** (accents, ponctuation, emojis compris) —
13
+ * c'est le contrat de non-régression FR ;
14
+ * - interpolation par balises `{param}` (voir `t()` de `useUtopiaI18n`).
15
+ */
16
+ declare const _default: {
17
+ common: {
18
+ required: string;
19
+ close: string;
20
+ cancel: string;
21
+ apply: string;
22
+ clear: string;
23
+ add: string;
24
+ remove: string;
25
+ search: string;
26
+ };
27
+ table: {
28
+ goToPageLabel: string;
29
+ sizeLabel: string;
30
+ elements: string;
31
+ to: string;
32
+ filter: {
33
+ equals: string;
34
+ notEquals: string;
35
+ before: string;
36
+ after: string;
37
+ contains: string;
38
+ notContains: string;
39
+ startsWith: string;
40
+ lessThan: string;
41
+ greaterThan: string;
42
+ lessThanOrEqual: string;
43
+ greaterThanOrEqual: string;
44
+ between: string;
45
+ notBetween: string;
46
+ };
47
+ emptyState: {
48
+ loading: {
49
+ title: string;
50
+ description: string;
51
+ };
52
+ noData: {
53
+ title: string;
54
+ description: string;
55
+ };
56
+ noSearchResults: {
57
+ title: string;
58
+ description: string;
59
+ };
60
+ };
61
+ editModeLabelOn: string;
62
+ editModeLabelOff: string;
63
+ };
64
+ };
65
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import { default as frMessages } from './messages/fr';
2
+ /**
3
+ * Locales supportées par le DS.
4
+ *
5
+ * Élargissable plus tard (`'es' | 'de' | …`) sans rien casser : toute valeur
6
+ * inconnue est normalisée sur `'fr'` (voir `normalizeUtopiaLocale`).
7
+ */
8
+ export type UtopiaLocale = 'fr' | 'en';
9
+ /** Arbre complet des messages, dont `fr.ts` est la source de vérité. */
10
+ export type UtopiaMessagesTree = typeof frMessages;
11
+ /** Clé racine de l'arbre — une par composant (+ `common`). */
12
+ export type UtopiaComponentKey = keyof UtopiaMessagesTree;
13
+ /**
14
+ * Version partielle récursive de l'arbre : shape des dictionnaires de
15
+ * surcharge (`en.ts`). Les feuilles restent des `string`.
16
+ */
17
+ export type DeepPartialMessages<T> = {
18
+ [K in keyof T]?: T[K] extends string ? string : DeepPartialMessages<T[K]>;
19
+ };
20
+ export type UtopiaMessagesOverride = DeepPartialMessages<UtopiaMessagesTree>;
21
+ /**
22
+ * Chemins pointés (`'emptyState.noData.title'`) valides dans le bloc de
23
+ * messages d'un composant — utilisé par le `t()` de `useUtopiaI18n`.
24
+ */
25
+ export type MessagePath<T> = T extends string ? never : {
26
+ [K in keyof T & string]: T[K] extends string ? K : `${K}.${MessagePath<T[K]>}`;
27
+ }[keyof T & string];
@@ -0,0 +1,48 @@
1
+ import { ComputedRef, MaybeRefOrGetter } from 'vue';
2
+ import { MessagePath, UtopiaComponentKey, UtopiaLocale, UtopiaMessagesTree } from './types';
3
+ /** Toute valeur non reconnue retombe sur `'fr'` (défaut historique du DS). */
4
+ export declare function normalizeUtopiaLocale(value: unknown): UtopiaLocale;
5
+ /**
6
+ * Résout la locale effective d'un composant :
7
+ * prop `language` explicite > locale globale Utopia (`setUtopiaLocale`) > `'fr'`.
8
+ *
9
+ * Réactif : suit la prop (getter/ref) et le `Ref` global à chaud.
10
+ */
11
+ export declare function useEffectiveLocale(language?: MaybeRefOrGetter<string | undefined>): ComputedRef<UtopiaLocale>;
12
+ type MessagesNode = {
13
+ [key: string]: string | MessagesNode;
14
+ };
15
+ /**
16
+ * Fusionne une surcharge partielle dans l'arbre de base, feuille à feuille.
17
+ * Une feuille absente (ou d'un autre type) de la surcharge garde la valeur
18
+ * de base — c'est le fallback en→fr : jamais de clé brute affichée.
19
+ */
20
+ export declare function mergeMessagesDeep<T extends MessagesNode>(base: T, override: unknown): T;
21
+ export interface UseUtopiaI18nReturn<K extends UtopiaComponentKey> {
22
+ /** Locale effective (prop > globale > fr), réactive. */
23
+ locale: ComputedRef<UtopiaLocale>;
24
+ /** Bloc de messages du composant, réactif, fallback fr garanti. */
25
+ messages: ComputedRef<UtopiaMessagesTree[K]>;
26
+ /** Accès par chemin pointé + interpolation `{param}`. */
27
+ t: (path: MessagePath<UtopiaMessagesTree[K]>, params?: Record<string, string | number>) => string;
28
+ }
29
+ /**
30
+ * i18n interne du DS — généralisation du pattern historique de `<Table>`
31
+ * (`useTableTranslations` + fallback `getUtopiaLocale()`).
32
+ *
33
+ * ```ts
34
+ * const { messages, t } = useUtopiaI18n('dropDown', () => props.language)
35
+ * const placeholderText = computed(() => props.placeholder ?? messages.value.placeholder)
36
+ * ```
37
+ *
38
+ * Les dictionnaires sont module-locaux (une copie par bundle du DS) : seul le
39
+ * *choix* de locale transite par `globalThis` — des versions désynchronisées
40
+ * du DS entre host et MFEs restent donc cohérentes chacune avec ses messages.
41
+ */
42
+ export declare function useUtopiaI18n<K extends UtopiaComponentKey>(component: K, language?: MaybeRefOrGetter<string | undefined>): UseUtopiaI18nReturn<K>;
43
+ /**
44
+ * Locale BCP 47 réactive pour `Intl.*` (dates, nombres) :
45
+ * `fr → 'fr-FR'`, `en → 'en-GB'`.
46
+ */
47
+ export declare function useUtopiaIntlLocale(language?: MaybeRefOrGetter<string | undefined>): ComputedRef<string>;
48
+ export {};
package/dist/index.d.ts CHANGED
@@ -112,8 +112,10 @@ export type { TreeProps, TreeNode, TreeSelectionKey } from './components/molecul
112
112
  export { clubEmployesDark, clubEmployesLight } from './themes/club-employes';
113
113
  export { gifteoDark, gifteoLight } from './themes/gifteo';
114
114
  export type { LoaderProps } from './components/templates/Loader/types';
115
- export { getActiveTheme, initializeTheme, isValidThemeName, unlockBrand, useBreakpoints, useCurrency, useFavicon, useScrollShadows, useTheme, usePrimeVueTableLocale, getUtopiaLocale, setUtopiaLocale, useUtopiaLocale } from './composables';
115
+ export { getActiveTheme, initializeTheme, isValidThemeName, unlockBrand, useBreakpoints, useCurrency, useFavicon, useScrollShadows, useTheme, usePrimeVueTableLocale, getUtopiaLocale, setUtopiaLocale, useUtopiaLocale, useTableTranslations } from './composables';
116
116
  export type { PrimeVueTableLanguage } from './composables/usePrimeVueTableLocale';
117
+ export type { TableLanguage, TableTranslations } from './composables/useTableTranslations';
118
+ export { mergeMessagesDeep, normalizeUtopiaLocale, useEffectiveLocale, useUtopiaI18n, useUtopiaIntlLocale, utopiaMessagesEn, utopiaMessagesFr, type DeepPartialMessages, type MessagePath, type UseUtopiaI18nReturn, type UtopiaComponentKey, type UtopiaLocale, type UtopiaMessagesOverride, type UtopiaMessagesTree } from './i18n';
117
119
  export { applyPrimeVueTableLocalePatch, PRIMEVUE_TABLE_LOCALE_EN, PRIMEVUE_TABLE_LOCALE_FR, type PrimeVueTableLocalePatch } from './locales/primeVueTableLocale';
118
120
  export type { ThemeName } from './composables/initializeTheme';
119
121
  export type { UseScrollShadowsOptions, UseScrollShadowsReturn } from './composables/useScrollShadows';