@box/metadata-editor 1.53.15 → 1.54.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 (67) hide show
  1. package/dist/chunks/utils2.js +43 -38
  2. package/dist/esm/lib/components/metadata-editor-fields/components/ai-logo-badge/ai-logo-badge.js +37 -0
  3. package/dist/esm/lib/components/metadata-editor-fields/components/ai-logo-badge/index.js +4 -0
  4. package/dist/esm/lib/components/metadata-editor-fields/components/ai-suggestion-field/ai-suggestion-field.js +57 -56
  5. package/dist/esm/lib/components/metadata-editor-fields/components/ai-suggestion-field/messages.js +4 -0
  6. package/dist/esm/lib/components/metadata-editor-fields/components/low-confidence-badge/index.js +4 -0
  7. package/dist/esm/lib/components/metadata-editor-fields/components/low-confidence-badge/low-confidence-badge.js +30 -0
  8. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-date-field/metadata-date-field.js +37 -36
  9. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-enum-field/metadata-enum-field.js +32 -31
  10. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-float-field/metadata-float-field.js +32 -31
  11. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-multi-select-field/metadata-multi-select-field.js +35 -34
  12. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-string-field/metadata-string-field.js +26 -25
  13. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-taxonomy-field/metadata-taxonomy-field.js +64 -63
  14. package/dist/esm/lib/components/metadata-editor-fields/messages.js +10 -0
  15. package/dist/esm/lib/components/metadata-editor-fields/metadata-editor-field-wrapper.js +89 -85
  16. package/dist/esm/lib/components/metadata-editor-fields/utils.js +7 -5
  17. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-autofill-button/metadata-instance-form-autofill-button.js +90 -88
  18. package/dist/esm/lib/components/metadata-instance-review-notice/metadata-instance-review-notice.js +5 -5
  19. package/dist/esm/lib/utils/autofill-context.js +51 -47
  20. package/dist/esm/lib/utils/confidence-score/get-confidence-score-tooltip.js +18 -16
  21. package/dist/esm/lib/utils/confidence-score/messages.js +1 -1
  22. package/dist/i18n/bn-IN.js +2 -0
  23. package/dist/i18n/da-DK.js +2 -0
  24. package/dist/i18n/de-DE.js +2 -0
  25. package/dist/i18n/en-AU.js +2 -0
  26. package/dist/i18n/en-CA.js +2 -0
  27. package/dist/i18n/en-GB.js +2 -0
  28. package/dist/i18n/en-US.js +3 -1
  29. package/dist/i18n/en-US.properties +5 -1
  30. package/dist/i18n/en-x-pseudo.js +2 -0
  31. package/dist/i18n/es-419.js +2 -0
  32. package/dist/i18n/es-ES.js +2 -0
  33. package/dist/i18n/fi-FI.js +2 -0
  34. package/dist/i18n/fr-CA.js +2 -0
  35. package/dist/i18n/fr-FR.js +2 -0
  36. package/dist/i18n/hi-IN.js +2 -0
  37. package/dist/i18n/it-IT.js +2 -0
  38. package/dist/i18n/ja-JP.js +2 -0
  39. package/dist/i18n/json/src/lib/components/metadata-editor-fields/components/ai-suggestion-field/messages.json +1 -1
  40. package/dist/i18n/json/src/lib/components/metadata-editor-fields/messages.json +1 -0
  41. package/dist/i18n/json/src/lib/utils/confidence-score/messages.json +1 -1
  42. package/dist/i18n/ko-KR.js +2 -0
  43. package/dist/i18n/nb-NO.js +2 -0
  44. package/dist/i18n/nl-NL.js +2 -0
  45. package/dist/i18n/pl-PL.js +2 -0
  46. package/dist/i18n/pt-BR.js +2 -0
  47. package/dist/i18n/ru-RU.js +2 -0
  48. package/dist/i18n/sv-SE.js +2 -0
  49. package/dist/i18n/tr-TR.js +2 -0
  50. package/dist/i18n/zh-CN.js +2 -0
  51. package/dist/i18n/zh-TW.js +2 -0
  52. package/dist/types/lib/components/metadata-editor-fields/components/ai-logo-badge/ai-logo-badge.d.ts +5 -0
  53. package/dist/types/lib/components/metadata-editor-fields/components/ai-logo-badge/index.d.ts +1 -0
  54. package/dist/types/lib/components/metadata-editor-fields/components/ai-suggestion-field/ai-suggestion-field.d.ts +1 -1
  55. package/dist/types/lib/components/metadata-editor-fields/components/ai-suggestion-field/messages.d.ts +5 -0
  56. package/dist/types/lib/components/metadata-editor-fields/components/ai-suggestion-field/types.d.ts +9 -1
  57. package/dist/types/lib/components/metadata-editor-fields/components/low-confidence-badge/index.d.ts +1 -0
  58. package/dist/types/lib/components/metadata-editor-fields/components/low-confidence-badge/low-confidence-badge.d.ts +4 -0
  59. package/dist/types/lib/components/metadata-editor-fields/messages.d.ts +8 -0
  60. package/dist/types/lib/components/metadata-editor-fields/types.d.ts +2 -1
  61. package/dist/types/lib/components/metadata-editor-fields/utils.d.ts +2 -1
  62. package/dist/types/lib/test-utils/confidence-score-fixtures.d.ts +37 -0
  63. package/dist/types/lib/test-utils/index.d.ts +1 -0
  64. package/dist/types/lib/test-utils/sample-data.d.ts +1 -3
  65. package/dist/types/lib/types.d.ts +1 -0
  66. package/dist/types/lib/utils/autofill-context.d.ts +2 -1
  67. package/package.json +9 -9
@@ -1,124 +1,126 @@
1
- import { Tooltip as b, Button as G, LoadingIndicator as E, IconButton as R, SplitButton as k, DropdownMenu as L, Text as v } from "@box/blueprint-web";
2
- import { BoxAiAdvancedLogo24 as x, BoxAiLogo24 as D } from "@box/blueprint-web-assets/icons/Logo";
3
- import { useLocalStorageAIAgents as K } from "@box/box-ai-agent-selector";
4
- import { useFormikContext as O, getIn as f } from "formik";
5
- import { useEffect as j, useMemo as w, forwardRef as F, useState as P } from "react";
6
- import { useIntl as N } from "react-intl";
7
- import { EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY as Y, EXTRACT_AGENTS_MAP as C } from "../../../../constants.js";
8
- import { autofillMessages as V } from "../../../../messages.js";
9
- import { useAutofill as X } from "../../../../utils/autofill-context.js";
10
- import { getTooltipContent as q } from "../../../../utils/utils.js";
11
- import g from "./messages.js";
12
- import { jsx as t, jsxs as z } from "react/jsx-runtime";
13
- import '../../../../../../styles/metadata-instance-form-autofill-button.css';const H = "_loadingIndicator_i1hyy_1", J = "_actionMenuItem_i1hyy_11", Q = "_splitButtonIcon_i1hyy_17", S = {
14
- loadingIndicator: H,
15
- actionMenuItem: J,
16
- splitButtonIcon: Q
17
- }, U = /* @__PURE__ */ F(({
18
- isButtonDisabled: p,
19
- onAutofill: I,
20
- onAgentChange: c,
21
- storedAgent: A,
1
+ import { Tooltip as L, Button as k, LoadingIndicator as E, IconButton as R, SplitButton as v, DropdownMenu as N, Text as x } from "@box/blueprint-web";
2
+ import { BoxAiAdvancedLogo24 as D, BoxAiLogo24 as K } from "@box/blueprint-web-assets/icons/Logo";
3
+ import { useLocalStorageAIAgents as O } from "@box/box-ai-agent-selector";
4
+ import { useFormikContext as j, getIn as g } from "formik";
5
+ import { useEffect as w, useMemo as F, forwardRef as P, useState as Y } from "react";
6
+ import { useIntl as G } from "react-intl";
7
+ import { EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY as V, EXTRACT_AGENTS_MAP as M } from "../../../../constants.js";
8
+ import { autofillMessages as X } from "../../../../messages.js";
9
+ import { useAutofill as q } from "../../../../utils/autofill-context.js";
10
+ import { getTooltipContent as z } from "../../../../utils/utils.js";
11
+ import p from "./messages.js";
12
+ import { jsx as t, jsxs as H } from "react/jsx-runtime";
13
+ import '../../../../../../styles/metadata-instance-form-autofill-button.css';const J = "_loadingIndicator_i1hyy_1", Q = "_actionMenuItem_i1hyy_11", U = "_splitButtonIcon_i1hyy_17", T = {
14
+ loadingIndicator: J,
15
+ actionMenuItem: Q,
16
+ splitButtonIcon: U
17
+ }, W = /* @__PURE__ */ P(({
18
+ isButtonDisabled: I,
19
+ onAutofill: A,
20
+ onAgentChange: l,
21
+ storedAgent: B,
22
22
  icon: e,
23
- ...B
24
- }, _) => {
25
- const n = N(), [u, a] = P(A || "standard"), i = (o) => {
26
- a(o), c(o), setTimeout(() => {
27
- I(o);
23
+ ..._
24
+ }, h) => {
25
+ const n = G(), [c, a] = Y(B || "standard"), i = (o) => {
26
+ a(o), l(o), setTimeout(() => {
27
+ A(o);
28
28
  }, 0);
29
29
  };
30
- return /* @__PURE__ */ t(k, {
31
- ...B,
32
- ref: _,
33
- disabled: p,
30
+ return /* @__PURE__ */ t(v, {
31
+ ..._,
32
+ ref: h,
33
+ disabled: I,
34
34
  dropdownTriggerAriaLabel: "See agent options.",
35
35
  icon: e,
36
- label: n.formatMessage(g.autofillButton),
37
- onClick: () => I(),
36
+ label: n.formatMessage(p.autofillButton),
37
+ onClick: () => A(),
38
38
  variant: "secondary",
39
- children: /* @__PURE__ */ t(L.RadioGroup, {
39
+ children: /* @__PURE__ */ t(N.RadioGroup, {
40
40
  onValueChange: (o) => i(o),
41
- value: u,
42
- children: Object.entries(C).map(([o, s]) => {
43
- const r = s.ICON;
44
- return /* @__PURE__ */ t(L.RadioSelectItem, {
41
+ value: c,
42
+ children: Object.entries(M).map(([o, s]) => {
43
+ const u = s.ICON;
44
+ return /* @__PURE__ */ t(N.RadioSelectItem, {
45
45
  value: s.AGENT_TYPE,
46
- children: /* @__PURE__ */ z("div", {
47
- className: S.actionMenuItem,
48
- children: [/* @__PURE__ */ t(r, {
46
+ children: /* @__PURE__ */ H("div", {
47
+ className: T.actionMenuItem,
48
+ children: [/* @__PURE__ */ t(u, {
49
49
  "aria-hidden": !0,
50
- className: S.splitButtonIcon
51
- }), /* @__PURE__ */ t(v, {
50
+ className: T.splitButtonIcon
51
+ }), /* @__PURE__ */ t(x, {
52
52
  as: "span",
53
- children: n.formatMessage(g[s.DISPLAY_MSG])
53
+ children: n.formatMessage(p[s.DISPLAY_MSG])
54
54
  })]
55
55
  })
56
56
  }, o);
57
57
  })
58
58
  })
59
59
  });
60
- }), ct = ({
61
- areAiSuggestionsAvailable: p,
62
- isBetaLanguageEnabled: I,
63
- isLoading: c,
64
- variant: A = "secondary-button",
60
+ }), ut = ({
61
+ areAiSuggestionsAvailable: I,
62
+ isBetaLanguageEnabled: A,
63
+ isLoading: l,
64
+ variant: B = "secondary-button",
65
65
  isAdvancedExtractAgentEnabled: e = !1,
66
- onAutofill: B
66
+ onAutofill: _
67
67
  }) => {
68
68
  const {
69
- isSubmitting: _,
69
+ isSubmitting: h,
70
70
  values: n,
71
- setFieldValue: u
72
- } = O(), a = N(), [i, o] = K(Y), {
73
- suggestions: s
74
- } = X();
75
- j(() => {
71
+ setFieldValue: c
72
+ } = j(), a = G(), [i, o] = O(V), {
73
+ suggestions: s,
74
+ confidenceScores: u
75
+ } = q();
76
+ w(() => {
76
77
  if (s) {
77
- const m = f(n, "metadata.fields"), y = f(n, "metadata.templateKey");
78
- u("metadata.fields", m?.map((l) => {
79
- const d = s?.[y]?.[l.key];
80
- return d ? {
81
- ...l,
82
- aiSuggestion: d
83
- } : l;
78
+ const m = g(n, "metadata.fields"), d = g(n, "metadata.templateKey");
79
+ c("metadata.fields", m?.map((r) => {
80
+ const f = s?.[d]?.[r.key];
81
+ return f ? {
82
+ ...r,
83
+ aiSuggestion: f,
84
+ aiSuggestionConfidenceScore: u?.[d]?.[r.key]
85
+ } : r;
84
86
  }));
85
87
  }
86
- }, [s, u]);
87
- const r = (m) => {
88
- const y = f(n, "metadata.templateKey"), l = f(n, "metadata.scope"), d = m ? C[m]?.AGENT_ID : C[i]?.AGENT_ID;
89
- B(y, l, e ? d : void 0);
90
- }, h = !p || _ || c, M = i === "enhanced" && e ? x : D, T = w(() => q(e, i, a), [e, i, a]);
91
- return A === "secondary-button" ? /* @__PURE__ */ t(b, {
92
- content: T,
93
- children: e ? /* @__PURE__ */ t(U, {
94
- icon: M,
95
- isButtonDisabled: h,
88
+ }, [s, u, c]);
89
+ const S = (m) => {
90
+ const d = g(n, "metadata.templateKey"), r = g(n, "metadata.scope"), f = m ? M[m]?.AGENT_ID : M[i]?.AGENT_ID;
91
+ _(d, r, e ? f : void 0);
92
+ }, y = !I || h || l, C = i === "enhanced" && e ? D : K, b = F(() => z(e, i, a), [e, i, a]);
93
+ return B === "secondary-button" ? /* @__PURE__ */ t(L, {
94
+ content: b,
95
+ children: e ? /* @__PURE__ */ t(W, {
96
+ icon: C,
97
+ isButtonDisabled: y,
96
98
  onAgentChange: o,
97
- onAutofill: r,
99
+ onAutofill: S,
98
100
  storedAgent: i
99
- }) : /* @__PURE__ */ t(G, {
100
- disabled: h,
101
- icon: M,
102
- onClick: () => r(),
101
+ }) : /* @__PURE__ */ t(k, {
102
+ disabled: y,
103
+ icon: C,
104
+ onClick: () => S(),
103
105
  variant: "secondary",
104
106
  "data-target-id": "Button-autofillButton",
105
- children: a.formatMessage(g.autofillButton)
107
+ children: a.formatMessage(p.autofillButton)
106
108
  })
107
- }) : /* @__PURE__ */ t(b, {
108
- content: T,
109
- children: c ? /* @__PURE__ */ t(E, {
110
- "aria-label": a.formatMessage(g.loadingButtonAriaLabel),
111
- className: S.loadingIndicator
109
+ }) : /* @__PURE__ */ t(L, {
110
+ content: b,
111
+ children: l ? /* @__PURE__ */ t(E, {
112
+ "aria-label": a.formatMessage(p.loadingButtonAriaLabel),
113
+ className: T.loadingIndicator
112
114
  }) : /* @__PURE__ */ t(R, {
113
- "aria-label": a.formatMessage(V.autofillButtonAriaLabel),
114
- disabled: h,
115
- icon: M,
116
- onClick: () => r(),
115
+ "aria-label": a.formatMessage(X.autofillButtonAriaLabel),
116
+ disabled: y,
117
+ icon: C,
118
+ onClick: () => S(),
117
119
  variant: "icon-logo",
118
120
  "data-target-id": "IconButton-autofillButtonAriaLabel"
119
121
  })
120
122
  });
121
123
  };
122
124
  export {
123
- ct as MetadataInstanceFormAutofillButton
125
+ ut as MetadataInstanceFormAutofillButton
124
126
  };
@@ -6,22 +6,22 @@ import { jsx as s } from "react/jsx-runtime";
6
6
  const h = ({
7
7
  fieldsNeedingReviewCount: r,
8
8
  isLowScoreFilteringEnabled: o = !1,
9
- onTextToggleClick: i
9
+ onTextToggleClick: a
10
10
  }) => {
11
- const e = c(), a = o ? e.formatMessage(t.showingReviewFields) : e.formatMessage(t.reviewFieldsNoticeHeader, {
11
+ const e = c(), i = o ? e.formatMessage(t.showingReviewFields) : e.formatMessage(t.reviewFieldsNoticeHeader, {
12
12
  count: r
13
13
  }), n = o ? e.formatMessage(t.hideButtonTooltip) : e.formatMessage(t.viewButtonTooltip, {
14
14
  count: r
15
15
  });
16
16
  return /* @__PURE__ */ s(m, {
17
- backgroundColor: "backgroundBlue",
17
+ backgroundColor: "backgroundGray",
18
18
  iconAriaLabel: e.formatMessage(t.iconAriaLabel),
19
- text: a,
19
+ text: i,
20
20
  icon: p,
21
21
  children: /* @__PURE__ */ s(l, {
22
22
  content: n,
23
23
  children: /* @__PURE__ */ s(f, {
24
- onPressedChange: i,
24
+ onPressedChange: a,
25
25
  pressed: o,
26
26
  children: o ? e.formatMessage(t.hideReviewFieldsCTA) : e.formatMessage(t.viewReviewFieldsCTA)
27
27
  })
@@ -1,60 +1,64 @@
1
- import E, { createContext as v, useState as l, useCallback as S, useMemo as x, useContext as A } from "react";
2
- import { TEMPLATE_CUSTOM_PROPERTIES as P } from "../constants.js";
3
- import { jsx as _ } from "react/jsx-runtime";
4
- const p = 1e4, T = /* @__PURE__ */ v(null), O = ({
5
- children: e,
6
- isAiSuggestionsFeatureEnabled: o,
7
- fetchSuggestions: c
1
+ import A, { createContext as O, useState as f, useCallback as T, useMemo as P, useContext as _ } from "react";
2
+ import { TEMPLATE_CUSTOM_PROPERTIES as p } from "../constants.js";
3
+ import { jsx as I } from "react/jsx-runtime";
4
+ const L = 1e4, h = /* @__PURE__ */ O(null), R = ({
5
+ children: o,
6
+ isAiSuggestionsFeatureEnabled: s,
7
+ fetchSuggestions: l
8
8
  }) => {
9
- const [s, f] = l({}), [r, n] = l(!1), [g, i] = l(!1);
10
- E.useEffect(() => {
11
- let t;
12
- return r ? t = setTimeout(() => {
13
- i(!0);
14
- }, p) : (i(!1), clearTimeout(t)), () => clearTimeout(t);
15
- }, [r]);
16
- const m = S(async (t, h, w) => {
17
- let u = [];
18
- if (!o)
9
+ const [r, g] = f({}), [m, S] = f({}), [n, u] = f(!1), [d, a] = f(!1);
10
+ A.useEffect(() => {
11
+ let e;
12
+ return n ? e = setTimeout(() => {
13
+ a(!0);
14
+ }, L) : (a(!1), clearTimeout(e)), () => clearTimeout(e);
15
+ }, [n]);
16
+ const C = T(async (e, v, x) => {
17
+ let i = [];
18
+ if (!s)
19
19
  throw new Error("AI Suggestions feature not available.");
20
- if (t === P)
20
+ if (e === p)
21
21
  throw new Error("Can't fetch suggestions for Custom Metadata instance");
22
- n(!0);
22
+ u(!0);
23
23
  try {
24
- u = await c(t, h, w || void 0), f({
25
- ...s,
26
- [t]: {
27
- ...Object.fromEntries(u.map((a) => [a.key, a.aiSuggestion]))
24
+ i = await l(e, v, x || void 0), g({
25
+ ...r,
26
+ [e]: {
27
+ ...Object.fromEntries(i.map((t) => [t.key, t.aiSuggestion]))
28
28
  }
29
- });
29
+ }), S((t) => ({
30
+ ...t,
31
+ [e]: Object.fromEntries(i.filter((c) => c.confidenceScore).map((c) => [c.key, c.confidenceScore]))
32
+ }));
30
33
  } catch {
31
34
  } finally {
32
- n(!1);
35
+ u(!1);
33
36
  }
34
- return u;
35
- }, [o, s, c]), C = S(() => {
36
- f({}), n(!1), i(!1);
37
- }, []), d = x(() => ({
38
- clearState: C,
39
- getAiSuggestions: m,
40
- isAiSuggestionsFeatureEnabled: o,
41
- isFetchingSuggestions: r,
42
- isLongLoading: g,
43
- suggestions: s
44
- }), [C, m, o, r, g, s]);
45
- return /* @__PURE__ */ _(T.Provider, {
46
- value: d,
47
- children: e
37
+ return i;
38
+ }, [s, r, l]), E = T(() => {
39
+ g({}), S({}), u(!1), a(!1);
40
+ }, []), w = P(() => ({
41
+ clearState: E,
42
+ confidenceScores: m,
43
+ getAiSuggestions: C,
44
+ isAiSuggestionsFeatureEnabled: s,
45
+ isFetchingSuggestions: n,
46
+ isLongLoading: d,
47
+ suggestions: r
48
+ }), [E, m, C, s, n, d, r]);
49
+ return /* @__PURE__ */ I(h.Provider, {
50
+ value: w,
51
+ children: o
48
52
  });
49
- }, R = () => {
50
- const e = A(T);
51
- if (!e)
53
+ }, b = () => {
54
+ const o = _(h);
55
+ if (!o)
52
56
  throw new Error("useAutofill should be wrapped inside AutofillProvider");
53
- return e;
57
+ return o;
54
58
  };
55
59
  export {
56
- T as AutofillContext,
57
- O as AutofillContextProvider,
58
- p as TIMEOUT_10_SECONDS,
59
- R as useAutofill
60
+ h as AutofillContext,
61
+ R as AutofillContextProvider,
62
+ L as TIMEOUT_10_SECONDS,
63
+ b as useAutofill
60
64
  };
@@ -1,26 +1,28 @@
1
- import { C as r } from "../../../../chunks/types.js";
2
- import { formatConfidenceScorePercent as c } from "./format-confidence-score-percent.js";
1
+ import { C as t } from "../../../../chunks/types.js";
2
+ import { formatConfidenceScorePercent as l } from "./format-confidence-score-percent.js";
3
3
  import i from "./messages.js";
4
- function p(e, o) {
5
- const t = c(o.value);
6
- if (o.isAccepted)
7
- return e(i.tooltipReviewedAndAccepted, {
8
- score: t
4
+ function u(o, e) {
5
+ const r = l(e.value);
6
+ if (e.isAccepted && e.level === t.High)
7
+ return null;
8
+ if (e.isAccepted)
9
+ return o(i.tooltipReviewedAndAccepted, {
10
+ score: r
9
11
  });
10
- switch (o.level) {
11
- case r.Low:
12
- case r.Medium:
13
- return e(i.tooltipLowConfidence, {
14
- score: t
12
+ switch (e.level) {
13
+ case t.Low:
14
+ case t.Medium:
15
+ return o(i.tooltipLowConfidence, {
16
+ score: r
15
17
  });
16
- case r.High:
17
- return e(i.tooltipHighConfidence, {
18
- score: t
18
+ case t.High:
19
+ return o(i.tooltipHighConfidence, {
20
+ score: r
19
21
  });
20
22
  default:
21
23
  return null;
22
24
  }
23
25
  }
24
26
  export {
25
- p as getConfidenceScoreTooltip
27
+ u as getConfidenceScoreTooltip
26
28
  };
@@ -6,7 +6,7 @@ const t = e({
6
6
  },
7
7
  tooltipReviewedAndAccepted: {
8
8
  id: "metadataEditor.confidenceScore.tooltipReviewedAndAccepted",
9
- defaultMessage: "Confidence score ({score}) has been reviewed and accepted by the user."
9
+ defaultMessage: "Box AI returned low confidence ({score}) level for this extraction but it was accepted by a human."
10
10
  },
11
11
  tooltipHighConfidence: {
12
12
  id: "metadataEditor.confidenceScore.tooltipHighConfidence",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "টেমপ্লেট খুঁজুন",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "টেমপ্লেট যোগ করুন",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Box AI পরামর্শ:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "বিকল্প",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "সংযুক্ত করুন",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "পরিষ্কার করুন এবং প্রতিস্থাপন করুন",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "খারিজ করুন",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "\"{templateName}\" মুছুন",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "মেটাডেটা টেমপ্লেট মুছুন",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "ক্রমবর্ধমান নির্ভুলতা সহ ডকুমেন্ট মেটাডেটা দ্রুত ক্যাপচার করার জন্য Box AI-এর ক্ষমতা ব্যবহার করুন।",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Box AI দিয়ে মেটাডেটা অটোফিল করুন",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Business অপারেশন, কর্মপ্রবাহ আরও অনেক কিছু সাপোর্ট করতে আপনার ফাইলে মেটাডেটা যোগ করুন!",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Søg efter skabeloner",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Tilføj skabelon",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Box AI",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Indstillingsmuligheder",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Tilføj",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Ryd og Erstat",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Afvis",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "Slette \"{templateName}\"",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Slet metadata-skabelon",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Brug kraften i Box AI til hurtigt at indsamle dokumentmetadata med stadig større nøjagtighed.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Automatisk udfyldning af metadata med Box AI",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Tilføj metadata til din fil for at understøtte forretningsdrift, workflows og meget mere!",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Suchvorlagen",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Vorlage hinzufügen",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Box-AI-Vorschlag:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Optionen",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Anfügen",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Löschen und ersetzen",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Verwerfen",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "„{templateName}“ löschen",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Metadaten-Vorlage löschen",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Nutzen Sie die Möglichkeiten von Box AI, um Metadaten von Dokumenten schnell und mit immer größerer Genauigkeit zu erfassen.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Metadaten mit Box AI automatisch ausfüllen",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Fügen Sie Ihrer Datei Metadaten hinzu, um Geschäftsvorgänge, Workflows usw. zu unterstützen.",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Search templates",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Add template",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Box AI suggestion:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Options",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Append",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Clear and Replace",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Dismiss",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "Delete \"{templateName}\"",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Delete Metadata Template",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Use the Power of Box AI to quickly capture document metadata, with ever-increasing accuracy.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Autofill Metadata with Box AI",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Add Metadata to your file to support business operations, workflows, and more!",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Search templates",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Add template",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Box AI suggestion:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Options",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Append",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Clear and Replace",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Dismiss",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "Delete \"{templateName}\"",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Delete Metadata Template",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Use the power of Box AI to quickly capture document metadata, with ever-increasing accuracy.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Autofill Metadata with Box AI",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Add Metadata to your file to support business operations, workflows, and more!",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Search templates",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Add template",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Box AI suggestion:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Options",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Append",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Clear and Replace",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Dismiss",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "Delete \"{templateName}\"",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Delete Metadata Template",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Use the Power of Box AI to quickly capture document metadata, with ever-increasing accuracy.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Autofill Metadata with Box AI",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Add Metadata to your file to support business operations, workflows, and more!",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Search templates",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Add template",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Box AI suggestion:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Options",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Append",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Clear and Replace",
@@ -61,7 +62,7 @@ export default {
61
62
  "metadataEditor.autofillButton.tooltip.standard": "Autofill with Box AI (Standard)",
62
63
  "metadataEditor.confidenceScore.tooltipHighConfidence": "Box AI returned high confidence ({score}) level for this extraction.",
63
64
  "metadataEditor.confidenceScore.tooltipLowConfidence": "Box AI returned low confidence ({score}) level for this extraction. Review the value.",
64
- "metadataEditor.confidenceScore.tooltipReviewedAndAccepted": "Confidence score ({score}) has been reviewed and accepted by the user.",
65
+ "metadataEditor.confidenceScore.tooltipReviewedAndAccepted": "Box AI returned low confidence ({score}) level for this extraction but it was accepted by a human.",
65
66
  "metadataEditor.editInstance.deleteConfirmationModal.body.checkboxLabel": "Confirm deletion of Metadata instance",
66
67
  "metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraph": "Are you sure you want to delete the \"{templateName}\" Metadata template, and all of its values from this file?",
67
68
  "metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraphCheckboxVersion": "Are you sure you want to delete the \"{templateName}\" Metadata instance, and its values?",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Dismiss",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "Delete \"{templateName}\"",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Delete Metadata Template",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Use the power of Box AI to quickly capture document metadata, with ever-increasing accuracy.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Autofill Metadata with Box AI",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Add Metadata to your file to support business operations, workflows, and more!",
@@ -96,6 +96,8 @@ metadataEditor.addMetadataTemplate.search.placeholder = Search templates
96
96
  metadataEditor.addMetadataTemplate.trigger.label = Add template
97
97
  # Label for value suggested by Box AI
98
98
  metadataEditor.aiSuggestionField.aiSuggestionCaption = Box AI suggestion:
99
+ # Label for value suggested by Box AI, including confidence level (e.g. "low")
100
+ metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel = Box AI suggestion ({level} confidence)
99
101
  # Aria-label for AI suggestion options
100
102
  metadataEditor.aiSuggestionField.aiSuggestionOptions = Options
101
103
  # Label for appending the AI suggestion
@@ -123,7 +125,7 @@ metadataEditor.confidenceScore.tooltipHighConfidence = Box AI returned high conf
123
125
  # Tooltip message shown when Box AI extraction has low confidence score. {score} is the formatted percentage (e.g., "35%")
124
126
  metadataEditor.confidenceScore.tooltipLowConfidence = Box AI returned low confidence ({score}) level for this extraction. Review the value.
125
127
  # Tooltip message shown when a low confidence extraction has been reviewed and accepted by user
126
- metadataEditor.confidenceScore.tooltipReviewedAndAccepted = Confidence score ({score}) has been reviewed and accepted by the user.
128
+ metadataEditor.confidenceScore.tooltipReviewedAndAccepted = Box AI returned low confidence ({score}) level for this extraction but it was accepted by a human.
127
129
  # Label informing how to confirm deletion of the template
128
130
  metadataEditor.editInstance.deleteConfirmationModal.body.checkboxLabel = Confirm deletion of Metadata instance
129
131
  # Paragraph asking user are they sure that they want to delete the template
@@ -148,6 +150,8 @@ metadataEditor.editInstance.deleteConfirmationModal.dismissButton = Dismiss
148
150
  metadataEditor.editInstance.deleteConfirmationModal.header = Delete "{templateName}"
149
151
  # Aria label for header informing that template will be deleted
150
152
  metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel = Delete Metadata Template
153
+ # Badge shown on field label indicating a low confidence AI extraction
154
+ metadataEditor.fieldLabel.lowConfidenceBadge = Low
151
155
  # Description of Box AI features
152
156
  metadataEditor.fileLevel.emptyState.boxAiEnabled.body = Use the power of Box AI to quickly capture document metadata, with ever-increasing accuracy.
153
157
  # Call to encourage user to use Box AI to autofill metadata fields
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "⟦萬萬萬萬 Ѕёàгçн ŧēmΡļǻťèŝ 國國國國⟧",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "⟦萬萬萬 Âďď ťėmΡļåτë 國國國⟧",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "⟦萬萬萬萬萬 βò× ÁĨ şũĝġéѕţïόʼn: 國國國國國⟧",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "⟦萬萬 ŎΡτîоŋŝ 國國⟧",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "⟦萬 ΑΡΡеήď 國⟧",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "⟦萬萬萬萬萬 Ćľėάѓ äήď ŔėΡĺåĉę 國國國國國⟧",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "⟦萬萬 Ðíŝmϊѕѕ 國國⟧",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "⟦萬萬萬萬 Ďėľéţę \"{templateName}\" 國國國國⟧",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "⟦萬萬萬萬萬萬萬 Ďëĺěτê Мéτąďąŧą ΤèmΡĺāŧė 國國國國國國國⟧",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ũśĕ τħĕ Ρôŵєґ öƒ Бōх ÃĪ ţø qùïċκĺý ĉáΡţµѓέ ďо¢цmέήť mëŧāďāţα, ẁĭτн ěνèŗ-įйçґęάśїйĝ åĉçμŕăčУ. 國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "⟦萬萬萬萬萬萬萬萬 Άúτоƒϊļĺ Μêτάďάŧα ώíţн ßō× ΆĬ 國國國國國國國國⟧",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Āďď Мėŧąďαťá τő ўσцŕ ƒįļε τо ѕüΡΡōгţ ьцşіпέśş ōΡėяäţιôπś, шσґķƒļόωѕ, âηď mŏгê! 國國國國國國國國國國國國國國國國國國國國國國國⟧",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Buscar plantillas",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Agregar plantilla",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Sugerencia de Box AI:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Opciones",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Anexar",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Eliminar y reemplazar",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Descartar",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "Eliminar \"{templateName}\"",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Elimina la plantilla de metadatos",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Aproveche la potencia de Box AI para capturar rápidamente los metadatos de los documentos con precisión.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Rellenar automáticamente metadatos con Box AI",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Agregue metadatos a su archivo para facilitar las operaciones comerciales, los flujos de trabajo y mucho más.",
@@ -48,6 +48,7 @@ export default {
48
48
  "metadataEditor.addMetadataTemplate.search.placeholder": "Buscar plantillas",
49
49
  "metadataEditor.addMetadataTemplate.trigger.label": "Agregar plantilla",
50
50
  "metadataEditor.aiSuggestionField.aiSuggestionCaption": "Sugerencia de Box AI:",
51
+ "metadataEditor.aiSuggestionField.aiSuggestionCaptionWithLevel": "Box AI suggestion ({level} confidence)",
51
52
  "metadataEditor.aiSuggestionField.aiSuggestionOptions": "Opciones",
52
53
  "metadataEditor.aiSuggestionField.appendLabel": "Anexar",
53
54
  "metadataEditor.aiSuggestionField.clearAndReplaceLabel": "Eliminar y reemplazar",
@@ -74,6 +75,7 @@ export default {
74
75
  "metadataEditor.editInstance.deleteConfirmationModal.dismissButton": "Descartar",
75
76
  "metadataEditor.editInstance.deleteConfirmationModal.header": "Eliminar \"{templateName}\"",
76
77
  "metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel": "Elimina la plantilla de metadatos",
78
+ "metadataEditor.fieldLabel.lowConfidenceBadge": "Low",
77
79
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Aproveche la potencia de Box AI para capturar rápidamente los metadatos de los documentos con precisión.",
78
80
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.heading": "Rellenar automáticamente metadatos con Box AI",
79
81
  "metadataEditor.fileLevel.emptyState.default.body": "Agregue metadatos a su archivo para facilitar las operaciones comerciales, los flujos de trabajo y mucho más.",