@box/activity-feed 1.15.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 (221) hide show
  1. package/LICENSE +379 -0
  2. package/README.md +57 -0
  3. package/dist/chunks/AssigneeList.js +125 -0
  4. package/dist/chunks/TaskDueDate.js +44 -0
  5. package/dist/chunks/TaskItemFooter.js +77 -0
  6. package/dist/chunks/TaskMessage.js +86 -0
  7. package/dist/chunks/TaskState.js +83 -0
  8. package/dist/chunks/activity-feed-list.js +21 -0
  9. package/dist/chunks/activity-feed.js +46 -0
  10. package/dist/chunks/app-activity-item.js +75 -0
  11. package/dist/chunks/editor.js +14 -0
  12. package/dist/chunks/empty-state.js +22 -0
  13. package/dist/chunks/header.js +63 -0
  14. package/dist/chunks/mock-collaboration-props.js +19379 -0
  15. package/dist/chunks/scroll.js +6 -0
  16. package/dist/chunks/task-button.js +44 -0
  17. package/dist/chunks/task-delete-confirmation-popover.js +50 -0
  18. package/dist/chunks/task-options-menu.js +58 -0
  19. package/dist/chunks/types.js +8 -0
  20. package/dist/chunks/version-item.module.js +10 -0
  21. package/dist/esm/index.js +9 -0
  22. package/dist/esm/lib/activity-feed.js +6 -0
  23. package/dist/esm/lib/components/activity-feed-list/activity-feed-list.js +2 -0
  24. package/dist/esm/lib/components/activity-feed-list/index.js +2 -0
  25. package/dist/esm/lib/components/app-activity-item/app-activity-item.js +2 -0
  26. package/dist/esm/lib/components/app-activity-item/index.js +2 -0
  27. package/dist/esm/lib/components/app-activity-item/messages.js +6 -0
  28. package/dist/esm/lib/components/editor/editor.js +2 -0
  29. package/dist/esm/lib/components/editor/index.js +2 -0
  30. package/dist/esm/lib/components/empty-state/empty-state.js +2 -0
  31. package/dist/esm/lib/components/empty-state/index.js +2 -0
  32. package/dist/esm/lib/components/empty-state/messages.js +12 -0
  33. package/dist/esm/lib/components/header/header-filter-options.js +30 -0
  34. package/dist/esm/lib/components/header/header.js +2 -0
  35. package/dist/esm/lib/components/header/messages.js +44 -0
  36. package/dist/esm/lib/components/header/task-button/index.js +2 -0
  37. package/dist/esm/lib/components/header/task-button/messages.js +24 -0
  38. package/dist/esm/lib/components/header/task-button/task-button.js +2 -0
  39. package/dist/esm/lib/components/task-item/TaskItem.js +81 -0
  40. package/dist/esm/lib/components/task-item/TaskItemFooter.js +2 -0
  41. package/dist/esm/lib/components/task-item/components/assignee-list/AssigneeList.js +2 -0
  42. package/dist/esm/lib/components/task-item/components/assignee-list/index.js +2 -0
  43. package/dist/esm/lib/components/task-item/components/task-due-date/TaskDueDate.js +2 -0
  44. package/dist/esm/lib/components/task-item/components/task-due-date/index.js +2 -0
  45. package/dist/esm/lib/components/task-item/components/task-message/MessageRenderer.js +21 -0
  46. package/dist/esm/lib/components/task-item/components/task-message/TaskMessage.js +2 -0
  47. package/dist/esm/lib/components/task-item/components/task-message/index.js +2 -0
  48. package/dist/esm/lib/components/task-item/components/task-message/messages.js +24 -0
  49. package/dist/esm/lib/components/task-item/components/task-message/task-delete-confirmation-popover.js +2 -0
  50. package/dist/esm/lib/components/task-item/components/task-message/task-options-menu.js +2 -0
  51. package/dist/esm/lib/components/task-item/components/task-state/TaskState.js +2 -0
  52. package/dist/esm/lib/components/task-item/components/task-state/index.js +2 -0
  53. package/dist/esm/lib/components/task-item/components/task-state/messages.js +20 -0
  54. package/dist/esm/lib/components/task-item/index.js +6 -0
  55. package/dist/esm/lib/components/task-item/messages.js +76 -0
  56. package/dist/esm/lib/components/task-item/utils/task-item-helpers.js +22 -0
  57. package/dist/esm/lib/components/user-avatar/getInitials.js +5 -0
  58. package/dist/esm/lib/components/user-avatar/index.js +2 -0
  59. package/dist/esm/lib/components/user-avatar/user-avatar.js +22 -0
  60. package/dist/esm/lib/components/version-item/delete-version-item/delete-version-item.js +41 -0
  61. package/dist/esm/lib/components/version-item/delete-version-item/index.js +2 -0
  62. package/dist/esm/lib/components/version-item/divider-version-item/divider-version-item.js +20 -0
  63. package/dist/esm/lib/components/version-item/divider-version-item/index.js +2 -0
  64. package/dist/esm/lib/components/version-item/index.js +2 -0
  65. package/dist/esm/lib/components/version-item/messages.js +36 -0
  66. package/dist/esm/lib/components/version-item/version-item.js +52 -0
  67. package/dist/esm/lib/scroll/create-activity-feed-scroll.js +18 -0
  68. package/dist/esm/lib/scroll/index.js +4 -0
  69. package/dist/esm/lib/scroll/use-activity-feed-scroll.js +7 -0
  70. package/dist/esm/lib/test-utils/mocks/index.js +6 -0
  71. package/dist/esm/lib/test-utils/mocks/mock-collaboration-props.js +2 -0
  72. package/dist/esm/lib/test-utils/mocks/mock-feed-items.js +187 -0
  73. package/dist/esm/lib/test-utils/mocks/mock-mention-context.js +7 -0
  74. package/dist/esm/lib/test-utils/mocks/mock-user-selector-props.js +9 -0
  75. package/dist/esm/lib/test-utils/mocks/mock-users.js +86 -0
  76. package/dist/esm/lib/types/ActivityItem.js +0 -0
  77. package/dist/esm/lib/types/common.js +0 -0
  78. package/dist/esm/lib/types/index.js +0 -0
  79. package/dist/i18n/bn-IN.js +55 -0
  80. package/dist/i18n/bn-IN.properties +106 -0
  81. package/dist/i18n/da-DK.js +55 -0
  82. package/dist/i18n/da-DK.properties +106 -0
  83. package/dist/i18n/de-DE.js +55 -0
  84. package/dist/i18n/de-DE.properties +106 -0
  85. package/dist/i18n/en-AU.js +55 -0
  86. package/dist/i18n/en-AU.properties +106 -0
  87. package/dist/i18n/en-CA.js +55 -0
  88. package/dist/i18n/en-CA.properties +106 -0
  89. package/dist/i18n/en-GB.js +55 -0
  90. package/dist/i18n/en-GB.properties +106 -0
  91. package/dist/i18n/en-US.js +55 -0
  92. package/dist/i18n/en-US.properties +106 -0
  93. package/dist/i18n/en-x-pseudo.js +55 -0
  94. package/dist/i18n/en-x-pseudo.properties +106 -0
  95. package/dist/i18n/es-419.js +55 -0
  96. package/dist/i18n/es-419.properties +106 -0
  97. package/dist/i18n/es-ES.js +55 -0
  98. package/dist/i18n/es-ES.properties +106 -0
  99. package/dist/i18n/fi-FI.js +55 -0
  100. package/dist/i18n/fi-FI.properties +106 -0
  101. package/dist/i18n/fr-CA.js +55 -0
  102. package/dist/i18n/fr-CA.properties +106 -0
  103. package/dist/i18n/fr-FR.js +55 -0
  104. package/dist/i18n/fr-FR.properties +106 -0
  105. package/dist/i18n/hi-IN.js +55 -0
  106. package/dist/i18n/hi-IN.properties +106 -0
  107. package/dist/i18n/it-IT.js +55 -0
  108. package/dist/i18n/it-IT.properties +106 -0
  109. package/dist/i18n/ja-JP.js +55 -0
  110. package/dist/i18n/ja-JP.properties +106 -0
  111. package/dist/i18n/json/src/lib/components/app-activity-item/messages.json +1 -0
  112. package/dist/i18n/json/src/lib/components/empty-state/messages.json +1 -0
  113. package/dist/i18n/json/src/lib/components/header/messages.json +1 -0
  114. package/dist/i18n/json/src/lib/components/header/task-button/messages.json +1 -0
  115. package/dist/i18n/json/src/lib/components/task-item/components/task-message/messages.json +1 -0
  116. package/dist/i18n/json/src/lib/components/task-item/components/task-state/messages.json +1 -0
  117. package/dist/i18n/json/src/lib/components/task-item/messages.json +1 -0
  118. package/dist/i18n/json/src/lib/components/version-item/messages.json +1 -0
  119. package/dist/i18n/ko-KR.js +55 -0
  120. package/dist/i18n/ko-KR.properties +106 -0
  121. package/dist/i18n/nb-NO.js +55 -0
  122. package/dist/i18n/nb-NO.properties +106 -0
  123. package/dist/i18n/nl-NL.js +55 -0
  124. package/dist/i18n/nl-NL.properties +106 -0
  125. package/dist/i18n/pl-PL.js +55 -0
  126. package/dist/i18n/pl-PL.properties +106 -0
  127. package/dist/i18n/pt-BR.js +55 -0
  128. package/dist/i18n/pt-BR.properties +106 -0
  129. package/dist/i18n/ru-RU.js +55 -0
  130. package/dist/i18n/ru-RU.properties +106 -0
  131. package/dist/i18n/sv-SE.js +55 -0
  132. package/dist/i18n/sv-SE.properties +106 -0
  133. package/dist/i18n/tr-TR.js +55 -0
  134. package/dist/i18n/tr-TR.properties +106 -0
  135. package/dist/i18n/zh-CN.js +55 -0
  136. package/dist/i18n/zh-CN.properties +106 -0
  137. package/dist/i18n/zh-TW.js +55 -0
  138. package/dist/i18n/zh-TW.properties +106 -0
  139. package/dist/styles/AssigneeList.css +1 -0
  140. package/dist/styles/TaskDueDate.css +1 -0
  141. package/dist/styles/TaskItemFooter.css +1 -0
  142. package/dist/styles/TaskMessage.css +1 -0
  143. package/dist/styles/TaskState.css +1 -0
  144. package/dist/styles/activity-feed-list.css +1 -0
  145. package/dist/styles/activity-feed.css +1 -0
  146. package/dist/styles/app-activity-item.css +1 -0
  147. package/dist/styles/editor.css +1 -0
  148. package/dist/styles/empty-state.css +1 -0
  149. package/dist/styles/header.css +1 -0
  150. package/dist/styles/task-button.css +1 -0
  151. package/dist/styles/task-delete-confirmation-popover.css +1 -0
  152. package/dist/styles/task-options-menu.css +1 -0
  153. package/dist/styles/version-item.css +1 -0
  154. package/dist/types/index.d.ts +6 -0
  155. package/dist/types/lib/activity-feed.d.ts +62 -0
  156. package/dist/types/lib/components/activity-feed-list/activity-feed-list.d.ts +7 -0
  157. package/dist/types/lib/components/activity-feed-list/index.d.ts +1 -0
  158. package/dist/types/lib/components/app-activity-item/app-activity-item.d.ts +13 -0
  159. package/dist/types/lib/components/app-activity-item/index.d.ts +1 -0
  160. package/dist/types/lib/components/app-activity-item/messages.d.ts +7 -0
  161. package/dist/types/lib/components/editor/editor.d.ts +3 -0
  162. package/dist/types/lib/components/editor/index.d.ts +1 -0
  163. package/dist/types/lib/components/empty-state/empty-state.d.ts +1 -0
  164. package/dist/types/lib/components/empty-state/index.d.ts +1 -0
  165. package/dist/types/lib/components/empty-state/messages.d.ts +12 -0
  166. package/dist/types/lib/components/header/header-filter-options.d.ts +16 -0
  167. package/dist/types/lib/components/header/header.d.ts +49 -0
  168. package/dist/types/lib/components/header/messages.d.ts +52 -0
  169. package/dist/types/lib/components/header/stories/shared.d.ts +13 -0
  170. package/dist/types/lib/components/header/task-button/index.d.ts +1 -0
  171. package/dist/types/lib/components/header/task-button/messages.d.ts +27 -0
  172. package/dist/types/lib/components/header/task-button/task-button.d.ts +8 -0
  173. package/dist/types/lib/components/task-item/TaskItem.d.ts +3 -0
  174. package/dist/types/lib/components/task-item/TaskItemFooter.d.ts +19 -0
  175. package/dist/types/lib/components/task-item/components/assignee-list/AssigneeList.d.ts +11 -0
  176. package/dist/types/lib/components/task-item/components/assignee-list/index.d.ts +1 -0
  177. package/dist/types/lib/components/task-item/components/task-due-date/TaskDueDate.d.ts +5 -0
  178. package/dist/types/lib/components/task-item/components/task-due-date/index.d.ts +1 -0
  179. package/dist/types/lib/components/task-item/components/task-message/MessageRenderer.d.ts +6 -0
  180. package/dist/types/lib/components/task-item/components/task-message/TaskMessage.d.ts +16 -0
  181. package/dist/types/lib/components/task-item/components/task-message/index.d.ts +3 -0
  182. package/dist/types/lib/components/task-item/components/task-message/messages.d.ts +28 -0
  183. package/dist/types/lib/components/task-item/components/task-message/task-delete-confirmation-popover.d.ts +11 -0
  184. package/dist/types/lib/components/task-item/components/task-message/task-options-menu.d.ts +13 -0
  185. package/dist/types/lib/components/task-item/components/task-message/types.d.ts +19 -0
  186. package/dist/types/lib/components/task-item/components/task-state/TaskState.d.ts +28 -0
  187. package/dist/types/lib/components/task-item/components/task-state/index.d.ts +2 -0
  188. package/dist/types/lib/components/task-item/components/task-state/messages.d.ts +23 -0
  189. package/dist/types/lib/components/task-item/index.d.ts +12 -0
  190. package/dist/types/lib/components/task-item/messages.d.ts +93 -0
  191. package/dist/types/lib/components/task-item/types.d.ts +106 -0
  192. package/dist/types/lib/components/task-item/utils/task-item-helpers.d.ts +4 -0
  193. package/dist/types/lib/components/user-avatar/getInitials.d.ts +1 -0
  194. package/dist/types/lib/components/user-avatar/index.d.ts +1 -0
  195. package/dist/types/lib/components/user-avatar/user-avatar.d.ts +11 -0
  196. package/dist/types/lib/components/version-item/delete-version-item/delete-version-item.d.ts +8 -0
  197. package/dist/types/lib/components/version-item/delete-version-item/index.d.ts +1 -0
  198. package/dist/types/lib/components/version-item/divider-version-item/divider-version-item.d.ts +5 -0
  199. package/dist/types/lib/components/version-item/divider-version-item/index.d.ts +1 -0
  200. package/dist/types/lib/components/version-item/index.d.ts +1 -0
  201. package/dist/types/lib/components/version-item/messages.d.ts +42 -0
  202. package/dist/types/lib/components/version-item/version-item.d.ts +23 -0
  203. package/dist/types/lib/scroll/create-activity-feed-scroll.d.ts +2 -0
  204. package/dist/types/lib/scroll/index.d.ts +4 -0
  205. package/dist/types/lib/scroll/types.d.ts +10 -0
  206. package/dist/types/lib/scroll/use-activity-feed-scroll.d.ts +6 -0
  207. package/dist/types/lib/stories/map-activity-item.d.ts +18 -0
  208. package/dist/types/lib/stories/shared.d.ts +15 -0
  209. package/dist/types/lib/test-utils/button-utils.d.ts +14 -0
  210. package/dist/types/lib/test-utils/index.d.ts +1 -0
  211. package/dist/types/lib/test-utils/mocks/index.d.ts +5 -0
  212. package/dist/types/lib/test-utils/mocks/mock-collaboration-props.d.ts +9 -0
  213. package/dist/types/lib/test-utils/mocks/mock-feed-items.d.ts +20 -0
  214. package/dist/types/lib/test-utils/mocks/mock-mention-context.d.ts +2 -0
  215. package/dist/types/lib/test-utils/mocks/mock-user-selector-props.d.ts +2 -0
  216. package/dist/types/lib/test-utils/mocks/mock-users.d.ts +55 -0
  217. package/dist/types/lib/test-utils/text-utils.d.ts +3 -0
  218. package/dist/types/lib/types/ActivityItem.d.ts +145 -0
  219. package/dist/types/lib/types/common.d.ts +82 -0
  220. package/dist/types/lib/types/index.d.ts +3 -0
  221. package/package.json +56 -0
@@ -0,0 +1,76 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ var t = e({
3
+ taskLabel: {
4
+ id: "groupSharedFeatures.activityFeed.taskCard.taskLabel",
5
+ defaultMessage: "Task"
6
+ },
7
+ approvalTaskLabel: {
8
+ id: "groupSharedFeatures.activityFeed.taskCard.approvalTaskLabel",
9
+ defaultMessage: "Approval Task"
10
+ },
11
+ taskEditMenuItem: {
12
+ id: "groupSharedFeatures.activityFeed.taskCard.taskEditMenuItem",
13
+ defaultMessage: "Modify task"
14
+ },
15
+ taskDeleteMenuItem: {
16
+ id: "groupSharedFeatures.activityFeed.taskCard.taskDeleteMenuItem",
17
+ defaultMessage: "Delete task"
18
+ },
19
+ taskCompleteAction: {
20
+ id: "groupSharedFeatures.activityFeed.taskCard.taskCompleteAction",
21
+ defaultMessage: "Mark as Complete"
22
+ },
23
+ taskApproveAction: {
24
+ id: "groupSharedFeatures.activityFeed.taskCard.taskApproveAction",
25
+ defaultMessage: "Approve"
26
+ },
27
+ taskRejectAction: {
28
+ id: "groupSharedFeatures.activityFeed.taskCard.taskRejectAction",
29
+ defaultMessage: "Reject"
30
+ },
31
+ taskViewDetailsAction: {
32
+ id: "groupSharedFeatures.activityFeed.taskCard.taskViewDetailsAction",
33
+ defaultMessage: "View Task Details"
34
+ },
35
+ taskDueDateLabel: {
36
+ id: "groupSharedFeatures.activityFeed.taskCard.taskDueDateLabel",
37
+ defaultMessage: "Due {monthDay} {time}"
38
+ },
39
+ assigneeRowStatusCompleted: {
40
+ id: "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusCompleted",
41
+ defaultMessage: "Completed"
42
+ },
43
+ assigneeRowStatusApproved: {
44
+ id: "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusApproved",
45
+ defaultMessage: "Approved"
46
+ },
47
+ assigneeRowStatusRejected: {
48
+ id: "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusRejected",
49
+ defaultMessage: "Rejected"
50
+ },
51
+ showMoreAssignees: {
52
+ id: "groupSharedFeatures.activityFeed.taskCard.showMoreAssignees",
53
+ defaultMessage: "Show {count} More"
54
+ },
55
+ showMoreAssigneesApproximate: {
56
+ id: "groupSharedFeatures.activityFeed.taskCard.showMoreAssigneesApproximate",
57
+ defaultMessage: "Show {count}+ More"
58
+ },
59
+ showMore: {
60
+ id: "groupSharedFeatures.activityFeed.taskCard.showMore",
61
+ defaultMessage: "Show More"
62
+ },
63
+ showLessAssignees: {
64
+ id: "groupSharedFeatures.activityFeed.taskCard.showLessAssignees",
65
+ defaultMessage: "Show Less"
66
+ },
67
+ loadingAssignees: {
68
+ id: "groupSharedFeatures.activityFeed.taskCard.loadingAssignees",
69
+ defaultMessage: "Loading..."
70
+ },
71
+ loadAssigneesError: {
72
+ id: "groupSharedFeatures.activityFeed.taskCard.loadAssigneesError",
73
+ defaultMessage: "Failed to load assignees. Try again."
74
+ }
75
+ });
76
+ export { t as default };
@@ -0,0 +1,22 @@
1
+ var e = (e) => e ? {
2
+ type: "doc",
3
+ content: e.split("\n").map((e) => ({
4
+ type: "paragraph",
5
+ content: e ? [{
6
+ type: "text",
7
+ text: e
8
+ }] : []
9
+ }))
10
+ } : {
11
+ type: "doc",
12
+ content: [{
13
+ type: "paragraph",
14
+ content: []
15
+ }]
16
+ }, t = (e, t) => ({
17
+ avatarUrl: t?.(e.id) ?? e.avatarUrl,
18
+ email: e.email ?? "",
19
+ id: e.id,
20
+ name: e.name
21
+ });
22
+ export { t as taskAuthorToTaskMessageAuthor, e as taskDescriptionToDocument };
@@ -0,0 +1,5 @@
1
+ var e = (e) => {
2
+ let t = e.replace(/[[({<]+.*[\])}>]+/g, "").trim();
3
+ return (t.slice(0, 1) + t.slice(t.lastIndexOf(" ") + 1, t.lastIndexOf(" ") + 2)).toUpperCase();
4
+ };
5
+ export { e as getInitials };
@@ -0,0 +1,2 @@
1
+ import { UserAvatar as e } from "./user-avatar.js";
2
+ export { e as UserAvatar };
@@ -0,0 +1,22 @@
1
+ import { getInitials as e } from "./getInitials.js";
2
+ import { Avatar as t, IconBadge as n } from "@box/blueprint-web";
3
+ import { jsx as r } from "react/jsx-runtime";
4
+ function i({ user: i, size: a = "small" }) {
5
+ let { name: o, isExternal: s, id: c, avatarUrl: l } = i, u = l ?? "", d = e(o), f = /* @__PURE__ */ r(t, {
6
+ alt: o,
7
+ colorIndex: parseInt(c, 10) || 0,
8
+ size: a,
9
+ src: u,
10
+ text: d
11
+ }), p;
12
+ return p = a === "large" ? "medium" : a === "xsmall" ? "small" : a, s ? /* @__PURE__ */ r(n, {
13
+ offset: {
14
+ right: -4,
15
+ bottom: -2
16
+ },
17
+ size: p,
18
+ variant: "collaborator-external",
19
+ children: f
20
+ }) : f;
21
+ }
22
+ export { i as UserAvatar };
@@ -0,0 +1,41 @@
1
+ import { t as e } from "../../../../../chunks/version-item.module.js";
2
+ import { messages as t } from "../messages.js";
3
+ import { Avatar as n, Text as r } from "@box/blueprint-web";
4
+ import { useIntl as i } from "react-intl";
5
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ import { ReadableTime as s } from "@box/readable-time";
7
+ var c = ({ authorName: c, avatarUrl: l, createdAt: u, id: d, versionNumber: f }) => {
8
+ let { formatMessage: p } = i(), m = parseInt(d, 10), h = Number.isNaN(m) ? 0 : m % 10, g = u ? t.versionDeleted : t.versionDeletedNoTimestamp, _ = {
9
+ authorName: /* @__PURE__ */ a(r, {
10
+ as: "span",
11
+ color: "textOnLightSecondary",
12
+ variant: "bodyDefaultSemibold",
13
+ children: c
14
+ }),
15
+ versionNumber: f
16
+ };
17
+ return u && (_.timestamp = /* @__PURE__ */ a(s, {
18
+ textProps: {
19
+ as: "span",
20
+ color: "textOnLightSecondary",
21
+ variant: "bodyDefault"
22
+ },
23
+ timestamp: u
24
+ })), /* @__PURE__ */ o("div", {
25
+ className: e.deleteItem,
26
+ children: [/* @__PURE__ */ a(n, {
27
+ alt: c ?? "",
28
+ colorIndex: h,
29
+ size: "small",
30
+ src: l ?? "",
31
+ text: c?.charAt(0) ?? ""
32
+ }), /* @__PURE__ */ a(r, {
33
+ as: "span",
34
+ className: e.deleteMessage,
35
+ color: "textOnLightSecondary",
36
+ variant: "bodyDefault",
37
+ children: p(g, _)
38
+ })]
39
+ });
40
+ };
41
+ export { c as DeleteVersionItem };
@@ -0,0 +1,2 @@
1
+ import { DeleteVersionItem as e } from "./delete-version-item.js";
2
+ export { e as DeleteVersionItem };
@@ -0,0 +1,20 @@
1
+ import { t as e } from "../../../../../chunks/version-item.module.js";
2
+ import { Text as t } from "@box/blueprint-web";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ var i = ({ children: i }) => /* @__PURE__ */ r("div", {
5
+ className: e.versionItem,
6
+ children: [
7
+ /* @__PURE__ */ n("div", { className: e.line }),
8
+ /* @__PURE__ */ n("div", {
9
+ className: e.content,
10
+ children: /* @__PURE__ */ n(t, {
11
+ as: "span",
12
+ color: "textOnLightSecondary",
13
+ variant: "bodyDefaultSemibold",
14
+ children: i
15
+ })
16
+ }),
17
+ /* @__PURE__ */ n("div", { className: e.line })
18
+ ]
19
+ });
20
+ export { i as DividerVersionItem };
@@ -0,0 +1,2 @@
1
+ import { DividerVersionItem as e } from "./divider-version-item.js";
2
+ export { e as DividerVersionItem };
@@ -0,0 +1,2 @@
1
+ import { VersionItem as e } from "./version-item.js";
2
+ export { e as VersionItem };
@@ -0,0 +1,36 @@
1
+ import { defineMessages as e } from "react-intl";
2
+ var t = e({
3
+ appPromoted: {
4
+ id: "groupSharedFeatures.activityFeed.versionItem.appPromoted",
5
+ defaultMessage: "{appName} Promoted: <badge>V{versionNumber}</badge>"
6
+ },
7
+ appRestored: {
8
+ id: "groupSharedFeatures.activityFeed.versionItem.appRestored",
9
+ defaultMessage: "{appName} Restored: <badge>V{versionNumber}</badge>"
10
+ },
11
+ appUploaded: {
12
+ id: "groupSharedFeatures.activityFeed.versionItem.appUploaded",
13
+ defaultMessage: "{appName} Uploaded: <badge>V{versionNumber}</badge>"
14
+ },
15
+ versionDeleted: {
16
+ id: "groupSharedFeatures.activityFeed.versionItem.versionDeleted",
17
+ defaultMessage: "{authorName} deleted V{versionNumber} · {timestamp}"
18
+ },
19
+ versionDeletedNoTimestamp: {
20
+ id: "groupSharedFeatures.activityFeed.versionItem.versionDeletedNoTimestamp",
21
+ defaultMessage: "{authorName} deleted V{versionNumber}"
22
+ },
23
+ versionPromoted: {
24
+ id: "groupSharedFeatures.activityFeed.versionItem.versionPromoted",
25
+ defaultMessage: "Version Promoted: <badge>V{versionNumber}</badge>"
26
+ },
27
+ versionRestored: {
28
+ id: "groupSharedFeatures.activityFeed.versionItem.versionRestored",
29
+ defaultMessage: "Version Restored: <badge>V{versionNumber}</badge>"
30
+ },
31
+ versionUploaded: {
32
+ id: "groupSharedFeatures.activityFeed.versionItem.versionUploaded",
33
+ defaultMessage: "Version Uploaded: <badge>V{versionNumber}</badge>"
34
+ }
35
+ });
36
+ export { t as messages };
@@ -0,0 +1,52 @@
1
+ import { t as e } from "../../../../chunks/version-item.module.js";
2
+ import { messages as t } from "./messages.js";
3
+ import { DeleteVersionItem as n } from "./delete-version-item/delete-version-item.js";
4
+ import { DividerVersionItem as r } from "./divider-version-item/divider-version-item.js";
5
+ import { Text as i } from "@box/blueprint-web";
6
+ import { FormattedMessage as a } from "react-intl";
7
+ import { jsx as o } from "react/jsx-runtime";
8
+ var s = {
9
+ promote: t.versionPromoted,
10
+ restore: t.versionRestored,
11
+ upload: t.versionUploaded
12
+ }, c = {
13
+ promote: t.appPromoted,
14
+ restore: t.appRestored,
15
+ upload: t.appUploaded
16
+ }, l = ({ actionType: t = "upload", appName: l, authorName: u, avatarUrl: d, createdAt: f, id: p, onVersionClick: m, versionNumber: h }) => {
17
+ if (t === "delete") return /* @__PURE__ */ o(n, {
18
+ authorName: u,
19
+ avatarUrl: d,
20
+ createdAt: f,
21
+ id: p,
22
+ versionNumber: h
23
+ });
24
+ let g = () => {
25
+ m?.({
26
+ id: p,
27
+ versionNumber: h
28
+ });
29
+ }, _ = l ? c[t] : s[t];
30
+ if (!_) return null;
31
+ let v = (t) => m ? /* @__PURE__ */ o("button", {
32
+ className: e.badgeButton,
33
+ onClick: g,
34
+ type: "button",
35
+ children: t
36
+ }) : /* @__PURE__ */ o(i, {
37
+ as: "span",
38
+ className: e.badge,
39
+ color: "textOnLightSecondary",
40
+ variant: "labelBold",
41
+ children: t
42
+ });
43
+ return /* @__PURE__ */ o(r, { children: /* @__PURE__ */ o(a, {
44
+ ..._,
45
+ values: {
46
+ appName: l,
47
+ badge: v,
48
+ versionNumber: h
49
+ }
50
+ }) });
51
+ };
52
+ export { l as VersionItem };
@@ -0,0 +1,18 @@
1
+ function e() {
2
+ let e = null, t = (t) => {
3
+ e = t;
4
+ }, n = { scrollTo: (t) => {
5
+ let n = e?.querySelector(`[data-activity-id="${CSS.escape(t)}"]`);
6
+ return n ? (n.scrollIntoView({
7
+ behavior: "smooth",
8
+ block: "nearest"
9
+ }), !0) : !1;
10
+ } };
11
+ return Object.defineProperty(n, "attachContainer", {
12
+ configurable: !0,
13
+ enumerable: !1,
14
+ value: t,
15
+ writable: !0
16
+ }), n;
17
+ }
18
+ export { e as createActivityFeedScroll };
@@ -0,0 +1,4 @@
1
+ import { createActivityFeedScroll as e } from "./create-activity-feed-scroll.js";
2
+ import { t } from "../../../chunks/scroll.js";
3
+ import { useActivityFeedScroll as n } from "./use-activity-feed-scroll.js";
4
+ export { e as createActivityFeedScroll, t as isAttachableActivityFeedScrollHandle, n as useActivityFeedScroll };
@@ -0,0 +1,7 @@
1
+ import { createActivityFeedScroll as e } from "./create-activity-feed-scroll.js";
2
+ import { useRef as t } from "react";
3
+ function n() {
4
+ let n = t(null);
5
+ return n.current ||= e(), n.current;
6
+ }
7
+ export { n as useActivityFeedScroll };
@@ -0,0 +1,6 @@
1
+ import { t as e } from "../../../../chunks/mock-collaboration-props.js";
2
+ import { MOCK_ANNOTATION_THREAD as t, MOCK_APP_ACTIVITY_SHARED as n, MOCK_APP_ACTIVITY_WORKFLOW as r, MOCK_COMMENT_THREAD as i, MOCK_FEED_ITEMS as a, MOCK_RESOLVED_COMMENT_THREAD as o, MOCK_TASK_APPROVED as s, MOCK_TASK_IN_PROGRESS as c, MOCK_VERSION_RESTORED as l, MOCK_VERSION_UPLOADED as u } from "./mock-feed-items.js";
3
+ import { createMockMentionContext as d } from "./mock-mention-context.js";
4
+ import { MOCK_USERS as f, MOCK_USER_SELECTOR_USERS as p } from "./mock-users.js";
5
+ import { createDefaultUserSelectorProps as m } from "./mock-user-selector-props.js";
6
+ export { t as MOCK_ANNOTATION_THREAD, n as MOCK_APP_ACTIVITY_SHARED, r as MOCK_APP_ACTIVITY_WORKFLOW, i as MOCK_COMMENT_THREAD, a as MOCK_FEED_ITEMS, o as MOCK_RESOLVED_COMMENT_THREAD, s as MOCK_TASK_APPROVED, c as MOCK_TASK_IN_PROGRESS, f as MOCK_USERS, p as MOCK_USER_SELECTOR_USERS, l as MOCK_VERSION_RESTORED, u as MOCK_VERSION_UPLOADED, m as createDefaultUserSelectorProps, e as createMockCollaborationPopoverProps, d as createMockMentionContext };
@@ -0,0 +1,2 @@
1
+ import { t as e } from "../../../../chunks/mock-collaboration-props.js";
2
+ export { e as createMockCollaborationPopoverProps };
@@ -0,0 +1,187 @@
1
+ var e = 60 * 1e3, t = 60 * e, n = 24 * t, r = 17096544e5, i = (e) => ({
2
+ content: [{
3
+ content: [{
4
+ text: e,
5
+ type: "text"
6
+ }],
7
+ type: "paragraph"
8
+ }],
9
+ type: "doc"
10
+ }), a = {
11
+ activityType: "comment",
12
+ author: {
13
+ avatarUrl: "https://cdn01.boxcdn.net/app-assets/aistudio/discover/avatars/lperry-avatar.png",
14
+ id: "101",
15
+ name: "Liam Perry"
16
+ },
17
+ body: i("Can we tighten the copy in the header? \"Comments\" feels generic."),
18
+ createdAt: r - 2 * t,
19
+ id: "comment-root",
20
+ permissions: {
21
+ canDelete: !0,
22
+ canEdit: !0,
23
+ canReply: !0,
24
+ canResolve: !0
25
+ },
26
+ replies: [{
27
+ activityType: "comment",
28
+ author: {
29
+ avatarUrl: "https://cdn01.boxcdn.net/app-assets/aistudio/discover/avatars/msyu-avatar.png",
30
+ id: "102",
31
+ name: "Mia Syu"
32
+ },
33
+ body: i("Agreed — proposed copy: \"Activity\"?"),
34
+ createdAt: r - 1 * t,
35
+ id: "comment-reply-1",
36
+ permissions: {
37
+ canDelete: !0,
38
+ canEdit: !0,
39
+ canReply: !0,
40
+ canResolve: !1
41
+ },
42
+ replies: []
43
+ }],
44
+ status: "open"
45
+ }, o = {
46
+ activityType: "comment",
47
+ author: {
48
+ id: "103",
49
+ name: "Bilal Khan"
50
+ },
51
+ body: i("Resolved last week — dropped the deprecated icon."),
52
+ createdAt: r - 7 * n,
53
+ id: "comment-resolved",
54
+ modifiedAt: r - 6 * n,
55
+ permissions: {
56
+ canDelete: !1,
57
+ canEdit: !1,
58
+ canReply: !1,
59
+ canResolve: !0
60
+ },
61
+ replies: [],
62
+ status: "resolved"
63
+ }, s = {
64
+ activityType: "annotation",
65
+ annotationTarget: {
66
+ page: 3,
67
+ type: "point"
68
+ },
69
+ author: {
70
+ id: "104",
71
+ name: "Priya Iyer"
72
+ },
73
+ body: i("Add a callout here pointing to the diagram."),
74
+ createdAt: r - 30 * e,
75
+ id: "annotation-1",
76
+ permissions: {
77
+ canDelete: !0,
78
+ canEdit: !0,
79
+ canReply: !0,
80
+ canResolve: !0
81
+ },
82
+ replies: [],
83
+ status: "open"
84
+ }, c = {
85
+ activityType: "task",
86
+ assignees: [{
87
+ avatarUrl: "https://cdn01.boxcdn.net/app-assets/aistudio/discover/avatars/bkus-avatar.png",
88
+ id: "999",
89
+ name: "You",
90
+ status: "NOT_STARTED"
91
+ }, {
92
+ id: "888",
93
+ isExternal: !0,
94
+ name: "External reviewer",
95
+ status: "NOT_STARTED"
96
+ }],
97
+ author: {
98
+ id: "203",
99
+ name: "Morgan Patel"
100
+ },
101
+ completionRule: "ALL_ASSIGNEES",
102
+ createdAt: r - 4 * t,
103
+ description: "Review the redlines and confirm whether the new contract clauses are acceptable.",
104
+ dueAt: r + 3 * n,
105
+ id: "task-in-progress",
106
+ name: "Review final contract",
107
+ permissions: {
108
+ canDelete: !0,
109
+ canUpdate: !0
110
+ },
111
+ status: "IN_PROGRESS"
112
+ }, l = {
113
+ activityType: "task",
114
+ assignees: [{
115
+ id: "999",
116
+ name: "You",
117
+ status: "APPROVED",
118
+ completedAt: r - 1 * n
119
+ }],
120
+ author: {
121
+ id: "204",
122
+ name: "Jamal Davis"
123
+ },
124
+ completionRule: "ANY_ASSIGNEE",
125
+ createdAt: r - 5 * n,
126
+ description: "Sign off on the v3 launch checklist.",
127
+ id: "task-approved",
128
+ name: "Approve launch checklist",
129
+ permissions: {
130
+ canDelete: !1,
131
+ canUpdate: !1
132
+ },
133
+ status: "APPROVED"
134
+ }, u = {
135
+ activityType: "app_activity",
136
+ appIconUrl: "https://cdn01.boxcdn.net/app-assets/preview/box-social.jpeg",
137
+ appName: "Box for Slack",
138
+ author: {
139
+ id: "301",
140
+ name: "Box for Slack"
141
+ },
142
+ createdAt: r - 6 * t,
143
+ id: "app-activity-shared",
144
+ renderedText: "shared this file in <a href=\"https://www.box.com\" data-resin-target=\"app_activity_external\" data-resin-action=\"click\">#design-reviews</a>"
145
+ }, d = {
146
+ activityType: "app_activity",
147
+ appIconUrl: "https://cdn01.boxcdn.net/app-assets/preview/box-social.jpeg",
148
+ appName: "Box Relay",
149
+ author: {
150
+ id: "302",
151
+ name: "Box Relay"
152
+ },
153
+ createdAt: r - 8 * t,
154
+ id: "app-activity-workflow",
155
+ renderedText: "completed workflow step \"Review and Approve\""
156
+ }, f = {
157
+ actionType: "upload",
158
+ activityType: "version",
159
+ author: {
160
+ id: "401",
161
+ name: "Priya Kumar"
162
+ },
163
+ createdAt: r - 12 * t,
164
+ id: "version-uploaded",
165
+ versionNumber: 28
166
+ }, p = {
167
+ actionType: "restore",
168
+ activityType: "version",
169
+ author: {
170
+ id: "402",
171
+ name: "Alex Rivera"
172
+ },
173
+ createdAt: r - 2 * n,
174
+ id: "version-restored",
175
+ versionNumber: 24
176
+ }, m = [
177
+ s,
178
+ a,
179
+ c,
180
+ f,
181
+ u,
182
+ l,
183
+ p,
184
+ o,
185
+ d
186
+ ];
187
+ export { s as MOCK_ANNOTATION_THREAD, u as MOCK_APP_ACTIVITY_SHARED, d as MOCK_APP_ACTIVITY_WORKFLOW, a as MOCK_COMMENT_THREAD, m as MOCK_FEED_ITEMS, o as MOCK_RESOLVED_COMMENT_THREAD, l as MOCK_TASK_APPROVED, c as MOCK_TASK_IN_PROGRESS, p as MOCK_VERSION_RESTORED, f as MOCK_VERSION_UPLOADED };
@@ -0,0 +1,7 @@
1
+ import { t as e } from "../../../../chunks/mock-collaboration-props.js";
2
+ var t = () => ({
3
+ collaborationPopoverProps: e(),
4
+ getAvatarUrl: (e) => `/img/avatar-${e}.svg`,
5
+ fetchCollaboratorState: async () => !0
6
+ });
7
+ export { t as createMockMentionContext };
@@ -0,0 +1,9 @@
1
+ import { MOCK_USER_SELECTOR_USERS as e } from "./mock-users.js";
2
+ var t = (t = e) => async (e) => (await new Promise((e) => setTimeout(e, 100)), t.filter((t) => t.name.toLowerCase().includes(e.toLowerCase()) || t.email.toLowerCase().includes(e.toLowerCase())).slice(0, 5)), n = () => async () => (await new Promise((e) => setTimeout(e, 50)), {}), r = () => ({
3
+ fetchUsers: t(),
4
+ fetchAvatarUrls: n(),
5
+ allowEmptyQuery: !0,
6
+ ariaRoleDescription: "User selector for mentions",
7
+ loadingAriaLabel: "Loading users..."
8
+ });
9
+ export { r as createDefaultUserSelectorProps };
@@ -0,0 +1,86 @@
1
+ var e = {
2
+ LIAM_FOSTER: {
3
+ avatarUrl: "/img/avatar.svg",
4
+ email: "liam.foster@example.com",
5
+ id: 1,
6
+ name: "Liam Foster",
7
+ value: "Liam Foster",
8
+ isExternalUser: !1
9
+ },
10
+ SARAH_CHEN: {
11
+ email: "sarah.chen@example.com",
12
+ id: 2,
13
+ name: "Sarah Chen",
14
+ value: "Sarah Chen",
15
+ isExternalUser: !0
16
+ },
17
+ ALEX_RODRIGUEZ: {
18
+ email: "alex.rodriguez@example.com",
19
+ id: 3,
20
+ name: "Alex Rodriguez",
21
+ value: "Alex Rodriguez",
22
+ isExternalUser: !1
23
+ },
24
+ EMMA_WILSON: {
25
+ avatarUrl: "/img/avatar.svg",
26
+ email: "emma.wilson@external.com",
27
+ id: 4,
28
+ name: "Emma Wilson",
29
+ value: "Emma Wilson",
30
+ isExternalUser: !0
31
+ },
32
+ DAVID_THOMPSON: {
33
+ email: "david.thompson@example.com",
34
+ id: 12312312,
35
+ name: "David Thompson",
36
+ value: "David Thompson",
37
+ isExternalUser: !1
38
+ },
39
+ TEST_USER: {
40
+ id: 1213123,
41
+ name: "Test User",
42
+ email: "test@box.com",
43
+ isExternalUser: !1,
44
+ value: "Test User"
45
+ },
46
+ CURRENT_USER: {
47
+ email: "you@example.com",
48
+ id: 999,
49
+ name: "Test User",
50
+ value: "Test User",
51
+ isExternalUser: !1
52
+ }
53
+ }, t = [
54
+ {
55
+ email: "abc@box.com",
56
+ id: 12312312,
57
+ name: "A",
58
+ value: "A"
59
+ },
60
+ {
61
+ email: "def@box.com",
62
+ id: 2324432,
63
+ name: "B",
64
+ value: "B"
65
+ },
66
+ {
67
+ email: "test@email.com",
68
+ id: 343242323,
69
+ name: "Test User",
70
+ value: "Test User"
71
+ },
72
+ {
73
+ email: "bartholomew@box.com",
74
+ id: 41231423,
75
+ name: "Bartholomew Constantine",
76
+ value: "Bartholomew Constantine"
77
+ },
78
+ {
79
+ email: "lorem@box.com",
80
+ id: 5123123123,
81
+ name: "Lorem ipsum dolor sitamet",
82
+ value: "Lorem ipsum dolor sitamet",
83
+ isExternalUser: !0
84
+ }
85
+ ];
86
+ export { e as MOCK_USERS, t as MOCK_USER_SELECTOR_USERS };
File without changes
File without changes
File without changes