@abyss-project/commons-front-core 13.3.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +1 -1
  2. package/catalog/captures-plan.ts +4 -1
  3. package/catalog/catalog-entries.ts +6 -1
  4. package/catalog/expected-error.ts +6 -0
  5. package/catalog/pages/CookieConsent.tsx +38 -0
  6. package/catalog/pages/ErrorBoundary.tsx +22 -0
  7. package/catalog/pages/PasswordField.tsx +62 -0
  8. package/catalog/pages/Toast.tsx +17 -6
  9. package/catalog/pages/index.ts +6 -0
  10. package/catalog/specs/captures.spec.ts +10 -0
  11. package/catalog/specs/catalog-page.ts +6 -1
  12. package/catalog/specs/write-capture-index.ts +1 -0
  13. package/dist/CookieConsentSettings-B7NfjgaI.js +505 -0
  14. package/dist/{use-rich-intl.hook-BETUyCkW.js → Surface-BEhoEhyC.js} +844 -161
  15. package/dist/Tabs-DJ9_ZFjM.js +1946 -0
  16. package/dist/auth/components/AuthFlow/auth-flow.types.d.ts +2 -0
  17. package/dist/auth/components/AuthFlow/steps/MfaEnrollmentStep.component.d.ts +2 -0
  18. package/dist/auth/components/AuthFlow/steps/MfaStep.component.d.ts +10 -4
  19. package/dist/auth/components/AuthFlow/steps/PasskeyNudgeStep.component.d.ts +3 -1
  20. package/dist/auth/components/AuthHeroLayout/auth-hero-gradient.d.ts +18 -0
  21. package/dist/auth/components/MfaRequirementBanner/MfaRequirementBanner.component.d.ts +3 -1
  22. package/dist/auth/components/SecuritySettings/SecuritySettings.component.d.ts +1 -1
  23. package/dist/auth/components/SecuritySettings/sections/PasskeysSection.component.d.ts +6 -1
  24. package/dist/auth/components/SecuritySettings/sections/RecoveryCodesSection.component.d.ts +3 -1
  25. package/dist/auth/components/SecuritySettings/sections/TrustedDevicesSection.component.d.ts +6 -0
  26. package/dist/auth/components/index.d.ts +1 -0
  27. package/dist/auth/components/shared/AuthLoadingScreen.component.d.ts +5 -0
  28. package/dist/auth/components/shared/SingleDevicePasskeyAdvice.component.d.ts +13 -0
  29. package/dist/auth/components/shared/passkey-ceremonies.d.ts +6 -1
  30. package/dist/auth/components/shared/support-contact.d.ts +2 -0
  31. package/dist/auth/components/shared/use-async-resource.hook.d.ts +4 -1
  32. package/dist/auth/components/test-support/auth-sdk.mock.d.ts +5 -0
  33. package/dist/auth/components/test-support/auth-test-harness.d.ts +3 -0
  34. package/dist/clsx-OuTLNxxd.js +16 -0
  35. package/dist/{legacy/components/CookieConsent/CookieConsentBanner.component.d.ts → components/business/CookieConsent/CookieConsentBanner.d.ts} +1 -2
  36. package/dist/components/business/CookieConsent/CookieConsentSettings.d.ts +1 -0
  37. package/dist/{legacy/components → components/business}/CookieConsent/index.d.ts +2 -2
  38. package/dist/components/business/Support/AbyssServiceSelect.component.d.ts +26 -0
  39. package/dist/components/business/Support/SupportActionButtons.component.d.ts +7 -0
  40. package/dist/components/business/Support/SupportActivityLog.component.d.ts +7 -0
  41. package/dist/components/business/Support/SupportAttachmentsPanel.component.d.ts +7 -0
  42. package/dist/components/business/Support/SupportCategoryChip.component.d.ts +12 -0
  43. package/dist/components/business/Support/SupportCategoryGroupCards.component.d.ts +2 -0
  44. package/dist/components/business/Support/SupportCategorySelect.component.d.ts +21 -0
  45. package/dist/components/business/Support/SupportCreateTextField.d.ts +17 -0
  46. package/dist/components/business/Support/SupportMessageAttachment.component.d.ts +9 -0
  47. package/dist/components/business/Support/SupportMessageInput.component.d.ts +7 -0
  48. package/dist/components/business/Support/SupportMessageLink.component.d.ts +8 -0
  49. package/dist/components/business/Support/SupportMessageLink.component.spec.d.ts +1 -0
  50. package/dist/components/business/Support/SupportMessageThread.component.d.ts +8 -0
  51. package/dist/components/business/Support/SupportMessageThread.component.spec.d.ts +1 -0
  52. package/dist/components/business/Support/SupportPill.d.ts +18 -0
  53. package/dist/components/business/Support/SupportPriorityChip.component.d.ts +3 -0
  54. package/dist/components/business/Support/SupportSidebar.component.d.ts +7 -0
  55. package/dist/components/business/Support/SupportSidebar.component.spec.d.ts +1 -0
  56. package/dist/components/business/Support/SupportStatusBadge.component.d.ts +3 -0
  57. package/dist/components/business/Support/SupportStatusTimeline.component.d.ts +15 -0
  58. package/dist/components/business/Support/SupportSystemMessage.component.d.ts +11 -0
  59. package/dist/components/business/Support/SupportSystemMessage.component.spec.d.ts +1 -0
  60. package/dist/components/business/Support/SupportTagEditor.d.ts +15 -0
  61. package/dist/components/business/Support/SupportTicketCreateForm.component.d.ts +2 -0
  62. package/dist/components/business/Support/SupportTicketCreateForm.component.spec.d.ts +1 -0
  63. package/dist/components/business/Support/SupportTicketCreateStepper.component.d.ts +2 -0
  64. package/dist/components/business/Support/SupportTicketCreateStepper.component.spec.d.ts +1 -0
  65. package/dist/components/business/Support/SupportTicketDetail.component.d.ts +8 -0
  66. package/dist/components/business/Support/SupportTicketDetail.component.spec.d.ts +1 -0
  67. package/dist/components/business/Support/SupportTicketDetail.mobile-layout.spec.d.ts +1 -0
  68. package/dist/components/business/Support/SupportTicketList.component.spec.d.ts +1 -0
  69. package/dist/components/business/Support/SupportTicketList.week-preset.spec.d.ts +1 -0
  70. package/dist/components/business/Support/SupportTicketListFilterBar.d.ts +15 -0
  71. package/dist/components/business/Support/SupportTopBar.component.d.ts +7 -0
  72. package/dist/components/business/Support/support-action.d.ts +17 -0
  73. package/dist/components/business/Support/support-action.logic.d.ts +12 -0
  74. package/dist/components/business/Support/support-action.logic.spec.d.ts +1 -0
  75. package/dist/components/business/Support/support-attachment.logic.spec.d.ts +1 -0
  76. package/dist/components/business/Support/support-author.logic.spec.d.ts +1 -0
  77. package/dist/components/business/Support/support-create-stepper.logic.spec.d.ts +1 -0
  78. package/dist/components/business/Support/support-create.logic.d.ts +28 -0
  79. package/dist/components/business/Support/support-create.logic.spec.d.ts +1 -0
  80. package/dist/components/business/Support/support-message-anchor.d.ts +4 -0
  81. package/dist/components/business/Support/support-message-input.logic.spec.d.ts +1 -0
  82. package/dist/components/business/Support/support-service.logic.spec.d.ts +1 -0
  83. package/dist/components/business/Support/support-status-timeline.logic.spec.d.ts +1 -0
  84. package/dist/components/business/Support/support-tone.d.ts +11 -0
  85. package/dist/components/business/Support/test-support/support-detail.fixtures.d.ts +7 -0
  86. package/dist/components/business/Support/test-support/support-thread.fixtures.d.ts +9 -0
  87. package/dist/{legacy/components → components/business}/Support/types.d.ts +13 -4
  88. package/dist/components/business/Support/use-support-create-error-message.hook.d.ts +4 -0
  89. package/dist/components/business/index.d.ts +23 -0
  90. package/dist/components/inputs/ExpressionSearch/ExpressionSearch.d.ts +6 -1
  91. package/dist/components/inputs/FormField/FormField.d.ts +5 -1
  92. package/dist/components/inputs/PasswordField/PasswordField.d.ts +40 -0
  93. package/dist/components/inputs/PasswordField/PasswordField.spec.d.ts +1 -0
  94. package/dist/components/inputs/SegmentedControl/SegmentedControl.d.ts +9 -1
  95. package/dist/components/inputs/index.d.ts +1 -0
  96. package/dist/components/layers/Toast/Toast.d.ts +3 -18
  97. package/dist/components/layers/Toast/toast-clearance.d.ts +6 -0
  98. package/dist/components/layers/Toast/toast-store.d.ts +76 -0
  99. package/dist/components/states/ErrorBoundary/ErrorBoundary.d.ts +17 -0
  100. package/dist/components/states/ErrorBoundary/ErrorBoundary.spec.d.ts +1 -0
  101. package/dist/components/states/PageState/PageState.d.ts +3 -1
  102. package/dist/components/states/index.d.ts +1 -0
  103. package/dist/cookie-consent.d.ts +1 -1
  104. package/dist/cookie-consent.js +14 -15
  105. package/dist/demo/DemoBanner/DemoBanner.d.ts +16 -0
  106. package/dist/demo/DemoBanner/DemoBanner.spec.d.ts +1 -0
  107. package/dist/demo/DemoBanner/index.d.ts +1 -0
  108. package/dist/demo/demo-blocked.interceptor.d.ts +7 -0
  109. package/dist/demo/demo.en.d.ts +17 -0
  110. package/dist/demo/demo.fr.d.ts +17 -0
  111. package/dist/demo/index.d.ts +3 -0
  112. package/dist/demo/tests/demo-blocked.interceptor.spec.d.ts +1 -0
  113. package/dist/demo/use-demo-account.hook.d.ts +19 -0
  114. package/dist/design-theme-N9jJSXdK.js +27605 -0
  115. package/dist/{editors-CUsZNFfw.js → editors-QM76tqZI.js} +84 -84
  116. package/dist/editors.js +1 -1
  117. package/dist/hooks/use-rich-intl.hook.d.ts +210 -0
  118. package/dist/{index-CiDg4J7c.js → index-3-SmpH5N.js} +4 -4
  119. package/dist/{index-DErJ9c2q.js → index-4b2f7sdW.js} +2 -2
  120. package/dist/{index-DEBTvCWD.js → index-5OVR3WNo.js} +3 -3
  121. package/dist/{index-Lyt4_W7a.js → index-BKAfoA1a.js} +2 -2
  122. package/dist/{AbyssCloud-D_AbU9k7.js → index-C27b790L.js} +1438 -1083
  123. package/dist/{index-CYUixRIB.js → index-C6jhogFt.js} +2 -2
  124. package/dist/{index-D1ro2oTw.js → index-CM5COMvb.js} +2 -2
  125. package/dist/{index-BQ4GXlMJ.js → index-COUUAr5G.js} +1 -1
  126. package/dist/{index-C7a2XXcz.js → index-CQU0eEXk.js} +4 -4
  127. package/dist/{index-YzYX-H93.js → index-Ce0rv5wr.js} +3 -3
  128. package/dist/{index-CM0x-TnE.js → index-D1M_muSg.js} +2 -2
  129. package/dist/{index-CDpC4_po.js → index-D8ncJrf1.js} +2 -2
  130. package/dist/{index-DuMzZrqc.js → index-DA-HUFp6.js} +2 -2
  131. package/dist/{index-BzoBMWdL.js → index-DCk0q3d7.js} +3 -3
  132. package/dist/{index-Bn4gTAno.js → index-DW3SBSsW.js} +2 -2
  133. package/dist/{index-BhFOCfCj.js → index-DYXAfA_s.js} +2 -2
  134. package/dist/{index-pnfk6VZ7.js → index-DmAoL9-1.js} +4 -4
  135. package/dist/{index-CjV5ui_B.js → index-Taee9VIc.js} +2 -2
  136. package/dist/{index-GTkZik4b.js → index-jZGexiyT.js} +3 -3
  137. package/dist/{index-Ba41aBBN.js → index-mmrA4ErC.js} +2 -2
  138. package/dist/{index-TB7ekLl-.js → index-nKbvjf2P.js} +2 -2
  139. package/dist/{index-DobX4g2g.js → index-pX3CTxFd.js} +2 -2
  140. package/dist/index.d.ts +1 -0
  141. package/dist/index.js +14545 -9182
  142. package/dist/legacy/components/Spotlight/ProjectLinkSelector/index.d.ts +1 -4
  143. package/dist/legacy/components/index.d.ts +1 -2
  144. package/dist/legacy/legacy-support-removed.spec.d.ts +1 -0
  145. package/dist/legacy.js +13350 -17922
  146. package/dist/theme/index.d.ts +1 -1
  147. package/dist/translations/en.d.ts +104 -0
  148. package/dist/translations/fr.d.ts +104 -0
  149. package/dist/utils/index.d.ts +2 -0
  150. package/dist/utils/project-link-mode.d.ts +4 -0
  151. package/dist/utils/project-link-wording.utils.d.ts +1 -1
  152. package/dist/utils/service-config.d.ts +8 -0
  153. package/dist/utils/service-config.spec.d.ts +1 -0
  154. package/package.json +3 -3
  155. package/vite.config.ts +1 -1
  156. package/dist/AbyssCookieConsentProvider-Ds99df0E.js +0 -4562
  157. package/dist/CookieConsentSettings.component-DoWLHqw5.js +0 -78
  158. package/dist/Tabs-C1qcQ2i5.js +0 -2335
  159. package/dist/clsx-D8ItxkrZ.js +0 -446
  160. package/dist/design-theme-CYGZ6mAh.js +0 -23975
  161. package/dist/legacy/components/CookieConsent/CookieConsentSettings.component.d.ts +0 -2
  162. package/dist/legacy/components/Support/AbyssServiceSelect.component.d.ts +0 -37
  163. package/dist/legacy/components/Support/SupportActionButtons.component.d.ts +0 -3
  164. package/dist/legacy/components/Support/SupportActivityLog.component.d.ts +0 -3
  165. package/dist/legacy/components/Support/SupportAttachmentsPanel.component.d.ts +0 -3
  166. package/dist/legacy/components/Support/SupportCategoryChip.component.d.ts +0 -9
  167. package/dist/legacy/components/Support/SupportCategoryGroupCards.component.d.ts +0 -3
  168. package/dist/legacy/components/Support/SupportCategorySelect.component.d.ts +0 -22
  169. package/dist/legacy/components/Support/SupportMessageInput.component.d.ts +0 -3
  170. package/dist/legacy/components/Support/SupportMessageThread.component.d.ts +0 -3
  171. package/dist/legacy/components/Support/SupportPriorityChip.component.d.ts +0 -3
  172. package/dist/legacy/components/Support/SupportSidebar.component.d.ts +0 -3
  173. package/dist/legacy/components/Support/SupportStatusBadge.component.d.ts +0 -3
  174. package/dist/legacy/components/Support/SupportStatusTimeline.component.d.ts +0 -10
  175. package/dist/legacy/components/Support/SupportTicketCreateForm.component.d.ts +0 -3
  176. package/dist/legacy/components/Support/SupportTicketCreateStepper.component.d.ts +0 -3
  177. package/dist/legacy/components/Support/SupportTicketDetail.component.d.ts +0 -3
  178. package/dist/legacy/components/Support/SupportTopBar.component.d.ts +0 -3
  179. package/dist/legacy/components/Support/index.d.ts +0 -18
  180. /package/dist/{legacy/components/CookieConsent/AbyssCookieConsentProvider.spec.d.ts → auth/components/AuthFlow/steps/MfaStep.component.spec.d.ts} +0 -0
  181. /package/dist/{legacy/components/Support/SupportCategoryPick.component.spec.d.ts → auth/components/SecuritySettings/sections/SessionsSection.component.spec.d.ts} +0 -0
  182. /package/dist/{legacy/components/Support/SupportMessageLink.component.spec.d.ts → auth/components/shared/use-async-resource.hook.spec.d.ts} +0 -0
  183. /package/dist/{legacy/components → components/business}/CookieConsent/AbyssCookieConsentProvider.d.ts +0 -0
  184. /package/dist/{legacy/components/Support/SupportSystemMessage.component.spec.d.ts → components/business/CookieConsent/AbyssCookieConsentProvider.spec.d.ts} +0 -0
  185. /package/dist/{legacy/components/Support/SupportTicketDetail.mobile-layout.spec.d.ts → components/business/CookieConsent/CookieConsent.spec.d.ts} +0 -0
  186. /package/dist/{legacy/components/Support/SupportTicketList.week-preset.spec.d.ts → components/business/Support/AbyssServiceSelect.component.spec.d.ts} +0 -0
  187. /package/dist/{legacy/components/Support/support-attachment.logic.spec.d.ts → components/business/Support/SupportActivityLog.component.spec.d.ts} +0 -0
  188. /package/dist/{legacy/components/Support/support-author.logic.spec.d.ts → components/business/Support/SupportAttachmentsPanel.component.spec.d.ts} +0 -0
  189. /package/dist/{legacy/components/Support/support-create-stepper.logic.spec.d.ts → components/business/Support/SupportBadges.spec.d.ts} +0 -0
  190. /package/dist/{legacy/components/Support/support-message-input.logic.spec.d.ts → components/business/Support/SupportCategoryGroupCards.component.spec.d.ts} +0 -0
  191. /package/dist/{legacy/components/Support/support-service.logic.spec.d.ts → components/business/Support/SupportCategorySelect.component.spec.d.ts} +0 -0
  192. /package/dist/{legacy/components/Support/support-status-timeline.logic.spec.d.ts → components/business/Support/SupportMessageInput.component.spec.d.ts} +0 -0
  193. /package/dist/{legacy/components → components/business}/Support/SupportTicketList.component.d.ts +0 -0
  194. /package/dist/{legacy/components → components/business}/Support/support-attachment.logic.d.ts +0 -0
  195. /package/dist/{legacy/components → components/business}/Support/support-author.logic.d.ts +0 -0
  196. /package/dist/{legacy/components → components/business}/Support/support-category.logic.d.ts +0 -0
  197. /package/dist/{legacy/components → components/business}/Support/support-create-stepper.logic.d.ts +0 -0
  198. /package/dist/{legacy/components → components/business}/Support/support-message-input.logic.d.ts +0 -0
  199. /package/dist/{legacy/components → components/business}/Support/support-service.logic.d.ts +0 -0
  200. /package/dist/{legacy/components → components/business}/Support/support-status-timeline.logic.d.ts +0 -0
  201. /package/dist/{legacy/components → components/business}/Support/support-system-message.logic.d.ts +0 -0
@@ -1,14 +1,403 @@
1
- import { jsx as v } from "react/jsx-runtime";
2
- import { useIntl as k } from "react-intl";
3
- import { useCallback as M, useMemo as U } from "react";
4
- import { enTranslation as G, frTranslation as F } from "@abyss-project/main";
5
- import { l as P } from "./lazy-value-Co76vxsM.js";
6
- var Z = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
7
- function $(e) {
8
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
1
+ import { jsx as p, jsxs as O } from "react/jsx-runtime";
2
+ import { useId as F, useRef as z, useState as Y, useCallback as K, useMemo as ie, forwardRef as re } from "react";
3
+ import { useIntl as x } from "react-intl";
4
+ import ae from "@mui/material/Dialog";
5
+ import X from "@mui/material/IconButton";
6
+ import { alpha as ne, styled as f, useTheme as se } from "@mui/material/styles";
7
+ import J from "@mui/icons-material/Close";
8
+ import H from "@mui/material/useMediaQuery";
9
+ import le from "@mui/material/Modal";
10
+ import ce from "@mui/material/Slide";
11
+ import { enTranslation as de, frTranslation as ue } from "@abyss-project/main";
12
+ import { l as $ } from "./lazy-value-Co76vxsM.js";
13
+ var pe = /* @__PURE__ */ ((e) => (e.Dark = "dark", e.Light = "light", e))(pe || {});
14
+ const me = 266, c = (e, t) => ({ l: e, c: t, h: me }), ct = {
15
+ dark: {
16
+ 1: c(0.155, 0.034),
17
+ 2: c(0.17, 0.036),
18
+ 3: c(0.2, 0.04),
19
+ 4: c(0.24, 0.042),
20
+ 5: c(0.265, 0.042),
21
+ 6: c(0.295, 0.042),
22
+ 7: c(0.37, 0.045),
23
+ 8: c(0.54, 0.045),
24
+ 9: c(0.63, 0.035),
25
+ 10: c(0.72, 0.03),
26
+ 11: c(0.79, 0.03),
27
+ 12: c(0.96, 0.01)
28
+ },
29
+ light: {
30
+ 1: c(0.995, 3e-3),
31
+ 2: c(0.975, 8e-3),
32
+ 3: c(0.96, 0.012),
33
+ 4: c(0.935, 0.016),
34
+ 5: c(0.91, 0.018),
35
+ 6: c(0.885, 0.02),
36
+ 7: c(0.8, 0.03),
37
+ 8: c(0.6, 0.035),
38
+ 9: c(0.5, 0.04),
39
+ 10: c(0.46, 0.042),
40
+ 11: c(0.42, 0.045),
41
+ 12: c(0.22, 0.045)
42
+ }
43
+ }, dt = {
44
+ sans: '"Geist Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
45
+ mono: '"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace'
46
+ }, ut = {
47
+ caption: 11,
48
+ small: 12,
49
+ body: 13,
50
+ bodyComfort: 14,
51
+ bodyMobile: 15,
52
+ sectionTitle: 16,
53
+ pageTitle: 22,
54
+ figure: 26,
55
+ mobileLargeTitle: 30
56
+ }, Q = {
57
+ regular: 400,
58
+ medium: 500,
59
+ semibold: 600,
60
+ bold: 700
61
+ }, pt = [0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64], mt = {
62
+ sm: 4,
63
+ md: 6,
64
+ lg: 12
65
+ }, gt = {
66
+ fast: 120,
67
+ base: 180,
68
+ slow: 260
69
+ }, ht = {
70
+ standard: "cubic-bezier(0.2, 0, 0, 1)",
71
+ sheet: "cubic-bezier(0.32, 0.72, 0, 1)"
72
+ }, V = {
73
+ xs: 0,
74
+ sm: 480,
75
+ md: 768,
76
+ lg: 1200,
77
+ xl: 1600
78
+ }, ft = {
79
+ comfortable: { row: 40, control: 32 },
80
+ compact: { row: 30, control: 28 },
81
+ touchTarget: 44
82
+ };
83
+ var T = /* @__PURE__ */ ((e) => (e.Mobile = "mobile", e.Tablet = "tablet", e.Desktop = "desktop", e))(T || {});
84
+ const Z = {
85
+ tablet: V.md,
86
+ desktop: V.lg
87
+ }, ge = 0.05, k = (e) => `(min-width:${Z[e]}px)`, M = (e) => `(max-width:${Z[e] - ge}px)`, D = {
88
+ /** From the start of `tier` up. */
89
+ up: (e) => `@media ${k(e)}`,
90
+ /** Below the start of `tier`. */
91
+ down: (e) => `@media ${M(e)}`,
92
+ /** The widths of `tier` only. */
93
+ only: (e) => {
94
+ switch (e) {
95
+ case "mobile":
96
+ return `@media ${M(
97
+ "tablet"
98
+ /* Tablet */
99
+ )}`;
100
+ case "tablet":
101
+ return `@media ${k(
102
+ "tablet"
103
+ /* Tablet */
104
+ )} and ${M(
105
+ "desktop"
106
+ /* Desktop */
107
+ )}`;
108
+ case "desktop":
109
+ return `@media ${k(
110
+ "desktop"
111
+ /* Desktop */
112
+ )}`;
113
+ }
114
+ }
115
+ }, he = 0.14, r = (e) => `${e}px`, L = (e) => `1px solid ${e}`, At = (e) => ne(e, he), fe = (e) => ({
116
+ outline: `2px solid ${e.design.tokens["focus.ring"]}`,
117
+ outlineOffset: "2px"
118
+ }), yt = (e, t) => t === "small" ? e.design.densityValues.compact.control : e.design.densityValues[e.design.density].control, Et = (e) => e.design.densityValues[e.design.density].row, vt = (e) => ({
119
+ [D.down(T.Tablet)]: {
120
+ minHeight: r(e.design.densityValues.touchTarget)
121
+ }
122
+ }), Ae = (e) => ({
123
+ [D.down(T.Tablet)]: {
124
+ minWidth: r(e.design.densityValues.touchTarget),
125
+ minHeight: r(e.design.densityValues.touchTarget)
126
+ }
127
+ }), ye = (e, t, o = "fast") => t.map(
128
+ (i) => `${i} ${e.design.durations[o]}ms ${e.design.easings.standard}`
129
+ ).join(", "), Ee = () => {
130
+ const e = H(D.up(T.Desktop), {
131
+ noSsr: !0
132
+ }), t = H(D.down(T.Tablet), {
133
+ noSsr: !0
134
+ });
135
+ return e ? T.Desktop : t ? T.Mobile : T.Tablet;
136
+ };
137
+ var _ = /* @__PURE__ */ ((e) => (e.Top = "top", e.Bottom = "bottom", e.Left = "left", e.Right = "right", e))(_ || {});
138
+ const P = (e, t) => `calc(${r(t)} + env(safe-area-inset-${e}))`, ve = 0.3, be = f("div")({
139
+ position: "absolute",
140
+ left: 0,
141
+ right: 0,
142
+ bottom: 0,
143
+ maxHeight: "100%",
144
+ display: "flex",
145
+ outline: "none"
146
+ }), Se = f("div")(({ theme: e }) => {
147
+ const { tokens: t, radii: o, space: i, elevations: a, fonts: n } = e.design;
148
+ return {
149
+ flex: "1 1 auto",
150
+ minWidth: 0,
151
+ maxHeight: `calc(100vh - ${P(_.Top, i[8])})`,
152
+ display: "flex",
153
+ flexDirection: "column",
154
+ gap: r(i[3]),
155
+ paddingTop: r(i[2]),
156
+ paddingBottom: P(_.Bottom, i[6]),
157
+ paddingLeft: P(_.Left, i[4]),
158
+ paddingRight: P(_.Right, i[4]),
159
+ backgroundColor: t["bg.surface"],
160
+ color: t["text.primary"],
161
+ fontFamily: n.sans,
162
+ borderTop: L(t["border.strong"]),
163
+ borderTopLeftRadius: r(o.lg),
164
+ borderTopRightRadius: r(o.lg),
165
+ boxShadow: a.modal,
166
+ outline: "none",
167
+ position: "relative"
168
+ };
169
+ }), Te = f(X)(({ theme: e }) => ({
170
+ position: "absolute",
171
+ top: r(e.design.space[1]),
172
+ right: P(_.Right, e.design.space[2]),
173
+ ...Ae(e)
174
+ })), Ne = f("div")(({ theme: e }) => {
175
+ const { space: t, densityValues: o } = e.design;
176
+ return {
177
+ flex: "none",
178
+ display: "flex",
179
+ flexDirection: "column",
180
+ alignItems: "center",
181
+ gap: r(t[2]),
182
+ minHeight: r(o.touchTarget / 2),
183
+ touchAction: "none",
184
+ cursor: "grab"
185
+ };
186
+ }), Ce = f("span")(({ theme: e }) => {
187
+ const { tokens: t, radii: o, space: i } = e.design;
188
+ return {
189
+ width: r(i[8]),
190
+ height: r(i[1]),
191
+ borderRadius: r(o.sm),
192
+ backgroundColor: t["border.strong"]
193
+ };
194
+ }), Re = f("h2", {
195
+ shouldForwardProp: (e) => e !== "besideClose"
196
+ })(({ theme: e, besideClose: t }) => {
197
+ const { typeScale: o, densityValues: i, space: a } = e.design;
198
+ return {
199
+ alignSelf: "stretch",
200
+ margin: 0,
201
+ // Clear of the close button in the corner.
202
+ paddingRight: t ? r(i.touchTarget + a[2]) : void 0,
203
+ fontSize: r(o.sectionTitle),
204
+ fontWeight: Q.semibold,
205
+ overflowWrap: "anywhere"
206
+ };
207
+ }), Ie = f("div")({
208
+ flex: "1 1 auto",
209
+ minHeight: 0,
210
+ overflowY: "auto",
211
+ overscrollBehavior: "contain"
212
+ });
213
+ function Oe({
214
+ open: e,
215
+ onClose: t,
216
+ title: o,
217
+ closeLabel: i,
218
+ children: a
219
+ }) {
220
+ const n = se(), y = x(), A = F(), E = z(null), l = z(null), [S, b] = Y(0), [C, u] = Y(!1), d = (g) => {
221
+ g.currentTarget.setPointerCapture(g.pointerId), l.current = g.clientY, u(!0);
222
+ }, s = (g) => {
223
+ l.current !== null && b(Math.max(0, g.clientY - l.current));
224
+ }, m = (g) => {
225
+ var B;
226
+ if (l.current === null)
227
+ return;
228
+ const I = Math.max(0, g.clientY - l.current), N = ((B = E.current) == null ? void 0 : B.getBoundingClientRect().height) ?? 0;
229
+ l.current = null, u(!1), b(0), N > 0 && I >= N * ve && t();
230
+ }, v = () => {
231
+ l.current = null, u(!1), b(0);
232
+ };
233
+ return /* @__PURE__ */ p(le, { open: e, onClose: () => t(), children: /* @__PURE__ */ p(
234
+ ce,
235
+ {
236
+ in: e,
237
+ direction: "up",
238
+ timeout: n.design.durations.slow,
239
+ easing: n.design.easings.sheet,
240
+ children: /* @__PURE__ */ p(be, { children: /* @__PURE__ */ O(
241
+ Se,
242
+ {
243
+ ref: E,
244
+ role: "dialog",
245
+ "aria-modal": "true",
246
+ "aria-labelledby": o ? A : void 0,
247
+ "aria-label": o ? void 0 : y.formatMessage({ id: "ds.mobile.bottom-sheet.label" }),
248
+ tabIndex: -1,
249
+ style: {
250
+ transform: `translateY(${r(S)})`,
251
+ transition: C ? "none" : `transform ${n.design.durations.base}ms ${n.design.easings.sheet}`
252
+ },
253
+ children: [
254
+ /* @__PURE__ */ O(
255
+ Ne,
256
+ {
257
+ "data-testid": "bottom-sheet-drag-zone",
258
+ onPointerDown: d,
259
+ onPointerMove: s,
260
+ onPointerUp: m,
261
+ onPointerCancel: v,
262
+ children: [
263
+ /* @__PURE__ */ p(Ce, { "aria-hidden": "true" }),
264
+ o ? /* @__PURE__ */ p(Re, { id: A, besideClose: i !== void 0, children: o }) : null
265
+ ]
266
+ }
267
+ ),
268
+ i !== void 0 && /* @__PURE__ */ p(Te, { "aria-label": i, onClick: () => t(), children: /* @__PURE__ */ p(J, { "aria-hidden": !0 }) }),
269
+ /* @__PURE__ */ p(Ie, { children: a })
270
+ ]
271
+ }
272
+ ) })
273
+ }
274
+ ) });
9
275
  }
10
- const R = (e) => e, D = {
11
- fr: R({
276
+ var _e = /* @__PURE__ */ ((e) => (e.Small = "sm", e.Medium = "md", e.Large = "lg", e))(_e || {});
277
+ const we = f(ae)(({ theme: e }) => {
278
+ const { tokens: t, fonts: o, space: i } = e.design;
279
+ return {
280
+ "& .MuiDialog-paper": {
281
+ margin: r(i[4]),
282
+ maxHeight: `calc(100% - ${r(i[7])})`,
283
+ backgroundColor: t["bg.surface"],
284
+ color: t["text.primary"],
285
+ fontFamily: o.sans,
286
+ overflow: "hidden"
287
+ },
288
+ "& .MuiDialog-paperFullWidth": {
289
+ width: `calc(100% - ${r(i[7])})`
290
+ }
291
+ };
292
+ }), Pe = f("div")(({ theme: e }) => {
293
+ const { tokens: t, space: o } = e.design;
294
+ return {
295
+ flex: "none",
296
+ display: "flex",
297
+ justifyContent: "space-between",
298
+ alignItems: "flex-start",
299
+ gap: r(o[4]),
300
+ padding: `${r(o[4])} ${r(o[5])}`,
301
+ borderBottom: L(t["border.subtle"])
302
+ };
303
+ }), De = f("div")({ minWidth: 0 }), Le = f("h2")(({ theme: e }) => ({
304
+ margin: 0,
305
+ fontSize: r(e.design.typeScale.sectionTitle),
306
+ fontWeight: Q.semibold,
307
+ overflowWrap: "anywhere"
308
+ })), ke = f("p")(({ theme: e }) => {
309
+ const { tokens: t, space: o, typeScale: i } = e.design;
310
+ return {
311
+ margin: `${r(o[1])} 0 0`,
312
+ color: t["text.muted"],
313
+ fontSize: r(i.body),
314
+ overflowWrap: "anywhere"
315
+ };
316
+ }), Me = f("div")(({ theme: e }) => ({
317
+ flex: "1 1 auto",
318
+ minHeight: 0,
319
+ overflowY: "auto",
320
+ padding: r(e.design.space[5]),
321
+ fontSize: r(e.design.typeScale.body)
322
+ })), Ue = f("div")(({ theme: e }) => {
323
+ const { tokens: t, space: o } = e.design;
324
+ return {
325
+ flex: "none",
326
+ display: "flex",
327
+ flexWrap: "wrap",
328
+ justifyContent: "flex-end",
329
+ alignItems: "center",
330
+ gap: r(o[3]),
331
+ padding: `${r(o[3])} ${r(o[5])}`,
332
+ borderTop: L(t["border.subtle"])
333
+ };
334
+ }), Ge = f("p")(({ theme: e }) => ({
335
+ margin: `0 0 ${r(e.design.space[3])}`,
336
+ color: e.design.tokens["text.muted"],
337
+ fontSize: r(e.design.typeScale.bodyMobile),
338
+ overflowWrap: "anywhere"
339
+ })), Fe = f("div")(({ theme: e }) => ({
340
+ display: "flex",
341
+ flexWrap: "wrap",
342
+ gap: r(e.design.space[2]),
343
+ marginTop: r(e.design.space[4]),
344
+ "& > *": { flex: "1 1 0" }
345
+ }));
346
+ function bt({
347
+ open: e,
348
+ onClose: t,
349
+ title: o,
350
+ description: i,
351
+ size: a = "md",
352
+ actions: n,
353
+ children: y
354
+ }) {
355
+ const A = x(), E = Ee() === T.Mobile, l = F(), S = F();
356
+ return E ? /* @__PURE__ */ O(
357
+ Oe,
358
+ {
359
+ open: e,
360
+ onClose: t,
361
+ title: o,
362
+ closeLabel: A.formatMessage({ id: "ds.layers.modal.close" }),
363
+ children: [
364
+ i !== void 0 && /* @__PURE__ */ p(Ge, { children: i }),
365
+ y,
366
+ n !== void 0 && /* @__PURE__ */ p(Fe, { children: n })
367
+ ]
368
+ }
369
+ ) : /* @__PURE__ */ O(
370
+ we,
371
+ {
372
+ open: e,
373
+ onClose: () => t(),
374
+ maxWidth: a,
375
+ fullWidth: !0,
376
+ "aria-labelledby": l,
377
+ "aria-describedby": i !== void 0 ? S : void 0,
378
+ children: [
379
+ /* @__PURE__ */ O(Pe, { children: [
380
+ /* @__PURE__ */ O(De, { children: [
381
+ /* @__PURE__ */ p(Le, { id: l, children: o }),
382
+ i !== void 0 && /* @__PURE__ */ p(ke, { id: S, children: i })
383
+ ] }),
384
+ /* @__PURE__ */ p(
385
+ X,
386
+ {
387
+ "aria-label": A.formatMessage({ id: "ds.layers.modal.close" }),
388
+ onClick: t,
389
+ children: /* @__PURE__ */ p(J, { "aria-hidden": !0 })
390
+ }
391
+ )
392
+ ] }),
393
+ /* @__PURE__ */ p(Me, { children: y }),
394
+ n !== void 0 && /* @__PURE__ */ p(Ue, { children: n })
395
+ ]
396
+ }
397
+ );
398
+ }
399
+ const j = (e) => e, ee = {
400
+ fr: j({
12
401
  PROJECTS_COUNT: "Projets",
13
402
  MEMBERS_COUNT: "Membres",
14
403
  TEAM_COUNT: "Équipes",
@@ -68,7 +457,7 @@ const R = (e) => e, D = {
68
457
  BANKING_PSD2_REFRESHES_MONTH: "Rafraîchissements PSD2 / mois",
69
458
  BANKING_SYSTEM_RESNAPSHOTS_MONTH: "Recalculs système / mois"
70
459
  }),
71
- en: R({
460
+ en: j({
72
461
  PROJECTS_COUNT: "Projects",
73
462
  MEMBERS_COUNT: "Members",
74
463
  TEAM_COUNT: "Teams",
@@ -129,26 +518,26 @@ const R = (e) => e, D = {
129
518
  BANKING_SYSTEM_RESNAPSHOTS_MONTH: "System resnapshots / month"
130
519
  })
131
520
  };
132
- var y = /* @__PURE__ */ ((e) => (e.FREEMIUM = "FREEMIUM", e.DEFAULT = "DEFAULT", e.CUSTOM = "CUSTOM", e.SYSTEM = "SYSTEM", e))(y || {}), A = /* @__PURE__ */ ((e) => (e.FREEMIUM = "freemium", e.STARTER = "starter", e.PRO = "pro", e.ENTERPRISE = "enterprise", e.CUSTOM = "custom", e.INTERNAL = "internal", e.FAMILY_FREE = "family-free", e.FAMILY_PAID = "family-paid", e))(A || {});
133
- const B = {
134
- [y.FREEMIUM]: A.FREEMIUM,
135
- [y.DEFAULT]: "paid",
136
- [y.SYSTEM]: A.INTERNAL,
137
- [y.CUSTOM]: A.CUSTOM
138
- }, x = new Set(Object.values(A)), C = (e) => e ? e.tier === y.CUSTOM ? A.CUSTOM : e.catalogKey && x.has(e.catalogKey) ? e.catalogKey : B[e.tier] ?? "paid" : A.FREEMIUM, ee = (e, u) => {
139
- const s = (p) => {
140
- const h = e[`${p}Tier`];
141
- if (typeof h != "string")
521
+ var w = /* @__PURE__ */ ((e) => (e.FREEMIUM = "FREEMIUM", e.DEFAULT = "DEFAULT", e.CUSTOM = "CUSTOM", e.SYSTEM = "SYSTEM", e))(w || {}), R = /* @__PURE__ */ ((e) => (e.FREEMIUM = "freemium", e.STARTER = "starter", e.PRO = "pro", e.ENTERPRISE = "enterprise", e.CUSTOM = "custom", e.INTERNAL = "internal", e.FAMILY_FREE = "family-free", e.FAMILY_PAID = "family-paid", e.DEMO = "demo", e))(R || {});
522
+ const xe = {
523
+ [w.FREEMIUM]: R.FREEMIUM,
524
+ [w.DEFAULT]: "paid",
525
+ [w.SYSTEM]: R.INTERNAL,
526
+ [w.CUSTOM]: R.CUSTOM
527
+ }, Be = new Set(Object.values(R)), U = (e) => e ? e.tier === w.CUSTOM ? R.CUSTOM : e.catalogKey && Be.has(e.catalogKey) ? e.catalogKey : xe[e.tier] ?? "paid" : R.FREEMIUM, St = (e, t) => {
528
+ const o = (A) => {
529
+ const E = e[`${A}Tier`];
530
+ if (typeof E != "string")
142
531
  return null;
143
- const m = e[`${p}CatalogKey`];
532
+ const l = e[`${A}CatalogKey`];
144
533
  return {
145
- tier: h,
146
- catalogKey: typeof m == "string" ? m : null
534
+ tier: E,
535
+ catalogKey: typeof l == "string" ? l : null
147
536
  };
148
- }, d = {}, o = s("plan"), r = s("oldPlan"), g = s("newPlan");
149
- return o && (d.planName = u(C(o))), r && (d.oldPlanName = u(C(r))), g && (d.newPlanName = u(C(g))), d;
150
- }, O = (e) => e, n = {
151
- fr: O({
537
+ }, i = {}, a = o("plan"), n = o("oldPlan"), y = o("newPlan");
538
+ return a && (i.planName = t(U(a))), n && (i.oldPlanName = t(U(n))), y && (i.newPlanName = t(U(y))), i;
539
+ }, q = (e) => e, h = {
540
+ fr: q({
152
541
  freemium: "Gratuit",
153
542
  starter: "Starter",
154
543
  pro: "Pro",
@@ -156,10 +545,11 @@ const B = {
156
545
  internal: "Interne",
157
546
  "family-free": "Famille gratuit",
158
547
  "family-paid": "Famille",
548
+ demo: "Démonstration",
159
549
  custom: "Plan personnalisé",
160
550
  paid: "Plan payant"
161
551
  }),
162
- en: O({
552
+ en: q({
163
553
  freemium: "Free",
164
554
  starter: "Starter",
165
555
  pro: "Pro",
@@ -167,10 +557,27 @@ const B = {
167
557
  internal: "Internal",
168
558
  "family-free": "Family free",
169
559
  "family-paid": "Family",
560
+ demo: "Demo",
170
561
  custom: "Custom plan",
171
562
  paid: "Paid plan"
172
563
  })
173
- }, z = {
564
+ }, ze = {
565
+ banner: {
566
+ title: "Compte de démonstration",
567
+ summary: "{label} · expire le {date}",
568
+ "expires-in": "(dans {days, plural, one {# jour} other {# jours}})",
569
+ "expires-today": "(aujourd’hui)",
570
+ reset: "Réinitialiser",
571
+ "learn-more": "En savoir plus",
572
+ "reset-dialog": {
573
+ title: "Réinitialiser la démonstration ?",
574
+ body: "Les données de tous les comptes du groupe reviennent à leur état de départ. Ce que vous avez créé ou modifié sera perdu.",
575
+ confirm: "Réinitialiser"
576
+ }
577
+ },
578
+ blocked: "Indisponible en démo"
579
+ }, Ye = {
580
+ demo: ze,
174
581
  "space-display-name": {
175
582
  personal: "Mon Cloud",
176
583
  "perso-in-org": "Mon Cloud (dans org)",
@@ -260,7 +667,7 @@ const B = {
260
667
  },
261
668
  // Metric names come from @abyss-project/main's `billing-metric-label` table, their single
262
669
  // source (the invoices, their PDF and the overage e-mail read it too).
263
- metric: D.fr
670
+ metric: ee.fr
264
671
  },
265
672
  "error-page": {
266
673
  title: "Une erreur est survenue",
@@ -272,13 +679,25 @@ const B = {
272
679
  "download-details": "Télécharger le rapport",
273
680
  "footer-hint": "Si le problème persiste, merci de nous envoyer le rapport téléchargé.",
274
681
  report: {
275
- "comment-placeholder": "Décris brièvement ce que tu faisais (optionnel)",
682
+ "comment-placeholder": "Décrivez brièvement ce que vous faisiez (optionnel)",
276
683
  send: "Envoyer le rapport",
277
684
  sending: "Envoi en cours…",
278
685
  sent: "Rapport envoyé ✓",
279
686
  "error-retry": "L'envoi a échoué — réessayer"
280
687
  }
281
688
  },
689
+ "error-boundary": {
690
+ title: "Cette page a rencontré une erreur",
691
+ "go-home": "Retour à l’accueil",
692
+ "show-details": "Afficher le détail technique",
693
+ "hide-details": "Masquer le détail technique",
694
+ "details-label": "Détail technique",
695
+ message: "Message",
696
+ "component-stack": "Pile de composants",
697
+ copy: "Copier le détail",
698
+ copied: "Détail copié",
699
+ "copy-failed": "La copie a échoué. Sélectionnez le texte pour le copier."
700
+ },
282
701
  cookies: {
283
702
  banner: {
284
703
  title: "Vos préférences de cookies",
@@ -899,36 +1318,40 @@ const B = {
899
1318
  // Plan names come from @abyss-project/main's `plan-name` table, their single source.
900
1319
  plan: {
901
1320
  freemium: {
902
- name: n.fr.freemium,
1321
+ name: h.fr.freemium,
903
1322
  description: "Pour démarrer sans engagement"
904
1323
  },
905
1324
  starter: {
906
- name: n.fr.starter,
1325
+ name: h.fr.starter,
907
1326
  description: "Pour les individus et petites équipes"
908
1327
  },
909
1328
  pro: {
910
- name: n.fr.pro,
1329
+ name: h.fr.pro,
911
1330
  description: "Pour les équipes professionnelles"
912
1331
  },
913
1332
  enterprise: {
914
- name: n.fr.enterprise,
1333
+ name: h.fr.enterprise,
915
1334
  description: "Pour les grandes organisations"
916
1335
  },
917
1336
  internal: {
918
- name: n.fr.internal,
1337
+ name: h.fr.internal,
919
1338
  description: "Usage interne Abyss"
920
1339
  },
921
1340
  "family-free": {
922
- name: n.fr["family-free"],
1341
+ name: h.fr["family-free"],
923
1342
  description: "Jusqu'à 6 membres, espaces partagés"
924
1343
  },
925
1344
  "family-paid": {
926
- name: n.fr["family-paid"],
1345
+ name: h.fr["family-paid"],
927
1346
  description: "Jusqu'à 12 membres + bonus sur vos quotas perso"
928
1347
  },
1348
+ demo: {
1349
+ name: h.fr.demo,
1350
+ description: "Compte de démonstration : tous les services inclus"
1351
+ },
929
1352
  // Names only: a bespoke plan and a paid plan outside the catalog have no catalog pitch.
930
- custom: { name: n.fr.custom },
931
- paid: { name: n.fr.paid }
1353
+ custom: { name: h.fr.custom },
1354
+ paid: { name: h.fr.paid }
932
1355
  },
933
1356
  "plan-feature": {
934
1357
  PROJECTS_COUNT: "{unlimited, select, true {Projets illimités} other {{limit} projets}}",
@@ -1028,7 +1451,17 @@ const B = {
1028
1451
  "filter-search": "Rechercher...",
1029
1452
  "filter-status": "Statut",
1030
1453
  "filter-category": "Catégorie",
1031
- "clear-all": "Effacer tout"
1454
+ "clear-all": "Effacer tout",
1455
+ "filter-period": "Période",
1456
+ "empty-filtered": "Aucun ticket ne correspond à ces filtres",
1457
+ "column-ticket": "Ticket",
1458
+ "column-requester": "Demandeur",
1459
+ "column-status": "Statut",
1460
+ "column-priority": "Priorité",
1461
+ "column-category": "Catégorie",
1462
+ "column-actions": "Actions",
1463
+ total: "{count, plural, one {# ticket} other {# tickets}}",
1464
+ pagination: "Pages des tickets de support"
1032
1465
  },
1033
1466
  create: {
1034
1467
  title: "Nouveau ticket de support",
@@ -1038,6 +1471,7 @@ const B = {
1038
1471
  "field-description-placeholder": "Donnez des détails sur votre problème...",
1039
1472
  "field-category": "Catégorie",
1040
1473
  "field-priority": "Priorité",
1474
+ "service-none": "Aucun service",
1041
1475
  "field-service": "Service",
1042
1476
  "field-priority-reason": "Raison de la priorité",
1043
1477
  "field-priority-reason-placeholder": "Expliquez pourquoi c'est prioritaire...",
@@ -1045,7 +1479,12 @@ const B = {
1045
1479
  submit: "Envoyer le ticket",
1046
1480
  back: "Retour",
1047
1481
  cancel: "Annuler",
1048
- "attachment-failed": "Échec de l'envoi de la pièce jointe « {name} ». Vous pouvez réessayer depuis le ticket."
1482
+ "attachment-failed": "Échec de l'envoi de la pièce jointe « {name} ». Vous pouvez réessayer depuis le ticket.",
1483
+ "error-title": "Le titre doit comporter entre 3 et 255 caractères.",
1484
+ "error-description": "La description doit comporter au moins 10 caractères.",
1485
+ "error-category": "Choisissez une catégorie.",
1486
+ "error-summary": "Corrigez les champs signalés avant d’envoyer le ticket.",
1487
+ "submit-error": "Le ticket n’a pas pu être envoyé. Veuillez réessayer dans un instant."
1049
1488
  },
1050
1489
  system: {
1051
1490
  PROPOSED: "Abyss Founders a été proposé à l'organisation.",
@@ -1108,7 +1547,8 @@ const B = {
1108
1547
  "confirm-delete": "Supprimer ce message ?",
1109
1548
  terminalMessage: "Ce ticket est {status}",
1110
1549
  addTag: "Ajouter un tag",
1111
- tags: "Tags"
1550
+ tags: "Tags",
1551
+ back: "Retour aux tickets"
1112
1552
  },
1113
1553
  sidebar: {
1114
1554
  status: "Statut",
@@ -1138,6 +1578,11 @@ const B = {
1138
1578
  "assign-to-me": "M'assigner",
1139
1579
  "copy-user-id": "Copier l'ID de l'utilisateur",
1140
1580
  "copy-organization-id": "Copier l'ID de l'organisation",
1581
+ "id-copied": "Identifiant copié",
1582
+ "remove-tag": "Retirer le tag {name}",
1583
+ "create-tag": "Créer le tag « {name} »",
1584
+ "tag-search": "Rechercher ou créer un tag",
1585
+ "no-tag-found": "Aucun tag disponible",
1141
1586
  "archived-at": "Archivé le",
1142
1587
  activity: "Activité",
1143
1588
  "activity-action": {
@@ -1168,9 +1613,16 @@ const B = {
1168
1613
  PUT_ON_HOLD: "Mettre en attente",
1169
1614
  RESUME: "Reprendre",
1170
1615
  ARCHIVE: "Archiver",
1616
+ "TAKE_OVER-confirm": "Êtes-vous sûr de vouloir prendre ce ticket en charge ?",
1617
+ "RESOLVE-confirm": "Êtes-vous sûr de vouloir résoudre ce ticket ?",
1618
+ "REOPEN-confirm": "Êtes-vous sûr de vouloir rouvrir ce ticket ?",
1619
+ "ESCALATE-confirm": "Êtes-vous sûr de vouloir escalader ce ticket ?",
1620
+ "PUT_ON_HOLD-confirm": "Êtes-vous sûr de vouloir mettre ce ticket en attente ?",
1621
+ "RESUME-confirm": "Êtes-vous sûr de vouloir reprendre ce ticket ?",
1171
1622
  "CLOSE-confirm": "Êtes-vous sûr de vouloir fermer ce ticket ?",
1172
1623
  "ARCHIVE-confirm": "Êtes-vous sûr de vouloir archiver ce ticket ?",
1173
- "reason-placeholder": "Raison (optionnel)..."
1624
+ "reason-placeholder": "Raison (optionnel)...",
1625
+ more: "Autres actions"
1174
1626
  },
1175
1627
  attachments: {
1176
1628
  title: "Pièces jointes",
@@ -1198,21 +1650,23 @@ const B = {
1198
1650
  step: {
1199
1651
  forWho: {
1200
1652
  label: "Pour qui ?",
1201
- help: "Indique l'utilisateur ou l'organisation concerné par la demande."
1653
+ help: "Indiquez l'utilisateur ou l'organisation concerné par la demande."
1202
1654
  },
1203
1655
  category: {
1204
1656
  label: "Catégorie",
1205
- help: "Choisis la catégorie qui décrit le mieux ton problème pour accélérer le traitement."
1657
+ help: "Choisissez la catégorie qui décrit le mieux votre problème pour accélérer le traitement."
1206
1658
  },
1207
1659
  details: {
1208
1660
  label: "Détails",
1209
- help: "Donne un titre clair et décris ton problème avec le plus de détails possible (étapes, message d'erreur…)."
1661
+ help: "Donnez un titre clair et décrivez votre problème avec le plus de détails possible (étapes, message d'erreur…)."
1210
1662
  },
1211
1663
  priority: {
1212
1664
  label: "Priorité",
1213
- help: "Choisis l'urgence. Une priorité haute/critique demande une justification."
1665
+ help: "Choisissez l'urgence. Une priorité haute ou critique demande une justification."
1214
1666
  }
1215
1667
  },
1668
+ progress: "Étape {current} sur {total}",
1669
+ "attachment-remove": "Retirer {name}",
1216
1670
  next: "Suivant",
1217
1671
  "attachments-title": "Pièces jointes"
1218
1672
  },
@@ -1313,6 +1767,12 @@ const B = {
1313
1767
  "recovery-label": "Code de récupération",
1314
1768
  submit: "Vérifier",
1315
1769
  "passkey-submit": "Utiliser ma passkey",
1770
+ "trust-device": "Faire confiance à ce navigateur pendant 30 jours",
1771
+ help: {
1772
+ title: "Votre facteur ne fonctionne pas ici ?",
1773
+ passkey: "Si votre passkey est sur votre téléphone, choisissez « Utiliser un autre appareil » dans la fenêtre du navigateur, puis scannez le QR code.",
1774
+ "no-access": "Vous n’avez plus accès à aucun facteur ? Écrivez-nous à <mail>{email}</mail>."
1775
+ },
1316
1776
  use: {
1317
1777
  totp: "Utiliser mon application d’authentification",
1318
1778
  passkey: "Utiliser ma passkey",
@@ -1340,6 +1800,12 @@ const B = {
1340
1800
  continue: "Continuer"
1341
1801
  },
1342
1802
  "passkey-cancelled": "Passkey annulée. Réessayez, ou choisissez une autre méthode.",
1803
+ "portable-factor": {
1804
+ title: "Votre passkey est liée à cet appareil",
1805
+ message: "Votre seule passkey ne fonctionne que sur cet appareil. Ajoutez une application d’authentification ou une passkey sur votre téléphone.",
1806
+ add: "Ajouter un autre moyen",
1807
+ later: "Plus tard"
1808
+ },
1343
1809
  "change-email": "Utiliser une autre adresse",
1344
1810
  restart: "Recommencer"
1345
1811
  },
@@ -1448,7 +1914,30 @@ const B = {
1448
1914
  slack: "Slack",
1449
1915
  totp: "Application d’authentification",
1450
1916
  recovery: "Code de récupération",
1451
- impersonation: "Accès support"
1917
+ impersonation: "Accès support",
1918
+ demo_link: "Lien de connexion de démonstration",
1919
+ trusted_device: "Appareil de confiance"
1920
+ },
1921
+ "trusted-devices": {
1922
+ title: "Appareils de confiance",
1923
+ lede: "Sur ces navigateurs, la connexion ne demande pas de second facteur pendant 30 jours. Retirez-en un pour que le second facteur soit de nouveau demandé.",
1924
+ device: "Appareil",
1925
+ "added-on": "Ajouté le {date}",
1926
+ "last-used": "Dernier usage",
1927
+ "last-used-on": "Dernier usage : {value}",
1928
+ expires: "Expire le",
1929
+ "expires-on": "Expire le {date}",
1930
+ actions: "Actions",
1931
+ current: "Cet appareil",
1932
+ never: "Jamais utilisé",
1933
+ revoke: "Retirer",
1934
+ "revoke-title": "Retirer cet appareil de confiance ?",
1935
+ "revoke-description": "« {device} » devra de nouveau passer le second facteur à sa prochaine connexion.",
1936
+ "revoke-all": "Tout retirer",
1937
+ "revoke-all-title": "Retirer tous les appareils de confiance ?",
1938
+ "revoke-all-description": "Tous vos navigateurs, y compris celui-ci, devront de nouveau passer le second facteur à leur prochaine connexion.",
1939
+ "revoked-all": "{count, plural, =0 {Aucun appareil de confiance à retirer.} one {# appareil retiré.} other {# appareils retirés.}}",
1940
+ empty: "Aucun appareil de confiance. Cochez « Faire confiance à ce navigateur » en saisissant votre second facteur pour en ajouter un."
1452
1941
  },
1453
1942
  passkeys: {
1454
1943
  title: "Passkeys",
@@ -1485,7 +1974,7 @@ const B = {
1485
1974
  title: "Codes de récupération",
1486
1975
  lede: "Pour vous connecter si vous perdez votre second facteur. Chaque code ne sert qu’une fois.",
1487
1976
  remaining: "{count, plural, =0 {Aucun code restant} one {# code restant} other {# codes restants}}",
1488
- low: "Il vous reste peu de codes : générez-en de nouveaux.",
1977
+ low: "{count, plural, =0 {Vous n’avez plus aucun code de récupération. Générez-en de nouveaux.} one {Il vous reste # code de récupération. Générez-en de nouveaux.} other {Il vous reste # codes de récupération. Générez-en de nouveaux.}}",
1489
1978
  regenerate: "Générer de nouveaux codes",
1490
1979
  "regenerate-title": "Générer de nouveaux codes ?",
1491
1980
  "regenerate-description": "Les dix nouveaux codes remplacent tous les codes actuels, qui cesseront de fonctionner.",
@@ -1919,7 +2408,8 @@ const B = {
1919
2408
  },
1920
2409
  toast: {
1921
2410
  region: "Notifications",
1922
- dismiss: "Fermer la notification"
2411
+ dismiss: "Fermer la notification",
2412
+ progress: "Progression"
1923
2413
  },
1924
2414
  "command-palette": {
1925
2415
  label: "Palette de commandes",
@@ -2257,8 +2747,28 @@ const B = {
2257
2747
  }
2258
2748
  }
2259
2749
  }
2750
+ },
2751
+ "password-field": {
2752
+ show: "Afficher le mot de passe",
2753
+ hide: "Masquer le mot de passe"
2260
2754
  }
2261
- }, Y = {
2755
+ }, He = {
2756
+ banner: {
2757
+ title: "Demo account",
2758
+ summary: "{label} · expires on {date}",
2759
+ "expires-in": "(in {days, plural, one {# day} other {# days}})",
2760
+ "expires-today": "(today)",
2761
+ reset: "Reset",
2762
+ "learn-more": "Learn more",
2763
+ "reset-dialog": {
2764
+ title: "Reset the demo?",
2765
+ body: "The data of all the accounts of the group goes back to its starting state. Anything you created or changed will be lost.",
2766
+ confirm: "Reset"
2767
+ }
2768
+ },
2769
+ blocked: "Unavailable in demo"
2770
+ }, Ve = {
2771
+ demo: He,
2262
2772
  "space-display-name": {
2263
2773
  personal: "My Cloud",
2264
2774
  "perso-in-org": "My Cloud (in org)",
@@ -2348,7 +2858,7 @@ const B = {
2348
2858
  },
2349
2859
  // Metric names come from @abyss-project/main's `billing-metric-label` table, their single
2350
2860
  // source (the invoices, their PDF and the overage e-mail read it too).
2351
- metric: D.en
2861
+ metric: ee.en
2352
2862
  },
2353
2863
  "error-page": {
2354
2864
  title: "Something went wrong",
@@ -2367,6 +2877,18 @@ const B = {
2367
2877
  "error-retry": "Send failed — retry"
2368
2878
  }
2369
2879
  },
2880
+ "error-boundary": {
2881
+ title: "This page ran into an error",
2882
+ "go-home": "Go home",
2883
+ "show-details": "Show technical details",
2884
+ "hide-details": "Hide technical details",
2885
+ "details-label": "Technical details",
2886
+ message: "Message",
2887
+ "component-stack": "Component stack",
2888
+ copy: "Copy details",
2889
+ copied: "Details copied",
2890
+ "copy-failed": "Copying failed. Select the text to copy it."
2891
+ },
2370
2892
  cookies: {
2371
2893
  banner: {
2372
2894
  title: "Your cookie preferences",
@@ -2987,36 +3509,40 @@ const B = {
2987
3509
  // Plan names come from @abyss-project/main's `plan-name` table, their single source.
2988
3510
  plan: {
2989
3511
  freemium: {
2990
- name: n.en.freemium,
3512
+ name: h.en.freemium,
2991
3513
  description: "Get started with no commitment"
2992
3514
  },
2993
3515
  starter: {
2994
- name: n.en.starter,
3516
+ name: h.en.starter,
2995
3517
  description: "For individuals and small teams"
2996
3518
  },
2997
3519
  pro: {
2998
- name: n.en.pro,
3520
+ name: h.en.pro,
2999
3521
  description: "For professional teams"
3000
3522
  },
3001
3523
  enterprise: {
3002
- name: n.en.enterprise,
3524
+ name: h.en.enterprise,
3003
3525
  description: "For large organizations"
3004
3526
  },
3005
3527
  internal: {
3006
- name: n.en.internal,
3528
+ name: h.en.internal,
3007
3529
  description: "Abyss internal use"
3008
3530
  },
3009
3531
  "family-free": {
3010
- name: n.en["family-free"],
3532
+ name: h.en["family-free"],
3011
3533
  description: "Up to 6 members, shared spaces"
3012
3534
  },
3013
3535
  "family-paid": {
3014
- name: n.en["family-paid"],
3536
+ name: h.en["family-paid"],
3015
3537
  description: "Up to 12 members + a bonus on your personal quotas"
3016
3538
  },
3539
+ demo: {
3540
+ name: h.en.demo,
3541
+ description: "Demo account: every service included"
3542
+ },
3017
3543
  // Names only: a bespoke plan and a paid plan outside the catalog have no catalog pitch.
3018
- custom: { name: n.en.custom },
3019
- paid: { name: n.en.paid }
3544
+ custom: { name: h.en.custom },
3545
+ paid: { name: h.en.paid }
3020
3546
  },
3021
3547
  "plan-feature": {
3022
3548
  PROJECTS_COUNT: "{unlimited, select, true {Unlimited projects} other {{limit} projects}}",
@@ -3097,7 +3623,17 @@ const B = {
3097
3623
  "filter-search": "Search tickets...",
3098
3624
  "filter-status": "Status",
3099
3625
  "filter-category": "Category",
3100
- "clear-all": "Clear all"
3626
+ "clear-all": "Clear all",
3627
+ "filter-period": "Period",
3628
+ "empty-filtered": "No ticket matches these filters",
3629
+ "column-ticket": "Ticket",
3630
+ "column-requester": "Requester",
3631
+ "column-status": "Status",
3632
+ "column-priority": "Priority",
3633
+ "column-category": "Category",
3634
+ "column-actions": "Actions",
3635
+ total: "{count, plural, one {# ticket} other {# tickets}}",
3636
+ pagination: "Support tickets pages"
3101
3637
  },
3102
3638
  create: {
3103
3639
  title: "New support ticket",
@@ -3107,6 +3643,7 @@ const B = {
3107
3643
  "field-description-placeholder": "Provide details about your issue...",
3108
3644
  "field-category": "Category",
3109
3645
  "field-priority": "Priority",
3646
+ "service-none": "No service",
3110
3647
  "field-service": "Service",
3111
3648
  "field-priority-reason": "Priority reason",
3112
3649
  "field-priority-reason-placeholder": "Explain why this is high priority...",
@@ -3114,7 +3651,12 @@ const B = {
3114
3651
  submit: "Submit ticket",
3115
3652
  back: "Back",
3116
3653
  cancel: "Cancel",
3117
- "attachment-failed": 'Failed to upload attachment "{name}". You can retry it from the ticket.'
3654
+ "attachment-failed": 'Failed to upload attachment "{name}". You can retry it from the ticket.',
3655
+ "error-title": "The title must be between 3 and 255 characters.",
3656
+ "error-description": "The description must be at least 10 characters.",
3657
+ "error-category": "Choose a category.",
3658
+ "error-summary": "Fix the highlighted fields before sending the ticket.",
3659
+ "submit-error": "The ticket could not be sent. Please try again in a moment."
3118
3660
  },
3119
3661
  system: {
3120
3662
  PROPOSED: "Abyss Founders was proposed to the organization.",
@@ -3177,7 +3719,8 @@ const B = {
3177
3719
  "confirm-delete": "Delete this message?",
3178
3720
  terminalMessage: "This ticket is {status}",
3179
3721
  addTag: "Add a tag",
3180
- tags: "Tags"
3722
+ tags: "Tags",
3723
+ back: "Back to tickets"
3181
3724
  },
3182
3725
  sidebar: {
3183
3726
  status: "Status",
@@ -3207,6 +3750,11 @@ const B = {
3207
3750
  "assign-to-me": "Assign to me",
3208
3751
  "copy-user-id": "Copy user ID",
3209
3752
  "copy-organization-id": "Copy organization ID",
3753
+ "id-copied": "ID copied",
3754
+ "remove-tag": "Remove tag {name}",
3755
+ "create-tag": 'Create tag "{name}"',
3756
+ "tag-search": "Search or create a tag",
3757
+ "no-tag-found": "No tag available",
3210
3758
  "archived-at": "Archived on",
3211
3759
  activity: "Activity",
3212
3760
  "activity-action": {
@@ -3237,9 +3785,16 @@ const B = {
3237
3785
  PUT_ON_HOLD: "Put on hold",
3238
3786
  RESUME: "Resume",
3239
3787
  ARCHIVE: "Archive",
3788
+ "TAKE_OVER-confirm": "Are you sure you want to take this ticket over?",
3789
+ "RESOLVE-confirm": "Are you sure you want to resolve this ticket?",
3790
+ "REOPEN-confirm": "Are you sure you want to reopen this ticket?",
3791
+ "ESCALATE-confirm": "Are you sure you want to escalate this ticket?",
3792
+ "PUT_ON_HOLD-confirm": "Are you sure you want to put this ticket on hold?",
3793
+ "RESUME-confirm": "Are you sure you want to resume this ticket?",
3240
3794
  "CLOSE-confirm": "Are you sure you want to close this ticket?",
3241
3795
  "ARCHIVE-confirm": "Are you sure you want to archive this ticket?",
3242
- "reason-placeholder": "Reason (optional)..."
3796
+ "reason-placeholder": "Reason (optional)...",
3797
+ more: "More actions"
3243
3798
  },
3244
3799
  attachments: {
3245
3800
  title: "Attachments",
@@ -3282,6 +3837,8 @@ const B = {
3282
3837
  help: "Pick the urgency. High/critical priority requires a justification."
3283
3838
  }
3284
3839
  },
3840
+ progress: "Step {current} of {total}",
3841
+ "attachment-remove": "Remove {name}",
3285
3842
  next: "Next",
3286
3843
  "attachments-title": "Attachments"
3287
3844
  },
@@ -3401,6 +3958,12 @@ const B = {
3401
3958
  "recovery-label": "Recovery code",
3402
3959
  submit: "Verify",
3403
3960
  "passkey-submit": "Use my passkey",
3961
+ "trust-device": "Trust this browser for 30 days",
3962
+ help: {
3963
+ title: "Your factor does not work here?",
3964
+ passkey: "If your passkey is on your phone, choose “Use another device” in the browser window, then scan the QR code.",
3965
+ "no-access": "No longer have access to any factor? Write to us at <mail>{email}</mail>."
3966
+ },
3404
3967
  use: {
3405
3968
  totp: "Use my authenticator app",
3406
3969
  passkey: "Use my passkey",
@@ -3428,6 +3991,12 @@ const B = {
3428
3991
  continue: "Continue"
3429
3992
  },
3430
3993
  "passkey-cancelled": "Passkey cancelled. Try again, or choose another method.",
3994
+ "portable-factor": {
3995
+ title: "Your passkey is tied to this device",
3996
+ message: "Your only passkey works on this device alone. Add an authenticator app or a passkey on your phone.",
3997
+ add: "Add another method",
3998
+ later: "Later"
3999
+ },
3431
4000
  "change-email": "Use another address",
3432
4001
  restart: "Start over"
3433
4002
  },
@@ -3536,7 +4105,30 @@ const B = {
3536
4105
  slack: "Slack",
3537
4106
  totp: "Authenticator app",
3538
4107
  recovery: "Recovery code",
3539
- impersonation: "Support access"
4108
+ impersonation: "Support access",
4109
+ demo_link: "Demonstration login link",
4110
+ trusted_device: "Trusted device"
4111
+ },
4112
+ "trusted-devices": {
4113
+ title: "Trusted devices",
4114
+ lede: "On these browsers, signing in asks no second factor for 30 days. Remove one to have the second factor asked again.",
4115
+ device: "Device",
4116
+ "added-on": "Added on {date}",
4117
+ "last-used": "Last used",
4118
+ "last-used-on": "Last used: {value}",
4119
+ expires: "Expires on",
4120
+ "expires-on": "Expires on {date}",
4121
+ actions: "Actions",
4122
+ current: "This device",
4123
+ never: "Never used",
4124
+ revoke: "Remove",
4125
+ "revoke-title": "Remove this trusted device?",
4126
+ "revoke-description": "“{device}” will have to pass the second factor again at its next sign-in.",
4127
+ "revoke-all": "Remove all",
4128
+ "revoke-all-title": "Remove all trusted devices?",
4129
+ "revoke-all-description": "All your browsers, including this one, will have to pass the second factor again at their next sign-in.",
4130
+ "revoked-all": "{count, plural, =0 {No trusted device to remove.} one {# device removed.} other {# devices removed.}}",
4131
+ empty: "No trusted device. Tick “Trust this browser” when you enter your second factor to add one."
3540
4132
  },
3541
4133
  passkeys: {
3542
4134
  title: "Passkeys",
@@ -3573,7 +4165,7 @@ const B = {
3573
4165
  title: "Recovery codes",
3574
4166
  lede: "To sign in if you lose your second factor. Each code works only once.",
3575
4167
  remaining: "{count, plural, =0 {No code left} one {# code left} other {# codes left}}",
3576
- low: "You have few codes left: generate new ones.",
4168
+ low: "{count, plural, =0 {You have no recovery code left. Generate new ones.} one {You have # recovery code left. Generate new ones.} other {You have # recovery codes left. Generate new ones.}}",
3577
4169
  regenerate: "Generate new codes",
3578
4170
  "regenerate-title": "Generate new codes?",
3579
4171
  "regenerate-description": "The ten new codes replace all the current ones, which will stop working.",
@@ -4007,7 +4599,8 @@ const B = {
4007
4599
  },
4008
4600
  toast: {
4009
4601
  region: "Notifications",
4010
- dismiss: "Dismiss the notification"
4602
+ dismiss: "Dismiss the notification",
4603
+ progress: "Progress"
4011
4604
  },
4012
4605
  "command-palette": {
4013
4606
  label: "Command palette",
@@ -4345,120 +4938,210 @@ const B = {
4345
4938
  }
4346
4939
  }
4347
4940
  }
4941
+ },
4942
+ "password-field": {
4943
+ show: "Show password",
4944
+ hide: "Hide password"
4348
4945
  }
4349
4946
  };
4350
- var I, _;
4351
- function H() {
4352
- if (_) return I;
4353
- _ = 1, I = s, s.flatten = s, s.unflatten = d;
4354
- function e(o) {
4355
- return o && o.constructor && typeof o.constructor.isBuffer == "function" && o.constructor.isBuffer(o);
4947
+ var G, W;
4948
+ function je() {
4949
+ if (W) return G;
4950
+ W = 1, G = o, o.flatten = o, o.unflatten = i;
4951
+ function e(a) {
4952
+ return a && a.constructor && typeof a.constructor.isBuffer == "function" && a.constructor.isBuffer(a);
4356
4953
  }
4357
- function u(o) {
4358
- return o;
4954
+ function t(a) {
4955
+ return a;
4359
4956
  }
4360
- function s(o, r) {
4361
- r = r || {};
4362
- const g = r.delimiter || ".", p = r.maxDepth, h = r.transformKey || u, m = {};
4363
- function N(f, b, E) {
4364
- E = E || 1, Object.keys(f).forEach(function(i) {
4365
- const t = f[i], a = r.safe && Array.isArray(t), l = Object.prototype.toString.call(t), c = e(t), T = l === "[object Object]" || l === "[object Array]", S = b ? b + g + h(i) : h(i);
4366
- if (!a && !c && T && Object.keys(t).length && (!r.maxDepth || E < p))
4367
- return N(t, S, E + 1);
4368
- m[S] = t;
4957
+ function o(a, n) {
4958
+ n = n || {};
4959
+ const y = n.delimiter || ".", A = n.maxDepth, E = n.transformKey || t, l = {};
4960
+ function S(b, C, u) {
4961
+ u = u || 1, Object.keys(b).forEach(function(d) {
4962
+ const s = b[d], m = n.safe && Array.isArray(s), v = Object.prototype.toString.call(s), g = e(s), I = v === "[object Object]" || v === "[object Array]", N = C ? C + y + E(d) : E(d);
4963
+ if (!m && !g && I && Object.keys(s).length && (!n.maxDepth || u < A))
4964
+ return S(s, N, u + 1);
4965
+ l[N] = s;
4369
4966
  });
4370
4967
  }
4371
- return N(o), m;
4968
+ return S(a), l;
4372
4969
  }
4373
- function d(o, r) {
4374
- r = r || {};
4375
- const g = r.delimiter || ".", p = r.overwrite || !1, h = r.transformKey || u, m = {};
4376
- if (e(o) || Object.prototype.toString.call(o) !== "[object Object]")
4377
- return o;
4378
- function f(i) {
4379
- const t = Number(i);
4380
- return isNaN(t) || i.indexOf(".") !== -1 || r.object ? i : t;
4970
+ function i(a, n) {
4971
+ n = n || {};
4972
+ const y = n.delimiter || ".", A = n.overwrite || !1, E = n.transformKey || t, l = {};
4973
+ if (e(a) || Object.prototype.toString.call(a) !== "[object Object]")
4974
+ return a;
4975
+ function b(d) {
4976
+ const s = Number(d);
4977
+ return isNaN(s) || d.indexOf(".") !== -1 || n.object ? d : s;
4381
4978
  }
4382
- function b(i, t, a) {
4383
- return Object.keys(a).reduce(function(l, c) {
4384
- return l[i + g + c] = a[c], l;
4385
- }, t);
4979
+ function C(d, s, m) {
4980
+ return Object.keys(m).reduce(function(v, g) {
4981
+ return v[d + y + g] = m[g], v;
4982
+ }, s);
4386
4983
  }
4387
- function E(i) {
4388
- const t = Object.prototype.toString.call(i), a = t === "[object Array]", l = t === "[object Object]";
4389
- if (i) {
4390
- if (a)
4391
- return !i.length;
4392
- if (l)
4393
- return !Object.keys(i).length;
4984
+ function u(d) {
4985
+ const s = Object.prototype.toString.call(d), m = s === "[object Array]", v = s === "[object Object]";
4986
+ if (d) {
4987
+ if (m)
4988
+ return !d.length;
4989
+ if (v)
4990
+ return !Object.keys(d).length;
4394
4991
  } else return !0;
4395
4992
  }
4396
- return o = Object.keys(o).reduce(function(i, t) {
4397
- const a = Object.prototype.toString.call(o[t]);
4398
- return !(a === "[object Object]" || a === "[object Array]") || E(o[t]) ? (i[t] = o[t], i) : b(
4399
- t,
4400
- i,
4401
- s(o[t], r)
4993
+ return a = Object.keys(a).reduce(function(d, s) {
4994
+ const m = Object.prototype.toString.call(a[s]);
4995
+ return !(m === "[object Object]" || m === "[object Array]") || u(a[s]) ? (d[s] = a[s], d) : C(
4996
+ s,
4997
+ d,
4998
+ o(a[s], n)
4402
4999
  );
4403
- }, {}), Object.keys(o).forEach(function(i) {
4404
- const t = i.split(g).map(h);
4405
- let a = f(t.shift()), l = f(t[0]), c = m;
4406
- for (; l !== void 0; ) {
4407
- if (a === "__proto__")
5000
+ }, {}), Object.keys(a).forEach(function(d) {
5001
+ const s = d.split(y).map(E);
5002
+ let m = b(s.shift()), v = b(s[0]), g = l;
5003
+ for (; v !== void 0; ) {
5004
+ if (m === "__proto__")
4408
5005
  return;
4409
- const T = Object.prototype.toString.call(c[a]), S = T === "[object Object]" || T === "[object Array]";
4410
- if (!p && !S && typeof c[a] < "u")
5006
+ const I = Object.prototype.toString.call(g[m]), N = I === "[object Object]" || I === "[object Array]";
5007
+ if (!A && !N && typeof g[m] < "u")
4411
5008
  return;
4412
- (p && !S || !p && c[a] == null) && (c[a] = typeof l == "number" && !r.object ? [] : {}), c = c[a], t.length > 0 && (a = f(t.shift()), l = f(t[0]));
5009
+ (A && !N || !A && g[m] == null) && (g[m] = typeof v == "number" && !n.object ? [] : {}), g = g[m], s.length > 0 && (m = b(s.shift()), v = b(s[0]));
4413
5010
  }
4414
- c[a] = d(o[i], r);
4415
- }), m;
5011
+ g[m] = i(a[d], n);
5012
+ }), l;
4416
5013
  }
4417
- return I;
5014
+ return G;
4418
5015
  }
4419
- var w = H();
4420
- const L = {
4421
- fr: { ...z, common: F },
4422
- en: { ...Y, common: G }
4423
- }, V = P(
4424
- () => w.flatten(L.fr)
4425
- ), j = P(
4426
- () => w.flatten(L.en)
4427
- ), te = {
5016
+ var te = je();
5017
+ const oe = {
5018
+ fr: { ...Ye, common: ue },
5019
+ en: { ...Ve, common: de }
5020
+ }, qe = $(
5021
+ () => te.flatten(oe.fr)
5022
+ ), We = $(
5023
+ () => te.flatten(oe.en)
5024
+ ), Tt = {
4428
5025
  get fr() {
4429
- return V();
5026
+ return qe();
4430
5027
  },
4431
5028
  get en() {
4432
- return j();
5029
+ return We();
4433
5030
  }
4434
- }, q = {
4435
- break: /* @__PURE__ */ v("br", {}),
4436
- bold: (...e) => /* @__PURE__ */ v("strong", { children: e }),
4437
- italic: (...e) => /* @__PURE__ */ v("i", { children: e }),
4438
- primary: (...e) => /* @__PURE__ */ v("span", { style: { color: "var(--abyss-accent-text)" }, children: e }),
4439
- focus: (...e) => /* @__PURE__ */ v("span", { style: { color: "var(--abyss-status-warning)" }, children: e })
4440
- }, oe = () => {
4441
- const e = k(), u = M(
4442
- (s, d) => e.formatMessage(s, {
4443
- ...q,
4444
- ...d
5031
+ }, Ke = {
5032
+ break: /* @__PURE__ */ p("br", {}),
5033
+ bold: (...e) => /* @__PURE__ */ p("strong", { children: e }),
5034
+ italic: (...e) => /* @__PURE__ */ p("i", { children: e }),
5035
+ primary: (...e) => /* @__PURE__ */ p("span", { style: { color: "var(--abyss-accent-text)" }, children: e }),
5036
+ focus: (...e) => /* @__PURE__ */ p("span", { style: { color: "var(--abyss-status-warning)" }, children: e })
5037
+ }, Nt = () => {
5038
+ const e = x(), t = K(
5039
+ (o, i) => e.formatMessage(o, {
5040
+ ...Ke,
5041
+ ...i
4445
5042
  }),
4446
5043
  [e]
4447
5044
  );
4448
- return U(() => {
4449
- const { formatMessage: s, ...d } = e;
4450
- return { ...d, formatRichMessage: u };
4451
- }, [e, u]);
4452
- };
5045
+ return ie(() => {
5046
+ const { formatMessage: o, ...i } = e;
5047
+ return { ...i, formatRichMessage: t };
5048
+ }, [e, t]);
5049
+ }, Xe = /* @__PURE__ */ new Set(["a", "button"]), Je = f("div", {
5050
+ shouldForwardProp: (e) => e !== "ownerState" && e !== "theme" && e !== "sx" && e !== "as"
5051
+ })(({ theme: e, ownerState: t }) => {
5052
+ const { tokens: o, radii: i, space: a } = e.design;
5053
+ return {
5054
+ display: "flex",
5055
+ flexDirection: "column",
5056
+ minWidth: 0,
5057
+ boxSizing: "border-box",
5058
+ backgroundColor: o["bg.surface"],
5059
+ border: L(o["border.subtle"]),
5060
+ borderRadius: r(i.md),
5061
+ padding: r(a[t.padding]),
5062
+ color: o["text.primary"],
5063
+ ...t.interactive && {
5064
+ cursor: "pointer",
5065
+ font: "inherit",
5066
+ textAlign: "inherit",
5067
+ textDecoration: "none",
5068
+ transition: ye(e, ["border-color"]),
5069
+ "&:hover": { borderColor: o["border.strong"] },
5070
+ "&:focus-visible": fe(e)
5071
+ }
5072
+ };
5073
+ }), Ct = re(function({
5074
+ interactive: t = !1,
5075
+ padding: o = 4,
5076
+ component: i = "div",
5077
+ children: a,
5078
+ onKeyDown: n,
5079
+ role: y,
5080
+ tabIndex: A,
5081
+ ...E
5082
+ }, l) {
5083
+ const S = t && typeof i == "string" && !Xe.has(i), b = K(
5084
+ (u) => {
5085
+ typeof l == "function" ? l(u) : l !== null && (l.current = u);
5086
+ },
5087
+ [l]
5088
+ );
5089
+ return /* @__PURE__ */ p(
5090
+ Je,
5091
+ {
5092
+ ref: b,
5093
+ as: i,
5094
+ ownerState: { interactive: t, padding: o },
5095
+ role: y ?? (S ? "button" : void 0),
5096
+ tabIndex: A ?? (S ? 0 : void 0),
5097
+ onKeyDown: (u) => {
5098
+ n == null || n(u), S && !u.defaultPrevented && u.target === u.currentTarget && (u.key === "Enter" || u.key === " ") && (u.preventDefault(), u.currentTarget.click());
5099
+ },
5100
+ ...E,
5101
+ children: a
5102
+ }
5103
+ );
5104
+ });
4453
5105
  export {
4454
- q as R,
4455
- z as a,
4456
- ee as b,
4457
- Z as c,
4458
- Y as e,
4459
- te as f,
4460
- $ as g,
4461
- C as r,
4462
- L as t,
4463
- oe as u
5106
+ He as A,
5107
+ Oe as B,
5108
+ ze as C,
5109
+ T as D,
5110
+ oe as E,
5111
+ Ve as F,
5112
+ Ye as G,
5113
+ ct as H,
5114
+ ft as I,
5115
+ U as J,
5116
+ St as K,
5117
+ bt as M,
5118
+ Ke as R,
5119
+ Ct as S,
5120
+ pe as T,
5121
+ Q as a,
5122
+ _e as b,
5123
+ Ae as c,
5124
+ D as d,
5125
+ ye as e,
5126
+ Tt as f,
5127
+ fe as g,
5128
+ L as h,
5129
+ Ee as i,
5130
+ _ as j,
5131
+ ve as k,
5132
+ pt as l,
5133
+ ut as m,
5134
+ dt as n,
5135
+ he as o,
5136
+ r as p,
5137
+ Et as q,
5138
+ mt as r,
5139
+ At as s,
5140
+ vt as t,
5141
+ Nt as u,
5142
+ yt as v,
5143
+ P as w,
5144
+ V as x,
5145
+ gt as y,
5146
+ ht as z
4464
5147
  };