@sentropic/design-system-vue 0.36.19 → 0.36.21

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.
@@ -0,0 +1,286 @@
1
+ import { type PropType, type VNode } from "vue";
2
+ export interface AppChromeNavItem {
3
+ label: string;
4
+ href: string;
5
+ /** Marqué actif (souligné, aria-current=page). */
6
+ active?: boolean;
7
+ }
8
+ export interface AppChromeThemeOption {
9
+ id: string;
10
+ label: string;
11
+ }
12
+ export type AppChromeColorMode = "light" | "dark" | "auto";
13
+ export type AppChromeLocale = "fr" | "en";
14
+ export type AppChromeProps = {
15
+ brandName?: string;
16
+ productName?: string;
17
+ logoSrc?: string;
18
+ logoAlt?: string;
19
+ brandHref?: string;
20
+ brandLabel?: string;
21
+ nav?: AppChromeNavItem[];
22
+ navLabel?: string;
23
+ themes?: AppChromeThemeOption[];
24
+ theme?: string;
25
+ onThemeChange?: (id: string) => void;
26
+ themeLabel?: string;
27
+ colorMode?: AppChromeColorMode;
28
+ onColorModeChange?: (mode: AppChromeColorMode) => void;
29
+ colorModeLabels?: {
30
+ light: string;
31
+ dark: string;
32
+ auto: string;
33
+ };
34
+ locale?: AppChromeLocale;
35
+ onLocaleChange?: (locale: AppChromeLocale) => void;
36
+ localeLabel?: string;
37
+ githubHref?: string;
38
+ githubLabel?: string;
39
+ mobileMenuOpen?: boolean;
40
+ onMobileMenuToggle?: () => void;
41
+ menuLabel?: string;
42
+ class?: string;
43
+ };
44
+ export declare const AppChrome: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
45
+ brandName: {
46
+ type: StringConstructor;
47
+ default: string;
48
+ };
49
+ productName: {
50
+ type: StringConstructor;
51
+ default: undefined;
52
+ };
53
+ logoSrc: {
54
+ type: StringConstructor;
55
+ default: undefined;
56
+ };
57
+ logoAlt: {
58
+ type: StringConstructor;
59
+ default: string;
60
+ };
61
+ brandHref: {
62
+ type: StringConstructor;
63
+ default: string;
64
+ };
65
+ brandLabel: {
66
+ type: StringConstructor;
67
+ default: undefined;
68
+ };
69
+ nav: {
70
+ type: PropType<AppChromeNavItem[]>;
71
+ default: () => never[];
72
+ };
73
+ navLabel: {
74
+ type: StringConstructor;
75
+ default: string;
76
+ };
77
+ themes: {
78
+ type: PropType<AppChromeThemeOption[]>;
79
+ default: () => never[];
80
+ };
81
+ theme: {
82
+ type: StringConstructor;
83
+ default: undefined;
84
+ };
85
+ onThemeChange: {
86
+ type: PropType<(id: string) => void>;
87
+ default: undefined;
88
+ };
89
+ themeLabel: {
90
+ type: StringConstructor;
91
+ default: string;
92
+ };
93
+ colorMode: {
94
+ type: PropType<AppChromeColorMode>;
95
+ default: undefined;
96
+ };
97
+ onColorModeChange: {
98
+ type: PropType<(mode: AppChromeColorMode) => void>;
99
+ default: undefined;
100
+ };
101
+ colorModeLabels: {
102
+ type: PropType<{
103
+ light: string;
104
+ dark: string;
105
+ auto: string;
106
+ }>;
107
+ default: () => {
108
+ light: string;
109
+ dark: string;
110
+ auto: string;
111
+ };
112
+ };
113
+ locale: {
114
+ type: PropType<AppChromeLocale>;
115
+ default: undefined;
116
+ };
117
+ onLocaleChange: {
118
+ type: PropType<(locale: AppChromeLocale) => void>;
119
+ default: undefined;
120
+ };
121
+ localeLabel: {
122
+ type: StringConstructor;
123
+ default: string;
124
+ };
125
+ githubHref: {
126
+ type: StringConstructor;
127
+ default: undefined;
128
+ };
129
+ githubLabel: {
130
+ type: StringConstructor;
131
+ default: string;
132
+ };
133
+ mobileMenuOpen: {
134
+ type: BooleanConstructor;
135
+ default: boolean;
136
+ };
137
+ onMobileMenuToggle: {
138
+ type: PropType<() => void>;
139
+ default: undefined;
140
+ };
141
+ menuLabel: {
142
+ type: StringConstructor;
143
+ default: string;
144
+ };
145
+ class: {
146
+ type: StringConstructor;
147
+ default: undefined;
148
+ };
149
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
150
+ [key: string]: any;
151
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
152
+ brandName: {
153
+ type: StringConstructor;
154
+ default: string;
155
+ };
156
+ productName: {
157
+ type: StringConstructor;
158
+ default: undefined;
159
+ };
160
+ logoSrc: {
161
+ type: StringConstructor;
162
+ default: undefined;
163
+ };
164
+ logoAlt: {
165
+ type: StringConstructor;
166
+ default: string;
167
+ };
168
+ brandHref: {
169
+ type: StringConstructor;
170
+ default: string;
171
+ };
172
+ brandLabel: {
173
+ type: StringConstructor;
174
+ default: undefined;
175
+ };
176
+ nav: {
177
+ type: PropType<AppChromeNavItem[]>;
178
+ default: () => never[];
179
+ };
180
+ navLabel: {
181
+ type: StringConstructor;
182
+ default: string;
183
+ };
184
+ themes: {
185
+ type: PropType<AppChromeThemeOption[]>;
186
+ default: () => never[];
187
+ };
188
+ theme: {
189
+ type: StringConstructor;
190
+ default: undefined;
191
+ };
192
+ onThemeChange: {
193
+ type: PropType<(id: string) => void>;
194
+ default: undefined;
195
+ };
196
+ themeLabel: {
197
+ type: StringConstructor;
198
+ default: string;
199
+ };
200
+ colorMode: {
201
+ type: PropType<AppChromeColorMode>;
202
+ default: undefined;
203
+ };
204
+ onColorModeChange: {
205
+ type: PropType<(mode: AppChromeColorMode) => void>;
206
+ default: undefined;
207
+ };
208
+ colorModeLabels: {
209
+ type: PropType<{
210
+ light: string;
211
+ dark: string;
212
+ auto: string;
213
+ }>;
214
+ default: () => {
215
+ light: string;
216
+ dark: string;
217
+ auto: string;
218
+ };
219
+ };
220
+ locale: {
221
+ type: PropType<AppChromeLocale>;
222
+ default: undefined;
223
+ };
224
+ onLocaleChange: {
225
+ type: PropType<(locale: AppChromeLocale) => void>;
226
+ default: undefined;
227
+ };
228
+ localeLabel: {
229
+ type: StringConstructor;
230
+ default: string;
231
+ };
232
+ githubHref: {
233
+ type: StringConstructor;
234
+ default: undefined;
235
+ };
236
+ githubLabel: {
237
+ type: StringConstructor;
238
+ default: string;
239
+ };
240
+ mobileMenuOpen: {
241
+ type: BooleanConstructor;
242
+ default: boolean;
243
+ };
244
+ onMobileMenuToggle: {
245
+ type: PropType<() => void>;
246
+ default: undefined;
247
+ };
248
+ menuLabel: {
249
+ type: StringConstructor;
250
+ default: string;
251
+ };
252
+ class: {
253
+ type: StringConstructor;
254
+ default: undefined;
255
+ };
256
+ }>> & Readonly<{}>, {
257
+ class: string;
258
+ nav: AppChromeNavItem[];
259
+ menuLabel: string;
260
+ brandName: string;
261
+ productName: string;
262
+ logoSrc: string;
263
+ logoAlt: string;
264
+ brandHref: string;
265
+ brandLabel: string;
266
+ navLabel: string;
267
+ themes: AppChromeThemeOption[];
268
+ theme: string;
269
+ onThemeChange: (id: string) => void;
270
+ themeLabel: string;
271
+ colorMode: AppChromeColorMode;
272
+ onColorModeChange: (mode: AppChromeColorMode) => void;
273
+ colorModeLabels: {
274
+ light: string;
275
+ dark: string;
276
+ auto: string;
277
+ };
278
+ locale: AppChromeLocale;
279
+ onLocaleChange: (locale: AppChromeLocale) => void;
280
+ localeLabel: string;
281
+ githubHref: string;
282
+ githubLabel: string;
283
+ mobileMenuOpen: boolean;
284
+ onMobileMenuToggle: () => void;
285
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
286
+ //# sourceMappingURL=AppChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppChrome.d.ts","sourceRoot":"","sources":["../src/AppChrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAIrG,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyFF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;cASI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;;;;;;;;cAEzB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;;;;;;;;cAEtB,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;;;;;cAEpC,QAAQ,CAAC,kBAAkB,CAAC;;;;cAClB,QAAQ,CAAC,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;;;;cAEjE,QAAQ,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;;;;;;;;cAG/C,QAAQ,CAAC,eAAe,CAAC;;;;cACf,QAAQ,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;cAKvC,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAlBtC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;;;;;;;;cAEzB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;;;;;;;;cAEtB,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;;;;;;;;cAEpC,QAAQ,CAAC,kBAAkB,CAAC;;;;cAClB,QAAQ,CAAC,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;;;;cAEjE,QAAQ,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;;;;;;;;cAG/C,QAAQ,CAAC,eAAe,CAAC;;;;cACf,QAAQ,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;cAKvC,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;wBAdX,MAAM,KAAK,IAAI;;;8BAGT,kBAAkB,KAAK,IAAI;;eAE9C,MAAM;cAAQ,MAAM;cAAQ,MAAM;;;6BAIhB,eAAe,KAAK,IAAI;;;;;8BAKvB,IAAI;4EAqW7D,CAAC"}
@@ -0,0 +1,344 @@
1
+ import { defineComponent, h, onBeforeUnmount, onMounted, ref } from "vue";
2
+ import { AppHeader } from "./AppHeader.js";
3
+ import { classNames } from "./classNames.js";
4
+ let appChromeIdCounter = 0;
5
+ // Icônes lucide reproduites en SVG inline (mêmes paths que @lucide/svelte).
6
+ function svgIcon(size, strokeWidth, paths, style) {
7
+ return h("svg", {
8
+ width: size,
9
+ height: size,
10
+ viewBox: "0 0 24 24",
11
+ fill: "none",
12
+ stroke: "currentColor",
13
+ "stroke-width": strokeWidth,
14
+ "stroke-linecap": "round",
15
+ "stroke-linejoin": "round",
16
+ "aria-hidden": "true",
17
+ focusable: "false",
18
+ style,
19
+ }, paths);
20
+ }
21
+ function PaletteIcon() {
22
+ return svgIcon(14, 2, [
23
+ h("path", { d: "M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.6z" }),
24
+ h("circle", { cx: 13.5, cy: 6.5, r: 0.5, fill: "currentColor" }),
25
+ h("circle", { cx: 17.5, cy: 10.5, r: 0.5, fill: "currentColor" }),
26
+ h("circle", { cx: 6.5, cy: 12.5, r: 0.5, fill: "currentColor" }),
27
+ h("circle", { cx: 8.5, cy: 7.5, r: 0.5, fill: "currentColor" }),
28
+ ]);
29
+ }
30
+ function GlobeIcon() {
31
+ return svgIcon(14, 2, [
32
+ h("circle", { cx: 12, cy: 12, r: 10 }),
33
+ h("path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" }),
34
+ h("path", { d: "M2 12h20" }),
35
+ ]);
36
+ }
37
+ function ChevronDownIcon(cls) {
38
+ return h("svg", {
39
+ width: 12,
40
+ height: 12,
41
+ viewBox: "0 0 24 24",
42
+ fill: "none",
43
+ stroke: "currentColor",
44
+ "stroke-width": 2,
45
+ "stroke-linecap": "round",
46
+ "stroke-linejoin": "round",
47
+ "aria-hidden": "true",
48
+ focusable: "false",
49
+ class: cls,
50
+ }, [h("path", { d: "m6 9 6 6 6-6" })]);
51
+ }
52
+ function SunIcon(strokeWidth = 2, style) {
53
+ return svgIcon(16, strokeWidth, [
54
+ h("circle", { cx: 12, cy: 12, r: 4 }),
55
+ h("path", { d: "M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41" }),
56
+ ], style);
57
+ }
58
+ function MoonIcon() {
59
+ return svgIcon(16, 2, [h("path", { d: "M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9" })]);
60
+ }
61
+ function GithubIcon() {
62
+ return svgIcon(16, 2.1, [
63
+ h("path", { d: "M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 4 5 4 5 4c-.3 1.15-.3 2.35 0 3.5a5.4 5.4 0 0 0-1 3.5c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4" }),
64
+ h("path", { d: "M9 18c-4.51 2-5-2-7-2" }),
65
+ ]);
66
+ }
67
+ function BoxesIcon() {
68
+ return svgIcon(20, 2, [
69
+ h("path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }),
70
+ h("path", { d: "m7 16.5-4.74-2.85M7 16.5l5-3M7 16.5v5.17" }),
71
+ h("path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }),
72
+ h("path", { d: "m17 16.5-5-3M17 16.5l4.74-2.85M17 16.5v5.17M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" }),
73
+ h("path", { d: "M12 8 7.26 5.15M12 8l4.74-2.85M12 8v5.5" }),
74
+ ]);
75
+ }
76
+ export const AppChrome = defineComponent({
77
+ name: "AppChrome",
78
+ props: {
79
+ brandName: { type: String, default: "Sentropic" },
80
+ productName: { type: String, default: undefined },
81
+ logoSrc: { type: String, default: undefined },
82
+ logoAlt: { type: String, default: "" },
83
+ brandHref: { type: String, default: "/" },
84
+ brandLabel: { type: String, default: undefined },
85
+ nav: { type: Array, default: () => [] },
86
+ navLabel: { type: String, default: "Primary" },
87
+ themes: { type: Array, default: () => [] },
88
+ theme: { type: String, default: undefined },
89
+ onThemeChange: { type: Function, default: undefined },
90
+ themeLabel: { type: String, default: "Change theme" },
91
+ colorMode: { type: String, default: undefined },
92
+ onColorModeChange: { type: Function, default: undefined },
93
+ colorModeLabels: {
94
+ type: Object,
95
+ default: () => ({ light: "Light mode", dark: "Dark mode", auto: "Auto mode" }),
96
+ },
97
+ locale: { type: String, default: undefined },
98
+ onLocaleChange: { type: Function, default: undefined },
99
+ localeLabel: { type: String, default: "Change language" },
100
+ githubHref: { type: String, default: undefined },
101
+ githubLabel: { type: String, default: "GitHub" },
102
+ mobileMenuOpen: { type: Boolean, default: false },
103
+ onMobileMenuToggle: { type: Function, default: undefined },
104
+ menuLabel: { type: String, default: "Menu" },
105
+ class: { type: String, default: undefined },
106
+ },
107
+ setup(props, { slots }) {
108
+ const drawerId = `st-appChrome-drawer-${++appChromeIdCounter}`;
109
+ const isThemeOpen = ref(false);
110
+ const isLocaleOpen = ref(false);
111
+ function onDocClick(e) {
112
+ const target = e.target;
113
+ if (isThemeOpen.value && target && !target.closest(".st-appChrome__themeWrap"))
114
+ isThemeOpen.value = false;
115
+ if (isLocaleOpen.value && target && !target.closest(".st-appChrome__localeWrap"))
116
+ isLocaleOpen.value = false;
117
+ }
118
+ function onKey(e) {
119
+ if (e.key === "Escape") {
120
+ isThemeOpen.value = false;
121
+ isLocaleOpen.value = false;
122
+ }
123
+ }
124
+ onMounted(() => {
125
+ document.addEventListener("click", onDocClick);
126
+ document.addEventListener("keydown", onKey);
127
+ });
128
+ onBeforeUnmount(() => {
129
+ document.removeEventListener("click", onDocClick);
130
+ document.removeEventListener("keydown", onKey);
131
+ });
132
+ function cycleColorMode() {
133
+ const next = props.colorMode === "light" ? "dark" : props.colorMode === "dark" ? "auto" : "light";
134
+ props.onColorModeChange?.(next);
135
+ }
136
+ return () => {
137
+ const activeTheme = props.themes.find((t) => t.id === props.theme) ?? props.themes[0];
138
+ const showThemeSelector = props.themes.length > 0;
139
+ const showColorMode = props.colorMode !== undefined;
140
+ const showLocaleSelector = props.locale !== undefined;
141
+ const showGithub = Boolean(props.githubHref);
142
+ const identitySlot = slots.identity;
143
+ const colorModeAriaLabel = props.colorMode === "light"
144
+ ? props.colorModeLabels.dark
145
+ : props.colorMode === "dark"
146
+ ? props.colorModeLabels.auto
147
+ : props.colorModeLabels.light;
148
+ const brand = h("a", {
149
+ class: "st-appChrome__brand",
150
+ href: props.brandHref,
151
+ "aria-label": props.brandLabel ?? ([props.brandName, props.productName].filter(Boolean).join(" ") || undefined),
152
+ }, [
153
+ props.logoSrc
154
+ ? h("img", {
155
+ class: "st-appChrome__brandMark",
156
+ src: props.logoSrc,
157
+ alt: props.logoAlt,
158
+ "aria-hidden": props.logoAlt ? undefined : "true",
159
+ })
160
+ : null,
161
+ props.brandName || props.productName
162
+ ? h("span", { class: "st-appChrome__brandCopy" }, [
163
+ props.brandName ? h("span", { class: "st-appChrome__brandName" }, props.brandName) : null,
164
+ props.productName ? h("span", { class: "st-appChrome__brandProduct" }, props.productName) : null,
165
+ ])
166
+ : null,
167
+ ]);
168
+ const navContent = props.nav.map((item) => h("a", {
169
+ key: item.href,
170
+ class: "st-appChrome__navLink st-appHeader__navLink",
171
+ href: item.href,
172
+ "aria-current": item.active ? "page" : undefined,
173
+ }, item.label));
174
+ const utilityNav = h("div", { class: "st-appChrome__utilityNav" }, [
175
+ showThemeSelector
176
+ ? h("div", { class: "st-appChrome__themeWrap st-appChrome__menuWrap" }, [
177
+ h("button", {
178
+ type: "button",
179
+ class: "st-appChrome__control st-appHeader__control",
180
+ onClick: () => (isThemeOpen.value = !isThemeOpen.value),
181
+ "aria-expanded": isThemeOpen.value ? "true" : "false",
182
+ "aria-haspopup": "true",
183
+ "aria-label": props.themeLabel,
184
+ }, [
185
+ PaletteIcon(),
186
+ h("span", activeTheme?.label),
187
+ ChevronDownIcon(classNames("st-appChrome__chevron", isThemeOpen.value ? "is-rotated" : undefined)),
188
+ ]),
189
+ isThemeOpen.value
190
+ ? h("div", { class: "st-appChrome__menu", role: "menu" }, props.themes.map((option) => h("button", {
191
+ key: option.id,
192
+ type: "button",
193
+ class: classNames("st-appChrome__menuItem", props.theme === option.id ? "is-active" : undefined),
194
+ role: "menuitem",
195
+ onClick: () => {
196
+ props.onThemeChange?.(option.id);
197
+ isThemeOpen.value = false;
198
+ },
199
+ }, [
200
+ h("span", { class: "st-appChrome__check", "aria-hidden": "true" }, props.theme === option.id ? "✓" : ""),
201
+ h("span", option.label),
202
+ ])))
203
+ : null,
204
+ ])
205
+ : null,
206
+ showColorMode
207
+ ? h("button", {
208
+ type: "button",
209
+ class: "st-appChrome__control st-appChrome__iconControl st-appHeader__control",
210
+ onClick: cycleColorMode,
211
+ "aria-label": colorModeAriaLabel,
212
+ }, [
213
+ props.colorMode === "dark"
214
+ ? MoonIcon()
215
+ : props.colorMode === "light"
216
+ ? SunIcon()
217
+ : SunIcon(1.5, { opacity: "0.65" }),
218
+ ])
219
+ : null,
220
+ showLocaleSelector
221
+ ? h("div", { class: "st-appChrome__localeWrap st-appChrome__menuWrap" }, [
222
+ h("button", {
223
+ type: "button",
224
+ class: "st-appChrome__control st-appHeader__control",
225
+ onClick: () => (isLocaleOpen.value = !isLocaleOpen.value),
226
+ "aria-expanded": isLocaleOpen.value ? "true" : "false",
227
+ "aria-haspopup": "true",
228
+ "aria-label": props.localeLabel,
229
+ }, [
230
+ GlobeIcon(),
231
+ h("span", props.locale?.toUpperCase()),
232
+ ChevronDownIcon(classNames("st-appChrome__chevron", isLocaleOpen.value ? "is-rotated" : undefined)),
233
+ ]),
234
+ isLocaleOpen.value
235
+ ? h("div", { class: "st-appChrome__menu", role: "menu" }, ["fr", "en"].map((value) => h("button", {
236
+ key: value,
237
+ type: "button",
238
+ class: classNames("st-appChrome__menuItem", props.locale === value ? "is-active" : undefined),
239
+ role: "menuitem",
240
+ onClick: () => {
241
+ props.onLocaleChange?.(value);
242
+ isLocaleOpen.value = false;
243
+ },
244
+ }, [
245
+ h("span", { class: "st-appChrome__check", "aria-hidden": "true" }, props.locale === value ? "✓" : ""),
246
+ h("span", value === "fr" ? "Français" : "English"),
247
+ ])))
248
+ : null,
249
+ ])
250
+ : null,
251
+ showGithub
252
+ ? h("a", {
253
+ class: "st-appChrome__control st-appChrome__iconControl st-appHeader__control",
254
+ href: props.githubHref,
255
+ rel: "noreferrer",
256
+ target: "_blank",
257
+ "aria-label": props.githubLabel,
258
+ }, [GithubIcon()])
259
+ : null,
260
+ identitySlot ? h("div", { class: "st-appChrome__identity" }, identitySlot()) : null,
261
+ ]);
262
+ const actions = [
263
+ utilityNav,
264
+ h("button", {
265
+ type: "button",
266
+ class: "st-appChrome__burgerTrigger",
267
+ onClick: props.onMobileMenuToggle,
268
+ "aria-expanded": props.mobileMenuOpen ? "true" : "false",
269
+ "aria-controls": drawerId,
270
+ "aria-label": props.menuLabel,
271
+ }, [BoxesIcon()]),
272
+ ];
273
+ const header = h(AppHeader, { class: "st-appChrome__header", brandHref: props.brandHref, brandLabel: props.brandLabel }, {
274
+ logo: () => brand,
275
+ nav: () => navContent,
276
+ actions: () => actions,
277
+ });
278
+ const drawer = props.mobileMenuOpen
279
+ ? h("nav", { id: drawerId, class: "st-appChrome__drawer", "aria-label": props.navLabel }, [
280
+ h("div", { class: "st-appChrome__drawerSection" }, props.nav.map((item) => h("a", {
281
+ key: item.href,
282
+ class: "st-appChrome__drawerLink",
283
+ href: item.href,
284
+ "aria-current": item.active ? "page" : undefined,
285
+ onClick: () => props.onMobileMenuToggle?.(),
286
+ }, item.label))),
287
+ showThemeSelector
288
+ ? h("div", { class: "st-appChrome__drawerSection" }, [
289
+ h("span", { class: "st-appChrome__drawerLabel" }, props.themeLabel),
290
+ h("div", { class: "st-appChrome__drawerSwitcher" }, props.themes.map((option) => h("button", {
291
+ key: option.id,
292
+ type: "button",
293
+ class: classNames("st-appChrome__drawerBtn", props.theme === option.id ? "is-active" : undefined),
294
+ onClick: () => {
295
+ props.onThemeChange?.(option.id);
296
+ props.onMobileMenuToggle?.();
297
+ },
298
+ }, option.label))),
299
+ ])
300
+ : null,
301
+ showColorMode
302
+ ? h("div", { class: "st-appChrome__drawerSection" }, [
303
+ h("span", { class: "st-appChrome__drawerLabel" }, `${props.colorModeLabels.light} / ${props.colorModeLabels.dark}`),
304
+ h("div", { class: "st-appChrome__drawerSwitcher" }, ["light", "dark", "auto"].map((mode) => h("button", {
305
+ key: mode,
306
+ type: "button",
307
+ class: classNames("st-appChrome__drawerBtn", props.colorMode === mode ? "is-active" : undefined),
308
+ onClick: () => props.onColorModeChange?.(mode),
309
+ }, mode === "light"
310
+ ? props.colorModeLabels.light
311
+ : mode === "dark"
312
+ ? props.colorModeLabels.dark
313
+ : props.colorModeLabels.auto))),
314
+ ])
315
+ : null,
316
+ showLocaleSelector
317
+ ? h("div", { class: "st-appChrome__drawerSection" }, [
318
+ h("span", { class: "st-appChrome__drawerLabel" }, props.localeLabel),
319
+ h("div", { class: "st-appChrome__drawerSwitcher" }, ["fr", "en"].map((value) => h("button", {
320
+ key: value,
321
+ type: "button",
322
+ class: classNames("st-appChrome__drawerBtn", props.locale === value ? "is-active" : undefined),
323
+ onClick: () => {
324
+ props.onLocaleChange?.(value);
325
+ props.onMobileMenuToggle?.();
326
+ },
327
+ }, value === "fr" ? "Français" : "English"))),
328
+ ])
329
+ : null,
330
+ showGithub || identitySlot
331
+ ? h("div", { class: "st-appChrome__drawerSection" }, [
332
+ showGithub
333
+ ? h("a", { class: "st-appChrome__drawerLink", href: props.githubHref, rel: "noreferrer", target: "_blank" }, props.githubLabel)
334
+ : null,
335
+ identitySlot ? h("div", { class: "st-appChrome__identity" }, identitySlot()) : null,
336
+ ])
337
+ : null,
338
+ ])
339
+ : null;
340
+ return h("div", { class: classNames("st-appChrome", props.class) }, [header, drawer]);
341
+ };
342
+ },
343
+ });
344
+ //# sourceMappingURL=AppChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppChrome.js","sourceRoot":"","sources":["../src/AppChrome.ts"],"names":[],"mappings":"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"}