@shellui/core 0.0.12 → 0.0.14

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 (30) hide show
  1. package/dist/{CookiePreferencesView-CIXBJWNt.js → CookiePreferencesView-Bb3hFqw1.js} +3 -3
  2. package/dist/{CookiePreferencesView-CIXBJWNt.js.map → CookiePreferencesView-Bb3hFqw1.js.map} +1 -1
  3. package/dist/{DefaultLayout-Bztmv2c_.js → DefaultLayout-D3IpgS4j.js} +4 -4
  4. package/dist/{DefaultLayout-Bztmv2c_.js.map → DefaultLayout-D3IpgS4j.js.map} +1 -1
  5. package/dist/{FullscreenLayout-DiX6dbkf.js → FullscreenLayout-Do9vAfl8.js} +3 -3
  6. package/dist/{FullscreenLayout-DiX6dbkf.js.map → FullscreenLayout-Do9vAfl8.js.map} +1 -1
  7. package/dist/{HomeView-C610YU6V.js → HomeView-DwckTuxz.js} +2 -2
  8. package/dist/{HomeView-C610YU6V.js.map → HomeView-DwckTuxz.js.map} +1 -1
  9. package/dist/{NotFoundView-D00gYlq-.js → NotFoundView-DD7azhz-.js} +2 -2
  10. package/dist/{NotFoundView-D00gYlq-.js.map → NotFoundView-DD7azhz-.js.map} +1 -1
  11. package/dist/{OverlayShell-CGjN4rTu.js → OverlayShell-kDY56DaN.js} +2 -2
  12. package/dist/{OverlayShell-CGjN4rTu.js.map → OverlayShell-kDY56DaN.js.map} +1 -1
  13. package/dist/{SettingsView-2QMtfS71.js → SettingsView-Bt4I-KDT.js} +4 -4
  14. package/dist/{SettingsView-2QMtfS71.js.map → SettingsView-Bt4I-KDT.js.map} +1 -1
  15. package/dist/{WindowsLayout-DkSNQDSb.js → WindowsLayout-CEqkRKyk.js} +3 -3
  16. package/dist/{WindowsLayout-DkSNQDSb.js.map → WindowsLayout-CEqkRKyk.js.map} +1 -1
  17. package/dist/components/ui/button.d.ts +1 -1
  18. package/dist/features/config/ConfigProvider.d.ts.map +1 -1
  19. package/dist/features/config/useConfig.d.ts.map +1 -1
  20. package/dist/{index-PsePV0Ng.js → index-CfvdAI_Y.js} +130 -122
  21. package/dist/index-CfvdAI_Y.js.map +1 -0
  22. package/dist/index.js +1 -1
  23. package/dist/{sidebar-Cvm_uv4l.js → sidebar-Dt-gibIZ.js} +2 -2
  24. package/dist/{sidebar-Cvm_uv4l.js.map → sidebar-Dt-gibIZ.js.map} +1 -1
  25. package/dist/{switch-BjkiJBIa.js → switch-CuKXfl3x.js} +2 -2
  26. package/dist/{switch-BjkiJBIa.js.map → switch-CuKXfl3x.js.map} +1 -1
  27. package/package.json +2 -2
  28. package/src/features/config/ConfigProvider.ts +20 -5
  29. package/src/features/config/useConfig.ts +14 -1
  30. package/dist/index-PsePV0Ng.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { jsx as i, jsxs as C, Fragment as _ } from "react/jsx-runtime";
2
- import { createContext as Se, useState as ne, createElement as st, useContext as me, forwardRef as G, lazy as M, Suspense as Y, useRef as ue, useEffect as z, useCallback as T, useMemo as Ae, useLayoutEffect as Ge } from "react";
1
+ import { jsx as i, jsxs as C, Fragment as R } from "react/jsx-runtime";
2
+ import { createContext as Se, useState as ne, createElement as st, useContext as me, forwardRef as G, lazy as M, Suspense as Y, useRef as ue, useEffect as z, useCallback as T, useMemo as Ee, useLayoutEffect as Ge } from "react";
3
3
  import { useRouteError as at, isRouteErrorResponse as lt, Outlet as ct, createBrowserRouter as dt, RouterProvider as ut } from "react-router";
4
- import { getLogger as Ee, shellui as m } from "@shellui/sdk";
4
+ import { getLogger as Ae, shellui as m } from "@shellui/sdk";
5
5
  import { useTranslation as Te, initReactI18next as pt } from "react-i18next";
6
6
  import { Slot as gt } from "@radix-ui/react-slot";
7
7
  import { cva as Ke } from "class-variance-authority";
@@ -9,18 +9,22 @@ import { clsx as ft } from "clsx";
9
9
  import { twMerge as mt } from "tailwind-merge";
10
10
  import we from "./constants/urls.js";
11
11
  import pe from "i18next";
12
- import * as A from "@radix-ui/react-alert-dialog";
12
+ import * as E from "@radix-ui/react-alert-dialog";
13
13
  import { Workbox as ht } from "workbox-window";
14
- const K = Ee("shellcore"), qe = Se(null);
15
- let Ue = !1;
14
+ const K = Ae("shellcore"), qe = Se(null);
15
+ let Be = !1;
16
16
  function vt(e) {
17
17
  const [t] = ne(() => {
18
18
  try {
19
- const o = __SHELLUI_CONFIG__;
19
+ let o = __SHELLUI_CONFIG__;
20
+ if (o === void 0 && typeof window < "u") {
21
+ const s = window;
22
+ s.__SHELLUI_CONFIG__ !== void 0 && (o = s.__SHELLUI_CONFIG__);
23
+ }
20
24
  if (o != null && typeof o == "string")
21
25
  try {
22
26
  const s = JSON.parse(o);
23
- return typeof window < "u" && s.runtime === "tauri" && (window.__SHELLUI_TAURI__ = !0), process.env.NODE_ENV === "development" && !Ue && (Ue = !0, K.info("Config loaded from __SHELLUI_CONFIG__", {
27
+ return typeof window < "u" && s.runtime === "tauri" && (window.__SHELLUI_TAURI__ = !0), process.env.NODE_ENV === "development" && !Be && (Be = !0, K.info("Config loaded from __SHELLUI_CONFIG__", {
24
28
  hasNavigation: !!s.navigation,
25
29
  navigationItems: s.navigation?.length || 0
26
30
  })), s;
@@ -28,12 +32,12 @@ function vt(e) {
28
32
  K.error("Failed to parse config JSON:", { error: s }), K.error("Config value (first 200 chars):", { value: o.substring(0, 200) });
29
33
  }
30
34
  const n = globalThis;
31
- if (typeof n.__SHELLUI_CONFIG__ < "u") {
35
+ if (typeof n.__SHELLUI_CONFIG__ < "u" && o === void 0) {
32
36
  const s = n.__SHELLUI_CONFIG__, l = typeof s == "string" ? JSON.parse(s) : s;
33
37
  return typeof window < "u" && l.runtime === "tauri" && (window.__SHELLUI_TAURI__ = !0), process.env.NODE_ENV === "development" && K.warn("Config loaded from globalThis fallback (define may not have worked)"), l;
34
38
  }
35
- return K.warn(
36
- "Config not found. Using empty config. Make sure shellui.config.ts is properly loaded during build."
39
+ return process.env.NODE_ENV === "development" && K.warn(
40
+ "Config not found. Using empty config. Make sure shellui.config.ts is properly loaded and Vite define is configured correctly."
37
41
  ), {};
38
42
  } catch (o) {
39
43
  return K.error("Failed to load ShellUI config:", { error: o }), {};
@@ -43,8 +47,12 @@ function vt(e) {
43
47
  }
44
48
  function X() {
45
49
  const e = me(qe);
46
- if (e === null)
47
- throw new Error("useConfig must be used within a ConfigProvider");
50
+ if (e === null) {
51
+ const t = new Error(
52
+ "useConfig must be used within a ConfigProvider. Make sure your app is wrapped with <ConfigProvider> and that Vite define is configured correctly."
53
+ );
54
+ throw typeof window < "u" && process.env.NODE_ENV === "development" && (console.error("[ShellUI] ConfigProvider error:", t), console.error("[ShellUI] Check that __SHELLUI_CONFIG__ is defined:", typeof window.__SHELLUI_CONFIG__)), t;
55
+ }
48
56
  return e;
49
57
  }
50
58
  function $(...e) {
@@ -153,12 +161,12 @@ function St() {
153
161
  throw new Error("useSettings must be used within a SettingsProvider");
154
162
  return e;
155
163
  }
156
- const At = M(
157
- () => import("./DefaultLayout-Bztmv2c_.js").then((e) => ({ default: e.DefaultLayout }))
158
- ), Et = M(
159
- () => import("./FullscreenLayout-DiX6dbkf.js").then((e) => ({ default: e.FullscreenLayout }))
164
+ const Et = M(
165
+ () => import("./DefaultLayout-D3IpgS4j.js").then((e) => ({ default: e.DefaultLayout }))
166
+ ), At = M(
167
+ () => import("./FullscreenLayout-Do9vAfl8.js").then((e) => ({ default: e.FullscreenLayout }))
160
168
  ), Tt = M(
161
- () => import("./WindowsLayout-DkSNQDSb.js").then((e) => ({ default: e.WindowsLayout }))
169
+ () => import("./WindowsLayout-CEqkRKyk.js").then((e) => ({ default: e.WindowsLayout }))
162
170
  );
163
171
  function Lt() {
164
172
  return /* @__PURE__ */ i(
@@ -178,15 +186,15 @@ function Nt({
178
186
  }) {
179
187
  const { settings: s } = St(), l = s.layout ?? e;
180
188
  let c, d;
181
- return l === "fullscreen" ? (c = Et, d = { title: t, navigation: n }) : l === "windows" ? (c = Tt, d = { title: t, appIcon: r, logo: o, navigation: n }) : (c = At, d = { title: t, appIcon: r, logo: o, navigation: n }), /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(Lt, {}), children: /* @__PURE__ */ i(c, { ...d }) });
189
+ return l === "fullscreen" ? (c = At, d = { title: t, navigation: n }) : l === "windows" ? (c = Tt, d = { title: t, appIcon: r, logo: o, navigation: n }) : (c = Et, d = { title: t, appIcon: r, logo: o, navigation: n }), /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(Lt, {}), children: /* @__PURE__ */ i(c, { ...d }) });
182
190
  }
183
- function Ao(e, t) {
191
+ function Eo(e, t) {
184
192
  return e == null ? "" : typeof e == "string" ? e : e[t] || e.en || e.fr || Object.values(e)[0] || "";
185
193
  }
186
194
  function Dt(e) {
187
195
  return e.length === 0 ? [] : e.flatMap((t) => "title" in t && "items" in t ? t.items : t);
188
196
  }
189
- function Eo(e, t) {
197
+ function Ao(e, t) {
190
198
  if (e.length === 0) return [];
191
199
  const r = t === "mobile", o = t === "desktop";
192
200
  return e.map((n) => {
@@ -223,17 +231,17 @@ function Lo(e) {
223
231
  return { start: t, end: r };
224
232
  }
225
233
  const It = M(
226
- () => import("./HomeView-C610YU6V.js").then((e) => ({ default: e.HomeView }))
227
- ), Rt = M(
228
- () => import("./SettingsView-2QMtfS71.js").then((e) => ({ default: e.SettingsView }))
234
+ () => import("./HomeView-DwckTuxz.js").then((e) => ({ default: e.HomeView }))
229
235
  ), _t = M(
230
- () => import("./CookiePreferencesView-CIXBJWNt.js").then((e) => ({
236
+ () => import("./SettingsView-Bt4I-KDT.js").then((e) => ({ default: e.SettingsView }))
237
+ ), Rt = M(
238
+ () => import("./CookiePreferencesView-Bb3hFqw1.js").then((e) => ({
231
239
  default: e.CookiePreferencesView
232
240
  }))
233
241
  ), xt = M(
234
242
  () => import("./ViewRoute-ChSPabOy.js").then((e) => ({ default: e.ViewRoute }))
235
- ), Pt = M(
236
- () => import("./NotFoundView-D00gYlq-.js").then((e) => ({ default: e.NotFoundView }))
243
+ ), Ot = M(
244
+ () => import("./NotFoundView-DD7azhz-.js").then((e) => ({ default: e.NotFoundView }))
237
245
  );
238
246
  function ee() {
239
247
  return /* @__PURE__ */ i(
@@ -244,7 +252,7 @@ function ee() {
244
252
  }
245
253
  );
246
254
  }
247
- const Ot = (e) => {
255
+ const Pt = (e) => {
248
256
  const t = [
249
257
  {
250
258
  path: "/",
@@ -254,17 +262,17 @@ const Ot = (e) => {
254
262
  {
255
263
  // Settings route (if configured)
256
264
  path: `${we.settings.replace(/^\//, "")}/*`,
257
- element: /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(ee, {}), children: /* @__PURE__ */ i(Rt, {}) })
265
+ element: /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(ee, {}), children: /* @__PURE__ */ i(_t, {}) })
258
266
  },
259
267
  {
260
268
  // Cookie preferences route
261
269
  path: we.cookiePreferences.replace(/^\//, ""),
262
- element: /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(ee, {}), children: /* @__PURE__ */ i(_t, {}) })
270
+ element: /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(ee, {}), children: /* @__PURE__ */ i(Rt, {}) })
263
271
  },
264
272
  {
265
273
  // Catch-all route
266
274
  path: "*",
267
- element: /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(ee, {}), children: /* @__PURE__ */ i(Pt, {}) })
275
+ element: /* @__PURE__ */ i(Y, { fallback: /* @__PURE__ */ i(ee, {}), children: /* @__PURE__ */ i(Ot, {}) })
268
276
  }
269
277
  ]
270
278
  }
@@ -297,21 +305,21 @@ const Ot = (e) => {
297
305
  }
298
306
  return t[0].children.push(r), t;
299
307
  }, Wt = (e) => {
300
- const t = Ot(e);
308
+ const t = Pt(e);
301
309
  return dt(t);
302
- }, q = Ee("shellcore");
303
- function Bt(e) {
310
+ }, q = Ae("shellcore");
311
+ function Ut(e) {
304
312
  return e.length === 0 ? [] : e.flatMap((t) => "title" in t && "items" in t ? t.items : [t]);
305
313
  }
306
- function Ut(e, t) {
314
+ function Bt(e, t) {
307
315
  return typeof e == "string" ? e : e[t] || e.en || e.fr || Object.values(e)[0] || "";
308
316
  }
309
317
  function ae(e, t, r) {
310
318
  if (!t?.length) return e;
311
- const o = Bt(t).map((n) => ({
319
+ const o = Ut(t).map((n) => ({
312
320
  path: n.path,
313
321
  url: n.url,
314
- label: Ut(n.label, r)
322
+ label: Bt(n.label, r)
315
323
  }));
316
324
  return { ...e, navigation: { items: o } };
317
325
  }
@@ -503,7 +511,7 @@ function Ht({ children: e }) {
503
511
  } catch (p) {
504
512
  q.error("Failed to reset all data:", { error: p });
505
513
  }
506
- }, [t?.navigation, r.language]), v = Ae(
514
+ }, [t?.navigation, r.language]), v = Ee(
507
515
  () => ({
508
516
  settings: n,
509
517
  updateSettings: l,
@@ -991,7 +999,7 @@ function Gt() {
991
999
  }, [r, o, t]);
992
1000
  }
993
1001
  function Kt({ children: e }) {
994
- return Gt(), /* @__PURE__ */ i(_, { children: e });
1002
+ return Gt(), /* @__PURE__ */ i(R, { children: e });
995
1003
  }
996
1004
  const qt = "Settings", Yt = "Welcome to {{title}}", Jt = "Select a navigation item to get started.", Zt = "Navigation error", Qt = "This URL is not configured in the app navigation.", Xt = { titleChunk: "Page couldn't be loaded", titleGeneric: "Something went wrong", descriptionChunk: "This can happen after an update or due to a network issue. Try refreshing the page.", descriptionGeneric: "An unexpected error occurred. You can try again or go back.", tryAgain: "Try again", goToHome: "Go to home", errorDetails: "Error details" }, er = {
997
1005
  settings: qt,
@@ -1020,26 +1028,26 @@ const qt = "Settings", Yt = "Welcome to {{title}}", Jt = "Select a navigation it
1020
1028
  reject: vr,
1021
1029
  setPreferences: yr,
1022
1030
  preferences: wr
1023
- }, kr = "Paramètres", Fr = "Bienvenue sur {{title}}", Cr = "Sélectionnez un élément de navigation pour commencer.", Sr = "Erreur de navigation", Ar = "Cette URL n'est pas configurée dans la navigation de l'application.", Er = { titleChunk: "La page n'a pas pu être chargée", titleGeneric: "Une erreur s'est produite", descriptionChunk: "Cela peut arriver après une mise à jour ou en cas de problème réseau. Essayez d'actualiser la page.", descriptionGeneric: "Une erreur inattendue s'est produite. Vous pouvez réessayer ou revenir à l'accueil.", tryAgain: "Réessayer", goToHome: "Retour à l'accueil", errorDetails: "Détails de l'erreur" }, Tr = {
1031
+ }, kr = "Paramètres", Fr = "Bienvenue sur {{title}}", Cr = "Sélectionnez un élément de navigation pour commencer.", Sr = "Erreur de navigation", Er = "Cette URL n'est pas configurée dans la navigation de l'application.", Ar = { titleChunk: "La page n'a pas pu être chargée", titleGeneric: "Une erreur s'est produite", descriptionChunk: "Cela peut arriver après une mise à jour ou en cas de problème réseau. Essayez d'actualiser la page.", descriptionGeneric: "Une erreur inattendue s'est produite. Vous pouvez réessayer ou revenir à l'accueil.", tryAgain: "Réessayer", goToHome: "Retour à l'accueil", errorDetails: "Détails de l'erreur" }, Tr = {
1024
1032
  settings: kr,
1025
1033
  welcome: Fr,
1026
1034
  getStarted: Cr,
1027
1035
  navigationError: Sr,
1028
- navigationNotAllowed: Ar,
1029
- errorBoundary: Er
1030
- }, Lr = "Paramètres", Nr = { preferences: "Préférences", system: "Système", developer: "Développeur" }, Dr = { appearance: "Apparence", languageAndRegion: "Langue et région", updateApp: "Mise à jour logicielle", advanced: "Avancé", dataPrivacy: "Confidentialité des données", develop: "Développement", serviceWorker: "Service Worker" }, Ir = { description: "Consultez la version de l'application et vérifiez les mises à jour. Lorsqu'une mise à jour est disponible, vous pouvez l'installer depuis ici.", currentVersion: "Version actuelle", status: "État des mises à jour", statusUpToDate: "À jour", statusUpdateAvailable: "Mise à jour disponible", checkForUpdate: "Vérifier les mises à jour", checking: "Vérification…", versionUnknown: "—", tauriComingSoon: "Les mises à jour de l'application bureau seront bientôt disponibles. Vous serez notifié lorsqu'une nouvelle version sera prête.", swDisabledMessage: "L'application se mettra à jour lors du rechargement de la page.", refreshApp: "Actualiser l'application", youAreUpToDate: "Vous êtes à jour", installNow: "Installer maintenant", checkError: "Erreur lors de la vérification des mises à jour. Réessayer", tryAgain: "Réessayer" }, Rr = { title: "Apparence", theme: "Thème", themeDescription: "Choisissez votre schéma de couleurs préféré (actuel : {{theme}})", mode: "Mode", modeDescription: "Choisissez le mode clair, sombre ou automatique.", colorTheme: "Thème de couleur", colorThemeDescription: "Sélectionnez un thème de couleur. Chaque thème a des variantes claires et sombres.", themes: { light: "Clair", dark: "Sombre", system: "Automatique" } }, _r = { title: "Langue et région", description: "Configurez vos paramètres de langue et de région.", language: "Langue", languageDescription: "Choisissez votre langue préférée. Les modifications seront appliquées immédiatement.", region: "Région", regionDescription: "Sélectionnez votre fuseau horaire. Les dates dans toute l'application s'adapteront à ce fuseau horaire.", currentDateTime: "Date et heure actuelles", timezoneLabel: "Fuseau horaire", resetToBrowser: "Réinitialiser au fuseau horaire automatique", defaultBrowser: "Automatique" }, xr = { title: "Avancé", description: "Paramètres avancés et options de configuration.", errorReporting: { label: "Signalement d'erreurs", statusConfigured: "Configuré. Vous pouvez le désactiver ci-dessous.", statusNotConfigured: "Non configuré.", description: "Autoriser cette application à envoyer des rapports d'erreurs pour aider à corriger les problèmes." }, developerFeatures: { label: "Afficher les fonctionnalités pour les développeurs", description: "Activez les outils et paramètres de développement dans le menu des paramètres." }, dangerZone: { title: "Zone de danger", description: "Actions irréversibles et destructives.", reset: { title: "Réinitialiser toutes les données", warning: "Cela supprimera définitivement tous vos paramètres, préférences et autres données d'application. Cette action ne peut pas être annulée.", button: "Réinitialiser toutes les données", toast: { title: "Réinitialiser toutes les données ?", description: "Cela supprimera définitivement tous vos paramètres, préférences et autres données d'application. Cette action ne peut pas être annulée.", confirm: "Réinitialiser toutes les données", cancel: "Annuler", success: { title: "Données réinitialisées", description: "Toutes les données de l'application ont été réinitialisées avec succès." } } } } }, Pr = { title: "Confidentialité des données", description: "Gérez vos paramètres de confidentialité des données et vos préférences de cookies.", noCookiesConfigured: { title: "Utilisation des cookies", description: "Cette application n'utilise que des cookies strictement essentiels nécessaires au bon fonctionnement de l'application. Ces cookies sont acceptés par défaut et ne peuvent pas être désactivés.", info: "Aucun cookie optionnel n'est configuré pour cette application." }, cookieConsent: { title: "Consentement aux cookies", descriptionConsented: "Vous avez fait un choix concernant les cookies. Réinitialisez pour être redemandé immédiatement.", descriptionNotConsented: "Vous n'avez pas encore fait de choix concernant les cookies.", statusAcceptedAll: "Vous avez accepté tous les cookies. Cela nous aide à vous offrir la meilleure expérience.", statusRejectedAll: "Vous avez refusé les cookies non essentiels. Seuls les cookies strictement nécessaires sont actifs.", statusCustom: "Vous avez personnalisé vos préférences de cookies. Certains cookies sont activés selon vos choix.", labelAcceptedAll: "Tous acceptés", labelCustom: "Personnalisé", labelRejectedAll: "Tous refusés", button: "Réinitialiser le consentement", manageButton: "Gérer les préférences", dialog: { title: "Réinitialiser le consentement aux cookies ?", description: "Cela effacera vos préférences de cookies. Vous serez invité à accepter ou refuser les cookies lors de votre prochaine visite.", confirm: "Réinitialiser", cancel: "Annuler" }, toast: { title: "Consentement réinitialisé", description: "Vous serez invité à choisir vos préférences de cookies lors de votre prochaine visite." } }, resetData: { title: "Réinitialiser toutes les données", description: "Cela supprimera définitivement tous vos paramètres et données d'application. Cette action ne peut pas être annulée.", button: "Réinitialiser toutes les données", toast: { title: "Réinitialiser toutes les données ?", description: "Cela supprimera définitivement tous vos paramètres, préférences et autres données d'application. Cette action ne peut pas être annulée.", confirm: "Réinitialiser toutes les données", cancel: "Annuler", success: { title: "Données réinitialisées", description: "Toutes les données de l'application ont été réinitialisées avec succès." } } } }, Or = { title: "Service Worker", description: "Un service worker s'exécute en arrière-plan et peut mettre en cache l'application pour un chargement plus rapide et une utilisation hors ligne. Lorsqu'il est activé, il stocke les fichiers localement pour que l'application se charge rapidement et fonctionne sans connexion. Vous pouvez l'activer ou le désactiver ci-dessous.", loading: "Chargement du statut du service worker...", developmentMode: { title: "Mode développement", description: "La mise en cache de l'application n'est disponible que dans les builds de production. Compilez votre application avec 'shellui build' pour activer la mise en cache du service worker." }, enabled: { title: "Activer le service worker", descriptionEnabled: "Le service worker est activé. Il met en cache l'application pour un chargement plus rapide et un accès hors ligne.", descriptionDisabled: "Le service worker est désactivé. L'application ne sera pas mise en cache et se chargera toujours depuis le réseau." }, status: { title: "Statut du service worker", registered: "Enregistré", notRunning: "Non actif", disabled: "Désactivé", updateAvailable: "Mise à jour disponible", fileNotFound: "Fichier du service worker introuvable", fileNotFoundDescription: "Le fichier du service worker est introuvable. La mise en cache n'est pas disponible. Il peut s'agir d'un problème de serveur de développement." }, update: { title: "Mise à jour disponible", description: "Une nouvelle version de l'application est disponible. Installez-la maintenant pour obtenir les dernières fonctionnalités et améliorations.", button: "Installer maintenant" }, updateInstalling: { title: "Installation de la mise à jour", description: "La nouvelle version est en cours d'installation. La page sera rechargée sous peu." }, updateError: { title: "Échec de la mise à jour", description: "Échec de l'installation de la mise à jour. Veuillez réessayer plus tard." }, reset: { title: "Réinitialiser à la dernière version", description: "Effacer tous les fichiers mis en cache et recharger l'application pour obtenir la dernière version du serveur.", button: "Réinitialiser à la dernière version" }, resetSuccess: { title: "Réinitialisation réussie", description: "Tous les fichiers mis en cache ont été effacés. L'application sera rechargée avec la dernière version." }, resetError: { title: "Échec de la réinitialisation", description: "Échec de l'effacement des fichiers mis en cache. Veuillez réessayer plus tard." } }, Wr = { title: "Développement", navigation: { title: "Naviguer vers", description: "Envoyer une demande de navigation à l'application racine. Cela ferme tout tiroir ou modal ouvert et navigue vers l'élément sélectionné.", selectLabel: "Élément de navigation", placeholder: "Choisir une destination…", empty: "Aucun élément de navigation disponible (ouvrez depuis la racine pour voir les éléments)." }, layout: { title: "Disposition", description: "Basculer entre la disposition avec barre latérale et la disposition fenêtres (barre des tâches). Remplace la config de l'app pour cette session.", sidebar: "Barre latérale", windows: "Fenêtres" }, logging: { title: "Journalisation", description: "Activez ou désactivez la journalisation pour des espaces de noms spécifiques. Cela vous aide à contrôler quelles parties de ShellUI affichent des informations de débogage.", shellsdk: { label: "Afficher les journaux ShellSDK", description: "Activez la journalisation pour les opérations ShellUI SDK" }, shellcore: { label: "Afficher les journaux ShellCore", description: "Activez la journalisation pour les opérations ShellUI Core" } }, testing: { title: "Tests", description: "Testez les fonctionnalités de ShellUI.", toastNotifications: { title: "Notifications Toast", buttons: { success: "Toast de succès", error: "Toast d'erreur", warning: "Toast d'avertissement", info: "Toast d'information", default: "Toast par défaut", loading: "Toast de chargement", loadingSuccess: "Toast de chargement → Succès", withAction: "Toast avec action", withActionAndCancel: "Toast avec action ET annulation", longDuration: "Toast longue durée" }, messages: { success: { title: "Succès !", description: "Opération terminée avec succès" }, error: { title: "Erreur", description: "Quelque chose s'est mal passé. Veuillez réessayer." }, warning: { title: "Avertissement", description: "Cette action peut avoir des conséquences imprévues" }, info: { title: "Information", description: "Voici des informations utiles pour vous" }, default: { title: "Toast par défaut", description: "Ceci est une notification toast par défaut" }, loading: { title: "Chargement...", description: "Veuillez patienter pendant le traitement de votre demande" }, processing: { title: "Traitement...", description: "Téléchargement de votre fichier" }, uploadComplete: { title: "Téléchargement terminé !", description: "Votre fichier a été téléchargé avec succès" }, withAction: { title: "Toast avec action", description: "Ce toast a un bouton d'action" }, undone: { title: "Annulé", description: "L'action a été annulée" }, cancelled: { title: "Annulé", description: "L'action a été annulée" }, persistent: { title: "Toast persistant", description: "Ce toast restera jusqu'à sa fermeture (10 secondes)" }, actionLabels: { undo: "Annuler", cancel: "Annuler" } } }, dialogTesting: { title: "Tests de dialogue", buttons: { okDialog: "Dialogue OK", okCancelDialog: "Dialogue OK Annuler", deleteDialog: "Dialogue de suppression", confirmDialog: "Dialogue de confirmation", onlyCancelDialog: "Dialogue Annuler uniquement" }, dialogs: { ok: { title: "Dialogue OK simple", description: "Ceci est un dialogue simple avec uniquement un bouton OK." }, okCancel: { title: "Dialogue OK Annuler", description: "Ce dialogue a à la fois des boutons OK et Annuler." }, delete: { title: "Confirmation de suppression", description: "Êtes-vous sûr de vouloir supprimer cet élément ? Cette action ne peut pas être annulée.", okLabel: "Supprimer", cancelLabel: "Annuler" }, confirm: { title: "Confirmer l'action", description: "Voulez-vous procéder à cette action ?", okLabel: "Confirmer", cancelLabel: "Annuler" }, onlyCancel: { title: "Dialogue Annuler uniquement", description: "Ce dialogue n'a qu'un bouton Annuler.", cancelLabel: "Fermer" } }, toasts: { okClicked: "OK cliqué", cancelClicked: "Annuler cliqué", itemDeleted: "Élément supprimé", deletionCancelled: "Suppression annulée", actionConfirmed: "Action confirmée", actionCancelled: "Action annulée", dialogClosed: "Dialogue fermé" } }, modalTesting: { title: "Tests du modal", description: "Ouvre les paramètres dans un modal. Fermez avec le bouton × ou en cliquant à l'extérieur.", buttons: { openModal: "Ouvrir le modal (paramètres)" } }, drawerTesting: { title: "Tests du tiroir", buttons: { drawerRight: "Tiroir depuis la droite", drawerLeft: "Tiroir depuis la gauche", drawerTop: "Tiroir depuis le haut", drawerBottom: "Tiroir depuis le bas", drawerRightNarrow: "Tiroir droite (400px)", drawerBottomHalf: "Tiroir bas (60vh)", closeDrawer: "Fermer le tiroir" } } } }, Br = {
1036
+ navigationNotAllowed: Er,
1037
+ errorBoundary: Ar
1038
+ }, Lr = "Paramètres", Nr = { preferences: "Préférences", system: "Système", developer: "Développeur" }, Dr = { appearance: "Apparence", languageAndRegion: "Langue et région", updateApp: "Mise à jour logicielle", advanced: "Avancé", dataPrivacy: "Confidentialité des données", develop: "Développement", serviceWorker: "Service Worker" }, Ir = { description: "Consultez la version de l'application et vérifiez les mises à jour. Lorsqu'une mise à jour est disponible, vous pouvez l'installer depuis ici.", currentVersion: "Version actuelle", status: "État des mises à jour", statusUpToDate: "À jour", statusUpdateAvailable: "Mise à jour disponible", checkForUpdate: "Vérifier les mises à jour", checking: "Vérification…", versionUnknown: "—", tauriComingSoon: "Les mises à jour de l'application bureau seront bientôt disponibles. Vous serez notifié lorsqu'une nouvelle version sera prête.", swDisabledMessage: "L'application se mettra à jour lors du rechargement de la page.", refreshApp: "Actualiser l'application", youAreUpToDate: "Vous êtes à jour", installNow: "Installer maintenant", checkError: "Erreur lors de la vérification des mises à jour. Réessayer", tryAgain: "Réessayer" }, _r = { title: "Apparence", theme: "Thème", themeDescription: "Choisissez votre schéma de couleurs préféré (actuel : {{theme}})", mode: "Mode", modeDescription: "Choisissez le mode clair, sombre ou automatique.", colorTheme: "Thème de couleur", colorThemeDescription: "Sélectionnez un thème de couleur. Chaque thème a des variantes claires et sombres.", themes: { light: "Clair", dark: "Sombre", system: "Automatique" } }, Rr = { title: "Langue et région", description: "Configurez vos paramètres de langue et de région.", language: "Langue", languageDescription: "Choisissez votre langue préférée. Les modifications seront appliquées immédiatement.", region: "Région", regionDescription: "Sélectionnez votre fuseau horaire. Les dates dans toute l'application s'adapteront à ce fuseau horaire.", currentDateTime: "Date et heure actuelles", timezoneLabel: "Fuseau horaire", resetToBrowser: "Réinitialiser au fuseau horaire automatique", defaultBrowser: "Automatique" }, xr = { title: "Avancé", description: "Paramètres avancés et options de configuration.", errorReporting: { label: "Signalement d'erreurs", statusConfigured: "Configuré. Vous pouvez le désactiver ci-dessous.", statusNotConfigured: "Non configuré.", description: "Autoriser cette application à envoyer des rapports d'erreurs pour aider à corriger les problèmes." }, developerFeatures: { label: "Afficher les fonctionnalités pour les développeurs", description: "Activez les outils et paramètres de développement dans le menu des paramètres." }, dangerZone: { title: "Zone de danger", description: "Actions irréversibles et destructives.", reset: { title: "Réinitialiser toutes les données", warning: "Cela supprimera définitivement tous vos paramètres, préférences et autres données d'application. Cette action ne peut pas être annulée.", button: "Réinitialiser toutes les données", toast: { title: "Réinitialiser toutes les données ?", description: "Cela supprimera définitivement tous vos paramètres, préférences et autres données d'application. Cette action ne peut pas être annulée.", confirm: "Réinitialiser toutes les données", cancel: "Annuler", success: { title: "Données réinitialisées", description: "Toutes les données de l'application ont été réinitialisées avec succès." } } } } }, Or = { title: "Confidentialité des données", description: "Gérez vos paramètres de confidentialité des données et vos préférences de cookies.", noCookiesConfigured: { title: "Utilisation des cookies", description: "Cette application n'utilise que des cookies strictement essentiels nécessaires au bon fonctionnement de l'application. Ces cookies sont acceptés par défaut et ne peuvent pas être désactivés.", info: "Aucun cookie optionnel n'est configuré pour cette application." }, cookieConsent: { title: "Consentement aux cookies", descriptionConsented: "Vous avez fait un choix concernant les cookies. Réinitialisez pour être redemandé immédiatement.", descriptionNotConsented: "Vous n'avez pas encore fait de choix concernant les cookies.", statusAcceptedAll: "Vous avez accepté tous les cookies. Cela nous aide à vous offrir la meilleure expérience.", statusRejectedAll: "Vous avez refusé les cookies non essentiels. Seuls les cookies strictement nécessaires sont actifs.", statusCustom: "Vous avez personnalisé vos préférences de cookies. Certains cookies sont activés selon vos choix.", labelAcceptedAll: "Tous acceptés", labelCustom: "Personnalisé", labelRejectedAll: "Tous refusés", button: "Réinitialiser le consentement", manageButton: "Gérer les préférences", dialog: { title: "Réinitialiser le consentement aux cookies ?", description: "Cela effacera vos préférences de cookies. Vous serez invité à accepter ou refuser les cookies lors de votre prochaine visite.", confirm: "Réinitialiser", cancel: "Annuler" }, toast: { title: "Consentement réinitialisé", description: "Vous serez invité à choisir vos préférences de cookies lors de votre prochaine visite." } }, resetData: { title: "Réinitialiser toutes les données", description: "Cela supprimera définitivement tous vos paramètres et données d'application. Cette action ne peut pas être annulée.", button: "Réinitialiser toutes les données", toast: { title: "Réinitialiser toutes les données ?", description: "Cela supprimera définitivement tous vos paramètres, préférences et autres données d'application. Cette action ne peut pas être annulée.", confirm: "Réinitialiser toutes les données", cancel: "Annuler", success: { title: "Données réinitialisées", description: "Toutes les données de l'application ont été réinitialisées avec succès." } } } }, Pr = { title: "Service Worker", description: "Un service worker s'exécute en arrière-plan et peut mettre en cache l'application pour un chargement plus rapide et une utilisation hors ligne. Lorsqu'il est activé, il stocke les fichiers localement pour que l'application se charge rapidement et fonctionne sans connexion. Vous pouvez l'activer ou le désactiver ci-dessous.", loading: "Chargement du statut du service worker...", developmentMode: { title: "Mode développement", description: "La mise en cache de l'application n'est disponible que dans les builds de production. Compilez votre application avec 'shellui build' pour activer la mise en cache du service worker." }, enabled: { title: "Activer le service worker", descriptionEnabled: "Le service worker est activé. Il met en cache l'application pour un chargement plus rapide et un accès hors ligne.", descriptionDisabled: "Le service worker est désactivé. L'application ne sera pas mise en cache et se chargera toujours depuis le réseau." }, status: { title: "Statut du service worker", registered: "Enregistré", notRunning: "Non actif", disabled: "Désactivé", updateAvailable: "Mise à jour disponible", fileNotFound: "Fichier du service worker introuvable", fileNotFoundDescription: "Le fichier du service worker est introuvable. La mise en cache n'est pas disponible. Il peut s'agir d'un problème de serveur de développement." }, update: { title: "Mise à jour disponible", description: "Une nouvelle version de l'application est disponible. Installez-la maintenant pour obtenir les dernières fonctionnalités et améliorations.", button: "Installer maintenant" }, updateInstalling: { title: "Installation de la mise à jour", description: "La nouvelle version est en cours d'installation. La page sera rechargée sous peu." }, updateError: { title: "Échec de la mise à jour", description: "Échec de l'installation de la mise à jour. Veuillez réessayer plus tard." }, reset: { title: "Réinitialiser à la dernière version", description: "Effacer tous les fichiers mis en cache et recharger l'application pour obtenir la dernière version du serveur.", button: "Réinitialiser à la dernière version" }, resetSuccess: { title: "Réinitialisation réussie", description: "Tous les fichiers mis en cache ont été effacés. L'application sera rechargée avec la dernière version." }, resetError: { title: "Échec de la réinitialisation", description: "Échec de l'effacement des fichiers mis en cache. Veuillez réessayer plus tard." } }, Wr = { title: "Développement", navigation: { title: "Naviguer vers", description: "Envoyer une demande de navigation à l'application racine. Cela ferme tout tiroir ou modal ouvert et navigue vers l'élément sélectionné.", selectLabel: "Élément de navigation", placeholder: "Choisir une destination…", empty: "Aucun élément de navigation disponible (ouvrez depuis la racine pour voir les éléments)." }, layout: { title: "Disposition", description: "Basculer entre la disposition avec barre latérale et la disposition fenêtres (barre des tâches). Remplace la config de l'app pour cette session.", sidebar: "Barre latérale", windows: "Fenêtres" }, logging: { title: "Journalisation", description: "Activez ou désactivez la journalisation pour des espaces de noms spécifiques. Cela vous aide à contrôler quelles parties de ShellUI affichent des informations de débogage.", shellsdk: { label: "Afficher les journaux ShellSDK", description: "Activez la journalisation pour les opérations ShellUI SDK" }, shellcore: { label: "Afficher les journaux ShellCore", description: "Activez la journalisation pour les opérations ShellUI Core" } }, testing: { title: "Tests", description: "Testez les fonctionnalités de ShellUI.", toastNotifications: { title: "Notifications Toast", buttons: { success: "Toast de succès", error: "Toast d'erreur", warning: "Toast d'avertissement", info: "Toast d'information", default: "Toast par défaut", loading: "Toast de chargement", loadingSuccess: "Toast de chargement → Succès", withAction: "Toast avec action", withActionAndCancel: "Toast avec action ET annulation", longDuration: "Toast longue durée" }, messages: { success: { title: "Succès !", description: "Opération terminée avec succès" }, error: { title: "Erreur", description: "Quelque chose s'est mal passé. Veuillez réessayer." }, warning: { title: "Avertissement", description: "Cette action peut avoir des conséquences imprévues" }, info: { title: "Information", description: "Voici des informations utiles pour vous" }, default: { title: "Toast par défaut", description: "Ceci est une notification toast par défaut" }, loading: { title: "Chargement...", description: "Veuillez patienter pendant le traitement de votre demande" }, processing: { title: "Traitement...", description: "Téléchargement de votre fichier" }, uploadComplete: { title: "Téléchargement terminé !", description: "Votre fichier a été téléchargé avec succès" }, withAction: { title: "Toast avec action", description: "Ce toast a un bouton d'action" }, undone: { title: "Annulé", description: "L'action a été annulée" }, cancelled: { title: "Annulé", description: "L'action a été annulée" }, persistent: { title: "Toast persistant", description: "Ce toast restera jusqu'à sa fermeture (10 secondes)" }, actionLabels: { undo: "Annuler", cancel: "Annuler" } } }, dialogTesting: { title: "Tests de dialogue", buttons: { okDialog: "Dialogue OK", okCancelDialog: "Dialogue OK Annuler", deleteDialog: "Dialogue de suppression", confirmDialog: "Dialogue de confirmation", onlyCancelDialog: "Dialogue Annuler uniquement" }, dialogs: { ok: { title: "Dialogue OK simple", description: "Ceci est un dialogue simple avec uniquement un bouton OK." }, okCancel: { title: "Dialogue OK Annuler", description: "Ce dialogue a à la fois des boutons OK et Annuler." }, delete: { title: "Confirmation de suppression", description: "Êtes-vous sûr de vouloir supprimer cet élément ? Cette action ne peut pas être annulée.", okLabel: "Supprimer", cancelLabel: "Annuler" }, confirm: { title: "Confirmer l'action", description: "Voulez-vous procéder à cette action ?", okLabel: "Confirmer", cancelLabel: "Annuler" }, onlyCancel: { title: "Dialogue Annuler uniquement", description: "Ce dialogue n'a qu'un bouton Annuler.", cancelLabel: "Fermer" } }, toasts: { okClicked: "OK cliqué", cancelClicked: "Annuler cliqué", itemDeleted: "Élément supprimé", deletionCancelled: "Suppression annulée", actionConfirmed: "Action confirmée", actionCancelled: "Action annulée", dialogClosed: "Dialogue fermé" } }, modalTesting: { title: "Tests du modal", description: "Ouvre les paramètres dans un modal. Fermez avec le bouton × ou en cliquant à l'extérieur.", buttons: { openModal: "Ouvrir le modal (paramètres)" } }, drawerTesting: { title: "Tests du tiroir", buttons: { drawerRight: "Tiroir depuis la droite", drawerLeft: "Tiroir depuis la gauche", drawerTop: "Tiroir depuis le haut", drawerBottom: "Tiroir depuis le bas", drawerRightNarrow: "Tiroir droite (400px)", drawerBottomHalf: "Tiroir bas (60vh)", closeDrawer: "Fermer le tiroir" } } } }, Ur = {
1031
1039
  title: Lr,
1032
1040
  categories: Nr,
1033
1041
  routes: Dr,
1034
1042
  updateApp: Ir,
1035
- appearance: Rr,
1036
- languageAndRegion: _r,
1043
+ appearance: _r,
1044
+ languageAndRegion: Rr,
1037
1045
  advanced: xr,
1038
- dataPrivacy: Pr,
1039
- caching: Or,
1046
+ dataPrivacy: Or,
1047
+ caching: Pr,
1040
1048
  develop: Wr
1041
- }, Ur = "Votre vie privée compte", Hr = "Nous utilisons des cookies pour améliorer votre expérience, analyser l'utilisation de l'application et corriger les problèmes. Vous pouvez tout accepter, tout refuser ou personnaliser vos préférences.", zr = "Nos cookies ont évolué", Mr = "Nous avons mis à jour notre politique de cookies avec de nouvelles fonctionnalités ou services. Veuillez confirmer vos préférences pour continuer avec la meilleure expérience.", $r = "Tout accepter", jr = "Tout refuser", Vr = "Personnaliser", Gr = { title: "Préférences des cookies", description: "Gérez vos préférences de cookies. Activez ou désactivez les cookies par catégorie ou individuellement.", acceptAll: "Tout accepter", rejectAll: "Tout refuser", save: "Enregistrer les préférences", partial: "Partiel", required: "Requis", alwaysOn: "Toujours actif", noCookies: "Aucun cookie configuré.", categories: { strict_necessary: { title: "Strictement nécessaires", description: "Essentiels au fonctionnement du site. Ne peuvent pas être désactivés." }, functional_performance: { title: "Fonctionnels et performance", description: "Nous aident à améliorer le site en collectant des données d'utilisation anonymes et des rapports d'erreurs." }, targeting: { title: "Ciblage et publicité", description: "Utilisés pour diffuser des publicités personnalisées." }, social_media_embedded: { title: "Réseaux sociaux et contenu intégré", description: "Activent les fonctionnalités de réseaux sociaux et le contenu intégré de tiers." } }, duration: { seconds: "{{count}} seconde", seconds_other: "{{count}} secondes", minutes: "{{count}} minute", minutes_other: "{{count}} minutes", hours: "{{count}} heure", hours_other: "{{count}} heures", days: "{{count}} jour", days_other: "{{count}} jours", years: "{{count}} an", years_other: "{{count}} ans" } }, Kr = {
1042
- title: Ur,
1049
+ }, Br = "Votre vie privée compte", Hr = "Nous utilisons des cookies pour améliorer votre expérience, analyser l'utilisation de l'application et corriger les problèmes. Vous pouvez tout accepter, tout refuser ou personnaliser vos préférences.", zr = "Nos cookies ont évolué", Mr = "Nous avons mis à jour notre politique de cookies avec de nouvelles fonctionnalités ou services. Veuillez confirmer vos préférences pour continuer avec la meilleure expérience.", $r = "Tout accepter", jr = "Tout refuser", Vr = "Personnaliser", Gr = { title: "Préférences des cookies", description: "Gérez vos préférences de cookies. Activez ou désactivez les cookies par catégorie ou individuellement.", acceptAll: "Tout accepter", rejectAll: "Tout refuser", save: "Enregistrer les préférences", partial: "Partiel", required: "Requis", alwaysOn: "Toujours actif", noCookies: "Aucun cookie configuré.", categories: { strict_necessary: { title: "Strictement nécessaires", description: "Essentiels au fonctionnement du site. Ne peuvent pas être désactivés." }, functional_performance: { title: "Fonctionnels et performance", description: "Nous aident à améliorer le site en collectant des données d'utilisation anonymes et des rapports d'erreurs." }, targeting: { title: "Ciblage et publicité", description: "Utilisés pour diffuser des publicités personnalisées." }, social_media_embedded: { title: "Réseaux sociaux et contenu intégré", description: "Activent les fonctionnalités de réseaux sociaux et le contenu intégré de tiers." } }, duration: { seconds: "{{count}} seconde", seconds_other: "{{count}} secondes", minutes: "{{count}} minute", minutes_other: "{{count}} minutes", hours: "{{count}} heure", hours_other: "{{count}} heures", days: "{{count}} jour", days_other: "{{count}} jours", years: "{{count}} an", years_other: "{{count}} ans" } }, Kr = {
1050
+ title: Br,
1043
1051
  description: Hr,
1044
1052
  titleRenewal: zr,
1045
1053
  descriptionRenewal: Mr,
@@ -1058,7 +1066,7 @@ const qt = "Settings", Yt = "Welcome to {{title}}", Jt = "Select a navigation it
1058
1066
  },
1059
1067
  fr: {
1060
1068
  common: Tr,
1061
- settings: Br,
1069
+ settings: Ur,
1062
1070
  cookieConsent: Kr
1063
1071
  }
1064
1072
  }, Yr = (e) => {
@@ -1106,7 +1114,7 @@ function Jr({ children: e }) {
1106
1114
  r?.language && Je(r.language);
1107
1115
  }, [r?.language]), z(() => {
1108
1116
  pe.language !== o && pe.changeLanguage(o);
1109
- }, [o]), /* @__PURE__ */ i(_, { children: e });
1117
+ }, [o]), /* @__PURE__ */ i(R, { children: e });
1110
1118
  }
1111
1119
  const fe = {
1112
1120
  /** Sidebar trigger (above main content, below modals) */
@@ -1129,8 +1137,8 @@ const fe = {
1129
1137
  WINDOWS_TASKBAR: 9e3,
1130
1138
  /** Base z-index for windows; each window gets base + order */
1131
1139
  WINDOWS_WINDOW_BASE: 9001
1132
- }, Me = A.Root, Ze = A.Portal, De = G(({ className: e, ...t }, r) => /* @__PURE__ */ i(
1133
- A.Overlay,
1140
+ }, Me = E.Root, Ze = E.Portal, De = G(({ className: e, ...t }, r) => /* @__PURE__ */ i(
1141
+ E.Overlay,
1134
1142
  {
1135
1143
  ref: r,
1136
1144
  "data-dialog-overlay": !0,
@@ -1139,7 +1147,7 @@ const fe = {
1139
1147
  ...t
1140
1148
  }
1141
1149
  ));
1142
- De.displayName = A.Overlay.displayName;
1150
+ De.displayName = E.Overlay.displayName;
1143
1151
  const Zr = Ke(
1144
1152
  "fixed left-[50%] top-[50%] grid w-full min-w-0 max-w-[calc(100vw-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background py-6 shadow-lg box-border overflow-hidden sm:rounded-lg",
1145
1153
  {
@@ -1156,7 +1164,7 @@ const Zr = Ke(
1156
1164
  ), Qe = G(({ className: e, size: t = "default", children: r, style: o, ...n }, s) => /* @__PURE__ */ C(Ze, { children: [
1157
1165
  /* @__PURE__ */ i(De, {}),
1158
1166
  /* @__PURE__ */ i(
1159
- A.Content,
1167
+ E.Content,
1160
1168
  {
1161
1169
  ref: s,
1162
1170
  "data-dialog-content": !0,
@@ -1168,7 +1176,7 @@ const Zr = Ke(
1168
1176
  }
1169
1177
  )
1170
1178
  ] }));
1171
- Qe.displayName = A.Content.displayName;
1179
+ Qe.displayName = E.Content.displayName;
1172
1180
  const Xe = ({ className: e, ...t }) => /* @__PURE__ */ i(
1173
1181
  "div",
1174
1182
  {
@@ -1207,24 +1215,24 @@ const tt = ({ className: e, ...t }) => /* @__PURE__ */ i(
1207
1215
  );
1208
1216
  tt.displayName = "AlertDialogFooter";
1209
1217
  const be = G(({ className: e, ...t }, r) => /* @__PURE__ */ i(
1210
- A.Title,
1218
+ E.Title,
1211
1219
  {
1212
1220
  ref: r,
1213
1221
  className: $("text-lg font-semibold leading-none tracking-tight", e),
1214
1222
  ...t
1215
1223
  }
1216
1224
  ));
1217
- be.displayName = A.Title.displayName;
1225
+ be.displayName = E.Title.displayName;
1218
1226
  const ke = G(({ className: e, ...t }, r) => /* @__PURE__ */ i(
1219
- A.Description,
1227
+ E.Description,
1220
1228
  {
1221
1229
  ref: r,
1222
1230
  className: $("text-sm text-muted-foreground", e),
1223
1231
  ...t
1224
1232
  }
1225
1233
  ));
1226
- ke.displayName = A.Description.displayName;
1227
- const J = G(({ className: e, variant: t, size: r, ...o }, n) => /* @__PURE__ */ i(A.Action, { asChild: !0, children: /* @__PURE__ */ i(
1234
+ ke.displayName = E.Description.displayName;
1235
+ const J = G(({ className: e, variant: t, size: r, ...o }, n) => /* @__PURE__ */ i(E.Action, { asChild: !0, children: /* @__PURE__ */ i(
1228
1236
  H,
1229
1237
  {
1230
1238
  ref: n,
@@ -1234,8 +1242,8 @@ const J = G(({ className: e, variant: t, size: r, ...o }, n) => /* @__PURE__ */
1234
1242
  ...o
1235
1243
  }
1236
1244
  ) }));
1237
- J.displayName = A.Action.displayName;
1238
- const re = G(({ className: e, variant: t, size: r, ...o }, n) => /* @__PURE__ */ i(A.Cancel, { asChild: !0, children: /* @__PURE__ */ i(
1245
+ J.displayName = E.Action.displayName;
1246
+ const re = G(({ className: e, variant: t, size: r, ...o }, n) => /* @__PURE__ */ i(E.Cancel, { asChild: !0, children: /* @__PURE__ */ i(
1239
1247
  H,
1240
1248
  {
1241
1249
  ref: n,
@@ -1245,7 +1253,7 @@ const re = G(({ className: e, variant: t, size: r, ...o }, n) => /* @__PURE__ */
1245
1253
  ...o
1246
1254
  }
1247
1255
  ) }));
1248
- re.displayName = A.Cancel.displayName;
1256
+ re.displayName = E.Cancel.displayName;
1249
1257
  const Qr = 200, Xr = () => /* @__PURE__ */ C(
1250
1258
  "svg",
1251
1259
  {
@@ -1400,7 +1408,7 @@ const ro = ({ children: e }) => {
1400
1408
  if (!t) return null;
1401
1409
  const { mode: g, okLabel: F, cancelLabel: k, secondaryButton: y } = t;
1402
1410
  if (y && t.position === "bottom-left")
1403
- return /* @__PURE__ */ C(_, { children: [
1411
+ return /* @__PURE__ */ C(R, { children: [
1404
1412
  /* @__PURE__ */ i(
1405
1413
  H,
1406
1414
  {
@@ -1434,7 +1442,7 @@ const ro = ({ children: e }) => {
1434
1442
  case "ok":
1435
1443
  return /* @__PURE__ */ i(J, { onClick: d, children: F || "OK" });
1436
1444
  case "okCancel":
1437
- return /* @__PURE__ */ C(_, { children: [
1445
+ return /* @__PURE__ */ C(R, { children: [
1438
1446
  /* @__PURE__ */ i(
1439
1447
  re,
1440
1448
  {
@@ -1446,7 +1454,7 @@ const ro = ({ children: e }) => {
1446
1454
  /* @__PURE__ */ i(J, { onClick: d, children: F || "OK" })
1447
1455
  ] });
1448
1456
  case "delete":
1449
- return /* @__PURE__ */ C(_, { children: [
1457
+ return /* @__PURE__ */ C(R, { children: [
1450
1458
  /* @__PURE__ */ i(
1451
1459
  re,
1452
1460
  {
@@ -1465,7 +1473,7 @@ const ro = ({ children: e }) => {
1465
1473
  )
1466
1474
  ] });
1467
1475
  case "confirm":
1468
- return /* @__PURE__ */ C(_, { children: [
1476
+ return /* @__PURE__ */ C(R, { children: [
1469
1477
  /* @__PURE__ */ i(
1470
1478
  re,
1471
1479
  {
@@ -1496,7 +1504,7 @@ const ro = ({ children: e }) => {
1496
1504
  children: /* @__PURE__ */ C(Ze, { children: [
1497
1505
  /* @__PURE__ */ i(De, { style: { zIndex: fe.COOKIE_CONSENT_OVERLAY } }),
1498
1506
  /* @__PURE__ */ C(
1499
- A.Content,
1507
+ E.Content,
1500
1508
  {
1501
1509
  className: "fixed w-[calc(100%-32px)] max-w-[520px] rounded-xl border border-border bg-background text-foreground shadow-lg sm:w-full",
1502
1510
  style: {
@@ -1534,7 +1542,7 @@ const ro = ({ children: e }) => {
1534
1542
  );
1535
1543
  return /* @__PURE__ */ C(rt.Provider, { value: { dialog: u }, children: [
1536
1544
  e,
1537
- t && /* @__PURE__ */ i(_, { children: t.position === "bottom-left" ? f() : /* @__PURE__ */ i(
1545
+ t && /* @__PURE__ */ i(R, { children: t.position === "bottom-left" ? f() : /* @__PURE__ */ i(
1538
1546
  Me,
1539
1547
  {
1540
1548
  open: o,
@@ -1552,21 +1560,21 @@ const ro = ({ children: e }) => {
1552
1560
  ] });
1553
1561
  };
1554
1562
  function $e() {
1555
- const { t: e } = Te("cookieConsent"), { config: t } = X(), { settings: r, updateSetting: o } = ie(), { dialog: n } = to(), s = ue(!1), l = ue(!1), d = t?.cookieConsent?.cookies ?? [], v = r?.cookieConsent?.consentedCookieHosts ?? [], p = d.map((j) => j.host), u = d.filter((j) => j.category === "strict_necessary").map((j) => j.host), a = p.some((j) => !v.includes(j)), f = v.length === 0, g = !f && a, k = typeof window < "u" && window.parent === window && d.length > 0 && (f || a), y = e(g ? "titleRenewal" : "title"), _e = e(g ? "descriptionRenewal" : "description"), xe = T(() => {
1563
+ const { t: e } = Te("cookieConsent"), { config: t } = X(), { settings: r, updateSetting: o } = ie(), { dialog: n } = to(), s = ue(!1), l = ue(!1), d = t?.cookieConsent?.cookies ?? [], v = r?.cookieConsent?.consentedCookieHosts ?? [], p = d.map((j) => j.host), u = d.filter((j) => j.category === "strict_necessary").map((j) => j.host), a = p.some((j) => !v.includes(j)), f = v.length === 0, g = !f && a, k = typeof window < "u" && window.parent === window && d.length > 0 && (f || a), y = e(g ? "titleRenewal" : "title"), Re = e(g ? "descriptionRenewal" : "description"), xe = T(() => {
1556
1564
  o("cookieConsent", {
1557
1565
  acceptedHosts: p,
1558
1566
  consentedCookieHosts: p
1559
1567
  });
1560
- }, [p, o]), Pe = T(() => {
1568
+ }, [p, o]), Oe = T(() => {
1561
1569
  o("cookieConsent", {
1562
1570
  acceptedHosts: u,
1563
1571
  consentedCookieHosts: p
1564
1572
  });
1565
- }, [u, p, o]), Oe = T(() => {
1573
+ }, [u, p, o]), Pe = T(() => {
1566
1574
  s.current = !0, xe();
1567
1575
  }, [xe]), We = T(() => {
1568
- s.current = !0, Pe();
1569
- }, [Pe]), Be = T(() => {
1576
+ s.current = !0, Oe();
1577
+ }, [Oe]), Ue = T(() => {
1570
1578
  s.current = !0, m.openDrawer({ url: `${we.cookiePreferences}?initial=true`, size: "420px" });
1571
1579
  }, []);
1572
1580
  return z(() => {
@@ -1576,7 +1584,7 @@ function $e() {
1576
1584
  }
1577
1585
  l.current || (l.current = !0, m.propagateMessage({ type: "SHELLUI_CLOSE_MODAL", payload: {} }), m.propagateMessage({ type: "SHELLUI_CLOSE_DRAWER", payload: {} }), s.current = !1, n({
1578
1586
  title: y,
1579
- description: _e,
1587
+ description: Re,
1580
1588
  mode: "okCancel",
1581
1589
  okLabel: e("accept"),
1582
1590
  cancelLabel: e("reject"),
@@ -1584,19 +1592,19 @@ function $e() {
1584
1592
  icon: "cookie",
1585
1593
  secondaryButton: {
1586
1594
  label: e("setPreferences"),
1587
- onClick: Be
1595
+ onClick: Ue
1588
1596
  },
1589
- onOk: Oe,
1597
+ onOk: Pe,
1590
1598
  onCancel: We
1591
1599
  }));
1592
1600
  }, [
1593
1601
  k,
1594
1602
  y,
1595
- _e,
1603
+ Re,
1596
1604
  e,
1597
- Oe,
1605
+ Pe,
1598
1606
  We,
1599
- Be,
1607
+ Ue,
1600
1608
  n
1601
1609
  ]), null;
1602
1610
  }
@@ -1607,7 +1615,7 @@ function Ie() {
1607
1615
  if (t != null)
1608
1616
  return typeof t == "string" ? JSON.parse(t) : t;
1609
1617
  }
1610
- function Re() {
1618
+ function _e() {
1611
1619
  if (typeof window > "u")
1612
1620
  return { acceptedHosts: [], consentedCookieHosts: [] };
1613
1621
  try {
@@ -1625,13 +1633,13 @@ function Re() {
1625
1633
  function no(e) {
1626
1634
  const t = Ie();
1627
1635
  if (!t?.cookieConsent?.cookies?.length || !new Set(t.cookieConsent.cookies.map((n) => n.host)).has(e)) return !0;
1628
- const { acceptedHosts: o } = Re();
1636
+ const { acceptedHosts: o } = _e();
1629
1637
  return o.includes(e);
1630
1638
  }
1631
1639
  function io() {
1632
1640
  const e = Ie();
1633
1641
  if (!e?.cookieConsent?.cookies?.length) return !1;
1634
- const { consentedCookieHosts: t } = Re();
1642
+ const { consentedCookieHosts: t } = _e();
1635
1643
  if (t.length === 0) return !0;
1636
1644
  const r = new Set(e.cookieConsent.cookies.map((o) => o.host));
1637
1645
  for (const o of r)
@@ -1641,7 +1649,7 @@ function io() {
1641
1649
  function Io() {
1642
1650
  const e = Ie();
1643
1651
  if (!e?.cookieConsent?.cookies?.length) return [];
1644
- const { consentedCookieHosts: t } = Re(), r = new Set(t);
1652
+ const { consentedCookieHosts: t } = _e(), r = new Set(t);
1645
1653
  return e.cookieConsent.cookies.map((o) => o.host).filter((o) => !r.has(o));
1646
1654
  }
1647
1655
  const so = "shellui:settings";
@@ -1668,16 +1676,16 @@ function lo() {
1668
1676
  }), Fe = !0;
1669
1677
  });
1670
1678
  }
1671
- function Ro() {
1679
+ function _o() {
1672
1680
  Fe && import("@sentry/react").then((e) => {
1673
1681
  e.close(), Fe = !1;
1674
1682
  });
1675
1683
  }
1676
1684
  lo();
1677
- const w = Ee("shellcore");
1678
- let h = null, E = !1, S = null, V = null, ce = [], N = !1, de = !1, Z = null, x = !1, oe = !1, ot = typeof window < "u" ? Date.now() : 0;
1685
+ const w = Ae("shellcore");
1686
+ let h = null, A = !1, S = null, V = null, ce = [], N = !1, de = !1, Z = null, x = !1, oe = !1, ot = typeof window < "u" ? Date.now() : 0;
1679
1687
  const co = 5e3;
1680
- let I = null, P = null, R = null, O = null, W = null, B = null, U = null;
1688
+ let I = null, O = null, _ = null, P = null, W = null, U = null, B = null;
1681
1689
  function ve(e) {
1682
1690
  if (!e) return !1;
1683
1691
  const t = e;
@@ -1697,7 +1705,7 @@ const uo = 5e3;
1697
1705
  async function D() {
1698
1706
  const t = {
1699
1707
  registered: await it(),
1700
- updateAvailable: E
1708
+ updateAvailable: A
1701
1709
  };
1702
1710
  ce.forEach((r) => r(t));
1703
1711
  }
@@ -1839,7 +1847,7 @@ async function nt(e = { enabled: !0 }) {
1839
1847
  type: "classic",
1840
1848
  updateViaCache: "none"
1841
1849
  // Always check network for service worker updates
1842
- })), h && (I && (h.removeEventListener("waiting", I), I = null), P && (h.removeEventListener("activated", P), P = null), R && (h.removeEventListener("controlling", R), R = null), O && (h.removeEventListener("registered", O), O = null), W && (h.removeEventListener("redundant", W), W = null), B && (navigator.serviceWorker.removeEventListener("error", B), B = null), U && (navigator.serviceWorker.removeEventListener("messageerror", U), U = null), de = !1), o && !de) {
1850
+ })), h && (I && (h.removeEventListener("waiting", I), I = null), O && (h.removeEventListener("activated", O), O = null), _ && (h.removeEventListener("controlling", _), _ = null), P && (h.removeEventListener("registered", P), P = null), W && (h.removeEventListener("redundant", W), W = null), U && (navigator.serviceWorker.removeEventListener("error", U), U = null), B && (navigator.serviceWorker.removeEventListener("messageerror", B), B = null), de = !1), o && !de) {
1843
1851
  de = !0;
1844
1852
  const l = "shellui:update-available";
1845
1853
  I = async () => {
@@ -1851,14 +1859,14 @@ async function nt(e = { enabled: !0 }) {
1851
1859
  if (c) {
1852
1860
  console.info(
1853
1861
  "[Service Worker] Waiting event fired during auto-activation - skipping toast"
1854
- ), E = !0, S = v, D();
1862
+ ), A = !0, S = v, D();
1855
1863
  return;
1856
1864
  }
1857
1865
  if (Z === p) {
1858
- E = !0, S = v, D();
1866
+ A = !0, S = v, D();
1859
1867
  return;
1860
1868
  }
1861
- if (Z = p, E = !0, S = v, D(), e.onUpdateAvailable)
1869
+ if (Z = p, A = !0, S = v, D(), e.onUpdateAvailable)
1862
1870
  e.onUpdateAvailable();
1863
1871
  else {
1864
1872
  const u = () => {
@@ -1894,25 +1902,25 @@ async function nt(e = { enabled: !0 }) {
1894
1902
  } catch (c) {
1895
1903
  w.error("Error in waiting handler:", { error: c }), Z = null;
1896
1904
  }
1897
- }, h.addEventListener("waiting", I), P = (c) => {
1905
+ }, h.addEventListener("waiting", I), O = (c) => {
1898
1906
  const d = c ?? {};
1899
1907
  console.info("[Service Worker] Service worker activated:", {
1900
1908
  isUpdate: d.isUpdate,
1901
1909
  isInitialRegistration: N
1902
- }), D(), E = !1, S = null, Z = null;
1910
+ }), D(), A = !1, S = null, Z = null;
1903
1911
  const v = typeof window < "u" && sessionStorage.getItem("shellui:service-worker:intentional-update") === "true", p = x || v;
1904
1912
  typeof window < "u" && sessionStorage.removeItem("shellui:service-worker:intentional-update"), d.isUpdate && !N && p ? (console.info("[Service Worker] Reloading page after intentional update"), window.location.reload()) : d.isUpdate && !N && !p && console.info(
1905
1913
  "[Service Worker] Service worker auto-activated on page load - new version is now active"
1906
1914
  ), N = !1;
1907
- }, h.addEventListener("activated", P), R = () => {
1915
+ }, h.addEventListener("activated", O), _ = () => {
1908
1916
  D();
1909
1917
  const c = typeof window < "u" && sessionStorage.getItem("shellui:service-worker:auto-activated") === "true", d = typeof window < "u" && sessionStorage.getItem("shellui:service-worker:intentional-update") === "true", v = x || d || c;
1910
1918
  c && typeof window < "u" && sessionStorage.removeItem("shellui:service-worker:auto-activated"), !N && v && (console.info(
1911
1919
  c ? "[Service Worker] Auto-activated service worker took control - reloading to use new version" : "[Service Worker] User clicked Install Now - reloading to use new version"
1912
1920
  ), window.location.reload()), N = !1;
1913
- }, h.addEventListener("controlling", R), O = () => {
1921
+ }, h.addEventListener("controlling", _), P = () => {
1914
1922
  D();
1915
- }, h.addEventListener("registered", O), W = (c) => {
1923
+ }, h.addEventListener("registered", P), W = (c) => {
1916
1924
  w.info("Service worker became redundant:", c);
1917
1925
  const d = typeof window < "u" && sessionStorage.getItem("shellui:service-worker:intentional-update") === "true";
1918
1926
  x || d || !!S ? (console.info(
@@ -1941,7 +1949,7 @@ async function nt(e = { enabled: !0 }) {
1941
1949
  { error: u }
1942
1950
  );
1943
1951
  });
1944
- }, h.addEventListener("redundant", W), B = (c) => {
1952
+ }, h.addEventListener("redundant", W), U = (c) => {
1945
1953
  w.error("Service worker error event:", c);
1946
1954
  const d = typeof window < "u" && sessionStorage.getItem("shellui:service-worker:intentional-update") === "true";
1947
1955
  if (x || d)
@@ -1953,15 +1961,15 @@ async function nt(e = { enabled: !0 }) {
1953
1961
  errorName: f
1954
1962
  }));
1955
1963
  }
1956
- }, navigator.serviceWorker.addEventListener("error", B), U = (c) => {
1964
+ }, navigator.serviceWorker.addEventListener("error", U), B = (c) => {
1957
1965
  w.error("Service worker message error:", c);
1958
- }, navigator.serviceWorker.addEventListener("messageerror", U);
1966
+ }, navigator.serviceWorker.addEventListener("messageerror", B);
1959
1967
  }
1960
1968
  await h.register();
1961
1969
  const n = await navigator.serviceWorker.getRegistration();
1962
1970
  if (n && n.waiting && I) {
1963
1971
  const l = n.waiting.scriptURL;
1964
- S === n.waiting && E === !0 ? (E = !0, S = n.waiting, D()) : Z !== l ? (E = !0, S = n.waiting, I()) : (E = !0, S = n.waiting, D());
1972
+ S === n.waiting && A === !0 ? (A = !0, S = n.waiting, D()) : Z !== l ? (A = !0, S = n.waiting, I()) : (A = !0, S = n.waiting, D());
1965
1973
  }
1966
1974
  D(), setInterval(
1967
1975
  () => {
@@ -2019,7 +2027,7 @@ async function Ve() {
2019
2027
  }, 1e3);
2020
2028
  };
2021
2029
  h.addEventListener("controlling", r), S.postMessage({ type: "SKIP_WAITING" }), setTimeout(() => {
2022
- R && h?.removeEventListener("controlling", R), navigator.serviceWorker.controller && t(), setTimeout(() => {
2030
+ _ && h?.removeEventListener("controlling", _), navigator.serviceWorker.controller && t(), setTimeout(() => {
2023
2031
  x = !1;
2024
2032
  }, 1e3);
2025
2033
  }, 2e3);
@@ -2036,7 +2044,7 @@ async function Q() {
2036
2044
  const t = await caches.keys();
2037
2045
  await Promise.all(t.map((r) => caches.delete(r)));
2038
2046
  }
2039
- h && (I && h.removeEventListener("waiting", I), P && h.removeEventListener("activated", P), R && h.removeEventListener("controlling", R), O && h.removeEventListener("registered", O), W && h.removeEventListener("redundant", W), B && navigator.serviceWorker.removeEventListener("error", B), U && navigator.serviceWorker.removeEventListener("messageerror", U), I = null, P = null, R = null, O = null, W = null, B = null, U = null, h = null), E = !1, S = null, N = !1, Z = null, de = !1, x = !1, D();
2047
+ h && (I && h.removeEventListener("waiting", I), O && h.removeEventListener("activated", O), _ && h.removeEventListener("controlling", _), P && h.removeEventListener("registered", P), W && h.removeEventListener("redundant", W), U && navigator.serviceWorker.removeEventListener("error", U), B && navigator.serviceWorker.removeEventListener("messageerror", B), I = null, O = null, _ = null, P = null, W = null, U = null, B = null, h = null), A = !1, S = null, N = !1, Z = null, de = !1, x = !1, D();
2040
2048
  } catch (e) {
2041
2049
  w.error("Failed to unregister service worker:", { error: e }), N = !1;
2042
2050
  }
@@ -2051,18 +2059,18 @@ async function it() {
2051
2059
  return !1;
2052
2060
  }
2053
2061
  }
2054
- async function _o() {
2062
+ async function Ro() {
2055
2063
  const e = await it();
2056
2064
  let t = !1;
2057
2065
  if (e && !se())
2058
2066
  try {
2059
2067
  const r = await navigator.serviceWorker.getRegistration();
2060
- r?.waiting ? (t = !0, E = !0, S = r.waiting) : (t = !1, E = !1, S = null);
2068
+ r?.waiting ? (t = !0, A = !0, S = r.waiting) : (t = !1, A = !1, S = null);
2061
2069
  } catch (r) {
2062
- w.error("Failed to check service worker registration:", { error: r }), t = E;
2070
+ w.error("Failed to check service worker registration:", { error: r }), t = A;
2063
2071
  }
2064
2072
  else
2065
- t = !1, E = !1, S = null;
2073
+ t = !1, A = !1, S = null;
2066
2074
  return {
2067
2075
  registered: e,
2068
2076
  updateAvailable: t
@@ -2071,7 +2079,7 @@ async function _o() {
2071
2079
  async function xo() {
2072
2080
  se() || !h || await h.update();
2073
2081
  }
2074
- function Po(e) {
2082
+ function Oo(e) {
2075
2083
  return ce.push(e), () => {
2076
2084
  ce = ce.filter((t) => t !== e);
2077
2085
  };
@@ -2097,18 +2105,18 @@ const po = () => {
2097
2105
  enabled: !0
2098
2106
  }) : Q();
2099
2107
  }, [t?.serviceWorker?.enabled, e?.navigation]);
2100
- const r = Ae(() => e ? Wt(e) : null, [e]);
2101
- return !e.navigation || e.navigation.length === 0 ? /* @__PURE__ */ C(_, { children: [
2108
+ const r = Ee(() => e ? Wt(e) : null, [e]);
2109
+ return !e.navigation || e.navigation.length === 0 ? /* @__PURE__ */ C(R, { children: [
2102
2110
  /* @__PURE__ */ i($e, {}),
2103
2111
  /* @__PURE__ */ C("div", { style: { fontFamily: "system-ui, sans-serif", padding: "2rem" }, children: [
2104
2112
  /* @__PURE__ */ i("h1", { children: e.title || "ShellUI" }),
2105
2113
  /* @__PURE__ */ i("p", { children: "No navigation items configured." })
2106
2114
  ] })
2107
- ] }) : r ? /* @__PURE__ */ C(_, { children: [
2115
+ ] }) : r ? /* @__PURE__ */ C(R, { children: [
2108
2116
  /* @__PURE__ */ i($e, {}),
2109
2117
  /* @__PURE__ */ i(ut, { router: r })
2110
2118
  ] }) : null;
2111
- }, Oo = () => {
2119
+ }, Po = () => {
2112
2120
  const [e, t] = ne(!0);
2113
2121
  return Ge(() => {
2114
2122
  m.init().then(() => {
@@ -2118,7 +2126,7 @@ const po = () => {
2118
2126
  };
2119
2127
  function Wo(e) {
2120
2128
  const { config: t } = X(), { settings: r } = ie();
2121
- return Ae(() => {
2129
+ return Ee(() => {
2122
2130
  const n = t?.cookieConsent?.cookies ?? [], s = r?.cookieConsent?.acceptedHosts ?? [];
2123
2131
  if (!n.length)
2124
2132
  return { isAccepted: !0, needsConsent: !1 };
@@ -2129,7 +2137,7 @@ function Wo(e) {
2129
2137
  }, [t?.cookieConsent, r?.cookieConsent?.acceptedHosts, e]);
2130
2138
  }
2131
2139
  export {
2132
- Oo as A,
2140
+ Po as A,
2133
2141
  H as B,
2134
2142
  fe as Z,
2135
2143
  ie as a,
@@ -2137,19 +2145,19 @@ export {
2137
2145
  $ as c,
2138
2146
  To as d,
2139
2147
  jt as e,
2140
- Eo as f,
2148
+ Ao as f,
2141
2149
  No as g,
2142
2150
  Do as h,
2143
2151
  se as i,
2144
- Po as j,
2152
+ Oo as j,
2145
2153
  Ve as k,
2146
- _o as l,
2154
+ Ro as l,
2147
2155
  xo as m,
2148
2156
  lo as n,
2149
- Ro as o,
2157
+ _o as o,
2150
2158
  Ce as p,
2151
2159
  it as q,
2152
- Ao as r,
2160
+ Eo as r,
2153
2161
  Lo as s,
2154
2162
  no as t,
2155
2163
  X as u,
@@ -2157,4 +2165,4 @@ export {
2157
2165
  Io as w,
2158
2166
  Wo as x
2159
2167
  };
2160
- //# sourceMappingURL=index-PsePV0Ng.js.map
2168
+ //# sourceMappingURL=index-CfvdAI_Y.js.map