@club-employes/utopia 4.413.0 → 4.414.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/dist/components/layouts/AppShell/AppShell.d.ts +46 -0
- package/dist/components/layouts/AppShell/__tests__/AppShell.spec.d.ts +1 -0
- package/dist/components/layouts/AppShell/components/ShellDrawer.d.ts +42 -0
- package/dist/components/layouts/AppShell/components/ShellHeader.d.ts +29 -0
- package/dist/components/layouts/AppShell/components/ShellNavTree.d.ts +15 -0
- package/dist/components/layouts/AppShell/components/ShellSidebar.d.ts +46 -0
- package/dist/components/layouts/AppShell/components/ShellToneProvider.d.ts +19 -0
- package/dist/components/layouts/AppShell/index.d.ts +4 -0
- package/dist/components/layouts/AppShell/types.d.ts +57 -0
- package/dist/components/layouts/DefaultLayout/DefaultLayout.d.ts +2 -2
- package/dist/components/layouts/index.d.ts +6 -0
- package/dist/components/molecules/SidebarProfile/SidebarProfile.d.ts +38 -0
- package/dist/components/molecules/SidebarProfile/__tests__/SidebarProfile.spec.d.ts +1 -0
- package/dist/components/molecules/SidebarProfile/index.d.ts +2 -0
- package/dist/components/molecules/SidebarProfile/types.d.ts +22 -0
- package/dist/components/molecules/UserCard/UserCard.d.ts +2 -2
- package/dist/components/molecules/index.d.ts +3 -0
- package/dist/components/organisms/EnvironmentSwitcher/EnvironmentHubPanel.d.ts +20 -0
- package/dist/components/organisms/EnvironmentSwitcher/EnvironmentSwitcher.d.ts +21 -0
- package/dist/components/organisms/EnvironmentSwitcher/__tests__/EnvironmentSwitcher.spec.d.ts +1 -0
- package/dist/components/organisms/EnvironmentSwitcher/index.d.ts +2 -0
- package/dist/components/organisms/EnvironmentSwitcher/types.d.ts +43 -0
- package/dist/components/organisms/index.d.ts +1 -0
- package/dist/{light-D1exlyli.js → dark-BVjSOlNr.js} +1 -1
- package/dist/dark-KZbVdJ-d.js +4 -0
- package/dist/i18n/messages/fr.d.ts +15 -0
- package/dist/index.js +12917 -11956
- package/dist/light-CD5Qd2yv.js +4 -0
- package/dist/light-dPSXJUDW.js +4 -0
- package/dist/tokens/club-employes/dark.css +17 -0
- package/dist/tokens/club-employes/dark.js +17 -0
- package/dist/tokens/club-employes/light.css +17 -0
- package/dist/tokens/club-employes/light.js +17 -0
- package/dist/tokens/gifteo/dark.css +17 -0
- package/dist/tokens/gifteo/dark.js +17 -0
- package/dist/tokens/gifteo/light.css +17 -0
- package/dist/tokens/gifteo/light.js +17 -0
- package/dist/utopia.css +1 -1
- package/package.json +1 -1
- package/dist/dark-Cfh8tUWS.js +0 -4
- package/dist/dark-DeUkxoI9.js +0 -4
- package/dist/light-JXfV3fle.js +0 -4
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { AppShellProps, ShellTone, ShellMenuEntry } from './types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
attrs: Partial<{}>;
|
|
5
|
+
slots: {
|
|
6
|
+
'sidebar-header'?(_: {
|
|
7
|
+
collapsed: boolean;
|
|
8
|
+
}): any;
|
|
9
|
+
'sidebar-header'?(_: {
|
|
10
|
+
collapsed: boolean;
|
|
11
|
+
}): any;
|
|
12
|
+
'sidebar-footer'?(_: {
|
|
13
|
+
collapsed: boolean;
|
|
14
|
+
}): any;
|
|
15
|
+
'sidebar-footer'?(_: {
|
|
16
|
+
collapsed: boolean;
|
|
17
|
+
}): any;
|
|
18
|
+
'header-left'?(_: {}): any;
|
|
19
|
+
'header-center'?(_: {}): any;
|
|
20
|
+
'header-right'?(_: {}): any;
|
|
21
|
+
'header-extension'?(_: {}): any;
|
|
22
|
+
default?(_: {}): any;
|
|
23
|
+
footer?(_: {}): any;
|
|
24
|
+
'drawer-account'?(_: {}): any;
|
|
25
|
+
};
|
|
26
|
+
refs: {};
|
|
27
|
+
rootEl: HTMLDivElement;
|
|
28
|
+
};
|
|
29
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
30
|
+
declare const __VLS_component: DefineComponent<AppShellProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
31
|
+
navigate: (to: string, event?: MouseEvent | undefined) => any;
|
|
32
|
+
}, string, PublicProps, Readonly<AppShellProps> & Readonly<{
|
|
33
|
+
onNavigate?: ((to: string, event?: MouseEvent | undefined) => any) | undefined;
|
|
34
|
+
}>, {
|
|
35
|
+
collapsible: boolean;
|
|
36
|
+
tone: ShellTone;
|
|
37
|
+
menuItems: ShellMenuEntry[];
|
|
38
|
+
headerHeight: number;
|
|
39
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
40
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
41
|
+
export default _default;
|
|
42
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
43
|
+
new (): {
|
|
44
|
+
$slots: S;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ShellMenuEntry, ShellTone } from '../types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
menuItems?: ShellMenuEntry[];
|
|
5
|
+
/** Tone de coquille — le tiroir est TÉLÉPORTÉ dans <body>, hors du
|
|
6
|
+
* sous-arbre [data-shell-tone] d'AppShell : il doit porter l'attribut
|
|
7
|
+
* lui-même pour hériter des variables du tone. */
|
|
8
|
+
tone?: ShellTone;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_PublicProps = {
|
|
11
|
+
'open'?: boolean;
|
|
12
|
+
} & __VLS_Props;
|
|
13
|
+
declare function __VLS_template(): {
|
|
14
|
+
attrs: Partial<{}>;
|
|
15
|
+
slots: {
|
|
16
|
+
header?(_: {}): any;
|
|
17
|
+
account?(_: {}): any;
|
|
18
|
+
};
|
|
19
|
+
refs: {
|
|
20
|
+
panelEl: HTMLDivElement;
|
|
21
|
+
};
|
|
22
|
+
rootEl: any;
|
|
23
|
+
};
|
|
24
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
25
|
+
declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
26
|
+
"update:open": (value: boolean) => any;
|
|
27
|
+
navigate: (to: string, event?: MouseEvent | undefined) => any;
|
|
28
|
+
}, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
29
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
30
|
+
onNavigate?: ((to: string, event?: MouseEvent | undefined) => any) | undefined;
|
|
31
|
+
}>, {
|
|
32
|
+
menuItems: ShellMenuEntry[];
|
|
33
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
34
|
+
panelEl: HTMLDivElement;
|
|
35
|
+
}, any>;
|
|
36
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
37
|
+
export default _default;
|
|
38
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
39
|
+
new (): {
|
|
40
|
+
$slots: S;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ShellHeaderProps } from '../types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
attrs: Partial<{}>;
|
|
5
|
+
slots: {
|
|
6
|
+
left?(_: {}): any;
|
|
7
|
+
center?(_: {}): any;
|
|
8
|
+
right?(_: {}): any;
|
|
9
|
+
extension?(_: {}): any;
|
|
10
|
+
};
|
|
11
|
+
refs: {};
|
|
12
|
+
rootEl: HTMLElement;
|
|
13
|
+
};
|
|
14
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
15
|
+
declare const __VLS_component: DefineComponent<ShellHeaderProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
16
|
+
"menu-click": () => any;
|
|
17
|
+
}, string, PublicProps, Readonly<ShellHeaderProps> & Readonly<{
|
|
18
|
+
"onMenu-click"?: (() => any) | undefined;
|
|
19
|
+
}>, {
|
|
20
|
+
height: number;
|
|
21
|
+
showMenuButton: boolean;
|
|
22
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLElement>;
|
|
23
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
24
|
+
export default _default;
|
|
25
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
26
|
+
new (): {
|
|
27
|
+
$slots: S;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ShellMenuEntry } from '../types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
menuItems?: ShellMenuEntry[];
|
|
5
|
+
collapsed?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
8
|
+
navigate: (to: string, event?: MouseEvent | undefined) => any;
|
|
9
|
+
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
+
onNavigate?: ((to: string, event?: MouseEvent | undefined) => any) | undefined;
|
|
11
|
+
}>, {
|
|
12
|
+
collapsed: boolean;
|
|
13
|
+
menuItems: ShellMenuEntry[];
|
|
14
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ShellMenuEntry } from '../types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
menuItems?: ShellMenuEntry[];
|
|
5
|
+
collapsed?: boolean;
|
|
6
|
+
collapsible?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare function __VLS_template(): {
|
|
9
|
+
attrs: Partial<{}>;
|
|
10
|
+
slots: {
|
|
11
|
+
header?(_: {
|
|
12
|
+
collapsed: boolean;
|
|
13
|
+
}): any;
|
|
14
|
+
header?(_: {
|
|
15
|
+
collapsed: boolean;
|
|
16
|
+
}): any;
|
|
17
|
+
footer?(_: {
|
|
18
|
+
collapsed: boolean;
|
|
19
|
+
}): any;
|
|
20
|
+
};
|
|
21
|
+
refs: {
|
|
22
|
+
navEl: HTMLElement;
|
|
23
|
+
};
|
|
24
|
+
rootEl: HTMLElement;
|
|
25
|
+
};
|
|
26
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
27
|
+
declare const __VLS_component: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
28
|
+
navigate: (to: string, event?: MouseEvent | undefined) => any;
|
|
29
|
+
"toggle-collapsed": () => any;
|
|
30
|
+
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
31
|
+
onNavigate?: ((to: string, event?: MouseEvent | undefined) => any) | undefined;
|
|
32
|
+
"onToggle-collapsed"?: (() => any) | undefined;
|
|
33
|
+
}>, {
|
|
34
|
+
collapsible: boolean;
|
|
35
|
+
collapsed: boolean;
|
|
36
|
+
menuItems: ShellMenuEntry[];
|
|
37
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
38
|
+
navEl: HTMLElement;
|
|
39
|
+
}, HTMLElement>;
|
|
40
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
41
|
+
export default _default;
|
|
42
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
43
|
+
new (): {
|
|
44
|
+
$slots: S;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ShellToneProviderProps } from '../types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
attrs: Partial<{}>;
|
|
5
|
+
slots: {
|
|
6
|
+
default?(_: {}): any;
|
|
7
|
+
};
|
|
8
|
+
refs: {};
|
|
9
|
+
rootEl: HTMLDivElement;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
12
|
+
declare const __VLS_component: DefineComponent<ShellToneProviderProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ShellToneProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
13
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as AppShell } from './AppShell';
|
|
2
|
+
export { default as ShellHeader } from './components/ShellHeader';
|
|
3
|
+
export { default as ShellToneProvider } from './components/ShellToneProvider';
|
|
4
|
+
export type { AppShellProps, ShellHeaderProps, ShellMenuCategory, ShellMenuEntry, ShellMenuItem, ShellMenuSection, ShellTone, ShellToneProviderProps } from './types';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppShell — coquille applicative v2 (chantier shell-v2).
|
|
3
|
+
* Header sticky en flux normal (aucune marge négative), sidebar 250px / rail
|
|
4
|
+
* 72px, tiroir mobile 300px, theming par tone. `DefaultLayout` reste exporté
|
|
5
|
+
* et gelé : les plateformes migrent en changeant leur composant racine.
|
|
6
|
+
*/
|
|
7
|
+
export type ShellTone = 'neutral' | 'workspace' | 'shop';
|
|
8
|
+
/** Item de navigation — shape STRICTEMENT identique à DefaultLayout. */
|
|
9
|
+
export interface ShellMenuItem {
|
|
10
|
+
key: string;
|
|
11
|
+
label: string;
|
|
12
|
+
icon: string;
|
|
13
|
+
to?: string;
|
|
14
|
+
children?: ShellMenuItem[];
|
|
15
|
+
}
|
|
16
|
+
export interface ShellMenuSection {
|
|
17
|
+
key: string;
|
|
18
|
+
type: 'section';
|
|
19
|
+
label: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ShellMenuCategory {
|
|
22
|
+
key: string;
|
|
23
|
+
type: 'category';
|
|
24
|
+
label: string;
|
|
25
|
+
}
|
|
26
|
+
export type ShellMenuEntry = ShellMenuItem | ShellMenuSection | ShellMenuCategory;
|
|
27
|
+
export interface AppShellProps {
|
|
28
|
+
/** Même shape que la prop menuItems de DefaultLayout (contrat garanti par test). */
|
|
29
|
+
menuItems?: ShellMenuEntry[];
|
|
30
|
+
/**
|
|
31
|
+
* Tone de la coquille : pilote le fond du header/menu et les états de nav
|
|
32
|
+
* via les tokens --theme-colors-shell-tone-*. 'neutral' = surfaces standard,
|
|
33
|
+
* 'workspace' = bleu clair (espace-com/manager), 'shop' = beige (e-commerce).
|
|
34
|
+
*/
|
|
35
|
+
tone?: ShellTone;
|
|
36
|
+
/** Hauteur du header desktop en px (mobile : 56px fixe + rangée extension). */
|
|
37
|
+
headerHeight?: number;
|
|
38
|
+
/** Largeur max du contenu du header (défaut : pleine largeur). Ex. '1200px' pour le site doc. */
|
|
39
|
+
headerMaxWidth?: string;
|
|
40
|
+
/** Autorise le repli de la sidebar en rail 72px (persisté via useTheme). */
|
|
41
|
+
collapsible?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface ShellHeaderProps {
|
|
44
|
+
/** Tone appliqué en standalone (hors AppShell, ex. parité ce_front). */
|
|
45
|
+
tone?: ShellTone;
|
|
46
|
+
/** Hauteur desktop en px. */
|
|
47
|
+
height?: number;
|
|
48
|
+
/** Largeur max du contenu (défaut : pleine largeur). */
|
|
49
|
+
maxWidth?: string;
|
|
50
|
+
/** Affiche le bouton d'ouverture du tiroir mobile (défaut true). */
|
|
51
|
+
showMenuButton?: boolean;
|
|
52
|
+
/** État d'ouverture du tiroir mobile (aria-expanded du bouton burger). */
|
|
53
|
+
menuOpen?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface ShellToneProviderProps {
|
|
56
|
+
tone: ShellTone;
|
|
57
|
+
}
|
|
@@ -34,13 +34,13 @@ declare function __VLS_template(): {
|
|
|
34
34
|
};
|
|
35
35
|
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
36
36
|
declare const __VLS_component: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
37
|
+
navigate: (to: string, event?: MouseEvent | undefined) => any;
|
|
37
38
|
"nav-click": (page: string) => any;
|
|
38
39
|
"mode-toggle": () => any;
|
|
39
|
-
navigate: (to: string, event?: MouseEvent | undefined) => any;
|
|
40
40
|
}, string, PublicProps, Readonly<Props> & Readonly<{
|
|
41
|
+
onNavigate?: ((to: string, event?: MouseEvent | undefined) => any) | undefined;
|
|
41
42
|
"onNav-click"?: ((page: string) => any) | undefined;
|
|
42
43
|
"onMode-toggle"?: (() => any) | undefined;
|
|
43
|
-
onNavigate?: ((to: string, event?: MouseEvent | undefined) => any) | undefined;
|
|
44
44
|
}>, {
|
|
45
45
|
currentMode: "light" | "dark";
|
|
46
46
|
menuItems: MenuItemOrSection[];
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
export { AppShell, ShellHeader, ShellToneProvider, type AppShellProps, type ShellHeaderProps, type ShellMenuCategory, type ShellMenuEntry, type ShellMenuItem, type ShellMenuSection, type ShellTone, type ShellToneProviderProps } from './AppShell';
|
|
2
|
+
/** @deprecated Gelé (chantier shell-v2) : utiliser AppShell. Bugfix critique uniquement. */
|
|
1
3
|
export { DefaultLayout } from './DefaultLayout';
|
|
4
|
+
/** @deprecated Gelé (chantier shell-v2) : utiliser ShellHeader. */
|
|
2
5
|
export { default as Header } from './DefaultLayout/components/Header';
|
|
6
|
+
/** @deprecated Gelé (chantier shell-v2) : la sidebar vit dans AppShell. */
|
|
3
7
|
export { default as Menu } from './DefaultLayout/components/Menu';
|
|
8
|
+
/** @deprecated Gelé (chantier shell-v2) : le tiroir mobile vit dans AppShell. */
|
|
4
9
|
export { default as MobileMenu } from './DefaultLayout/components/MobileMenu';
|
|
10
|
+
/** @deprecated Gelé (chantier shell-v2). */
|
|
5
11
|
export { default as MobileMenuButton } from './DefaultLayout/components/MobileMenuButton';
|
|
6
12
|
export { default as NavItem } from './DefaultLayout/components/NavItem';
|
|
7
13
|
export { default as NavItemGroup } from './DefaultLayout/components/NavItemGroup';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { SidebarProfileProps, SidebarProfileVariant } from './types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
attrs: Partial<{}>;
|
|
5
|
+
slots: {
|
|
6
|
+
'menu-items'?(_: {}): any;
|
|
7
|
+
};
|
|
8
|
+
refs: {
|
|
9
|
+
rootEl: HTMLDivElement;
|
|
10
|
+
menuEl: HTMLDivElement;
|
|
11
|
+
triggerEl: HTMLButtonElement;
|
|
12
|
+
};
|
|
13
|
+
rootEl: HTMLDivElement;
|
|
14
|
+
};
|
|
15
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
16
|
+
declare const __VLS_component: DefineComponent<SidebarProfileProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
17
|
+
click: () => any;
|
|
18
|
+
logout: () => any;
|
|
19
|
+
}, string, PublicProps, Readonly<SidebarProfileProps> & Readonly<{
|
|
20
|
+
onClick?: (() => any) | undefined;
|
|
21
|
+
onLogout?: (() => any) | undefined;
|
|
22
|
+
}>, {
|
|
23
|
+
variant: SidebarProfileVariant;
|
|
24
|
+
collapsed: boolean;
|
|
25
|
+
showLogout: boolean;
|
|
26
|
+
confirmLogout: boolean;
|
|
27
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
28
|
+
rootEl: HTMLDivElement;
|
|
29
|
+
menuEl: HTMLDivElement;
|
|
30
|
+
triggerEl: HTMLButtonElement;
|
|
31
|
+
}, HTMLDivElement>;
|
|
32
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
33
|
+
export default _default;
|
|
34
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
35
|
+
new (): {
|
|
36
|
+
$slots: S;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type SidebarProfileVariant = 'sidebar' | 'account-block';
|
|
2
|
+
export interface SidebarProfileProps {
|
|
3
|
+
/** Nom complet affiché (ex. « Louis Coffin »). */
|
|
4
|
+
fullName: string;
|
|
5
|
+
/** Initiales de l'avatar — dérivées de `fullName` si absentes. */
|
|
6
|
+
initials?: string;
|
|
7
|
+
/** Nom de l'entreprise / du CSE — la mention est masquée si absente. */
|
|
8
|
+
companyName?: string;
|
|
9
|
+
/** Mode rail (menu rétracté) : avatar seul, libellés masqués. */
|
|
10
|
+
collapsed?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* 'sidebar' (défaut) : bloc de bas de menu latéral desktop.
|
|
13
|
+
* 'account-block' : bloc compte compact (60px) du tiroir mobile.
|
|
14
|
+
*/
|
|
15
|
+
variant?: SidebarProfileVariant;
|
|
16
|
+
/** Affiche l'action « Se déconnecter » dans le menu du bloc (défaut true). */
|
|
17
|
+
showLogout?: boolean;
|
|
18
|
+
/** Demande une confirmation avant d'émettre `logout` (défaut true). */
|
|
19
|
+
confirmLogout?: boolean;
|
|
20
|
+
/** Force la langue des libellés internes (sinon locale Utopia globale). */
|
|
21
|
+
language?: string;
|
|
22
|
+
}
|
|
@@ -5,18 +5,18 @@ type __VLS_PublicProps = {
|
|
|
5
5
|
'show'?: boolean;
|
|
6
6
|
} & __VLS_Props;
|
|
7
7
|
declare const _default: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
8
|
+
logout: () => any;
|
|
8
9
|
"update:activeTab": (key: string) => any;
|
|
9
10
|
"select-feature": (feature: UserCardFeature) => any;
|
|
10
11
|
"select-link": (link: UserCardLink) => any;
|
|
11
12
|
"update:activeLocale": (code: string) => any;
|
|
12
|
-
logout: () => any;
|
|
13
13
|
"update:show": (value: boolean) => any;
|
|
14
14
|
}, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
15
|
+
onLogout?: (() => any) | undefined;
|
|
15
16
|
"onUpdate:activeTab"?: ((key: string) => any) | undefined;
|
|
16
17
|
"onSelect-feature"?: ((feature: UserCardFeature) => any) | undefined;
|
|
17
18
|
"onSelect-link"?: ((link: UserCardLink) => any) | undefined;
|
|
18
19
|
"onUpdate:activeLocale"?: ((code: string) => any) | undefined;
|
|
19
|
-
onLogout?: (() => any) | undefined;
|
|
20
20
|
"onUpdate:show"?: ((value: boolean) => any) | undefined;
|
|
21
21
|
}>, {
|
|
22
22
|
tabs: UserCardTab[];
|
|
@@ -53,6 +53,7 @@ export { LoadingBanner, LoadingBannerService, LoadingBannerServiceKey, useLoadin
|
|
|
53
53
|
export type { LoadingBannerProps, LoadingBannerOptions, LoadingBannerItem, LoadingBannerShowOptions, LoadingBannerProgress, LoadingBannerServiceOptions, LoadingBannerHandle, LoadingBannerPromiseOptions, LoadingBannerServiceApi } from './LoadingBanner';
|
|
54
54
|
export { EmptyState } from './EmptyState';
|
|
55
55
|
export type { EmptyStateProps } from './EmptyState';
|
|
56
|
+
/** @deprecated Gelée (chantier shell-v2) : utiliser EnvironmentSwitcher (hub) + SidebarProfile (profil). Bugfix critique uniquement. */
|
|
56
57
|
export { UserCard } from './UserCard';
|
|
57
58
|
export type { UserCardProps, UserCardTab, UserCardFeature, UserCardLocale, UserCardLink } from './UserCard';
|
|
58
59
|
export { SubventionCard, type SubventionCardProps } from './SubventionCard';
|
|
@@ -67,6 +68,8 @@ export { DateRange, type DateRangeProps, type DateRangeValue, type DateRangeTrig
|
|
|
67
68
|
export { DeliveryMethodCard, type DeliveryMethodCardProps } from './DeliveryMethodCard';
|
|
68
69
|
export { MyUserGroups } from './MyUserGroups';
|
|
69
70
|
export type { MyUserGroupsProps } from './MyUserGroups';
|
|
71
|
+
export { SidebarProfile } from './SidebarProfile';
|
|
72
|
+
export type { SidebarProfileProps, SidebarProfileVariant } from './SidebarProfile/types';
|
|
70
73
|
export { Tree } from './Tree';
|
|
71
74
|
export type { TreeProps } from './Tree';
|
|
72
75
|
export { VerticalStepper } from './VerticalStepper';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EnvironmentSwitcherEnvironment, EnvironmentSwitcherTab } from './types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
title: string;
|
|
5
|
+
tabs: EnvironmentSwitcherTab[];
|
|
6
|
+
browsingTab: string;
|
|
7
|
+
environments: EnvironmentSwitcherEnvironment[];
|
|
8
|
+
activeEnvironmentId?: string;
|
|
9
|
+
emptyLabel: string;
|
|
10
|
+
};
|
|
11
|
+
declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
12
|
+
"select-tab": (key: string) => any;
|
|
13
|
+
"select-environment": (environment: EnvironmentSwitcherEnvironment, event: MouseEvent) => any;
|
|
14
|
+
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
15
|
+
"onSelect-tab"?: ((key: string) => any) | undefined;
|
|
16
|
+
"onSelect-environment"?: ((environment: EnvironmentSwitcherEnvironment, event: MouseEvent) => any) | undefined;
|
|
17
|
+
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
18
|
+
tabRefs: HTMLButtonElement[];
|
|
19
|
+
}, HTMLDivElement>;
|
|
20
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EnvironmentSwitcherEnvironment, EnvironmentSwitcherProps, EnvironmentSwitcherTab } from './types';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
|
|
3
|
+
type __VLS_Props = EnvironmentSwitcherProps;
|
|
4
|
+
type __VLS_PublicProps = {
|
|
5
|
+
'show'?: boolean;
|
|
6
|
+
} & __VLS_Props;
|
|
7
|
+
declare const _default: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
8
|
+
select: (environment: EnvironmentSwitcherEnvironment, event: MouseEvent) => any;
|
|
9
|
+
"update:activeTab": (key: string) => any;
|
|
10
|
+
"update:show": (value: boolean) => any;
|
|
11
|
+
}, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
12
|
+
onSelect?: ((environment: EnvironmentSwitcherEnvironment, event: MouseEvent) => any) | undefined;
|
|
13
|
+
"onUpdate:activeTab"?: ((key: string) => any) | undefined;
|
|
14
|
+
"onUpdate:show"?: ((value: boolean) => any) | undefined;
|
|
15
|
+
}>, {
|
|
16
|
+
tabs: EnvironmentSwitcherTab[];
|
|
17
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
18
|
+
rootEl: HTMLDivElement;
|
|
19
|
+
panelEl: HTMLDivElement;
|
|
20
|
+
}, HTMLDivElement>;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface EnvironmentSwitcherEnvironment {
|
|
2
|
+
/**
|
|
3
|
+
* Identifiant opaque, transmis tel quel dans l'emit `select`.
|
|
4
|
+
* Ne JAMAIS renommer les ids existants côté consommateur : ils alimentent
|
|
5
|
+
* l'analytics (feature_id / item_id PostHog) et les tests.
|
|
6
|
+
*/
|
|
7
|
+
id: string;
|
|
8
|
+
label: string;
|
|
9
|
+
/** Emoji de la tuile — prioritaire sur `icon`. */
|
|
10
|
+
emoji?: string;
|
|
11
|
+
/** Nom d'icône Utopia, utilisé si `emoji` est absent. */
|
|
12
|
+
icon?: string;
|
|
13
|
+
/** Environnement externe (autre plateforme) : décoration ↗ sur la tuile. */
|
|
14
|
+
external?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface EnvironmentSwitcherTab {
|
|
18
|
+
key: string;
|
|
19
|
+
label: string;
|
|
20
|
+
}
|
|
21
|
+
export interface EnvironmentSwitcherProps {
|
|
22
|
+
/**
|
|
23
|
+
* Environnements de l'onglet en cours de consultation. Le consommateur
|
|
24
|
+
* réagit à `update:activeTab` pour fournir la liste correspondante
|
|
25
|
+
* (même contrat que les features de UserCard).
|
|
26
|
+
*/
|
|
27
|
+
environments: EnvironmentSwitcherEnvironment[];
|
|
28
|
+
/** Onglets de rôle (ex. Salarié / Manager). Masqués s'il y en a moins de 2. */
|
|
29
|
+
tabs?: EnvironmentSwitcherTab[];
|
|
30
|
+
activeTab?: string;
|
|
31
|
+
/** Tuile mise en évidence (environnement courant). */
|
|
32
|
+
activeEnvironmentId?: string;
|
|
33
|
+
/** Libellé du trigger pill (environnement courant, ex. « La carte »). */
|
|
34
|
+
currentLabel: string;
|
|
35
|
+
/** Emoji du trigger pill — prioritaire sur `currentIcon`. */
|
|
36
|
+
currentEmoji?: string;
|
|
37
|
+
/** Icône Utopia du trigger pill (défaut 'Layout-grid'). */
|
|
38
|
+
currentIcon?: string;
|
|
39
|
+
/** Titre du panneau (défaut i18n : « Mes environnements »). */
|
|
40
|
+
title?: string;
|
|
41
|
+
/** Force la langue des libellés internes (sinon locale Utopia globale). */
|
|
42
|
+
language?: string;
|
|
43
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { BalanceCard, type BalanceCardProps } from './BalanceCard';
|
|
2
|
+
export { EnvironmentSwitcher, type EnvironmentSwitcherEnvironment, type EnvironmentSwitcherProps, type EnvironmentSwitcherTab } from './EnvironmentSwitcher';
|
|
2
3
|
export { BalanceCardGroup, type BalanceCardData, type BalanceCardGroupProps } from './BalanceCardGroup';
|
|
3
4
|
export { Breadcrumbs } from './Breadcrumbs';
|
|
4
5
|
export { ProductCard } from './ProductCard';
|