@box/metadata-editor 1.64.4 → 1.64.6

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 (173) hide show
  1. package/dist/chunks/ai-suggestion-field.js +83 -0
  2. package/dist/chunks/autofill-overlay.js +63 -0
  3. package/dist/chunks/combobox-with-api-pagination.js +162 -0
  4. package/dist/chunks/custom-instance-new-field.js +60 -0
  5. package/dist/chunks/custom-instance.js +74 -0
  6. package/dist/chunks/delete-confirmation-modal.js +76 -0
  7. package/dist/chunks/field-action-bar.module.js +6 -8
  8. package/dist/chunks/filter-dropdown-menu.module.js +14 -13
  9. package/dist/chunks/filter-instances-dropdown.js +84 -0
  10. package/dist/chunks/interactive-header-text.js +19 -0
  11. package/dist/chunks/interactive-text.js +17 -0
  12. package/dist/chunks/metadata-editor.js +9 -0
  13. package/dist/chunks/metadata-instance-content.js +29 -0
  14. package/dist/chunks/metadata-instance-entry.js +82 -0
  15. package/dist/chunks/metadata-instance-footer.js +25 -0
  16. package/dist/chunks/metadata-instance-form-autofill-button.js +113 -0
  17. package/dist/chunks/metadata-instance-form-card-wrapper.js +47 -70
  18. package/dist/chunks/metadata-instance-form-footer.js +43 -0
  19. package/dist/chunks/metadata-instance-form-header.js +45 -0
  20. package/dist/chunks/metadata-instance-header.js +52 -0
  21. package/dist/chunks/metadata-instance-list.js +19 -0
  22. package/dist/chunks/metadata-instance.js +59 -0
  23. package/dist/chunks/shared-field-styles.module.js +5 -7
  24. package/dist/chunks/taxonomy-ancestor-status-pill.js +88 -109
  25. package/dist/chunks/types.js +8 -12
  26. package/dist/chunks/update-mode-field-wrapper.js +80 -0
  27. package/dist/chunks/utils.js +57 -54
  28. package/dist/chunks/utils2.js +50 -70
  29. package/dist/esm/index.js +27 -52
  30. package/dist/esm/lib/components/add-metadata-template-dropdown/add-metadata-template-dropdown.js +31 -43
  31. package/dist/esm/lib/components/add-metadata-template-dropdown/index.js +1 -3
  32. package/dist/esm/lib/components/add-metadata-template-dropdown/messages.js +15 -17
  33. package/dist/esm/lib/components/combobox-with-api-pagination/combobox-with-api-pagination.js +2 -205
  34. package/dist/esm/lib/components/combobox-with-api-pagination/index.js +2 -4
  35. package/dist/esm/lib/components/combobox-with-api-pagination/messages.js +31 -33
  36. package/dist/esm/lib/components/combobox-with-api-pagination/request.js +4 -6
  37. package/dist/esm/lib/components/combobox-with-api-pagination/use-async-list.js +113 -128
  38. package/dist/esm/lib/components/combobox-with-api-pagination/utils/is-abort-error.js +8 -10
  39. package/dist/esm/lib/components/combobox-with-api-pagination/utils/use-controllable-state.js +32 -34
  40. package/dist/esm/lib/components/combobox-with-api-pagination/utils/use-intersection-observer.js +72 -82
  41. package/dist/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-content.js +13 -18
  42. package/dist/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-empty-state.js +16 -19
  43. package/dist/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-item.js +12 -17
  44. package/dist/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-list.js +15 -20
  45. package/dist/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-root.js +13 -18
  46. package/dist/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-search.js +36 -44
  47. package/dist/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-trigger.js +7 -12
  48. package/dist/esm/lib/components/filter-dropdown-menu/index.js +16 -18
  49. package/dist/esm/lib/components/filter-dropdown-menu/messages.js +10 -12
  50. package/dist/esm/lib/components/filter-instances-dropdown/filter-instances-dropdown.js +2 -93
  51. package/dist/esm/lib/components/filter-instances-dropdown/index.js +2 -4
  52. package/dist/esm/lib/components/filter-instances-dropdown/messages.js +18 -20
  53. package/dist/esm/lib/components/interactive-header-text/interactive-header-text.js +2 -28
  54. package/dist/esm/lib/components/interactive-text/interactive-text.js +2 -30
  55. package/dist/esm/lib/components/metadata-editor-fields/components/ai-logo-badge/ai-logo-badge.js +20 -32
  56. package/dist/esm/lib/components/metadata-editor-fields/components/ai-logo-badge/index.js +2 -4
  57. package/dist/esm/lib/components/metadata-editor-fields/components/ai-suggestion-field/ai-suggestion-field.js +2 -110
  58. package/dist/esm/lib/components/metadata-editor-fields/components/ai-suggestion-field/index.js +2 -4
  59. package/dist/esm/lib/components/metadata-editor-fields/components/ai-suggestion-field/messages.js +50 -52
  60. package/dist/esm/lib/components/metadata-editor-fields/components/ai-suggestion-field/utils.js +12 -17
  61. package/dist/esm/lib/components/metadata-editor-fields/components/constants.js +2 -6
  62. package/dist/esm/lib/components/metadata-editor-fields/components/low-confidence-badge/index.js +2 -4
  63. package/dist/esm/lib/components/metadata-editor-fields/components/low-confidence-badge/low-confidence-badge.js +20 -24
  64. package/dist/esm/lib/components/metadata-editor-fields/components/low-confidence-suggestion-field/index.js +2 -4
  65. package/dist/esm/lib/components/metadata-editor-fields/components/low-confidence-suggestion-field/low-confidence-suggestion-field.js +66 -75
  66. package/dist/esm/lib/components/metadata-editor-fields/components/low-confidence-suggestion-field/messages.js +30 -32
  67. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-date-field/metadata-date-field.js +43 -60
  68. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-enum-field/metadata-enum-field.js +47 -71
  69. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-float-field/metadata-float-field.js +32 -54
  70. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-float-field/use-float-validation.js +8 -14
  71. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-multi-select-field/metadata-multi-select-field.js +40 -62
  72. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-string-field/metadata-string-field.js +28 -44
  73. package/dist/esm/lib/components/metadata-editor-fields/components/metadata-taxonomy-field/metadata-taxonomy-field.js +66 -95
  74. package/dist/esm/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/messages.js +30 -32
  75. package/dist/esm/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/mulitple-values-utils.js +7 -11
  76. package/dist/esm/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/update-mode-field-wrapper.js +2 -92
  77. package/dist/esm/lib/components/metadata-editor-fields/editor-field-types.js +30 -34
  78. package/dist/esm/lib/components/metadata-editor-fields/hooks/use-memoized-field-label.js +11 -7
  79. package/dist/esm/lib/components/metadata-editor-fields/hooks/use-review-field-filter.js +35 -40
  80. package/dist/esm/lib/components/metadata-editor-fields/hooks/use-view-reference-tooltip.js +39 -34
  81. package/dist/esm/lib/components/metadata-editor-fields/messages.js +5 -9
  82. package/dist/esm/lib/components/metadata-editor-fields/metadata-editor-field-wrapper.js +186 -176
  83. package/dist/esm/lib/components/metadata-editor-fields/metadata-editor-fields.js +30 -42
  84. package/dist/esm/lib/components/metadata-editor-fields/utils.js +2 -13
  85. package/dist/esm/lib/components/metadata-empty-state/messages.js +42 -44
  86. package/dist/esm/lib/components/metadata-empty-state/metadata-empty-state.js +46 -62
  87. package/dist/esm/lib/components/metadata-instance-editor/index.js +7 -14
  88. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/autofill-overlay/autofill-overlay.js +2 -64
  89. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/autofill-overlay/messages.js +39 -41
  90. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/autofill-overlay/useErrorMessaging.js +21 -26
  91. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance/custom-instance.js +2 -86
  92. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance/messages.js +15 -17
  93. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/custom-instance-new-field.js +2 -62
  94. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/messages.js +42 -44
  95. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/delete-confirmation-modal.js +2 -91
  96. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.js +50 -52
  97. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/constants.js +2 -7
  98. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/messages.js +0 -1
  99. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form-card-wrapper.js +2 -10
  100. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form.js +126 -155
  101. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/utils.js +2 -9
  102. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-autofill-button/messages.js +23 -25
  103. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-autofill-button/metadata-instance-form-autofill-button.js +2 -128
  104. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/messages.js +19 -21
  105. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/metadata-instance-form-footer.js +2 -53
  106. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.js +6 -10
  107. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/metadata-instance-form-header.js +2 -58
  108. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-inline-notice/messages.js +18 -20
  109. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-inline-notice/metadata-instance-form-inline-notice.js +30 -37
  110. package/dist/esm/lib/components/metadata-instance-list/index.js +4 -8
  111. package/dist/esm/lib/components/metadata-instance-list/metadata-instance-list.js +2 -35
  112. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance/metadata-instance.js +2 -79
  113. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-content/metadata-instance-content.js +2 -40
  114. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/messages.js +5 -9
  115. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/metadata-entry-display.js +14 -24
  116. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/metadata-instance-entry.js +2 -112
  117. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/taxonomy-entry/messages.js +22 -24
  118. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/taxonomy-entry/taxonomy-ancestor-status-pill.js +2 -11
  119. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/taxonomy-entry/taxonomy-value.js +24 -36
  120. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/messages.js +10 -12
  121. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/metadata-instance-footer.js +2 -31
  122. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.js +15 -17
  123. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/metadata-instance-header.js +2 -63
  124. package/dist/esm/lib/components/metadata-instance-review-notice/messages.js +30 -32
  125. package/dist/esm/lib/components/metadata-instance-review-notice/metadata-instance-review-notice.js +22 -32
  126. package/dist/esm/lib/components/unsaved-changes-modal/index.js +2 -4
  127. package/dist/esm/lib/components/unsaved-changes-modal/messages.js +23 -25
  128. package/dist/esm/lib/components/unsaved-changes-modal/unsaved-changes-modal.js +41 -57
  129. package/dist/esm/lib/components/unsaved-changes-modal/utils.js +3 -5
  130. package/dist/esm/lib/constants.js +14 -18
  131. package/dist/esm/lib/defaults.js +14 -17
  132. package/dist/esm/lib/mappers.js +22 -28
  133. package/dist/esm/lib/messages.js +123 -126
  134. package/dist/esm/lib/metadata-editor.js +2 -14
  135. package/dist/esm/lib/utils/api-wrapper.js +12 -18
  136. package/dist/esm/lib/utils/autofill-context.js +65 -67
  137. package/dist/esm/lib/utils/check-if-has-bounding-boxes.js +2 -4
  138. package/dist/esm/lib/utils/confidence-score/format-confidence-score-percent.js +3 -5
  139. package/dist/esm/lib/utils/confidence-score/get-confidence-score-tooltip.js +12 -19
  140. package/dist/esm/lib/utils/confidence-score/get-fields-needing-review.js +5 -7
  141. package/dist/esm/lib/utils/confidence-score/index.js +5 -10
  142. package/dist/esm/lib/utils/confidence-score/is-confidence-score-needing-review.js +4 -6
  143. package/dist/esm/lib/utils/confidence-score/messages.js +14 -16
  144. package/dist/esm/lib/utils/convertDate.js +20 -31
  145. package/dist/esm/lib/utils/is-interactive-form-element.js +2 -4
  146. package/dist/esm/lib/utils/utils.js +4 -9
  147. package/dist/styles/autofill-overlay.css +1 -1
  148. package/dist/styles/combobox-with-api-pagination.css +1 -1
  149. package/dist/styles/custom-instance-new-field.css +1 -1
  150. package/dist/styles/custom-instance.css +1 -1
  151. package/dist/styles/delete-confirmation-modal.css +1 -1
  152. package/dist/styles/field-action-bar.css +1 -1
  153. package/dist/styles/filter-dropdown-menu.css +1 -1
  154. package/dist/styles/filter-instances-dropdown.css +1 -1
  155. package/dist/styles/interactive-header-text.css +1 -1
  156. package/dist/styles/interactive-text.css +1 -1
  157. package/dist/styles/metadata-editor.css +1 -0
  158. package/dist/styles/metadata-instance-content.css +1 -1
  159. package/dist/styles/metadata-instance-entry.css +1 -1
  160. package/dist/styles/metadata-instance-footer.css +1 -1
  161. package/dist/styles/metadata-instance-form-autofill-button.css +1 -1
  162. package/dist/styles/metadata-instance-form-card-wrapper.css +1 -1
  163. package/dist/styles/metadata-instance-form-footer.css +1 -1
  164. package/dist/styles/metadata-instance-form-header.css +1 -1
  165. package/dist/styles/metadata-instance-header.css +1 -1
  166. package/dist/styles/metadata-instance-list.css +1 -1
  167. package/dist/styles/shared-field-styles.css +1 -1
  168. package/dist/styles/taxonomy-ancestor-status-pill.css +1 -1
  169. package/dist/styles/update-mode-field-wrapper.css +1 -1
  170. package/dist/styles/utils.css +1 -1
  171. package/dist/types/lib/test-utils/index.d.ts +1 -0
  172. package/dist/types/lib/test-utils/pending-promise.d.ts +19 -0
  173. package/package.json +10 -10
@@ -1,72 +1,48 @@
1
- import { Select as l, SELECT_EMPTY_VALUE as r } from "@box/blueprint-web";
2
- import { useFormikContext as C, getIn as O, Field as T } from "formik";
3
- import { forwardRef as $ } from "react";
4
- import { useIntl as I, FormattedMessage as P } from "react-intl";
5
- import u from "../../../../messages.js";
6
- import { useMemoizedFieldLabel as S } from "../../hooks/use-memoized-field-label.js";
7
- import { messages as j } from "../update-mode-field-wrapper/messages.js";
8
- import { MULTI_VALUE_DEFAULT_VALUE as w } from "../update-mode-field-wrapper/mulitple-values-utils.js";
9
- import { jsx as a, jsxs as y } from "react/jsx-runtime";
10
- const H = /* @__PURE__ */ $(({
11
- className: c,
12
- isAiSuggestionApplied: p,
13
- confidenceScore: f,
14
- description: g,
15
- disableForm: E,
16
- fieldNamePrefix: s,
17
- updateModePrefix: L,
18
- label: n,
19
- onValueEdited: h,
20
- options: v,
21
- portalElement: V
22
- }, F) => {
23
- const {
24
- setFieldValue: M,
25
- values: b
26
- } = C(), {
27
- formatMessage: i
28
- } = I(), m = `${L ?? s}.value`, x = i(j.multipleValues), U = (v || O(b, `${s}.options`, [])).map((e) => typeof e == "string" ? e : e.key), d = i(u.selectValuePlaceholder), _ = S(n, g, p, "label", f), A = (e) => e === w ? x : e;
29
- return /* @__PURE__ */ a("div", {
30
- "data-testid": `${n}-field`,
31
- children: /* @__PURE__ */ a(T, {
32
- name: m,
33
- children: ({
34
- field: e
35
- }) => /* @__PURE__ */ a(l, {
36
- ref: F,
37
- className: c,
38
- "data-target-id": "Select-MetadataEditorEnumField",
39
- disabled: E,
40
- label: _,
41
- onValueChange: (t) => {
42
- M(m, t === r ? "" : t), h();
43
- },
44
- placeholder: d,
45
- ...e,
46
- value: e.value === r ? "" : e.value,
47
- children: /* @__PURE__ */ y(l.Content, {
48
- container: V,
49
- onEscapeKeyDown: (t) => t.stopPropagation(),
50
- children: [/* @__PURE__ */ a(l.Option, {
51
- text: d,
52
- value: r,
53
- children: /* @__PURE__ */ a(P, {
54
- ...u.selectValuePlaceholder
55
- })
56
- }), U?.map((t) => {
57
- const o = A(t);
58
- return /* @__PURE__ */ a(l.Option, {
59
- text: o,
60
- value: t,
61
- children: o
62
- }, t);
63
- })]
64
- })
65
- })
66
- })
67
- });
1
+ import e from "../../../../messages.js";
2
+ import "../update-mode-field-wrapper/mulitple-values-utils.js";
3
+ import { messages as t } from "../update-mode-field-wrapper/messages.js";
4
+ import { useMemoizedFieldLabel as n } from "../../hooks/use-memoized-field-label.js";
5
+ import { SELECT_EMPTY_VALUE as r, Select as i } from "@box/blueprint-web";
6
+ import { forwardRef as a } from "react";
7
+ import { FormattedMessage as o, useIntl as s } from "react-intl";
8
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
9
+ import { Field as u, getIn as d, useFormikContext as f } from "formik";
10
+ var p = /* @__PURE__ */ a(({ className: a, isAiSuggestionApplied: p, confidenceScore: m, description: h, disableForm: g, fieldNamePrefix: _, updateModePrefix: v, label: y, onValueEdited: b, options: x, portalElement: S }, C) => {
11
+ let { setFieldValue: w, values: T } = f(), { formatMessage: E } = s(), D = `${v ?? _}.value`, O = E(t.multipleValues), k = (x || d(T, `${_}.options`, [])).map((e) => typeof e == "string" ? e : e.key), A = E(e.selectValuePlaceholder), j = n(y, h, p, "label", m), M = (e) => e === "Multiple values" ? O : e;
12
+ return /* @__PURE__ */ c("div", {
13
+ "data-testid": `${y}-field`,
14
+ children: /* @__PURE__ */ c(u, {
15
+ name: D,
16
+ children: ({ field: t }) => /* @__PURE__ */ c(i, {
17
+ ref: C,
18
+ className: a,
19
+ "data-target-id": "Select-MetadataEditorEnumField",
20
+ disabled: g,
21
+ label: j,
22
+ onValueChange: (e) => {
23
+ w(D, e === r ? "" : e), b();
24
+ },
25
+ placeholder: A,
26
+ ...t,
27
+ value: t.value === r ? "" : t.value,
28
+ children: /* @__PURE__ */ l(i.Content, {
29
+ container: S,
30
+ onEscapeKeyDown: (e) => e.stopPropagation(),
31
+ children: [/* @__PURE__ */ c(i.Option, {
32
+ text: A,
33
+ value: r,
34
+ children: /* @__PURE__ */ c(o, { ...e.selectValuePlaceholder })
35
+ }), k?.map((e) => {
36
+ let t = M(e);
37
+ return /* @__PURE__ */ c(i.Option, {
38
+ text: t,
39
+ value: e,
40
+ children: t
41
+ }, e);
42
+ })]
43
+ })
44
+ })
45
+ })
46
+ });
68
47
  });
69
- export {
70
- H as MetadataEnumField,
71
- H as default
72
- };
48
+ export { p as MetadataEnumField, p as default };
@@ -1,56 +1,34 @@
1
- import { TextInput as I } from "@box/blueprint-web";
2
- import { useFormikContext as R, getIn as V, Field as $ } from "formik";
3
- import { forwardRef as B, useRef as L } from "react";
4
- import { useMemoizedFieldLabel as O } from "../../hooks/use-memoized-field-label.js";
5
- import { useFloatValidation as j } from "./use-float-validation.js";
1
+ import { useMemoizedFieldLabel as e } from "../../hooks/use-memoized-field-label.js";
2
+ import { useFloatValidation as t } from "./use-float-validation.js";
3
+ import { TextInput as n } from "@box/blueprint-web";
4
+ import { forwardRef as r, useRef as i } from "react";
6
5
  import { jsx as a } from "react/jsx-runtime";
7
- const y = /* @__PURE__ */ B(({
8
- className: l,
9
- description: d,
10
- isAiSuggestionApplied: i,
11
- confidenceScore: n,
12
- label: o,
13
- fieldNamePrefix: s,
14
- disableForm: u,
15
- onValueEdited: c,
16
- updateModePrefix: m
17
- }, f) => {
18
- const {
19
- values: p,
20
- setFieldValue: F,
21
- setFieldTouched: h
22
- } = R(), t = `${m ?? s}.value`, v = V(p, t), r = L(v), {
23
- validateFloats: g
24
- } = j(), x = O(o, d, i, "label", n), b = (e) => {
25
- r.current = e, F(t, e), c();
26
- }, M = (e) => {
27
- h(e, !0);
28
- };
29
- return /* @__PURE__ */ a("div", {
30
- "data-testid": `${o}-field`,
31
- children: /* @__PURE__ */ a($, {
32
- name: `${t}`,
33
- validate: () => g(r.current),
34
- children: ({
35
- field: e,
36
- meta: T
37
- }) => /* @__PURE__ */ a(I, {
38
- ...e,
39
- ref: f,
40
- className: l,
41
- "data-target-id": "TextInput-MetadataEditorFloatField",
42
- disabled: u,
43
- error: T.error,
44
- inputMode: "decimal",
45
- label: x,
46
- onBlur: () => M(t),
47
- onChange: (C) => b(C.currentTarget.value),
48
- placeholder: "0"
49
- })
50
- })
51
- });
6
+ import { Field as o, getIn as s, useFormikContext as c } from "formik";
7
+ var l = /* @__PURE__ */ r(({ className: r, description: l, isAiSuggestionApplied: u, confidenceScore: d, label: f, fieldNamePrefix: p, disableForm: m, onValueEdited: h, updateModePrefix: g }, _) => {
8
+ let { values: v, setFieldValue: y, setFieldTouched: b } = c(), x = `${g ?? p}.value`, S = i(s(v, x)), { validateFloats: C } = t(), w = e(f, l, u, "label", d), T = (e) => {
9
+ S.current = e, y(x, e), h();
10
+ }, E = (e) => {
11
+ b(e, !0);
12
+ };
13
+ return /* @__PURE__ */ a("div", {
14
+ "data-testid": `${f}-field`,
15
+ children: /* @__PURE__ */ a(o, {
16
+ name: `${x}`,
17
+ validate: () => C(S.current),
18
+ children: ({ field: e, meta: t }) => /* @__PURE__ */ a(n, {
19
+ ...e,
20
+ ref: _,
21
+ className: r,
22
+ "data-target-id": "TextInput-MetadataEditorFloatField",
23
+ disabled: m,
24
+ error: t.error,
25
+ inputMode: "decimal",
26
+ label: w,
27
+ onBlur: () => E(x),
28
+ onChange: (e) => T(e.currentTarget.value),
29
+ placeholder: "0"
30
+ })
31
+ })
32
+ });
52
33
  });
53
- export {
54
- y as MetadataFloatField,
55
- y as default
56
- };
34
+ export { l as MetadataFloatField, l as default };
@@ -1,15 +1,9 @@
1
- import { useIntl as r } from "react-intl";
2
- import o from "../../../../messages.js";
3
- const a = (t) => t?.length ? /^[-+]?\d+(\.\d+)?$/.test(t) : !0, i = () => {
4
- const t = r();
5
- return {
6
- validateFloats: (e) => {
7
- if (!a(e))
8
- return t.formatMessage(o.floatFieldInvalidValue);
9
- }
10
- };
11
- };
12
- export {
13
- a as isFloatOrBlank,
14
- i as useFloatValidation
1
+ import e from "../../../../messages.js";
2
+ import { useIntl as t } from "react-intl";
3
+ var n = (e) => e?.length ? /^[-+]?\d+(\.\d+)?$/.test(e) : !0, r = () => {
4
+ let r = t();
5
+ return { validateFloats: (t) => {
6
+ if (!n(t)) return r.formatMessage(e.floatFieldInvalidValue);
7
+ } };
15
8
  };
9
+ export { n as isFloatOrBlank, r as useFloatValidation };
@@ -1,63 +1,41 @@
1
- import { Combobox as x } from "@box/blueprint-web";
2
- import { useFormikContext as E, getIn as U, Field as $ } from "formik";
3
- import { forwardRef as w } from "react";
4
- import { useIntl as A } from "react-intl";
5
- import D from "../../../../messages.js";
6
- import { useMemoizedFieldLabel as I } from "../../hooks/use-memoized-field-label.js";
7
- import { messages as _ } from "../update-mode-field-wrapper/messages.js";
8
- import { MULTI_VALUE_DEFAULT_VALUE as k } from "../update-mode-field-wrapper/mulitple-values-utils.js";
9
- import { jsx as l } from "react/jsx-runtime";
10
- const J = /* @__PURE__ */ w(({
11
- className: m,
12
- isAiSuggestionApplied: n,
13
- confidenceScore: u,
14
- description: d,
15
- disableForm: c,
16
- fieldNamePrefix: o,
17
- label: a,
18
- onValueEdited: p,
19
- options: f,
20
- portalElement: g,
21
- updateModePrefix: L
22
- }, V) => {
23
- const {
24
- setFieldValue: b,
25
- values: F
26
- } = E(), {
27
- formatMessage: s
28
- } = A(), i = `${L ?? o}.value`, h = s(_.multipleValues), M = (f || U(F, `${o}.options`, [])).map((e) => typeof e == "string" ? e : e.key), C = I(a, d, n, "label", u), v = (e, r) => r.toLowerCase().includes(e.toLowerCase());
29
- return /* @__PURE__ */ l("div", {
30
- "data-testid": `${a}-field`,
31
- children: /* @__PURE__ */ l($, {
32
- name: i,
33
- children: ({
34
- field: e
35
- }) => {
36
- const y = (e.value?.length || 0) === 0 ? s(D.multiselectPlaceholder) : "";
37
- return /* @__PURE__ */ l(x, {
38
- ref: V,
39
- as: "input",
40
- className: m,
41
- "data-target-id": "Combobox-MetadataEditorMultiSelectField",
42
- disabled: c,
43
- displayValue: (t) => t === k ? h : t,
44
- filterFn: v,
45
- label: C,
46
- multiselect: !0,
47
- name: e.name,
48
- onValueChange: (t) => {
49
- b(i, t), p();
50
- },
51
- options: M,
52
- placeholder: y,
53
- portalElement: g,
54
- value: e.value
55
- });
56
- }
57
- })
58
- });
1
+ import e from "../../../../messages.js";
2
+ import "../update-mode-field-wrapper/mulitple-values-utils.js";
3
+ import { messages as t } from "../update-mode-field-wrapper/messages.js";
4
+ import { useMemoizedFieldLabel as n } from "../../hooks/use-memoized-field-label.js";
5
+ import { Combobox as r } from "@box/blueprint-web";
6
+ import { forwardRef as i } from "react";
7
+ import { useIntl as a } from "react-intl";
8
+ import { jsx as o } from "react/jsx-runtime";
9
+ import { Field as s, getIn as c, useFormikContext as l } from "formik";
10
+ var u = /* @__PURE__ */ i(({ className: i, isAiSuggestionApplied: u, confidenceScore: d, description: f, disableForm: p, fieldNamePrefix: m, label: h, onValueEdited: g, options: _, portalElement: v, updateModePrefix: y }, b) => {
11
+ let { setFieldValue: x, values: S } = l(), { formatMessage: C } = a(), w = `${y ?? m}.value`, T = C(t.multipleValues), E = (_ || c(S, `${m}.options`, [])).map((e) => typeof e == "string" ? e : e.key), D = n(h, f, u, "label", d), O = (e, t) => t.toLowerCase().includes(e.toLowerCase());
12
+ return /* @__PURE__ */ o("div", {
13
+ "data-testid": `${h}-field`,
14
+ children: /* @__PURE__ */ o(s, {
15
+ name: w,
16
+ children: ({ field: t }) => {
17
+ let n = (t.value?.length || 0) === 0 ? C(e.multiselectPlaceholder) : "";
18
+ return /* @__PURE__ */ o(r, {
19
+ ref: b,
20
+ as: "input",
21
+ className: i,
22
+ "data-target-id": "Combobox-MetadataEditorMultiSelectField",
23
+ disabled: p,
24
+ displayValue: (e) => e === "Multiple values" ? T : e,
25
+ filterFn: O,
26
+ label: D,
27
+ multiselect: !0,
28
+ name: t.name,
29
+ onValueChange: (e) => {
30
+ x(w, e), g();
31
+ },
32
+ options: E,
33
+ placeholder: n,
34
+ portalElement: v,
35
+ value: t.value
36
+ });
37
+ }
38
+ })
39
+ });
59
40
  });
60
- export {
61
- J as MetadataMultiSelectField,
62
- J as default
63
- };
41
+ export { u as MetadataMultiSelectField, u as default };
@@ -1,45 +1,29 @@
1
- import { TextInput as h } from "@box/blueprint-web";
2
- import { Field as F } from "formik";
3
- import { forwardRef as M } from "react";
4
- import { useIntl as b } from "react-intl";
5
- import x from "../../../../messages.js";
6
- import { useMemoizedFieldLabel as I } from "../../hooks/use-memoized-field-label.js";
7
- import { jsx as e } from "react/jsx-runtime";
8
- const S = /* @__PURE__ */ M(({
9
- className: r,
10
- description: a,
11
- isAiSuggestionApplied: i,
12
- confidenceScore: o,
13
- disableForm: d,
14
- fieldNamePrefix: l,
15
- label: t,
16
- onValueEdited: m,
17
- updateModePrefix: n
18
- }, s) => {
19
- const f = b(), p = `${n ?? l}.value`, u = I(t, a, i, "label", o);
20
- return /* @__PURE__ */ e("div", {
21
- "data-testid": `${t}-field`,
22
- children: /* @__PURE__ */ e(F, {
23
- name: p,
24
- children: ({
25
- field: c,
26
- meta: g
27
- }) => /* @__PURE__ */ e(h, {
28
- ...c,
29
- ref: s,
30
- className: r,
31
- "data-target-id": "TextInput-MetadataEditorStringField",
32
- disabled: d,
33
- error: g.error,
34
- label: u,
35
- onChangeCapture: m,
36
- placeholder: f.formatMessage(x.setValuePlaceholder)
37
- })
38
- })
39
- });
1
+ import e from "../../../../messages.js";
2
+ import { useMemoizedFieldLabel as t } from "../../hooks/use-memoized-field-label.js";
3
+ import { TextInput as n } from "@box/blueprint-web";
4
+ import { forwardRef as r } from "react";
5
+ import { useIntl as i } from "react-intl";
6
+ import { jsx as a } from "react/jsx-runtime";
7
+ import { Field as o } from "formik";
8
+ var s = /* @__PURE__ */ r(({ className: r, description: s, isAiSuggestionApplied: c, confidenceScore: l, disableForm: u, fieldNamePrefix: d, label: f, onValueEdited: p, updateModePrefix: m }, h) => {
9
+ let g = i(), _ = `${m ?? d}.value`, v = t(f, s, c, "label", l);
10
+ return /* @__PURE__ */ a("div", {
11
+ "data-testid": `${f}-field`,
12
+ children: /* @__PURE__ */ a(o, {
13
+ name: _,
14
+ children: ({ field: t, meta: i }) => /* @__PURE__ */ a(n, {
15
+ ...t,
16
+ ref: h,
17
+ className: r,
18
+ "data-target-id": "TextInput-MetadataEditorStringField",
19
+ disabled: u,
20
+ error: i.error,
21
+ label: v,
22
+ onChangeCapture: p,
23
+ placeholder: g.formatMessage(e.setValuePlaceholder)
24
+ })
25
+ })
26
+ });
40
27
  });
41
- S.displayName = "MetadataStringField";
42
- export {
43
- S as MetadataStringField,
44
- S as default
45
- };
28
+ s.displayName = "MetadataStringField";
29
+ export { s as MetadataStringField, s as default };
@@ -1,96 +1,67 @@
1
- import { Tooltip as K } from "@box/blueprint-web";
2
- import { ComboboxWithApiTreeView as S, ComboboxWithApiPagination as j } from "@box/combobox-with-api";
3
- import { useFormikContext as z, getIn as R, Field as q } from "formik";
4
- import { forwardRef as B, useCallback as G } from "react";
5
- import { useIntl as H } from "react-intl";
6
- import I from "../../../../messages.js";
7
- import { useMemoizedFieldLabel as J } from "../../hooks/use-memoized-field-label.js";
8
- import { messages as O } from "../update-mode-field-wrapper/messages.js";
9
- import { MULTI_VALUE_DEFAULT_VALUE as Q } from "../update-mode-field-wrapper/mulitple-values-utils.js";
10
- import { jsx as o } from "react/jsx-runtime";
11
- const X = (t, l) => t === Q ? l : t, re = /* @__PURE__ */ B(({
12
- description: t,
13
- disableForm: l,
14
- isAiSuggestionApplied: k,
15
- confidenceScore: E,
16
- fieldNamePrefix: r,
17
- label: s,
18
- onValueEdited: P,
19
- portalElement: m,
20
- taxonomyOptionsFetcher: d,
21
- updateModePrefix: U,
22
- className: u,
23
- isExternallyOwned: c,
24
- isMultilevelTaxonomyFieldEnabled: W
25
- }, p) => {
26
- const {
27
- formatMessage: i
28
- } = H(), b = `${U ?? r}.value`, {
29
- setFieldValue: w,
30
- values: h
31
- } = z(), {
32
- metadata: {
33
- templateKey: g,
34
- scope: V
35
- }
36
- } = h, D = R(h, r), {
37
- key: f,
38
- optionsRules: {
39
- multiSelect: n,
40
- selectableLevels: a
41
- },
42
- levels: _
43
- } = D, $ = i(O.multipleValues), v = W && a?.some((e) => e > 1), y = l || c, x = J(s, t, k, "label", E), T = G((e) => d(V, g, f, a?.[0], e), [f, V, a, d, g]), C = (e) => n || !e?.length ? i(I.taxonomyPlaceholder) : void 0, F = (e) => {
44
- w(b, e), P();
45
- }, A = /* @__PURE__ */ o("div", {
46
- "data-testid": `${s}-field`,
47
- onKeyDown: (e) => e.stopPropagation(),
48
- role: "presentation",
49
- children: /* @__PURE__ */ o(q, {
50
- name: b,
51
- children: ({
52
- field: e
53
- }) => {
54
- const L = Array.isArray(e.value) ? e.value.map((M) => ({
55
- ...M,
56
- displayValue: X(M.displayValue, $)
57
- })) : e.value;
58
- return v ? /* @__PURE__ */ o(S, {
59
- ref: p,
60
- className: u,
61
- closeOnSelection: v,
62
- dataTargetId: "ComboboxWithApiTreeView-MetadataEditorTaxonomyField",
63
- defaultFetcher: T,
64
- disabled: y,
65
- label: x,
66
- levels: _,
67
- multiselect: n,
68
- onValueChange: F,
69
- placeholder: C(e.value),
70
- portalElement: m,
71
- selectableLevels: a,
72
- value: L
73
- }) : /* @__PURE__ */ o(j, {
74
- ref: p,
75
- className: u,
76
- dataTargetId: "ComboboxWithApiPagination-MetadataEditorTaxonomyField",
77
- defaultFetcher: T,
78
- disabled: y,
79
- label: x,
80
- multiselect: n,
81
- onValueChange: F,
82
- placeholder: C(e.value),
83
- portalElement: m,
84
- value: L
85
- });
86
- }
87
- })
88
- });
89
- return c ? /* @__PURE__ */ o(K, {
90
- content: i(I.taxonomyExternallyOwned),
91
- children: A
92
- }) : A;
1
+ import e from "../../../../messages.js";
2
+ import "../update-mode-field-wrapper/mulitple-values-utils.js";
3
+ import { messages as t } from "../update-mode-field-wrapper/messages.js";
4
+ import { useMemoizedFieldLabel as n } from "../../hooks/use-memoized-field-label.js";
5
+ import { Tooltip as r } from "@box/blueprint-web";
6
+ import { forwardRef as i, useCallback as a } from "react";
7
+ import { useIntl as o } from "react-intl";
8
+ import { jsx as s } from "react/jsx-runtime";
9
+ import { Field as c, getIn as l, useFormikContext as u } from "formik";
10
+ import { ComboboxWithApiPagination as d, ComboboxWithApiTreeView as f } from "@box/combobox-with-api";
11
+ var p = (e, t) => e === "Multiple values" ? t : e, m = /* @__PURE__ */ i(({ description: i, disableForm: m, isAiSuggestionApplied: h, confidenceScore: g, fieldNamePrefix: _, label: v, onValueEdited: y, portalElement: b, taxonomyOptionsFetcher: x, updateModePrefix: S, className: C, isExternallyOwned: w, isMultilevelTaxonomyFieldEnabled: T }, E) => {
12
+ let { formatMessage: D } = o(), O = `${S ?? _}.value`, { setFieldValue: k, values: A } = u(), { metadata: { templateKey: j, scope: M } } = A, { key: N, optionsRules: { multiSelect: P, selectableLevels: F }, levels: I } = l(A, _), L = D(t.multipleValues), R = T && F?.some((e) => e > 1), z = m || w, B = n(v, i, h, "label", g), V = a((e) => x(M, j, N, F?.[0], e), [
13
+ N,
14
+ M,
15
+ F,
16
+ x,
17
+ j
18
+ ]), H = (t) => P || !t?.length ? D(e.taxonomyPlaceholder) : void 0, U = (e) => {
19
+ k(O, e), y();
20
+ }, W = /* @__PURE__ */ s("div", {
21
+ "data-testid": `${v}-field`,
22
+ onKeyDown: (e) => e.stopPropagation(),
23
+ role: "presentation",
24
+ children: /* @__PURE__ */ s(c, {
25
+ name: O,
26
+ children: ({ field: e }) => {
27
+ let t = Array.isArray(e.value) ? e.value.map((e) => ({
28
+ ...e,
29
+ displayValue: p(e.displayValue, L)
30
+ })) : e.value;
31
+ return R ? /* @__PURE__ */ s(f, {
32
+ ref: E,
33
+ className: C,
34
+ closeOnSelection: R,
35
+ dataTargetId: "ComboboxWithApiTreeView-MetadataEditorTaxonomyField",
36
+ defaultFetcher: V,
37
+ disabled: z,
38
+ label: B,
39
+ levels: I,
40
+ multiselect: P,
41
+ onValueChange: U,
42
+ placeholder: H(e.value),
43
+ portalElement: b,
44
+ selectableLevels: F,
45
+ value: t
46
+ }) : /* @__PURE__ */ s(d, {
47
+ ref: E,
48
+ className: C,
49
+ dataTargetId: "ComboboxWithApiPagination-MetadataEditorTaxonomyField",
50
+ defaultFetcher: V,
51
+ disabled: z,
52
+ label: B,
53
+ multiselect: P,
54
+ onValueChange: U,
55
+ placeholder: H(e.value),
56
+ portalElement: b,
57
+ value: t
58
+ });
59
+ }
60
+ })
61
+ });
62
+ return w ? /* @__PURE__ */ s(r, {
63
+ content: D(e.taxonomyExternallyOwned),
64
+ children: W
65
+ }) : W;
93
66
  });
94
- export {
95
- re as MetadataTaxonomyField
96
- };
67
+ export { m as MetadataTaxonomyField };