box-ui-elements 23.4.0-beta.23 → 23.4.0-beta.25

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 (331) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/explorer.js.LICENSE.txt +9 -0
  3. package/dist/openwith.js +1 -1
  4. package/dist/openwith.js.LICENSE.txt +9 -0
  5. package/dist/picker.js +1 -1
  6. package/dist/picker.js.LICENSE.txt +9 -0
  7. package/dist/preview.js +1 -1
  8. package/dist/preview.js.LICENSE.txt +9 -0
  9. package/dist/sharing.js +1 -1
  10. package/dist/sharing.js.LICENSE.txt +9 -0
  11. package/dist/sidebar.js +1 -1
  12. package/dist/sidebar.js.LICENSE.txt +9 -0
  13. package/dist/uploader.js +1 -1
  14. package/dist/uploader.js.LICENSE.txt +9 -0
  15. package/es/api/Feed.js +2 -2
  16. package/es/api/Metadata.js +2 -2
  17. package/es/api/Versions.js +2 -2
  18. package/es/api/tasks/TasksBase.js +2 -2
  19. package/es/api/tasks/TasksNew.js +2 -2
  20. package/es/api/uploads/BaseUpload.js +4 -0
  21. package/es/api/uploads/BaseUpload.js.flow +5 -1
  22. package/es/api/uploads/BaseUpload.js.map +1 -1
  23. package/es/api/uploads/MultiputUpload.js +7 -0
  24. package/es/api/uploads/MultiputUpload.js.flow +11 -6
  25. package/es/api/uploads/MultiputUpload.js.map +1 -1
  26. package/es/api/uploads/PlainUpload.js +2 -1
  27. package/es/api/uploads/PlainUpload.js.flow +3 -2
  28. package/es/api/uploads/PlainUpload.js.map +1 -1
  29. package/es/components/accessible-svg/AccessibleSVG.js +2 -2
  30. package/es/components/badge/Badge.js +2 -2
  31. package/es/components/badge/BetaBadge.js +2 -2
  32. package/es/components/badge/TrialBadge.js +2 -2
  33. package/es/components/badge/UpgradeBadge.js +2 -2
  34. package/es/components/button/Button.js +2 -2
  35. package/es/components/button/Button.stories.js +3 -20
  36. package/es/components/button/Button.stories.js.map +1 -1
  37. package/es/components/button-group/ButtonGroup.stories.js +1 -4
  38. package/es/components/button-group/ButtonGroup.stories.js.map +1 -1
  39. package/es/components/button-group/__test__/ButtonGroup.test.js +1 -1
  40. package/es/components/button-group/__test__/ButtonGroup.test.js.map +1 -1
  41. package/es/components/checkbox/Checkbox.js +2 -2
  42. package/es/components/checkbox/CheckboxField.js +2 -2
  43. package/es/components/contact-datalist-item/ContactDatalistItem.js +2 -2
  44. package/es/components/count-badge/CountBadge.js +2 -2
  45. package/es/components/datalist-item/DatalistItem.js +2 -2
  46. package/es/components/date-picker/DatePicker.js +1 -1
  47. package/es/components/date-picker/DatePicker.js.map +1 -1
  48. package/es/components/fieldset/Fieldset.js +2 -2
  49. package/es/components/flyout/Overlay.js +2 -2
  50. package/es/components/focus-trap/FocusTrap.js +2 -2
  51. package/es/components/form-elements/draft-js-mention-selector/DraftJSMentionSelectorCore.js +2 -2
  52. package/es/components/ghost/Ghost.js +2 -2
  53. package/es/components/grid-view/GridView.js +1 -1
  54. package/es/components/grid-view/GridView.js.map +1 -1
  55. package/es/components/guide-tooltip/GuideTooltip.js +2 -2
  56. package/es/components/guide-tooltip/GuideTooltip.stories.js +5 -5
  57. package/es/components/guide-tooltip/GuideTooltip.stories.js.map +1 -1
  58. package/es/components/header/Header.js +2 -2
  59. package/es/components/hotkeys/HotkeyFriendlyModal.js +2 -2
  60. package/es/components/i18n/FormattedCompMessage.js +2 -2
  61. package/es/components/i18n/Param.js +1 -1
  62. package/es/components/i18n/Param.js.map +1 -1
  63. package/es/components/image-tooltip/ImageTooltip.js +2 -2
  64. package/es/components/inline-notice/InlineNotice.js +2 -2
  65. package/es/components/label/HiddenLabel.js +2 -2
  66. package/es/components/label/Label.js +1 -1
  67. package/es/components/label/Label.js.map +1 -1
  68. package/es/components/label/LabelPrimitive.js +2 -2
  69. package/es/components/label/StandardLabel.js +2 -2
  70. package/es/components/label-pill/LabelPill.js +2 -2
  71. package/es/components/label-pill/LabelPillIcon.js +2 -2
  72. package/es/components/label-pill/LabelPillText.js +2 -2
  73. package/es/components/link/Link.js +2 -2
  74. package/es/components/link/LinkBase.js +2 -2
  75. package/es/components/link/LinkButton.js +2 -2
  76. package/es/components/link/LinkPrimaryButton.js +2 -2
  77. package/es/components/link/stories/Link.stories.js +2 -2
  78. package/es/components/link/stories/LinkButton.stories.js +2 -2
  79. package/es/components/link/stories/LinkPrimaryButton.stories.js +2 -2
  80. package/es/components/loading-indicator/LoadingIndicatorWrapper.js +2 -2
  81. package/es/components/loading-indicator/makeLoadable.js +2 -2
  82. package/es/components/media/Media.js +2 -2
  83. package/es/components/media/MediaBody.js +2 -2
  84. package/es/components/media/MediaFigure.js +2 -2
  85. package/es/components/media/MediaMenu.js +2 -2
  86. package/es/components/media-query/withMediaQuery.js +2 -2
  87. package/es/components/menu/Menu.js +2 -2
  88. package/es/components/menu/MenuHeader.js +2 -2
  89. package/es/components/menu/MenuItem.js +2 -2
  90. package/es/components/menu/MenuLinkItem.js +2 -2
  91. package/es/components/menu/MenuSectionHeader.js +2 -2
  92. package/es/components/menu/SubmenuItem.js +2 -2
  93. package/es/components/modal/Modal.js +2 -2
  94. package/es/components/modal/ModalActions.js +2 -2
  95. package/es/components/modal/ModalDialog.js +2 -2
  96. package/es/components/nav-sidebar/NavSidebar.js +2 -2
  97. package/es/components/nav-sidebar/NavSidebar.stories.js +1 -1
  98. package/es/components/nav-sidebar/NavSidebar.stories.js.flow +1 -1
  99. package/es/components/nav-sidebar/NavSidebar.stories.js.map +1 -1
  100. package/es/components/pill-selector-dropdown/PillSelector.js +2 -2
  101. package/es/components/pill-selector-dropdown/RoundPill.js +2 -2
  102. package/es/components/plain-button/PlainButton.js +2 -2
  103. package/es/components/plain-button/PlainButton.stories.js +0 -2
  104. package/es/components/plain-button/PlainButton.stories.js.map +1 -1
  105. package/es/components/portal/Portal.js +1 -1
  106. package/es/components/portal/Portal.js.map +1 -1
  107. package/es/components/primary-button/PrimaryButton.js +2 -2
  108. package/es/components/primary-button/PrimaryButton.stories.js +1 -4
  109. package/es/components/primary-button/PrimaryButton.stories.js.map +1 -1
  110. package/es/components/radar/RadarAnimation.js +2 -2
  111. package/es/components/radio/RadioButton.js +2 -2
  112. package/es/components/radio/RadioButtonField.js +2 -2
  113. package/es/components/radio/RadioGroupField.js +2 -2
  114. package/es/components/react-virtualized-helpers/withInfiniteLoader.js +2 -2
  115. package/es/components/scroll-wrapper/ScrollWrapper.js +2 -2
  116. package/es/components/search-form/SearchForm.js +2 -2
  117. package/es/components/section/Section.js +2 -2
  118. package/es/components/select/Select.js +2 -2
  119. package/es/components/select-button/SelectButton.js +2 -2
  120. package/es/components/select-field/MultiSelectField.js +2 -2
  121. package/es/components/select-field/SelectField.js +2 -2
  122. package/es/components/select-field/SingleSelectField.js +2 -2
  123. package/es/components/selector-dropdown/SelectorDropdownExample.js +2 -2
  124. package/es/components/sidebar-toggle-button/SidebarToggleButton.js +2 -2
  125. package/es/components/slide-carousel/Slide.js +2 -2
  126. package/es/components/slide-carousel/SlideButton.js +2 -2
  127. package/es/components/table/Table.js +2 -2
  128. package/es/components/table/TableCell.js +2 -2
  129. package/es/components/table/TableHeaderCell.js +2 -2
  130. package/es/components/table/TableRow.js +2 -2
  131. package/es/components/text-area/TextArea.js +2 -2
  132. package/es/components/text-area/TextAreaField.js +2 -2
  133. package/es/components/text-input/TextInput.js +2 -2
  134. package/es/components/text-input/TextInputField.js +2 -2
  135. package/es/components/text-input-with-copy-button/TextInputWithCopyButton.js +2 -2
  136. package/es/components/thumbnail-card/ThumbnailCard.js +2 -2
  137. package/es/components/toggle/Toggle.js +2 -2
  138. package/es/components/toggle/ToggleField.js +2 -2
  139. package/es/components/tooltip/Tooltip.stories.js +8 -8
  140. package/es/components/tooltip/Tooltip.stories.js.map +1 -1
  141. package/es/elements/common/Tooltip.js +2 -2
  142. package/es/elements/common/back-button/BackButton.js +2 -2
  143. package/es/elements/common/content-answers/ContentAnswers.js +2 -2
  144. package/es/elements/common/droppable/makeDroppable.js +2 -2
  145. package/es/elements/common/error-boundary/ErrorBoundary.js +2 -2
  146. package/es/elements/common/feature-checking/withFeatureProvider.js +2 -2
  147. package/es/elements/common/item/ItemTypeIcon.js +2 -2
  148. package/es/elements/common/item/iconCellRenderer.js +2 -2
  149. package/es/elements/common/item/iconCellRenderer.js.map +1 -1
  150. package/es/elements/common/item/nameCellRenderer.js +2 -2
  151. package/es/elements/common/item/nameCellRenderer.js.map +1 -1
  152. package/es/elements/common/item-grid/ItemGrid.js +2 -2
  153. package/es/elements/common/item-list/ItemList.js +2 -2
  154. package/es/elements/common/logger/Logger.js +2 -2
  155. package/es/elements/common/makePopup.js +2 -2
  156. package/es/elements/common/makeResponsive.js +2 -2
  157. package/es/elements/common/nav-router/NavRouter.js +2 -2
  158. package/es/elements/common/nav-router/withNavRouter.js +2 -2
  159. package/es/elements/common/pagination/Pagination.js +2 -2
  160. package/es/elements/common/selectors/version.js +2 -2
  161. package/es/elements/common/stories/PreviewDialog.stories.js +1 -1
  162. package/es/elements/common/stories/PreviewDialog.stories.js.map +1 -1
  163. package/es/elements/common/sub-header/ViewModeChangeButton.js +2 -2
  164. package/es/elements/content-explorer/Content.js +2 -2
  165. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js +1 -1
  166. package/es/elements/content-explorer/stories/DeleteConfirmationDialog.stories.js.map +1 -1
  167. package/es/elements/content-explorer/stories/RenameDialog.stories.js +1 -1
  168. package/es/elements/content-explorer/stories/RenameDialog.stories.js.map +1 -1
  169. package/es/elements/content-explorer/stories/ShareDialog.stories.js +1 -1
  170. package/es/elements/content-explorer/stories/ShareDialog.stories.js.map +1 -1
  171. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +1 -1
  172. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.flow +1 -2
  173. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.map +1 -1
  174. package/es/elements/content-picker/ContentPicker.js +1 -2
  175. package/es/elements/content-picker/ContentPicker.js.flow +0 -1
  176. package/es/elements/content-picker/ContentPicker.js.map +1 -1
  177. package/es/elements/content-picker/ItemList.js +1 -1
  178. package/es/elements/content-picker/ItemList.js.flow +1 -1
  179. package/es/elements/content-picker/ItemList.js.map +1 -1
  180. package/es/elements/content-picker/checkboxCellRenderer.js +2 -2
  181. package/es/elements/content-picker/checkboxCellRenderer.js.map +1 -1
  182. package/es/elements/content-picker/selectionCellRenderer.js +2 -2
  183. package/es/elements/content-picker/selectionCellRenderer.js.map +1 -1
  184. package/es/elements/content-picker/shareAccessCellRenderer.js +2 -2
  185. package/es/elements/content-picker/shareAccessCellRenderer.js.map +1 -1
  186. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +1 -25
  187. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.flow +1 -25
  188. package/es/elements/content-picker/stories/tests/ContentPicker-visual.stories.js.map +1 -1
  189. package/es/elements/content-preview/ContentPreview.js +3 -3
  190. package/es/elements/content-preview/ContentPreview.js.map +1 -1
  191. package/es/elements/content-preview/preview-header/PreviewHeader.js +2 -2
  192. package/es/elements/content-preview/preview-header/PreviewHeader.js.map +1 -1
  193. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +1 -1
  194. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.flow +1 -1
  195. package/es/elements/content-preview/stories/tests/ContentPreview-visual.stories.js.map +1 -1
  196. package/es/elements/content-sharing/ContentSharing.js +1 -1
  197. package/es/elements/content-sharing/ContentSharing.js.map +1 -1
  198. package/es/elements/content-sidebar/BoxAISidebar.js +2 -2
  199. package/es/elements/content-sidebar/BoxAISidebarContent.js +2 -2
  200. package/es/elements/content-sidebar/SidebarContent.js +2 -2
  201. package/es/elements/content-sidebar/SidebarNavSignButton.js +2 -2
  202. package/es/elements/content-sidebar/SidebarUtils.js +8 -8
  203. package/es/elements/content-sidebar/SidebarUtils.js.map +1 -1
  204. package/es/elements/content-sidebar/activity-feed/ActivityCard.js +2 -2
  205. package/es/elements/content-sidebar/activity-feed/SelectableActivityCard.js +2 -2
  206. package/es/elements/content-sidebar/activity-feed/activity-feed/ActivityItem.js +2 -2
  207. package/es/elements/content-sidebar/activity-feed/annotation-thread/useAnnotationThread.js +2 -2
  208. package/es/elements/content-sidebar/activity-feed/annotations/AnnotationActivityLink.js +2 -2
  209. package/es/elements/content-sidebar/activity-feed/common/activity-datestamp/ActivityDatestamp.js +2 -2
  210. package/es/elements/content-sidebar/activity-feed/common/activity-error/ActivityError.js +2 -2
  211. package/es/elements/content-sidebar/activity-feed/common/delete-confirmation/DeleteConfirmation.js +2 -2
  212. package/es/elements/content-sidebar/activity-feed/common/user-link/UserLink.js +2 -2
  213. package/es/elements/content-sidebar/activity-feed/task-new/AvatarGroupAvatar.js +2 -2
  214. package/es/elements/content-sidebar/additional-tabs/AdditionalTab.js +2 -2
  215. package/es/elements/content-sidebar/fetchers/metadataTaxonomyFetcher.js +2 -2
  216. package/es/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.js +1 -1
  217. package/es/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.js.map +1 -1
  218. package/es/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.js +1 -1
  219. package/es/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.js.map +1 -1
  220. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js +1 -1
  221. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js.map +1 -1
  222. package/es/elements/content-sidebar/versions/VersionsGroup.js +2 -2
  223. package/es/elements/content-sidebar/versions/VersionsItemAction.js +2 -2
  224. package/es/elements/content-sidebar/versions/VersionsList.js +2 -2
  225. package/es/elements/content-sidebar/versions/VersionsMenu.js +2 -2
  226. package/es/elements/content-sidebar/versions/VersionsSidebar.js +2 -2
  227. package/es/elements/content-sidebar/withErrorHandling.js +2 -2
  228. package/es/elements/content-uploader/ContentUploader.js +7 -3
  229. package/es/elements/content-uploader/ContentUploader.js.map +1 -1
  230. package/es/elements/content-uploader/ItemAction.js +8 -3
  231. package/es/elements/content-uploader/ItemAction.js.map +1 -1
  232. package/es/elements/content-uploader/actionCellRenderer.js +2 -2
  233. package/es/elements/content-uploader/actionCellRenderer.js.map +1 -1
  234. package/es/elements/content-uploader/nameCellRenderer.js +2 -2
  235. package/es/elements/content-uploader/nameCellRenderer.js.map +1 -1
  236. package/es/elements/content-uploader/progressCellRenderer.js +2 -2
  237. package/es/elements/content-uploader/progressCellRenderer.js.map +1 -1
  238. package/es/elements/content-uploader/removeCellRenderer.js +2 -2
  239. package/es/elements/content-uploader/removeCellRenderer.js.map +1 -1
  240. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +1 -1
  241. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.flow +1 -1
  242. package/es/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js.map +1 -1
  243. package/es/elements/wrappers/ContentExplorer.js +1 -1
  244. package/es/elements/wrappers/ContentExplorer.js.map +1 -1
  245. package/es/elements/wrappers/ContentOpenWith.js +1 -1
  246. package/es/elements/wrappers/ContentOpenWith.js.map +1 -1
  247. package/es/elements/wrappers/ContentPicker.js +3 -3
  248. package/es/elements/wrappers/ContentPicker.js.map +1 -1
  249. package/es/elements/wrappers/ContentPreview.js +1 -1
  250. package/es/elements/wrappers/ContentPreview.js.map +1 -1
  251. package/es/elements/wrappers/ContentSharing.js +1 -1
  252. package/es/elements/wrappers/ContentSharing.js.map +1 -1
  253. package/es/elements/wrappers/ContentSidebar.js +1 -1
  254. package/es/elements/wrappers/ContentSidebar.js.map +1 -1
  255. package/es/elements/wrappers/ContentUploader.js +3 -3
  256. package/es/elements/wrappers/ContentUploader.js.map +1 -1
  257. package/es/features/beta-feedback/BetaFeedbackBadge.js +2 -2
  258. package/es/features/classification/EditClassificationButton.js +2 -2
  259. package/es/features/collaborator-avatars/CollaboratorAvatarItem.js +2 -2
  260. package/es/features/collaborator-avatars/CollaboratorList.js +1 -1
  261. package/es/features/collaborator-avatars/CollaboratorList.js.map +1 -1
  262. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js +1 -1
  263. package/es/features/collapsible-sidebar/CollapsibleSidebar.stories.js.map +1 -1
  264. package/es/features/collapsible-sidebar/CollapsibleSidebarMenuItem.js +2 -2
  265. package/es/features/collapsible-sidebar/CollapsibleSidebarNav.js +2 -2
  266. package/es/features/content-explorer/content-explorer/ContentExplorer.js +2 -2
  267. package/es/features/content-explorer/content-explorer-modal/ContentExplorerModal.js +2 -2
  268. package/es/features/content-explorer/content-explorer-modal-container/ContentExplorerModalContainer.js +2 -2
  269. package/es/features/content-insights/CompactCount.js +2 -2
  270. package/es/features/header-flyout/HeaderFlyout.js +2 -2
  271. package/es/features/invite-collaborators-modal/InviteCollaboratorsModal.js +2 -2
  272. package/es/features/item-details/VersionHistoryLink.js +2 -2
  273. package/es/features/left-sidebar/LeftSidebarDropWrapper.js +2 -2
  274. package/es/features/message-center/components/collapsibile-scrollbar/CollapsibleScrollbar.js +2 -2
  275. package/es/features/pagination/Pagination.js +2 -2
  276. package/es/features/presence/PresenceAvatar.js +2 -2
  277. package/es/features/presence/PresenceAvatarList.js +2 -2
  278. package/es/features/presence/PresenceCollaborator.js +2 -2
  279. package/es/features/quick-search/QuickSearchItem.js +3 -3
  280. package/es/features/quick-search/QuickSearchItem.js.map +1 -1
  281. package/es/features/quick-search/QuickSearchSelector.js +2 -2
  282. package/es/features/security/SecurityBadge.js +2 -2
  283. package/es/features/share/ShareMenu.js +2 -2
  284. package/es/features/targeting/hocs/withTargetedClickThrough.js +2 -2
  285. package/es/features/virtualized-table/BaseVirtualizedTable.js +2 -2
  286. package/es/features/virtualized-table/DraggableVirtualizedTable.js +2 -2
  287. package/es/features/virtualized-table/VirtualizedTable.js +2 -2
  288. package/es/icons/accessible-svg/AccessibleSVG.js +2 -2
  289. package/es/icons/icons.stories.js +5 -22
  290. package/es/icons/icons.stories.js.map +1 -1
  291. package/es/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.d.ts +2 -2
  292. package/es/src/elements/content-uploader/ContentUploader.d.ts +1 -1
  293. package/es/src/icons/icons.stories.d.ts +1 -4
  294. package/package.json +16 -24
  295. package/src/api/uploads/BaseUpload.js +5 -1
  296. package/src/api/uploads/MultiputUpload.js +11 -6
  297. package/src/api/uploads/PlainUpload.js +3 -2
  298. package/src/api/uploads/__tests__/BaseUpload.test.js +14 -0
  299. package/src/components/avatar/__tests__/Avatar.test.tsx +1 -2
  300. package/src/components/button/Button.stories.tsx +2 -16
  301. package/src/components/button-group/ButtonGroup.stories.tsx +1 -2
  302. package/src/components/nav-sidebar/NavSidebar.stories.js +1 -1
  303. package/src/components/plain-button/PlainButton.stories.tsx +1 -2
  304. package/src/components/primary-button/PrimaryButton.stories.tsx +1 -4
  305. package/src/components/time-input/__tests__/TimeInput.test.tsx +1 -2
  306. package/src/elements/common/stories/PreviewDialog.stories.tsx +1 -2
  307. package/src/elements/common/stories/__tests__/PreviewDialog-visual.stories.tsx +2 -3
  308. package/src/elements/content-explorer/stories/ContentExplorer.mdx +1 -1
  309. package/src/elements/content-explorer/stories/DeleteConfirmationDialog.stories.tsx +1 -2
  310. package/src/elements/content-explorer/stories/RenameDialog.stories.tsx +1 -1
  311. package/src/elements/content-explorer/stories/ShareDialog.stories.tsx +1 -1
  312. package/src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +1 -2
  313. package/src/elements/content-open-with/stories/ContentOpenWith.mdx +1 -1
  314. package/src/elements/content-picker/ContentPicker.js +0 -1
  315. package/src/elements/content-picker/ItemList.js +1 -1
  316. package/src/elements/content-picker/stories/ContentPicker.mdx +1 -1
  317. package/src/elements/content-picker/stories/tests/ContentPicker-visual.stories.js +1 -25
  318. package/src/elements/content-preview/stories/ContentPreview.mdx +1 -1
  319. package/src/elements/content-preview/stories/tests/ContentPreview-visual.stories.js +1 -1
  320. package/src/elements/content-sharing/stories/ContentSharing.mdx +1 -1
  321. package/src/elements/content-sidebar/stories/BoxAISideBar.mdx +1 -1
  322. package/src/elements/content-sidebar/stories/ContentSidebar.mdx +1 -1
  323. package/src/elements/content-sidebar/stories/MetadataSidebar.mdx +1 -1
  324. package/src/elements/content-sidebar/stories/MetadataSidebarRedesign.stories.tsx +2 -2
  325. package/src/elements/content-sidebar/stories/tests/BoxAISidebar-visual.stories.tsx +1 -1
  326. package/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx +2 -2
  327. package/src/elements/content-uploader/ContentUploader.tsx +7 -3
  328. package/src/elements/content-uploader/ItemAction.tsx +8 -2
  329. package/src/elements/content-uploader/stories/ContentUploader.mdx +1 -1
  330. package/src/elements/content-uploader/stories/tests/ContentUploader-visual.stories.js +1 -1
  331. package/src/icons/icons.stories.tsx +3 -12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-ui-elements",
3
- "version": "23.4.0-beta.23",
3
+ "version": "23.4.0-beta.25",
4
4
  "description": "Box UI Elements",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -137,10 +137,10 @@
137
137
  "@box/frontend": "^11.0.1",
138
138
  "@box/item-icon": "^0.9.83",
139
139
  "@box/languages": "^1.0.0",
140
- "@box/metadata-editor": "^0.115.0",
140
+ "@box/metadata-editor": "^0.117.0",
141
141
  "@box/react-virtualized": "^9.22.3-rc-box.10",
142
142
  "@cfaester/enzyme-adapter-react-18": "^0.8.0",
143
- "@chromatic-com/storybook": "^1.6.1",
143
+ "@chromatic-com/storybook": "^4.0.1",
144
144
  "@commitlint/cli": "^19.8.0",
145
145
  "@commitlint/config-conventional": "^19.8.0",
146
146
  "@eslint/eslintrc": "^3.1.0",
@@ -149,23 +149,14 @@
149
149
  "@formatjs/intl-relativetimeformat": "^4.5.9",
150
150
  "@formatjs/intl-unified-numberformat": "^3.2.0",
151
151
  "@hapi/address": "^2.1.4",
152
- "@storybook/addon-actions": "^8.2.4",
153
- "@storybook/addon-docs": "^8.2.4",
154
- "@storybook/addon-essentials": "^8.2.4",
155
- "@storybook/addon-interactions": "^8.2.4",
156
- "@storybook/addon-knobs": "^8.0.1",
157
- "@storybook/addon-links": "^8.2.4",
158
- "@storybook/addon-styling-webpack": "^1.0.1",
159
- "@storybook/addon-webpack5-compiler-babel": "^3.0.3",
160
- "@storybook/blocks": "^8.2.4",
161
- "@storybook/manager-api": "^8.2.4",
162
- "@storybook/preview-api": "^8.2.4",
163
- "@storybook/react-webpack5": "^8.6.14",
164
- "@storybook/test": "^8.2.4",
165
- "@storybook/theming": "^8.2.4",
152
+ "@storybook/addon-docs": "^9.0.14",
153
+ "@storybook/addon-styling-webpack": "^2.0.0",
154
+ "@storybook/addon-webpack5-compiler-babel": "^3.0.6",
155
+ "@storybook/react-webpack5": "^9.0.14",
156
+ "@testing-library/dom": "^10.4.0",
166
157
  "@testing-library/jest-dom": "^6.4.6",
167
158
  "@testing-library/react": "^16.0.0",
168
- "@testing-library/user-event": "^14.5.2",
159
+ "@testing-library/user-event": "14.5.2",
169
160
  "@types/classnames": "^2.2.9",
170
161
  "@types/color": "^3.0.2",
171
162
  "@types/enzyme": "^3.10.18",
@@ -204,7 +195,7 @@
204
195
  "css-loader": "^7.1.2",
205
196
  "css-minimizer-webpack-plugin": "^7.0.0",
206
197
  "cssnano": "^4.1.10",
207
- "cypress": "^13.7.3",
198
+ "cypress": "^13.17.0",
208
199
  "deepmerge": "^4.2.2",
209
200
  "draft-js": "^0.11.7",
210
201
  "enzyme": "^3.11.0",
@@ -242,8 +233,9 @@
242
233
  "message-accumulator": "^2.1.1",
243
234
  "mini-css-extract-plugin": "^2.9.0",
244
235
  "mousetrap": "^1.6.3",
245
- "msw": "^2.1.5",
246
- "msw-storybook-addon": "^2.0.2",
236
+ "msw": "^2.10.2",
237
+ "msw-storybook-addon": "^2.0.5",
238
+ "node-polyfill-webpack-plugin": "^4.1.0",
247
239
  "npm-run-all": "^4.1.5",
248
240
  "pikaday": "^1.8.0",
249
241
  "postcss": "^8.5.3",
@@ -280,8 +272,8 @@
280
272
  "semantic-release": "^24.2.3",
281
273
  "sinon": "^2.3.7",
282
274
  "source-map-loader": "^0.2.4",
283
- "storybook": "^8.6.14",
284
- "storybook-react-intl": "^3.1.1",
275
+ "storybook": "^9.0.14",
276
+ "storybook-react-intl": "^4.0.7",
285
277
  "string-replace-loader": "^3.1.0",
286
278
  "styled-components": "5.0.0",
287
279
  "stylelint": "^16.18.0",
@@ -306,7 +298,7 @@
306
298
  "@box/cldr-data": ">=34.2.0",
307
299
  "@box/combobox-with-api": "^0.34.9",
308
300
  "@box/item-icon": "^0.9.83",
309
- "@box/metadata-editor": "^0.115.0",
301
+ "@box/metadata-editor": "^0.117.0",
310
302
  "@box/react-virtualized": "^9.22.3-rc-box.10",
311
303
  "@hapi/address": "^2.1.4",
312
304
  "axios": "^0.30.0",
@@ -30,7 +30,7 @@ class BaseUpload extends Base {
30
30
 
31
31
  folderId: string;
32
32
 
33
- overwrite: boolean;
33
+ overwrite: boolean | 'error';
34
34
 
35
35
  conflictCallback: ?(fileName: string) => string;
36
36
 
@@ -159,6 +159,10 @@ class BaseUpload extends Base {
159
159
  this.errorCallback(errorData);
160
160
  // Automatically handle name conflict errors
161
161
  } else if (errorData && errorData.status === 409) {
162
+ if (this.overwrite === 'error') {
163
+ this.errorCallback(errorData);
164
+ return;
165
+ }
162
166
  if (this.overwrite) {
163
167
  // Error response contains file ID to upload a new file version for
164
168
  const conflictFileId = errorData.context_info.conflicts.id;
@@ -173,6 +173,7 @@ class MultiputUpload extends BaseMultiput {
173
173
  errorCallback,
174
174
  progressCallback,
175
175
  successCallback,
176
+ // $FlowFixMe
176
177
  overwrite = true,
177
178
  conflictCallback,
178
179
  fileId,
@@ -182,7 +183,7 @@ class MultiputUpload extends BaseMultiput {
182
183
  file: File,
183
184
  fileId: ?string,
184
185
  folderId: string,
185
- overwrite?: boolean,
186
+ overwrite?: boolean | 'error',
186
187
  progressCallback?: Function,
187
188
  successCallback?: Function,
188
189
  }): void {
@@ -217,6 +218,7 @@ class MultiputUpload extends BaseMultiput {
217
218
  errorCallback,
218
219
  progressCallback,
219
220
  successCallback,
221
+ // $FlowFixMe
220
222
  overwrite = true,
221
223
  conflictCallback,
222
224
  fileId,
@@ -227,7 +229,7 @@ class MultiputUpload extends BaseMultiput {
227
229
  fileDescription: ?string,
228
230
  fileId: ?string,
229
231
  folderId: string,
230
- overwrite?: boolean,
232
+ overwrite?: boolean | 'error',
231
233
  progressCallback?: Function,
232
234
  successCallback?: Function,
233
235
  }): void {
@@ -337,6 +339,10 @@ class MultiputUpload extends BaseMultiput {
337
339
  }
338
340
 
339
341
  if (errorData && errorData.status === 409) {
342
+ if (this.overwrite === 'error') {
343
+ this.errorCallback(errorData);
344
+ return;
345
+ }
340
346
  this.resolveConflict(errorData);
341
347
  this.createSessionRetry();
342
348
  return;
@@ -437,6 +443,7 @@ class MultiputUpload extends BaseMultiput {
437
443
  progressCallback,
438
444
  sessionId,
439
445
  successCallback,
446
+ // $FlowFixMe
440
447
  overwrite = true,
441
448
  conflictCallback,
442
449
  fileId,
@@ -446,7 +453,7 @@ class MultiputUpload extends BaseMultiput {
446
453
  file: File,
447
454
  fileId: ?string,
448
455
  folderId: string,
449
- overwrite?: boolean,
456
+ overwrite?: boolean | 'error',
450
457
  progressCallback?: Function,
451
458
  sessionId: string,
452
459
  successCallback?: Function,
@@ -598,9 +605,7 @@ class MultiputUpload extends BaseMultiput {
598
605
 
599
606
  await retryNumOfTimes(
600
607
  (resolve: Function, reject: Function): void => {
601
- this.logEvent(logEventType, logMessage)
602
- .then(resolve)
603
- .catch(reject);
608
+ this.logEvent(logEventType, logMessage).then(resolve).catch(reject);
604
609
  },
605
610
  this.config.retries,
606
611
  this.config.initialRetryDelayMs,
@@ -116,7 +116,7 @@ class PlainUpload extends BaseUpload {
116
116
  * @param {Function} [options.errorCallback] - Function to call with errors
117
117
  * @param {Function} [options.progressCallback] - Function to call with progress
118
118
  * @param {Function} [options.conflictCallback] - Function to call on conflicting file names
119
- * @param {boolean} [overwrite] - Should upload overwrite file with same name
119
+ * @param {boolean|'error'} [overwrite] - Should upload overwrite file with same name, throw error, or call conflictCallback to rename
120
120
  * @return {void}
121
121
  */
122
122
  upload({
@@ -128,6 +128,7 @@ class PlainUpload extends BaseUpload {
128
128
  errorCallback = noop,
129
129
  progressCallback = noop,
130
130
  conflictCallback,
131
+ // $FlowFixMe
131
132
  overwrite = true,
132
133
  }: {
133
134
  conflictCallback?: Function,
@@ -136,7 +137,7 @@ class PlainUpload extends BaseUpload {
136
137
  fileDescription: ?string,
137
138
  fileId: ?string,
138
139
  folderId: string,
139
- overwrite: boolean,
140
+ overwrite: boolean | 'error',
140
141
  progressCallback: Function,
141
142
  successCallback: Function,
142
143
  }): void {
@@ -296,6 +296,20 @@ describe('api/uploads/BaseUpload', () => {
296
296
  expect(upload.makePreflightRequest).not.toHaveBeenCalled();
297
297
  });
298
298
 
299
+ test('should call error callback on file on 409 if overwrite property is "error"', () => {
300
+ const error = new Error();
301
+ error.status = 409;
302
+
303
+ upload.fileId = '123';
304
+ upload.overwrite = 'error';
305
+ upload.makePreflightRequest = jest.fn();
306
+ upload.errorCallback = jest.fn();
307
+
308
+ upload.preflightErrorHandler(error, () => {});
309
+
310
+ expect(upload.errorCallback).toHaveBeenCalledWith(error);
311
+ });
312
+
299
313
  test('should overwrite file on 409 if overwrite property is true', () => {
300
314
  upload.fileId = '123';
301
315
  upload.overwrite = true;
@@ -1,6 +1,5 @@
1
- import * as React from 'react';
1
+ import React, { act } from 'react';
2
2
  import { shallow, mount } from 'enzyme';
3
- import { act } from 'react-dom/test-utils';
4
3
  import { IntlShape } from 'react-intl';
5
4
  import { AvatarBase as Avatar } from '../Avatar';
6
5
  import AvatarImage from '../AvatarImage';
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
- import { action } from '@storybook/addon-actions';
3
- import { boolean, select } from '@storybook/addon-knobs';
2
+ import { action } from 'storybook/actions';
4
3
 
5
4
  import * as vars from '../../styles/variables';
6
5
 
@@ -14,20 +13,7 @@ import Button from './Button';
14
13
  import notes from './Button.stories.md';
15
14
 
16
15
  export const regular = () => {
17
- const selectIcon = select('icon', { None: undefined, Icon: 'Icon' }, undefined);
18
- const selectChildren = select('children', { None: undefined, Text: 'Click Here' }, 'Click Here');
19
- return (
20
- <Button
21
- icon={selectIcon === 'Icon' ? <Icon /> : undefined}
22
- isDisabled={boolean('isDisabled', false)}
23
- isLoading={boolean('isLoading', false)}
24
- onClick={action('onClick called')}
25
- showRadar={boolean('showRadar', false)}
26
- size={select('size', { None: undefined, Large: 'large' }, undefined)}
27
- >
28
- {selectChildren ? 'Click Here' : null}
29
- </Button>
30
- );
16
+ return <Button onClick={action('onClick called')}>Click Here</Button>;
31
17
  };
32
18
 
33
19
  export const loading = () => <Button isLoading>Click Here</Button>;
@@ -1,12 +1,11 @@
1
1
  import * as React from 'react';
2
- import { boolean } from '@storybook/addon-knobs';
3
2
 
4
3
  import Button from '../button/Button';
5
4
  import ButtonGroup from './ButtonGroup';
6
5
  import notes from './ButtonGroup.stories.md';
7
6
 
8
7
  export const regular = () => (
9
- <ButtonGroup isDisabled={boolean('isDisabled', false)}>
8
+ <ButtonGroup>
10
9
  <Button>Add</Button>
11
10
  <Button>Update</Button>
12
11
  <Button>Remove</Button>
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable */
2
2
  import * as React from 'react';
3
- import { action } from '@storybook/addon-actions';
3
+ import { action } from 'storybook/actions';
4
4
  import NavSidebar from './NavSidebar';
5
5
  import NavListCollapseHeader from './NavListCollapseHeader';
6
6
  import NavList from './NavList';
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { boolean } from '@storybook/addon-knobs';
3
2
 
4
3
  import Icon from '../../icons/general/IconCopy';
5
4
  import * as vars from '../../styles/variables';
@@ -9,7 +8,7 @@ import { ButtonType } from '../button';
9
8
  import notes from './PlainButton.stories.md';
10
9
 
11
10
  export const regular = () => (
12
- <PlainButton isDisabled={boolean('isDisabled', false)} type={ButtonType.BUTTON}>
11
+ <PlainButton type={ButtonType.BUTTON}>
13
12
  Click Here
14
13
  </PlainButton>
15
14
  );
@@ -1,14 +1,11 @@
1
1
  import * as React from 'react';
2
- import { action } from '@storybook/addon-actions';
3
- import { boolean } from '@storybook/addon-knobs';
2
+ import { action } from 'storybook/actions';
4
3
 
5
4
  import PrimaryButton from './PrimaryButton';
6
5
  import notes from './PrimaryButton.stories.md';
7
6
 
8
7
  export const regular = () => (
9
8
  <PrimaryButton
10
- isDisabled={boolean('isDisabled', false)}
11
- isLoading={boolean('isLoading', false)}
12
9
  onClick={action('onClick called')}
13
10
  >
14
11
  Click Here
@@ -1,5 +1,4 @@
1
- import * as React from 'react';
2
- import { act } from 'react-dom/test-utils';
1
+ import React, { act } from 'react';
3
2
  import { mount } from 'enzyme';
4
3
  import debounce from 'lodash/debounce';
5
4
  // @ts-ignore flow import
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
-
3
- import { useArgs } from '@storybook/preview-api';
2
+ import { useArgs } from 'storybook/preview-api';
4
3
  import { Button } from '@box/blueprint-web';
5
4
  import PreviewDialog from '../preview-dialog/PreviewDialog';
6
5
 
@@ -1,8 +1,7 @@
1
1
  import * as React from 'react';
2
-
3
- import { expect, screen, userEvent, within } from '@storybook/test';
2
+ import { useArgs } from 'storybook/preview-api';
3
+ import { expect, screen, userEvent, within } from 'storybook/test';
4
4
  import { Button } from '@box/blueprint-web';
5
- import { useArgs } from '@storybook/preview-api';
6
5
  import PreviewDialog from '../../preview-dialog';
7
6
 
8
7
  import { addRootElement } from '../../../../utils/storybook';
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import ContentExplorerStories from './ContentExplorer.stories';
4
4
 
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useArgs } from '@storybook/preview-api';
3
-
2
+ import { useArgs } from 'storybook/preview-api';
4
3
  import { Button } from '@box/blueprint-web';
5
4
  import { addRootElement } from '../../../utils/storybook';
6
5
 
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useArgs } from '@storybook/preview-api';
2
+ import { useArgs } from 'storybook/preview-api';
3
3
  import { Button } from '@box/blueprint-web';
4
4
 
5
5
  import { addRootElement } from '../../../utils/storybook';
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { useArgs } from '@storybook/preview-api';
2
+ import { useArgs } from 'storybook/preview-api';
3
3
  import { Button } from '@box/blueprint-web';
4
4
 
5
5
  import { ACCESS_COLLAB, ACCESS_COMPANY, ACCESS_OPEN } from '../../../constants';
@@ -1,6 +1,5 @@
1
+ import { expect, screen, userEvent, waitFor, within } from 'storybook/test';
1
2
  import { http, HttpResponse } from 'msw';
2
- import { expect, screen, userEvent, waitFor, within } from '@storybook/test';
3
-
4
3
  import ContentExplorer from '../../ContentExplorer';
5
4
  import { mockEmptyRootFolder, mockRootFolder } from '../../../common/__mocks__/mockRootFolder';
6
5
  import mockSubfolder from '../../../common/__mocks__/mockSubfolder';
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import ContentOpenWithStories from './ContentOpenWith.stories';
4
4
 
@@ -189,7 +189,6 @@ class ContentPicker extends Component<Props, State> {
189
189
  clearSelectedItemsOnNavigation: false,
190
190
  isHeaderLogoVisible: true,
191
191
  isPaginationVisible: true,
192
- itemActions: [],
193
192
  };
194
193
 
195
194
  /**
@@ -176,7 +176,7 @@ const ItemList = ({
176
176
  flexShrink={0}
177
177
  />
178
178
  )}
179
- {itemActions && (
179
+ {!!itemActions?.length && (
180
180
  <Column
181
181
  disableSort
182
182
  dataKey={FIELD_ID}
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import ContentPickerStories from './ContentPicker.stories';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { expect, userEvent, waitFor, within } from '@storybook/test';
2
+ import { expect, userEvent, waitFor, within } from 'storybook/test';
3
3
  import { http, HttpResponse } from 'msw';
4
4
  import ContentPicker from '../../ContentPicker';
5
5
  import { mockRootFolder, mockEmptyRootFolder } from '../../../common/__mocks__/mockRootFolder';
@@ -118,30 +118,6 @@ export const customActionButtons = {
118
118
  },
119
119
  };
120
120
 
121
- export const itemCustomActions = {
122
- args: {
123
- itemActions: [
124
- {
125
- label: 'alert',
126
- onAction: () => {
127
- // eslint-disable-next-line no-alert
128
- alert('You clicked me!');
129
- },
130
- },
131
- ],
132
- },
133
- play: async ({ canvasElement }) => {
134
- const canvas = within(canvasElement);
135
- await waitFor(async () => {
136
- const moreOptions = await canvas.findAllByRole('button', { name: 'More options' });
137
- await userEvent.click(moreOptions[0]);
138
-
139
- const menuItem = await waitFor(() => document.querySelector('[role="menuitem"]'));
140
- expect(menuItem).toBeInTheDocument();
141
- });
142
- },
143
- };
144
-
145
121
  export default {
146
122
  title: 'Elements/ContentPicker/tests/visual',
147
123
  component: ContentPicker,
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import ContentPreviewStories from './ContentPreview.stories';
4
4
 
@@ -1,7 +1,7 @@
1
1
  // @flow
2
2
  import * as React from 'react';
3
3
  import { BrowserRouter as Router } from 'react-router-dom';
4
- import { expect, userEvent, waitFor, within } from '@storybook/test';
4
+ import { expect, userEvent, waitFor, within } from 'storybook/test';
5
5
  import { Notification } from '@box/blueprint-web';
6
6
  import { http, HttpResponse } from 'msw';
7
7
 
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
 
4
4
  <Meta />
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import BoxAISidebarStories from './BoxAISidebar.stories';
4
4
 
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import ContentSidebarStories from './ContentSidebar.stories';
4
4
 
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import MetadataSidebarStories from './MetadataSidebar.stories';
4
4
 
@@ -1,6 +1,6 @@
1
- import { type StoryObj, Meta } from '@storybook/react';
2
- import { fn, userEvent, within } from '@storybook/test';
3
1
  import React, { type ComponentProps } from 'react';
2
+ import { type StoryObj, Meta } from '@storybook/react';
3
+ import { fn, userEvent, within } from 'storybook/test';
4
4
  import { http, HttpResponse } from 'msw';
5
5
  import type { HttpHandler } from 'msw';
6
6
  import MetadataSidebarRedesign from '../MetadataSidebarRedesign';
@@ -1,5 +1,5 @@
1
- import { expect, within } from '@storybook/test';
2
1
  import { type StoryObj, type Meta } from '@storybook/react';
2
+ import { expect, within } from 'storybook/test';
3
3
  import { http, HttpResponse } from 'msw';
4
4
  import type { HttpHandler } from 'msw';
5
5
  import ContentSidebar from '../../ContentSidebar';
@@ -1,7 +1,7 @@
1
1
  import { type ComponentProps } from 'react';
2
- import { http, HttpResponse } from 'msw';
3
- import { expect, userEvent, waitFor, within, fn, screen } from '@storybook/test';
4
2
  import { type StoryObj, Meta } from '@storybook/react';
3
+ import { expect, userEvent, waitFor, within, fn, screen } from 'storybook/test';
4
+ import { http, HttpResponse } from 'msw';
5
5
  import type { HttpHandler } from 'msw';
6
6
  import ContentSidebar from '../../ContentSidebar';
7
7
  import MetadataSidebarRedesign from '../../MetadataSidebarRedesign';
@@ -34,6 +34,7 @@ import {
34
34
  CLIENT_NAME_CONTENT_UPLOADER,
35
35
  DEFAULT_HOSTNAME_API,
36
36
  DEFAULT_HOSTNAME_UPLOAD,
37
+ ERROR_CODE_ITEM_NAME_IN_USE,
37
38
  ERROR_CODE_UPLOAD_FILE_LIMIT,
38
39
  STATUS_COMPLETE,
39
40
  STATUS_ERROR,
@@ -90,7 +91,7 @@ export interface ContentUploaderProps {
90
91
  onResume: (item: UploadItem) => void;
91
92
  onUpgradeCTAClick?: () => void;
92
93
  onUpload: (item?: UploadItem | BoxItem) => void;
93
- overwrite: boolean;
94
+ overwrite: boolean | 'error';
94
95
  requestInterceptor?: (response: AxiosResponse) => void;
95
96
  responseInterceptor?: (config: AxiosRequestConfig) => void;
96
97
  rootFolderId: string;
@@ -1083,7 +1084,7 @@ class ContentUploader extends Component<ContentUploaderProps, State> {
1083
1084
  */
1084
1085
  onClick = (item: UploadItem) => {
1085
1086
  const { chunked, isResumableUploadsEnabled, onClickCancel, onClickResume, onClickRetry } = this.props;
1086
- const { file, status } = item;
1087
+ const { file, status, error } = item;
1087
1088
  const isChunkedUpload =
1088
1089
  chunked && !item.isFolder && file.size > CHUNKED_UPLOAD_MIN_SIZE_BYTES && isMultiputSupported();
1089
1090
  const isResumable = isResumableUploadsEnabled && isChunkedUpload && item.api.sessionId;
@@ -1097,7 +1098,10 @@ class ContentUploader extends Component<ContentUploaderProps, State> {
1097
1098
  onClickCancel(item);
1098
1099
  break;
1099
1100
  case STATUS_ERROR:
1100
- if (isResumable) {
1101
+ if (error?.code === ERROR_CODE_ITEM_NAME_IN_USE) {
1102
+ this.removeFileFromUploadQueue(item);
1103
+ onClickCancel(item);
1104
+ } else if (isResumable) {
1101
1105
  item.bytesUploadedOnLastResume = item.api.totalUploadedBytes;
1102
1106
  this.resumeFile(item);
1103
1107
  onClickResume(item);
@@ -8,6 +8,7 @@ import { Size5, SurfaceStatusSurfaceSuccess } from '@box/blueprint-web-assets/to
8
8
  import IconInProgress from './IconInProgress';
9
9
 
10
10
  import {
11
+ ERROR_CODE_ITEM_NAME_IN_USE,
11
12
  ERROR_CODE_UPLOAD_FILE_SIZE_LIMIT_EXCEEDED,
12
13
  STATUS_COMPLETE,
13
14
  STATUS_ERROR,
@@ -70,8 +71,13 @@ const ItemAction = ({
70
71
  }
71
72
  break;
72
73
  case STATUS_ERROR:
73
- Icon = ArrowCurveForward;
74
- tooltip = isResumableUploadsEnabled ? messages.resume : messages.retry;
74
+ if (code === ERROR_CODE_ITEM_NAME_IN_USE) {
75
+ Icon = XMark;
76
+ tooltip = messages.uploadsCancelButtonTooltip;
77
+ } else {
78
+ Icon = ArrowCurveForward;
79
+ tooltip = isResumableUploadsEnabled ? messages.resume : messages.retry;
80
+ }
75
81
  break;
76
82
  case STATUS_IN_PROGRESS:
77
83
  case STATUS_STAGED:
@@ -1,4 +1,4 @@
1
- import { Meta } from '@storybook/blocks';
1
+ import { Meta } from '@storybook/addon-docs/blocks';
2
2
 
3
3
  import ContentUploaderStories from './ContentUploader.stories';
4
4
 
@@ -1,4 +1,4 @@
1
- import { expect, userEvent, waitFor, within } from '@storybook/test';
1
+ import { expect, userEvent, waitFor, within } from 'storybook/test';
2
2
  import { http, HttpResponse } from 'msw';
3
3
 
4
4
  import ContentUploader from '../../ContentUploader';