@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,2335 +0,0 @@
1
- import { jsx as i, jsxs as v, Fragment as ne } from "react/jsx-runtime";
2
- import { useId as E, useRef as j, useState as I, cloneElement as St, useMemo as ye, useCallback as Q, useEffect as G, forwardRef as It, createContext as Be, useContext as Ne, useLayoutEffect as _e } from "react";
3
- import { alpha as Tt, styled as a, useTheme as Ve, getContrastRatio as $e } from "@mui/material/styles";
4
- import ce from "@mui/material/FormControl";
5
- import de from "@mui/material/FormHelperText";
6
- import je from "@mui/material/InputLabel";
7
- import Fe from "@mui/material/MenuItem";
8
- import $t from "@mui/material/Select";
9
- import { visuallyHidden as Ft } from "@mui/utils";
10
- import { useIntl as z } from "react-intl";
11
- import { b as Me, S as Mt, f as M, i as Rt, a as Wt, r as Ot, u as At, A as Et, E as zt } from "./AbyssCloud-D_AbU9k7.js";
12
- import Ge from "@mui/material/ButtonBase";
13
- import ve from "@mui/material/OutlinedInput";
14
- import Dt from "@mui/material/InputAdornment";
15
- import Z from "@mui/material/Button";
16
- import { byteSizeIEC as Lt } from "@abyss-project/main";
17
- import Pt from "@mui/icons-material/FileUploadOutlined";
18
- import Ht, { autocompleteClasses as Re } from "@mui/material/Autocomplete";
19
- import We from "@mui/material/CircularProgress";
20
- import ee from "@mui/material/IconButton";
21
- import Oe from "@mui/material/Tooltip";
22
- import Ae from "@mui/icons-material/CloudOutlined";
23
- import Bt from "@mui/icons-material/CloudOffOutlined";
24
- import Nt from "@mui/icons-material/FileDownloadOutlined";
25
- import Ue from "@mui/icons-material/FolderOpenOutlined";
26
- import _t from "@mui/icons-material/OpenInNewRounded";
27
- import Vt from "@mui/icons-material/RefreshRounded";
28
- import jt from "@mui/material/FormLabel";
29
- import { isMuiElement as Gt } from "@mui/material/utils";
30
- import Ut from "@mui/icons-material/CheckCircleOutline";
31
- import ue from "@mui/icons-material/Close";
32
- import qt from "@mui/icons-material/ErrorOutline";
33
- import Kt from "@mui/icons-material/InfoOutlined";
34
- import Yt from "@mui/icons-material/WarningAmber";
35
- import Xt from "@mui/material/Checkbox";
36
- import Qt from "@mui/icons-material/DescriptionOutlined";
37
- import Zt from "@mui/icons-material/FolderOutlined";
38
- import Jt from "@mui/icons-material/ChevronRightRounded";
39
- import en from "@mui/material/Popover";
40
- import tn from "@mui/material/Alert";
41
- import nn from "@mui/material/TextField";
42
- import on from "@mui/material/Dialog";
43
- import Ee from "@mui/material/useMediaQuery";
44
- import rn from "@mui/material/Modal";
45
- import sn from "@mui/material/Slide";
46
- import { Link as an } from "react-router-dom";
47
- var $ = /* @__PURE__ */ ((e) => (e.Mobile = "mobile", e.Tablet = "tablet", e.Desktop = "desktop", e))($ || {});
48
- const qe = {
49
- tablet: Me.md,
50
- desktop: Me.lg
51
- }, ln = 0.05, fe = (e) => `(min-width:${qe[e]}px)`, me = (e) => `(max-width:${qe[e] - ln}px)`, B = {
52
- /** From the start of `tier` up. */
53
- up: (e) => `@media ${fe(e)}`,
54
- /** Below the start of `tier`. */
55
- down: (e) => `@media ${me(e)}`,
56
- /** The widths of `tier` only. */
57
- only: (e) => {
58
- switch (e) {
59
- case "mobile":
60
- return `@media ${me(
61
- "tablet"
62
- /* Tablet */
63
- )}`;
64
- case "tablet":
65
- return `@media ${fe(
66
- "tablet"
67
- /* Tablet */
68
- )} and ${me(
69
- "desktop"
70
- /* Desktop */
71
- )}`;
72
- case "desktop":
73
- return `@media ${fe(
74
- "desktop"
75
- /* Desktop */
76
- )}`;
77
- }
78
- }
79
- }, o = (e) => `${e}px`, R = (e) => `1px solid ${e}`, ge = (e) => Tt(e, Mt), te = (e) => ({
80
- outline: `2px solid ${e.design.tokens["focus.ring"]}`,
81
- outlineOffset: "2px"
82
- }), Zr = (e, t) => t === "small" ? e.design.densityValues.compact.control : e.design.densityValues[e.design.density].control, Jr = (e) => e.design.densityValues[e.design.density].row, Ke = (e) => ({
83
- [B.down($.Tablet)]: {
84
- minHeight: o(e.design.densityValues.touchTarget)
85
- }
86
- }), Ye = (e) => ({
87
- [B.down($.Tablet)]: {
88
- minWidth: o(e.design.densityValues.touchTarget),
89
- minHeight: o(e.design.densityValues.touchTarget)
90
- }
91
- }), oe = (e, t, n = "fast") => t.map(
92
- (r) => `${r} ${e.design.durations[n]}ms ${e.design.easings.standard}`
93
- ).join(", "), Xe = () => {
94
- const e = Ee(B.up($.Desktop), {
95
- noSsr: !0
96
- }), t = Ee(B.down($.Tablet), {
97
- noSsr: !0
98
- });
99
- return e ? $.Desktop : t ? $.Mobile : $.Tablet;
100
- };
101
- var J = /* @__PURE__ */ ((e) => (e.Top = "top", e.Bottom = "bottom", e.Left = "left", e.Right = "right", e))(J || {});
102
- const se = (e, t) => `calc(${o(t)} + env(safe-area-inset-${e}))`, dn = 0.3, cn = a("div")({
103
- position: "absolute",
104
- left: 0,
105
- right: 0,
106
- bottom: 0,
107
- maxHeight: "100%",
108
- display: "flex",
109
- outline: "none"
110
- }), un = a("div")(({ theme: e }) => {
111
- const { tokens: t, radii: n, space: r, elevations: s, fonts: c } = e.design;
112
- return {
113
- flex: "1 1 auto",
114
- minWidth: 0,
115
- maxHeight: `calc(100vh - ${se(J.Top, r[8])})`,
116
- display: "flex",
117
- flexDirection: "column",
118
- gap: o(r[3]),
119
- paddingTop: o(r[2]),
120
- paddingBottom: se(J.Bottom, r[6]),
121
- paddingLeft: se(J.Left, r[4]),
122
- paddingRight: se(J.Right, r[4]),
123
- backgroundColor: t["bg.surface"],
124
- color: t["text.primary"],
125
- fontFamily: c.sans,
126
- borderTop: R(t["border.strong"]),
127
- borderTopLeftRadius: o(n.lg),
128
- borderTopRightRadius: o(n.lg),
129
- boxShadow: s.modal,
130
- outline: "none",
131
- position: "relative"
132
- };
133
- }), gn = a(ee)(({ theme: e }) => ({
134
- position: "absolute",
135
- top: o(e.design.space[1]),
136
- right: se(J.Right, e.design.space[2]),
137
- ...Ye(e)
138
- })), pn = a("div")(({ theme: e }) => {
139
- const { space: t, densityValues: n } = e.design;
140
- return {
141
- flex: "none",
142
- display: "flex",
143
- flexDirection: "column",
144
- alignItems: "center",
145
- gap: o(t[2]),
146
- minHeight: o(n.touchTarget / 2),
147
- touchAction: "none",
148
- cursor: "grab"
149
- };
150
- }), fn = a("span")(({ theme: e }) => {
151
- const { tokens: t, radii: n, space: r } = e.design;
152
- return {
153
- width: o(r[8]),
154
- height: o(r[1]),
155
- borderRadius: o(n.sm),
156
- backgroundColor: t["border.strong"]
157
- };
158
- }), mn = a("h2", {
159
- shouldForwardProp: (e) => e !== "besideClose"
160
- })(({ theme: e, besideClose: t }) => {
161
- const { typeScale: n, densityValues: r, space: s } = e.design;
162
- return {
163
- alignSelf: "stretch",
164
- margin: 0,
165
- // Clear of the close button in the corner.
166
- paddingRight: t ? o(r.touchTarget + s[2]) : void 0,
167
- fontSize: o(n.sectionTitle),
168
- fontWeight: M.semibold,
169
- overflowWrap: "anywhere"
170
- };
171
- }), hn = a("div")({
172
- flex: "1 1 auto",
173
- minHeight: 0,
174
- overflowY: "auto",
175
- overscrollBehavior: "contain"
176
- });
177
- function Qe({
178
- open: e,
179
- onClose: t,
180
- title: n,
181
- closeLabel: r,
182
- children: s
183
- }) {
184
- const c = Ve(), l = z(), d = E(), g = j(null), m = j(null), [p, h] = I(0), [y, b] = I(!1), f = (C) => {
185
- C.currentTarget.setPointerCapture(C.pointerId), m.current = C.clientY, b(!0);
186
- }, u = (C) => {
187
- m.current !== null && h(Math.max(0, C.clientY - m.current));
188
- }, x = (C) => {
189
- var D;
190
- if (m.current === null)
191
- return;
192
- const P = Math.max(0, C.clientY - m.current), F = ((D = g.current) == null ? void 0 : D.getBoundingClientRect().height) ?? 0;
193
- m.current = null, b(!1), h(0), F > 0 && P >= F * dn && t();
194
- }, k = () => {
195
- m.current = null, b(!1), h(0);
196
- };
197
- return /* @__PURE__ */ i(rn, { open: e, onClose: () => t(), children: /* @__PURE__ */ i(
198
- sn,
199
- {
200
- in: e,
201
- direction: "up",
202
- timeout: c.design.durations.slow,
203
- easing: c.design.easings.sheet,
204
- children: /* @__PURE__ */ i(cn, { children: /* @__PURE__ */ v(
205
- un,
206
- {
207
- ref: g,
208
- role: "dialog",
209
- "aria-modal": "true",
210
- "aria-labelledby": n ? d : void 0,
211
- "aria-label": n ? void 0 : l.formatMessage({ id: "ds.mobile.bottom-sheet.label" }),
212
- tabIndex: -1,
213
- style: {
214
- transform: `translateY(${o(p)})`,
215
- transition: y ? "none" : `transform ${c.design.durations.base}ms ${c.design.easings.sheet}`
216
- },
217
- children: [
218
- /* @__PURE__ */ v(
219
- pn,
220
- {
221
- "data-testid": "bottom-sheet-drag-zone",
222
- onPointerDown: f,
223
- onPointerMove: u,
224
- onPointerUp: x,
225
- onPointerCancel: k,
226
- children: [
227
- /* @__PURE__ */ i(fn, { "aria-hidden": "true" }),
228
- n ? /* @__PURE__ */ i(mn, { id: d, besideClose: r !== void 0, children: n }) : null
229
- ]
230
- }
231
- ),
232
- r !== void 0 && /* @__PURE__ */ i(gn, { "aria-label": r, onClick: () => t(), children: /* @__PURE__ */ i(ue, { "aria-hidden": !0 }) }),
233
- /* @__PURE__ */ i(hn, { children: s })
234
- ]
235
- }
236
- ) })
237
- }
238
- ) });
239
- }
240
- var xe = /* @__PURE__ */ ((e) => (e.Small = "sm", e.Medium = "md", e.Large = "lg", e))(xe || {});
241
- const bn = a(on)(({ theme: e }) => {
242
- const { tokens: t, fonts: n, space: r } = e.design;
243
- return {
244
- "& .MuiDialog-paper": {
245
- margin: o(r[4]),
246
- maxHeight: `calc(100% - ${o(r[7])})`,
247
- backgroundColor: t["bg.surface"],
248
- color: t["text.primary"],
249
- fontFamily: n.sans,
250
- overflow: "hidden"
251
- },
252
- "& .MuiDialog-paperFullWidth": {
253
- width: `calc(100% - ${o(r[7])})`
254
- }
255
- };
256
- }), yn = a("div")(({ theme: e }) => {
257
- const { tokens: t, space: n } = e.design;
258
- return {
259
- flex: "none",
260
- display: "flex",
261
- justifyContent: "space-between",
262
- alignItems: "flex-start",
263
- gap: o(n[4]),
264
- padding: `${o(n[4])} ${o(n[5])}`,
265
- borderBottom: R(t["border.subtle"])
266
- };
267
- }), vn = a("div")({ minWidth: 0 }), xn = a("h2")(({ theme: e }) => ({
268
- margin: 0,
269
- fontSize: o(e.design.typeScale.sectionTitle),
270
- fontWeight: M.semibold,
271
- overflowWrap: "anywhere"
272
- })), wn = a("p")(({ theme: e }) => {
273
- const { tokens: t, space: n, typeScale: r } = e.design;
274
- return {
275
- margin: `${o(n[1])} 0 0`,
276
- color: t["text.muted"],
277
- fontSize: o(r.body),
278
- overflowWrap: "anywhere"
279
- };
280
- }), kn = a("div")(({ theme: e }) => ({
281
- flex: "1 1 auto",
282
- minHeight: 0,
283
- overflowY: "auto",
284
- padding: o(e.design.space[5]),
285
- fontSize: o(e.design.typeScale.body)
286
- })), Cn = a("div")(({ theme: e }) => {
287
- const { tokens: t, space: n } = e.design;
288
- return {
289
- flex: "none",
290
- display: "flex",
291
- flexWrap: "wrap",
292
- justifyContent: "flex-end",
293
- alignItems: "center",
294
- gap: o(n[3]),
295
- padding: `${o(n[3])} ${o(n[5])}`,
296
- borderTop: R(t["border.subtle"])
297
- };
298
- }), Sn = a("p")(({ theme: e }) => ({
299
- margin: `0 0 ${o(e.design.space[3])}`,
300
- color: e.design.tokens["text.muted"],
301
- fontSize: o(e.design.typeScale.bodyMobile),
302
- overflowWrap: "anywhere"
303
- })), In = a("div")(({ theme: e }) => ({
304
- display: "flex",
305
- flexWrap: "wrap",
306
- gap: o(e.design.space[2]),
307
- marginTop: o(e.design.space[4]),
308
- "& > *": { flex: "1 1 0" }
309
- }));
310
- function Ze({
311
- open: e,
312
- onClose: t,
313
- title: n,
314
- description: r,
315
- size: s = "md",
316
- actions: c,
317
- children: l
318
- }) {
319
- const d = z(), g = Xe() === $.Mobile, m = E(), p = E();
320
- return g ? /* @__PURE__ */ v(
321
- Qe,
322
- {
323
- open: e,
324
- onClose: t,
325
- title: n,
326
- closeLabel: d.formatMessage({ id: "ds.layers.modal.close" }),
327
- children: [
328
- r !== void 0 && /* @__PURE__ */ i(Sn, { children: r }),
329
- l,
330
- c !== void 0 && /* @__PURE__ */ i(In, { children: c })
331
- ]
332
- }
333
- ) : /* @__PURE__ */ v(
334
- bn,
335
- {
336
- open: e,
337
- onClose: () => t(),
338
- maxWidth: s,
339
- fullWidth: !0,
340
- "aria-labelledby": m,
341
- "aria-describedby": r !== void 0 ? p : void 0,
342
- children: [
343
- /* @__PURE__ */ v(yn, { children: [
344
- /* @__PURE__ */ v(vn, { children: [
345
- /* @__PURE__ */ i(xn, { id: m, children: n }),
346
- r !== void 0 && /* @__PURE__ */ i(wn, { id: p, children: r })
347
- ] }),
348
- /* @__PURE__ */ i(
349
- ee,
350
- {
351
- "aria-label": d.formatMessage({ id: "ds.layers.modal.close" }),
352
- onClick: t,
353
- children: /* @__PURE__ */ i(ue, { "aria-hidden": !0 })
354
- }
355
- )
356
- ] }),
357
- /* @__PURE__ */ i(kn, { children: l }),
358
- c !== void 0 && /* @__PURE__ */ i(Cn, { children: c })
359
- ]
360
- }
361
- );
362
- }
363
- const Tn = a(jt)(({ theme: e }) => ({
364
- display: "block",
365
- maxWidth: "100%",
366
- marginBottom: o(e.design.space[2]),
367
- fontSize: o(e.design.typeScale.small),
368
- fontWeight: M.medium,
369
- lineHeight: e.typography.caption.lineHeight,
370
- color: e.design.tokens["text.secondary"],
371
- "&.Mui-focused": { color: e.design.tokens["text.secondary"] },
372
- "&.Mui-error": { color: e.design.tokens["status.danger"] },
373
- "&.Mui-disabled": { color: e.design.tokens["text.muted"] }
374
- }));
375
- function Je({
376
- label: e,
377
- help: t,
378
- error: n,
379
- required: r = !1,
380
- children: s
381
- }) {
382
- const c = E(), l = s.props.id ?? c, d = `${l}-label`, g = t !== void 0 ? `${l}-help` : void 0, m = n !== void 0 ? `${l}-error` : void 0, p = [s.props["aria-describedby"], g, m].filter((y) => y !== void 0 && y !== "").join(" ") || void 0, h = St(s, {
383
- id: l,
384
- "aria-describedby": p,
385
- ...Gt(s, ["Select"]) && { labelId: d }
386
- });
387
- return /* @__PURE__ */ v(ce, { fullWidth: !0, error: n !== void 0, required: r, children: [
388
- /* @__PURE__ */ i(Tn, { id: d, htmlFor: l, children: e }),
389
- h,
390
- t !== void 0 && /* @__PURE__ */ i(de, { id: g, error: !1, children: t }),
391
- n !== void 0 && /* @__PURE__ */ i(de, { id: m, children: n })
392
- ] });
393
- }
394
- var et = /* @__PURE__ */ ((e) => (e.Info = "info", e.Success = "success", e.Warning = "warning", e.Danger = "danger", e))(et || {});
395
- const tt = {
396
- info: { solid: "status.info", soft: "status.info.soft" },
397
- success: {
398
- solid: "status.success",
399
- soft: "status.success.soft"
400
- },
401
- warning: {
402
- solid: "status.warning",
403
- soft: "status.warning.soft"
404
- },
405
- danger: {
406
- solid: "status.danger",
407
- soft: "status.danger.soft"
408
- }
409
- }, $n = {
410
- info: Kt,
411
- success: Ut,
412
- warning: Yt,
413
- danger: qt
414
- }, Fn = a("div", {
415
- shouldForwardProp: (e) => e !== "severity"
416
- })(({ theme: e, severity: t }) => {
417
- const { tokens: n, space: r, radii: s, fonts: c, typeScale: l } = e.design, { solid: d, soft: g } = tt[t];
418
- return {
419
- display: "flex",
420
- alignItems: "flex-start",
421
- gap: o(r[3]),
422
- minWidth: 0,
423
- boxSizing: "border-box",
424
- padding: `${o(r[3])} ${o(r[3])} ${o(r[3])} ${o(r[4])}`,
425
- backgroundColor: n[g],
426
- border: R(n[d]),
427
- borderRadius: o(s.md),
428
- color: n["text.primary"],
429
- fontFamily: c.sans,
430
- fontSize: o(l.body)
431
- };
432
- }), Mn = a("span", {
433
- shouldForwardProp: (e) => e !== "severity"
434
- })(({ theme: e, severity: t }) => {
435
- const { tokens: n, space: r } = e.design;
436
- return {
437
- display: "inline-flex",
438
- flex: "none",
439
- // Centered on the first line of text.
440
- paddingTop: o(r[1] / 2),
441
- color: n[tt[t].solid],
442
- "& svg": {
443
- width: o(r[4] + r[1]),
444
- height: o(r[4] + r[1])
445
- }
446
- };
447
- }), Rn = a("div")(({ theme: e }) => ({
448
- display: "flex",
449
- flex: "1 1 auto",
450
- flexWrap: "wrap",
451
- alignItems: "center",
452
- columnGap: o(e.design.space[4]),
453
- rowGap: o(e.design.space[2]),
454
- minWidth: 0,
455
- [B.down($.Tablet)]: {
456
- flexDirection: "column",
457
- alignItems: "flex-start"
458
- }
459
- })), Wn = a("div")(({ theme: e }) => ({
460
- display: "flex",
461
- flexDirection: "column",
462
- gap: o(e.design.space[1]),
463
- flex: "1 1 auto",
464
- minWidth: 0,
465
- paddingTop: o(e.design.space[1] / 2),
466
- lineHeight: e.typography.body2.lineHeight,
467
- overflowWrap: "anywhere"
468
- })), On = a("strong")({
469
- display: "block",
470
- fontWeight: M.semibold
471
- }), An = a("div")({
472
- display: "flex",
473
- flex: "none",
474
- alignItems: "center"
475
- }), En = a(ee)(({ theme: e }) => Ye(e));
476
- function zn({
477
- severity: e,
478
- title: t,
479
- children: n,
480
- action: r,
481
- onClose: s,
482
- icon: c
483
- }) {
484
- const l = z(), d = E(), g = $n[e];
485
- return /* @__PURE__ */ v(
486
- Fn,
487
- {
488
- severity: e,
489
- role: e === "danger" ? "alert" : "status",
490
- "aria-labelledby": t !== void 0 ? d : void 0,
491
- "data-severity": e,
492
- children: [
493
- /* @__PURE__ */ i(Mn, { severity: e, "aria-hidden": !0, children: c ?? /* @__PURE__ */ i(g, {}) }),
494
- /* @__PURE__ */ v(Rn, { children: [
495
- /* @__PURE__ */ v(Wn, { children: [
496
- t !== void 0 && /* @__PURE__ */ i(On, { id: d, children: t }),
497
- /* @__PURE__ */ i("div", { children: n })
498
- ] }),
499
- r !== void 0 && /* @__PURE__ */ i(An, { children: r })
500
- ] }),
501
- s !== void 0 && /* @__PURE__ */ i(
502
- En,
503
- {
504
- size: "small",
505
- "aria-label": l.formatMessage({ id: "ds.states.callout.close" }),
506
- onClick: s,
507
- children: /* @__PURE__ */ i(ue, { "aria-hidden": !0 })
508
- }
509
- )
510
- ]
511
- }
512
- );
513
- }
514
- const X = (e) => e.id ?? e.name, nt = (e, t, n) => (t === void 0 || e.sizeOctet <= t) && Rt(e, n), ot = (e, t, n) => [
515
- ...(e.childFile ?? []).filter(
516
- (r) => nt(r, t, n)
517
- ),
518
- ...(e.childFolder ?? []).flatMap(
519
- (r) => ot(r, t, n)
520
- )
521
- ], he = a("div", {
522
- shouldForwardProp: (e) => e !== "selected"
523
- })(({ theme: e, selected: t }) => {
524
- const { tokens: n, space: r, radii: s, densityValues: c, density: l, typeScale: d } = e.design;
525
- return {
526
- display: "flex",
527
- alignItems: "center",
528
- gap: o(r[1]),
529
- minHeight: o(c[l].control),
530
- borderRadius: o(s.md),
531
- backgroundColor: t ? ge(n.accent) : "transparent",
532
- fontSize: o(d.body),
533
- color: n["text.primary"],
534
- ...Ke(e)
535
- };
536
- }), rt = (e) => {
537
- const { tokens: t, space: n, radii: r, fonts: s } = e.design;
538
- return {
539
- flex: "1 1 auto",
540
- minWidth: 0,
541
- display: "flex",
542
- alignItems: "center",
543
- gap: o(n[2]),
544
- alignSelf: "stretch",
545
- margin: 0,
546
- padding: `0 ${o(n[2])}`,
547
- border: "none",
548
- borderRadius: o(r.md),
549
- background: "none",
550
- color: "inherit",
551
- font: "inherit",
552
- fontFamily: s.sans,
553
- textAlign: "left",
554
- cursor: "pointer",
555
- transition: oe(e, ["background-color"]),
556
- "&:hover": { backgroundColor: t["bg.hover"] },
557
- "&:focus-visible": te(e)
558
- };
559
- }, it = a("button")(({ theme: e }) => rt(e)), Dn = a("label")(({ theme: e }) => rt(e)), st = a("span", {
560
- shouldForwardProp: (e) => e !== "strong"
561
- })(({ strong: e }) => ({
562
- flex: "1 1 auto",
563
- minWidth: 0,
564
- overflow: "hidden",
565
- textOverflow: "ellipsis",
566
- whiteSpace: "nowrap",
567
- fontWeight: e ? M.medium : M.regular
568
- })), at = a("span")(({ theme: e }) => {
569
- const { tokens: t, space: n, radii: r } = e.design;
570
- return {
571
- display: "inline-flex",
572
- flex: "none",
573
- alignItems: "center",
574
- justifyContent: "center",
575
- width: o(n[5]),
576
- height: o(n[5]),
577
- overflow: "hidden",
578
- borderRadius: o(r.sm),
579
- color: t["text.muted"],
580
- "& svg": { width: o(n[5]), height: o(n[5]) },
581
- "& img": { width: "100%", height: "100%", objectFit: "cover" }
582
- };
583
- }), Ln = a(Jt, {
584
- shouldForwardProp: (e) => e !== "open"
585
- })(({ theme: e, open: t }) => ({
586
- flex: "none",
587
- width: o(e.design.space[4]),
588
- height: o(e.design.space[4]),
589
- color: e.design.tokens["text.muted"],
590
- transform: t ? "rotate(90deg)" : "none",
591
- transition: oe(e, ["transform"])
592
- })), lt = a(Xt)(({ theme: e }) => ({
593
- [B.down($.Tablet)]: {
594
- padding: o(
595
- (e.design.densityValues.touchTarget - e.design.space[5]) / 2
596
- )
597
- }
598
- })), Pn = a("ul")(({ theme: e }) => ({
599
- margin: 0,
600
- padding: 0,
601
- listStyle: "none",
602
- borderLeft: R(e.design.tokens["border.subtle"]),
603
- marginLeft: o(e.design.space[3])
604
- })), ze = a("li")({ listStyle: "none" });
605
- function dt({
606
- folders: e,
607
- files: t,
608
- context: n
609
- }) {
610
- return /* @__PURE__ */ v(ne, { children: [
611
- e.map((r) => /* @__PURE__ */ i(ze, { children: /* @__PURE__ */ i(Nn, { folder: r, context: n }) }, r.id ?? r.name)),
612
- t.filter((r) => nt(r, n.maxSize, n.accept)).map((r) => /* @__PURE__ */ i(ze, { children: /* @__PURE__ */ i(Bn, { file: r, context: n }) }, X(r)))
613
- ] });
614
- }
615
- function Hn({
616
- file: e,
617
- getFileThumbnailUrl: t
618
- }) {
619
- const [n, r] = I(!1), s = e.thumbnailPublicAccessId !== null && !e.isEncrypt && !n ? t(e.thumbnailPublicAccessId) : null;
620
- return /* @__PURE__ */ i(at, { "aria-hidden": !0, children: s !== null ? /* @__PURE__ */ i(
621
- "img",
622
- {
623
- src: s,
624
- alt: "",
625
- draggable: !1,
626
- onError: () => r(!0)
627
- }
628
- ) : /* @__PURE__ */ i(Qt, {}) });
629
- }
630
- function Bn({
631
- file: e,
632
- context: t
633
- }) {
634
- const n = E(), r = t.selectedIds.has(X(e)), s = () => r ? t.unselect([e]) : t.select([e]), c = /* @__PURE__ */ v(ne, { children: [
635
- /* @__PURE__ */ i(
636
- Hn,
637
- {
638
- file: e,
639
- getFileThumbnailUrl: t.getFileThumbnailUrl
640
- }
641
- ),
642
- /* @__PURE__ */ i(st, { strong: r, title: e.name, children: e.name })
643
- ] });
644
- return t.multiple ? /* @__PURE__ */ v(he, { selected: r, children: [
645
- /* @__PURE__ */ i(
646
- lt,
647
- {
648
- id: n,
649
- size: "small",
650
- checked: r,
651
- onChange: s
652
- }
653
- ),
654
- /* @__PURE__ */ i(Dn, { htmlFor: n, children: c })
655
- ] }) : /* @__PURE__ */ i(he, { selected: r, children: /* @__PURE__ */ i(it, { type: "button", "aria-pressed": r, onClick: s, children: c }) });
656
- }
657
- function Nn({
658
- folder: e,
659
- context: t
660
- }) {
661
- const n = z(), r = E(), [s, c] = I(!1), l = ot(e, t.maxSize, t.accept), d = l.filter(
662
- (m) => t.selectedIds.has(X(m))
663
- ).length, g = l.length > 0 && d === l.length;
664
- return /* @__PURE__ */ v(ne, { children: [
665
- /* @__PURE__ */ v(he, { selected: g, children: [
666
- t.multiple && /* @__PURE__ */ i(
667
- lt,
668
- {
669
- size: "small",
670
- checked: g,
671
- indeterminate: d > 0 && !g,
672
- disabled: l.length === 0,
673
- onChange: () => g ? t.unselect(l) : t.select(l),
674
- inputProps: {
675
- "aria-label": n.formatMessage(
676
- { id: "ds.business.cloud-import.select-folder" },
677
- { name: e.name }
678
- )
679
- }
680
- }
681
- ),
682
- /* @__PURE__ */ v(
683
- it,
684
- {
685
- type: "button",
686
- "aria-expanded": s,
687
- "aria-controls": s ? r : void 0,
688
- onClick: () => c(!s),
689
- children: [
690
- /* @__PURE__ */ i(Ln, { open: s, "aria-hidden": !0 }),
691
- /* @__PURE__ */ i(at, { "aria-hidden": !0, children: s ? /* @__PURE__ */ i(Ue, {}) : /* @__PURE__ */ i(Zt, {}) }),
692
- /* @__PURE__ */ i(st, { strong: g, title: e.name, children: e.name })
693
- ]
694
- }
695
- )
696
- ] }),
697
- s && /* @__PURE__ */ i(Pn, { id: r, children: /* @__PURE__ */ i(
698
- dt,
699
- {
700
- folders: e.childFolder ?? [],
701
- files: e.childFile ?? [],
702
- context: t
703
- }
704
- ) })
705
- ] });
706
- }
707
- const De = "shared", Le = {
708
- "org-common": 0,
709
- "perso-in-org": 1,
710
- project: 2,
711
- personal: 3
712
- }, _n = a("div")(({ theme: e }) => ({
713
- display: "flex",
714
- flexDirection: "column",
715
- gap: o(e.design.space[3]),
716
- minWidth: 0
717
- })), Vn = a("div")(({ theme: e }) => ({
718
- display: "flex",
719
- alignItems: "flex-end",
720
- gap: o(e.design.space[2]),
721
- minWidth: 0,
722
- // The Space field takes the room the two icon buttons leave.
723
- [`& > .${Re.root}`]: { flex: "1 1 auto", minWidth: 0 },
724
- [`& > :not(.${Re.root})`]: { flex: "none" }
725
- })), jn = a("p")(({ theme: e }) => ({
726
- margin: 0,
727
- fontSize: o(e.design.typeScale.small),
728
- color: e.design.tokens["text.muted"]
729
- })), Gn = a("ul")(({ theme: e }) => {
730
- const { tokens: t, space: n, radii: r } = e.design;
731
- return {
732
- margin: 0,
733
- padding: o(n[1]),
734
- listStyle: "none",
735
- minHeight: o(n[10] * 3),
736
- border: R(t["border.subtle"]),
737
- borderRadius: o(r.md)
738
- };
739
- }), ie = a("div")(({ theme: e }) => {
740
- const { tokens: t, space: n, typeScale: r } = e.design;
741
- return {
742
- display: "flex",
743
- flexDirection: "column",
744
- alignItems: "center",
745
- justifyContent: "center",
746
- gap: o(n[3]),
747
- minHeight: o(n[10] * 3),
748
- padding: o(n[5]),
749
- textAlign: "center",
750
- fontSize: o(r.body),
751
- color: t["text.secondary"],
752
- "& > svg": {
753
- width: o(n[7]),
754
- height: o(n[7]),
755
- color: t["text.muted"]
756
- }
757
- };
758
- }), Un = a("span")(({ theme: e }) => {
759
- const { tokens: t, space: n, radii: r } = e.design;
760
- return {
761
- display: "inline-flex",
762
- alignItems: "center",
763
- justifyContent: "center",
764
- width: o(n[9] + n[2]),
765
- height: o(n[9] + n[2]),
766
- borderRadius: o(r.lg),
767
- backgroundColor: ge(t["status.warning"]),
768
- color: t["status.warning"],
769
- "& svg": { width: o(n[6]), height: o(n[6]) }
770
- };
771
- }), qn = a("p")(({ theme: e }) => ({
772
- margin: 0,
773
- fontWeight: M.semibold,
774
- color: e.design.tokens["text.primary"]
775
- })), Kn = a("p")({ margin: 0 }), Yn = a("div")(({ theme: e }) => ({
776
- display: "flex",
777
- flexWrap: "wrap",
778
- alignItems: "center",
779
- justifyContent: "space-between",
780
- gap: o(e.design.space[3])
781
- })), Xn = a("span")(({ theme: e }) => ({
782
- fontSize: o(e.design.typeScale.body),
783
- color: e.design.tokens["text.secondary"]
784
- })), Qn = a("li")(({ theme: e }) => ({
785
- display: "flex",
786
- alignItems: "center",
787
- gap: o(e.design.space[2]),
788
- ...Ke(e)
789
- })), Zn = a("span")({
790
- display: "flex",
791
- flexDirection: "column",
792
- minWidth: 0
793
- }), Jn = a("span")({
794
- overflow: "hidden",
795
- textOverflow: "ellipsis",
796
- whiteSpace: "nowrap"
797
- }), eo = a("span")(({ theme: e }) => ({
798
- fontSize: o(e.design.typeScale.caption),
799
- color: e.design.tokens["text.muted"],
800
- // A narrow screen wraps it: the scope and the organization tell same-named Spaces apart.
801
- overflowWrap: "anywhere"
802
- })), ct = a("span")(({ theme: e }) => {
803
- const { tokens: t, space: n, radii: r } = e.design;
804
- return {
805
- display: "inline-flex",
806
- flex: "none",
807
- alignItems: "center",
808
- justifyContent: "center",
809
- minWidth: o(n[5]),
810
- height: o(n[5]),
811
- borderRadius: o(r.sm),
812
- color: t["accent.text"],
813
- "& > svg": { width: o(n[4]), height: o(n[4]) }
814
- };
815
- }), to = a(ct)(({ theme: e }) => ({
816
- marginRight: o(e.design.space[2])
817
- })), no = a("li")({ listStyle: "none" }), oo = a("div")(({ theme: e }) => {
818
- const { space: t, tokens: n, typeScale: r } = e.design;
819
- return {
820
- padding: `${o(t[2])} ${o(t[3])} ${o(t[1])}`,
821
- fontSize: o(r.caption),
822
- fontWeight: M.semibold,
823
- letterSpacing: "0.05em",
824
- textTransform: "uppercase",
825
- color: n["text.muted"]
826
- };
827
- }), ro = a("ul")({ margin: 0, padding: 0 });
828
- function io({
829
- cloudPicker: e,
830
- onImport: t,
831
- multiple: n = !1,
832
- maxSize: r,
833
- accept: s
834
- }) {
835
- const {
836
- abyssCloudUrl: c,
837
- getFileThumbnailUrl: l,
838
- getSpaceDisplay: d,
839
- clouds: g,
840
- cloudShares: m,
841
- isLoading: p,
842
- hasError: h,
843
- refresh: y,
844
- onCreateCloud: b,
845
- fetchCloudRepository: f
846
- } = e, u = z(), [x, k] = I(null), [C, P] = I(null), [F, D] = I(
847
- "loading"
848
- /* Loading */
849
- ), [U, A] = I([]), [W, re] = I(!1), [ae, _] = I(!1), q = ye(() => {
850
- const w = [], T = /* @__PURE__ */ new Map(), S = u.formatMessage({
851
- id: "ds.business.cloud-import.section-organization"
852
- });
853
- for (const O of g ?? []) {
854
- if (!O.organizationId) {
855
- w.push(O);
856
- continue;
857
- }
858
- const H = d == null ? void 0 : d(O), V = T.get(O.organizationId) ?? {
859
- name: (H == null ? void 0 : H.organizationName) ?? S,
860
- items: []
861
- };
862
- V.items.push(O), T.set(O.organizationId, V);
863
- }
864
- if (d)
865
- for (const O of T.values())
866
- O.items.sort((H, V) => {
867
- const L = Le[d(H).scope ?? "personal"], Te = Le[d(V).scope ?? "personal"];
868
- return L !== Te ? L - Te : d(H).label.localeCompare(d(V).label);
869
- });
870
- const N = (O, H) => (V) => {
871
- const L = d == null ? void 0 : d(V);
872
- return {
873
- space: V,
874
- sectionKey: O,
875
- sectionLabel: H,
876
- label: (L == null ? void 0 : L.label) ?? Ot(V, u),
877
- subtitle: L == null ? void 0 : L.subtitle,
878
- avatar: L == null ? void 0 : L.avatar
879
- };
880
- };
881
- return [
882
- ...w.map(
883
- N(
884
- "personal",
885
- u.formatMessage({
886
- id: "ds.business.cloud-import.section-personal"
887
- })
888
- )
889
- ),
890
- ...[...T].flatMap(
891
- ([O, H]) => H.items.map(N(`org:${O}`, H.name))
892
- ),
893
- ...(m ?? []).map(
894
- N(
895
- De,
896
- u.formatMessage({ id: "ds.business.cloud-import.section-shared" })
897
- )
898
- )
899
- ];
900
- }, [g, m, d, u]), K = q.find((w) => w.space.id === (x == null ? void 0 : x.id)) ?? null, pe = j(0), we = j(f);
901
- we.current = f;
902
- const le = Q(async (w) => {
903
- const T = ++pe.current;
904
- D(
905
- "loading"
906
- /* Loading */
907
- ), A([]);
908
- try {
909
- if (w.id === void 0)
910
- throw new Error("A Space without an id has no tree");
911
- const S = await we.current(w.id);
912
- T === pe.current && (P(S), D(
913
- "ready"
914
- /* Ready */
915
- ));
916
- } catch {
917
- T === pe.current && D(
918
- "failed"
919
- /* Failed */
920
- );
921
- }
922
- }, []), yt = j(y);
923
- G(() => {
924
- yt.current();
925
- }, []), G(() => {
926
- if (x && q.some((S) => S.space.id === x.id))
927
- return;
928
- const w = q.map((S) => S.space), T = w.find(
929
- (S) => !!S.userId && !S.organizationId && !S.projectId
930
- );
931
- k(T ?? w[0] ?? null);
932
- }, [q, x]), G(() => {
933
- x && le(x);
934
- }, [x, le]);
935
- const vt = async () => {
936
- if (_(!1), !await y()) {
937
- _(!0);
938
- return;
939
- }
940
- x && await le(x);
941
- }, xt = async () => {
942
- re(!0);
943
- try {
944
- await b();
945
- } finally {
946
- re(!1);
947
- }
948
- }, wt = {
949
- multiple: n,
950
- maxSize: r,
951
- accept: s,
952
- selectedIds: new Set(U.map(X)),
953
- getFileThumbnailUrl: l,
954
- select: (w) => A((T) => {
955
- if (!n)
956
- return w.slice(0, 1);
957
- const S = new Set(T.map(X));
958
- return [
959
- ...T,
960
- ...w.filter((N) => !S.has(X(N)))
961
- ];
962
- }),
963
- unselect: (w) => {
964
- const T = new Set(w.map(X));
965
- A(
966
- (S) => S.filter((N) => !T.has(X(N)))
967
- );
968
- }
969
- }, kt = g !== null && m !== null, ke = /* @__PURE__ */ i(ie, { children: /* @__PURE__ */ i(
970
- We,
971
- {
972
- size: 32,
973
- "aria-label": u.formatMessage({
974
- id: "ds.business.cloud-import.loading"
975
- })
976
- }
977
- ) });
978
- if (!kt && (p || !h))
979
- return ke;
980
- if (q.length === 0)
981
- return /* @__PURE__ */ v(ie, { children: [
982
- /* @__PURE__ */ i(Un, { "aria-hidden": !0, children: /* @__PURE__ */ i(Bt, {}) }),
983
- /* @__PURE__ */ i(qn, { children: u.formatMessage({
984
- id: "ds.business.cloud-import.create-error.title"
985
- }) }),
986
- /* @__PURE__ */ i(Kn, { children: u.formatMessage({
987
- id: "ds.business.cloud-import.create-error.description"
988
- }) }),
989
- /* @__PURE__ */ i(
990
- Z,
991
- {
992
- variant: "contained",
993
- startIcon: /* @__PURE__ */ i(Ae, { "aria-hidden": !0 }),
994
- loading: W || p,
995
- onClick: () => void xt(),
996
- children: u.formatMessage({
997
- id: "ds.business.cloud-import.create-error.create-button"
998
- })
999
- }
1000
- )
1001
- ] });
1002
- if (K === null)
1003
- return ke;
1004
- const Ct = Wt(
1005
- c,
1006
- K.space,
1007
- K.sectionKey === De
1008
- ), Ce = u.formatMessage({
1009
- id: "ds.business.cloud-import.refresh"
1010
- }), Se = u.formatMessage({
1011
- id: "ds.business.cloud-import.open-in-cloud"
1012
- }), Ie = (w) => w.avatar ?? /* @__PURE__ */ i(Ae, {});
1013
- return /* @__PURE__ */ v(_n, { children: [
1014
- ae && /* @__PURE__ */ i(
1015
- zn,
1016
- {
1017
- severity: et.Danger,
1018
- onClose: () => _(!1),
1019
- children: u.formatMessage({ id: "ds.business.cloud-import.refresh-error" })
1020
- }
1021
- ),
1022
- /* @__PURE__ */ v(Vn, { children: [
1023
- /* @__PURE__ */ i(
1024
- Ht,
1025
- {
1026
- fullWidth: !0,
1027
- disableClearable: !0,
1028
- options: q,
1029
- value: K,
1030
- groupBy: (w) => w.sectionLabel,
1031
- getOptionLabel: (w) => w.label,
1032
- isOptionEqualToValue: (w, T) => w.space.id === T.space.id,
1033
- onChange: (w, T) => k(T.space),
1034
- filterOptions: (w, { inputValue: T }) => {
1035
- const S = T.trim().toLowerCase();
1036
- return S === "" || S === K.label.toLowerCase() ? w : w.filter(
1037
- (N) => [N.label, N.subtitle ?? ""].some(
1038
- (O) => O.toLowerCase().includes(S)
1039
- )
1040
- );
1041
- },
1042
- renderGroup: (w) => /* @__PURE__ */ v(no, { children: [
1043
- /* @__PURE__ */ i(oo, { children: w.group }),
1044
- /* @__PURE__ */ i(ro, { children: w.children })
1045
- ] }, w.key),
1046
- renderOption: ({ key: w, ...T }, S) => /* @__PURE__ */ v(Qn, { ...T, children: [
1047
- /* @__PURE__ */ i(ct, { "aria-hidden": !0, children: Ie(S) }),
1048
- /* @__PURE__ */ v(Zn, { children: [
1049
- /* @__PURE__ */ i(Jn, { children: S.label }),
1050
- S.subtitle !== void 0 && /* @__PURE__ */ i(eo, { children: S.subtitle })
1051
- ] })
1052
- ] }, w),
1053
- renderInput: (w) => /* @__PURE__ */ i(
1054
- Je,
1055
- {
1056
- label: u.formatMessage({
1057
- id: "ds.business.cloud-import.space-label"
1058
- }),
1059
- children: /* @__PURE__ */ i(
1060
- ve,
1061
- {
1062
- ...w.InputProps,
1063
- id: w.id,
1064
- fullWidth: !0,
1065
- inputProps: w.inputProps,
1066
- startAdornment: /* @__PURE__ */ i(to, { "aria-hidden": !0, children: Ie(K) })
1067
- }
1068
- )
1069
- }
1070
- )
1071
- }
1072
- ),
1073
- /* @__PURE__ */ i(Oe, { title: Ce, children: /* @__PURE__ */ i("span", { children: /* @__PURE__ */ i(
1074
- ee,
1075
- {
1076
- "aria-label": Ce,
1077
- disabled: F === "loading" || p,
1078
- onClick: () => void vt(),
1079
- children: /* @__PURE__ */ i(Vt, { "aria-hidden": !0 })
1080
- }
1081
- ) }) }),
1082
- /* @__PURE__ */ i(Oe, { title: Se, children: /* @__PURE__ */ i(
1083
- ee,
1084
- {
1085
- component: "a",
1086
- href: Ct,
1087
- target: "_blank",
1088
- rel: "noreferrer",
1089
- "aria-label": Se,
1090
- children: /* @__PURE__ */ i(_t, { "aria-hidden": !0 })
1091
- }
1092
- ) })
1093
- ] }),
1094
- /* @__PURE__ */ i(jn, { children: u.formatMessage({ id: "ds.business.cloud-import.filtered-hint" }) }),
1095
- F === "loading" && /* @__PURE__ */ i(ie, { children: /* @__PURE__ */ i(
1096
- We,
1097
- {
1098
- size: 24,
1099
- "aria-label": u.formatMessage({
1100
- id: "ds.business.cloud-import.tree-loading"
1101
- })
1102
- }
1103
- ) }),
1104
- F === "failed" && /* @__PURE__ */ v(ie, { role: "alert", children: [
1105
- u.formatMessage({ id: "ds.business.cloud-import.tree-error" }),
1106
- /* @__PURE__ */ i(
1107
- Z,
1108
- {
1109
- variant: "outlined",
1110
- onClick: () => void le(K.space),
1111
- children: u.formatMessage({ id: "ds.business.cloud-import.retry" })
1112
- }
1113
- )
1114
- ] }),
1115
- F === "ready" && C !== null && (C.folders.length === 0 && C.files.length === 0 ? /* @__PURE__ */ v(ie, { children: [
1116
- /* @__PURE__ */ i(Ue, { "aria-hidden": !0 }),
1117
- u.formatMessage({ id: "ds.business.cloud-import.empty-space" })
1118
- ] }) : /* @__PURE__ */ i(
1119
- Gn,
1120
- {
1121
- "aria-label": u.formatMessage({
1122
- id: "ds.business.cloud-import.tree-label"
1123
- }),
1124
- children: /* @__PURE__ */ i(
1125
- dt,
1126
- {
1127
- folders: C.folders,
1128
- files: C.files,
1129
- context: wt
1130
- }
1131
- )
1132
- }
1133
- )),
1134
- /* @__PURE__ */ v(Yn, { children: [
1135
- /* @__PURE__ */ i(Xn, { role: "status", children: u.formatMessage(
1136
- { id: "ds.business.cloud-import.selected" },
1137
- { count: U.length }
1138
- ) }),
1139
- /* @__PURE__ */ i(
1140
- Z,
1141
- {
1142
- variant: "contained",
1143
- startIcon: /* @__PURE__ */ i(Nt, { "aria-hidden": !0 }),
1144
- disabled: U.length === 0,
1145
- onClick: () => t(K.space, U),
1146
- children: u.formatMessage({ id: "ds.business.cloud-import.import" })
1147
- }
1148
- )
1149
- ] })
1150
- ] });
1151
- }
1152
- function so({
1153
- open: e,
1154
- onClose: t,
1155
- onImport: n,
1156
- cloudPicker: r,
1157
- multiple: s,
1158
- maxSize: c,
1159
- accept: l
1160
- }) {
1161
- const d = z();
1162
- return /* @__PURE__ */ i(
1163
- Ze,
1164
- {
1165
- open: e,
1166
- onClose: t,
1167
- size: xe.Medium,
1168
- title: d.formatMessage({ id: "ds.business.cloud-import.title" }),
1169
- children: e && /* @__PURE__ */ i(
1170
- io,
1171
- {
1172
- cloudPicker: r,
1173
- multiple: s,
1174
- maxSize: c,
1175
- accept: l,
1176
- onImport: (g, m) => {
1177
- n(g, m), t();
1178
- }
1179
- }
1180
- )
1181
- }
1182
- );
1183
- }
1184
- const ao = /* @__PURE__ */ new Set(["a", "button"]), lo = a("div", {
1185
- shouldForwardProp: (e) => e !== "ownerState" && e !== "theme" && e !== "sx" && e !== "as"
1186
- })(({ theme: e, ownerState: t }) => {
1187
- const { tokens: n, radii: r, space: s } = e.design;
1188
- return {
1189
- display: "flex",
1190
- flexDirection: "column",
1191
- minWidth: 0,
1192
- boxSizing: "border-box",
1193
- backgroundColor: n["bg.surface"],
1194
- border: R(n["border.subtle"]),
1195
- borderRadius: o(r.md),
1196
- padding: o(s[t.padding]),
1197
- color: n["text.primary"],
1198
- ...t.interactive && {
1199
- cursor: "pointer",
1200
- font: "inherit",
1201
- textAlign: "inherit",
1202
- textDecoration: "none",
1203
- transition: oe(e, ["border-color"]),
1204
- "&:hover": { borderColor: n["border.strong"] },
1205
- "&:focus-visible": te(e)
1206
- }
1207
- };
1208
- }), ei = It(function({
1209
- interactive: t = !1,
1210
- padding: n = 4,
1211
- component: r = "div",
1212
- children: s,
1213
- onKeyDown: c,
1214
- role: l,
1215
- tabIndex: d,
1216
- ...g
1217
- }, m) {
1218
- const p = t && typeof r == "string" && !ao.has(r), h = Q(
1219
- (b) => {
1220
- typeof m == "function" ? m(b) : m !== null && (m.current = b);
1221
- },
1222
- [m]
1223
- );
1224
- return /* @__PURE__ */ i(
1225
- lo,
1226
- {
1227
- ref: h,
1228
- as: r,
1229
- ownerState: { interactive: t, padding: n },
1230
- role: l ?? (p ? "button" : void 0),
1231
- tabIndex: d ?? (p ? 0 : void 0),
1232
- onKeyDown: (b) => {
1233
- c == null || c(b), p && !b.defaultPrevented && b.target === b.currentTarget && (b.key === "Enter" || b.key === " ") && (b.preventDefault(), b.currentTarget.click());
1234
- },
1235
- ...g,
1236
- children: s
1237
- }
1238
- );
1239
- });
1240
- var ut = /* @__PURE__ */ ((e) => (e.Medium = "medium", e.Compact = "compact", e))(ut || {});
1241
- const co = Be(
1242
- "medium"
1243
- /* Medium */
1244
- ), uo = a(ce)(({ theme: e }) => ({
1245
- // Three times the largest spacing step: room for a label and the arrow.
1246
- minWidth: o(e.design.space[10] * 3),
1247
- maxWidth: "100%"
1248
- })), go = a(je)(({ theme: e }) => ({
1249
- position: "relative",
1250
- transform: "none",
1251
- maxWidth: "100%",
1252
- pointerEvents: "auto",
1253
- marginBottom: o(e.design.space[2]),
1254
- fontSize: o(e.design.typeScale.small),
1255
- fontWeight: M.medium,
1256
- lineHeight: e.typography.caption.lineHeight,
1257
- color: e.design.tokens["text.secondary"],
1258
- "&.Mui-focused": { color: e.design.tokens["text.secondary"] },
1259
- "&.Mui-error": { color: e.design.tokens["status.danger"] },
1260
- "&.Mui-disabled": { color: e.design.tokens["text.muted"] }
1261
- })), po = a("span")(({ theme: e }) => ({
1262
- display: "flex",
1263
- alignItems: "center",
1264
- gap: o(e.design.space[2]),
1265
- minWidth: 0
1266
- })), fo = a("i", {
1267
- shouldForwardProp: (e) => e !== "token"
1268
- })(({ theme: e, token: t }) => ({
1269
- flex: "none",
1270
- width: o(e.design.space[2]),
1271
- height: o(e.design.space[2]),
1272
- borderRadius: o(e.design.radii.sm / 2),
1273
- backgroundColor: e.design.tokens[t]
1274
- })), mo = a("span")({
1275
- display: "flex",
1276
- flexDirection: "column",
1277
- minWidth: 0
1278
- }), ho = a("span")(({ theme: e }) => ({
1279
- fontSize: o(e.design.typeScale.caption),
1280
- color: e.design.tokens["text.muted"],
1281
- whiteSpace: "normal"
1282
- })), be = a("span")({
1283
- overflow: "hidden",
1284
- textOverflow: "ellipsis",
1285
- whiteSpace: "nowrap"
1286
- }), bo = a(be)(({ theme: e }) => ({
1287
- color: e.design.tokens["text.muted"]
1288
- }));
1289
- function ti({
1290
- label: e,
1291
- options: t,
1292
- value: n,
1293
- onChange: r,
1294
- multiple: s = !1,
1295
- disabled: c,
1296
- error: l,
1297
- size: d
1298
- }) {
1299
- const g = z(), m = Ne(co), p = (d ?? m) === ut.Compact, h = p ? uo : ce, y = E(), b = `${y}-label`, f = `${y}-helper`, u = new Map(t.map((k) => [k.value, k]));
1300
- return /* @__PURE__ */ v(h, { fullWidth: !p, disabled: c, error: !!l, children: [
1301
- /* @__PURE__ */ i(
1302
- go,
1303
- {
1304
- id: b,
1305
- shrink: !0,
1306
- style: p ? Ft : void 0,
1307
- children: e
1308
- }
1309
- ),
1310
- /* @__PURE__ */ v(
1311
- $t,
1312
- {
1313
- labelId: b,
1314
- multiple: s,
1315
- value: n,
1316
- displayEmpty: !0,
1317
- renderValue: (k) => {
1318
- const C = Array.isArray(k) ? k : [k];
1319
- return p && C.length === 0 ? /* @__PURE__ */ i(bo, { "aria-hidden": !0, children: e }) : /* @__PURE__ */ i(be, { children: C.map((P) => {
1320
- var F;
1321
- return ((F = u.get(P)) == null ? void 0 : F.label) ?? P;
1322
- }).join(", ") });
1323
- },
1324
- "aria-describedby": l ? f : void 0,
1325
- onChange: (k) => r(k.target.value),
1326
- children: [
1327
- t.length === 0 && /* @__PURE__ */ i(Fe, { disabled: !0, value: "", children: g.formatMessage({ id: "ds.inputs.rich-select.empty" }) }),
1328
- t.map((k) => /* @__PURE__ */ i(Fe, { value: k.value, children: /* @__PURE__ */ v(po, { children: [
1329
- k.tone && /* @__PURE__ */ i(fo, { token: k.tone }),
1330
- k.icon,
1331
- /* @__PURE__ */ v(mo, { children: [
1332
- /* @__PURE__ */ i(be, { children: k.label }),
1333
- k.description && /* @__PURE__ */ i(ho, { children: k.description })
1334
- ] })
1335
- ] }) }, k.value))
1336
- ]
1337
- }
1338
- ),
1339
- l && /* @__PURE__ */ i(de, { id: f, children: l })
1340
- ] });
1341
- }
1342
- const ni = { l: 0.72, c: 0.12 }, oi = [
1343
- 266,
1344
- 296,
1345
- 326,
1346
- 356,
1347
- 26,
1348
- 56,
1349
- 86,
1350
- 116,
1351
- 146,
1352
- 176,
1353
- 206,
1354
- 236
1355
- ], gt = [
1356
- "#81a2f0",
1357
- "#ab94e7",
1358
- "#cb89cd",
1359
- "#e084a7",
1360
- "#e6867d",
1361
- "#de9056",
1362
- "#c69f41",
1363
- "#a1ae50",
1364
- "#70b976",
1365
- "#37bda2",
1366
- "#18b9c9",
1367
- "#4eb0e5"
1368
- ], ri = "#767676", ii = gt[6], si = "#111a2f", ai = "#5674be", yo = /^#?([0-9a-f]{6})$/i, Y = (e) => {
1369
- const t = yo.exec(e.trim());
1370
- return t ? `#${t[1].toLowerCase()}` : null;
1371
- }, vo = a("div")(({ theme: e }) => ({
1372
- display: "flex",
1373
- alignItems: "center",
1374
- gap: o(e.design.space[3])
1375
- })), xo = a("span")(({ theme: e }) => ({
1376
- flex: "none",
1377
- width: o(e.design.densityValues[e.design.density].control),
1378
- height: o(e.design.densityValues[e.design.density].control),
1379
- borderRadius: o(e.design.radii.md),
1380
- border: R(e.design.tokens["border.control"])
1381
- })), wo = a("div")(({ theme: e }) => ({
1382
- display: "flex",
1383
- flexWrap: "wrap",
1384
- gap: o(e.design.space[2]),
1385
- marginTop: o(e.design.space[2])
1386
- })), ko = a(Ge)(({ theme: e }) => {
1387
- const { densityValues: t, density: n, space: r } = e.design, s = t[n].control - r[2];
1388
- return {
1389
- width: o(s),
1390
- height: o(s),
1391
- borderRadius: o(e.design.radii.sm),
1392
- border: R(e.design.tokens["border.control"]),
1393
- // The chosen swatch carries the ring of the design system (`focus.ring` is the accent).
1394
- '&[aria-pressed="true"]': te(e),
1395
- "&.Mui-focusVisible": te(e),
1396
- [B.down($.Tablet)]: {
1397
- width: o(e.design.densityValues.touchTarget),
1398
- height: o(e.design.densityValues.touchTarget)
1399
- }
1400
- };
1401
- });
1402
- function li({
1403
- label: e,
1404
- value: t,
1405
- onChange: n,
1406
- swatches: r = gt
1407
- }) {
1408
- const s = z(), c = E(), [l, d] = I(t), g = l !== "" && Y(l) === null;
1409
- G(() => {
1410
- d(
1411
- (h) => Y(h) === Y(t) ? h : t
1412
- );
1413
- }, [t]);
1414
- const m = (h) => {
1415
- d(h);
1416
- const y = Y(h);
1417
- y !== null && y !== Y(t) && n(y);
1418
- }, p = Y(t);
1419
- return /* @__PURE__ */ v(ce, { fullWidth: !0, error: g, children: [
1420
- /* @__PURE__ */ i(je, { htmlFor: `${c}-hex`, children: e }),
1421
- /* @__PURE__ */ v(vo, { children: [
1422
- /* @__PURE__ */ i(
1423
- xo,
1424
- {
1425
- "aria-hidden": "true",
1426
- style: { backgroundColor: p ?? void 0 }
1427
- }
1428
- ),
1429
- /* @__PURE__ */ i(
1430
- ve,
1431
- {
1432
- id: `${c}-hex`,
1433
- fullWidth: !0,
1434
- value: l,
1435
- error: g,
1436
- inputProps: {
1437
- "aria-describedby": g ? `${c}-error` : void 0,
1438
- spellCheck: !1,
1439
- autoComplete: "off"
1440
- },
1441
- onChange: (h) => m(h.target.value)
1442
- }
1443
- )
1444
- ] }),
1445
- g && /* @__PURE__ */ i(de, { id: `${c}-error`, children: s.formatMessage({ id: "ds.inputs.color.invalid" }) }),
1446
- /* @__PURE__ */ i(
1447
- wo,
1448
- {
1449
- role: "group",
1450
- "aria-label": s.formatMessage({ id: "ds.inputs.color.swatches" }),
1451
- children: r.map((h) => /* @__PURE__ */ i(
1452
- ko,
1453
- {
1454
- "aria-pressed": Y(h) === p,
1455
- "aria-label": h,
1456
- style: { backgroundColor: h },
1457
- onClick: () => n(Y(h) ?? h)
1458
- },
1459
- h
1460
- ))
1461
- }
1462
- )
1463
- ] });
1464
- }
1465
- const Co = 6, So = a("div", {
1466
- shouldForwardProp: (e) => e !== "edges"
1467
- })(({ theme: e, edges: t }) => {
1468
- const { tokens: n, radii: r, space: s } = e.design, c = o(s[1] * Co), l = n["text.primary"], d = t.start ? `transparent, ${l} ${c}` : l, g = t.end ? `${l} calc(100% - ${c}), transparent` : l;
1469
- return {
1470
- maskImage: t.start || t.end ? `linear-gradient(to right, ${d}, ${g})` : "none",
1471
- display: "inline-flex",
1472
- maxWidth: "100%",
1473
- minWidth: 0,
1474
- border: R(n["border.subtle"]),
1475
- borderRadius: o(r.md),
1476
- overflowX: "auto",
1477
- overflowY: "hidden",
1478
- backgroundColor: n["bg.surface"],
1479
- // Below 768 px each segment keeps a 44 px target: the band wraps onto more rows rather than
1480
- // hiding segments behind a sideways scroll. A rule between neighbours would then start the
1481
- // second row with a stray line and leave the rows unsplit: the band loses its border and each
1482
- // segment draws its own, apart by a gap in both directions.
1483
- [B.down($.Tablet)]: {
1484
- flexWrap: "wrap",
1485
- rowGap: o(s[1]),
1486
- columnGap: o(s[1]),
1487
- overflowX: "visible",
1488
- maskImage: "none",
1489
- border: "none",
1490
- backgroundColor: "transparent"
1491
- }
1492
- };
1493
- }), Io = a(Ge)(({ theme: e }) => {
1494
- const { tokens: t, space: n, typeScale: r, fonts: s, densityValues: c, radii: l } = e.design;
1495
- return {
1496
- flex: "none",
1497
- gap: o(n[2]),
1498
- minHeight: o(c[e.design.density].control),
1499
- paddingLeft: o(n[3]),
1500
- paddingRight: o(n[3]),
1501
- fontFamily: s.sans,
1502
- fontSize: o(r.body),
1503
- whiteSpace: "nowrap",
1504
- color: t["text.secondary"],
1505
- transition: oe(e, ["background-color", "color"]),
1506
- "& + &": { borderLeft: R(t["border.subtle"]) },
1507
- '&[aria-checked="true"]': {
1508
- backgroundColor: t["bg.raised"],
1509
- color: t["text.primary"],
1510
- fontWeight: M.medium
1511
- },
1512
- "&:hover": { backgroundColor: t["bg.hover"] },
1513
- "&.Mui-focusVisible": { ...te(e), outlineOffset: "-2px" },
1514
- // A short label (« 1 h », « 7 j ») would leave a segment narrower than a finger. Each segment
1515
- // is its own bordered tile once the band wraps.
1516
- [B.down($.Tablet)]: {
1517
- minWidth: o(c.touchTarget),
1518
- minHeight: o(c.touchTarget),
1519
- border: R(t["border.subtle"]),
1520
- borderRadius: o(l.md),
1521
- backgroundColor: t["bg.surface"],
1522
- '&[aria-checked="true"]': { backgroundColor: t["bg.raised"] }
1523
- }
1524
- };
1525
- }), To = a("span")(({ theme: e }) => ({
1526
- fontFamily: e.design.fonts.mono,
1527
- fontSize: o(e.design.typeScale.caption),
1528
- color: e.design.tokens["text.muted"]
1529
- }));
1530
- function di({
1531
- options: e,
1532
- value: t,
1533
- onChange: n,
1534
- ariaLabel: r
1535
- }) {
1536
- const s = j(null), [c, l] = I({ start: !1, end: !1 }), d = Q(() => {
1537
- const p = s.current;
1538
- if (!p)
1539
- return;
1540
- const h = p.scrollLeft > 0, y = p.scrollLeft + p.clientWidth < p.scrollWidth - 1;
1541
- l(
1542
- (b) => b.start === h && b.end === y ? b : { start: h, end: y }
1543
- );
1544
- }, []);
1545
- G(() => (d(), window.addEventListener("resize", d), () => window.removeEventListener("resize", d)), [d, e]);
1546
- const g = (p) => {
1547
- var b, f;
1548
- const h = e.findIndex((u) => u.value === t);
1549
- let y;
1550
- switch (p.key) {
1551
- case "ArrowRight":
1552
- case "ArrowDown":
1553
- y = (h + 1) % e.length;
1554
- break;
1555
- case "ArrowLeft":
1556
- case "ArrowUp":
1557
- y = (h - 1 + e.length) % e.length;
1558
- break;
1559
- case "Home":
1560
- y = 0;
1561
- break;
1562
- case "End":
1563
- y = e.length - 1;
1564
- break;
1565
- default:
1566
- return;
1567
- }
1568
- p.preventDefault(), n(e[y].value), (f = (b = s.current) == null ? void 0 : b.querySelectorAll('[role="radio"]')[y]) == null || f.focus();
1569
- }, m = Math.max(
1570
- e.findIndex((p) => p.value === t),
1571
- 0
1572
- );
1573
- return /* @__PURE__ */ i(
1574
- So,
1575
- {
1576
- ref: s,
1577
- role: "radiogroup",
1578
- "aria-label": r,
1579
- edges: c,
1580
- onKeyDown: g,
1581
- onScroll: d,
1582
- children: e.map((p, h) => {
1583
- const y = p.value === t;
1584
- return /* @__PURE__ */ v(
1585
- Io,
1586
- {
1587
- role: "radio",
1588
- "aria-checked": y,
1589
- tabIndex: h === m ? 0 : -1,
1590
- onClick: () => n(p.value),
1591
- children: [
1592
- p.label,
1593
- p.count !== void 0 && /* @__PURE__ */ i(To, { children: p.count })
1594
- ]
1595
- },
1596
- p.value
1597
- );
1598
- })
1599
- }
1600
- );
1601
- }
1602
- const $o = [32, 160, 8239, 8201].map(
1603
- (e) => String.fromCharCode(e)
1604
- ), Fo = (e) => {
1605
- var n, r;
1606
- const t = new Intl.NumberFormat(e).formatToParts(11111.1);
1607
- return {
1608
- group: ((n = t.find((s) => s.type === "group")) == null ? void 0 : n.value) ?? " ",
1609
- decimal: ((r = t.find((s) => s.type === "decimal")) == null ? void 0 : r.value) ?? "."
1610
- };
1611
- }, Pe = (e, t) => {
1612
- const r = [t.group, ...$o].reduce(
1613
- (c, l) => c.split(l).join(""),
1614
- e.trim()
1615
- ).replace(",", ".");
1616
- if (r === "" || !/^-?\d*\.?\d+$|^-?\d+\.$/.test(r))
1617
- return null;
1618
- const s = Number.parseFloat(r);
1619
- return Number.isFinite(s) ? s : null;
1620
- };
1621
- function ci({
1622
- label: e,
1623
- value: t,
1624
- onChange: n,
1625
- decimals: r = 0,
1626
- min: s = 0,
1627
- disabled: c,
1628
- adornment: l
1629
- }) {
1630
- const d = z(), g = ye(
1631
- () => Fo(d.locale),
1632
- [d.locale]
1633
- ), m = Q(
1634
- (u) => u === null ? "" : d.formatNumber(u, {
1635
- minimumFractionDigits: r,
1636
- maximumFractionDigits: r
1637
- }),
1638
- [d, r]
1639
- ), [p, h] = I(!1), [y, b] = I(() => m(t));
1640
- return G(() => {
1641
- p || b(m(t));
1642
- }, [t, p, m]), /* @__PURE__ */ i(Je, { label: e, children: /* @__PURE__ */ i(
1643
- ve,
1644
- {
1645
- disabled: c,
1646
- value: y,
1647
- inputProps: { inputMode: "decimal" },
1648
- onFocus: () => {
1649
- h(!0), t !== null && b(String(t).replace(".", g.decimal));
1650
- },
1651
- onChange: (u) => {
1652
- b(u.target.value);
1653
- const x = Pe(u.target.value, g);
1654
- x !== null ? n(x) : u.target.value === "" && n(null);
1655
- },
1656
- onBlur: () => {
1657
- h(!1);
1658
- let u = Pe(y, g);
1659
- u !== null && (u = Number.parseFloat(Math.max(u, s).toFixed(r))), n(u), b(m(u));
1660
- },
1661
- endAdornment: l ? /* @__PURE__ */ i(Dt, { position: "end", children: l }) : void 0
1662
- }
1663
- ) });
1664
- }
1665
- const Mo = a("div")(({ theme: e }) => ({
1666
- display: "flex",
1667
- flexDirection: "column",
1668
- gap: o(e.design.space[2]),
1669
- minWidth: 0
1670
- })), Ro = a("span")(({ theme: e }) => ({
1671
- fontSize: o(e.design.typeScale.small),
1672
- fontWeight: M.medium,
1673
- color: e.design.tokens["text.secondary"]
1674
- })), Wo = a("div", {
1675
- shouldForwardProp: (e) => e !== "active"
1676
- })(({ theme: e, active: t }) => {
1677
- const { tokens: n, space: r, radii: s } = e.design;
1678
- return {
1679
- display: "flex",
1680
- flexDirection: "column",
1681
- alignItems: "center",
1682
- justifyContent: "center",
1683
- gap: o(r[3]),
1684
- minHeight: o(r[10] * 3),
1685
- padding: `${o(r[6])} ${o(r[4])}`,
1686
- boxSizing: "border-box",
1687
- border: `1px dashed ${t ? n.accent : n["border.control"]}`,
1688
- borderRadius: o(s.md),
1689
- backgroundColor: t ? ge(n.accent) : n["bg.raised"],
1690
- color: n["text.secondary"],
1691
- textAlign: "center",
1692
- cursor: "pointer",
1693
- transition: oe(e, ["border-color", "background-color"]),
1694
- "&:hover": { borderColor: n.accent }
1695
- };
1696
- }), Oo = a("span")(({ theme: e }) => {
1697
- const { tokens: t, space: n } = e.design;
1698
- return {
1699
- display: "inline-flex",
1700
- alignItems: "center",
1701
- justifyContent: "center",
1702
- width: o(n[9]),
1703
- height: o(n[9]),
1704
- borderRadius: "50%",
1705
- backgroundColor: ge(t.accent),
1706
- color: t["accent.text"],
1707
- "& svg": { width: o(n[5]), height: o(n[5]) }
1708
- };
1709
- }), Ao = a("span")(({ theme: e }) => ({
1710
- fontSize: o(e.design.typeScale.body),
1711
- [B.down($.Tablet)]: { display: "none" }
1712
- })), Eo = a("div")(({ theme: e }) => ({
1713
- display: "flex",
1714
- flexWrap: "wrap",
1715
- alignItems: "center",
1716
- justifyContent: "space-between",
1717
- gap: o(e.design.space[2])
1718
- })), zo = a("span")(({ theme: e }) => ({
1719
- fontSize: o(e.design.typeScale.small),
1720
- color: e.design.tokens["text.muted"]
1721
- })), Do = a("p")(({ theme: e }) => ({
1722
- margin: 0,
1723
- fontSize: o(e.design.typeScale.small),
1724
- color: e.design.tokens["status.danger"]
1725
- })), Lo = a("img")(({ theme: e }) => ({
1726
- width: o(e.design.space[4]),
1727
- height: o(e.design.space[4])
1728
- })), Po = (e) => {
1729
- const { value: t, unit: n } = Lt(e);
1730
- return `${t} ${n}`;
1731
- };
1732
- function ui({
1733
- onDrop: e,
1734
- multiple: t = !0,
1735
- accept: n,
1736
- maxSize: r,
1737
- caption: s,
1738
- title: c,
1739
- cloudImport: l,
1740
- children: d
1741
- }) {
1742
- const g = z(), m = E(), p = E(), [h, y] = I(null), [b, f] = I(!1), u = r === void 0 ? null : Po(r), x = s ?? (u === null ? null : g.formatMessage(
1743
- { id: "ds.inputs.drop-zone.max-size" },
1744
- { size: u, multiple: String(t) }
1745
- )), k = (A, W) => {
1746
- const re = r === void 0 ? [] : A.filter((_) => _.size > r), ae = A.filter((_) => !re.includes(_));
1747
- W.some(
1748
- (_) => _.errors.some((q) => q.code === zt.TooManyFiles)
1749
- ) ? y(
1750
- "too-many"
1751
- /* TooMany */
1752
- ) : W.length > 0 ? y(
1753
- "rejected-type"
1754
- /* Rejected */
1755
- ) : re.length > 0 ? y(
1756
- A.length === 1 ? "too-big" : "some-too-big"
1757
- /* SomeTooBig */
1758
- ) : y(null), ae.length > 0 && e(ae);
1759
- }, { getRootProps: C, getInputProps: P, isDragActive: F, open: D } = At({
1760
- onDrop: k,
1761
- multiple: t,
1762
- accept: n,
1763
- // The zone itself is not a control: the button inside is, for the keyboard and screen readers.
1764
- noClick: !0,
1765
- noKeyboard: !0
1766
- }), U = g.formatMessage(
1767
- { id: "ds.inputs.drop-zone.browse" },
1768
- { multiple: String(t) }
1769
- );
1770
- return /* @__PURE__ */ v(
1771
- Mo,
1772
- {
1773
- role: "group",
1774
- "aria-labelledby": c !== void 0 ? m : void 0,
1775
- "aria-describedby": x !== null ? p : void 0,
1776
- children: [
1777
- c !== void 0 && /* @__PURE__ */ i(Ro, { id: m, children: c }),
1778
- /* @__PURE__ */ v(Wo, { ...C({ onClick: D }), active: F, children: [
1779
- /* @__PURE__ */ i("input", { ...P({ "aria-hidden": !0 }) }),
1780
- d ?? /* @__PURE__ */ v(ne, { children: [
1781
- /* @__PURE__ */ i(Oo, { "aria-hidden": !0, children: /* @__PURE__ */ i(Pt, {}) }),
1782
- /* @__PURE__ */ i(Ao, { children: g.formatMessage(
1783
- {
1784
- id: F ? "ds.inputs.drop-zone.release" : "ds.inputs.drop-zone.prompt"
1785
- },
1786
- { multiple: String(t) }
1787
- ) })
1788
- ] }),
1789
- /* @__PURE__ */ i(
1790
- Z,
1791
- {
1792
- variant: "outlined",
1793
- onClick: (A) => {
1794
- A.stopPropagation(), D();
1795
- },
1796
- children: U
1797
- }
1798
- )
1799
- ] }),
1800
- (l !== void 0 || x !== null) && /* @__PURE__ */ v(Eo, { children: [
1801
- l !== void 0 && /* @__PURE__ */ i(
1802
- Z,
1803
- {
1804
- variant: "text",
1805
- startIcon: /* @__PURE__ */ i(Lo, { src: Et, alt: "" }),
1806
- onClick: () => f(!0),
1807
- children: g.formatMessage({ id: "ds.inputs.drop-zone.cloud" })
1808
- }
1809
- ),
1810
- x !== null && /* @__PURE__ */ i(zo, { id: p, children: x })
1811
- ] }),
1812
- /* @__PURE__ */ i(Do, { role: "alert", children: h !== null && g.formatMessage(
1813
- { id: `ds.inputs.drop-zone.${h}` },
1814
- { size: u ?? "" }
1815
- ) }),
1816
- l !== void 0 && /* @__PURE__ */ i(
1817
- so,
1818
- {
1819
- open: b,
1820
- onClose: () => f(!1),
1821
- onImport: l.onImport,
1822
- cloudPicker: l,
1823
- multiple: t,
1824
- maxSize: r,
1825
- accept: n === void 0 ? void 0 : Object.entries(n).flatMap(([A, W]) => [
1826
- A,
1827
- ...W
1828
- ])
1829
- }
1830
- )
1831
- ]
1832
- }
1833
- );
1834
- }
1835
- var Ho = /* @__PURE__ */ ((e) => (e.Default = "default", e.Danger = "danger", e.Warning = "warning", e))(Ho || {});
1836
- const Bo = a("form")(({ theme: e }) => ({
1837
- display: "flex",
1838
- flexDirection: "column",
1839
- gap: o(e.design.space[4]),
1840
- color: e.design.tokens["text.secondary"],
1841
- overflowWrap: "anywhere"
1842
- })), No = (e, t) => {
1843
- const { paper: n } = e.design.tokens, r = e.design.tokens["paper.on"];
1844
- return $e(t, n) >= $e(t, r) ? n : r;
1845
- }, _o = {
1846
- default: "primary",
1847
- danger: "error",
1848
- warning: "warning"
1849
- };
1850
- function Vo({
1851
- open: e,
1852
- title: t,
1853
- body: n,
1854
- confirmLabel: r,
1855
- tone: s = "default",
1856
- confirmationText: c,
1857
- onConfirm: l,
1858
- onCancel: d
1859
- }) {
1860
- const g = z(), m = Ve(), p = E(), [h, y] = I(""), [b, f] = I(!1), [u, x] = I(!1), [k, C] = I(e);
1861
- e !== k && (C(e), e && (y(""), x(!1)));
1862
- const P = !b && (c === void 0 || h === c), F = s !== "default", D = () => {
1863
- b || d();
1864
- }, U = () => {
1865
- if (!P)
1866
- return;
1867
- x(!1);
1868
- let W;
1869
- try {
1870
- W = l();
1871
- } catch {
1872
- x(!0);
1873
- return;
1874
- }
1875
- W instanceof Promise && (f(!0), W.then(
1876
- () => f(!1),
1877
- () => {
1878
- f(!1), x(!0);
1879
- }
1880
- ));
1881
- }, A = (W) => {
1882
- W.preventDefault(), U();
1883
- };
1884
- return /* @__PURE__ */ i(
1885
- Ze,
1886
- {
1887
- open: e,
1888
- onClose: D,
1889
- size: xe.Small,
1890
- title: t,
1891
- actions: /* @__PURE__ */ v(ne, { children: [
1892
- /* @__PURE__ */ i(
1893
- Z,
1894
- {
1895
- variant: "outlined",
1896
- disabled: b,
1897
- autoFocus: c === void 0 && F,
1898
- onClick: D,
1899
- children: g.formatMessage({ id: "ds.layers.confirm-dialog.cancel" })
1900
- }
1901
- ),
1902
- /* @__PURE__ */ i(
1903
- Z,
1904
- {
1905
- type: "submit",
1906
- form: p,
1907
- variant: "contained",
1908
- color: _o[s],
1909
- disabled: !P,
1910
- loading: b,
1911
- autoFocus: c === void 0 && !F,
1912
- sx: s === "warning" ? {
1913
- "&:not(.Mui-disabled)": {
1914
- color: No(
1915
- m,
1916
- m.design.tokens["status.warning"]
1917
- )
1918
- }
1919
- } : void 0,
1920
- children: r
1921
- }
1922
- )
1923
- ] }),
1924
- children: /* @__PURE__ */ v(Bo, { id: p, onSubmit: A, noValidate: !0, children: [
1925
- /* @__PURE__ */ i("div", { children: n }),
1926
- c !== void 0 && /* @__PURE__ */ i(
1927
- nn,
1928
- {
1929
- label: g.formatMessage(
1930
- { id: "ds.layers.confirm-dialog.type-to-confirm" },
1931
- { text: c }
1932
- ),
1933
- value: h,
1934
- onChange: (W) => y(W.target.value),
1935
- disabled: b,
1936
- autoFocus: !0,
1937
- autoComplete: "off",
1938
- fullWidth: !0
1939
- }
1940
- ),
1941
- u && /* @__PURE__ */ i(tn, { severity: "error", children: g.formatMessage({ id: "ds.layers.confirm-dialog.failed" }) })
1942
- ] })
1943
- }
1944
- );
1945
- }
1946
- var jo = /* @__PURE__ */ ((e) => (e.BottomStart = "bottom-start", e.BottomEnd = "bottom-end", e))(jo || {});
1947
- const Go = 320, Uo = a("div")(({ theme: e }) => {
1948
- const { tokens: t, space: n } = e.design;
1949
- return {
1950
- flex: "none",
1951
- display: "flex",
1952
- alignItems: "center",
1953
- justifyContent: "space-between",
1954
- gap: o(n[3]),
1955
- padding: `${o(n[2])} ${o(n[2])} ${o(n[2])} ${o(n[4])}`,
1956
- borderBottom: R(t["border.subtle"])
1957
- };
1958
- }), qo = a("h2")(({ theme: e }) => ({
1959
- margin: 0,
1960
- minWidth: 0,
1961
- color: e.design.tokens["text.primary"],
1962
- fontSize: o(e.design.typeScale.body),
1963
- fontWeight: M.semibold,
1964
- overflowWrap: "anywhere"
1965
- })), pt = a("div")(({ theme: e }) => ({
1966
- display: "flex",
1967
- flexDirection: "column",
1968
- gap: o(e.design.space[3]),
1969
- fontSize: o(e.design.typeScale.body)
1970
- })), Ko = a(pt)(({ theme: e }) => ({
1971
- padding: o(e.design.space[4])
1972
- }));
1973
- function gi({
1974
- anchorEl: e,
1975
- open: t,
1976
- onClose: n,
1977
- title: r,
1978
- placement: s = "bottom-start",
1979
- width: c = Go,
1980
- children: l
1981
- }) {
1982
- const d = z(), g = E(), m = Xe() === $.Mobile, p = d.formatMessage({
1983
- id: "ds.layers.anchored-panel.close"
1984
- }), h = t && e !== null;
1985
- if (m)
1986
- return /* @__PURE__ */ i(
1987
- Qe,
1988
- {
1989
- open: h,
1990
- onClose: n,
1991
- title: r,
1992
- closeLabel: p,
1993
- children: /* @__PURE__ */ i(pt, { children: l })
1994
- }
1995
- );
1996
- const y = s === "bottom-end" ? "right" : "left";
1997
- return /* @__PURE__ */ v(
1998
- en,
1999
- {
2000
- anchorEl: e,
2001
- open: h,
2002
- onClose: () => n(),
2003
- anchorOrigin: { vertical: "bottom", horizontal: y },
2004
- transformOrigin: { vertical: "top", horizontal: y },
2005
- slotProps: {
2006
- paper: {
2007
- role: "dialog",
2008
- "aria-modal": !0,
2009
- "aria-labelledby": g,
2010
- sx: (b) => ({
2011
- width: o(c),
2012
- maxWidth: `calc(100vw - ${o(b.design.space[4] * 2)})`,
2013
- marginTop: o(b.design.space[1]),
2014
- color: b.design.tokens["text.primary"],
2015
- fontFamily: b.design.fonts.sans
2016
- })
2017
- }
2018
- },
2019
- children: [
2020
- /* @__PURE__ */ v(Uo, { children: [
2021
- /* @__PURE__ */ i(qo, { id: g, children: r }),
2022
- /* @__PURE__ */ i(ee, { "aria-label": p, onClick: n, children: /* @__PURE__ */ i(ue, { "aria-hidden": !0 }) })
2023
- ] }),
2024
- /* @__PURE__ */ i(Ko, { children: l })
2025
- ]
2026
- }
2027
- );
2028
- }
2029
- const ft = Be(null);
2030
- function pi({ children: e }) {
2031
- const [t, n] = I([]), [r, s] = I(null), c = j(0), l = j([]);
2032
- l.current = t;
2033
- const d = t.length > 0 ? t[0] : null;
2034
- d !== null && d !== r && s(d), G(
2035
- () => () => {
2036
- l.current.forEach((h) => h.resolve(!1));
2037
- },
2038
- []
2039
- );
2040
- const g = Q(
2041
- (h) => new Promise((y) => {
2042
- c.current += 1;
2043
- const b = { id: c.current, options: h, resolve: y };
2044
- n((f) => [...f, b]);
2045
- }),
2046
- []
2047
- ), m = (h) => {
2048
- d !== null && (d.resolve(h), n((y) => y.filter((b) => b !== d)));
2049
- }, p = ye(() => ({ confirm: g }), [g]);
2050
- return /* @__PURE__ */ v(ft.Provider, { value: p, children: [
2051
- e,
2052
- r !== null && // A new key per request: each one starts from an empty confirmation field.
2053
- /* @__PURE__ */ i(
2054
- Vo,
2055
- {
2056
- open: d === r,
2057
- ...r.options,
2058
- onConfirm: () => m(!0),
2059
- onCancel: () => m(!1)
2060
- },
2061
- r.id
2062
- )
2063
- ] });
2064
- }
2065
- function fi() {
2066
- const e = Ne(ft);
2067
- if (e === null)
2068
- throw new Error(
2069
- "useConfirmDialog must be called inside a ConfirmDialogProvider"
2070
- );
2071
- return e;
2072
- }
2073
- const Yo = 1, Xo = (e, t) => t === "vertical" ? e.scrollHeight - e.clientHeight - e.scrollTop : e.scrollWidth - e.clientWidth - e.scrollLeft, Qo = (e, t, n) => {
2074
- const [r, s] = I(!1), c = Q(() => {
2075
- const l = e.current;
2076
- l !== null && s(Xo(l, t) > Yo);
2077
- }, [e, t]);
2078
- return _e(c, [c, n]), G(() => {
2079
- const l = e.current;
2080
- if (l === null)
2081
- return;
2082
- l.addEventListener("scroll", c, { passive: !0 });
2083
- const d = typeof ResizeObserver > "u" ? null : new ResizeObserver(c);
2084
- return d !== null && (d.observe(l), Array.from(l.children).forEach((g) => d.observe(g))), () => {
2085
- l.removeEventListener("scroll", c), d == null || d.disconnect();
2086
- };
2087
- }, [e, c, n]), r;
2088
- };
2089
- var Zo = /* @__PURE__ */ ((e) => (e.Primary = "primary", e.Secondary = "secondary", e))(Zo || {});
2090
- const Jo = 2, er = /* @__PURE__ */ new Set(["Enter", " "]), tr = a("div", {
2091
- shouldForwardProp: (e) => e !== "variant"
2092
- })(({ theme: e, variant: t }) => ({
2093
- minWidth: 0,
2094
- ...t === "primary" && {
2095
- borderBottom: R(e.design.tokens["border.subtle"])
2096
- }
2097
- })), mt = 32, nr = a("div", {
2098
- shouldForwardProp: (e) => e !== "variant" && e !== "fade"
2099
- })(({ theme: e, variant: t, fade: n }) => {
2100
- const s = `linear-gradient(to right, ${e.design.tokens["text.primary"]} calc(100% - ${o(
2101
- mt
2102
- )}), transparent)`;
2103
- return {
2104
- position: "relative",
2105
- display: "flex",
2106
- gap: o(e.design.space[t === "primary" ? 1 : 2]),
2107
- overflowX: "auto",
2108
- overflowY: "hidden",
2109
- scrollbarWidth: "none",
2110
- "&::-webkit-scrollbar": { display: "none" },
2111
- ...n && { maskImage: s, WebkitMaskImage: s }
2112
- };
2113
- }), ht = (e, t) => {
2114
- const { tokens: n, space: r, radii: s, typeScale: c, fonts: l, densityValues: d, density: g } = e.design, m = {
2115
- position: "relative",
2116
- display: "inline-flex",
2117
- alignItems: "center",
2118
- flex: "none",
2119
- gap: o(r[2]),
2120
- boxSizing: "border-box",
2121
- margin: 0,
2122
- border: 0,
2123
- backgroundColor: "transparent",
2124
- cursor: "pointer",
2125
- fontFamily: l.sans,
2126
- whiteSpace: "nowrap",
2127
- textDecoration: "none",
2128
- color: n["text.secondary"],
2129
- transition: oe(e, ["color", "background-color"]),
2130
- "&:hover": { color: n["text.primary"] },
2131
- '&[aria-selected="true"]': {
2132
- color: n["text.primary"],
2133
- fontWeight: M.medium
2134
- },
2135
- // Inside the scrolling row, an outer ring would be clipped: it is drawn inside the tab.
2136
- "&:focus-visible": { ...te(e), outlineOffset: "-2px" }
2137
- }, p = {
2138
- [B.down($.Tablet)]: {
2139
- minHeight: o(d.touchTarget)
2140
- }
2141
- };
2142
- return t === "primary" ? {
2143
- ...m,
2144
- minHeight: o(d[g].control + r[2]),
2145
- padding: `0 ${o(r[3])}`,
2146
- fontSize: o(c.body),
2147
- '&[aria-selected="true"]::after': {
2148
- content: '""',
2149
- position: "absolute",
2150
- left: 0,
2151
- right: 0,
2152
- bottom: 0,
2153
- height: o(Jo),
2154
- backgroundColor: n.accent
2155
- },
2156
- ...p
2157
- } : {
2158
- ...m,
2159
- minHeight: o(d.compact.control),
2160
- padding: `0 ${o(r[3])}`,
2161
- borderRadius: o(s.md),
2162
- fontSize: o(c.small),
2163
- "&:hover": {
2164
- color: n["text.primary"],
2165
- backgroundColor: n["bg.hover"]
2166
- },
2167
- '&[aria-selected="true"]': {
2168
- color: n["text.primary"],
2169
- fontWeight: M.medium,
2170
- backgroundColor: n["bg.raised"]
2171
- },
2172
- ...p
2173
- };
2174
- }, bt = (e) => e !== "variant", or = a(an, { shouldForwardProp: bt })(({ theme: e, variant: t }) => ht(e, t)), rr = a("button", { shouldForwardProp: bt })(({ theme: e, variant: t }) => ht(e, t)), ir = a("span")(({ theme: e }) => {
2175
- const { tokens: t, space: n, radii: r, fonts: s, typeScale: c } = e.design;
2176
- return {
2177
- display: "inline-flex",
2178
- alignItems: "center",
2179
- padding: `0 ${o(n[1])}`,
2180
- borderRadius: o(r.sm),
2181
- border: R(t["border.subtle"]),
2182
- fontFamily: s.mono,
2183
- fontSize: o(c.caption),
2184
- fontWeight: M.regular,
2185
- lineHeight: 1.6,
2186
- color: t["text.muted"]
2187
- };
2188
- }), He = (e, t) => {
2189
- const n = t.offsetLeft, r = n + t.offsetWidth + mt;
2190
- n < e.scrollLeft ? e.scrollLeft = n : r > e.scrollLeft + e.clientWidth && (e.scrollLeft = r - e.clientWidth);
2191
- };
2192
- function mi({
2193
- items: e,
2194
- value: t,
2195
- onChange: n,
2196
- variant: r,
2197
- "aria-label": s
2198
- }) {
2199
- const c = z(), l = j(null), d = e.filter((f) => f.hidden !== !0), g = Qo(l, "horizontal", d.length), m = Q(
2200
- () => {
2201
- var f;
2202
- return Array.from(
2203
- ((f = l.current) == null ? void 0 : f.querySelectorAll('[role="tab"]')) ?? []
2204
- );
2205
- },
2206
- []
2207
- ), p = Q(() => {
2208
- const f = l.current, u = f == null ? void 0 : f.querySelector('[aria-selected="true"]');
2209
- f && u && He(f, u);
2210
- }, []);
2211
- _e(p, [p, t]);
2212
- const h = d.map((f) => f.value).join("|");
2213
- G(() => {
2214
- const f = l.current;
2215
- if (f === null || typeof ResizeObserver > "u")
2216
- return;
2217
- const u = new ResizeObserver(p);
2218
- return u.observe(f), Array.from(f.children).forEach((x) => u.observe(x)), () => u.disconnect();
2219
- }, [p, h]);
2220
- const y = (f) => {
2221
- const u = m(), x = u.findIndex((C) => C === document.activeElement);
2222
- if (x < 0)
2223
- return;
2224
- if (er.has(f.key)) {
2225
- f.key === " " && u[x] instanceof HTMLAnchorElement && (f.preventDefault(), u[x].click());
2226
- return;
2227
- }
2228
- let k;
2229
- switch (f.key) {
2230
- case "ArrowRight":
2231
- k = (x + 1) % u.length;
2232
- break;
2233
- case "ArrowLeft":
2234
- k = (x - 1 + u.length) % u.length;
2235
- break;
2236
- case "Home":
2237
- k = 0;
2238
- break;
2239
- case "End":
2240
- k = u.length - 1;
2241
- break;
2242
- default:
2243
- return;
2244
- }
2245
- f.preventDefault(), u[k].focus(), l.current && He(l.current, u[k]);
2246
- }, b = Math.max(
2247
- d.findIndex((f) => f.value === t),
2248
- 0
2249
- );
2250
- return /* @__PURE__ */ i(tr, { variant: r, children: /* @__PURE__ */ i(
2251
- nr,
2252
- {
2253
- ref: l,
2254
- role: "tablist",
2255
- "aria-label": s,
2256
- variant: r,
2257
- fade: g,
2258
- "data-overflowing": g || void 0,
2259
- onKeyDown: y,
2260
- children: d.map((f, u) => {
2261
- const x = f.value === t, k = /* @__PURE__ */ v(ne, { children: [
2262
- f.label,
2263
- f.badge !== void 0 && /* @__PURE__ */ i(ir, { children: typeof f.badge == "number" ? c.formatNumber(f.badge) : f.badge })
2264
- ] }), C = {
2265
- role: "tab",
2266
- "aria-selected": x,
2267
- tabIndex: u === b ? 0 : -1,
2268
- "data-testid": f.testId,
2269
- variant: r,
2270
- onClick: () => n == null ? void 0 : n(f.value)
2271
- };
2272
- return f.to !== void 0 ? /* @__PURE__ */ i(
2273
- or,
2274
- {
2275
- to: f.to,
2276
- "aria-current": x ? "page" : void 0,
2277
- ...C,
2278
- children: k
2279
- },
2280
- f.value
2281
- ) : /* @__PURE__ */ i(rr, { type: "button", ...C, children: k }, f.value);
2282
- })
2283
- }
2284
- ) });
2285
- }
2286
- export {
2287
- jo as A,
2288
- Qe as B,
2289
- zn as C,
2290
- $ as D,
2291
- gi as E,
2292
- Je as F,
2293
- pi as G,
2294
- fi as H,
2295
- so as I,
2296
- mi as J,
2297
- ni as K,
2298
- oi as L,
2299
- Ze as M,
2300
- ci as N,
2301
- gt as O,
2302
- ri as P,
2303
- ii as Q,
2304
- co as R,
2305
- J as S,
2306
- Zo as T,
2307
- si as U,
2308
- ai as V,
2309
- xe as a,
2310
- dn as b,
2311
- oe as c,
2312
- B as d,
2313
- et as e,
2314
- te as f,
2315
- ei as g,
2316
- R as h,
2317
- Ye as i,
2318
- Zr as j,
2319
- Qo as k,
2320
- ut as l,
2321
- io as m,
2322
- ti as n,
2323
- Y as o,
2324
- o as p,
2325
- li as q,
2326
- Jr as r,
2327
- ge as s,
2328
- Ke as t,
2329
- Xe as u,
2330
- di as v,
2331
- se as w,
2332
- ui as x,
2333
- Ho as y,
2334
- Vo as z
2335
- };