@plumile/backoffice-react 0.1.87 → 0.1.90

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 (91) hide show
  1. package/README.md +6 -6
  2. package/lib/esm/{AcceptInvitationScreen-dnOvRx4Z.js → AcceptInvitationScreen-DLc4aovr.js} +8 -7
  3. package/lib/esm/AcceptInvitationScreen-DLc4aovr.js.map +1 -0
  4. package/lib/esm/{AuthPanel-DiHejPoq.js → AuthPanel-BaIRFGbX.js} +2 -2
  5. package/lib/esm/{AuthPanel-DiHejPoq.js.map → AuthPanel-BaIRFGbX.js.map} +1 -1
  6. package/lib/esm/{BackofficeAcceptInvitationPage-CGht2ka0.js → BackofficeAcceptInvitationPage-D0dZnrV7.js} +4 -4
  7. package/lib/esm/{BackofficeAcceptInvitationPage-CGht2ka0.js.map → BackofficeAcceptInvitationPage-D0dZnrV7.js.map} +1 -1
  8. package/lib/esm/{BackofficeDashboardPage-h1OWb_rV.js → BackofficeDashboardPage-YWvoQODn.js} +33 -33
  9. package/lib/esm/{BackofficeDashboardPage-h1OWb_rV.js.map → BackofficeDashboardPage-YWvoQODn.js.map} +1 -1
  10. package/lib/esm/{BackofficeDetailPayload-iVx66o_6.js → BackofficeDetailPayload-P61MDRLE.js} +2 -2
  11. package/lib/esm/{BackofficeDetailPayload-iVx66o_6.js.map → BackofficeDetailPayload-P61MDRLE.js.map} +1 -1
  12. package/lib/esm/{BackofficeEntityActionFormDialog-V4QXnvpy.js → BackofficeEntityActionFormDialog-BgRTJ_JS.js} +3 -4
  13. package/lib/esm/BackofficeEntityActionFormDialog-BgRTJ_JS.js.map +1 -0
  14. package/lib/esm/BackofficeEntityDetailLayoutPage-DXjRqvcZ.js.map +1 -1
  15. package/lib/esm/{BackofficeEntityDetailPage-CIyGKwVP.js → BackofficeEntityDetailPage-DPFXbJxC.js} +34 -34
  16. package/lib/esm/BackofficeEntityDetailPage-DPFXbJxC.js.map +1 -0
  17. package/lib/esm/{BackofficeEntityListPage-DmZozSNk.js → BackofficeEntityListPage-C8Ucmc_E.js} +3 -4
  18. package/lib/esm/BackofficeEntityListPage-C8Ucmc_E.js.map +1 -0
  19. package/lib/esm/{useBackofficeReactTranslation-WfXU8kCf.js → BackofficeErrorBoundary-BwRVSDHU.js} +3 -9
  20. package/lib/esm/BackofficeErrorBoundary-BwRVSDHU.js.map +1 -0
  21. package/lib/esm/{BackofficeLayoutPage-DtFDn_nU.js → BackofficeLayoutPage-j3VUX3Tu.js} +35 -35
  22. package/lib/esm/{BackofficeLayoutPage-DtFDn_nU.js.map → BackofficeLayoutPage-j3VUX3Tu.js.map} +1 -1
  23. package/lib/esm/{BackofficeLoginPage-BvOPqbKO.js → BackofficeLoginPage-DgdIWTeu.js} +5 -5
  24. package/lib/esm/{BackofficeLoginPage-BvOPqbKO.js.map → BackofficeLoginPage-DgdIWTeu.js.map} +1 -1
  25. package/lib/esm/{BackofficePasswordResetCompletePage-ZLhghfhC.js → BackofficePasswordResetCompletePage-CF_0t3Nq.js} +4 -5
  26. package/lib/esm/BackofficePasswordResetCompletePage-CF_0t3Nq.js.map +1 -0
  27. package/lib/esm/{BackofficePasswordResetRequestPage-BLNHQD79.js → BackofficePasswordResetRequestPage-BJOrQXcy.js} +4 -4
  28. package/lib/esm/BackofficePasswordResetRequestPage-BJOrQXcy.js.map +1 -0
  29. package/lib/esm/BackofficeRightPageLayout-DZQvIHnj.js.map +1 -1
  30. package/lib/esm/{BackofficeVerifyEmailPage-BSTtLXdx.js → BackofficeVerifyEmailPage-C81LlsNM.js} +4 -5
  31. package/lib/esm/BackofficeVerifyEmailPage-C81LlsNM.js.map +1 -0
  32. package/lib/esm/{EntityFilterValue-B5ZGHO_u.js → EntityFilterValue-BWUdPBwp.js} +10 -9
  33. package/lib/esm/EntityFilterValue-BWUdPBwp.js.map +1 -0
  34. package/lib/esm/{EntityIdPickerDialog-DbTnDU4v.js → EntityIdPickerDialog-Yhmr-WsV.js} +9 -9
  35. package/lib/esm/{EntityIdPickerDialog-DbTnDU4v.js.map → EntityIdPickerDialog-Yhmr-WsV.js.map} +1 -1
  36. package/lib/esm/{LazyBackofficeEntityActionFormDialog-BE3wVfU6.js → LazyBackofficeEntityActionFormDialog-DVPQyWlr.js} +8 -7
  37. package/lib/esm/{LazyBackofficeEntityActionFormDialog-BE3wVfU6.js.map → LazyBackofficeEntityActionFormDialog-DVPQyWlr.js.map} +1 -1
  38. package/lib/esm/{PasswordResetCompleteScreen-B0P_tZg2.js → PasswordResetCompleteScreen-Cgg96DPo.js} +6 -5
  39. package/lib/esm/PasswordResetCompleteScreen-Cgg96DPo.js.map +1 -0
  40. package/lib/esm/{PasswordResetRequestScreen-p9s0dblR.js → PasswordResetRequestScreen-I1nFvGLd.js} +6 -5
  41. package/lib/esm/PasswordResetRequestScreen-I1nFvGLd.js.map +1 -0
  42. package/lib/esm/{VerifyEmailScreen--9lxOGlW.js → VerifyEmailScreen-Br5KyHjg.js} +7 -6
  43. package/lib/esm/VerifyEmailScreen-Br5KyHjg.js.map +1 -0
  44. package/lib/esm/backoffice-react.js +830 -1001
  45. package/lib/esm/backoffice-react.js.map +1 -1
  46. package/lib/esm/buildBreadcrumbs-CqF9Nh6x.js.map +1 -1
  47. package/lib/esm/environment-BXoBq_6e.js.map +1 -1
  48. package/lib/esm/loginPage.css-B7Io_DuU.js +6 -0
  49. package/lib/esm/loginPage.css-B7Io_DuU.js.map +1 -0
  50. package/lib/esm/mutationResult-CcQMY13J.js.map +1 -1
  51. package/lib/esm/pageResolution-hAQA5C6S.js.map +1 -1
  52. package/lib/esm/sidebarUtils-CuwJ_3mD.js.map +1 -1
  53. package/lib/esm/{synchronizeAuthStatusQuery-By_lNCnP.js → synchronizeAuthStatusQuery-1juorUEX.js} +47 -46
  54. package/lib/esm/synchronizeAuthStatusQuery-1juorUEX.js.map +1 -0
  55. package/lib/esm/{useAuth-OVPPa9bO.js → useAuth-BdSNpGqe.js} +43 -42
  56. package/lib/esm/useAuth-BdSNpGqe.js.map +1 -0
  57. package/lib/esm/{useBackofficeAuth-BvEoEqnB.js → useBackofficeAuth-C16Euw2X.js} +3 -3
  58. package/lib/esm/{useBackofficeAuth-BvEoEqnB.js.map → useBackofficeAuth-C16Euw2X.js.map} +1 -1
  59. package/lib/esm/{useBackofficeLazyValue-Dnii1_dE.js → useBackofficeLazyValue-Bh_13h8A.js} +2 -2
  60. package/lib/esm/{useBackofficeLazyValue-Dnii1_dE.js.map → useBackofficeLazyValue-Bh_13h8A.js.map} +1 -1
  61. package/lib/esm/useBackofficeListUrlState-D4fx5O7u.js.map +1 -1
  62. package/lib/esm/useBackofficeReactTranslation-Btt58EIo.js +18 -0
  63. package/lib/esm/useBackofficeReactTranslation-Btt58EIo.js.map +1 -0
  64. package/lib/types/components/backoffice/scaffolds/BackofficeListFilterContext.d.ts.map +1 -1
  65. package/lib/types/hooks/useConditionalSubscription.d.ts.map +1 -1
  66. package/lib/types/i18n/resources.d.ts +211 -409
  67. package/lib/types/i18n/resources.d.ts.map +1 -1
  68. package/lib/types/pages/BackofficeEntityDetailPage.d.ts.map +1 -1
  69. package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
  70. package/lib/types/router/createBackofficeRoutes.d.ts.map +1 -1
  71. package/package.json +14 -12
  72. package/lib/esm/AcceptInvitationScreen-dnOvRx4Z.js.map +0 -1
  73. package/lib/esm/BackofficeConfigContext-R0t1owTI.js +0 -12
  74. package/lib/esm/BackofficeConfigContext-R0t1owTI.js.map +0 -1
  75. package/lib/esm/BackofficeEntityActionFormDialog-V4QXnvpy.js.map +0 -1
  76. package/lib/esm/BackofficeEntityDetailPage-CIyGKwVP.js.map +0 -1
  77. package/lib/esm/BackofficeEntityListPage-DmZozSNk.js.map +0 -1
  78. package/lib/esm/BackofficePasswordResetCompletePage-ZLhghfhC.js.map +0 -1
  79. package/lib/esm/BackofficePasswordResetRequestPage-BLNHQD79.js.map +0 -1
  80. package/lib/esm/BackofficeVerifyEmailPage-BSTtLXdx.js.map +0 -1
  81. package/lib/esm/EntityFilterValue-B5ZGHO_u.js.map +0 -1
  82. package/lib/esm/PasswordResetCompleteScreen-B0P_tZg2.js.map +0 -1
  83. package/lib/esm/PasswordResetRequestScreen-p9s0dblR.js.map +0 -1
  84. package/lib/esm/VerifyEmailScreen--9lxOGlW.js.map +0 -1
  85. package/lib/esm/loginPage.css-CBJ1Ozm5.js +0 -12
  86. package/lib/esm/loginPage.css-CBJ1Ozm5.js.map +0 -1
  87. package/lib/esm/synchronizeAuthStatusQuery-By_lNCnP.js.map +0 -1
  88. package/lib/esm/useAuth-OVPPa9bO.js.map +0 -1
  89. package/lib/esm/useBackofficeReactTranslation-WfXU8kCf.js.map +0 -1
  90. package/lib/types/i18n/useSharedTranslation.d.ts +0 -3
  91. package/lib/types/i18n/useSharedTranslation.d.ts.map +0 -1
@@ -1,44 +1,43 @@
1
1
  import { i as e, n as t, r as n, t as r } from "./environment-BXoBq_6e.js";
2
2
  import { t as i } from "./useRelayEnvironment-vQ86aW-n.js";
3
- import { n as a, t as o } from "./BackofficeConfigContext-R0t1owTI.js";
4
- import { i as s, t as c } from "./sidebarUtils-CuwJ_3mD.js";
5
- import { f as l } from "./loginPage.css-CBJ1Ozm5.js";
6
- import { a as u, i as d, n as f, r as p, t as m } from "./useAuth-OVPPa9bO.js";
7
- import { n as h, t as g } from "./synchronizeAuthStatusQuery-By_lNCnP.js";
8
- import { t as _ } from "./AcceptInvitationScreen-dnOvRx4Z.js";
9
- import { t as v } from "./PasswordResetCompleteScreen-B0P_tZg2.js";
10
- import { t as y } from "./PasswordResetRequestScreen-p9s0dblR.js";
11
- import { t as ee } from "./VerifyEmailScreen--9lxOGlW.js";
12
- import { n as te, t as b } from "./useBackofficeReactTranslation-WfXU8kCf.js";
13
- import { i as x, n as ne, t as S } from "./EntityFilterValue-B5ZGHO_u.js";
14
- import { i as re, t as ie } from "./EntityIdPickerDialog-DbTnDU4v.js";
15
- import { a as ae, i as oe, r as se, t as ce } from "./BackofficeDetailPayload-iVx66o_6.js";
3
+ import { n as a, r as o, t as s } from "./useBackofficeReactTranslation-Btt58EIo.js";
4
+ import { i as c, t as l } from "./sidebarUtils-CuwJ_3mD.js";
5
+ import { a as u, i as d, n as f, r as p, t as m } from "./useAuth-BdSNpGqe.js";
6
+ import { n as h, t as g } from "./synchronizeAuthStatusQuery-1juorUEX.js";
7
+ import { t as _ } from "./AcceptInvitationScreen-DLc4aovr.js";
8
+ import { t as v } from "./PasswordResetCompleteScreen-Cgg96DPo.js";
9
+ import { t as y } from "./PasswordResetRequestScreen-I1nFvGLd.js";
10
+ import { t as ee } from "./VerifyEmailScreen-Br5KyHjg.js";
11
+ import { t as te } from "./BackofficeErrorBoundary-BwRVSDHU.js";
12
+ import { i as b, n as ne, t as re } from "./EntityFilterValue-BWUdPBwp.js";
13
+ import { i as x, t as ie } from "./EntityIdPickerDialog-Yhmr-WsV.js";
14
+ import { a as ae, i as oe, r as se, t as ce } from "./BackofficeDetailPayload-P61MDRLE.js";
16
15
  import { t as le } from "./useBackofficeListUrlState-D4fx5O7u.js";
17
16
  import { i as ue, n as de, r as fe, t as pe } from "./mutationResult-CcQMY13J.js";
18
17
  import { t as me } from "./pageResolution-hAQA5C6S.js";
19
18
  import { n as he, t as ge } from "./BackofficeRightPageLayout-DZQvIHnj.js";
20
- import { StrictMode as _e, useCallback as C, useContext as ve, useEffect as w, useMemo as T, useRef as ye, useState as E } from "react";
21
- import { createInstance as be } from "i18next";
22
- import { I18nextProvider as xe, initReactI18next as Se, useTranslation as Ce } from "react-i18next";
23
- import { HttpRedirect as we, Link as Te, RouterRenderer as Ee, RoutingContext as De, createRouter as Oe, getResourcePage as D, r as ke } from "@plumile/router";
24
- import { BackofficeTabs as Ae, DetailPageTemplate as je, SidebarSearchSvg as Me, Spinner as Ne, ThemeProvider as Pe, cx as Fe } from "@plumile/ui";
25
- import Ie from "i18next-browser-languagedetector";
19
+ import { StrictMode as _e, useCallback as S, useContext as ve, useEffect as C, useMemo as w, useRef as T, useState as E } from "react";
20
+ import { createInstance as ye } from "i18next";
21
+ import { I18nextProvider as be, initReactI18next as xe, useTranslation as Se } from "react-i18next";
22
+ import { HttpRedirect as Ce, Link as we, RouterRenderer as Te, RoutingContext as Ee, createRouter as De, getResourcePage as D, r as Oe } from "@plumile/router";
23
+ import { BackofficeTabs as ke, DetailPageTemplate as Ae, SidebarSearchSvg as je, Spinner as Me, ThemeProvider as Ne, cx as Pe } from "@plumile/ui";
24
+ import Fe from "i18next-browser-languagedetector";
26
25
  import * as O from "react-relay";
27
26
  import { jsx as k, jsxs as A } from "react/jsx-runtime";
28
- import { BACKOFFICE_LIST_DEFAULTS as Le } from "@plumile/backoffice-core/constants.js";
27
+ import { BACKOFFICE_LIST_DEFAULTS as Ie } from "@plumile/backoffice-core/constants.js";
29
28
  import { resolveBackofficeLoadedFacetModule as j } from "@plumile/backoffice-core/resolve.js";
30
- import { buildBackofficeFallbackListHref as Re, buildBackofficeListLink as M } from "@plumile/backoffice-core/state/buildListHref.js";
31
- import { setWhereValue as ze } from "@plumile/backoffice-core/filters/where.js";
29
+ import { buildBackofficeFallbackListHref as Le, buildBackofficeListLink as M } from "@plumile/backoffice-core/state/buildListHref.js";
30
+ import { setWhereValue as Re } from "@plumile/backoffice-core/filters/where.js";
32
31
  //#region src/i18n/createI18nInstance.ts
33
- var Be = { maximumFractionDigits: 2 }, Ve = {
32
+ var ze = { maximumFractionDigits: 2 }, Be = {
34
33
  style: "currency",
35
34
  currency: "USD",
36
35
  maximumFractionDigits: 2
37
- }, He = { dateStyle: "medium" }, Ue = {
36
+ }, Ve = { dateStyle: "medium" }, He = {
38
37
  dateStyle: "medium",
39
38
  timeStyle: "short"
40
- }, We = { style: "percent" };
41
- function Ge(e) {
39
+ }, Ue = { style: "percent" };
40
+ function We(e) {
42
41
  return Array.isArray(e) ? e[0] : e;
43
42
  }
44
43
  function N(e) {
@@ -54,19 +53,19 @@ function N(e) {
54
53
  }
55
54
  function P(e, t, n) {
56
55
  if (t == null) return N(e);
57
- let r = Ge(n);
58
- if (t === "number" && typeof e == "number") return new Intl.NumberFormat(r, Be).format(e);
59
- if (t === "currency" && typeof e == "number") return new Intl.NumberFormat(r, Ve).format(e);
60
- if (t === "percent" && typeof e == "number") return new Intl.NumberFormat(r, We).format(e);
56
+ let r = We(n);
57
+ if (t === "number" && typeof e == "number") return new Intl.NumberFormat(r, ze).format(e);
58
+ if (t === "currency" && typeof e == "number") return new Intl.NumberFormat(r, Be).format(e);
59
+ if (t === "percent" && typeof e == "number") return new Intl.NumberFormat(r, Ue).format(e);
61
60
  if ((t === "date" || t === "datetime") && e != null) {
62
61
  let n;
63
- if (n = e instanceof Date ? e : typeof e == "string" || typeof e == "number" ? new Date(e) : new Date(N(e)), !Number.isNaN(n.getTime())) return t === "date" ? new Intl.DateTimeFormat(r, He).format(n) : new Intl.DateTimeFormat(r, Ue).format(n);
62
+ if (n = e instanceof Date ? e : typeof e == "string" || typeof e == "number" ? new Date(e) : new Date(N(e)), !Number.isNaN(n.getTime())) return t === "date" ? new Intl.DateTimeFormat(r, Ve).format(n) : new Intl.DateTimeFormat(r, He).format(n);
64
63
  }
65
64
  return N(e);
66
65
  }
67
66
  async function F(e) {
68
- let { resources: t, lng: n, fallbackLng: r = "en", initOptions: i = {}, instance: a = be(), useLanguageDetector: o = !1, detection: s } = e, { interpolation: c, ...l } = i;
69
- o && a.use(Ie), a.use(Se);
67
+ let { resources: t, lng: n, fallbackLng: r = "en", initOptions: i = {}, instance: a = ye(), useLanguageDetector: o = !1, detection: s } = e, { interpolation: c, ...l } = i;
68
+ o && a.use(Fe), a.use(xe);
70
69
  try {
71
70
  let e = {
72
71
  ...l,
@@ -87,14 +86,14 @@ async function F(e) {
87
86
  }
88
87
  //#endregion
89
88
  //#region src/i18n/mergeResourceLanguages.ts
90
- var I = (e) => typeof e == "object" && !!e && !Array.isArray(e), Ke = (e) => I(e) ? e : {};
91
- function L(...e) {
89
+ var I = (e) => typeof e == "object" && !!e && !Array.isArray(e), Ge = (e) => I(e) ? e : {};
90
+ function Ke(...e) {
92
91
  let t = {};
93
92
  return e.forEach((e) => {
94
93
  Object.entries(e).forEach(([e, n]) => {
95
94
  let r = t[e];
96
95
  if (I(r) && I(n)) {
97
- t[e] = L(Ke(r), Ke(n));
96
+ t[e] = Ke(Ge(r), Ge(n));
98
97
  return;
99
98
  }
100
99
  t[e] = n;
@@ -104,912 +103,746 @@ function L(...e) {
104
103
  //#endregion
105
104
  //#region src/i18n/resources.ts
106
105
  var qe = {
107
- en: {
108
- backofficeReact: {
109
- actions: {
110
- form: {
111
- cancel: "Cancel",
112
- errors: {
113
- invalidJson: "{{label}} must be valid JSON.",
114
- invalidJsonArray: "{{label}} must be a valid JSON array.",
115
- invalidJsonObject: "{{label}} must be a valid JSON object.",
116
- invalidNumber: "{{label}} must be a valid number.",
117
- invalidPayload: "The submitted payload is invalid.",
118
- required: "{{label}} is required."
119
- }
120
- },
121
- view: "View"
106
+ en: { backofficeReact: {
107
+ actions: {
108
+ form: {
109
+ cancel: "Cancel",
110
+ errors: {
111
+ invalidJson: "{{label}} must be valid JSON.",
112
+ invalidJsonArray: "{{label}} must be a valid JSON array.",
113
+ invalidJsonObject: "{{label}} must be a valid JSON object.",
114
+ invalidNumber: "{{label}} must be a valid number.",
115
+ invalidPayload: "The submitted payload is invalid.",
116
+ required: "{{label}} is required."
117
+ }
122
118
  },
123
- auth: {
124
- acceptInvitation: { errors: {
119
+ view: "View"
120
+ },
121
+ auth: {
122
+ acceptInvitation: {
123
+ actions: { backToLogin: "Back to login" },
124
+ errors: {
125
125
  alreadyAccepted: "This invitation has already been accepted.",
126
- default: "Unable to accept this invitation. Please try again.",
126
+ default: "Unable to accept invitation.",
127
127
  emailMismatch: "This invitation was sent to a different email address.",
128
- expired: "This invitation has expired.",
129
- invalidToken: "This invitation token is invalid.",
128
+ expired: "Invitation link has expired.",
129
+ invalidToken: "Invitation link is invalid.",
130
+ missingToken: "Invitation link is missing or invalid.",
130
131
  passwordMismatch: "Password and confirmation do not match.",
131
132
  passwordPolicyViolation: "Your password does not meet policy requirements.",
132
- rateLimited: "Too many attempts. Please wait and try again."
133
- } },
134
- loginFlow: { errors: {
135
- accountLocked: "Your account is locked.",
136
- invalidCredentials: "Invalid email or password.",
137
- invalidEmail: "Please enter a valid email address.",
138
- rateLimited: "Too many attempts. Please wait and try again.",
139
- tryAgain: "Something went wrong. Please try again."
140
- } },
141
- mfa: { errors: {
142
- expired: "Your verification challenge has expired.",
143
- invalidChallenge: "Your verification challenge is invalid.",
144
- invalidCode: "The verification code is invalid.",
145
- tooManyAttempts: "Too many invalid codes. Please try again later.",
146
- verificationFailed: "Unable to verify the code. Please try again."
147
- } },
148
- passkey: { errors: {
149
- challengeExpired: "Your passkey challenge has expired.",
150
- failed: "Passkey authentication failed. Please try again.",
151
- invalidAssertion: "The passkey response is invalid.",
152
- invalidChallenge: "The passkey challenge is invalid.",
153
- invalidEmail: "Please enter a valid email address.",
154
- notAvailable: "Passkeys are not available on this device.",
155
- notFound: "No passkey found for this account."
156
- } },
157
- passwordResetComplete: { errors: {
158
- expired: "This reset link has expired.",
159
- invalid: "This reset link is invalid.",
160
- policyViolation: "Your new password does not meet policy requirements."
161
- } },
162
- passwordResetRequest: { errors: {
163
- invalidEmail: "Please enter a valid email address.",
164
- rateLimited: "Too many requests. Please wait and try again.",
165
- startFailed: "Unable to start password reset. Please try again."
166
- } },
167
- verifyEmail: { errors: {
168
- alreadyVerified: "This email address is already verified.",
169
- expired: "This verification link has expired.",
170
- invalid: "This verification link is invalid."
171
- } }
172
- },
173
- common: {
174
- actions: {
175
- change: "Change",
176
- clear: "Clear",
177
- close: "Close",
178
- copied: "Copied",
179
- copy: "Copy",
180
- pick: "Pick",
181
- retry: "Retry"
133
+ rateLimited: "Too many attempts. Please try again later."
182
134
  },
183
- boolean: {
184
- no: "No",
185
- yes: "Yes"
186
- },
187
- loading: "Loading...",
188
- notAvailable: "N/A"
189
- },
190
- dashboard: {
191
- actions: {
192
- openList: "Open list",
193
- openTool: "Open tool"
194
- },
195
- subtitle: "Overview of the Work context.",
196
- title: "Dashboard"
197
- },
198
- detail: { notFound: "Not found" },
199
- emptyState: {
200
- listEmpty: {
201
- description: "There are no records to display.",
202
- title: "No results"
203
- },
204
- listEmptyFiltered: {
205
- actions: { reset: "Reset filters" },
206
- description: "No results match the current filters."
207
- }
135
+ form: {
136
+ confirmLabel: "Confirm password",
137
+ confirmPlaceholder: "Confirm your password",
138
+ passwordLabel: "Password",
139
+ passwordPlaceholder: "Create a password",
140
+ submit: "Accept invitation"
141
+ },
142
+ mfaSubtitle: "Enter the verification code to continue.",
143
+ mfaTitle: "Verify your identity",
144
+ status: {
145
+ success: "Invitation accepted.",
146
+ workingButton: "Working..."
147
+ },
148
+ subtitle: "Create your account to join.",
149
+ title: "Accept invitation"
208
150
  },
209
- filters: {
210
- actions: { filterBy: "Filter by {{label}}" },
211
- all: "All {{label}}",
212
- allFilters: "All filters",
213
- allFiltersWithCount_one: "All filters ({{count}})",
214
- allFiltersWithCount_other: "All filters ({{count}})",
215
- boolean: {
216
- no: "No",
217
- yes: "Yes"
218
- },
219
- placeholders: {
220
- search: "Search {{label}}",
221
- unresolved: "Unresolved ID"
222
- },
223
- sections: { default: "Filters" }
151
+ emailCapture: {
152
+ continue: "Continue",
153
+ description: "Enter your work email to continue.",
154
+ emailLabel: "Work email",
155
+ emailPlaceholder: "you@company.com",
156
+ forgotPassword: "Forgot your password?"
224
157
  },
225
- flags: {
226
- agentManaged: {
227
- agentManaged: "Agent managed",
228
- userManaged: "User managed"
229
- },
230
- capability: {
231
- allowed: "Allowed",
232
- denied: "Denied"
233
- },
234
- default: {
235
- default: "Default",
236
- notDefault: "Not default"
237
- },
238
- deployedProduction: {
239
- deployed: "Deployed",
240
- notDeployed: "Not deployed"
241
- },
242
- enabled: {
243
- disabled: "Disabled",
244
- enabled: "Enabled"
245
- },
246
- encrypted: {
247
- encrypted: "Encrypted",
248
- notEncrypted: "Not encrypted"
158
+ loginFlow: {
159
+ errors: {
160
+ accountLocked: "Too many attempts. Try again later.",
161
+ emailRequired: "Enter an email address to continue.",
162
+ invalidCredentials: "Email or password is incorrect.",
163
+ invalidEmail: "Enter a valid email address.",
164
+ passkeyUnavailable: "Passkeys are not available.",
165
+ rateLimited: "Too many attempts. Please try again later.",
166
+ tryAgain: "Something went wrong. Please try again."
249
167
  },
250
- failure: {
251
- failed: "Failed",
252
- ok: "OK"
168
+ methods: { title: "Choose a sign-in method" },
169
+ passkey: {
170
+ description: "Use the passkey associated with {{email}}.",
171
+ title: "Use a passkey"
253
172
  },
254
- forced: {
255
- forced: "Forced",
256
- normal: "Normal"
173
+ subtitle: {
174
+ default: "Choose a sign-in method to continue.",
175
+ mfa: "Enter the verification code to continue."
257
176
  },
258
- locked: {
259
- locked: "Locked",
260
- unlocked: "Unlocked"
177
+ title: {
178
+ default: "Sign in",
179
+ mfa: "Two-factor authentication"
261
180
  }
262
181
  },
263
- format: {
264
- currency: "{{value, currency}}",
265
- number: "{{value, number}}",
266
- percent: "{{value, percent}}"
182
+ methodChooser: {
183
+ actions: { back: "Back" },
184
+ locked: "Too many attempts. Try again later.",
185
+ lockedWithTime: "Too many attempts. Try again at {{time}}.",
186
+ methods: {
187
+ other: "{{method}}",
188
+ passkey: "Passkey",
189
+ password: "Password"
190
+ },
191
+ prompt: "Choose how to sign in for <strong>{{email}}</strong>."
267
192
  },
268
- list: {
193
+ mfa: {
269
194
  actions: {
270
- refresh: "Refresh",
271
- retry: "Retry"
195
+ back: "Back",
196
+ submit: "Verify"
272
197
  },
273
198
  errors: {
274
- tableFailed: "The table failed to load.",
275
- title: "Table error"
276
- },
277
- loadMore: {
278
- end: "End of results",
279
- loading: "Loading more…",
280
- more: "More results available"
281
- },
282
- showing: "Showing {{shown, number}} of {{total, number}}"
283
- },
284
- picker: {
285
- errors: { loadFailed: "Failed to load." },
286
- searchPlaceholder: { default: "Search..." },
287
- searchRequired: "Enter an ID to search.",
288
- title: "Select an ID",
289
- unavailable: "Picker not available for {{entity}}."
290
- },
291
- relations: {
292
- labelWithCount_one: "{{label}} ({{count}})",
293
- labelWithCount_other: "{{label}} ({{count}})",
294
- menu: { label: "Relations" },
295
- viewList: "View list"
296
- },
297
- sidebar: {
298
- actions: {
299
- pin: "Pin",
300
- reorder: "Reorder",
301
- unpin: "Unpin"
199
+ expired: "Verification session expired. Please try again.",
200
+ invalidChallenge: "Verification session is invalid. Restart the login.",
201
+ invalidCode: "Invalid code. Try again.",
202
+ shortCode: "Enter the 6-digit code.",
203
+ tooManyAttempts: "Too many attempts. Try again later.",
204
+ verificationFailed: "Verification failed. Try again."
302
205
  },
303
- items: { dashboard: "Dashboard" },
304
- profile: {
305
- actions: { signOut: "Sign out" },
306
- menuAriaLabel: "Open profile menu",
307
- title: "Profile",
308
- unknownUser: "Unknown user"
206
+ form: {
207
+ label: "Verification code",
208
+ placeholder: "123456"
309
209
  },
310
- search: { placeholder: "Search…" },
311
- sections: { pinned: "Pinned" }
210
+ helper: {
211
+ default: "Enter the 6-digit code from your authenticator.",
212
+ withEmail: "Enter the 6-digit code sent to {{email}}."
213
+ }
312
214
  },
313
- tools: {
314
- docs: {
315
- inputExampleTitle: "Example JSON",
316
- inputTypeTitle: "Input type (GraphQL)"
215
+ oidc: { buttons: {
216
+ apple: "Continue with Apple",
217
+ generic: "Continue with single sign-on",
218
+ google: "Continue with Google"
219
+ } },
220
+ passkey: {
221
+ actions: {
222
+ showMethods: "Use another method",
223
+ submit: "Continue with passkey",
224
+ submitting: "Waiting for passkey..."
317
225
  },
318
226
  errors: {
319
- description: "We couldn't run this tool.",
320
- details: "Error details",
321
- label: "Error",
322
- missingScope: "Missing initiative scope.",
323
- title: "Tool error",
324
- unknown: "Unknown error"
227
+ challengeExpired: "Passkey request expired. Try again.",
228
+ emailRequired: "Enter your email to continue.",
229
+ failed: "Passkey sign-in failed.",
230
+ invalidAssertion: "Passkey response is invalid. Try again.",
231
+ invalidChallenge: "Passkey request is invalid. Try again.",
232
+ invalidEmail: "Enter a valid email address.",
233
+ locked: "Too many attempts. Try again later.",
234
+ lockedWithTime: "Too many attempts. Try again at {{time}}.",
235
+ notAvailable: "Passkeys are not available on this device.",
236
+ notFound: "No passkey found for this account."
325
237
  },
326
- forms: {
327
- actions: {
328
- insertExample: "Insert example",
329
- run: "Run"
330
- },
331
- inputJsonLabel: "Input JSON"
238
+ form: {
239
+ emailLabel: "Email",
240
+ emailPlaceholder: "you@company.com"
332
241
  },
333
- meta: { idLabel: "Tool" },
334
- output: "Output",
335
- project: {
336
- actions: { pick: "Pick" },
337
- description: "Select the project to analyze.",
338
- empty: "Choose a project to run tools.",
339
- pickerTitle: "Select a project",
340
- placeholder: "Project ID",
341
- title: "Project"
242
+ helper: "Use a passkey instead of your password."
243
+ },
244
+ passwordLogin: {
245
+ forgotPassword: "Forgot your password?",
246
+ title: "Sign in"
247
+ },
248
+ passwordResetComplete: {
249
+ errors: {
250
+ expired: "This reset link has expired.",
251
+ invalid: "Reset link is invalid or expired.",
252
+ minLength: "Password must be at least {{minLength}} characters.",
253
+ mismatch: "Passwords do not match.",
254
+ missingToken: "Reset link is missing or invalid.",
255
+ policyViolation: "Your new password does not meet policy requirements."
342
256
  },
343
- scope: {
344
- actions: { pick: "Pick" },
345
- description: "Select the initiative scope for tools.",
346
- empty: "Choose an initiative to run tools.",
347
- pickerTitle: "Select an initiative",
348
- placeholder: "Initiative ID",
349
- title: "Scope"
350
- }
351
- }
352
- },
353
- shared: {
354
- auth: {
355
- acceptInvitation: {
356
- actions: { backToLogin: "Back to login" },
357
- errors: {
358
- alreadyAccepted: "This invitation has already been accepted.",
359
- default: "Unable to accept invitation.",
360
- emailMismatch: "This invitation was sent to a different email address.",
361
- expired: "Invitation link has expired.",
362
- invalidToken: "Invitation link is invalid.",
363
- missingToken: "Invitation link is missing or invalid.",
364
- passwordMismatch: "Password and confirmation do not match.",
365
- passwordPolicyViolation: "Your password does not meet policy requirements.",
366
- rateLimited: "Too many attempts. Please try again later."
367
- },
368
- form: {
369
- confirmLabel: "Confirm password",
370
- confirmPlaceholder: "Confirm your password",
371
- passwordLabel: "Password",
372
- passwordPlaceholder: "Create a password",
373
- submit: "Accept invitation"
374
- },
375
- mfaSubtitle: "Enter the verification code to continue.",
376
- mfaTitle: "Verify your identity",
377
- status: {
378
- success: "Invitation accepted.",
379
- workingButton: "Working..."
380
- },
381
- subtitle: "Create your account to join.",
382
- title: "Accept invitation"
257
+ form: {
258
+ confirmLabel: "Confirm password",
259
+ confirmPlaceholder: "Re-enter your password",
260
+ description: "Enter a new password for your account.",
261
+ passwordLabel: "Password",
262
+ passwordPlaceholder: "Enter a new password",
263
+ submit: "Update password",
264
+ title: "New password"
265
+ },
266
+ subtitle: "Choose a strong password to secure your account.",
267
+ success: {
268
+ action: "Back to login",
269
+ description: "Your password has been changed.",
270
+ helper: "You can now sign in with your new password.",
271
+ title: "Password updated"
272
+ },
273
+ title: "Set a new password"
274
+ },
275
+ passwordResetRequest: {
276
+ errors: {
277
+ emailRequired: "Enter an email address.",
278
+ invalidEmail: "Please enter a valid email address.",
279
+ rateLimited: "Too many requests. Please wait and try again.",
280
+ startFailed: "Unable to start password reset."
383
281
  },
384
- emailCapture: {
385
- continue: "Continue",
386
- description: "Enter your work email to continue.",
387
- emailLabel: "Work email",
282
+ form: {
283
+ description: "Enter the email for your account.",
284
+ emailLabel: "Email",
388
285
  emailPlaceholder: "you@company.com",
389
- forgotPassword: "Forgot your password?"
390
- },
391
- loginFlow: {
392
- errors: {
393
- accountLocked: "Too many attempts. Try again later.",
394
- emailRequired: "Enter an email address to continue.",
395
- invalidCredentials: "Email or password is incorrect.",
396
- invalidEmail: "Enter a valid email address.",
397
- passkeyUnavailable: "Passkeys are not available.",
398
- rateLimited: "Too many attempts. Please try again later.",
399
- tryAgain: "Something went wrong. Please try again."
400
- },
401
- methods: { title: "Choose a sign-in method" },
402
- passkey: {
403
- description: "Use the passkey associated with {{email}}.",
404
- title: "Use a passkey"
405
- },
406
- subtitle: {
407
- default: "Choose a sign-in method to continue.",
408
- mfa: "Enter the verification code to continue."
409
- },
410
- title: {
411
- default: "Sign in",
412
- mfa: "Two-factor authentication"
413
- }
414
- },
415
- methodChooser: {
416
- actions: { back: "Back" },
417
- locked: "Too many attempts. Try again later.",
418
- lockedWithTime: "Too many attempts. Try again at {{time}}.",
419
- methods: {
420
- other: "{{method}}",
421
- passkey: "Passkey",
422
- password: "Password"
423
- },
424
- prompt: "Choose how to sign in for <strong>{{email}}</strong>."
425
- },
426
- mfa: {
427
- actions: {
428
- back: "Back",
429
- submit: "Verify"
430
- },
431
- errors: {
432
- expired: "Verification session expired. Please try again.",
433
- invalidChallenge: "Verification session is invalid. Restart the login.",
434
- invalidCode: "Invalid code. Try again.",
435
- shortCode: "Enter the 6-digit code.",
436
- tooManyAttempts: "Too many attempts. Try again later.",
437
- verificationFailed: "Verification failed. Try again."
438
- },
439
- form: {
440
- label: "Verification code",
441
- placeholder: "123456"
442
- },
443
- helper: {
444
- default: "Enter the 6-digit code from your authenticator.",
445
- withEmail: "Enter the 6-digit code sent to {{email}}."
446
- }
286
+ submit: "Send reset link"
447
287
  },
448
- oidc: { buttons: {
449
- apple: "Continue with Apple",
450
- generic: "Continue with single sign-on",
451
- google: "Continue with Google"
452
- } },
453
- passkey: {
454
- actions: {
455
- showMethods: "Use another method",
456
- submit: "Continue with passkey",
457
- submitting: "Waiting for passkey..."
458
- },
459
- errors: {
460
- challengeExpired: "Passkey request expired. Try again.",
461
- emailRequired: "Enter your email to continue.",
462
- failed: "Passkey sign-in failed.",
463
- invalidAssertion: "Passkey response is invalid. Try again.",
464
- invalidChallenge: "Passkey request is invalid. Try again.",
465
- invalidEmail: "Enter a valid email address.",
466
- locked: "Too many attempts. Try again later.",
467
- lockedWithTime: "Too many attempts. Try again at {{time}}.",
468
- notAvailable: "Passkeys are not available on this device.",
469
- notFound: "No passkey found for this account."
470
- },
471
- form: {
472
- emailLabel: "Email",
473
- emailPlaceholder: "you@company.com"
474
- },
475
- helper: "Use a passkey instead of your password."
288
+ sent: {
289
+ action: "Send another email",
290
+ description: "We sent a reset link to {{email}}.",
291
+ helper: "If you don't see it, check spam or try again.",
292
+ title: "Check your email"
476
293
  },
477
- passwordLogin: {
478
- forgotPassword: "Forgot your password?",
479
- title: "Sign in"
294
+ title: "Reset your password"
295
+ },
296
+ verifyEmail: {
297
+ actions: {
298
+ continue: "Continue",
299
+ return: "Back to login"
480
300
  },
481
- passwordResetComplete: {
482
- errors: {
483
- invalid: "Reset link is invalid or expired.",
484
- minLength: "Password must be at least {{minLength}} characters.",
485
- mismatch: "Passwords do not match.",
486
- missingToken: "Reset link is missing or invalid."
487
- },
488
- form: {
489
- confirmLabel: "Confirm password",
490
- confirmPlaceholder: "Re-enter your password",
491
- description: "Enter a new password for your account.",
492
- passwordLabel: "Password",
493
- passwordPlaceholder: "Enter a new password",
494
- submit: "Update password",
495
- title: "New password"
496
- },
497
- subtitle: "Choose a strong password to secure your account.",
498
- success: {
499
- action: "Back to login",
500
- description: "Your password has been changed.",
501
- helper: "You can now sign in with your new password.",
502
- title: "Password updated"
503
- },
504
- title: "Set a new password"
301
+ errors: {
302
+ alreadyVerified: "This email address is already verified.",
303
+ expired: "This verification link has expired.",
304
+ invalid: "Verification link is invalid or expired.",
305
+ missingToken: "Verification link is missing or invalid."
505
306
  },
506
- passwordResetRequest: {
507
- errors: {
508
- emailRequired: "Enter an email address.",
509
- startFailed: "Unable to start password reset."
510
- },
511
- form: {
512
- description: "Enter the email for your account.",
513
- emailLabel: "Email",
514
- emailPlaceholder: "you@company.com",
515
- submit: "Send reset link"
516
- },
517
- sent: {
518
- action: "Send another email",
519
- description: "We sent a reset link to {{email}}.",
520
- helper: "If you don't see it, check spam or try again.",
521
- title: "Check your email"
522
- },
523
- title: "Reset your password"
307
+ status: {
308
+ success: "Email verified. You can continue.",
309
+ verifying: "Verifying...",
310
+ verifyingButton: "Verifying"
524
311
  },
525
- verifyEmail: {
526
- actions: {
527
- continue: "Continue",
528
- return: "Back to login"
529
- },
530
- errors: {
531
- invalid: "Verification link is invalid or expired.",
532
- missingToken: "Verification link is missing or invalid."
533
- },
534
- status: {
535
- success: "Email verified. You can continue.",
536
- verifying: "Verifying...",
537
- verifyingButton: "Verifying"
538
- },
539
- subtitle: "Confirm your email address to continue.",
540
- title: "Verify your email"
541
- }
312
+ subtitle: "Confirm your email address to continue.",
313
+ title: "Verify your email"
314
+ }
315
+ },
316
+ common: {
317
+ actions: {
318
+ change: "Change",
319
+ clear: "Clear",
320
+ close: "Close",
321
+ copied: "Copied",
322
+ copy: "Copy",
323
+ pick: "Pick",
324
+ retry: "Retry"
542
325
  },
543
- review: { status: {
544
- approved: "Approved",
545
- changesRequested: "Changes requested",
546
- pending: "Pending",
547
- unknown: "Unknown"
548
- } }
549
- }
550
- },
551
- fr: {
552
- backofficeReact: {
326
+ boolean: {
327
+ no: "No",
328
+ yes: "Yes"
329
+ },
330
+ loading: "Loading...",
331
+ notAvailable: "N/A"
332
+ },
333
+ dashboard: {
553
334
  actions: {
554
- form: {
555
- cancel: "Annuler",
556
- errors: {
557
- invalidJson: "{{label}} doit être un JSON valide.",
558
- invalidJsonArray: "{{label}} doit être un tableau JSON valide.",
559
- invalidJsonObject: "{{label}} doit être un objet JSON valide.",
560
- invalidNumber: "{{label}} doit être un nombre valide.",
561
- invalidPayload: "La charge utile soumise est invalide.",
562
- required: "{{label}} est requis."
563
- }
564
- },
565
- view: "Voir"
335
+ openList: "Open list",
336
+ openTool: "Open tool"
337
+ },
338
+ subtitle: "Overview of the Work context.",
339
+ title: "Dashboard"
340
+ },
341
+ detail: { notFound: "Not found" },
342
+ emptyState: {
343
+ listEmpty: {
344
+ description: "There are no records to display.",
345
+ title: "No results"
346
+ },
347
+ listEmptyFiltered: {
348
+ actions: { reset: "Reset filters" },
349
+ description: "No results match the current filters."
350
+ }
351
+ },
352
+ filters: {
353
+ actions: { filterBy: "Filter by {{label}}" },
354
+ all: "All {{label}}",
355
+ allFilters: "All filters",
356
+ allFiltersWithCount_one: "All filters ({{count}})",
357
+ allFiltersWithCount_other: "All filters ({{count}})",
358
+ boolean: {
359
+ no: "No",
360
+ yes: "Yes"
361
+ },
362
+ placeholders: {
363
+ search: "Search {{label}}",
364
+ unresolved: "Unresolved ID"
365
+ },
366
+ sections: { default: "Filters" }
367
+ },
368
+ flags: {
369
+ agentManaged: {
370
+ agentManaged: "Agent managed",
371
+ userManaged: "User managed"
372
+ },
373
+ capability: {
374
+ allowed: "Allowed",
375
+ denied: "Denied"
376
+ },
377
+ default: {
378
+ default: "Default",
379
+ notDefault: "Not default"
380
+ },
381
+ deployedProduction: {
382
+ deployed: "Deployed",
383
+ notDeployed: "Not deployed"
384
+ },
385
+ enabled: {
386
+ disabled: "Disabled",
387
+ enabled: "Enabled"
388
+ },
389
+ encrypted: {
390
+ encrypted: "Encrypted",
391
+ notEncrypted: "Not encrypted"
392
+ },
393
+ failure: {
394
+ failed: "Failed",
395
+ ok: "OK"
396
+ },
397
+ forced: {
398
+ forced: "Forced",
399
+ normal: "Normal"
400
+ },
401
+ locked: {
402
+ locked: "Locked",
403
+ unlocked: "Unlocked"
404
+ }
405
+ },
406
+ format: {
407
+ currency: "{{value, currency}}",
408
+ number: "{{value, number}}",
409
+ percent: "{{value, percent}}"
410
+ },
411
+ history: "",
412
+ list: {
413
+ actions: {
414
+ refresh: "Refresh",
415
+ retry: "Retry"
416
+ },
417
+ errors: {
418
+ tableFailed: "The table failed to load.",
419
+ title: "Table error"
420
+ },
421
+ loadMore: {
422
+ end: "End of results",
423
+ loading: "Loading more…",
424
+ more: "More results available"
425
+ },
426
+ showing: "Showing {{shown, number}} of {{total, number}}",
427
+ title: ""
428
+ },
429
+ overview: "",
430
+ picker: {
431
+ errors: { loadFailed: "Failed to load." },
432
+ searchPlaceholder: { default: "Search..." },
433
+ searchRequired: "Enter an ID to search.",
434
+ title: "Select an ID",
435
+ unavailable: "Picker not available for {{entity}}."
436
+ },
437
+ relations: {
438
+ labelWithCount_one: "{{label}} ({{count}})",
439
+ labelWithCount_other: "{{label}} ({{count}})",
440
+ menu: { label: "Relations" },
441
+ viewList: "View list"
442
+ },
443
+ review: { status: {
444
+ approved: "Approved",
445
+ changesRequested: "Changes requested",
446
+ pending: "Pending",
447
+ unknown: "Unknown"
448
+ } },
449
+ sidebar: {
450
+ actions: {
451
+ pin: "Pin",
452
+ reorder: "Reorder",
453
+ unpin: "Unpin"
454
+ },
455
+ items: { dashboard: "Dashboard" },
456
+ profile: {
457
+ actions: { signOut: "Sign out" },
458
+ menuAriaLabel: "Open profile menu",
459
+ title: "Profile",
460
+ unknownUser: "Unknown user"
461
+ },
462
+ search: { placeholder: "Search…" },
463
+ sections: { pinned: "Pinned" }
464
+ },
465
+ tools: { output: "Output" }
466
+ } },
467
+ fr: { backofficeReact: {
468
+ actions: {
469
+ form: {
470
+ cancel: "Annuler",
471
+ errors: {
472
+ invalidJson: "{{label}} doit être un JSON valide.",
473
+ invalidJsonArray: "{{label}} doit être un tableau JSON valide.",
474
+ invalidJsonObject: "{{label}} doit être un objet JSON valide.",
475
+ invalidNumber: "{{label}} doit être un nombre valide.",
476
+ invalidPayload: "La charge utile soumise est invalide.",
477
+ required: "{{label}} est requis."
478
+ }
566
479
  },
567
- auth: {
568
- acceptInvitation: { errors: {
480
+ view: "Voir"
481
+ },
482
+ auth: {
483
+ acceptInvitation: {
484
+ actions: { backToLogin: "Retour à la connexion" },
485
+ errors: {
569
486
  alreadyAccepted: "Cette invitation a déjà été acceptée.",
570
- default: "Impossible d'accepter cette invitation. Veuillez réessayer.",
487
+ default: "Impossible d'accepter l'invitation.",
571
488
  emailMismatch: "Cette invitation a été envoyée à une autre adresse email.",
572
- expired: "Cette invitation a expiré.",
573
- invalidToken: "Ce jeton d'invitation est invalide.",
489
+ expired: "Le lien d'invitation a expiré.",
490
+ invalidToken: "Le lien d'invitation est invalide.",
491
+ missingToken: "Le lien d'invitation est manquant ou invalide.",
574
492
  passwordMismatch: "Le mot de passe et sa confirmation ne correspondent pas.",
575
493
  passwordPolicyViolation: "Votre mot de passe ne respecte pas la politique de sécurité.",
576
- rateLimited: "Trop de tentatives. Veuillez patienter puis réessayer."
577
- } },
578
- loginFlow: { errors: {
579
- accountLocked: "Votre compte est verrouillé.",
580
- invalidCredentials: "Email ou mot de passe invalide.",
581
- invalidEmail: "Veuillez saisir une adresse email valide.",
582
- rateLimited: "Trop de tentatives. Veuillez patienter puis réessayer.",
583
- tryAgain: "Une erreur est survenue. Veuillez réessayer."
584
- } },
585
- mfa: { errors: {
586
- expired: "Votre challenge de vérification a expiré.",
587
- invalidChallenge: "Votre challenge de vérification est invalide.",
588
- invalidCode: "Le code de vérification est invalide.",
589
- tooManyAttempts: "Trop de codes invalides. Veuillez réessayer plus tard.",
590
- verificationFailed: "Impossible de vérifier le code. Veuillez réessayer."
591
- } },
592
- passkey: { errors: {
593
- challengeExpired: "Votre challenge passkey a expiré.",
594
- failed: "L'authentification passkey a échoué. Veuillez réessayer.",
595
- invalidAssertion: "La réponse passkey est invalide.",
596
- invalidChallenge: "Le challenge passkey est invalide.",
597
- invalidEmail: "Veuillez saisir une adresse email valide.",
598
- notAvailable: "Les passkeys ne sont pas disponibles sur cet appareil.",
599
- notFound: "Aucune passkey trouvée pour ce compte."
600
- } },
601
- passwordResetComplete: { errors: {
602
- expired: "Ce lien de réinitialisation a expiré.",
603
- invalid: "Ce lien de réinitialisation est invalide.",
604
- policyViolation: "Votre nouveau mot de passe ne respecte pas la politique de sécurité."
605
- } },
606
- passwordResetRequest: { errors: {
607
- invalidEmail: "Veuillez saisir une adresse email valide.",
608
- rateLimited: "Trop de demandes. Veuillez patienter puis réessayer.",
609
- startFailed: "Impossible de démarrer la réinitialisation du mot de passe. Veuillez réessayer."
610
- } },
611
- verifyEmail: { errors: {
612
- alreadyVerified: "Cette adresse email est déjà vérifiée.",
613
- expired: "Ce lien de vérification a expiré.",
614
- invalid: "Ce lien de vérification est invalide."
615
- } }
616
- },
617
- common: {
618
- actions: {
619
- change: "Modifier",
620
- clear: "Effacer",
621
- close: "Fermer",
622
- copied: "Copié",
623
- copy: "Copier",
624
- pick: "Choisir",
625
- retry: "Réessayer"
626
- },
627
- boolean: {
628
- no: "Non",
629
- yes: "Oui"
630
- },
631
- loading: "Chargement...",
632
- notAvailable: "N/D"
633
- },
634
- dashboard: {
635
- actions: {
636
- openList: "Ouvrir la liste",
637
- openTool: "Ouvrir l'outil"
638
- },
639
- subtitle: "Vue d'ensemble du contexte Work.",
640
- title: "Tableau de bord"
641
- },
642
- detail: { notFound: "Introuvable" },
643
- emptyState: {
644
- listEmpty: {
645
- description: "Aucun enregistrement à afficher.",
646
- title: "Aucun résultat"
494
+ rateLimited: "Trop de tentatives. Veuillez réessayer plus tard."
647
495
  },
648
- listEmptyFiltered: {
649
- actions: { reset: "Réinitialiser les filtres" },
650
- description: "Aucun résultat ne correspond aux filtres actuels."
651
- }
496
+ form: {
497
+ confirmLabel: "Confirmer le mot de passe",
498
+ confirmPlaceholder: "Confirmez votre mot de passe",
499
+ passwordLabel: "Mot de passe",
500
+ passwordPlaceholder: "Créez un mot de passe",
501
+ submit: "Accepter l'invitation"
502
+ },
503
+ mfaSubtitle: "Entrez le code de vérification pour continuer.",
504
+ mfaTitle: "Vérifiez votre identité",
505
+ status: {
506
+ success: "Invitation acceptée.",
507
+ workingButton: "Traitement..."
508
+ },
509
+ subtitle: "Créez votre compte pour rejoindre.",
510
+ title: "Accepter l'invitation"
652
511
  },
653
- filters: {
654
- actions: { filterBy: "Filtrer par {{label}}" },
655
- all: "Tous {{label}}",
656
- allFilters: "Tous les filtres",
657
- allFiltersWithCount_one: "Tous les filtres ({{count}})",
658
- allFiltersWithCount_many: "Tous les filtres ({{count}})",
659
- allFiltersWithCount_other: "Tous les filtres ({{count}})",
660
- boolean: {
661
- no: "Non",
662
- yes: "Oui"
663
- },
664
- placeholders: {
665
- search: "Rechercher {{label}}",
666
- unresolved: "ID introuvable"
667
- },
668
- sections: { default: "Filtres" }
512
+ emailCapture: {
513
+ continue: "Continuer",
514
+ description: "Entrez votre email professionnel pour continuer.",
515
+ emailLabel: "Email professionnel",
516
+ emailPlaceholder: "vous@entreprise.com",
517
+ forgotPassword: "Mot de passe oublié ?"
669
518
  },
670
- flags: {
671
- agentManaged: {
672
- agentManaged: "Géré par un agent",
673
- userManaged: "Géré par un utilisateur"
674
- },
675
- capability: {
676
- allowed: "Autorisé",
677
- denied: "Refusé"
678
- },
679
- default: {
680
- default: "Par défaut",
681
- notDefault: "Non par défaut"
682
- },
683
- deployedProduction: {
684
- deployed: "Déployé",
685
- notDeployed: "Non déployé"
686
- },
687
- enabled: {
688
- disabled: "Désactivé",
689
- enabled: "Activé"
690
- },
691
- encrypted: {
692
- encrypted: "Chiffré",
693
- notEncrypted: "Non chiffré"
519
+ loginFlow: {
520
+ errors: {
521
+ accountLocked: "Trop de tentatives. Veuillez réessayer plus tard.",
522
+ emailRequired: "Entrez une adresse email pour continuer.",
523
+ invalidCredentials: "Email ou mot de passe incorrect.",
524
+ invalidEmail: "Entrez une adresse email valide.",
525
+ passkeyUnavailable: "Les passkeys ne sont pas disponibles.",
526
+ rateLimited: "Trop de tentatives. Veuillez réessayer plus tard.",
527
+ tryAgain: "Une erreur est survenue. Veuillez réessayer."
694
528
  },
695
- failure: {
696
- failed: "Échoué",
697
- ok: "OK"
529
+ methods: { title: "Choisissez une méthode de connexion" },
530
+ passkey: {
531
+ description: "Utilisez la passkey associée à {{email}}.",
532
+ title: "Utiliser une passkey"
698
533
  },
699
- forced: {
700
- forced: "Forcé",
701
- normal: "Normal"
534
+ subtitle: {
535
+ default: "Choisissez une méthode de connexion pour continuer.",
536
+ mfa: "Entrez le code de vérification pour continuer."
702
537
  },
703
- locked: {
704
- locked: "Verrouillé",
705
- unlocked: "Déverrouillé"
538
+ title: {
539
+ default: "Se connecter",
540
+ mfa: "Authentification à deux facteurs"
706
541
  }
707
542
  },
708
- format: {
709
- currency: "{{value, currency}}",
710
- number: "{{value, number}}",
711
- percent: "{{value, percent}}"
543
+ methodChooser: {
544
+ actions: { back: "Retour" },
545
+ locked: "Trop de tentatives. Veuillez réessayer plus tard.",
546
+ lockedWithTime: "Trop de tentatives. Veuillez réessayer à {{time}}.",
547
+ methods: {
548
+ other: "{{method}}",
549
+ passkey: "Passkey",
550
+ password: "Mot de passe"
551
+ },
552
+ prompt: "Choisissez comment vous connecter pour <strong>{{email}}</strong>."
712
553
  },
713
- list: {
554
+ mfa: {
714
555
  actions: {
715
- refresh: "Actualiser",
716
- retry: "Réessayer"
556
+ back: "Retour",
557
+ submit: "Vérifier"
717
558
  },
718
559
  errors: {
719
- tableFailed: "Le tableau n'a pas pu se charger.",
720
- title: "Erreur du tableau"
560
+ expired: "La session de vérification a expiré. Réessayez.",
561
+ invalidChallenge: "La session de vérification est invalide. Reprenez la connexion.",
562
+ invalidCode: "Code invalide. Réessayez.",
563
+ shortCode: "Entrez le code à 6 chiffres.",
564
+ tooManyAttempts: "Trop de tentatives. Veuillez réessayer plus tard.",
565
+ verificationFailed: "La vérification a échoué. Réessayez."
721
566
  },
722
- loadMore: {
723
- end: "Fin des résultats",
724
- loading: "Chargement…",
725
- more: "Plus de résultats disponibles"
726
- },
727
- showing: "Affichage de {{shown, number}} sur {{total, number}}"
728
- },
729
- picker: {
730
- errors: { loadFailed: "Échec du chargement." },
731
- searchPlaceholder: { default: "Rechercher..." },
732
- searchRequired: "Saisissez un ID pour rechercher.",
733
- title: "Sélectionner un ID",
734
- unavailable: "Sélecteur indisponible pour {{entity}}."
735
- },
736
- relations: {
737
- labelWithCount_one: "{{label}} ({{count}})",
738
- labelWithCount_many: "{{label}} ({{count}})",
739
- labelWithCount_other: "{{label}} ({{count}})",
740
- menu: { label: "Relations" },
741
- viewList: "Voir la liste"
742
- },
743
- sidebar: {
744
- actions: {
745
- pin: "Épingler",
746
- reorder: "Réordonner",
747
- unpin: "Désépingler"
748
- },
749
- items: { dashboard: "Tableau de bord" },
750
- profile: {
751
- actions: { signOut: "Se déconnecter" },
752
- menuAriaLabel: "Ouvrir le menu profil",
753
- title: "Profil",
754
- unknownUser: "Utilisateur inconnu"
567
+ form: {
568
+ label: "Code de vérification",
569
+ placeholder: "123456"
755
570
  },
756
- search: { placeholder: "Rechercher..." },
757
- sections: { pinned: "Épinglés" }
571
+ helper: {
572
+ default: "Entrez le code à 6 chiffres de votre authentificateur.",
573
+ withEmail: "Entrez le code à 6 chiffres envoyé à {{email}}."
574
+ }
758
575
  },
759
- tools: {
760
- docs: {
761
- inputExampleTitle: "Exemple JSON",
762
- inputTypeTitle: "Type d'entrée (GraphQL)"
576
+ oidc: { buttons: {
577
+ apple: "Continuer avec Apple",
578
+ generic: "Continuer avec un SSO",
579
+ google: "Continuer avec Google"
580
+ } },
581
+ passkey: {
582
+ actions: {
583
+ showMethods: "Utiliser une autre méthode",
584
+ submit: "Continuer avec la passkey",
585
+ submitting: "En attente de la passkey..."
763
586
  },
764
587
  errors: {
765
- description: "Impossible d'exécuter cet outil.",
766
- details: "Détails de l'erreur",
767
- label: "Erreur",
768
- missingScope: "Portée de l'initiative manquante.",
769
- title: "Erreur d'outil",
770
- unknown: "Erreur inconnue"
588
+ challengeExpired: "La demande de passkey a expiré. Réessayez.",
589
+ emailRequired: "Entrez votre email pour continuer.",
590
+ failed: "Échec de la connexion par passkey.",
591
+ invalidAssertion: "La réponse de passkey est invalide. Réessayez.",
592
+ invalidChallenge: "La demande de passkey est invalide. Réessayez.",
593
+ invalidEmail: "Entrez une adresse email valide.",
594
+ locked: "Trop de tentatives. Veuillez réessayer plus tard.",
595
+ lockedWithTime: "Trop de tentatives. Veuillez réessayer à {{time}}.",
596
+ notAvailable: "Les passkeys ne sont pas disponibles sur cet appareil.",
597
+ notFound: "Aucune passkey n'est associée à ce compte."
771
598
  },
772
- forms: {
773
- actions: {
774
- insertExample: "Insérer l'exemple",
775
- run: "Exécuter"
776
- },
777
- inputJsonLabel: "JSON d'entrée"
599
+ form: {
600
+ emailLabel: "Email",
601
+ emailPlaceholder: "vous@entreprise.com"
778
602
  },
779
- meta: { idLabel: "Outil" },
780
- output: "Résultat",
781
- project: {
782
- actions: { pick: "Choisir" },
783
- description: "Sélectionner le projet à analyser.",
784
- empty: "Choisissez un projet pour exécuter les outils.",
785
- pickerTitle: "Sélectionner un projet",
786
- placeholder: "ID du projet",
787
- title: "Projet"
603
+ helper: "Utilisez une passkey à la place de votre mot de passe."
604
+ },
605
+ passwordLogin: {
606
+ forgotPassword: "Mot de passe oublié ?",
607
+ title: "Se connecter"
608
+ },
609
+ passwordResetComplete: {
610
+ errors: {
611
+ expired: "Ce lien de réinitialisation a expiré.",
612
+ invalid: "Le lien de réinitialisation est invalide ou expiré.",
613
+ minLength: "Le mot de passe doit contenir au moins {{minLength}} caractères.",
614
+ mismatch: "Les mots de passe ne correspondent pas.",
615
+ missingToken: "Le lien de réinitialisation est manquant ou invalide.",
616
+ policyViolation: "Votre nouveau mot de passe ne respecte pas la politique de sécurité."
788
617
  },
789
- scope: {
790
- actions: { pick: "Choisir" },
791
- description: "Sélectionner l'initiative pour exécuter les outils.",
792
- empty: "Choisissez une initiative pour exécuter les outils.",
793
- pickerTitle: "Sélectionner une initiative",
794
- placeholder: "ID de l'initiative",
795
- title: "Portée"
796
- }
797
- }
798
- },
799
- shared: {
800
- auth: {
801
- acceptInvitation: {
802
- actions: { backToLogin: "Retour à la connexion" },
803
- errors: {
804
- alreadyAccepted: "Cette invitation a déjà été acceptée.",
805
- default: "Impossible d'accepter l'invitation.",
806
- emailMismatch: "Cette invitation a été envoyée à une autre adresse email.",
807
- expired: "Le lien d'invitation a expiré.",
808
- invalidToken: "Le lien d'invitation est invalide.",
809
- missingToken: "Le lien d'invitation est manquant ou invalide.",
810
- passwordMismatch: "Le mot de passe et sa confirmation ne correspondent pas.",
811
- passwordPolicyViolation: "Votre mot de passe ne respecte pas la politique de sécurité.",
812
- rateLimited: "Trop de tentatives. Veuillez réessayer plus tard."
813
- },
814
- form: {
815
- confirmLabel: "Confirmer le mot de passe",
816
- confirmPlaceholder: "Confirmez votre mot de passe",
817
- passwordLabel: "Mot de passe",
818
- passwordPlaceholder: "Créez un mot de passe",
819
- submit: "Accepter l'invitation"
820
- },
821
- mfaSubtitle: "Entrez le code de vérification pour continuer.",
822
- mfaTitle: "Vérifiez votre identité",
823
- status: {
824
- success: "Invitation acceptée.",
825
- workingButton: "Traitement..."
826
- },
827
- subtitle: "Créez votre compte pour rejoindre.",
828
- title: "Accepter l'invitation"
618
+ form: {
619
+ confirmLabel: "Confirmer le mot de passe",
620
+ confirmPlaceholder: "Saisissez à nouveau votre mot de passe",
621
+ description: "Entrez un nouveau mot de passe pour votre compte.",
622
+ passwordLabel: "Mot de passe",
623
+ passwordPlaceholder: "Entrez un nouveau mot de passe",
624
+ submit: "Mettre à jour le mot de passe",
625
+ title: "Nouveau mot de passe"
626
+ },
627
+ subtitle: "Choisissez un mot de passe robuste pour sécuriser votre compte.",
628
+ success: {
629
+ action: "Retour à la connexion",
630
+ description: "Votre mot de passe a été modifié.",
631
+ helper: "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
632
+ title: "Mot de passe mis à jour"
633
+ },
634
+ title: "Définir un nouveau mot de passe"
635
+ },
636
+ passwordResetRequest: {
637
+ errors: {
638
+ emailRequired: "Entrez une adresse email.",
639
+ invalidEmail: "Veuillez saisir une adresse email valide.",
640
+ rateLimited: "Trop de demandes. Veuillez patienter puis réessayer.",
641
+ startFailed: "Impossible de démarrer la réinitialisation."
829
642
  },
830
- emailCapture: {
831
- continue: "Continuer",
832
- description: "Entrez votre email professionnel pour continuer.",
833
- emailLabel: "Email professionnel",
643
+ form: {
644
+ description: "Entrez l'email de votre compte.",
645
+ emailLabel: "Email",
834
646
  emailPlaceholder: "vous@entreprise.com",
835
- forgotPassword: "Mot de passe oublié ?"
836
- },
837
- loginFlow: {
838
- errors: {
839
- accountLocked: "Trop de tentatives. Veuillez réessayer plus tard.",
840
- emailRequired: "Entrez une adresse email pour continuer.",
841
- invalidCredentials: "Email ou mot de passe incorrect.",
842
- invalidEmail: "Entrez une adresse email valide.",
843
- passkeyUnavailable: "Les passkeys ne sont pas disponibles.",
844
- rateLimited: "Trop de tentatives. Veuillez réessayer plus tard.",
845
- tryAgain: "Une erreur est survenue. Veuillez réessayer."
846
- },
847
- methods: { title: "Choisissez une méthode de connexion" },
848
- passkey: {
849
- description: "Utilisez la passkey associée à {{email}}.",
850
- title: "Utiliser une passkey"
851
- },
852
- subtitle: {
853
- default: "Choisissez une méthode de connexion pour continuer.",
854
- mfa: "Entrez le code de vérification pour continuer."
855
- },
856
- title: {
857
- default: "Se connecter",
858
- mfa: "Authentification à deux facteurs"
859
- }
860
- },
861
- methodChooser: {
862
- actions: { back: "Retour" },
863
- locked: "Trop de tentatives. Veuillez réessayer plus tard.",
864
- lockedWithTime: "Trop de tentatives. Veuillez réessayer à {{time}}.",
865
- methods: {
866
- other: "{{method}}",
867
- passkey: "Passkey",
868
- password: "Mot de passe"
869
- },
870
- prompt: "Choisissez comment vous connecter pour <strong>{{email}}</strong>."
871
- },
872
- mfa: {
873
- actions: {
874
- back: "Retour",
875
- submit: "Vérifier"
876
- },
877
- errors: {
878
- expired: "La session de vérification a expiré. Réessayez.",
879
- invalidChallenge: "La session de vérification est invalide. Reprenez la connexion.",
880
- invalidCode: "Code invalide. Réessayez.",
881
- shortCode: "Entrez le code à 6 chiffres.",
882
- tooManyAttempts: "Trop de tentatives. Veuillez réessayer plus tard.",
883
- verificationFailed: "La vérification a échoué. Réessayez."
884
- },
885
- form: {
886
- label: "Code de vérification",
887
- placeholder: "123456"
888
- },
889
- helper: {
890
- default: "Entrez le code à 6 chiffres de votre authentificateur.",
891
- withEmail: "Entrez le code à 6 chiffres envoyé à {{email}}."
892
- }
647
+ submit: "Envoyer le lien de réinitialisation"
893
648
  },
894
- oidc: { buttons: {
895
- apple: "Continuer avec Apple",
896
- generic: "Continuer avec un SSO",
897
- google: "Continuer avec Google"
898
- } },
899
- passkey: {
900
- actions: {
901
- showMethods: "Utiliser une autre méthode",
902
- submit: "Continuer avec la passkey",
903
- submitting: "En attente de la passkey..."
904
- },
905
- errors: {
906
- challengeExpired: "La demande de passkey a expiré. Réessayez.",
907
- emailRequired: "Entrez votre email pour continuer.",
908
- failed: "Échec de la connexion par passkey.",
909
- invalidAssertion: "La réponse de passkey est invalide. Réessayez.",
910
- invalidChallenge: "La demande de passkey est invalide. Réessayez.",
911
- invalidEmail: "Entrez une adresse email valide.",
912
- locked: "Trop de tentatives. Veuillez réessayer plus tard.",
913
- lockedWithTime: "Trop de tentatives. Veuillez réessayer à {{time}}.",
914
- notAvailable: "Les passkeys ne sont pas disponibles sur cet appareil.",
915
- notFound: "Aucune passkey n'est associée à ce compte."
916
- },
917
- form: {
918
- emailLabel: "Email",
919
- emailPlaceholder: "vous@entreprise.com"
920
- },
921
- helper: "Utilisez une passkey à la place de votre mot de passe."
649
+ sent: {
650
+ action: "Envoyer un autre email",
651
+ description: "Nous avons envoyé un lien de réinitialisation à {{email}}.",
652
+ helper: "Si vous ne le voyez pas, vérifiez les spams ou réessayez.",
653
+ title: "Vérifiez votre email"
922
654
  },
923
- passwordLogin: {
924
- forgotPassword: "Mot de passe oublié ?",
925
- title: "Se connecter"
655
+ title: "Réinitialiser votre mot de passe"
656
+ },
657
+ verifyEmail: {
658
+ actions: {
659
+ continue: "Continuer",
660
+ return: "Retour à la connexion"
926
661
  },
927
- passwordResetComplete: {
928
- errors: {
929
- invalid: "Le lien de réinitialisation est invalide ou expiré.",
930
- minLength: "Le mot de passe doit contenir au moins {{minLength}} caractères.",
931
- mismatch: "Les mots de passe ne correspondent pas.",
932
- missingToken: "Le lien de réinitialisation est manquant ou invalide."
933
- },
934
- form: {
935
- confirmLabel: "Confirmer le mot de passe",
936
- confirmPlaceholder: "Saisissez à nouveau votre mot de passe",
937
- description: "Entrez un nouveau mot de passe pour votre compte.",
938
- passwordLabel: "Mot de passe",
939
- passwordPlaceholder: "Entrez un nouveau mot de passe",
940
- submit: "Mettre à jour le mot de passe",
941
- title: "Nouveau mot de passe"
942
- },
943
- subtitle: "Choisissez un mot de passe robuste pour sécuriser votre compte.",
944
- success: {
945
- action: "Retour à la connexion",
946
- description: "Votre mot de passe a été modifié.",
947
- helper: "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
948
- title: "Mot de passe mis à jour"
949
- },
950
- title: "Définir un nouveau mot de passe"
662
+ errors: {
663
+ alreadyVerified: "Cette adresse email est déjà vérifiée.",
664
+ expired: "Ce lien de vérification a expiré.",
665
+ invalid: "Le lien de vérification est invalide ou expiré.",
666
+ missingToken: "Le lien de vérification est manquant ou invalide."
951
667
  },
952
- passwordResetRequest: {
953
- errors: {
954
- emailRequired: "Entrez une adresse email.",
955
- startFailed: "Impossible de démarrer la réinitialisation."
956
- },
957
- form: {
958
- description: "Entrez l'email de votre compte.",
959
- emailLabel: "Email",
960
- emailPlaceholder: "vous@entreprise.com",
961
- submit: "Envoyer le lien de réinitialisation"
962
- },
963
- sent: {
964
- action: "Envoyer un autre email",
965
- description: "Nous avons envoyé un lien de réinitialisation à {{email}}.",
966
- helper: "Si vous ne le voyez pas, vérifiez les spams ou réessayez.",
967
- title: "Vérifiez votre email"
968
- },
969
- title: "Réinitialiser votre mot de passe"
668
+ status: {
669
+ success: "Email vérifié. Vous pouvez continuer.",
670
+ verifying: "Vérification...",
671
+ verifyingButton: "Vérification"
970
672
  },
971
- verifyEmail: {
972
- actions: {
973
- continue: "Continuer",
974
- return: "Retour à la connexion"
975
- },
976
- errors: {
977
- invalid: "Le lien de vérification est invalide ou expiré.",
978
- missingToken: "Le lien de vérification est manquant ou invalide."
979
- },
980
- status: {
981
- success: "Email vérifié. Vous pouvez continuer.",
982
- verifying: "Vérification...",
983
- verifyingButton: "Vérification"
984
- },
985
- subtitle: "Confirmez votre adresse email pour continuer.",
986
- title: "Vérifier votre email"
987
- }
673
+ subtitle: "Confirmez votre adresse email pour continuer.",
674
+ title: "Vérifier votre email"
675
+ }
676
+ },
677
+ common: {
678
+ actions: {
679
+ change: "Modifier",
680
+ clear: "Effacer",
681
+ close: "Fermer",
682
+ copied: "Copié",
683
+ copy: "Copier",
684
+ pick: "Choisir",
685
+ retry: "Réessayer"
988
686
  },
989
- review: { status: {
990
- approved: "Approuvé",
991
- changesRequested: "Modifications demandées",
992
- pending: "En attente",
993
- unknown: "Inconnu"
994
- } }
995
- }
996
- }
687
+ boolean: {
688
+ no: "Non",
689
+ yes: "Oui"
690
+ },
691
+ loading: "Chargement...",
692
+ notAvailable: "N/D"
693
+ },
694
+ dashboard: {
695
+ actions: {
696
+ openList: "Ouvrir la liste",
697
+ openTool: "Ouvrir l'outil"
698
+ },
699
+ subtitle: "Vue d'ensemble du contexte Work.",
700
+ title: "Tableau de bord"
701
+ },
702
+ detail: { notFound: "Introuvable" },
703
+ emptyState: {
704
+ listEmpty: {
705
+ description: "Aucun enregistrement à afficher.",
706
+ title: "Aucun résultat"
707
+ },
708
+ listEmptyFiltered: {
709
+ actions: { reset: "Réinitialiser les filtres" },
710
+ description: "Aucun résultat ne correspond aux filtres actuels."
711
+ }
712
+ },
713
+ filters: {
714
+ actions: { filterBy: "Filtrer par {{label}}" },
715
+ all: "Tous {{label}}",
716
+ allFilters: "Tous les filtres",
717
+ allFiltersWithCount_one: "Tous les filtres ({{count}})",
718
+ allFiltersWithCount_many: "Tous les filtres ({{count}})",
719
+ allFiltersWithCount_other: "Tous les filtres ({{count}})",
720
+ boolean: {
721
+ no: "Non",
722
+ yes: "Oui"
723
+ },
724
+ placeholders: {
725
+ search: "Rechercher {{label}}",
726
+ unresolved: "ID introuvable"
727
+ },
728
+ sections: { default: "Filtres" }
729
+ },
730
+ flags: {
731
+ agentManaged: {
732
+ agentManaged: "Géré par un agent",
733
+ userManaged: "Géré par un utilisateur"
734
+ },
735
+ capability: {
736
+ allowed: "Autorisé",
737
+ denied: "Refusé"
738
+ },
739
+ default: {
740
+ default: "Par défaut",
741
+ notDefault: "Non par défaut"
742
+ },
743
+ deployedProduction: {
744
+ deployed: "Déployé",
745
+ notDeployed: "Non déployé"
746
+ },
747
+ enabled: {
748
+ disabled: "Désactivé",
749
+ enabled: "Activé"
750
+ },
751
+ encrypted: {
752
+ encrypted: "Chiffré",
753
+ notEncrypted: "Non chiffré"
754
+ },
755
+ failure: {
756
+ failed: "Échoué",
757
+ ok: "OK"
758
+ },
759
+ forced: {
760
+ forced: "Forcé",
761
+ normal: "Normal"
762
+ },
763
+ locked: {
764
+ locked: "Verrouillé",
765
+ unlocked: "Déverrouillé"
766
+ }
767
+ },
768
+ format: {
769
+ currency: "{{value, currency}}",
770
+ number: "{{value, number}}",
771
+ percent: "{{value, percent}}"
772
+ },
773
+ history: "",
774
+ list: {
775
+ actions: {
776
+ refresh: "Actualiser",
777
+ retry: "Réessayer"
778
+ },
779
+ errors: {
780
+ tableFailed: "Le tableau n'a pas pu se charger.",
781
+ title: "Erreur du tableau"
782
+ },
783
+ loadMore: {
784
+ end: "Fin des résultats",
785
+ loading: "Chargement…",
786
+ more: "Plus de résultats disponibles"
787
+ },
788
+ showing: "Affichage de {{shown, number}} sur {{total, number}}",
789
+ title: ""
790
+ },
791
+ overview: "",
792
+ picker: {
793
+ errors: { loadFailed: "Échec du chargement." },
794
+ searchPlaceholder: { default: "Rechercher..." },
795
+ searchRequired: "Saisissez un ID pour rechercher.",
796
+ title: "Sélectionner un ID",
797
+ unavailable: "Sélecteur indisponible pour {{entity}}."
798
+ },
799
+ relations: {
800
+ labelWithCount_one: "{{label}} ({{count}})",
801
+ labelWithCount_many: "{{label}} ({{count}})",
802
+ labelWithCount_other: "{{label}} ({{count}})",
803
+ menu: { label: "Relations" },
804
+ viewList: "Voir la liste"
805
+ },
806
+ review: { status: {
807
+ approved: "Approuvé",
808
+ changesRequested: "Modifications demandées",
809
+ pending: "En attente",
810
+ unknown: "Inconnu"
811
+ } },
812
+ sidebar: {
813
+ actions: {
814
+ pin: "Épingler",
815
+ reorder: "Réordonner",
816
+ unpin: "Désépingler"
817
+ },
818
+ items: { dashboard: "Tableau de bord" },
819
+ profile: {
820
+ actions: { signOut: "Se déconnecter" },
821
+ menuAriaLabel: "Ouvrir le menu profil",
822
+ title: "Profil",
823
+ unknownUser: "Utilisateur inconnu"
824
+ },
825
+ search: { placeholder: "Rechercher..." },
826
+ sections: { pinned: "Épinglés" }
827
+ },
828
+ tools: { output: "Résultat" }
829
+ } }
997
830
  }, { RelayEnvironmentProvider: Je } = O, Ye = ({ children: e }) => /* @__PURE__ */ k(Je, {
998
831
  environment: t(),
999
832
  children: e
1000
- }), { loadQuery: R, usePreloadedQuery: Xe } = O, Ze = D("WrapperPage", async () => ({ default: (await import("@plumile/ui")).WrapperPage })), Qe = D("BackofficeLayoutPage", async () => import("./BackofficeLayoutPage-DtFDn_nU.js")), $e = D("BackofficeEntityListPage", async () => import("./BackofficeEntityListPage-DmZozSNk.js")), et = D("BackofficeEntityDetailPage", async () => import("./BackofficeEntityDetailPage-CIyGKwVP.js")), tt = D("BackofficeEntityDetailLayoutPage", async () => import("./BackofficeEntityDetailLayoutPage-DXjRqvcZ.js")), nt = D("BackofficeEntityDetailUnknownPageRedirect", async () => import("./BackofficeEntityDetailUnknownPageRedirect-DRWTeox-.js")), rt = D("BackofficeDashboardPage", async () => import("./BackofficeDashboardPage-h1OWb_rV.js")), it = D("BackofficeLoginPage", async () => import("./BackofficeLoginPage-BvOPqbKO.js")), at = D("BackofficePasswordResetRequestPage", async () => import("./BackofficePasswordResetRequestPage-BLNHQD79.js")), ot = D("BackofficePasswordResetCompletePage", async () => import("./BackofficePasswordResetCompletePage-ZLhghfhC.js")), st = D("BackofficeVerifyEmailPage", async () => import("./BackofficeVerifyEmailPage-BSTtLXdx.js")), ct = D("BackofficeAcceptInvitationPage", async () => import("./BackofficeAcceptInvitationPage-CGht2ka0.js")), lt = (e) => {
833
+ }), { loadQuery: L, usePreloadedQuery: Xe } = O, Ze = D("WrapperPage", async () => ({ default: (await import("@plumile/ui")).WrapperPage })), Qe = D("BackofficeLayoutPage", async () => import("./BackofficeLayoutPage-j3VUX3Tu.js")), $e = D("BackofficeEntityListPage", async () => import("./BackofficeEntityListPage-C8Ucmc_E.js")), et = D("BackofficeEntityDetailPage", async () => import("./BackofficeEntityDetailPage-DPFXbJxC.js")), tt = D("BackofficeEntityDetailLayoutPage", async () => import("./BackofficeEntityDetailLayoutPage-DXjRqvcZ.js")), nt = D("BackofficeEntityDetailUnknownPageRedirect", async () => import("./BackofficeEntityDetailUnknownPageRedirect-DRWTeox-.js")), rt = D("BackofficeDashboardPage", async () => import("./BackofficeDashboardPage-YWvoQODn.js")), it = D("BackofficeLoginPage", async () => import("./BackofficeLoginPage-DgdIWTeu.js")), at = D("BackofficePasswordResetRequestPage", async () => import("./BackofficePasswordResetRequestPage-BJOrQXcy.js")), ot = D("BackofficePasswordResetCompletePage", async () => import("./BackofficePasswordResetCompletePage-CF_0t3Nq.js")), st = D("BackofficeVerifyEmailPage", async () => import("./BackofficeVerifyEmailPage-C81LlsNM.js")), ct = D("BackofficeAcceptInvitationPage", async () => import("./BackofficeAcceptInvitationPage-D0dZnrV7.js")), lt = (e) => {
1001
834
  let t = e.trim();
1002
835
  return t === "" || t === "/" ? "" : t.replace(/^\/+|\/+$/g, "");
1003
- }, ut = (e) => {
836
+ }, R = (e) => {
1004
837
  let t = e.trim();
1005
838
  return t === "" ? "/" : `/${t}`.replace(/\/+/g, "/");
1006
839
  }, z = (e, t) => {
1007
840
  let n = t.replace(/^\/+|\/+$/g, "");
1008
841
  return e === "" ? n : n === "" ? e : `${e}/${n}`;
1009
- }, dt = (e, t) => ut(z(e, t)), ft = (e, t) => {
1010
- let n = ut(e), r = t === "" ? "" : `/${t}`;
842
+ }, ut = (e, t) => R(z(e, t)), dt = (e, t) => {
843
+ let n = R(e), r = t === "" ? "" : `/${t}`;
1011
844
  return r !== "" && n.startsWith(r) ? n.slice(r.length).replace(/^\/+/, "") : n.replace(/^\/+/, "");
1012
- }, pt = (e, t) => {
845
+ }, ft = (e, t) => {
1013
846
  if (e?.routes == null) return null;
1014
847
  for (let n = e.routes.length - 1; n >= 0; --n) {
1015
848
  let r = e.routes[n];
@@ -1019,7 +852,7 @@ var qe = {
1019
852
  }
1020
853
  }
1021
854
  return null;
1022
- }, mt = (e) => {
855
+ }, pt = (e) => {
1023
856
  let t = new URLSearchParams();
1024
857
  return Object.entries(e).forEach(([e, n]) => {
1025
858
  if (n != null) {
@@ -1032,17 +865,17 @@ var qe = {
1032
865
  t.set(e, String(n));
1033
866
  }
1034
867
  }), t;
1035
- }, B = ke;
1036
- function ht(e) {
1037
- let { basePath: t, entityManifest: n, entityRegistry: r, sidebar: i, auth: a, dashboard: o } = e, l = lt(t), u = z(l, "login"), d = z(l, "login/reset"), f = z(l, "login/reset/complete"), p = z(l, "verify-email"), m = z(l, "accept-invitation"), h = dt(l, "login"), g = c(s(n, i)), _ = /* @__PURE__ */ new Map();
868
+ }, B = Oe;
869
+ function mt(e) {
870
+ let { basePath: t, entityManifest: n, entityRegistry: r, sidebar: i, auth: a, dashboard: o } = e, s = lt(t), u = z(s, "login"), d = z(s, "login/reset"), f = z(s, "login/reset/complete"), p = z(s, "verify-email"), m = z(s, "accept-invitation"), h = ut(s, "login"), g = l(c(n, i)), _ = /* @__PURE__ */ new Map();
1038
871
  g.forEach((e, t) => {
1039
872
  _.set(t, e.groupId);
1040
873
  });
1041
874
  let v = /* @__PURE__ */ new WeakMap(), y = i?.permissionsQuery, ee = async ({ context: e }) => {
1042
875
  let t = await a.session.load();
1043
876
  return {
1044
- permissionsQuery: y == null ? null : R(e.relayEnvironment, y, {}),
1045
- authStatusQuery: t.authStatusQuery == null ? null : R(e.relayEnvironment, t.authStatusQuery, {}, { fetchPolicy: "network-only" })
877
+ permissionsQuery: y == null ? null : L(e.relayEnvironment, y, {}),
878
+ authStatusQuery: t.authStatusQuery == null ? null : L(e.relayEnvironment, t.authStatusQuery, {}, { fetchPolicy: "network-only" })
1046
879
  };
1047
880
  }, te = B({
1048
881
  path: "",
@@ -1050,7 +883,7 @@ function ht(e) {
1050
883
  prepare: async () => (o == null || await o.load(), null),
1051
884
  render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
1052
885
  }), b = Object.values(n).filter((e) => e.kind === "list-detail").map((e) => {
1053
- let t = e.routes.list, n = ft(t, l), i = [];
886
+ let t = e.routes.list, n = dt(t, s), i = [];
1054
887
  if (e.hasList) {
1055
888
  let t = B({
1056
889
  path: "",
@@ -1058,12 +891,12 @@ function ht(e) {
1058
891
  prepare: async ({ context: t, query: n }) => {
1059
892
  let { config: i } = await r.loadListEntity(e.id), { list: a, listUrlCodec: o, listDefaults: s } = i;
1060
893
  if (o == null || s == null) throw Error(`Backoffice entity ${e.id} does not expose a list configuration.`);
1061
- let c = mt(n), l = o.parse(c), { pageSize: u } = Le, d = {
894
+ let c = pt(n), l = o.parse(c), { pageSize: u } = Ie, d = {
1062
895
  where: l.where,
1063
896
  sort: l.sort ?? s.sort,
1064
897
  count: u,
1065
898
  cursor: null
1066
- }, f = a.buildVariables == null ? d : a.buildVariables(d), p = R(t.relayEnvironment, a.query, f);
899
+ }, f = a.buildVariables == null ? d : a.buildVariables(d), p = L(t.relayEnvironment, a.query, f);
1067
900
  return {
1068
901
  entityId: e.id,
1069
902
  entityManifest: e,
@@ -1087,7 +920,7 @@ function ht(e) {
1087
920
  path: ":id",
1088
921
  resourcePage: tt,
1089
922
  prepare: async ({ context: t, variables: n }) => {
1090
- let { config: i } = await r.loadDetailLayoutEntity(e.id), a = String(n.id ?? ""), o = i.layoutPage.buildVariables == null ? { variables: { id: a } } : i.layoutPage.buildVariables({ id: a }), s = R(t.relayEnvironment, i.layoutPage.query, o.variables);
923
+ let { config: i } = await r.loadDetailLayoutEntity(e.id), a = String(n.id ?? ""), o = i.layoutPage.buildVariables == null ? { variables: { id: a } } : i.layoutPage.buildVariables({ id: a }), s = L(t.relayEnvironment, i.layoutPage.query, o.variables);
1091
924
  return {
1092
925
  entityId: e.id,
1093
926
  entityManifest: e,
@@ -1117,14 +950,14 @@ function ht(e) {
1117
950
  render: ({ prepared: e }) => {
1118
951
  let t = e.redirectTo ?? null;
1119
952
  if (t == null) return null;
1120
- throw new we(t);
953
+ throw new Ce(t);
1121
954
  }
1122
955
  }),
1123
956
  ...(e.detailPages ?? []).map((t) => B({
1124
957
  path: t.pathSegment,
1125
958
  resourcePage: et,
1126
959
  prepare: async ({ context: n, variables: i }) => {
1127
- let a = String(i.id ?? ""), o = await r.loadDetailPageEntity(e.id, t.id), s = o.config.page.buildVariables == null ? { variables: { id: a } } : o.config.page.buildVariables({ id: a }), c = R(n.relayEnvironment, o.config.page.query, s.variables);
960
+ let a = String(i.id ?? ""), o = await r.loadDetailPageEntity(e.id, t.id), s = o.config.page.buildVariables == null ? { variables: { id: a } } : o.config.page.buildVariables({ id: a }), c = L(n.relayEnvironment, o.config.page.query, s.variables);
1128
961
  return {
1129
962
  entityId: e.id,
1130
963
  entityManifest: e,
@@ -1176,9 +1009,9 @@ function ht(e) {
1176
1009
  children: i,
1177
1010
  resourcePage: Ze
1178
1011
  });
1179
- }), x = Object.values(n).filter((e) => e.kind === "tool").map((t) => {
1012
+ }), ne = Object.values(n).filter((e) => e.kind === "tool").map((t) => {
1180
1013
  let n = B({
1181
- path: ft(t.routes.list, l),
1014
+ path: dt(t.routes.list, s),
1182
1015
  resourcePage: e.toolsOperationPage ?? null,
1183
1016
  prepare: async () => {
1184
1017
  let e = await r.loadToolEntity(t.id);
@@ -1199,17 +1032,17 @@ function ht(e) {
1199
1032
  }
1200
1033
  });
1201
1034
  return v.set(n, t.id), n;
1202
- }), ne = B({
1203
- path: l,
1035
+ }), re = B({
1036
+ path: s,
1204
1037
  resourcePage: Qe,
1205
1038
  prepare: ee,
1206
1039
  render: ({ children: e, prepared: t, route: n, Component: r }) => {
1207
1040
  if (r == null) return null;
1208
- let o = t, s = pt(n, v), c = s == null ? null : _.get(s) ?? null, l = null, u = a.session.get()?.authStatusQuery ?? null;
1041
+ let o = t, s = ft(n, v), c = s == null ? null : _.get(s) ?? null, l = null, u = a.session.get()?.authStatusQuery ?? null;
1209
1042
  if (u != null && o?.authStatusQuery != null) {
1210
1043
  l = Xe(u, o.authStatusQuery);
1211
1044
  let { isLoggedIn: e } = l;
1212
- if (!e) throw new we(h);
1045
+ if (!e) throw new Ce(h);
1213
1046
  }
1214
1047
  return /* @__PURE__ */ k(r, {
1215
1048
  permissionsQuery: i?.permissionsQuery,
@@ -1222,15 +1055,15 @@ function ht(e) {
1222
1055
  children: [
1223
1056
  te,
1224
1057
  ...b,
1225
- ...x
1058
+ ...ne
1226
1059
  ]
1227
- }), S = [
1060
+ }), x = [
1228
1061
  B({
1229
1062
  path: u,
1230
1063
  resourcePage: it,
1231
1064
  prepare: async ({ context: e }) => {
1232
1065
  let t = await a.login.load();
1233
- return { query: R(e.relayEnvironment, t.loginQuery, {}) };
1066
+ return { query: L(e.relayEnvironment, t.loginQuery, {}) };
1234
1067
  },
1235
1068
  render: ({ prepared: e, Component: t }) => t == null ? null : /* @__PURE__ */ k(t, { prepared: e })
1236
1069
  }),
@@ -1253,38 +1086,38 @@ function ht(e) {
1253
1086
  render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
1254
1087
  })
1255
1088
  ];
1256
- return (a.hasAcceptInvitation === !0 || a.acceptInvitation != null) && S.push(B({
1089
+ return (a.hasAcceptInvitation === !0 || a.acceptInvitation != null) && x.push(B({
1257
1090
  path: m,
1258
1091
  resourcePage: ct,
1259
1092
  prepare: async () => (await a.acceptInvitation?.load(), null),
1260
1093
  render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
1261
- })), S.push(ne), S;
1094
+ })), x.push(re), x;
1262
1095
  }
1263
1096
  //#endregion
1264
1097
  //#region src/components/backoffice/routing/backofficeRouteFallback.css.ts
1265
- var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop txvbqbv43 txvbqbva1", _t = "txvbqbva3", vt = () => {
1266
- let { t: e, i18n: t } = Ce("backofficeReact", { useSuspense: !1 }), n = "Loading...";
1098
+ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop txvbqbv43 txvbqbva1", gt = "txvbqbva3", _t = () => {
1099
+ let { t: e, i18n: t } = Se("backofficeReact", { useSuspense: !1 }), n = "Loading...";
1267
1100
  return t.isInitialized && (n = e("common.loading")), /* @__PURE__ */ A("div", {
1268
- className: gt,
1101
+ className: ht,
1269
1102
  role: "status",
1270
1103
  "aria-live": "polite",
1271
1104
  "aria-busy": "true",
1272
- children: [/* @__PURE__ */ k(Ne, { size: 28 }), /* @__PURE__ */ k("div", {
1273
- className: _t,
1105
+ children: [/* @__PURE__ */ k(Me, { size: 28 }), /* @__PURE__ */ k("div", {
1106
+ className: gt,
1274
1107
  children: n
1275
1108
  })]
1276
1109
  });
1277
- }, yt = "_11exksg1 txvbqbv45 txvbqbptp txvbqbt7y txvbqbdqg txvbqbl7g txvbqb2k txvbqbu7g txvbqbuwp", bt = "_11exksg2 txvbqbcgg txvbqbuog", xt = () => /* @__PURE__ */ k("div", {
1278
- className: yt,
1110
+ }, vt = "_11exksg1 txvbqbv45 txvbqbptp txvbqbt7y txvbqbdqg txvbqbl7g txvbqb2k txvbqbu7g txvbqbuwp", yt = "_11exksg2 txvbqbcgg txvbqbuog", bt = () => /* @__PURE__ */ k("div", {
1111
+ className: vt,
1279
1112
  "aria-hidden": "true",
1280
- children: /* @__PURE__ */ k("div", { className: bt })
1281
- }), St = "cache-first", V = "detail-page", H = "detail-layout", U = "list", W = "picker", G = "tool", K = (e) => e.kind === "list-detail", Ct = (e) => e.kind === "tool", q = (e, t, n) => t === V ? `${e}:${t}:${n ?? ""}` : `${e}:${t}`, wt = (e) => e instanceof Error ? e : Error(String(e)), J = (e) => e?.status !== "loaded" || e.module == null ? null : e.module, Y = (e, t) => {
1113
+ children: /* @__PURE__ */ k("div", { className: yt })
1114
+ }), xt = "cache-first", V = "detail-page", H = "detail-layout", U = "list", W = "picker", G = "tool", K = (e) => e.kind === "list-detail", St = (e) => e.kind === "tool", q = (e, t, n) => t === V ? `${e}:${t}:${n ?? ""}` : `${e}:${t}`, Ct = (e) => e instanceof Error ? e : Error(String(e)), J = (e) => e?.status !== "loaded" || e.module == null ? null : e.module, Y = (e, t) => {
1282
1115
  let n = e[t];
1283
1116
  if (n == null) throw Error(`Unknown backoffice entity: ${t}`);
1284
1117
  return n;
1285
- }, Tt = (e, t) => {
1118
+ }, wt = (e, t) => {
1286
1119
  let n = /* @__PURE__ */ new Map(), r = (t) => e[t] ?? null, i = async (e, t, r) => {
1287
- if ((t?.mode ?? St) === "cache-first") {
1120
+ if ((t?.mode ?? xt) === "cache-first") {
1288
1121
  let t = J(n.get(e));
1289
1122
  if (t != null) return t;
1290
1123
  let r = n.get(e);
@@ -1294,7 +1127,7 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1294
1127
  status: "loaded",
1295
1128
  module: t
1296
1129
  }), t)).catch((t) => {
1297
- let r = wt(t);
1130
+ let r = Ct(t);
1298
1131
  throw n.set(e, {
1299
1132
  status: "error",
1300
1133
  error: r
@@ -1354,7 +1187,7 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1354
1187
  },
1355
1188
  loadToolEntity: async (n, r) => {
1356
1189
  let a = Y(e, n);
1357
- if (!Ct(a)) throw Error(`Backoffice entity ${n} does not expose a tool facet.`);
1190
+ if (!St(a)) throw Error(`Backoffice entity ${n} does not expose a tool facet.`);
1358
1191
  return i(q(n, G), r, async () => {
1359
1192
  let e = j(a, await a.facets.tool(), t);
1360
1193
  if (e.kind !== G) throw Error(`Backoffice entity ${n} did not resolve to a tool facet.`);
@@ -1365,15 +1198,15 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1365
1198
  }, X = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWith("/") ? e.slice(0, -1) : e : `/${e}`, Z = (e, t) => {
1366
1199
  let n = X(t), r = X(e);
1367
1200
  return r === "/" || n === r || n.startsWith(`${r}/`) ? n : n === "/" ? r : `${r}${n}`;
1368
- }, Et = (e, t) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, {
1201
+ }, Tt = (e, t) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, {
1369
1202
  ...n,
1370
1203
  routes: {
1371
1204
  list: Z(t, n.routes.list),
1372
1205
  detail: (e) => Z(t, n.routes.detail(e)),
1373
1206
  detailPage: (e, r) => Z(t, n.routes.detailPage(e, r))
1374
1207
  }
1375
- }])), Q = (e) => typeof e == "object" && !Array.isArray(e) ? e : {}, Dt = ({ routes: e, instrumentations: t }) => {
1376
- let n = i(), r = T(() => ({ relayEnvironment: n }), [n]), a = T(() => Oe(e, {
1208
+ }])), Q = (e) => typeof e == "object" && !Array.isArray(e) ? e : {}, Et = ({ routes: e, instrumentations: t }) => {
1209
+ let n = i(), r = w(() => ({ relayEnvironment: n }), [n]), a = w(() => De(e, {
1377
1210
  context: r,
1378
1211
  instrumentations: t
1379
1212
  }), [
@@ -1381,52 +1214,50 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1381
1214
  e,
1382
1215
  r
1383
1216
  ]);
1384
- return w(() => () => {
1217
+ return C(() => () => {
1385
1218
  a.cleanup();
1386
- }, [a]), /* @__PURE__ */ k(De.Provider, {
1219
+ }, [a]), /* @__PURE__ */ k(Ee.Provider, {
1387
1220
  value: a.context,
1388
- children: /* @__PURE__ */ k(Ee, {
1221
+ children: /* @__PURE__ */ k(Te, {
1389
1222
  enableTransition: !0,
1390
- fallback: /* @__PURE__ */ k(vt, {}),
1391
- pending: /* @__PURE__ */ k(xt, {})
1223
+ fallback: /* @__PURE__ */ k(_t, {}),
1224
+ pending: /* @__PURE__ */ k(bt, {})
1392
1225
  })
1393
1226
  });
1394
- }, Ot = (e) => {
1395
- let t = X(e.basePath ?? "/"), n = T(() => Et(e.entityManifest, t), [t, e.entityManifest]), i = T(() => Tt(n, { basePath: t }), [t, n]), a = e.graphql;
1396
- w(() => {
1227
+ }, Dt = (e) => {
1228
+ let t = X(e.basePath ?? "/"), n = w(() => Tt(e.entityManifest, t), [t, e.entityManifest]), i = w(() => wt(n, { basePath: t }), [t, n]), o = e.graphql;
1229
+ C(() => {
1397
1230
  r({
1398
- httpUrl: a.httpUrl ?? a.endpoint,
1399
- wsUrl: a.wsUrl ?? a.wsEndpoint,
1400
- getDataId: a.getDataId,
1401
- logEvents: a.logEvents,
1402
- getAuthHeaders: a.getAuthHeaders
1231
+ httpUrl: o.httpUrl ?? o.endpoint,
1232
+ wsUrl: o.wsUrl ?? o.wsEndpoint,
1233
+ getDataId: o.getDataId,
1234
+ logEvents: o.logEvents,
1235
+ getAuthHeaders: o.getAuthHeaders
1403
1236
  });
1404
1237
  }, [
1405
- a.endpoint,
1406
- a.getAuthHeaders,
1407
- a.getDataId,
1408
- a.httpUrl,
1409
- a.logEvents,
1410
- a.wsEndpoint,
1411
- a.wsUrl
1238
+ o.endpoint,
1239
+ o.getAuthHeaders,
1240
+ o.getDataId,
1241
+ o.httpUrl,
1242
+ o.logEvents,
1243
+ o.wsEndpoint,
1244
+ o.wsUrl
1412
1245
  ]);
1413
- let s = T(() => {
1246
+ let s = w(() => {
1414
1247
  let t = e.i18n?.resources ?? {}, n = qe, r = new Set([...Object.keys(n), ...Object.keys(t)]), i = {};
1415
1248
  return r.forEach((e) => {
1416
1249
  let r = Q(n[e]), a = Q(t[e]);
1417
1250
  i[e] = {
1418
1251
  ...r,
1419
1252
  ...a,
1420
- backofficeReact: L(Q(r.backofficeReact), Q(a.backofficeReact)),
1421
- shared: L(Q(r.shared), Q(a.shared))
1253
+ backofficeReact: Ke(Q(r.backofficeReact), Q(a.backofficeReact))
1422
1254
  };
1423
1255
  }), i;
1424
- }, [e.i18n?.resources]), c = T(() => e.i18n?.instance ?? be(), [e.i18n?.instance]);
1425
- return w(() => {
1256
+ }, [e.i18n?.resources]), c = w(() => e.i18n?.instance ?? ye(), [e.i18n?.instance]);
1257
+ return C(() => {
1426
1258
  let t = e.i18n?.initOptions ?? {}, n = t.defaultNS ?? "translations", r = t.ns ?? [
1427
1259
  "backofficeReact",
1428
1260
  "translations",
1429
- "shared",
1430
1261
  "ui"
1431
1262
  ];
1432
1263
  F({
@@ -1450,10 +1281,10 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1450
1281
  e.i18n?.fallbackLng,
1451
1282
  e.i18n?.lng,
1452
1283
  e.i18n?.useLanguageDetector
1453
- ]), /* @__PURE__ */ k(_e, { children: /* @__PURE__ */ k(xe, {
1284
+ ]), /* @__PURE__ */ k(_e, { children: /* @__PURE__ */ k(be, {
1454
1285
  i18n: c,
1455
- children: /* @__PURE__ */ k(Pe, { children: /* @__PURE__ */ k(Ye, { children: /* @__PURE__ */ k(o, {
1456
- value: T(() => ({
1286
+ children: /* @__PURE__ */ k(Ne, { children: /* @__PURE__ */ k(Ye, { children: /* @__PURE__ */ k(a, {
1287
+ value: w(() => ({
1457
1288
  basePath: t,
1458
1289
  entities: n,
1459
1290
  entityManifest: n,
@@ -1473,8 +1304,8 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1473
1304
  e.graphql,
1474
1305
  e.sidebar
1475
1306
  ]),
1476
- children: /* @__PURE__ */ k(Dt, {
1477
- routes: T(() => ht({
1307
+ children: /* @__PURE__ */ k(Et, {
1308
+ routes: w(() => mt({
1478
1309
  basePath: t,
1479
1310
  entityManifest: n,
1480
1311
  entityRegistry: i,
@@ -1495,7 +1326,7 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1495
1326
  })
1496
1327
  }) }) })
1497
1328
  }) });
1498
- }, kt = (e) => {
1329
+ }, Ot = (e) => {
1499
1330
  let t = null, n = null;
1500
1331
  return {
1501
1332
  get: () => t,
@@ -1503,15 +1334,15 @@ var gt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
1503
1334
  n = null;
1504
1335
  }), n)
1505
1336
  };
1506
- }, At = (e, t) => {
1337
+ }, kt = (e, t) => {
1507
1338
  let n = e ?? [], r = t ?? [];
1508
1339
  return n.length === r.length ? n.every((e, t) => e === r[t]) : !1;
1509
1340
  };
1510
1341
  function $(e, t, n) {
1511
1342
  let { filters: r } = e.list;
1512
- return r.find((e) => String(e.whereKey ?? e.id) === t && At(e.path, n)) ?? null;
1343
+ return r.find((e) => String(e.whereKey ?? e.id) === t && kt(e.path, n)) ?? null;
1513
1344
  }
1514
- function jt(e, t, n) {
1345
+ function At(e, t, n) {
1515
1346
  let r = $(e, t);
1516
1347
  if (r != null) return r;
1517
1348
  let { [t]: i } = n ?? {};
@@ -1521,67 +1352,67 @@ function jt(e, t, n) {
1521
1352
  }
1522
1353
  return $(e, `${t}Contains`) ?? null;
1523
1354
  }
1524
- function Mt(e, t) {
1355
+ function jt(e, t) {
1525
1356
  return t == null ? !1 : e.kind === "boolean" ? typeof t == "boolean" : e.kind === "entityId" ? typeof t == "string" && t.trim() !== "" : typeof t == "number" ? String(t).trim() !== "" : typeof t == "string" ? t.trim() !== "" : !1;
1526
1357
  }
1527
1358
  //#endregion
1528
1359
  //#region src/components/backoffice/filters/backofficeFilterAction.css.ts
1529
- var Nt = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txvbqb1qy txvbqb1cp txvbqb1qg txvbqbf7 txvbqbv0t txvbqbva1 txvbqbv txvbqb3b txvbqb78 txvbqb6w txvbqb7k", Pt = "txvbqbtx7 txvbqbc67", Ft = (e, t) => e(t), It = (e) => {
1530
- let { t } = Ce(), { t: n } = b(), { filterColumnAliases: r } = a(), { whereKey: i, value: o, path: s, label: c, listConfig: l } = e, u = x(), d = null;
1531
- if (l == null ? u != null && (d = u.config) : d = l, d == null) return null;
1532
- let f = $(d, i, s);
1533
- if (f == null && s == null && (f = jt(d, i, r)), f == null || !Mt(f, o)) return null;
1534
- let p = Ft(f.label, t), m = c ?? n("filters.actions.filterBy", { label: p }), h = /* @__PURE__ */ k(Me, {
1360
+ var Mt = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txvbqb1qy txvbqb1cp txvbqb1qg txvbqbf7 txvbqbv0t txvbqbva1 txvbqbv txvbqb3b txvbqb78 txvbqb6w txvbqb7k", Nt = "txvbqbtx7 txvbqbc67", Pt = (e, t) => e(t), Ft = (e) => {
1361
+ let { t } = Se(), { t: n } = s(), { filterColumnAliases: r } = o(), { whereKey: i, value: a, path: c, label: l, listConfig: u } = e, d = b(), f = null;
1362
+ if (u == null ? d != null && (f = d.config) : f = u, f == null) return null;
1363
+ let p = $(f, i, c);
1364
+ if (p == null && c == null && (p = At(f, i, r)), p == null || !jt(p, a)) return null;
1365
+ let m = Pt(p.label, t), h = l ?? n("filters.actions.filterBy", { label: m }), g = /* @__PURE__ */ k(je, {
1535
1366
  width: 14,
1536
1367
  height: 14,
1537
- className: Pt,
1368
+ className: Nt,
1538
1369
  "aria-hidden": "true"
1539
1370
  });
1540
- if (u != null) return /* @__PURE__ */ k("button", {
1371
+ if (d != null) return /* @__PURE__ */ k("button", {
1541
1372
  type: "button",
1542
- className: Nt,
1543
- title: m,
1544
- "aria-label": m,
1373
+ className: Mt,
1374
+ title: h,
1375
+ "aria-label": h,
1545
1376
  onClick: () => {
1546
- u.applyFilter(i, o, s);
1377
+ d.applyFilter(i, a, c);
1547
1378
  },
1548
- children: h
1379
+ children: g
1549
1380
  });
1550
- let g = ze(d.listDefaults?.where ?? d.list.defaultState?.where ?? null, i, o, s);
1551
- return /* @__PURE__ */ k(Te, {
1552
- to: M(d, { where: g }),
1553
- className: Nt,
1554
- children: h
1381
+ let _ = Re(f.listDefaults?.where ?? f.list.defaultState?.where ?? null, i, a, c);
1382
+ return /* @__PURE__ */ k(we, {
1383
+ to: M(f, { where: _ }),
1384
+ className: Mt,
1385
+ children: g
1555
1386
  });
1556
- }, Lt = "txvbqb9ip txvbqbai7 txvbqbap7", Rt = "txvbqb9ip txvbqbai7 txvbqbaop", zt = "txvbqb9iy txvbqbbwy txvbqbap7 txvbqbcg", Bt = "txvbqb9ip txvbqbai7 txvbqbap7", Vt = "txvbqb9ip txvbqbai7 txvbqbap7", Ht = ({ summary: e, aside: t, children: n, className: r }) => {
1387
+ }, It = "txvbqb9ip txvbqbai7 txvbqbap7", Lt = "txvbqb9ip txvbqbai7 txvbqbaop", Rt = "txvbqb9iy txvbqbbwy txvbqbap7 txvbqbcg", zt = "txvbqb9ip txvbqbai7 txvbqbap7", Bt = "txvbqb9ip txvbqbai7 txvbqbap7", Vt = ({ summary: e, aside: t, children: n, className: r }) => {
1557
1388
  let i = null;
1558
1389
  e != null && (i = /* @__PURE__ */ k("div", {
1559
- className: Rt,
1390
+ className: Lt,
1560
1391
  children: e
1561
1392
  }));
1562
1393
  let a = null;
1563
1394
  t != null && (a = /* @__PURE__ */ k("aside", {
1564
- className: Vt,
1395
+ className: Bt,
1565
1396
  children: t
1566
1397
  }));
1567
1398
  let o = null;
1568
1399
  return (n != null || a != null) && (o = /* @__PURE__ */ k("div", {
1569
- className: Bt,
1400
+ className: zt,
1570
1401
  children: n
1571
1402
  })), /* @__PURE__ */ A("div", {
1572
- className: Fe(Lt, r),
1403
+ className: Pe(It, r),
1573
1404
  children: [i, /* @__PURE__ */ A("div", {
1574
- className: zt,
1405
+ className: Rt,
1575
1406
  children: [o, a]
1576
1407
  })]
1577
1408
  });
1578
- }, Ut = "txvbqbv9z txvbqb3d txvbqbvwr", Wt = ({ count: e, entity: t, where: n }) => {
1579
- let { entities: r, entityRegistry: i } = a(), o = ve(De), s = 0;
1409
+ }, Ht = "txvbqbv9z txvbqb3d txvbqbvwr", Ut = ({ count: e, entity: t, where: n }) => {
1410
+ let { entities: r, entityRegistry: i } = o(), a = ve(Ee), s = 0;
1580
1411
  typeof e == "number" && Number.isFinite(e) && (s = e);
1581
1412
  let c = r[t];
1582
1413
  if (c == null) return /* @__PURE__ */ k("span", { children: s });
1583
1414
  let l = i.getLoadedListEntity(t), u;
1584
- u = l == null ? Re(c.routes.list, n) : M(l.config, { where: n });
1415
+ u = l == null ? Le(c.routes.list, n) : M(l.config, { where: n });
1585
1416
  let d = async (e) => {
1586
1417
  let r = M((await i.loadListEntity(t)).config, { where: n }), a = "";
1587
1418
  r.search !== "" && (a = `?${r.search}`), e.push({
@@ -1590,13 +1421,13 @@ var Nt = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txv
1590
1421
  hash: ""
1591
1422
  });
1592
1423
  };
1593
- return /* @__PURE__ */ k(Te, {
1424
+ return /* @__PURE__ */ k(we, {
1594
1425
  to: u,
1595
- className: Ut,
1426
+ className: Ht,
1596
1427
  onClick: (e) => {
1597
- if (l != null || o == null || e.defaultPrevented || e.button !== 0 || e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;
1428
+ if (l != null || a == null || e.defaultPrevented || e.button !== 0 || e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;
1598
1429
  e.preventDefault();
1599
- let { history: t } = o;
1430
+ let { history: t } = a;
1600
1431
  d(t).catch(() => {
1601
1432
  if (typeof u == "string") {
1602
1433
  let e = new URL(u, window.location.origin);
@@ -1617,51 +1448,49 @@ var Nt = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txv
1617
1448
  },
1618
1449
  children: s
1619
1450
  });
1620
- }, Gt = "txvbqb9ip", Kt = "txvbqb9ip txvbqbai7 txvbqbaop", qt = ({ headerNode: e, tabs: t, activeId: n, children: r }) => {
1451
+ }, Wt = "txvbqb9ip", Gt = "txvbqb9ip txvbqbai7 txvbqbaop", Kt = ({ headerNode: e, tabs: t, activeId: n, children: r }) => {
1621
1452
  let i = null;
1622
- return t != null && t.length > 1 && n != null && (i = /* @__PURE__ */ k(Ae, {
1453
+ return t != null && t.length > 1 && n != null && (i = /* @__PURE__ */ k(ke, {
1623
1454
  items: t,
1624
1455
  activeId: n,
1625
1456
  onChange: () => {},
1626
- className: Gt
1627
- })), /* @__PURE__ */ k(je, {
1457
+ className: Wt
1458
+ })), /* @__PURE__ */ k(Ae, {
1628
1459
  headerNode: e,
1629
1460
  tabsNode: i,
1630
1461
  children: /* @__PURE__ */ k("div", {
1631
- className: Kt,
1462
+ className: Gt,
1632
1463
  children: r
1633
1464
  })
1634
1465
  });
1635
- }, Jt = "txvbqb9jg txvbqbcp txvbqbany txvbqbajy", Yt = ({ children: e, className: t }) => /* @__PURE__ */ k("span", {
1636
- className: Fe(Jt, t),
1466
+ }, qt = "txvbqb9jg txvbqbcp txvbqbany txvbqbajy", Jt = ({ children: e, className: t }) => /* @__PURE__ */ k("span", {
1467
+ className: Pe(qt, t),
1637
1468
  children: e
1638
- });
1639
- //#endregion
1640
- //#region src/hooks/useConditionalSubscription.ts
1469
+ }), Yt = [];
1641
1470
  function Xt() {
1642
1471
  return Reflect.get(O, "default") ?? O;
1643
1472
  }
1644
1473
  var Zt = Xt();
1645
1474
  function Qt(e, t) {
1646
- let n = Zt.useRelayEnvironment(), [r, i] = E(null), { enabled: a = !0, deps: o = [], getVariables: s } = t, c = T(() => {
1475
+ let n = Zt.useRelayEnvironment(), [r, i] = E(null), { enabled: a = !0, deps: o = Yt, getVariables: s } = t, c = S(() => {
1647
1476
  try {
1648
1477
  return s == null ? e.variables : s();
1649
1478
  } catch {
1650
1479
  return null;
1651
1480
  }
1652
- }, [e.variables, s]), l = T(() => {
1653
- if (c == null) return null;
1481
+ }, [e.variables, s]), l = w(() => c(), [c]), u = w(() => {
1482
+ if (l == null) return null;
1654
1483
  try {
1655
- return JSON.stringify(c);
1484
+ return JSON.stringify(l);
1656
1485
  } catch {
1657
1486
  return null;
1658
1487
  }
1659
- }, [c]), u = !!a, d = c, f = u && d != null, p = ye(null);
1660
- return w(() => {
1661
- let t = null;
1662
- return u && d != null && (i(null), t = Zt.requestSubscription(n, {
1488
+ }, [l]), d = !!a, f = d && l != null, p = T(null);
1489
+ return C(() => {
1490
+ let t = null, r = c();
1491
+ return d && r != null && (i(null), t = Zt.requestSubscription(n, {
1663
1492
  subscription: e.subscription,
1664
- variables: d,
1493
+ variables: r,
1665
1494
  cacheConfig: e.cacheConfig,
1666
1495
  configs: e.configs,
1667
1496
  onCompleted: e.onCompleted,
@@ -1680,9 +1509,9 @@ function Qt(e, t) {
1680
1509
  e,
1681
1510
  o,
1682
1511
  n,
1683
- u,
1684
- l,
1685
- d
1512
+ d,
1513
+ c,
1514
+ u
1686
1515
  ]), {
1687
1516
  active: f,
1688
1517
  error: r
@@ -1697,12 +1526,12 @@ function en(e) {
1697
1526
  t ?? (t = document.createElement("textarea"), t.id = $t, t.setAttribute("readonly", ""), t.style.position = "absolute", t.style.left = "-9999px", t.style.top = "0", t.style.opacity = "0", document.body.appendChild(t)), t.value = e, t.select(), document.execCommand("copy");
1698
1527
  }
1699
1528
  function tn(e = 2e3) {
1700
- let [t, n] = E(null), r = ye(null);
1701
- return w(() => () => {
1529
+ let [t, n] = E(null), r = T(null);
1530
+ return C(() => () => {
1702
1531
  r.current != null && window.clearTimeout(r.current);
1703
1532
  }, []), {
1704
1533
  copiedKey: t,
1705
- copy: C(async (t, i) => {
1534
+ copy: S(async (t, i) => {
1706
1535
  let a = !1, o;
1707
1536
  if (typeof navigator < "u" && (o = navigator.clipboard), o != null) try {
1708
1537
  await o.writeText(t), a = !0;
@@ -1719,17 +1548,17 @@ function tn(e = 2e3) {
1719
1548
  //#region src/hooks/useRefetchNeededReload.ts
1720
1549
  function nn(e) {
1721
1550
  let [t, n] = E(null);
1722
- return w(() => {
1551
+ return C(() => {
1723
1552
  n(null);
1724
1553
  }, [e]), {
1725
1554
  reason: t,
1726
- onRefetchNeeded: C((e) => {
1555
+ onRefetchNeeded: S((e) => {
1727
1556
  n(e ?? "UNKNOWN");
1728
1557
  }, []),
1729
- reload: C(() => {
1558
+ reload: S(() => {
1730
1559
  window.location.reload();
1731
1560
  }, []),
1732
- clear: C(() => {
1561
+ clear: S(() => {
1733
1562
  n(null);
1734
1563
  }, [])
1735
1564
  };
@@ -1737,7 +1566,7 @@ function nn(e) {
1737
1566
  //#endregion
1738
1567
  //#region src/i18n/useReviewStatusLabel.ts
1739
1568
  function rn() {
1740
- let { t: e } = l();
1569
+ let { t: e } = s();
1741
1570
  function t(t) {
1742
1571
  if (t == null) return e("review.status.unknown");
1743
1572
  switch (t) {
@@ -1796,6 +1625,6 @@ function un(e) {
1796
1625
  //#region src/relay/createInlineReader.ts
1797
1626
  var { readInlineData: dn } = O, fn = (e) => (t) => dn(e, t), pn = (e) => e;
1798
1627
  //#endregion
1799
- export { _ as AcceptInvitationScreen, ae as BackofficeDetailBadgeRow, oe as BackofficeDetailField, ce as BackofficeDetailPayload, se as BackofficeDetailSection, te as BackofficeErrorBoundary, It as BackofficeFilterAction, Yt as BackofficeInlineFilterRow, Ht as BackofficeOverviewLayout, Ot as BackofficeProvider, Wt as BackofficeRelatedCountLink, ge as BackofficeRightPageLayout, qt as BackofficeTabbedDetailShell, S as EntityFilterValue, ne as EntityFilterValueText, re as EntityIdFilterField, ie as EntityIdPickerDialog, h as LoginFlow, v as PasswordResetCompleteScreen, y as PasswordResetRequestScreen, Ye as RelayProvider, ee as VerifyEmailScreen, qe as backofficeReactI18nResources, f as base64UrlToBuffer, p as bufferToBase64Url, he as buildDataTableColumns, r as configureRelayEnvironment, kt as createBackofficeLazyValue, F as createI18nInstance, fn as createInlineDataReader, m as createUseAuth, on as decodeBase64ToUtf8, an as encodeUtf8ToBase64, un as formatFileSize, t as getEnvironment, n as getNetwork, pn as identityView, d as mapWebAuthnRegistrationError, u as parseSignCount, pe as requireField, de as requireLinkedRecordId, e as resetRelayStore, fe as resolveAgentStartOutcome, ue as resolveMutationOutcome, me as resolveVisibleDetailPages, g as synchronizeAuthStatusQuery, a as useBackofficeConfig, le as useBackofficeListUrlState, Qt as useConditionalSubscription, tn as useCopyToClipboard, nn as useRefetchNeededReload, rn as useReviewStatusLabel };
1628
+ export { _ as AcceptInvitationScreen, ae as BackofficeDetailBadgeRow, oe as BackofficeDetailField, ce as BackofficeDetailPayload, se as BackofficeDetailSection, te as BackofficeErrorBoundary, Ft as BackofficeFilterAction, Jt as BackofficeInlineFilterRow, Vt as BackofficeOverviewLayout, Dt as BackofficeProvider, Ut as BackofficeRelatedCountLink, ge as BackofficeRightPageLayout, Kt as BackofficeTabbedDetailShell, re as EntityFilterValue, ne as EntityFilterValueText, x as EntityIdFilterField, ie as EntityIdPickerDialog, h as LoginFlow, v as PasswordResetCompleteScreen, y as PasswordResetRequestScreen, Ye as RelayProvider, ee as VerifyEmailScreen, qe as backofficeReactI18nResources, f as base64UrlToBuffer, p as bufferToBase64Url, he as buildDataTableColumns, r as configureRelayEnvironment, Ot as createBackofficeLazyValue, F as createI18nInstance, fn as createInlineDataReader, m as createUseAuth, on as decodeBase64ToUtf8, an as encodeUtf8ToBase64, un as formatFileSize, t as getEnvironment, n as getNetwork, pn as identityView, d as mapWebAuthnRegistrationError, u as parseSignCount, pe as requireField, de as requireLinkedRecordId, e as resetRelayStore, fe as resolveAgentStartOutcome, ue as resolveMutationOutcome, me as resolveVisibleDetailPages, g as synchronizeAuthStatusQuery, o as useBackofficeConfig, le as useBackofficeListUrlState, Qt as useConditionalSubscription, tn as useCopyToClipboard, nn as useRefetchNeededReload, rn as useReviewStatusLabel };
1800
1629
 
1801
1630
  //# sourceMappingURL=backoffice-react.js.map