@box/metadata-editor 0.45.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 (252) hide show
  1. package/LICENSE +379 -0
  2. package/chunks/filter-dropdown-menu.module.js +18 -0
  3. package/chunks/types.js +6 -0
  4. package/esm/index.js +33 -0
  5. package/esm/lib/components/add-metadata-template-dropdown/add-metadata-template-dropdown.js +44 -0
  6. package/esm/lib/components/add-metadata-template-dropdown/index.js +4 -0
  7. package/esm/lib/components/add-metadata-template-dropdown/messages.js +18 -0
  8. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-content.js +19 -0
  9. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-empty-state.js +20 -0
  10. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-item.js +20 -0
  11. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-list.js +22 -0
  12. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-root.js +19 -0
  13. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-search.js +44 -0
  14. package/esm/lib/components/filter-dropdown-menu/filter-dropdown-menu-trigger.js +13 -0
  15. package/esm/lib/components/filter-dropdown-menu/index.js +19 -0
  16. package/esm/lib/components/filter-dropdown-menu/messages.js +14 -0
  17. package/esm/lib/components/interactive-text/interactive-text.js +22 -0
  18. package/esm/lib/components/metadata-editor-fields/components/constants.js +6 -0
  19. package/esm/lib/components/metadata-editor-fields/components/metadata-date-field/date-conversion-utils.js +16 -0
  20. package/esm/lib/components/metadata-editor-fields/components/metadata-date-field/metadata-date-field.js +60 -0
  21. package/esm/lib/components/metadata-editor-fields/components/metadata-date-field/use-date-internationalization.js +13 -0
  22. package/esm/lib/components/metadata-editor-fields/components/metadata-enum-field/metadata-enum-field.js +55 -0
  23. package/esm/lib/components/metadata-editor-fields/components/metadata-float-field/metadata-float-field.js +47 -0
  24. package/esm/lib/components/metadata-editor-fields/components/metadata-float-field/use-float-validation.js +15 -0
  25. package/esm/lib/components/metadata-editor-fields/components/metadata-multi-select-field/metadata-multi-select-field.js +51 -0
  26. package/esm/lib/components/metadata-editor-fields/components/metadata-string-field/metadata-string-field.js +35 -0
  27. package/esm/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/messages.js +30 -0
  28. package/esm/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/update-mode-field-wrapper.js +90 -0
  29. package/esm/lib/components/metadata-editor-fields/editor-field-types.js +26 -0
  30. package/esm/lib/components/metadata-editor-fields/metadata-editor-fields.js +52 -0
  31. package/esm/lib/components/metadata-empty-state/messages.js +46 -0
  32. package/esm/lib/components/metadata-empty-state/metadata-empty-state.js +63 -0
  33. package/esm/lib/components/metadata-instance-editor/index.js +10 -0
  34. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance/custom-instance.js +76 -0
  35. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance/messages.js +18 -0
  36. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/custom-instance-new-field.js +58 -0
  37. package/esm/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/messages.js +42 -0
  38. package/esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/delete-confirmation-modal.js +81 -0
  39. package/esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.js +38 -0
  40. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/messages.js +1 -0
  41. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form.js +79 -0
  42. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/utils.js +33 -0
  43. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/messages.js +22 -0
  44. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/metadata-instance-form-footer.js +50 -0
  45. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.js +18 -0
  46. package/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/metadata-instance-form-header.js +40 -0
  47. package/esm/lib/components/metadata-instance-list/index.js +8 -0
  48. package/esm/lib/components/metadata-instance-list/metadata-instance-list.js +22 -0
  49. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance/metadata-instance.js +51 -0
  50. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-content/metadata-instance-content.js +26 -0
  51. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/convertDate.js +25 -0
  52. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/metadata-instance-entry.js +56 -0
  53. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/messages.js +14 -0
  54. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/metadata-instance-footer.js +30 -0
  55. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.js +10 -0
  56. package/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/metadata-instance-header.js +46 -0
  57. package/esm/lib/components/metadata-taxonomy-field/combobox-with-api-pagination.js +188 -0
  58. package/esm/lib/components/metadata-taxonomy-field/index.js +4 -0
  59. package/esm/lib/components/metadata-taxonomy-field/messages.js +34 -0
  60. package/esm/lib/components/metadata-taxonomy-field/request.js +6 -0
  61. package/esm/lib/components/metadata-taxonomy-field/single-level-taxonomy-field.js +19 -0
  62. package/esm/lib/components/metadata-taxonomy-field/use-async-list.js +124 -0
  63. package/esm/lib/components/metadata-taxonomy-field/utils/use-intersection-observer.js +87 -0
  64. package/esm/lib/components/unsaved-changes-modal/index.js +4 -0
  65. package/esm/lib/components/unsaved-changes-modal/messages.js +26 -0
  66. package/esm/lib/components/unsaved-changes-modal/unsaved-changes-modal.js +55 -0
  67. package/esm/lib/components/unsaved-changes-modal/utils.js +6 -0
  68. package/esm/lib/constants.js +4 -0
  69. package/esm/lib/defaults.js +18 -0
  70. package/esm/lib/mappers.js +28 -0
  71. package/esm/lib/messages.js +94 -0
  72. package/esm/lib/metadata-editor.js +15 -0
  73. package/esm/lib/test-utils/formik-wrapper.js +26 -0
  74. package/esm/lib/test-utils/index.js +31 -0
  75. package/esm/lib/test-utils/sample-data.js +281 -0
  76. package/esm/lib/test-utils/test-utils.js +13 -0
  77. package/i18n/bn-IN.js +88 -0
  78. package/i18n/bn-IN.properties +164 -0
  79. package/i18n/da-DK.js +88 -0
  80. package/i18n/da-DK.properties +164 -0
  81. package/i18n/de-DE.js +88 -0
  82. package/i18n/de-DE.properties +164 -0
  83. package/i18n/en-AU.js +88 -0
  84. package/i18n/en-AU.properties +164 -0
  85. package/i18n/en-CA.js +88 -0
  86. package/i18n/en-CA.properties +164 -0
  87. package/i18n/en-GB.js +88 -0
  88. package/i18n/en-GB.properties +164 -0
  89. package/i18n/en-US.js +87 -0
  90. package/i18n/en-US.properties +170 -0
  91. package/i18n/en-x-pseudo.js +88 -0
  92. package/i18n/en-x-pseudo.properties +164 -0
  93. package/i18n/es-419.js +88 -0
  94. package/i18n/es-419.properties +164 -0
  95. package/i18n/es-ES.js +88 -0
  96. package/i18n/es-ES.properties +164 -0
  97. package/i18n/fi-FI.js +88 -0
  98. package/i18n/fi-FI.properties +164 -0
  99. package/i18n/fr-CA.js +88 -0
  100. package/i18n/fr-CA.properties +164 -0
  101. package/i18n/fr-FR.js +88 -0
  102. package/i18n/fr-FR.properties +164 -0
  103. package/i18n/hi-IN.js +88 -0
  104. package/i18n/hi-IN.properties +164 -0
  105. package/i18n/it-IT.js +88 -0
  106. package/i18n/it-IT.properties +164 -0
  107. package/i18n/ja-JP.js +88 -0
  108. package/i18n/ja-JP.properties +164 -0
  109. package/i18n/json/src/lib/components/add-metadata-template-dropdown/messages.json +1 -0
  110. package/i18n/json/src/lib/components/filter-dropdown-menu/messages.json +1 -0
  111. package/i18n/json/src/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/messages.json +1 -0
  112. package/i18n/json/src/lib/components/metadata-empty-state/messages.json +1 -0
  113. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/custom-instance/messages.json +1 -0
  114. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/messages.json +1 -0
  115. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.json +1 -0
  116. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/messages.json +1 -0
  117. package/i18n/json/src/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.json +1 -0
  118. package/i18n/json/src/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/messages.json +1 -0
  119. package/i18n/json/src/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.json +1 -0
  120. package/i18n/json/src/lib/components/metadata-taxonomy-field/messages.json +1 -0
  121. package/i18n/json/src/lib/components/unsaved-changes-modal/messages.json +1 -0
  122. package/i18n/json/src/lib/messages.json +1 -0
  123. package/i18n/ko-KR.js +88 -0
  124. package/i18n/ko-KR.properties +164 -0
  125. package/i18n/nb-NO.js +88 -0
  126. package/i18n/nb-NO.properties +164 -0
  127. package/i18n/nl-NL.js +88 -0
  128. package/i18n/nl-NL.properties +164 -0
  129. package/i18n/pl-PL.js +88 -0
  130. package/i18n/pl-PL.properties +164 -0
  131. package/i18n/pt-BR.js +88 -0
  132. package/i18n/pt-BR.properties +164 -0
  133. package/i18n/ru-RU.js +88 -0
  134. package/i18n/ru-RU.properties +164 -0
  135. package/i18n/sv-SE.js +88 -0
  136. package/i18n/sv-SE.properties +164 -0
  137. package/i18n/tr-TR.js +88 -0
  138. package/i18n/tr-TR.properties +164 -0
  139. package/i18n/zh-CN.js +88 -0
  140. package/i18n/zh-CN.properties +164 -0
  141. package/i18n/zh-TW.js +88 -0
  142. package/i18n/zh-TW.properties +164 -0
  143. package/package.json +55 -0
  144. package/styles/combobox-with-api-pagination.css +1 -0
  145. package/styles/custom-instance-new-field.css +1 -0
  146. package/styles/custom-instance.css +1 -0
  147. package/styles/delete-confirmation-modal.css +1 -0
  148. package/styles/filter-dropdown-menu.css +1 -0
  149. package/styles/metadata-editor-fields.css +1 -0
  150. package/styles/metadata-editor.css +0 -0
  151. package/styles/metadata-instance-content.css +1 -0
  152. package/styles/metadata-instance-entry.css +1 -0
  153. package/styles/metadata-instance-footer.css +1 -0
  154. package/styles/metadata-instance-form-footer.css +1 -0
  155. package/styles/metadata-instance-form-header.css +1 -0
  156. package/styles/metadata-instance-form.css +1 -0
  157. package/styles/metadata-instance-header.css +1 -0
  158. package/styles/metadata-instance-list.css +1 -0
  159. package/styles/metadata-instance.css +1 -0
  160. package/styles/update-mode-field-wrapper.css +1 -0
  161. package/types/index.d.ts +10 -0
  162. package/types/lib/components/add-metadata-template-dropdown/add-metadata-template-dropdown.d.ts +2 -0
  163. package/types/lib/components/add-metadata-template-dropdown/index.d.ts +2 -0
  164. package/types/lib/components/add-metadata-template-dropdown/messages.d.ts +18 -0
  165. package/types/lib/components/add-metadata-template-dropdown/types.d.ts +6 -0
  166. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-content.d.ts +9 -0
  167. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-empty-state.d.ts +8 -0
  168. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-item.d.ts +9 -0
  169. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-list.d.ts +9 -0
  170. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-root.d.ts +9 -0
  171. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-search.d.ts +9 -0
  172. package/types/lib/components/filter-dropdown-menu/filter-dropdown-menu-trigger.d.ts +11 -0
  173. package/types/lib/components/filter-dropdown-menu/index.d.ts +36 -0
  174. package/types/lib/components/filter-dropdown-menu/messages.d.ts +13 -0
  175. package/types/lib/components/interactive-text/interactive-text.d.ts +10 -0
  176. package/types/lib/components/metadata-editor-fields/components/constants.d.ts +3 -0
  177. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/date-conversion-utils.d.ts +3 -0
  178. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/metadata-date-field.d.ts +3 -0
  179. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/types.d.ts +4 -0
  180. package/types/lib/components/metadata-editor-fields/components/metadata-date-field/use-date-internationalization.d.ts +6 -0
  181. package/types/lib/components/metadata-editor-fields/components/metadata-enum-field/metadata-enum-field.d.ts +3 -0
  182. package/types/lib/components/metadata-editor-fields/components/metadata-float-field/metadata-float-field.d.ts +3 -0
  183. package/types/lib/components/metadata-editor-fields/components/metadata-float-field/use-float-validation.d.ts +4 -0
  184. package/types/lib/components/metadata-editor-fields/components/metadata-multi-select-field/metadata-multi-select-field.d.ts +3 -0
  185. package/types/lib/components/metadata-editor-fields/components/metadata-string-field/metadata-string-field.d.ts +6 -0
  186. package/types/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/messages.d.ts +32 -0
  187. package/types/lib/components/metadata-editor-fields/components/update-mode-field-wrapper/update-mode-field-wrapper.d.ts +12 -0
  188. package/types/lib/components/metadata-editor-fields/editor-field-types.d.ts +8 -0
  189. package/types/lib/components/metadata-editor-fields/metadata-editor-fields.d.ts +3 -0
  190. package/types/lib/components/metadata-editor-fields/types.d.ts +12 -0
  191. package/types/lib/components/metadata-empty-state/messages.d.ts +53 -0
  192. package/types/lib/components/metadata-empty-state/metadata-empty-state.d.ts +3 -0
  193. package/types/lib/components/metadata-instance-editor/index.d.ts +4 -0
  194. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance/custom-instance.d.ts +2 -0
  195. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance/messages.d.ts +18 -0
  196. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance/types.d.ts +3 -0
  197. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/custom-instance-new-field.d.ts +2 -0
  198. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/messages.d.ts +48 -0
  199. package/types/lib/components/metadata-instance-editor/subcomponents/custom-instance-new-field/types.d.ts +5 -0
  200. package/types/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/delete-confirmation-modal.d.ts +2 -0
  201. package/types/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.d.ts +43 -0
  202. package/types/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/types.d.ts +6 -0
  203. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/messages.d.ts +0 -0
  204. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form.d.ts +2 -0
  205. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/types.d.ts +26 -0
  206. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/utils.d.ts +12 -0
  207. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/messages.d.ts +23 -0
  208. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/metadata-instance-form-footer.d.ts +2 -0
  209. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-footer/types.d.ts +5 -0
  210. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.d.ts +18 -0
  211. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/metadata-instance-form-header.d.ts +2 -0
  212. package/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/types.d.ts +6 -0
  213. package/types/lib/components/metadata-instance-editor/types.d.ts +6 -0
  214. package/types/lib/components/metadata-instance-list/index.d.ts +2 -0
  215. package/types/lib/components/metadata-instance-list/metadata-instance-list.d.ts +2 -0
  216. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance/metadata-instance.d.ts +2 -0
  217. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance/types.d.ts +7 -0
  218. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-content/metadata-instance-content.d.ts +2 -0
  219. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-content/types.d.ts +5 -0
  220. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/convertDate.d.ts +30 -0
  221. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/metadata-instance-entry.d.ts +2 -0
  222. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-entry/types.d.ts +8 -0
  223. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/messages.d.ts +13 -0
  224. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/metadata-instance-footer.d.ts +2 -0
  225. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-footer/types.d.ts +5 -0
  226. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.d.ts +8 -0
  227. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/metadata-instance-header.d.ts +4 -0
  228. package/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/types.d.ts +7 -0
  229. package/types/lib/components/metadata-instance-list/types.d.ts +7 -0
  230. package/types/lib/components/metadata-taxonomy-field/combobox-with-api-pagination.d.ts +15 -0
  231. package/types/lib/components/metadata-taxonomy-field/index.d.ts +2 -0
  232. package/types/lib/components/metadata-taxonomy-field/messages.d.ts +38 -0
  233. package/types/lib/components/metadata-taxonomy-field/request.d.ts +7 -0
  234. package/types/lib/components/metadata-taxonomy-field/single-level-taxonomy-field.d.ts +5 -0
  235. package/types/lib/components/metadata-taxonomy-field/types.d.ts +41 -0
  236. package/types/lib/components/metadata-taxonomy-field/use-async-list.d.ts +63 -0
  237. package/types/lib/components/metadata-taxonomy-field/utils/use-intersection-observer.d.ts +28 -0
  238. package/types/lib/components/unsaved-changes-modal/index.d.ts +1 -0
  239. package/types/lib/components/unsaved-changes-modal/messages.d.ts +28 -0
  240. package/types/lib/components/unsaved-changes-modal/types.d.ts +19 -0
  241. package/types/lib/components/unsaved-changes-modal/unsaved-changes-modal.d.ts +2 -0
  242. package/types/lib/components/unsaved-changes-modal/utils.d.ts +1 -0
  243. package/types/lib/constants.d.ts +1 -0
  244. package/types/lib/defaults.d.ts +13 -0
  245. package/types/lib/mappers.d.ts +16 -0
  246. package/types/lib/messages.d.ts +113 -0
  247. package/types/lib/metadata-editor.d.ts +4 -0
  248. package/types/lib/test-utils/formik-wrapper.d.ts +11 -0
  249. package/types/lib/test-utils/index.d.ts +3 -0
  250. package/types/lib/test-utils/sample-data.d.ts +24 -0
  251. package/types/lib/test-utils/test-utils.d.ts +3 -0
  252. package/types/lib/types.d.ts +63 -0
@@ -0,0 +1,51 @@
1
+ import "../../../../../../styles/metadata-instance.css";
2
+ import { useState as f } from "react";
3
+ import { Card as h, Divider as m } from "@box/blueprint-web";
4
+ import { MetadataInstanceHeader as E } from "../metadata-instance-header/metadata-instance-header.js";
5
+ import { MetadataInstanceContent as D } from "../metadata-instance-content/metadata-instance-content.js";
6
+ import { MetadataInstanceFooter as V } from "../metadata-instance-footer/metadata-instance-footer.js";
7
+ import { MetadataEmptyState as b } from "../../../metadata-empty-state/metadata-empty-state.js";
8
+ import { jsxs as s, jsx as t, Fragment as l } from "react/jsx-runtime";
9
+ const H = "_topDivider_tzhlb_1", S = "_bottomDivider_tzhlb_5", n = {
10
+ topDivider: H,
11
+ bottomDivider: S
12
+ }, w = ({
13
+ isAiSuggestionsFeatureEnabled: d,
14
+ onEdit: p,
15
+ onEditWithAutofill: u,
16
+ templateInstance: e
17
+ }) => {
18
+ const o = e.fields, y = o.every((r) => !r.value), c = o.some((r) => !r.value), v = o.length > 0, [i, a] = f(!0);
19
+ return /* @__PURE__ */ s(h, {
20
+ children: [/* @__PURE__ */ t(E, {
21
+ canEdit: !0,
22
+ isAiSuggestionsFeatureEnabled: d,
23
+ onAutofill: u,
24
+ onEdit: p,
25
+ templateName: e == null ? void 0 : e.displayName
26
+ }), /* @__PURE__ */ t(m, {
27
+ className: n.topDivider
28
+ }), i && y ? /* @__PURE__ */ t(b, {
29
+ isAnyEmptyValueHidden: v,
30
+ isBoxAiSuggestionsFeatureEnabled: d,
31
+ level: "instance",
32
+ onShowEmptyValues: () => a(!1)
33
+ }) : /* @__PURE__ */ s(l, {
34
+ children: [/* @__PURE__ */ t(D, {
35
+ shouldHideEmptyValues: i,
36
+ templateInstance: e
37
+ }), c && /* @__PURE__ */ s(l, {
38
+ children: [/* @__PURE__ */ t(m, {
39
+ className: n.bottomDivider
40
+ }), /* @__PURE__ */ t(V, {
41
+ isAnyEmptyValueHidden: i,
42
+ onHideEmptyValues: () => a(!0),
43
+ onShowEmptyValues: () => a(!1)
44
+ })]
45
+ })]
46
+ })]
47
+ });
48
+ };
49
+ export {
50
+ w as MetadataInstance
51
+ };
@@ -0,0 +1,26 @@
1
+ import "../../../../../../styles/metadata-instance-content.css";
2
+ import { MetadataInstanceEntry as o } from "../metadata-instance-entry/metadata-instance-entry.js";
3
+ import { jsx as a } from "react/jsx-runtime";
4
+ const c = "_metadataInstanceContent_1a9zf_1", m = {
5
+ metadataInstanceContent: c
6
+ }, i = ({
7
+ shouldHideEmptyValues: n,
8
+ templateInstance: e
9
+ }) => {
10
+ const {
11
+ fields: s = []
12
+ } = e;
13
+ return /* @__PURE__ */ a("div", {
14
+ className: m.metadataInstanceContent,
15
+ children: s.filter((t) => !t.hidden).map((t) => /* @__PURE__ */ a(o, {
16
+ description: t.description,
17
+ name: t.displayName || t.key,
18
+ shouldHideEmptyValues: n,
19
+ type: t.type,
20
+ value: t.value
21
+ }, t.id))
22
+ });
23
+ };
24
+ export {
25
+ i as MetadataInstanceContent
26
+ };
@@ -0,0 +1,25 @@
1
+ const O = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?/, E = /(Z$)/, T = /(?:[+-](?:([0-2]\d$)|([0-2]\d(?:00|30)$)|([0-2]\d:(?:00|30)$)))/, I = new RegExp(`^(${O.source})?(${E.source}|${T.source})$`), _ = 1, M = 2, S = 3, i = 4, r = 5, f = 6, D = 7;
2
+ function u(n) {
3
+ if (I.test(n)) {
4
+ const t = n.split(I);
5
+ let e = t[_];
6
+ const o = t[M], s = t[S];
7
+ if (o || (e += ".000"), t[i])
8
+ return n;
9
+ if (t[r])
10
+ return `${e + s}:00`;
11
+ if (t[f])
12
+ return `${e + s.substring(0, 3)}:${s.substring(3)}`;
13
+ if (t[D])
14
+ return n;
15
+ }
16
+ return n;
17
+ }
18
+ function N(n) {
19
+ const t = new Date(u(n)), e = t.getTime(), s = t.getTimezoneOffset() * 6e4, c = e + s;
20
+ return new Date(c);
21
+ }
22
+ export {
23
+ N as convertISOStringToUTCDate,
24
+ u as convertISOStringtoRFC3339String
25
+ };
@@ -0,0 +1,56 @@
1
+ import "../../../../../../styles/metadata-instance-entry.css";
2
+ import { Text as o } from "@box/blueprint-web";
3
+ import { FormattedDate as d } from "react-intl";
4
+ import { convertISOStringToUTCDate as l } from "./convertDate.js";
5
+ import y from "../../../interactive-text/interactive-text.js";
6
+ import { jsxs as f, jsx as a } from "react/jsx-runtime";
7
+ const I = "_metadataInstanceEntry_1qhk8_1", u = "_metadataInstanceEntryInteractiveLabel_1qhk8_7", c = {
8
+ metadataInstanceEntry: I,
9
+ metadataInstanceEntryInteractiveLabel: u
10
+ }, _ = ({
11
+ description: r,
12
+ name: e,
13
+ shouldHideEmptyValues: i,
14
+ type: m,
15
+ value: t
16
+ }) => {
17
+ const n = (() => {
18
+ if (typeof t == "number")
19
+ return t.toString();
20
+ if (!t)
21
+ return null;
22
+ if (Array.isArray(t))
23
+ return t.join(", ");
24
+ if (m === "date" && typeof t == "string") {
25
+ const s = l(t);
26
+ return /* @__PURE__ */ a(d, {
27
+ day: "numeric",
28
+ month: "long",
29
+ value: s,
30
+ year: "numeric"
31
+ });
32
+ }
33
+ return t;
34
+ })();
35
+ return i && !n ? null : /* @__PURE__ */ f("div", {
36
+ className: c.metadataInstanceEntry,
37
+ children: [/* @__PURE__ */ a(o, {
38
+ as: "p",
39
+ color: "textOnLightSecondary",
40
+ variant: "bodyDefaultBold",
41
+ children: r ? /* @__PURE__ */ a(y, {
42
+ className: c.metadataInstanceEntryInteractiveLabel,
43
+ color: "textOnLightSecondary",
44
+ tooltipText: r,
45
+ variant: "bodyDefaultBold",
46
+ children: e
47
+ }) : e
48
+ }), n && /* @__PURE__ */ a(o, {
49
+ as: "p",
50
+ children: n
51
+ })]
52
+ });
53
+ };
54
+ export {
55
+ _ as MetadataInstanceEntry
56
+ };
@@ -0,0 +1,14 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const t = e({
3
+ showEmptyValuesCTA: {
4
+ id: "metadataEditor.viewInstance.metadataInstanceFooter.showEmptyValuesCTA",
5
+ defaultMessage: "Show empty values"
6
+ },
7
+ hideEmptyValuesCTA: {
8
+ id: "metadataEditor.viewInstance.metadataInstanceFooter.hideEmptyValuesCTA",
9
+ defaultMessage: "Hide empty values"
10
+ }
11
+ });
12
+ export {
13
+ t as default
14
+ };
@@ -0,0 +1,30 @@
1
+ import "../../../../../../styles/metadata-instance-footer.css";
2
+ import { TextButton as e } from "@box/blueprint-web";
3
+ import { useIntl as c } from "react-intl";
4
+ import s from "./messages.js";
5
+ import { jsx as t } from "react/jsx-runtime";
6
+ const i = "_metadataInstanceFooter_6auqo_1", l = "_button_6auqo_5", o = {
7
+ metadataInstanceFooter: i,
8
+ button: l
9
+ }, _ = ({
10
+ isAnyEmptyValueHidden: n,
11
+ onHideEmptyValues: r,
12
+ onShowEmptyValues: m
13
+ }) => {
14
+ const a = c();
15
+ return /* @__PURE__ */ t("div", {
16
+ className: o.metadataInstanceFooter,
17
+ children: n ? /* @__PURE__ */ t(e, {
18
+ className: o.button,
19
+ onClick: m,
20
+ children: a.formatMessage(s.showEmptyValuesCTA)
21
+ }) : /* @__PURE__ */ t(e, {
22
+ className: o.button,
23
+ onClick: r,
24
+ children: a.formatMessage(s.hideEmptyValuesCTA)
25
+ })
26
+ });
27
+ };
28
+ export {
29
+ _ as MetadataInstanceFooter
30
+ };
@@ -0,0 +1,10 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ const t = e({
3
+ customInstanceTitle: {
4
+ id: "metadataEditor.viewInstance.metadataInstanceHeader.customMetadataTitle",
5
+ defaultMessage: "Custom Metadata"
6
+ }
7
+ });
8
+ export {
9
+ t as default
10
+ };
@@ -0,0 +1,46 @@
1
+ import "../../../../../../styles/metadata-instance-header.css";
2
+ import { Text as u, IconButton as a } from "@box/blueprint-web";
3
+ import { Pencil as b } from "@box/blueprint-web-assets/icons/Line";
4
+ import { BoxAiLogo as B } from "@box/blueprint-web-assets/icons/Logo";
5
+ import { useIntl as f } from "react-intl";
6
+ import I from "./messages.js";
7
+ import { jsxs as e, jsx as t } from "react/jsx-runtime";
8
+ const _ = "_metadataInstanceHeader_1vbbg_1", g = "_iconButtonsContainer_1vbbg_7", p = "_title_1vbbg_15", n = {
9
+ metadataInstanceHeader: _,
10
+ iconButtonsContainer: g,
11
+ title: p
12
+ }, v = "Autofill with Box AI", h = "Edit", k = ({
13
+ canEdit: i,
14
+ isAiSuggestionsFeatureEnabled: s,
15
+ onEdit: r,
16
+ onAutofill: c,
17
+ templateName: o
18
+ }) => {
19
+ const l = f(), m = o || l.formatMessage(I.customInstanceTitle), d = s && o;
20
+ return /* @__PURE__ */ e("div", {
21
+ className: n.metadataInstanceHeader,
22
+ children: [/* @__PURE__ */ t(u, {
23
+ as: "h1",
24
+ className: n.title,
25
+ variant: "titleMedium",
26
+ children: m
27
+ }), i && /* @__PURE__ */ e("div", {
28
+ className: n.iconButtonsContainer,
29
+ children: [d && /* @__PURE__ */ t(a, {
30
+ "aria-label": v,
31
+ icon: B,
32
+ onClick: c,
33
+ variant: "icon-logo"
34
+ }), /* @__PURE__ */ t(a, {
35
+ "aria-label": h,
36
+ icon: b,
37
+ onClick: r
38
+ })]
39
+ })]
40
+ });
41
+ };
42
+ export {
43
+ k as MetadataInstanceHeader,
44
+ v as autofillButtonAriaLabel,
45
+ h as editButtonAriaLabel
46
+ };
@@ -0,0 +1,188 @@
1
+ import "../../../../styles/combobox-with-api-pagination.css";
2
+ import { ComboboxItemValue as q } from "@ariakit/react";
3
+ import { Combobox as u, LoadingIndicator as H, InlineNotice as J, Text as K } from "@box/blueprint-web";
4
+ import { Search as Q, Loader as X } from "@box/blueprint-web-assets/icons/Fill";
5
+ import { IconIconOnLightSecondary as Y, Size6 as C, Size1 as Z } from "@box/blueprint-web-assets/tokens/tokens";
6
+ import { useRef as I, useCallback as $, useState as oo, useMemo as y, useEffect as M, forwardRef as eo } from "react";
7
+ import { useIntl as V, FormattedMessage as T } from "react-intl";
8
+ import i from "./messages.js";
9
+ import { useAsyncList as to } from "./use-async-list.js";
10
+ import { useTrackVisibility as ro } from "./utils/use-intersection-observer.js";
11
+ import { jsx as r, jsxs as N, Fragment as no } from "react/jsx-runtime";
12
+ const io = "_container_16dlc_1", so = "_highlightOptionText_16dlc_7", ao = "_option_16dlc_20", lo = "_errorComboboxOption_16dlc_24", co = "_errorComboboxOptionText_16dlc_29", d = {
13
+ container: io,
14
+ highlightOptionText: so,
15
+ option: ao,
16
+ errorComboboxOption: lo,
17
+ errorComboboxOptionText: co
18
+ }, S = /* @__PURE__ */ eo(({
19
+ onTryAgain: p
20
+ }, m) => {
21
+ const {
22
+ formatMessage: h
23
+ } = V();
24
+ return /* @__PURE__ */ N(no, {
25
+ children: [/* @__PURE__ */ r(J, {
26
+ variant: "error",
27
+ variantIconAriaLabel: h(i.loadingResultsErrorIconLabel),
28
+ children: /* @__PURE__ */ r(T, {
29
+ ...i.loadingResultsErrorMessage
30
+ })
31
+ }), /* @__PURE__ */ r(u.Option, {
32
+ ref: m,
33
+ className: d.errorComboboxOption,
34
+ onClick: p,
35
+ children: /* @__PURE__ */ N(K, {
36
+ as: "span",
37
+ className: d.errorComboboxOptionText,
38
+ color: "textOnLightLink",
39
+ variant: "bodyDefaultBold",
40
+ children: [/* @__PURE__ */ r(T, {
41
+ ...i.loadingResultsErrorAction
42
+ }), /* @__PURE__ */ r(X, {
43
+ color: "currentColor",
44
+ height: "12px",
45
+ width: "12px"
46
+ })]
47
+ })
48
+ })]
49
+ });
50
+ }), _ = "__LOADING__", R = "__LOADING_ERROR__", uo = "0px 0px 20px 0px", po = /* @__PURE__ */ r(Q, {
51
+ color: Y,
52
+ height: C,
53
+ role: "presentation",
54
+ style: {
55
+ padding: Z,
56
+ boxSizing: "border-box"
57
+ },
58
+ width: C
59
+ }), Eo = (p) => {
60
+ const {
61
+ defaultFetcher: m,
62
+ searchFetcher: h,
63
+ onInputValueChange: f,
64
+ value: D,
65
+ noResultMessage: F,
66
+ loadingAriaLabel: k,
67
+ multiselect: g = !1,
68
+ ...P
69
+ } = p, {
70
+ formatMessage: a
71
+ } = V(), b = I(null), o = to({
72
+ async load({
73
+ marker: t,
74
+ searchInput: e,
75
+ signal: v
76
+ }) {
77
+ const c = await (e === "" ? m : h)({
78
+ signal: v,
79
+ marker: t,
80
+ searchInput: e
81
+ });
82
+ return {
83
+ items: c.options,
84
+ marker: c.marker
85
+ };
86
+ }
87
+ }), A = I(!1), w = $(() => {
88
+ A.current || (o.reload(), A.current = !0);
89
+ }, []), [n, L] = oo(D), x = y(() => Array.isArray(n) ? n.filter((t) => !o.items.some((e) => e.value === t.value)) : [], [n, o.items]), B = (t) => {
90
+ const {
91
+ value: e,
92
+ level: v,
93
+ ...O
94
+ } = t;
95
+ if (e === _)
96
+ return o.hasNextPage ? /* @__PURE__ */ r(u.Option, {
97
+ ...O,
98
+ ref: W,
99
+ disabled: !0,
100
+ value: e,
101
+ children: /* @__PURE__ */ r(H, {
102
+ "aria-label": a(i.loadingMoreAriaLabel),
103
+ style: {
104
+ position: "unset"
105
+ }
106
+ })
107
+ }) : null;
108
+ if (e === R && o.hasError && !o.isEmpty)
109
+ return /* @__PURE__ */ r(S, {
110
+ onTryAgain: () => {
111
+ var s;
112
+ o.loadMore(), (s = b.current) == null || s.focus();
113
+ }
114
+ });
115
+ if (x.some((s) => s.value === e))
116
+ return null;
117
+ const c = () => n ? Array.isArray(n) ? n.some((s) => s.value === e) : n.value === e : !1;
118
+ return /* @__PURE__ */ r(u.Option, {
119
+ ...O,
120
+ className: d.option,
121
+ disabled: c(),
122
+ value: e,
123
+ children: /* @__PURE__ */ r(q, {
124
+ className: d.highlightOptionText,
125
+ value: e
126
+ })
127
+ });
128
+ }, z = (t) => {
129
+ f == null || f(t), o.search(t);
130
+ }, G = () => {
131
+ var t;
132
+ o.reload(), (t = b.current) == null || t.focus();
133
+ };
134
+ let l;
135
+ o.hasError && !o.isLoading ? l = /* @__PURE__ */ r(S, {
136
+ onTryAgain: G
137
+ }) : o.isEmpty && !o.isLoading ? l = F || a(i.noResults) : l = void 0;
138
+ const [W, {
139
+ rootRef: j,
140
+ isVisible: E
141
+ }] = ro({
142
+ rootMargin: uo
143
+ });
144
+ M(() => {
145
+ o.searchInput === "" && !g && L(void 0);
146
+ }, [o.searchInput, g]), M(() => {
147
+ if (!(E && o.hasNextPage))
148
+ return;
149
+ const e = setTimeout(() => {
150
+ o.loadMore();
151
+ }, 100);
152
+ return () => {
153
+ clearTimeout(e);
154
+ };
155
+ }, [E]);
156
+ const U = y(() => {
157
+ const t = o.hasNextPage ? {
158
+ id: _,
159
+ value: _
160
+ } : null, e = !t && o.hasError && !o.isEmpty ? {
161
+ id: R,
162
+ value: R
163
+ } : null;
164
+ return [...o.items, ...x, t, e].filter(Boolean);
165
+ }, [o.hasNextPage, o.hasError, o.isEmpty, o.items, x]);
166
+ return /* @__PURE__ */ r(u, {
167
+ as: "input",
168
+ ...P,
169
+ ref: b,
170
+ clearButtonAriaLabel: a(i.clearButtonAriaLabel),
171
+ endComboboxIcon: po,
172
+ focusLoop: !1,
173
+ getPopoverRef: j,
174
+ loading: o.isReloading,
175
+ loadingAriaLabel: k || a(i.loadingAriaLabel),
176
+ multiselect: g,
177
+ noResultMessage: l,
178
+ onFocus: w,
179
+ onInputValueChange: z,
180
+ onValueChange: L,
181
+ options: U,
182
+ renderOption: B,
183
+ value: n
184
+ });
185
+ };
186
+ export {
187
+ Eo as ComboboxWithApiPagination
188
+ };
@@ -0,0 +1,4 @@
1
+ import { SingleLevelTaxonomyField as l } from "./single-level-taxonomy-field.js";
2
+ export {
3
+ l as SingleLevelTaxonomyField
4
+ };
@@ -0,0 +1,34 @@
1
+ import { defineMessages as o } from "react-intl";
2
+ const e = o({
3
+ loadingResultsErrorAction: {
4
+ id: "comboboxWithApiPagination.errorAction",
5
+ defaultMessage: "Reload"
6
+ },
7
+ loadingResultsErrorMessage: {
8
+ id: "comboboxWithApiPagination.errorMessage",
9
+ defaultMessage: "Failed to load options"
10
+ },
11
+ loadingResultsErrorIconLabel: {
12
+ id: "comboboxWithApiPagination.errorIconLabel",
13
+ defaultMessage: "Error"
14
+ },
15
+ loadingAriaLabel: {
16
+ id: "comboboxWithApiPagination.loadingAriaLabel",
17
+ defaultMessage: "Loading..."
18
+ },
19
+ loadingMoreAriaLabel: {
20
+ id: "comboboxWithApiPagination.loadingMoreAriaLabel",
21
+ defaultMessage: "Loading more..."
22
+ },
23
+ noResults: {
24
+ id: "comboboxWithApiPagination.noResults",
25
+ defaultMessage: "No results found"
26
+ },
27
+ clearButtonAriaLabel: {
28
+ id: "comboboxWithApiPagination.clearButtonAriaLabel",
29
+ defaultMessage: "Clear input and selection"
30
+ }
31
+ });
32
+ export {
33
+ e as default
34
+ };
@@ -0,0 +1,6 @@
1
+ let C = /* @__PURE__ */ function(E) {
2
+ return E.NOT_STARTED = "NOT_STARTED", E.IN_PROGRESS = "IN_PROGRESS", E.ERROR = "ERROR", E.SUCCESS = "SUCCESS", E.CANCELLED = "CANCELLED", E;
3
+ }({});
4
+ export {
5
+ C as RequestStates
6
+ };
@@ -0,0 +1,19 @@
1
+ import { ComboboxWithApiPagination as n } from "./combobox-with-api-pagination.js";
2
+ import { jsx as a } from "react/jsx-runtime";
3
+ const c = (e) => {
4
+ const {
5
+ label: o,
6
+ defaultFetcher: t,
7
+ searchFetcher: r,
8
+ ...i
9
+ } = e;
10
+ return /* @__PURE__ */ a(n, {
11
+ ...i,
12
+ defaultFetcher: t,
13
+ label: o,
14
+ searchFetcher: r
15
+ });
16
+ };
17
+ export {
18
+ c as SingleLevelTaxonomyField
19
+ };
@@ -0,0 +1,124 @@
1
+ import { useReducer as I } from "react";
2
+ import { RequestStates as u } from "./request.js";
3
+ var s = /* @__PURE__ */ function(r) {
4
+ return r.LOAD_MORE = "LOAD_MORE", r.RELOAD = "RELOAD", r.SEARCH = "SEARCH", r.SET_ERROR = "SET_ERROR", r.SET_LOADING = "SET_LOADING", r;
5
+ }(s || {});
6
+ function i(r, e) {
7
+ switch (e.type) {
8
+ case s.LOAD_MORE:
9
+ return {
10
+ ...r,
11
+ abortController: e.abortController,
12
+ error: null,
13
+ items: [...r.items, ...e.items],
14
+ marker: e.marker,
15
+ requestState: u.SUCCESS
16
+ };
17
+ case s.RELOAD:
18
+ return e.abortController !== r.abortController ? r : {
19
+ ...r,
20
+ abortController: null,
21
+ error: null,
22
+ items: [...e.items],
23
+ marker: e.marker,
24
+ requestState: u.SUCCESS,
25
+ searchInput: ""
26
+ };
27
+ case s.SEARCH:
28
+ return {
29
+ ...r,
30
+ abortController: e.abortController,
31
+ error: null,
32
+ items: [...e.items],
33
+ marker: e.marker,
34
+ requestState: u.SUCCESS,
35
+ searchInput: e.searchInput ?? r.searchInput
36
+ };
37
+ case s.SET_ERROR:
38
+ return {
39
+ ...r,
40
+ items: s.LOAD_MORE ? r.items : [],
41
+ error: e.error,
42
+ requestState: u.ERROR
43
+ };
44
+ case s.SET_LOADING:
45
+ return {
46
+ ...r,
47
+ requestInitiator: e.requestInitiator,
48
+ requestState: u.IN_PROGRESS,
49
+ abortController: e.abortController
50
+ };
51
+ default:
52
+ throw new Error(`Invalid action type "${e.type}"`);
53
+ }
54
+ }
55
+ function C(r) {
56
+ const {
57
+ load: e
58
+ } = r, [t, l] = I(i, {
59
+ error: null,
60
+ items: [],
61
+ requestInitiator: null,
62
+ requestState: u.NOT_STARTED,
63
+ searchInput: ""
64
+ }), a = async (o, S) => {
65
+ var E;
66
+ const R = new AbortController();
67
+ try {
68
+ if (o.type === s.SEARCH && t.requestState === u.IN_PROGRESS && t.abortController.abort(), t.requestInitiator === s.LOAD_MORE && t.requestState === u.IN_PROGRESS && o.type === s.LOAD_MORE) {
69
+ (E = o.abortController) == null || E.abort();
70
+ return;
71
+ }
72
+ l({
73
+ type: s.SET_LOADING,
74
+ requestInitiator: o.type,
75
+ abortController: R
76
+ });
77
+ const n = await S({
78
+ items: t.items.slice(),
79
+ signal: R.signal,
80
+ marker: o.type === s.LOAD_MORE ? t.marker : null,
81
+ searchInput: o.searchInput ?? t.searchInput
82
+ }), O = n.searchInput ?? o.searchInput ?? t.searchInput;
83
+ l({
84
+ type: o.type,
85
+ ...n,
86
+ searchInput: O,
87
+ abortController: R
88
+ });
89
+ } catch (n) {
90
+ if ((n == null ? void 0 : n.name) === "AbortError")
91
+ return;
92
+ l({
93
+ type: s.SET_ERROR,
94
+ error: n,
95
+ abortController: R
96
+ });
97
+ }
98
+ };
99
+ return {
100
+ hasError: t.requestState === u.ERROR,
101
+ hasNextPage: t.requestState === u.ERROR ? !1 : t.marker != null,
102
+ isEmpty: t.items.length === 0,
103
+ isLoading: t.requestState === u.IN_PROGRESS,
104
+ isReloading: t.requestState === u.IN_PROGRESS && (t.requestInitiator === s.RELOAD || t.requestInitiator === s.SEARCH),
105
+ items: t.items,
106
+ loadMore: () => a({
107
+ type: s.LOAD_MORE
108
+ }, e),
109
+ reload: () => {
110
+ a({
111
+ type: s.RELOAD
112
+ }, e);
113
+ },
114
+ requestInitiator: t.requestInitiator,
115
+ searchInput: t.searchInput,
116
+ search: (o) => a({
117
+ type: s.SEARCH,
118
+ searchInput: o
119
+ }, e)
120
+ };
121
+ }
122
+ export {
123
+ C as useAsyncList
124
+ };