@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,2 @@
1
+ import { type MetadataInstanceEntryProps } from './types';
2
+ export declare const MetadataInstanceEntry: ({ description, name, shouldHideEmptyValues, type, value, }: MetadataInstanceEntryProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { type MetadataFieldValue, type MetadataTemplateFieldType } from '../../../../types';
2
+ export type MetadataInstanceEntryProps = {
3
+ name: string;
4
+ shouldHideEmptyValues: boolean;
5
+ type: MetadataTemplateFieldType;
6
+ value?: MetadataFieldValue;
7
+ description?: string;
8
+ };
@@ -0,0 +1,13 @@
1
+ declare const messages: {
2
+ showEmptyValuesCTA: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ hideEmptyValuesCTA: {
8
+ defaultMessage: string;
9
+ description: string;
10
+ id: string;
11
+ };
12
+ };
13
+ export default messages;
@@ -0,0 +1,2 @@
1
+ import { type MetadataInstanceFooterProps } from './types';
2
+ export declare const MetadataInstanceFooter: ({ isAnyEmptyValueHidden, onHideEmptyValues, onShowEmptyValues, }: MetadataInstanceFooterProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export type MetadataInstanceFooterProps = {
2
+ isAnyEmptyValueHidden: boolean;
3
+ onHideEmptyValues: () => void;
4
+ onShowEmptyValues: () => void;
5
+ };
@@ -0,0 +1,8 @@
1
+ declare const messages: {
2
+ customInstanceTitle: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ };
8
+ export default messages;
@@ -0,0 +1,4 @@
1
+ import { type MetadataInstanceHeaderProps } from './types';
2
+ export declare const autofillButtonAriaLabel = "Autofill with Box AI";
3
+ export declare const editButtonAriaLabel = "Edit";
4
+ export declare const MetadataInstanceHeader: ({ canEdit, isAiSuggestionsFeatureEnabled, onEdit, onAutofill, templateName, }: MetadataInstanceHeaderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export type MetadataInstanceHeaderProps = {
2
+ canEdit: boolean;
3
+ isAiSuggestionsFeatureEnabled: boolean;
4
+ onEdit: () => void;
5
+ onAutofill: () => void;
6
+ templateName?: string;
7
+ };
@@ -0,0 +1,7 @@
1
+ import { type MetadataTemplateInstance } from '../../types';
2
+ export type MetadataInstanceListProps = {
3
+ isAiSuggestionsFeatureEnabled: boolean;
4
+ onEdit: () => void;
5
+ onEditWithAutofill: () => void;
6
+ templateInstances: MetadataTemplateInstance[];
7
+ };
@@ -0,0 +1,15 @@
1
+ import { type ReactElement } from 'react';
2
+ import { type PaginationQueryInput, type TaxonomyComboboxOption, type TaxonomyFetcherResponse } from './types';
3
+ interface ComboboxWithApiPaginationProps {
4
+ defaultFetcher: (input: PaginationQueryInput) => Promise<TaxonomyFetcherResponse>;
5
+ searchFetcher?: (input: PaginationQueryInput) => Promise<TaxonomyFetcherResponse>;
6
+ includeTextInputOption?: boolean;
7
+ noResultMessage?: ReactElement | string;
8
+ onInputValueChange?: (inputValue: string) => void;
9
+ value: TaxonomyComboboxOption | TaxonomyComboboxOption[];
10
+ label: string;
11
+ loadingAriaLabel?: string;
12
+ multiselect?: boolean;
13
+ }
14
+ export declare const ComboboxWithApiPagination: (props: ComboboxWithApiPaginationProps) => import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,2 @@
1
+ export { SingleLevelTaxonomyField } from './single-level-taxonomy-field';
2
+ export type { SingleLevelTaxonomyFieldProps } from './types';
@@ -0,0 +1,38 @@
1
+ declare const messages: {
2
+ loadingResultsErrorAction: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ loadingResultsErrorMessage: {
8
+ defaultMessage: string;
9
+ description: string;
10
+ id: string;
11
+ };
12
+ loadingResultsErrorIconLabel: {
13
+ defaultMessage: string;
14
+ description: string;
15
+ id: string;
16
+ };
17
+ loadingAriaLabel: {
18
+ defaultMessage: string;
19
+ description: string;
20
+ id: string;
21
+ };
22
+ loadingMoreAriaLabel: {
23
+ defaultMessage: string;
24
+ description: string;
25
+ id: string;
26
+ };
27
+ noResults: {
28
+ defaultMessage: string;
29
+ description: string;
30
+ id: string;
31
+ };
32
+ clearButtonAriaLabel: {
33
+ defaultMessage: string;
34
+ description: string;
35
+ id: string;
36
+ };
37
+ };
38
+ export default messages;
@@ -0,0 +1,7 @@
1
+ export declare enum RequestStates {
2
+ NOT_STARTED = "NOT_STARTED",
3
+ IN_PROGRESS = "IN_PROGRESS",
4
+ ERROR = "ERROR",
5
+ SUCCESS = "SUCCESS",
6
+ CANCELLED = "CANCELLED"
7
+ }
@@ -0,0 +1,5 @@
1
+ import { type SingleLevelTaxonomyFieldProps } from './types';
2
+ /**
3
+ * The Single Level Taxonomy Field component
4
+ */
5
+ export declare const SingleLevelTaxonomyField: (props: SingleLevelTaxonomyFieldProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,41 @@
1
+ import { type ReactElement } from 'react';
2
+ export interface PaginationQueryInput {
3
+ marker?: string;
4
+ searchInput?: string;
5
+ /**
6
+ * Abort signal that will be used to cancel the request in your fetching function
7
+ */
8
+ signal?: AbortSignal;
9
+ }
10
+ export interface TaxonomyResponseOption {
11
+ displayName: string;
12
+ id: string;
13
+ level?: number;
14
+ }
15
+ export interface TaxonomyResponse {
16
+ marker?: string;
17
+ options: TaxonomyResponseOption[];
18
+ }
19
+ export interface TaxonomyFetcherResponse {
20
+ marker?: string;
21
+ options: TaxonomyComboboxOption[];
22
+ }
23
+ export interface TaxonomyComboboxOption {
24
+ id: string;
25
+ value: string;
26
+ level?: number;
27
+ parentId?: string;
28
+ disabled?: boolean;
29
+ }
30
+ export interface SingleLevelTaxonomyFieldProps {
31
+ defaultOpen?: boolean;
32
+ experimentalVirtualization?: boolean;
33
+ multiselect?: boolean;
34
+ noResultMessage?: ReactElement | string;
35
+ portalElement?: HTMLElement | (() => HTMLElement);
36
+ label: string;
37
+ value: TaxonomyComboboxOption | TaxonomyComboboxOption[];
38
+ onValueChange: (value: string) => void;
39
+ defaultFetcher: (input: PaginationQueryInput) => Promise<TaxonomyFetcherResponse>;
40
+ searchFetcher: (input: PaginationQueryInput) => Promise<TaxonomyFetcherResponse>;
41
+ }
@@ -0,0 +1,63 @@
1
+ import { RequestStates } from './request';
2
+ interface AsyncListOptions<T, C> {
3
+ /** A function that loads the data for the items in the list. */
4
+ load: AsyncListLoadFunction<T, C>;
5
+ }
6
+ type AsyncListLoadFunction<T, C> = (state: AsyncListLoadOptions<T, C>) => AsyncListStateUpdate<T, C> | Promise<AsyncListStateUpdate<T, C>>;
7
+ interface AsyncListLoadOptions<T, C> {
8
+ /** The items currently in the list. */
9
+ items: T[];
10
+ /** The pagination marker returned from the last page load. */
11
+ marker?: C;
12
+ /** The current request state of the list. */
13
+ requestState?: RequestStates;
14
+ /** The current filter text used to perform server side filtering. */
15
+ searchInput?: string;
16
+ /** An abort signal used to notify the load function that the request has been aborted. */
17
+ signal: AbortSignal;
18
+ }
19
+ interface AsyncListStateUpdate<T, C> {
20
+ /** The new items to append to the list. */
21
+ items: Iterable<T>;
22
+ /** The pagination marker to be used for the next page load. */
23
+ marker?: C;
24
+ /** The updated filter text for the list. */
25
+ searchInput?: string;
26
+ }
27
+ declare enum ActionTypes {
28
+ LOAD_MORE = "LOAD_MORE",
29
+ RELOAD = "RELOAD",
30
+ SEARCH = "SEARCH",
31
+ SET_ERROR = "SET_ERROR",
32
+ SET_LOADING = "SET_LOADING"
33
+ }
34
+ interface AsyncListData<T> {
35
+ /** If loading data failed, then this contains the error that occurred. */
36
+ hasError: boolean;
37
+ /** Whether marker is expecting a next page. */
38
+ hasNextPage: boolean;
39
+ /** Whether data is populated. */
40
+ isEmpty: boolean;
41
+ /** Whether request is in a loading state. */
42
+ isLoading: boolean;
43
+ /** Wether all options are hidden and a loading indicator is all that appears */
44
+ isReloading: boolean;
45
+ /** The items in the list. */
46
+ items: T[];
47
+ /** Loads the next page of data in the list. */
48
+ loadMore(): void;
49
+ /** Reloads the data in the list. */
50
+ reload(): void;
51
+ /** Return the last action used in the reducer. */
52
+ requestInitiator: ActionTypes;
53
+ /** The current filter text. */
54
+ searchInput: string;
55
+ /** Sets the filter text. */
56
+ search(searchInput: string): void;
57
+ }
58
+ /**
59
+ * Manages state for an immutable async loaded list data structure, and provides convenience methods to
60
+ * update the data over time. Manages request states and pagination.
61
+ */
62
+ export declare function useAsyncList<T, C = string>(options: AsyncListOptions<T, C>): AsyncListData<T>;
63
+ export {};
@@ -0,0 +1,28 @@
1
+ export type IntersectionObserverHookArgs = Omit<IntersectionObserverInit, 'root'>;
2
+ export type IntersectionObserverHookRefCallbackNode = Element | null;
3
+ export type IntersectionObserverHookRefCallback = (node: IntersectionObserverHookRefCallbackNode) => void;
4
+ export type IntersectionObserverHookRootRefCallbackNode = IntersectionObserverInit['root'];
5
+ export type IntersectionObserverHookRootRefCallback = (node: IntersectionObserverHookRootRefCallbackNode) => void;
6
+ export type IntersectionObserverHookResult = [
7
+ IntersectionObserverHookRefCallback,
8
+ {
9
+ entry: IntersectionObserverEntry | undefined;
10
+ rootRef: IntersectionObserverHookRootRefCallback;
11
+ }
12
+ ];
13
+ export interface CachedIntersectionObserver {
14
+ observe: (node: Element, callback: (entry: IntersectionObserverEntry) => void) => void;
15
+ unobserve: (node: Element) => void;
16
+ }
17
+ export declare function createObserverCache(): {
18
+ getObserver: ({ root, rootMargin, threshold }: IntersectionObserverInit) => CachedIntersectionObserver;
19
+ };
20
+ export type TrackVisibilityHookArgs = IntersectionObserverHookArgs;
21
+ export type TrackVisibilityHookResult = [
22
+ IntersectionObserverHookResult[0],
23
+ IntersectionObserverHookResult[1] & {
24
+ isVisible: boolean;
25
+ wasEverVisible: boolean;
26
+ }
27
+ ];
28
+ export declare function useTrackVisibility(args?: IntersectionObserverHookArgs): TrackVisibilityHookResult;
@@ -0,0 +1 @@
1
+ export { UnsavedChangesModal } from './unsaved-changes-modal';
@@ -0,0 +1,28 @@
1
+ declare const _default: {
2
+ unsavedChangesModalHeader: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ unsavedChangesModalBody: {
8
+ defaultMessage: string;
9
+ description: string;
10
+ id: string;
11
+ };
12
+ unsavedChangesModalDismissCTA: {
13
+ defaultMessage: string;
14
+ description: string;
15
+ id: string;
16
+ };
17
+ unsavedChangesModalSaveAndContinueCTA: {
18
+ defaultMessage: string;
19
+ description: string;
20
+ id: string;
21
+ };
22
+ unsavedChangesModalCloseLabel: {
23
+ defaultMessage: string;
24
+ description: string;
25
+ id: string;
26
+ };
27
+ };
28
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import { type ModalProps } from '@box/blueprint-web';
2
+ export interface UnsavedChangesModalProps extends Pick<ModalProps, 'open' | 'defaultOpen'> {
3
+ /**
4
+ * Callback to be invoked when the user clicks the "Save and Continue" button.
5
+ *
6
+ * The modal will close automatically after this callback successfully completes.
7
+ * The callback can return either `void` for synchronous operations or a `Promise<void>` for
8
+ * asynchronous operations. If the callback throws an error or the returned promise rejects,
9
+ * the modal will not close allowing user to retry or dismiss the changes.
10
+ */
11
+ onSaveAndContinue?: () => void | Promise<void>;
12
+ /**
13
+ * Callback to be invoked when the user clicks the "Dismiss" button or the (X) button.
14
+ *
15
+ * This callback is expected to perform the dismissal action and does not need to handle
16
+ * closing the modal, as the modal will handle it.
17
+ */
18
+ onDismiss?: () => void;
19
+ }
@@ -0,0 +1,2 @@
1
+ import { type UnsavedChangesModalProps } from './types';
2
+ export declare function UnsavedChangesModal({ onSaveAndContinue, onDismiss, defaultOpen, open: propsOpen, }: UnsavedChangesModalProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function delay(ms: number): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const TEMPLATE_CUSTOM_PROPERTIES: "properties";
@@ -0,0 +1,13 @@
1
+ import { type MetadataFormFieldValue } from './types';
2
+ declare const defaultInitialValues: {
3
+ scope: string;
4
+ templateKey: string;
5
+ type: string;
6
+ id: string;
7
+ hidden: boolean;
8
+ fields: any[];
9
+ };
10
+ declare const defaultMetadataValueMap: {
11
+ [key: string]: MetadataFormFieldValue;
12
+ };
13
+ export { defaultInitialValues, defaultMetadataValueMap };
@@ -0,0 +1,16 @@
1
+ import { type MetadataTemplate } from './types';
2
+ declare const mapDataFromTemplate: (template: MetadataTemplate, withUpdateMode?: boolean) => {
3
+ scope: string;
4
+ templateKey: string;
5
+ type: string;
6
+ id: string;
7
+ hidden: boolean;
8
+ fields: import("./types").MetadataTemplateField[];
9
+ };
10
+ declare const mapTemplateOptionsFromTemplates: (templates: MetadataTemplate[]) => {
11
+ displayName: string;
12
+ id: string;
13
+ scope: string;
14
+ hidden: boolean;
15
+ }[];
16
+ export { mapDataFromTemplate, mapTemplateOptionsFromTemplates };
@@ -0,0 +1,113 @@
1
+ declare const messages: {
2
+ afterDateValidationError: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ beforeDateValidationError: {
8
+ defaultMessage: string;
9
+ description: string;
10
+ id: string;
11
+ };
12
+ clearSelectedDate: {
13
+ defaultMessage: string;
14
+ description: string;
15
+ id: string;
16
+ };
17
+ floatFieldInvalidValue: {
18
+ defaultMessage: string;
19
+ description: string;
20
+ id: string;
21
+ };
22
+ loading: {
23
+ defaultMessage: string;
24
+ description: string;
25
+ id: string;
26
+ };
27
+ multiselectPlaceholder: {
28
+ defaultMessage: string;
29
+ description: string;
30
+ id: string;
31
+ };
32
+ noTemplateAtributesError: {
33
+ defaultMessage: string;
34
+ description: string;
35
+ id: string;
36
+ };
37
+ openCalendar: {
38
+ defaultMessage: string;
39
+ description: string;
40
+ id: string;
41
+ };
42
+ selectDate: {
43
+ defaultMessage: string;
44
+ description: string;
45
+ id: string;
46
+ };
47
+ selectTemplate: {
48
+ defaultMessage: string;
49
+ description: string;
50
+ id: string;
51
+ };
52
+ selectTemplateError: {
53
+ defaultMessage: string;
54
+ description: string;
55
+ id: string;
56
+ };
57
+ selectValuePlaceholder: {
58
+ defaultMessage: string;
59
+ description: string;
60
+ id: string;
61
+ };
62
+ setValuePlaceholder: {
63
+ defaultMessage: string;
64
+ description: string;
65
+ id: string;
66
+ };
67
+ switchToNextMonth: {
68
+ defaultMessage: string;
69
+ description: string;
70
+ id: string;
71
+ };
72
+ switchToPreviousMonth: {
73
+ defaultMessage: string;
74
+ description: string;
75
+ id: string;
76
+ };
77
+ templateSelectorModalHeader: {
78
+ defaultMessage: string;
79
+ description: string;
80
+ id: string;
81
+ };
82
+ templateSelectorSearchInputPlaceholder: {
83
+ defaultMessage: string;
84
+ description: string;
85
+ id: string;
86
+ };
87
+ templateSelectorSearchInputIconAriaLabel: {
88
+ defaultMessage: string;
89
+ description: string;
90
+ id: string;
91
+ };
92
+ templateSelectorSearchInpuClearAriaLabel: {
93
+ defaultMessage: string;
94
+ description: string;
95
+ id: string;
96
+ };
97
+ templateSelectorCancel: {
98
+ defaultMessage: string;
99
+ description: string;
100
+ id: string;
101
+ };
102
+ templateSelectorAdd: {
103
+ defaultMessage: string;
104
+ description: string;
105
+ id: string;
106
+ };
107
+ templateSelectorClose: {
108
+ defaultMessage: string;
109
+ description: string;
110
+ id: string;
111
+ };
112
+ };
113
+ export default messages;
@@ -0,0 +1,4 @@
1
+ export interface MetadataEditorProps {
2
+ }
3
+ export declare function MetadataEditor(props: MetadataEditorProps): import("react/jsx-runtime").JSX.Element;
4
+ export default MetadataEditor;
@@ -0,0 +1,11 @@
1
+ import { type FormikValues } from 'formik';
2
+ import { type ReactNode } from 'react';
3
+ import { type MetadataTemplate } from '../types';
4
+ type FormikWrapperProps = {
5
+ children: ReactNode;
6
+ selectedMetadataTemplate?: MetadataTemplate;
7
+ onSubmit?: (values: FormikValues) => void;
8
+ withUpdateMode?: boolean;
9
+ };
10
+ export declare const FormikWrapper: (props: FormikWrapperProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './formik-wrapper';
2
+ export * from './sample-data';
3
+ export * from './test-utils';
@@ -0,0 +1,24 @@
1
+ import { type MetadataTemplate, type MetadataTemplateField, type MetadataTemplateOption, type MetadataTemplateInstance } from '../types';
2
+ declare const stringField: MetadataTemplateField;
3
+ declare const dateField: MetadataTemplateField;
4
+ declare const enumField: MetadataTemplateField;
5
+ declare const floatField: MetadataTemplateField;
6
+ declare const multiSelectField: MetadataTemplateField;
7
+ declare const noValueField: MetadataTemplateField;
8
+ declare const allFieldsTemplate: MetadataTemplate;
9
+ declare const nonHiddenFieldsTemplate: MetadataTemplate;
10
+ declare const noFieldsTemplate: MetadataTemplate;
11
+ declare const templates: MetadataTemplate[];
12
+ declare const customTemplate: MetadataTemplate;
13
+ declare const templateOptions: MetadataTemplateOption[];
14
+ declare const fields: MetadataTemplateField[];
15
+ declare const allFieldsTemplateInstance: MetadataTemplateInstance;
16
+ declare const templateInstanceWithoutEmptyValues: MetadataTemplateInstance;
17
+ declare const emptyTemplateInstance: MetadataTemplateInstance;
18
+ declare const templateInstanceWithAllFieldsEmpty: MetadataTemplateInstance;
19
+ declare const customTemplateInstance: MetadataTemplateInstance;
20
+ declare const customTemplateInstanceWithoutEmptyValues: MetadataTemplateInstance;
21
+ declare const emptyCustomTemplateInstance: MetadataTemplateInstance;
22
+ declare const customTemplateInstanceWithAllFieldsEmpty: MetadataTemplateInstance;
23
+ declare const templateInstancesList: MetadataTemplateInstance[];
24
+ export { allFieldsTemplate, allFieldsTemplateInstance, templateInstanceWithoutEmptyValues, emptyTemplateInstance, templateInstanceWithAllFieldsEmpty, customTemplateInstance, customTemplateInstanceWithoutEmptyValues, emptyCustomTemplateInstance, customTemplateInstanceWithAllFieldsEmpty, templateInstancesList, dateField, enumField, fields, floatField, multiSelectField, noFieldsTemplate, noValueField, nonHiddenFieldsTemplate, stringField, templateOptions, templates, customTemplate, };
@@ -0,0 +1,3 @@
1
+ export declare const updateText: (el: any, text: any) => Promise<void>;
2
+ export declare const blur: () => Promise<void>;
3
+ export declare const updateTextAndBlur: (el: any, text: any) => Promise<void>;
@@ -0,0 +1,63 @@
1
+ export type MetadataEmptyStateProps = {
2
+ isBoxAiSuggestionsFeatureEnabled?: boolean;
3
+ isAnyEmptyValueHidden?: boolean;
4
+ level: 'manager' | 'file' | 'instance';
5
+ onShowEmptyValues?: () => void;
6
+ };
7
+ export type MetadataFormFieldValue = string | Array<string>;
8
+ export type MetadataFields = Record<string, MetadataFieldValue>;
9
+ export interface MetadataTemplateFieldOption {
10
+ key: string;
11
+ id: string;
12
+ }
13
+ export declare enum UpdateMode {
14
+ ClearAndReplace = "clearAndReplace",
15
+ RemoveEntered = "removeEntered",
16
+ ReplaceEntered = "replaceEntered",
17
+ Append = "append"
18
+ }
19
+ export interface MetadataUpdateMode {
20
+ /** Update mode */
21
+ mode: UpdateMode;
22
+ /** Extra data e.g. replace field value for 'replaceEntered' mode */
23
+ value?: MetadataFormFieldValue;
24
+ }
25
+ export type MetadataTemplateFieldType = 'string' | 'date' | 'enum' | 'float' | 'multiSelect';
26
+ export type MetadataTemplateField = {
27
+ description?: string;
28
+ displayName?: string;
29
+ hidden: boolean;
30
+ id?: string;
31
+ key: string;
32
+ options?: MetadataTemplateFieldOption[];
33
+ type: MetadataTemplateFieldType;
34
+ value?: MetadataFormFieldValue;
35
+ updateMode?: MetadataUpdateMode;
36
+ };
37
+ export type MetadataTemplate = {
38
+ id: string;
39
+ type: string;
40
+ templateKey: string;
41
+ scope: string;
42
+ displayName?: string;
43
+ hidden: boolean;
44
+ copyInstanceOnItemCopy?: boolean;
45
+ fields: MetadataTemplateField[];
46
+ };
47
+ export type MetadataTemplateOption = {
48
+ displayName: string;
49
+ id: string;
50
+ hidden: boolean;
51
+ scope: string;
52
+ };
53
+ export type MetadataFieldValue = string | number | Array<string> | null;
54
+ export type MetadataTemplateInstance = {
55
+ canEdit: boolean;
56
+ displayName?: string;
57
+ hidden?: boolean;
58
+ id: string;
59
+ fields: MetadataTemplateField[];
60
+ scope: string;
61
+ templateKey: string;
62
+ type: string;
63
+ };