@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,55 @@
1
+ export default {
2
+ "groupSharedFeatures.activityFeed.activityItemText": "{appName}: {parsedContent} · {timestamp}",
3
+ "groupSharedFeatures.activityFeed.emptyState.body": "发表评论,开启对话。使用 @ 提及此文件中的协作者。",
4
+ "groupSharedFeatures.activityFeed.emptyState.title": "尚无评论",
5
+ "groupSharedFeatures.activityFeed.header.closeAriaLabel": "关闭",
6
+ "groupSharedFeatures.activityFeed.header.filterAriaLabel": "筛选",
7
+ "groupSharedFeatures.activityFeed.header.filtersTitle": "过滤器",
8
+ "groupSharedFeatures.activityFeed.header.hideResolvedComments": "仅未解决",
9
+ "groupSharedFeatures.activityFeed.header.hideResolvedCommentsDescription": "不包括已标记为已解决的评论",
10
+ "groupSharedFeatures.activityFeed.header.mentionMe": "提及我",
11
+ "groupSharedFeatures.activityFeed.header.mentionMeDescription": "您被 @ 提及的评论",
12
+ "groupSharedFeatures.activityFeed.header.mentionMeDescriptionWithTasks": "您被 @ 提及的评论以及分配给您的任务",
13
+ "groupSharedFeatures.activityFeed.header.showResolvedComments": "显示已解决评论",
14
+ "groupSharedFeatures.activityFeed.header.showResolvedCommentsDescription": "已标记为已解决的评论",
15
+ "groupSharedFeatures.activityFeed.header.taskButton.addTaskLabel": "添加任务",
16
+ "groupSharedFeatures.activityFeed.header.taskButton.approvalTaskDescription": "受理人将负责批准或拒绝任务",
17
+ "groupSharedFeatures.activityFeed.header.taskButton.approvalTaskTitle": "审批任务",
18
+ "groupSharedFeatures.activityFeed.header.taskButton.generalTaskDescription": "受理人将负责将任务标记为已完成",
19
+ "groupSharedFeatures.activityFeed.header.taskButton.generalTaskTitle": "常规任务",
20
+ "groupSharedFeatures.activityFeed.taskCard.approvalTaskLabel": "审批任务",
21
+ "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusApproved": "已批准",
22
+ "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusCompleted": "已完成",
23
+ "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusRejected": "已拒绝",
24
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationBody": "删除此任务?此操作无法撤销。",
25
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationCancel": "取消",
26
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationConfirm": "删除",
27
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationDialogAriaLabel": "删除任务确认",
28
+ "groupSharedFeatures.activityFeed.taskCard.loadAssigneesError": "无法加载受理人。请重试。",
29
+ "groupSharedFeatures.activityFeed.taskCard.loadingAssignees": "正在加载…",
30
+ "groupSharedFeatures.activityFeed.taskCard.moreOptionsAriaLabel": "更多选项按钮",
31
+ "groupSharedFeatures.activityFeed.taskCard.showLessAssignees": "收起",
32
+ "groupSharedFeatures.activityFeed.taskCard.showMore": "显示更多",
33
+ "groupSharedFeatures.activityFeed.taskCard.showMoreAssignees": "显示更多 {count} 个",
34
+ "groupSharedFeatures.activityFeed.taskCard.showMoreAssigneesApproximate": "显示更多 {count}+",
35
+ "groupSharedFeatures.activityFeed.taskCard.taskApproveAction": "同意",
36
+ "groupSharedFeatures.activityFeed.taskCard.taskCompleteAction": "标记为完成",
37
+ "groupSharedFeatures.activityFeed.taskCard.taskDeleteMenuItem": "删除任务",
38
+ "groupSharedFeatures.activityFeed.taskCard.taskDueDateLabel": "到期 {monthDay} {time}",
39
+ "groupSharedFeatures.activityFeed.taskCard.taskEditMenuItem": "修改任务",
40
+ "groupSharedFeatures.activityFeed.taskCard.taskLabel": "任务",
41
+ "groupSharedFeatures.activityFeed.taskCard.taskRejectAction": "拒绝",
42
+ "groupSharedFeatures.activityFeed.taskCard.taskViewDetailsAction": "查看任务详细信息",
43
+ "groupSharedFeatures.activityFeed.taskState.approvedHeadline": "已批准",
44
+ "groupSharedFeatures.activityFeed.taskState.completedCountParenthetical": "({completedCount} / {totalCount})",
45
+ "groupSharedFeatures.activityFeed.taskState.completedHeadline": "已完成",
46
+ "groupSharedFeatures.activityFeed.taskState.rejectedHeadline": "已拒绝",
47
+ "groupSharedFeatures.activityFeed.versionItem.appPromoted": "{appName} 已提升:<badge>V{versionNumber}</badge>",
48
+ "groupSharedFeatures.activityFeed.versionItem.appRestored": "{appName} 已恢复:<badge>V{versionNumber}</badge>",
49
+ "groupSharedFeatures.activityFeed.versionItem.appUploaded": "{appName} 已上传:<badge>V{versionNumber}</badge>",
50
+ "groupSharedFeatures.activityFeed.versionItem.versionDeleted": "{authorName} 已删除 V{versionNumber} · {timestamp}",
51
+ "groupSharedFeatures.activityFeed.versionItem.versionDeletedNoTimestamp": "{authorName} 已删除 V{versionNumber}",
52
+ "groupSharedFeatures.activityFeed.versionItem.versionPromoted": "版本已提升:<badge>V{versionNumber}</badge>",
53
+ "groupSharedFeatures.activityFeed.versionItem.versionRestored": "版本已恢复:<badge>V{versionNumber}</badge>",
54
+ "groupSharedFeatures.activityFeed.versionItem.versionUploaded": "版本已上传:<badge>V{versionNumber}</badge>"
55
+ }
@@ -0,0 +1,106 @@
1
+ # Text for an activity item in the activity feed
2
+ groupSharedFeatures.activityFeed.activityItemText = {appName}: {parsedContent} · {timestamp}
3
+ # Body text shown in the activity feed empty state
4
+ groupSharedFeatures.activityFeed.emptyState.body = 发表评论,开启对话。使用 @ 提及此文件中的协作者。
5
+ # Title shown in the activity feed empty state
6
+ groupSharedFeatures.activityFeed.emptyState.title = 尚无评论
7
+ # Aria label for the close button in the activity feed header
8
+ groupSharedFeatures.activityFeed.header.closeAriaLabel = 关闭
9
+ # Aria label for the filter toggle button in the activity feed header
10
+ groupSharedFeatures.activityFeed.header.filterAriaLabel = 筛选
11
+ # Title label for the filters dropdown in the activity feed header
12
+ groupSharedFeatures.activityFeed.header.filtersTitle = 过滤器
13
+ # Label for the filter option that hides resolved comments
14
+ groupSharedFeatures.activityFeed.header.hideResolvedComments = 仅未解决
15
+ # Description for the filter option that hides resolved comments
16
+ groupSharedFeatures.activityFeed.header.hideResolvedCommentsDescription = 不包括已标记为已解决的评论
17
+ # Label for the filter option that shows only comments mentioning the current user
18
+ groupSharedFeatures.activityFeed.header.mentionMe = 提及我
19
+ # Description for the mention-me filter (comments only)
20
+ groupSharedFeatures.activityFeed.header.mentionMeDescription = 您被 @ 提及的评论
21
+ # Description for the mention-me filter (comments and tasks)
22
+ groupSharedFeatures.activityFeed.header.mentionMeDescriptionWithTasks = 您被 @ 提及的评论以及分配给您的任务
23
+ # Label for the filter option that includes resolved comments
24
+ groupSharedFeatures.activityFeed.header.showResolvedComments = 显示已解决评论
25
+ # Description for the filter option that includes resolved comments
26
+ groupSharedFeatures.activityFeed.header.showResolvedCommentsDescription = 已标记为已解决的评论
27
+ # Label for the dropdown trigger button that opens the task type menu
28
+ groupSharedFeatures.activityFeed.header.taskButton.addTaskLabel = 添加任务
29
+ # Description for the approval task menu item in the add task dropdown
30
+ groupSharedFeatures.activityFeed.header.taskButton.approvalTaskDescription = 受理人将负责批准或拒绝任务
31
+ # Title for the approval task menu item in the add task dropdown
32
+ groupSharedFeatures.activityFeed.header.taskButton.approvalTaskTitle = 审批任务
33
+ # Description for the general task menu item in the add task dropdown
34
+ groupSharedFeatures.activityFeed.header.taskButton.generalTaskDescription = 受理人将负责将任务标记为已完成
35
+ # Title for the general task menu item in the add task dropdown
36
+ groupSharedFeatures.activityFeed.header.taskButton.generalTaskTitle = 常规任务
37
+ # Label header for approval task card
38
+ groupSharedFeatures.activityFeed.taskCard.approvalTaskLabel = 审批任务
39
+ # Per-assignee row suffix when the assignee approved an approval task
40
+ groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusApproved = 已批准
41
+ # Per-assignee row suffix when the assignee has completed (sentence case, green in UI)
42
+ groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusCompleted = 已完成
43
+ # Per-assignee row suffix when the assignee rejected an approval task
44
+ groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusRejected = 已拒绝
45
+ # Confirmation message when deleting a task from the task message options
46
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationBody = 删除此任务?此操作无法撤销。
47
+ # Cancel button on delete task confirmation popover
48
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationCancel = 取消
49
+ # Confirm delete button on delete task confirmation popover
50
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationConfirm = 删除
51
+ # Accessible name for the delete task confirmation popover
52
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationDialogAriaLabel = 删除任务确认
53
+ # Error message when fetching more assignees from server fails
54
+ groupSharedFeatures.activityFeed.taskCard.loadAssigneesError = 无法加载受理人。请重试。
55
+ # Loading state text when fetching more assignees from server
56
+ groupSharedFeatures.activityFeed.taskCard.loadingAssignees = 正在加载…
57
+ # Aria label for more options button in task message
58
+ groupSharedFeatures.activityFeed.taskCard.moreOptionsAriaLabel = 更多选项按钮
59
+ # Button to hide additional assignees
60
+ groupSharedFeatures.activityFeed.taskCard.showLessAssignees = 收起
61
+ # Button to load more assignees from server when count is unknown
62
+ groupSharedFeatures.activityFeed.taskCard.showMore = 显示更多
63
+ # Button to show more assignees when exact count is known
64
+ groupSharedFeatures.activityFeed.taskCard.showMoreAssignees = 显示更多 {count} 个
65
+ # Button to show more assignees when approximate count (at least this many more on server)
66
+ groupSharedFeatures.activityFeed.taskCard.showMoreAssigneesApproximate = 显示更多 {count}+
67
+ # Approve action for an approval task
68
+ groupSharedFeatures.activityFeed.taskCard.taskApproveAction = 同意
69
+ # Completion action for a general task
70
+ groupSharedFeatures.activityFeed.taskCard.taskCompleteAction = 标记为完成
71
+ # Text to show on menu item to delete task
72
+ groupSharedFeatures.activityFeed.taskCard.taskDeleteMenuItem = 删除任务
73
+ # Due date row: "Due" plus short month/day (with year when not the current year) and time. Placeholders are locale-formatted.
74
+ groupSharedFeatures.activityFeed.taskCard.taskDueDateLabel = 到期 {monthDay} {time}
75
+ # Text to show on menu item to edit task
76
+ groupSharedFeatures.activityFeed.taskCard.taskEditMenuItem = 修改任务
77
+ # Label header for task card
78
+ groupSharedFeatures.activityFeed.taskCard.taskLabel = 任务
79
+ # Reject action for an approval task
80
+ groupSharedFeatures.activityFeed.taskCard.taskRejectAction = 拒绝
81
+ # View details action for a multi-file task
82
+ groupSharedFeatures.activityFeed.taskCard.taskViewDetailsAction = 查看任务详细信息
83
+ # Headline when an approval task is approved
84
+ groupSharedFeatures.activityFeed.taskState.approvedHeadline = 已批准
85
+ # Assignee completion count shown after the Completed headline
86
+ groupSharedFeatures.activityFeed.taskState.completedCountParenthetical = ({completedCount} / {totalCount})
87
+ # Headline for a task that is fully completed
88
+ groupSharedFeatures.activityFeed.taskState.completedHeadline = 已完成
89
+ # Headline for a task or approval that was rejected
90
+ groupSharedFeatures.activityFeed.taskState.rejectedHeadline = 已拒绝
91
+ # Label when an app promoted a file version in the activity feed. {appName} is the display name of the application (e.g., "Box Sign"). {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
92
+ groupSharedFeatures.activityFeed.versionItem.appPromoted = {appName} 已提升:<badge>V{versionNumber}</badge>
93
+ # Label when an app restored a file version in the activity feed. {appName} is the display name of the application (e.g., "Box Sign"). {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
94
+ groupSharedFeatures.activityFeed.versionItem.appRestored = {appName} 已恢复:<badge>V{versionNumber}</badge>
95
+ # Label when an app uploaded a file version in the activity feed. {appName} is the display name of the application (e.g., "Box Sign"). {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
96
+ groupSharedFeatures.activityFeed.versionItem.appUploaded = {appName} 已上传:<badge>V{versionNumber}</badge>
97
+ # Inline text for a deleted version with timestamp in the activity feed. {authorName} is the user who deleted, {versionNumber} is the numeric version (e.g., 33), {timestamp} is a relative time.
98
+ groupSharedFeatures.activityFeed.versionItem.versionDeleted = {authorName} 已删除 V{versionNumber} · {timestamp}
99
+ # Inline text for a deleted version without timestamp in the activity feed. {authorName} is the user who deleted, {versionNumber} is the numeric version (e.g., 33).
100
+ groupSharedFeatures.activityFeed.versionItem.versionDeletedNoTimestamp = {authorName} 已删除 V{versionNumber}
101
+ # Label for a promoted version marker in the activity feed. {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
102
+ groupSharedFeatures.activityFeed.versionItem.versionPromoted = 版本已提升:<badge>V{versionNumber}</badge>
103
+ # Label for a restored version marker in the activity feed. {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
104
+ groupSharedFeatures.activityFeed.versionItem.versionRestored = 版本已恢复:<badge>V{versionNumber}</badge>
105
+ # Label for an uploaded version marker in the activity feed. {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
106
+ groupSharedFeatures.activityFeed.versionItem.versionUploaded = 版本已上传:<badge>V{versionNumber}</badge>
@@ -0,0 +1,55 @@
1
+ export default {
2
+ "groupSharedFeatures.activityFeed.activityItemText": "{appName}:{parsedContent} · {timestamp}",
3
+ "groupSharedFeatures.activityFeed.emptyState.body": "留言以展開對話。使用 @ 在此檔案中提及共同作業者。",
4
+ "groupSharedFeatures.activityFeed.emptyState.title": "尚未有留言",
5
+ "groupSharedFeatures.activityFeed.header.closeAriaLabel": "關閉",
6
+ "groupSharedFeatures.activityFeed.header.filterAriaLabel": "篩選",
7
+ "groupSharedFeatures.activityFeed.header.filtersTitle": "篩選",
8
+ "groupSharedFeatures.activityFeed.header.hideResolvedComments": "僅限未解決",
9
+ "groupSharedFeatures.activityFeed.header.hideResolvedCommentsDescription": "排除已標為已解決的留言",
10
+ "groupSharedFeatures.activityFeed.header.mentionMe": "提及我",
11
+ "groupSharedFeatures.activityFeed.header.mentionMeDescription": "有人提及您的留言",
12
+ "groupSharedFeatures.activityFeed.header.mentionMeDescriptionWithTasks": "您被提及的留言與指派給您的任務",
13
+ "groupSharedFeatures.activityFeed.header.showResolvedComments": "顯示已解決的留言",
14
+ "groupSharedFeatures.activityFeed.header.showResolvedCommentsDescription": "已標為已解決的留言",
15
+ "groupSharedFeatures.activityFeed.header.taskButton.addTaskLabel": "新增任務",
16
+ "groupSharedFeatures.activityFeed.header.taskButton.approvalTaskDescription": "獲指定者將負責核准或拒絕任務",
17
+ "groupSharedFeatures.activityFeed.header.taskButton.approvalTaskTitle": "核准任務",
18
+ "groupSharedFeatures.activityFeed.header.taskButton.generalTaskDescription": "獲指定者將負責把任務標記為完成",
19
+ "groupSharedFeatures.activityFeed.header.taskButton.generalTaskTitle": "一般任務",
20
+ "groupSharedFeatures.activityFeed.taskCard.approvalTaskLabel": "核准任務",
21
+ "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusApproved": "已核准",
22
+ "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusCompleted": "已完成",
23
+ "groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusRejected": "已拒絕",
24
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationBody": "刪除此任務? 此動作無法復原。",
25
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationCancel": "取消",
26
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationConfirm": "刪除",
27
+ "groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationDialogAriaLabel": "刪除任務確認",
28
+ "groupSharedFeatures.activityFeed.taskCard.loadAssigneesError": "無法載入被指定者。 再試一次。",
29
+ "groupSharedFeatures.activityFeed.taskCard.loadingAssignees": "載入中…",
30
+ "groupSharedFeatures.activityFeed.taskCard.moreOptionsAriaLabel": "更多選項按鈕",
31
+ "groupSharedFeatures.activityFeed.taskCard.showLessAssignees": "顯示較少",
32
+ "groupSharedFeatures.activityFeed.taskCard.showMore": "顯示更多",
33
+ "groupSharedFeatures.activityFeed.taskCard.showMoreAssignees": "再顯示 {count} 個",
34
+ "groupSharedFeatures.activityFeed.taskCard.showMoreAssigneesApproximate": "再顯示 {count}+ 個",
35
+ "groupSharedFeatures.activityFeed.taskCard.taskApproveAction": "核准",
36
+ "groupSharedFeatures.activityFeed.taskCard.taskCompleteAction": "標記為已完成",
37
+ "groupSharedFeatures.activityFeed.taskCard.taskDeleteMenuItem": "刪除任務",
38
+ "groupSharedFeatures.activityFeed.taskCard.taskDueDateLabel": "到期時間:{monthDay} {time}",
39
+ "groupSharedFeatures.activityFeed.taskCard.taskEditMenuItem": "修改任務",
40
+ "groupSharedFeatures.activityFeed.taskCard.taskLabel": "任務",
41
+ "groupSharedFeatures.activityFeed.taskCard.taskRejectAction": "拒絕",
42
+ "groupSharedFeatures.activityFeed.taskCard.taskViewDetailsAction": "檢視工作詳細資料",
43
+ "groupSharedFeatures.activityFeed.taskState.approvedHeadline": "已核准",
44
+ "groupSharedFeatures.activityFeed.taskState.completedCountParenthetical": "({completedCount} / {totalCount} 個)",
45
+ "groupSharedFeatures.activityFeed.taskState.completedHeadline": "已完成",
46
+ "groupSharedFeatures.activityFeed.taskState.rejectedHeadline": "已拒絕",
47
+ "groupSharedFeatures.activityFeed.versionItem.appPromoted": "{appName} 已升級:<badge>V{versionNumber}</badge>",
48
+ "groupSharedFeatures.activityFeed.versionItem.appRestored": "{appName} 已還原:<badge>V{versionNumber}</badge>",
49
+ "groupSharedFeatures.activityFeed.versionItem.appUploaded": "{appName} 已上傳:<badge>V{versionNumber}</badge>",
50
+ "groupSharedFeatures.activityFeed.versionItem.versionDeleted": "{authorName} 已刪除 V{versionNumber} · {timestamp}",
51
+ "groupSharedFeatures.activityFeed.versionItem.versionDeletedNoTimestamp": "{authorName} 已刪除 V{versionNumber}",
52
+ "groupSharedFeatures.activityFeed.versionItem.versionPromoted": "版本已升級:<badge>V{versionNumber}</badge>",
53
+ "groupSharedFeatures.activityFeed.versionItem.versionRestored": "版本已還原:<badge>V{versionNumber}</badge>",
54
+ "groupSharedFeatures.activityFeed.versionItem.versionUploaded": "版本已上傳:<badge>V{versionNumber}</badge>"
55
+ }
@@ -0,0 +1,106 @@
1
+ # Text for an activity item in the activity feed
2
+ groupSharedFeatures.activityFeed.activityItemText = {appName}:{parsedContent} · {timestamp}
3
+ # Body text shown in the activity feed empty state
4
+ groupSharedFeatures.activityFeed.emptyState.body = 留言以展開對話。使用 @ 在此檔案中提及共同作業者。
5
+ # Title shown in the activity feed empty state
6
+ groupSharedFeatures.activityFeed.emptyState.title = 尚未有留言
7
+ # Aria label for the close button in the activity feed header
8
+ groupSharedFeatures.activityFeed.header.closeAriaLabel = 關閉
9
+ # Aria label for the filter toggle button in the activity feed header
10
+ groupSharedFeatures.activityFeed.header.filterAriaLabel = 篩選
11
+ # Title label for the filters dropdown in the activity feed header
12
+ groupSharedFeatures.activityFeed.header.filtersTitle = 篩選
13
+ # Label for the filter option that hides resolved comments
14
+ groupSharedFeatures.activityFeed.header.hideResolvedComments = 僅限未解決
15
+ # Description for the filter option that hides resolved comments
16
+ groupSharedFeatures.activityFeed.header.hideResolvedCommentsDescription = 排除已標為已解決的留言
17
+ # Label for the filter option that shows only comments mentioning the current user
18
+ groupSharedFeatures.activityFeed.header.mentionMe = 提及我
19
+ # Description for the mention-me filter (comments only)
20
+ groupSharedFeatures.activityFeed.header.mentionMeDescription = 有人提及您的留言
21
+ # Description for the mention-me filter (comments and tasks)
22
+ groupSharedFeatures.activityFeed.header.mentionMeDescriptionWithTasks = 您被提及的留言與指派給您的任務
23
+ # Label for the filter option that includes resolved comments
24
+ groupSharedFeatures.activityFeed.header.showResolvedComments = 顯示已解決的留言
25
+ # Description for the filter option that includes resolved comments
26
+ groupSharedFeatures.activityFeed.header.showResolvedCommentsDescription = 已標為已解決的留言
27
+ # Label for the dropdown trigger button that opens the task type menu
28
+ groupSharedFeatures.activityFeed.header.taskButton.addTaskLabel = 新增任務
29
+ # Description for the approval task menu item in the add task dropdown
30
+ groupSharedFeatures.activityFeed.header.taskButton.approvalTaskDescription = 獲指定者將負責核准或拒絕任務
31
+ # Title for the approval task menu item in the add task dropdown
32
+ groupSharedFeatures.activityFeed.header.taskButton.approvalTaskTitle = 核准任務
33
+ # Description for the general task menu item in the add task dropdown
34
+ groupSharedFeatures.activityFeed.header.taskButton.generalTaskDescription = 獲指定者將負責把任務標記為完成
35
+ # Title for the general task menu item in the add task dropdown
36
+ groupSharedFeatures.activityFeed.header.taskButton.generalTaskTitle = 一般任務
37
+ # Label header for approval task card
38
+ groupSharedFeatures.activityFeed.taskCard.approvalTaskLabel = 核准任務
39
+ # Per-assignee row suffix when the assignee approved an approval task
40
+ groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusApproved = 已核准
41
+ # Per-assignee row suffix when the assignee has completed (sentence case, green in UI)
42
+ groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusCompleted = 已完成
43
+ # Per-assignee row suffix when the assignee rejected an approval task
44
+ groupSharedFeatures.activityFeed.taskCard.assigneeRowStatusRejected = 已拒絕
45
+ # Confirmation message when deleting a task from the task message options
46
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationBody = 刪除此任務? 此動作無法復原。
47
+ # Cancel button on delete task confirmation popover
48
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationCancel = 取消
49
+ # Confirm delete button on delete task confirmation popover
50
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationConfirm = 刪除
51
+ # Accessible name for the delete task confirmation popover
52
+ groupSharedFeatures.activityFeed.taskCard.deleteTaskConfirmationDialogAriaLabel = 刪除任務確認
53
+ # Error message when fetching more assignees from server fails
54
+ groupSharedFeatures.activityFeed.taskCard.loadAssigneesError = 無法載入被指定者。 再試一次。
55
+ # Loading state text when fetching more assignees from server
56
+ groupSharedFeatures.activityFeed.taskCard.loadingAssignees = 載入中…
57
+ # Aria label for more options button in task message
58
+ groupSharedFeatures.activityFeed.taskCard.moreOptionsAriaLabel = 更多選項按鈕
59
+ # Button to hide additional assignees
60
+ groupSharedFeatures.activityFeed.taskCard.showLessAssignees = 顯示較少
61
+ # Button to load more assignees from server when count is unknown
62
+ groupSharedFeatures.activityFeed.taskCard.showMore = 顯示更多
63
+ # Button to show more assignees when exact count is known
64
+ groupSharedFeatures.activityFeed.taskCard.showMoreAssignees = 再顯示 {count} 個
65
+ # Button to show more assignees when approximate count (at least this many more on server)
66
+ groupSharedFeatures.activityFeed.taskCard.showMoreAssigneesApproximate = 再顯示 {count}+ 個
67
+ # Approve action for an approval task
68
+ groupSharedFeatures.activityFeed.taskCard.taskApproveAction = 核准
69
+ # Completion action for a general task
70
+ groupSharedFeatures.activityFeed.taskCard.taskCompleteAction = 標記為已完成
71
+ # Text to show on menu item to delete task
72
+ groupSharedFeatures.activityFeed.taskCard.taskDeleteMenuItem = 刪除任務
73
+ # Due date row: "Due" plus short month/day (with year when not the current year) and time. Placeholders are locale-formatted.
74
+ groupSharedFeatures.activityFeed.taskCard.taskDueDateLabel = 到期時間:{monthDay} {time}
75
+ # Text to show on menu item to edit task
76
+ groupSharedFeatures.activityFeed.taskCard.taskEditMenuItem = 修改任務
77
+ # Label header for task card
78
+ groupSharedFeatures.activityFeed.taskCard.taskLabel = 任務
79
+ # Reject action for an approval task
80
+ groupSharedFeatures.activityFeed.taskCard.taskRejectAction = 拒絕
81
+ # View details action for a multi-file task
82
+ groupSharedFeatures.activityFeed.taskCard.taskViewDetailsAction = 檢視工作詳細資料
83
+ # Headline when an approval task is approved
84
+ groupSharedFeatures.activityFeed.taskState.approvedHeadline = 已核准
85
+ # Assignee completion count shown after the Completed headline
86
+ groupSharedFeatures.activityFeed.taskState.completedCountParenthetical = ({completedCount} / {totalCount} 個)
87
+ # Headline for a task that is fully completed
88
+ groupSharedFeatures.activityFeed.taskState.completedHeadline = 已完成
89
+ # Headline for a task or approval that was rejected
90
+ groupSharedFeatures.activityFeed.taskState.rejectedHeadline = 已拒絕
91
+ # Label when an app promoted a file version in the activity feed. {appName} is the display name of the application (e.g., "Box Sign"). {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
92
+ groupSharedFeatures.activityFeed.versionItem.appPromoted = {appName} 已升級:<badge>V{versionNumber}</badge>
93
+ # Label when an app restored a file version in the activity feed. {appName} is the display name of the application (e.g., "Box Sign"). {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
94
+ groupSharedFeatures.activityFeed.versionItem.appRestored = {appName} 已還原:<badge>V{versionNumber}</badge>
95
+ # Label when an app uploaded a file version in the activity feed. {appName} is the display name of the application (e.g., "Box Sign"). {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
96
+ groupSharedFeatures.activityFeed.versionItem.appUploaded = {appName} 已上傳:<badge>V{versionNumber}</badge>
97
+ # Inline text for a deleted version with timestamp in the activity feed. {authorName} is the user who deleted, {versionNumber} is the numeric version (e.g., 33), {timestamp} is a relative time.
98
+ groupSharedFeatures.activityFeed.versionItem.versionDeleted = {authorName} 已刪除 V{versionNumber} · {timestamp}
99
+ # Inline text for a deleted version without timestamp in the activity feed. {authorName} is the user who deleted, {versionNumber} is the numeric version (e.g., 33).
100
+ groupSharedFeatures.activityFeed.versionItem.versionDeletedNoTimestamp = {authorName} 已刪除 V{versionNumber}
101
+ # Label for a promoted version marker in the activity feed. {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
102
+ groupSharedFeatures.activityFeed.versionItem.versionPromoted = 版本已升級:<badge>V{versionNumber}</badge>
103
+ # Label for a restored version marker in the activity feed. {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
104
+ groupSharedFeatures.activityFeed.versionItem.versionRestored = 版本已還原:<badge>V{versionNumber}</badge>
105
+ # Label for an uploaded version marker in the activity feed. {versionNumber} is the numeric version. <badge> wraps the clickable version badge.
106
+ groupSharedFeatures.activityFeed.versionItem.versionUploaded = 版本已上傳:<badge>V{versionNumber}</badge>
@@ -0,0 +1 @@
1
+ ._assigneeList_14eyv_4{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}._assigneeItem_14eyv_11{align-items:center;gap:var(--space-2);display:flex}._assigneeMeta_14eyv_17{align-items:center;gap:var(--space-1);flex:1;min-width:0;display:flex}._assigneeName_14eyv_25{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;font-weight:400;overflow:hidden}._assigneeSeparator_14eyv_34{flex-shrink:0;font-weight:400}._assigneeItem_14eyv_11 ._assigneeMeta_14eyv_17 ._assigneeStatusSuccess_14eyv_39{color:var(--bp-green-light-135);flex-shrink:0;font-weight:400}._assigneeItem_14eyv_11 ._assigneeMeta_14eyv_17 ._assigneeStatusRejected_14eyv_45{color:var(--text-text-error-on-light,var(--bp-text-text-error-on-light));flex-shrink:0;font-weight:400}._assigneeShowMoreRow_14eyv_51{align-self:flex-start;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}._assigneeShowMoreChip_14eyv_59{width:var(--size-6);height:var(--size-6);background:var(--bp-gray-10);color:var(--text-text-on-light,var(--bp-text-text-on-light));font-size:var(--caption-default-font-size);font-weight:var(--font-weights-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}._assigneeShowLessButton_14eyv_74{margin-left:var(--space-7)}
@@ -0,0 +1 @@
1
+ ._dueDateRow_1jnvx_1{align-items:center;gap:var(--space-3);display:flex}._dueDateCalendarIcon_1jnvx_7{width:var(--space-5);height:var(--space-5);color:var(--text-text-on-light-secondary);flex-shrink:0}._dueDateRowOverdue_1jnvx_14 ._dueDateCalendarIcon_1jnvx_7{color:var(--text-text-error-on-light)}
@@ -0,0 +1 @@
1
+ ._taskItem_1bak0_1{box-sizing:border-box;border:var(--border-1) solid var(--border-card-border);border-radius:var(--space-5);background:var(--surface-primary);width:100%;max-width:340px;padding:0}._header_1bak0_11{padding:var(--space-3);padding-left:var(--space-5);border-bottom:var(--border-1) solid var(--border-card-border);border-radius:var(--space-5) var(--space-5) 0 0;background:var(--bp-gray-02)}._headerTitleRow_1bak0_19{align-items:center;gap:var(--space-2);display:flex}._headerLeadingIcon_1bak0_25{color:var(--text-text-on-light-secondary);font-size:var(--space-5);flex-shrink:0;display:block}._cardBody_1bak0_32{padding:var(--space-4);flex-direction:column;min-width:0;display:flex}._textMessageFooterSlot_1bak0_39{gap:var(--space-2);flex-direction:column;width:100%;min-width:0;display:flex}._marginBottom_1bak0_47{margin-bottom:var(--space-2)}._approvalActionsRow_1bak0_51{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}._approvalApproveIcon_1bak0_58{color:var(--bp-green-light-135)}._approvalRejectIcon_1bak0_62{color:var(--text-text-error-on-light)}
@@ -0,0 +1 @@
1
+ ._taskMessage_9yucp_1{flex-direction:column;flex:1;width:100%;height:100%;display:flex;position:relative;overflow:visible}._headerContainer_9yucp_11{gap:var(--space-4);justify-content:space-between;align-items:center;width:100%;display:flex;position:relative}._headerContainer_9yucp_11 ._information_9yucp_19{gap:var(--space-2);justify-content:flex-start;align-items:center;width:100%;display:flex}._headerContainer_9yucp_11 ._information_9yucp_19 ._avatar_9yucp_26{flex-shrink:0}._headerContainer_9yucp_11 ._information_9yucp_19 ._textContainer_9yucp_29{word-break:break-all;overflow-wrap:break-word;width:fit-content;min-width:0;max-width:100%;overflow:hidden}._headerContainer_9yucp_11 ._information_9yucp_19 ._textContainer_9yucp_29 ._author_9yucp_37{cursor:auto;text-overflow:ellipsis;white-space:nowrap;width:fit-content;margin:0;overflow:hidden}._headerContainer_9yucp_11 ._optionsMenu_9yucp_45{gap:var(--space-1);opacity:0;align-items:center;transition:opacity .1s;display:flex;position:relative}[data-message-wrapper]:hover ._headerContainer_9yucp_11 ._optionsMenu_9yucp_45,[data-message-wrapper]:focus-within ._headerContainer_9yucp_11 ._optionsMenu_9yucp_45{opacity:1}@media (pointer:coarse),(hover:none){._headerContainer_9yucp_11 ._optionsMenu_9yucp_45{opacity:1}}._headerContainer_9yucp_11 ._optionsMenu_9yucp_45[data-state=open]{opacity:1}._contentWrapper_9yucp_65{gap:var(--space-2);display:flex}._contentWrapper_9yucp_65 ._threadedIndicator_9yucp_69{width:var(--space-7);flex-shrink:0;position:relative}._contentWrapper_9yucp_65 ._threadedIndicator_9yucp_69:after{content:"";left:50%;top:var(--space-05);bottom:var(--space-05);width:var(--border-2);background-color:var(--border-divider-border);border-radius:var(--radius-1);position:absolute;transform:translate(-50%)}._contentWrapper_9yucp_65 ._threadedIndicatorHidden_9yucp_85:after{visibility:hidden}._contentWrapper_9yucp_65 ._messageContent_9yucp_88{overflow-wrap:break-word;flex-direction:column;flex:1;min-width:0;display:flex}._contentWrapper_9yucp_65 ._messageContent_9yucp_88 ._messageFooter_9yucp_95{padding:var(--space-2) 0}
@@ -0,0 +1 @@
1
+ ._taskState_1qxrh_1{gap:var(--space-2);align-items:flex-start;width:100%;display:flex}._leftContainer_1qxrh_8{width:var(--space-7);flex-shrink:0;justify-content:center;align-items:flex-start;display:flex}._rightContainer_1qxrh_16{flex-direction:column;min-width:0;display:flex;overflow:hidden}._rightContainer_1qxrh_16 ._statusLine_1qxrh_22{gap:var(--space-1);text-overflow:ellipsis;white-space:nowrap;align-items:baseline;display:flex;overflow:hidden}._rightContainer_1qxrh_16 ._statusLine_1qxrh_22 ._countText_1qxrh_30{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
@@ -0,0 +1 @@
1
+ ._emptyStateWrapper_net25_1{flex:auto;justify-content:center;align-items:center;display:flex}._list_net25_8{gap:var(--space-4);min-height:0;padding:var(--space-4) var(--space-4) var(--space-4);-webkit-mask-image:linear-gradient(to bottom, transparent 0, black var(--space-4), black calc(100% - var(--space-4)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, black var(--space-4), black calc(100% - var(--space-4)), transparent 100%);flex-direction:column;flex:auto;margin:0;list-style:none;display:flex;overflow-y:auto}
@@ -0,0 +1 @@
1
+ ._container_9nbtr_1{background:var(--surface-surface-secondary);flex-direction:column;justify-content:space-between;width:100%;height:100%;display:flex}
@@ -0,0 +1 @@
1
+ ._appActivityItem_1g9je_1{gap:var(--space-6);align-items:flex-start;width:100%;display:flex}._message_1g9je_8{overflow-wrap:break-word;min-width:0}._message_1g9je_8 ._activityLink_1g9je_12{color:inherit;font-weight:var(--body-default-semibold-font-weight);text-decoration:none}._message_1g9je_8 ._activityLink_1g9je_12:hover{color:inherit;text-decoration:underline}
@@ -0,0 +1 @@
1
+ ._editorWrapper_1ycxr_1{padding:0 var(--space-5) var(--space-5)}
@@ -0,0 +1 @@
1
+ ._container_ffym1_1{align-items:center;gap:var(--bp-space-030);text-align:center;flex-direction:column;flex:1;justify-content:center;display:flex}
@@ -0,0 +1 @@
1
+ ._header_wn6yt_2{background:var(--surface-surface-secondary);box-sizing:border-box;padding:var(--space-3) var(--space-5) 0;justify-content:space-between;align-items:center;width:100%;display:flex}._title_wn6yt_12{-webkit-line-clamp:1;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}._actions_wn6yt_20{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}._filtersTitle_wn6yt_27{padding:var(--space-2)}
@@ -0,0 +1 @@
1
+ ._content_7u0fn_1{--blueprint-web-dropdown-content-min-width:256px}
@@ -0,0 +1 @@
1
+ ._deletePopoverAnchorWrapper_2wpp6_3{width:0;height:0;position:absolute;bottom:0;right:0}._deletePopoverAnchor_2wpp6_3{pointer-events:none;width:1px;height:1px;position:absolute;top:100%;right:0}._deletePopover_2wpp6_3{width:17rem;margin:0}._footer_2wpp6_25{gap:var(--space-2);justify-content:flex-end;display:flex}
@@ -0,0 +1 @@
1
+ ._shell_zywke_2{align-items:center;display:flex;position:relative}
@@ -0,0 +1 @@
1
+ ._versionItem_1y0lm_1{gap:var(--space-2);width:100%;padding-top:var(--space-3);padding-bottom:var(--space-1);align-items:center;display:flex}._line_1y0lm_10{background-color:var(--black-opacity-08);flex:1;height:1px}._content_1y0lm_16{white-space:nowrap;align-items:center;display:flex}._badge_1y0lm_22{box-sizing:border-box;height:var(--space-5);border:var(--border-1) solid var(--gray-30);border-radius:var(--radius-half);justify-content:center;align-items:center;padding:0 6px;display:inline-flex}._deleteItem_1y0lm_33{gap:var(--space-3);align-items:center;width:100%;display:flex}._deleteMessage_1y0lm_40{overflow-wrap:break-word;min-width:0}._badgeButton_1y0lm_45{all:unset;box-sizing:border-box;height:var(--space-5);border:var(--border-1) solid var(--gray-30);border-radius:var(--radius-half);color:var(--text-text-on-light-secondary);font-size:var(--label-bold-font-size);font-weight:var(--label-bold-font-weight);letter-spacing:var(--label-bold-letter-spacing);line-height:var(--label-bold-line-height);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;padding:0 6px;display:inline-flex}._badgeButton_1y0lm_45:hover{background:var(--surface-cta-surface-secondary-hover);border-color:var(--gray-50);color:var(--text-text-on-light-secondary-hover)}._badgeButton_1y0lm_45:focus-visible{outline:var(--border-2) solid var(--box-blue-100);outline-offset:var(--border-2)}
@@ -0,0 +1,6 @@
1
+ export { ActivityFeed, useActivityFeedScroll } from './lib/activity-feed';
2
+ export type { ActivityFeedScrollHandle } from './lib/activity-feed';
3
+ export type * from './lib/types';
4
+ export { AppActivityItem } from './lib/components/app-activity-item';
5
+ export { TaskItem } from './lib/components/task-item';
6
+ export { VersionItem } from './lib/components/version-item';
@@ -0,0 +1,62 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { ThreadedAnnotationsV2, MentionContextData } from '@box/threaded-annotations';
3
+ import { ActivityFeedListProps } from './components/activity-feed-list';
4
+ import { AppActivityItem } from './components/app-activity-item';
5
+ import { TaskItem } from './components/task-item';
6
+ import { VersionItem } from './components/version-item';
7
+ import { useActivityFeedScroll, ActivityFeedScrollHandle } from './scroll';
8
+ export { useActivityFeedScroll } from './scroll';
9
+ export type { ActivityFeedScrollHandle } from './scroll';
10
+ /** Props for `ActivityFeed.Root`. */
11
+ interface ActivityFeedRootProps {
12
+ /** Feed children. */
13
+ children: ReactNode;
14
+ /**
15
+ * Optional handle from `useActivityFeedScroll`.
16
+ * Pass it when the caller lives outside the feed subtree so rows can be scrolled into view by id.
17
+ */
18
+ scrollTo?: ActivityFeedScrollHandle;
19
+ /** Mention context shared by editor + thread rows. */
20
+ mentionContext: MentionContextData;
21
+ }
22
+ /**
23
+ * List container with row sub-components. Render rows as
24
+ * `ActivityFeed.List.ThreadedAnnotation`, `ActivityFeed.List.Task`,
25
+ * `ActivityFeed.List.Version`, or `ActivityFeed.List.AppActivity`.
26
+ *
27
+ * Each row primitive is re-exported as-is — pass its props directly.
28
+ * `ActivityFeed.List` wraps children in list rows tagged with `data-activity-id`
29
+ * from the React `key` so `scrollTo(id)` on the handle can find them.
30
+ */
31
+ type ActivityFeedListCompound = ((props: ActivityFeedListProps) => ReactElement) & {
32
+ AppActivity: typeof AppActivityItem;
33
+ Task: typeof TaskItem;
34
+ ThreadedAnnotation: typeof ThreadedAnnotationsV2;
35
+ Version: typeof VersionItem;
36
+ };
37
+ /**
38
+ * ActivityFeed compound namespace.
39
+ *
40
+ * Top-level slots: `Root`, `Header`, `List`, `Editor`. Row components live
41
+ * under `List` and must be rendered inside `ActivityFeed.List`.
42
+ */
43
+ export declare const ActivityFeed: {
44
+ Editor: ({ disableComponent, onPost, onPostError, onPostSuccess, userSelectorProps }: import('./components/editor').EditorProps) => import("react/jsx-runtime").JSX.Element;
45
+ Header: (({ children, title }: import('./components/header/header').HeaderProps) => import("react/jsx-runtime").JSX.Element) & {
46
+ Actions: ({ children }: {
47
+ children: ReactNode;
48
+ }) => import("react/jsx-runtime").JSX.Element;
49
+ CloseButton: ({ onClick }: {
50
+ onClick: () => void;
51
+ }) => import("react/jsx-runtime").JSX.Element;
52
+ FilterMenu: ({ children }: {
53
+ children: ReactNode;
54
+ }) => import("react/jsx-runtime").JSX.Element;
55
+ MentionMeOption: ({ checked, hasTasks, onCheckedChange }: import('./components/header/header-filter-options').HeaderMentionMeOptionProps) => import("react/jsx-runtime").JSX.Element;
56
+ ShowResolvedOption: ({ checked, onCheckedChange }: import('./components/header/header-filter-options').HeaderShowResolvedOptionProps) => import("react/jsx-runtime").JSX.Element;
57
+ TaskButton: ({ disabled, onMenuItemClick }: import('./components/header/task-button').TaskButtonProps) => import("react/jsx-runtime").JSX.Element;
58
+ };
59
+ List: ActivityFeedListCompound;
60
+ Root: ({ children, scrollTo: scrollToProp, mentionContext }: ActivityFeedRootProps) => import("react/jsx-runtime").JSX.Element;
61
+ useActivityFeedScroll: typeof useActivityFeedScroll;
62
+ };
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ActivityFeedListProps {
3
+ /** Activity row children. */
4
+ children?: ReactNode;
5
+ }
6
+ /** List container for feed rows + empty state. */
7
+ export declare const ActivityFeedList: ({ children }: ActivityFeedListProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { ActivityFeedList, type ActivityFeedListProps } from './activity-feed-list';
@@ -0,0 +1,13 @@
1
+ export interface AppActivityItemProps {
2
+ /** URL of the app icon image. */
3
+ appIconUrl: string;
4
+ /** Display name of the app that generated this activity. */
5
+ appName: string;
6
+ /** Unix timestamp (in ms) for when the activity occurred. */
7
+ createdAt: number;
8
+ /** Unique identifier for this activity item. */
9
+ id: string;
10
+ /** HTML string from the API describing the activity (may contain links). */
11
+ renderedText: string;
12
+ }
13
+ export declare const AppActivityItem: ({ appIconUrl, appName, createdAt, id, renderedText }: AppActivityItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { AppActivityItem, type AppActivityItemProps } from './app-activity-item';
@@ -0,0 +1,7 @@
1
+ export declare const messages: {
2
+ activityItemText: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ };
@@ -0,0 +1,3 @@
1
+ import { MessageEditorPropsV2 as MessageEditorProps } from '@box/threaded-annotations';
2
+ export type EditorProps = Omit<MessageEditorProps, 'variant' | 'isFirstAnnotation' | 'initialContent'>;
3
+ export declare const Editor: ({ disableComponent, onPost, onPostError, onPostSuccess, userSelectorProps }: EditorProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Editor, type EditorProps } from './editor';
@@ -0,0 +1 @@
1
+ export declare const EmptyState: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export { EmptyState } from './empty-state';
@@ -0,0 +1,12 @@
1
+ export declare const messages: {
2
+ body: {
3
+ defaultMessage: string;
4
+ description: string;
5
+ id: string;
6
+ };
7
+ title: {
8
+ defaultMessage: string;
9
+ description: string;
10
+ id: string;
11
+ };
12
+ };
@@ -0,0 +1,16 @@
1
+ export interface HeaderMentionMeOptionProps {
2
+ /** Whether the option is checked. */
3
+ checked: boolean;
4
+ /** Whether the feed includes tasks. Changes the caption to include task mentions. */
5
+ hasTasks?: boolean;
6
+ /** Callback fired when the checked state changes. */
7
+ onCheckedChange: (checked: boolean) => void;
8
+ }
9
+ export declare const HeaderMentionMeOption: ({ checked, hasTasks, onCheckedChange }: HeaderMentionMeOptionProps) => import("react/jsx-runtime").JSX.Element;
10
+ export interface HeaderShowResolvedOptionProps {
11
+ /** Whether the option is checked. */
12
+ checked: boolean;
13
+ /** Callback fired when the checked state changes. */
14
+ onCheckedChange: (checked: boolean) => void;
15
+ }
16
+ export declare const HeaderShowResolvedOption: ({ checked, onCheckedChange }: HeaderShowResolvedOptionProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Props for {@link ActivityFeed.Header}.
4
+ *
5
+ * `Header` is a callable compound component: render it directly with a `title`
6
+ * and place the action sub-components (`Header.Actions`, `Header.FilterMenu`,
7
+ * `Header.CloseButton`, etc.) as children.
8
+ */
9
+ export interface HeaderProps {
10
+ /** Sub-components to render alongside the title (typically `Header.Actions`). */
11
+ children?: ReactNode;
12
+ /** Header title text, e.g. "Comments". */
13
+ title: string;
14
+ }
15
+ /**
16
+ * Compound header for the activity feed.
17
+ *
18
+ * Render `Header` directly with a `title` and compose the action
19
+ * sub-components (`Header.Actions`, `Header.FilterMenu`,
20
+ * `Header.ShowResolvedOption`, `Header.MentionMeOption`, `Header.CloseButton`,
21
+ * `Header.TaskButton`) as children.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <ActivityFeed.Header title="Comments">
26
+ * <ActivityFeed.Header.Actions>
27
+ * <ActivityFeed.Header.FilterMenu>
28
+ * <ActivityFeed.Header.ShowResolvedOption checked={...} onCheckedChange={...} />
29
+ * <ActivityFeed.Header.MentionMeOption checked={...} onCheckedChange={...} />
30
+ * </ActivityFeed.Header.FilterMenu>
31
+ * <ActivityFeed.Header.CloseButton onClick={onClose} />
32
+ * </ActivityFeed.Header.Actions>
33
+ * </ActivityFeed.Header>
34
+ * ```
35
+ */
36
+ export declare const Header: (({ children, title }: HeaderProps) => import("react/jsx-runtime").JSX.Element) & {
37
+ Actions: ({ children }: {
38
+ children: ReactNode;
39
+ }) => import("react/jsx-runtime").JSX.Element;
40
+ CloseButton: ({ onClick }: {
41
+ onClick: () => void;
42
+ }) => import("react/jsx-runtime").JSX.Element;
43
+ FilterMenu: ({ children }: {
44
+ children: ReactNode;
45
+ }) => import("react/jsx-runtime").JSX.Element;
46
+ MentionMeOption: ({ checked, hasTasks, onCheckedChange }: import('./header-filter-options').HeaderMentionMeOptionProps) => import("react/jsx-runtime").JSX.Element;
47
+ ShowResolvedOption: ({ checked, onCheckedChange }: import('./header-filter-options').HeaderShowResolvedOptionProps) => import("react/jsx-runtime").JSX.Element;
48
+ TaskButton: ({ disabled, onMenuItemClick }: import('./task-button').TaskButtonProps) => import("react/jsx-runtime").JSX.Element;
49
+ };