@abyss-project/commons-front-core 13.1.0 → 13.2.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 (64) hide show
  1. package/dist/{AbyssCloud-IuD91X6C.js → AbyssCloud-D_AbU9k7.js} +1 -1
  2. package/dist/AbyssCookieConsentProvider-Ds99df0E.js +4562 -0
  3. package/dist/{CookieConsentSettings.component-ZF6umBSH.js → CookieConsentSettings.component-DoWLHqw5.js} +10 -9
  4. package/dist/{Tabs-CYy30PTc.js → Tabs-C1qcQ2i5.js} +1 -1
  5. package/dist/auth/components/RequireSession/RequireSession.component.d.ts +3 -2
  6. package/dist/auth/components/SessionBoundary/AbyssSessionBoundary.component.d.ts +3 -2
  7. package/dist/auth/components/SessionErrorScreen/SessionErrorScreen.component.d.ts +3 -3
  8. package/dist/{isSymbol-CubIld3H.js → clsx-D8ItxkrZ.js} +73 -73
  9. package/dist/components/CodeEditor/CodeEditor.component.d.ts +29 -0
  10. package/dist/components/CodeEditor/DataSourceBrowser/path-formatter.utils.d.ts +14 -0
  11. package/dist/components/CodeEditor/DataSourceBrowser/types.d.ts +17 -0
  12. package/dist/components/CodeEditor/ExpressionCodeEditor.component.d.ts +13 -0
  13. package/dist/components/CodeEditor/ExpressionCodeEditor.component.spec.d.ts +1 -0
  14. package/dist/components/CodeEditor/FullScreenMonacoEditor.component.d.ts +13 -0
  15. package/dist/components/CodeEditor/index.d.ts +7 -0
  16. package/dist/components/CodeEditor/monaco-types-generator.d.ts +40 -0
  17. package/dist/components/ScanStatus/InfectedDownloadWarningModal.d.ts +57 -0
  18. package/dist/components/ScanStatus/InfectedDownloadWarningModal.spec.d.ts +1 -0
  19. package/dist/components/ScanStatus/ScanStatusIndicator.d.ts +102 -0
  20. package/dist/components/ScanStatus/ScanStatusIndicator.spec.d.ts +1 -0
  21. package/dist/components/ScanStatus/index.d.ts +6 -0
  22. package/dist/components/ScanStatus/use-infected-download-guard.hook.d.ts +37 -0
  23. package/dist/components/ScanStatus/use-infected-download-guard.hook.spec.d.ts +1 -0
  24. package/dist/components/data/DataTable/data-table.types.d.ts +5 -0
  25. package/dist/components/index.d.ts +1 -0
  26. package/dist/components/inputs/ExpressionSearch/expression-fade.d.ts +6 -0
  27. package/dist/cookie-consent.js +11 -10
  28. package/dist/{design-theme-jAV6pBoh.js → design-theme-CG4Gc105.js} +6118 -6070
  29. package/dist/{editors-Cs01hAfK.js → editors-CUsZNFfw.js} +15755 -15038
  30. package/dist/editors.d.ts +1 -0
  31. package/dist/editors.js +13 -4
  32. package/dist/hooks/use-rich-intl.hook.d.ts +48 -0
  33. package/dist/{index-BLWFMNK1.js → index-BQ4GXlMJ.js} +1 -1
  34. package/dist/{index-CQhfq-e2.js → index-Ba41aBBN.js} +2 -2
  35. package/dist/{index-Bw9dFzxv.js → index-BhFOCfCj.js} +2 -2
  36. package/dist/{index-CgdrkQAf.js → index-Bn4gTAno.js} +2 -2
  37. package/dist/{index-BB97MmlB.js → index-BzoBMWdL.js} +3 -3
  38. package/dist/{index-BQ-RHsS9.js → index-C7a2XXcz.js} +4 -4
  39. package/dist/{index-BSpED9Jn.js → index-CDpC4_po.js} +2 -2
  40. package/dist/{index-BYymsRFa.js → index-CM0x-TnE.js} +2 -2
  41. package/dist/{index-BG_7wul8.js → index-CYUixRIB.js} +2 -2
  42. package/dist/{index-Ce0hJGR7.js → index-CiDg4J7c.js} +4 -4
  43. package/dist/{index-BJ-WRVfA.js → index-CjV5ui_B.js} +2 -2
  44. package/dist/{index-CQIcz4k-.js → index-D1ro2oTw.js} +2 -2
  45. package/dist/{index-BOB-FVdo.js → index-DEBTvCWD.js} +3 -3
  46. package/dist/{index-DfzHovEF.js → index-DErJ9c2q.js} +2 -2
  47. package/dist/{index-CWzTvLyx.js → index-DobX4g2g.js} +2 -2
  48. package/dist/{index-C64fovtn.js → index-DuMzZrqc.js} +2 -2
  49. package/dist/{index-CHGLrOHZ.js → index-GTkZik4b.js} +3 -3
  50. package/dist/{index-B4BTrYji.js → index-Lyt4_W7a.js} +2 -2
  51. package/dist/{index-C918Bygt.js → index-TB7ekLl-.js} +2 -2
  52. package/dist/{index-BxEgyF6L.js → index-YzYX-H93.js} +3 -3
  53. package/dist/{index-YnJVcsc6.js → index-pnfk6VZ7.js} +4 -4
  54. package/dist/index.js +4799 -4252
  55. package/dist/legacy.js +13124 -13123
  56. package/dist/translations/en.d.ts +24 -0
  57. package/dist/translations/fr.d.ts +24 -0
  58. package/dist/{AbyssCookieConsentProvider-DJTKl58k.js → use-rich-intl.hook-BETUyCkW.js} +191 -4693
  59. package/dist/utils/index.d.ts +1 -0
  60. package/dist/utils/table-column-width.d.ts +58 -0
  61. package/dist/utils/table-column-width.spec.d.ts +1 -0
  62. package/package.json +5 -3
  63. package/vite.config.ts +2 -0
  64. package/dist/_commonjsHelpers-DaMA6jEr.js +0 -8
@@ -1,12 +1,13 @@
1
1
  import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
- import { useState as m, useEffect as C } from "react";
3
- import { Card as v, CardContent as b, Stack as u, Typography as o, FormControlLabel as l, Box as r, Checkbox as d, Button as M } from "@mui/material";
4
- import { g as R, u as x } from "./AbyssCookieConsentProvider-DJTKl58k.js";
5
- const B = () => {
6
- const t = R(), { consent: i, save: y } = x(), [h, g] = m((i == null ? void 0 : i.analytics) ?? !1), [k, f] = m((i == null ? void 0 : i.marketing) ?? !1), c = i == null ? void 0 : i.analytics, n = i == null ? void 0 : i.marketing;
2
+ import { useState as k, useEffect as C } from "react";
3
+ import { Card as u, CardContent as v, Stack as b, Typography as o, FormControlLabel as l, Box as r, Checkbox as d, Button as M } from "@mui/material";
4
+ import { u as R } from "./use-rich-intl.hook-BETUyCkW.js";
5
+ import { u as x } from "./AbyssCookieConsentProvider-Ds99df0E.js";
6
+ const _ = () => {
7
+ const t = R(), { consent: i, save: y } = x(), [h, g] = k((i == null ? void 0 : i.analytics) ?? !1), [m, f] = k((i == null ? void 0 : i.marketing) ?? !1), c = i == null ? void 0 : i.analytics, n = i == null ? void 0 : i.marketing;
7
8
  return C(() => {
8
9
  c !== void 0 && g(c), n !== void 0 && f(n);
9
- }, [c, n]), /* @__PURE__ */ e(v, { sx: { borderRadius: 3 }, children: /* @__PURE__ */ e(b, { children: /* @__PURE__ */ a(u, { spacing: 2, children: [
10
+ }, [c, n]), /* @__PURE__ */ e(u, { sx: { borderRadius: 3 }, children: /* @__PURE__ */ e(v, { children: /* @__PURE__ */ a(b, { spacing: 2, children: [
10
11
  /* @__PURE__ */ e(o, { variant: "h6", children: t.formatRichMessage({ id: "cookies.configure.title" }) }),
11
12
  /* @__PURE__ */ e(
12
13
  l,
@@ -48,7 +49,7 @@ const B = () => {
48
49
  control: /* @__PURE__ */ e(
49
50
  d,
50
51
  {
51
- checked: k,
52
+ checked: m,
52
53
  onChange: (p, s) => f(s)
53
54
  }
54
55
  ),
@@ -66,12 +67,12 @@ const B = () => {
66
67
  M,
67
68
  {
68
69
  variant: "contained",
69
- onClick: () => y({ analytics: h, marketing: k }),
70
+ onClick: () => y({ analytics: h, marketing: m }),
70
71
  children: t.formatRichMessage({ id: "cookies.action.save" })
71
72
  }
72
73
  ) })
73
74
  ] }) }) });
74
75
  };
75
76
  export {
76
- B as C
77
+ _ as C
77
78
  };
@@ -8,7 +8,7 @@ import Fe from "@mui/material/MenuItem";
8
8
  import $t from "@mui/material/Select";
9
9
  import { visuallyHidden as Ft } from "@mui/utils";
10
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-IuD91X6C.js";
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
12
  import Ge from "@mui/material/ButtonBase";
13
13
  import ve from "@mui/material/OutlinedInput";
14
14
  import Dt from "@mui/material/InputAdornment";
@@ -1,7 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
- import { AbyssService } from '@abyss-project/main';
2
+ import { ActivatableService } from '@abyss-project/main';
3
3
  export type RequireSessionProps = {
4
- service: AbyssService;
4
+ /** The satellite's service, or a game (Odyssey) that opens its session the same way. */
5
+ service: ActivatableService;
5
6
  /** abyss-main's web origin (`VITE_ABYSS_URL`). */
6
7
  abyssSite: string;
7
8
  children: ReactNode;
@@ -1,7 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
- import { AbyssService, IUser } from '@abyss-project/main';
2
+ import { ActivatableService, IUser } from '@abyss-project/main';
3
3
  export type AbyssSessionBoundaryProps = {
4
- service: AbyssService;
4
+ /** The satellite's service, or a game (Odyssey) that opens its session the same way. */
5
+ service: ActivatableService;
5
6
  /** abyss-main's web origin (`VITE_ABYSS_URL`). */
6
7
  abyssSite: string;
7
8
  /**
@@ -1,4 +1,4 @@
1
- import { AbyssService } from '@abyss-project/main';
1
+ import { ActivatableService } from '@abyss-project/main';
2
2
  /** Why a web satellite stops on this screen instead of redirecting (D8). */
3
3
  export declare enum SessionErrorReason {
4
4
  /** Back from abyss-main's login page still signed out, less than 5 min after leaving for it. */
@@ -10,8 +10,8 @@ export declare enum SessionErrorReason {
10
10
  }
11
11
  export type SessionErrorScreenProps = {
12
12
  reason: SessionErrorReason;
13
- /** The satellite: its name is said when it could not be opened. */
14
- service: AbyssService;
13
+ /** The satellite, or a game: its name is said when it could not be opened. */
14
+ service: ActivatableService;
15
15
  /** **Try again**, always offered. */
16
16
  onRetry: () => void;
17
17
  /** **Sign in**, offered when given. */
@@ -1,17 +1,4 @@
1
- function H(t) {
2
- var r, e, n = "";
3
- if (typeof t == "string" || typeof t == "number") n += t;
4
- else if (typeof t == "object") if (Array.isArray(t)) {
5
- var o = t.length;
6
- for (r = 0; r < o; r++) t[r] && (e = H(t[r])) && (n && (n += " "), n += e);
7
- } else for (e in t) t[e] && (n && (n += " "), n += e);
8
- return n;
9
- }
10
- function de() {
11
- for (var t, r, e = 0, n = "", o = arguments.length; e < o; e++) (t = arguments[e]) && (r = H(t)) && (n && (n += " "), n += r);
12
- return n;
13
- }
14
- var R = typeof global == "object" && global && global.Object === Object && global, et = typeof self == "object" && self && self.Object === Object && self, l = R || et || Function("return this")(), T = l.Symbol, L = Object.prototype, nt = L.hasOwnProperty, at = L.toString, d = T ? T.toStringTag : void 0;
1
+ var H = typeof global == "object" && global && global.Object === Object && global, et = typeof self == "object" && self && self.Object === Object && self, l = H || et || Function("return this")(), T = l.Symbol, R = Object.prototype, nt = R.hasOwnProperty, at = R.toString, d = T ? T.toStringTag : void 0;
15
2
  function ot(t) {
16
3
  var r = nt.call(t, d), e = t[d];
17
4
  try {
@@ -35,29 +22,29 @@ function pt(t, r) {
35
22
  return t(r(e));
36
23
  };
37
24
  }
38
- var K = pt(Object.getPrototypeOf, Object);
25
+ var L = pt(Object.getPrototypeOf, Object);
39
26
  function _(t) {
40
27
  return t != null && typeof t == "object";
41
28
  }
42
- var lt = "[object Object]", ht = Function.prototype, dt = Object.prototype, q = ht.toString, gt = dt.hasOwnProperty, yt = q.call(Object);
43
- function ge(t) {
29
+ var lt = "[object Object]", ht = Function.prototype, dt = Object.prototype, K = ht.toString, gt = dt.hasOwnProperty, yt = K.call(Object);
30
+ function de(t) {
44
31
  if (!_(t) || b(t) != lt)
45
32
  return !1;
46
- var r = K(t);
33
+ var r = L(t);
47
34
  if (r === null)
48
35
  return !0;
49
36
  var e = gt.call(r, "constructor") && r.constructor;
50
- return typeof e == "function" && e instanceof e && q.call(e) == yt;
37
+ return typeof e == "function" && e instanceof e && K.call(e) == yt;
51
38
  }
52
39
  function bt() {
53
40
  this.__data__ = [], this.size = 0;
54
41
  }
55
- function V(t, r) {
42
+ function q(t, r) {
56
43
  return t === r || t !== t && r !== r;
57
44
  }
58
45
  function O(t, r) {
59
46
  for (var e = t.length; e--; )
60
- if (V(t[e][0], r))
47
+ if (q(t[e][0], r))
61
48
  return e;
62
49
  return -1;
63
50
  }
@@ -110,7 +97,7 @@ function m(t) {
110
97
  return t != null && (r == "object" || r == "function");
111
98
  }
112
99
  var wt = "[object AsyncFunction]", St = "[object Function]", Ct = "[object GeneratorFunction]", It = "[object Proxy]";
113
- function X(t) {
100
+ function V(t) {
114
101
  if (!m(t))
115
102
  return !1;
116
103
  var r = b(t);
@@ -143,7 +130,7 @@ var Ut = /[\\^$.*+?()[\]{}|]/g, Dt = /^\[object .+?Constructor\]$/, Bt = Functio
143
130
  function Lt(t) {
144
131
  if (!m(t) || Et(t))
145
132
  return !1;
146
- var r = X(t) ? Rt : Dt;
133
+ var r = V(t) ? Rt : Dt;
147
134
  return r.test(Mt(t));
148
135
  }
149
136
  function Kt(t, r) {
@@ -153,7 +140,7 @@ function $(t, r) {
153
140
  var e = Kt(t, r);
154
141
  return Lt(e) ? e : void 0;
155
142
  }
156
- var J = $(l, "Map"), y = $(Object, "create");
143
+ var X = $(l, "Map"), y = $(Object, "create");
157
144
  function qt() {
158
145
  this.__data__ = y ? y(null) : {}, this.size = 0;
159
146
  }
@@ -195,7 +182,7 @@ u.prototype.set = rr;
195
182
  function er() {
196
183
  this.size = 0, this.__data__ = {
197
184
  hash: new u(),
198
- map: new (J || s)(),
185
+ map: new (X || s)(),
199
186
  string: new u()
200
187
  };
201
188
  }
@@ -238,7 +225,7 @@ function ur(t, r) {
238
225
  var e = this.__data__;
239
226
  if (e instanceof s) {
240
227
  var n = e.__data__;
241
- if (!J || n.length < cr - 1)
228
+ if (!X || n.length < cr - 1)
242
229
  return n.push([t, r]), this.size = ++e.size, this;
243
230
  e = this.__data__ = new h(n);
244
231
  }
@@ -260,7 +247,7 @@ var C = function() {
260
247
  } catch {
261
248
  }
262
249
  }();
263
- function W(t, r, e) {
250
+ function J(t, r, e) {
264
251
  r == "__proto__" && C ? C(t, r, {
265
252
  configurable: !0,
266
253
  enumerable: !0,
@@ -271,14 +258,14 @@ function W(t, r, e) {
271
258
  var fr = Object.prototype, pr = fr.hasOwnProperty;
272
259
  function lr(t, r, e) {
273
260
  var n = t[r];
274
- (!(pr.call(t, r) && V(n, e)) || e === void 0 && !(r in t)) && W(t, r, e);
261
+ (!(pr.call(t, r) && q(n, e)) || e === void 0 && !(r in t)) && J(t, r, e);
275
262
  }
276
- function ye(t, r, e, n) {
263
+ function ge(t, r, e, n) {
277
264
  var o = !e;
278
265
  e || (e = {});
279
266
  for (var f = -1, j = r.length; ++f < j; ) {
280
267
  var c = r[f], p = void 0;
281
- p === void 0 && (p = t[c]), o ? W(e, c, p) : lr(e, c, p);
268
+ p === void 0 && (p = t[c]), o ? J(e, c, p) : lr(e, c, p);
282
269
  }
283
270
  return e;
284
271
  }
@@ -291,7 +278,7 @@ var dr = "[object Arguments]";
291
278
  function I(t) {
292
279
  return _(t) && b(t) == dr;
293
280
  }
294
- var Y = Object.prototype, gr = Y.hasOwnProperty, yr = Y.propertyIsEnumerable, br = I(/* @__PURE__ */ function() {
281
+ var W = Object.prototype, gr = W.hasOwnProperty, yr = W.propertyIsEnumerable, br = I(/* @__PURE__ */ function() {
295
282
  return arguments;
296
283
  }()) ? I : function(t) {
297
284
  return _(t) && gr.call(t, "callee") && !yr.call(t, "callee");
@@ -299,27 +286,27 @@ var Y = Object.prototype, gr = Y.hasOwnProperty, yr = Y.propertyIsEnumerable, br
299
286
  function vr() {
300
287
  return !1;
301
288
  }
302
- var Z = typeof exports == "object" && exports && !exports.nodeType && exports, E = Z && typeof module == "object" && module && !module.nodeType && module, jr = E && E.exports === Z, z = jr ? l.Buffer : void 0, Tr = z ? z.isBuffer : void 0, Or = Tr || vr, mr = 9007199254740991, Ar = /^(?:0|[1-9]\d*)$/;
289
+ var Y = typeof exports == "object" && exports && !exports.nodeType && exports, E = Y && typeof module == "object" && module && !module.nodeType && module, jr = E && E.exports === Y, z = jr ? l.Buffer : void 0, Tr = z ? z.isBuffer : void 0, Or = Tr || vr, mr = 9007199254740991, Ar = /^(?:0|[1-9]\d*)$/;
303
290
  function xr(t, r) {
304
291
  var e = typeof t;
305
292
  return r = r ?? mr, !!r && (e == "number" || e != "symbol" && Ar.test(t)) && t > -1 && t % 1 == 0 && t < r;
306
293
  }
307
294
  var Pr = 9007199254740991;
308
- function Q(t) {
295
+ function Z(t) {
309
296
  return typeof t == "number" && t > -1 && t % 1 == 0 && t <= Pr;
310
297
  }
311
298
  var $r = "[object Arguments]", wr = "[object Array]", Sr = "[object Boolean]", Cr = "[object Date]", Ir = "[object Error]", Er = "[object Function]", zr = "[object Map]", Fr = "[object Number]", Mr = "[object Object]", Ur = "[object RegExp]", Dr = "[object Set]", Br = "[object String]", Nr = "[object WeakMap]", Gr = "[object ArrayBuffer]", Hr = "[object DataView]", Rr = "[object Float32Array]", Lr = "[object Float64Array]", Kr = "[object Int8Array]", qr = "[object Int16Array]", Vr = "[object Int32Array]", Xr = "[object Uint8Array]", Jr = "[object Uint8ClampedArray]", Wr = "[object Uint16Array]", Yr = "[object Uint32Array]", a = {};
312
299
  a[Rr] = a[Lr] = a[Kr] = a[qr] = a[Vr] = a[Xr] = a[Jr] = a[Wr] = a[Yr] = !0;
313
300
  a[$r] = a[wr] = a[Gr] = a[Sr] = a[Hr] = a[Cr] = a[Ir] = a[Er] = a[zr] = a[Fr] = a[Mr] = a[Ur] = a[Dr] = a[Br] = a[Nr] = !1;
314
301
  function Zr(t) {
315
- return _(t) && Q(t.length) && !!a[b(t)];
302
+ return _(t) && Z(t.length) && !!a[b(t)];
316
303
  }
317
304
  function Qr(t) {
318
305
  return function(r) {
319
306
  return t(r);
320
307
  };
321
308
  }
322
- var k = typeof exports == "object" && exports && !exports.nodeType && exports, g = k && typeof module == "object" && module && !module.nodeType && module, kr = g && g.exports === k, P = kr && R.process, F = function() {
309
+ var Q = typeof exports == "object" && exports && !exports.nodeType && exports, g = Q && typeof module == "object" && module && !module.nodeType && module, kr = g && g.exports === Q, P = kr && H.process, F = function() {
323
310
  try {
324
311
  var t = g && g.require && g.require("util").types;
325
312
  return t || P && P.binding && P.binding("util");
@@ -337,12 +324,12 @@ function ne(t, r) {
337
324
  return c;
338
325
  }
339
326
  var ae = Object.prototype;
340
- function tt(t) {
327
+ function k(t) {
341
328
  var r = t && t.constructor, e = typeof r == "function" && r.prototype || ae;
342
329
  return t === e;
343
330
  }
344
331
  function oe(t) {
345
- return t != null && Q(t.length) && !X(t);
332
+ return t != null && Z(t.length) && !V(t);
346
333
  }
347
334
  function ie(t) {
348
335
  var r = [];
@@ -355,22 +342,22 @@ var se = Object.prototype, ce = se.hasOwnProperty;
355
342
  function ue(t) {
356
343
  if (!m(t))
357
344
  return ie(t);
358
- var r = tt(t), e = [];
345
+ var r = k(t), e = [];
359
346
  for (var n in t)
360
347
  n == "constructor" && (r || !ce.call(t, n)) || e.push(n);
361
348
  return e;
362
349
  }
363
- function be(t) {
350
+ function ye(t) {
364
351
  return oe(t) ? ne(t, !0) : ue(t);
365
352
  }
366
- var rt = typeof exports == "object" && exports && !exports.nodeType && exports, U = rt && typeof module == "object" && module && !module.nodeType && module, fe = U && U.exports === rt, D = fe ? l.Buffer : void 0, B = D ? D.allocUnsafe : void 0;
367
- function _e(t, r) {
353
+ var tt = typeof exports == "object" && exports && !exports.nodeType && exports, U = tt && typeof module == "object" && module && !module.nodeType && module, fe = U && U.exports === tt, D = fe ? l.Buffer : void 0, B = D ? D.allocUnsafe : void 0;
354
+ function be(t, r) {
368
355
  if (r)
369
356
  return t.slice();
370
357
  var e = t.length, n = B ? B(e) : new t.constructor(e);
371
358
  return t.copy(n), n;
372
359
  }
373
- function ve(t, r) {
360
+ function _e(t, r) {
374
361
  var e = -1, n = t.length;
375
362
  for (r || (r = Array(n)); ++e < n; )
376
363
  r[e] = t[e];
@@ -381,7 +368,7 @@ function pe(t) {
381
368
  var r = new t.constructor(t.byteLength);
382
369
  return new N(r).set(new N(t)), r;
383
370
  }
384
- function je(t, r) {
371
+ function ve(t, r) {
385
372
  var e = r ? pe(t.buffer) : t.buffer;
386
373
  return new t.constructor(e, t.byteOffset, t.length);
387
374
  }
@@ -398,49 +385,62 @@ var G = Object.create, le = /* @__PURE__ */ function() {
398
385
  return t.prototype = void 0, e;
399
386
  };
400
387
  }();
401
- function Te(t) {
402
- return typeof t.constructor == "function" && !tt(t) ? le(K(t)) : {};
388
+ function je(t) {
389
+ return typeof t.constructor == "function" && !k(t) ? le(L(t)) : {};
403
390
  }
404
391
  var he = "[object Symbol]";
405
- function Oe(t) {
392
+ function Te(t) {
406
393
  return typeof t == "symbol" || _(t) && b(t) == he;
407
394
  }
395
+ function rt(t) {
396
+ var r, e, n = "";
397
+ if (typeof t == "string" || typeof t == "number") n += t;
398
+ else if (typeof t == "object") if (Array.isArray(t)) {
399
+ var o = t.length;
400
+ for (r = 0; r < o; r++) t[r] && (e = rt(t[r])) && (n && (n += " "), n += e);
401
+ } else for (e in t) t[e] && (n && (n += " "), n += e);
402
+ return n;
403
+ }
404
+ function Oe() {
405
+ for (var t, r, e = 0, n = "", o = arguments.length; e < o; e++) (t = arguments[e]) && (r = rt(t)) && (n && (n += " "), n += r);
406
+ return n;
407
+ }
408
408
  export {
409
- Oe as A,
410
- ge as B,
409
+ de as A,
410
+ Oe as B,
411
411
  C,
412
412
  xr as D,
413
- V as E,
414
- W as F,
413
+ q as E,
414
+ J as F,
415
415
  te as G,
416
416
  br as H,
417
- X as I,
418
- J as M,
417
+ V as I,
418
+ X as M,
419
419
  T as S,
420
420
  ne as a,
421
421
  oe as b,
422
- de as c,
423
- ye as d,
424
- _r as e,
425
- $ as f,
426
- K as g,
427
- b as h,
428
- tt as i,
429
- pe as j,
430
- be as k,
431
- je as l,
432
- _ as m,
433
- Qr as n,
422
+ ge as c,
423
+ _r as d,
424
+ $ as e,
425
+ b as f,
426
+ L as g,
427
+ pe as h,
428
+ k as i,
429
+ ve as j,
430
+ ye as k,
431
+ _ as l,
432
+ Qr as m,
433
+ F as n,
434
434
  pt as o,
435
- F as p,
436
- m as q,
435
+ m as p,
436
+ _e as q,
437
437
  l as r,
438
- ve as s,
438
+ Or as s,
439
439
  Mt as t,
440
- Or as u,
441
- _e as v,
442
- Te as w,
443
- v as x,
444
- lr as y,
445
- h as z
440
+ be as u,
441
+ je as v,
442
+ v as w,
443
+ lr as x,
444
+ h as y,
445
+ Te as z
446
446
  };
@@ -0,0 +1,29 @@
1
+ import { default as React } from 'react';
2
+ import { editor } from 'monaco-editor';
3
+ export interface CodeEditorProps {
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ label?: string;
7
+ helperText?: string;
8
+ error?: boolean;
9
+ errorMessage?: string;
10
+ disabled?: boolean;
11
+ language?: string;
12
+ readOnly?: boolean;
13
+ height?: number | string;
14
+ minHeight?: number;
15
+ showLineNumbers?: boolean;
16
+ showDataBrowser?: boolean;
17
+ showFullscreenButton?: boolean;
18
+ /** Compact mode: icon-only buttons in a vertical strip on the right instead of a top banner */
19
+ compact?: boolean;
20
+ /**
21
+ * Prose with `{{ }}` expressions (an e-mail subject or text): no validation squiggle, no ruler
22
+ * mark and no highlighted character (a typographic apostrophe is not boxed). The language is
23
+ * kept, so the expression suggestions still come.
24
+ */
25
+ prose?: boolean;
26
+ editorRef?: React.MutableRefObject<editor.IStandaloneCodeEditor | null>;
27
+ }
28
+ export declare const CodeEditor: React.FC<CodeEditorProps>;
29
+ export default CodeEditor;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Format a data source path for JavaScript expression usage.
3
+ * Handles identifiers with hyphens by converting them to bracket notation.
4
+ *
5
+ * @example
6
+ * formatPathForExpression('trigger.email') → 'trigger.email'
7
+ * formatPathForExpression('trigger.my-webhook') → 'trigger["my-webhook"]'
8
+ * formatPathForExpression('steps.api-call.result') → 'steps["api-call"].result'
9
+ */
10
+ export declare function formatPathForExpression(path: string): string;
11
+ /**
12
+ * Check if a string is a valid JavaScript identifier.
13
+ */
14
+ export declare function isValidIdentifier(str: string): boolean;
@@ -0,0 +1,17 @@
1
+ export type DataNodeType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'secret' | 'function' | 'null' | 'undefined';
2
+ /**
3
+ * DataNode - Represents a navigable item in the DataBrowser
4
+ */
5
+ export interface DataNode {
6
+ id: string;
7
+ path: string;
8
+ label: string;
9
+ type: DataNodeType;
10
+ source: string;
11
+ value?: unknown;
12
+ children?: DataNode[];
13
+ childrenLoader?: () => DataNode[];
14
+ description?: string;
15
+ example?: string;
16
+ isSecret?: boolean;
17
+ }
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ import { CodeEditorProps } from './CodeEditor.component';
3
+ export interface ExpressionCodeEditorProps extends Omit<CodeEditorProps, 'showLineNumbers' | 'height' | 'minHeight'> {
4
+ multiline?: boolean;
5
+ height?: number | string;
6
+ minHeight?: number;
7
+ onBlur?: () => void;
8
+ onFocus?: () => void;
9
+ /** Use compact layout (icon strip on the right instead of top banner). Default: true */
10
+ compact?: boolean;
11
+ }
12
+ export declare const ExpressionCodeEditor: React.FC<ExpressionCodeEditorProps>;
13
+ export default ExpressionCodeEditor;
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ interface FullScreenMonacoEditorProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ value: string;
6
+ onChange: (value: string) => void;
7
+ label?: string;
8
+ multiline?: boolean;
9
+ /** Prose with expressions: see `CodeEditorProps.prose`. */
10
+ prose?: boolean;
11
+ }
12
+ export declare const FullScreenMonacoEditor: React.FC<FullScreenMonacoEditorProps>;
13
+ export default FullScreenMonacoEditor;
@@ -0,0 +1,7 @@
1
+ export { CodeEditor } from './CodeEditor.component';
2
+ export type { CodeEditorProps } from './CodeEditor.component';
3
+ export { ExpressionCodeEditor } from './ExpressionCodeEditor.component';
4
+ export type { ExpressionCodeEditorProps } from './ExpressionCodeEditor.component';
5
+ export { FullScreenMonacoEditor } from './FullScreenMonacoEditor.component';
6
+ export { generateMonacoTypeDeclarations, generateVariableSuggestions, generatePropertySuggestions, generateUtilitySuggestions, } from './monaco-types-generator';
7
+ export { formatPathForExpression, isValidIdentifier, } from './DataSourceBrowser/path-formatter.utils';
@@ -0,0 +1,40 @@
1
+ import { IRange } from 'monaco-editor';
2
+ import { DataNode } from './DataSourceBrowser/types';
3
+ /**
4
+ * Generate Monaco TypeScript declarations from DataNodes
5
+ * This automatically syncs with the DataSourceBrowser structure
6
+ */
7
+ export declare function generateMonacoTypeDeclarations(dataNodes?: Map<string, DataNode[]>): string;
8
+ /**
9
+ * Generate autocomplete suggestions for workflow context root variables
10
+ */
11
+ export declare function generateVariableSuggestions(monaco: unknown, range: IRange, dataNodes?: Map<string, DataNode[]>): Array<{
12
+ label: string;
13
+ kind: number;
14
+ documentation: string;
15
+ insertText: string;
16
+ range: IRange;
17
+ sortText: string;
18
+ }>;
19
+ /**
20
+ * Generate autocomplete suggestions for properties of a workflow context variable
21
+ */
22
+ export declare function generatePropertySuggestions(monaco: unknown, range: IRange, objectName: string, dataNodes?: Map<string, DataNode[]>): Array<{
23
+ label: string;
24
+ kind: number;
25
+ documentation: string;
26
+ insertText: string;
27
+ range: IRange;
28
+ sortText: string;
29
+ }>;
30
+ /**
31
+ * Generate autocomplete suggestions for JavaScript built-in utilities
32
+ */
33
+ export declare function generateUtilitySuggestions(monaco: unknown, range: IRange): Array<{
34
+ label: string;
35
+ kind: number;
36
+ documentation: string;
37
+ insertText: string;
38
+ range: IRange;
39
+ sortText: string;
40
+ }>;
@@ -0,0 +1,57 @@
1
+ import { default as React } from 'react';
2
+ import { ScanDownloadGatedStatus } from './ScanStatusIndicator';
3
+ export interface InfectedDownloadWarningModalProps {
4
+ open: boolean;
5
+ /**
6
+ * Which verdict triggered the gate — selects the icon/accent color, title
7
+ * and warning body (A): `infected` (red, existing copy) or `pending_scan`
8
+ * (orange, "not scanned yet" copy, NEW). The type-to-confirm mechanics
9
+ * (confirm phrase, file label, confirm button) stay identical either way.
10
+ * Meaningless while `open` is false (no target); callers may pass any
11
+ * value in that case (see `useInfectedDownloadGuard`, which keeps the
12
+ * last-known status as an inert placeholder).
13
+ */
14
+ status: ScanDownloadGatedStatus;
15
+ /** Empty string when nothing is targeted (modal closed) — kept a plain
16
+ * string rather than `| null` so callers don't need a guard to render it,
17
+ * mirroring AbyssBeam's `BeamInfectedDownloadModal`. */
18
+ fileName: string;
19
+ onClose: () => void;
20
+ /** Invoked once the user has retyped the confirm phrase and clicked
21
+ * through. Deliberately a plain callback (not a `downloadUrl` the modal
22
+ * opens itself, unlike Beam's variant): every hub surface's actual
23
+ * download/open mechanics differ (blob fetch + object-URL for Board,
24
+ * a presigned-token round trip for Console, a plain public-access URL for
25
+ * Atlas), so the modal stays a pure presentational gate and lets the
26
+ * caller run its own existing handler unchanged. Prefer the
27
+ * `useInfectedDownloadGuard` hook over using this component directly —
28
+ * it wires this contract for you. */
29
+ onConfirm: () => void;
30
+ }
31
+ /**
32
+ * Shared warning + type-to-confirm gate shown before a DELIBERATE
33
+ * download/open of a file AbyssProbe flagged PENDING or INFECTED, across
34
+ * every hub tool surface (board card documents, atlas documents, console
35
+ * ticket attachments, extract files — see
36
+ * `docs/internal/reviews/2026-07-08-storage-upload-antivirus-analysis.md`
37
+ * for which surfaces are wired). Mirrors AbyssBeam's
38
+ * `BeamInfectedDownloadModal`
39
+ * (`features/tools/beam/components/BeamInfectedDownloadModal.component.tsx`)
40
+ * in look, copy structure and the destructive-action type-to-confirm pattern
41
+ * already used by abyss-main's `components/common/ConfirmDeleteModal.tsx` — but fully
42
+ * translated (FR/EN), and generalized to an `onConfirm` callback (see above)
43
+ * instead of a hardcoded `downloadUrl` + `window.open`.
44
+ *
45
+ * Policy (A): an authenticated owner may deliberately download/open BOTH a
46
+ * `pending_scan` and an `infected` file — each behind this same
47
+ * type-to-confirm gate, just with `status`-appropriate color/copy. Only
48
+ * `clean`/`skipped`/`error` download immediately, unaffected by this modal.
49
+ *
50
+ * The shared `ScanStatusChip` (`ScanStatusIndicator.tsx`) never disables/gates
51
+ * anything by itself — it stays a pure visual signal. This modal is the
52
+ * complementary piece that DOES gate: a surface wraps its existing
53
+ * download/open handler with `useInfectedDownloadGuard` so a deliberate
54
+ * click on a PENDING or INFECTED file is intercepted here first.
55
+ */
56
+ export declare const InfectedDownloadWarningModal: React.FC<InfectedDownloadWarningModalProps>;
57
+ export default InfectedDownloadWarningModal;