@droppii-org/chat-sdk 0.6.56 → 0.7.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 (435) hide show
  1. package/dist/components/canned-response/CannedResponseBody.d.ts.map +1 -1
  2. package/dist/components/canned-response/CannedResponseBody.js +4 -3
  3. package/dist/components/canned-response/CannedResponsePanel.d.ts +9 -0
  4. package/dist/components/canned-response/CannedResponsePanel.d.ts.map +1 -0
  5. package/dist/components/canned-response/CannedResponsePanel.js +72 -0
  6. package/dist/components/canned-response/CannedResponseRow.d.ts +10 -0
  7. package/dist/components/canned-response/CannedResponseRow.d.ts.map +1 -0
  8. package/dist/components/canned-response/CannedResponseRow.js +6 -0
  9. package/dist/components/canned-response/CannedScopeChips.d.ts +10 -0
  10. package/dist/components/canned-response/CannedScopeChips.d.ts.map +1 -0
  11. package/dist/components/canned-response/CannedScopeChips.js +34 -0
  12. package/dist/components/canned-response/cannedScopes.d.ts +16 -0
  13. package/dist/components/canned-response/cannedScopes.d.ts.map +1 -0
  14. package/dist/components/canned-response/cannedScopes.js +39 -0
  15. package/dist/components/canned-response/index.d.ts.map +1 -1
  16. package/dist/components/canned-response/index.js +11 -10
  17. package/dist/components/canned-response/insertCannedContent.d.ts +7 -0
  18. package/dist/components/canned-response/insertCannedContent.d.ts.map +1 -0
  19. package/dist/components/canned-response/insertCannedContent.js +39 -0
  20. package/dist/components/canned-response/team/TeamItem.d.ts.map +1 -1
  21. package/dist/components/canned-response/team/TeamItem.js +5 -4
  22. package/dist/components/common/ConfirmModal.d.ts +13 -1
  23. package/dist/components/common/ConfirmModal.d.ts.map +1 -1
  24. package/dist/components/common/ConfirmModal.js +24 -6
  25. package/dist/components/common/DeskPanelDrawer.d.ts +17 -0
  26. package/dist/components/common/DeskPanelDrawer.d.ts.map +1 -0
  27. package/dist/components/common/DeskPanelDrawer.js +21 -0
  28. package/dist/components/common/DeskSidePanel.d.ts +17 -0
  29. package/dist/components/common/DeskSidePanel.d.ts.map +1 -0
  30. package/dist/components/common/DeskSidePanel.js +23 -0
  31. package/dist/components/common/TintedAvatar.d.ts +11 -0
  32. package/dist/components/common/TintedAvatar.d.ts.map +1 -0
  33. package/dist/components/common/TintedAvatar.js +17 -0
  34. package/dist/components/compose/ComposeNewMessageModal.d.ts.map +1 -1
  35. package/dist/components/compose/ComposeNewMessageModal.js +11 -1
  36. package/dist/components/conversation/ConversationByGroupItem.d.ts.map +1 -1
  37. package/dist/components/conversation/ConversationByGroupItem.js +10 -6
  38. package/dist/components/conversation/ConversationBySessionItem.d.ts +4 -1
  39. package/dist/components/conversation/ConversationBySessionItem.d.ts.map +1 -1
  40. package/dist/components/conversation/ConversationBySessionItem.js +36 -10
  41. package/dist/components/conversation/DeskConversationList.d.ts.map +1 -1
  42. package/dist/components/conversation/DeskConversationList.js +44 -29
  43. package/dist/components/conversation/DeskConversationRow.d.ts +19 -0
  44. package/dist/components/conversation/DeskConversationRow.d.ts.map +1 -0
  45. package/dist/components/conversation/DeskConversationRow.js +18 -0
  46. package/dist/components/conversation/DeskListEmptyState.d.ts +6 -0
  47. package/dist/components/conversation/DeskListEmptyState.d.ts.map +1 -0
  48. package/dist/components/conversation/DeskListEmptyState.js +11 -0
  49. package/dist/components/conversation/DeskListHeader.d.ts +14 -0
  50. package/dist/components/conversation/DeskListHeader.d.ts.map +1 -0
  51. package/dist/components/conversation/DeskListHeader.js +39 -0
  52. package/dist/components/conversation/DeskListSkeleton.d.ts +6 -0
  53. package/dist/components/conversation/DeskListSkeleton.d.ts.map +1 -0
  54. package/dist/components/conversation/DeskListSkeleton.js +9 -0
  55. package/dist/components/conversation/DeskRowAvatar.d.ts +8 -0
  56. package/dist/components/conversation/DeskRowAvatar.d.ts.map +1 -0
  57. package/dist/components/conversation/DeskRowAvatar.js +6 -0
  58. package/dist/components/conversation/RowChip.d.ts +14 -0
  59. package/dist/components/conversation/RowChip.d.ts.map +1 -0
  60. package/dist/components/conversation/RowChip.js +11 -0
  61. package/dist/components/conversation/avatarTint.d.ts +6 -0
  62. package/dist/components/conversation/avatarTint.d.ts.map +1 -0
  63. package/dist/components/conversation/avatarTint.js +27 -0
  64. package/dist/components/conversation/folderEmptyState.d.ts +2 -0
  65. package/dist/components/conversation/folderEmptyState.d.ts.map +1 -0
  66. package/dist/components/conversation/folderEmptyState.js +14 -0
  67. package/dist/components/conversation/internalNotePreview.d.ts +6 -0
  68. package/dist/components/conversation/internalNotePreview.d.ts.map +1 -0
  69. package/dist/components/conversation/internalNotePreview.js +11 -0
  70. package/dist/components/conversation/listHeading.d.ts +19 -0
  71. package/dist/components/conversation/listHeading.d.ts.map +1 -0
  72. package/dist/components/conversation/listHeading.js +24 -0
  73. package/dist/components/conversation/rowDisplayName.d.ts +7 -0
  74. package/dist/components/conversation/rowDisplayName.d.ts.map +1 -0
  75. package/dist/components/conversation/rowDisplayName.js +8 -0
  76. package/dist/components/conversation/rowTime.d.ts +4 -0
  77. package/dist/components/conversation/rowTime.d.ts.map +1 -0
  78. package/dist/components/conversation/rowTime.js +10 -0
  79. package/dist/components/conversation-detail/PinLimitModal.d.ts.map +1 -1
  80. package/dist/components/conversation-detail/PinLimitModal.js +3 -1
  81. package/dist/components/group/AddMemberModal.d.ts.map +1 -1
  82. package/dist/components/group/AddMemberModal.js +15 -4
  83. package/dist/components/group/AdminPermissionModal.d.ts +1 -0
  84. package/dist/components/group/AdminPermissionModal.d.ts.map +1 -1
  85. package/dist/components/group/AdminPermissionModal.js +38 -3
  86. package/dist/components/group/CreateGroupForm.d.ts +3 -1
  87. package/dist/components/group/CreateGroupForm.d.ts.map +1 -1
  88. package/dist/components/group/CreateGroupForm.js +7 -1
  89. package/dist/components/group/CreateGroupFormCrmView.d.ts +23 -0
  90. package/dist/components/group/CreateGroupFormCrmView.d.ts.map +1 -0
  91. package/dist/components/group/CreateGroupFormCrmView.js +25 -0
  92. package/dist/components/group/DisableSendPermissionConfirm.d.ts +11 -0
  93. package/dist/components/group/DisableSendPermissionConfirm.d.ts.map +1 -0
  94. package/dist/components/group/DisableSendPermissionConfirm.js +10 -0
  95. package/dist/components/group/GroupCompositeAvatar.d.ts.map +1 -1
  96. package/dist/components/group/GroupCompositeAvatar.js +39 -4
  97. package/dist/components/group/GroupMemberPicker.d.ts +5 -2
  98. package/dist/components/group/GroupMemberPicker.d.ts.map +1 -1
  99. package/dist/components/group/GroupMemberPicker.js +8 -42
  100. package/dist/components/group/GroupMemberPickerCrm.d.ts +4 -0
  101. package/dist/components/group/GroupMemberPickerCrm.d.ts.map +1 -0
  102. package/dist/components/group/GroupMemberPickerCrm.js +48 -0
  103. package/dist/components/group/GroupMemberPickerLegacy.d.ts +8 -0
  104. package/dist/components/group/GroupMemberPickerLegacy.d.ts.map +1 -0
  105. package/dist/components/group/GroupMemberPickerLegacy.js +46 -0
  106. package/dist/components/group/GroupPanelHeader.d.ts +10 -0
  107. package/dist/components/group/GroupPanelHeader.d.ts.map +1 -0
  108. package/dist/components/group/GroupPanelHeader.js +11 -0
  109. package/dist/components/group/MemberPermissionPanel.d.ts.map +1 -1
  110. package/dist/components/group/MemberPermissionPanel.js +31 -2
  111. package/dist/components/group/PermissionPanelCrm.d.ts +24 -0
  112. package/dist/components/group/PermissionPanelCrm.d.ts.map +1 -0
  113. package/dist/components/group/PermissionPanelCrm.js +16 -0
  114. package/dist/components/group/PersonAvatar.d.ts +11 -0
  115. package/dist/components/group/PersonAvatar.d.ts.map +1 -0
  116. package/dist/components/group/PersonAvatar.js +21 -0
  117. package/dist/components/group/crmIcon.d.ts +9 -0
  118. package/dist/components/group/crmIcon.d.ts.map +1 -0
  119. package/dist/components/group/crmIcon.js +38 -0
  120. package/dist/components/icon/AdaptiveIcon.d.ts +15 -0
  121. package/dist/components/icon/AdaptiveIcon.d.ts.map +1 -0
  122. package/dist/components/icon/AdaptiveIcon.js +10 -0
  123. package/dist/components/icon/StrokeIcon.d.ts +14 -0
  124. package/dist/components/icon/StrokeIcon.d.ts.map +1 -0
  125. package/dist/components/icon/StrokeIcon.js +5 -0
  126. package/dist/components/icon/strokeIconNodes.d.ts +431 -0
  127. package/dist/components/icon/strokeIconNodes.d.ts.map +1 -0
  128. package/dist/components/icon/strokeIconNodes.js +269 -0
  129. package/dist/components/media-collection/index.d.ts.map +1 -1
  130. package/dist/components/media-collection/index.js +21 -5
  131. package/dist/components/message/GroupMembersDrawer.d.ts.map +1 -1
  132. package/dist/components/message/GroupMembersDrawer.js +60 -13
  133. package/dist/components/message/GroupMembersPanelCrm.d.ts +23 -0
  134. package/dist/components/message/GroupMembersPanelCrm.d.ts.map +1 -0
  135. package/dist/components/message/GroupMembersPanelCrm.js +55 -0
  136. package/dist/components/message/MessageHeader.d.ts.map +1 -1
  137. package/dist/components/message/MessageHeader.js +76 -27
  138. package/dist/components/message/MessageInfiniteScroll.d.ts +4 -2
  139. package/dist/components/message/MessageInfiniteScroll.d.ts.map +1 -1
  140. package/dist/components/message/MessageInfiniteScroll.js +1 -1
  141. package/dist/components/message/MessageList.d.ts +2 -1
  142. package/dist/components/message/MessageList.d.ts.map +1 -1
  143. package/dist/components/message/MessageList.js +12 -1
  144. package/dist/components/message/SelectSession.d.ts +4 -1
  145. package/dist/components/message/SelectSession.d.ts.map +1 -1
  146. package/dist/components/message/SelectSession.js +13 -4
  147. package/dist/components/message/UnassignedSessionFooter.js +2 -2
  148. package/dist/components/message/footer/ActionBar.d.ts +5 -1
  149. package/dist/components/message/footer/ActionBar.d.ts.map +1 -1
  150. package/dist/components/message/footer/ActionBar.js +14 -1
  151. package/dist/components/message/footer/CannedResponsePlugin.d.ts.map +1 -1
  152. package/dist/components/message/footer/CannedResponsePlugin.js +18 -3
  153. package/dist/components/message/footer/ClosedSessionBanner.d.ts +9 -0
  154. package/dist/components/message/footer/ClosedSessionBanner.d.ts.map +1 -0
  155. package/dist/components/message/footer/ClosedSessionBanner.js +13 -0
  156. package/dist/components/message/footer/ComposerEditor.d.ts.map +1 -1
  157. package/dist/components/message/footer/ComposerEditor.js +9 -4
  158. package/dist/components/message/footer/ComposerTabs.d.ts +1 -2
  159. package/dist/components/message/footer/ComposerTabs.d.ts.map +1 -1
  160. package/dist/components/message/footer/ComposerTabs.js +14 -35
  161. package/dist/components/message/footer/CrmComposerCard.d.ts +11 -0
  162. package/dist/components/message/footer/CrmComposerCard.d.ts.map +1 -0
  163. package/dist/components/message/footer/CrmComposerCard.js +30 -0
  164. package/dist/components/message/footer/EnterHandler.d.ts.map +1 -1
  165. package/dist/components/message/footer/EnterHandler.js +3 -0
  166. package/dist/components/message/footer/FilePreview.js +2 -2
  167. package/dist/components/message/footer/LinkInputPreview.js +2 -2
  168. package/dist/components/message/footer/MediaActions.d.ts +2 -1
  169. package/dist/components/message/footer/MediaActions.d.ts.map +1 -1
  170. package/dist/components/message/footer/MediaActions.js +21 -4
  171. package/dist/components/message/footer/SessionClosedModal.d.ts +3 -1
  172. package/dist/components/message/footer/SessionClosedModal.d.ts.map +1 -1
  173. package/dist/components/message/footer/SessionClosedModal.js +6 -2
  174. package/dist/components/message/footer/ToolbarPlugin.d.ts +3 -1
  175. package/dist/components/message/footer/ToolbarPlugin.d.ts.map +1 -1
  176. package/dist/components/message/footer/ToolbarPlugin.js +2 -2
  177. package/dist/components/message/footer/clearComposerHistory.d.ts +3 -0
  178. package/dist/components/message/footer/clearComposerHistory.d.ts.map +1 -0
  179. package/dist/components/message/footer/clearComposerHistory.js +11 -0
  180. package/dist/components/message/footer/index.d.ts +2 -2
  181. package/dist/components/message/footer/index.d.ts.map +1 -1
  182. package/dist/components/message/footer/index.js +15 -5
  183. package/dist/components/message/footer/mention/MentionMenu.d.ts.map +1 -1
  184. package/dist/components/message/footer/mention/MentionMenu.js +4 -1
  185. package/dist/components/message/footer/useComposerFocusRequest.d.ts +10 -0
  186. package/dist/components/message/footer/useComposerFocusRequest.d.ts.map +1 -0
  187. package/dist/components/message/footer/useComposerFocusRequest.js +28 -0
  188. package/dist/components/message/groupMemberMenuCrm.d.ts +32 -0
  189. package/dist/components/message/groupMemberMenuCrm.d.ts.map +1 -0
  190. package/dist/components/message/groupMemberMenuCrm.js +83 -0
  191. package/dist/components/message/groupMemberTypes.d.ts +13 -0
  192. package/dist/components/message/groupMemberTypes.d.ts.map +1 -0
  193. package/dist/components/message/groupMemberTypes.js +1 -0
  194. package/dist/components/message/headerIconButton.d.ts +10 -0
  195. package/dist/components/message/headerIconButton.d.ts.map +1 -0
  196. package/dist/components/message/headerIconButton.js +9 -0
  197. package/dist/components/message/item/CrmSystemLine.d.ts +10 -0
  198. package/dist/components/message/item/CrmSystemLine.d.ts.map +1 -0
  199. package/dist/components/message/item/CrmSystemLine.js +6 -0
  200. package/dist/components/message/item/DateDivider.d.ts +5 -0
  201. package/dist/components/message/item/DateDivider.d.ts.map +1 -0
  202. package/dist/components/message/item/DateDivider.js +5 -0
  203. package/dist/components/message/item/GroupNotificationMessage.d.ts.map +1 -1
  204. package/dist/components/message/item/GroupNotificationMessage.js +9 -0
  205. package/dist/components/message/item/MemberEventSummary.d.ts +8 -0
  206. package/dist/components/message/item/MemberEventSummary.d.ts.map +1 -0
  207. package/dist/components/message/item/MemberEventSummary.js +18 -0
  208. package/dist/components/message/item/MessageBubble.d.ts +3 -1
  209. package/dist/components/message/item/MessageBubble.d.ts.map +1 -1
  210. package/dist/components/message/item/MessageBubble.js +27 -13
  211. package/dist/components/message/item/MessageMoreButton.d.ts +13 -0
  212. package/dist/components/message/item/MessageMoreButton.d.ts.map +1 -0
  213. package/dist/components/message/item/MessageMoreButton.js +42 -0
  214. package/dist/components/message/item/RevokeMessage.js +1 -1
  215. package/dist/components/message/item/SessionEventMessage.d.ts.map +1 -1
  216. package/dist/components/message/item/SessionEventMessage.js +13 -1
  217. package/dist/components/message/item/SystemLogMessage.d.ts.map +1 -1
  218. package/dist/components/message/item/SystemLogMessage.js +7 -0
  219. package/dist/components/message/item/index.d.ts.map +1 -1
  220. package/dist/components/message/item/index.js +64 -15
  221. package/dist/components/message/item/otherSenders.d.ts +7 -0
  222. package/dist/components/message/item/otherSenders.d.ts.map +1 -0
  223. package/dist/components/message/item/otherSenders.js +29 -0
  224. package/dist/components/message/item/textStyle.d.ts +1 -1
  225. package/dist/components/message/item/textStyle.d.ts.map +1 -1
  226. package/dist/components/message/item/textStyle.js +2 -2
  227. package/dist/components/message/messageKeyboardNav.d.ts +8 -0
  228. package/dist/components/message/messageKeyboardNav.d.ts.map +1 -0
  229. package/dist/components/message/messageKeyboardNav.js +24 -0
  230. package/dist/components/message/reply/ReplyPreviewBar.js +2 -2
  231. package/dist/components/message/toolbox/MessageToolboxMenu.d.ts.map +1 -1
  232. package/dist/components/message/toolbox/MessageToolboxMenu.js +16 -1
  233. package/dist/components/search-conversation/SearchAll.d.ts.map +1 -1
  234. package/dist/components/search-conversation/SearchAll.js +12 -1
  235. package/dist/components/search-conversation/SearchDrawer.d.ts.map +1 -1
  236. package/dist/components/search-conversation/SearchDrawer.js +31 -15
  237. package/dist/components/search-conversation/SearchMessageOnCurrentConversation.d.ts.map +1 -1
  238. package/dist/components/search-conversation/SearchMessageOnCurrentConversation.js +5 -2
  239. package/dist/components/search-conversation/index.d.ts.map +1 -1
  240. package/dist/components/search-conversation/index.js +3 -1
  241. package/dist/components/search-conversation/item/SearchItemAsGroup.d.ts.map +1 -1
  242. package/dist/components/search-conversation/item/SearchItemAsGroup.js +14 -4
  243. package/dist/components/search-conversation/item/SearchItemAsMessage.d.ts.map +1 -1
  244. package/dist/components/search-conversation/item/SearchItemAsMessage.js +18 -7
  245. package/dist/components/search-conversation/item/SearchItemAsUser.d.ts.map +1 -1
  246. package/dist/components/search-conversation/item/SearchItemAsUser.js +23 -5
  247. package/dist/components/search-conversation/item/searchRowClass.d.ts +3 -0
  248. package/dist/components/search-conversation/item/searchRowClass.d.ts.map +1 -0
  249. package/dist/components/search-conversation/item/searchRowClass.js +5 -0
  250. package/dist/components/session/DeskAssignedSession.d.ts +5 -1
  251. package/dist/components/session/DeskAssignedSession.d.ts.map +1 -1
  252. package/dist/components/session/DeskAssignedSession.js +40 -12
  253. package/dist/components/session/DeskTeamInbox.d.ts.map +1 -1
  254. package/dist/components/session/DeskTeamInbox.js +15 -22
  255. package/dist/components/session/FolderRow.d.ts +21 -0
  256. package/dist/components/session/FolderRow.d.ts.map +1 -0
  257. package/dist/components/session/FolderRow.js +16 -0
  258. package/dist/components/session/SessionFolderList.d.ts +23 -0
  259. package/dist/components/session/SessionFolderList.d.ts.map +1 -0
  260. package/dist/components/session/SessionFolderList.js +27 -0
  261. package/dist/components/session/sessionFilters.d.ts +24 -0
  262. package/dist/components/session/sessionFilters.d.ts.map +1 -0
  263. package/dist/components/session/sessionFilters.js +80 -0
  264. package/dist/components/shortcut-help/ShortcutHelpModal.d.ts +8 -0
  265. package/dist/components/shortcut-help/ShortcutHelpModal.d.ts.map +1 -0
  266. package/dist/components/shortcut-help/ShortcutHelpModal.js +23 -0
  267. package/dist/components/thread/AssignConfirmModal.d.ts.map +1 -1
  268. package/dist/components/thread/AssignConfirmModal.js +4 -3
  269. package/dist/components/thread/EndSessionConfirm.d.ts +11 -0
  270. package/dist/components/thread/EndSessionConfirm.d.ts.map +1 -0
  271. package/dist/components/thread/EndSessionConfirm.js +31 -0
  272. package/dist/components/thread/EndSessionToast.d.ts +6 -0
  273. package/dist/components/thread/EndSessionToast.d.ts.map +1 -0
  274. package/dist/components/thread/EndSessionToast.js +18 -0
  275. package/dist/components/thread/GroupInfoBodyCrm.d.ts +46 -0
  276. package/dist/components/thread/GroupInfoBodyCrm.d.ts.map +1 -0
  277. package/dist/components/thread/GroupInfoBodyCrm.js +41 -0
  278. package/dist/components/thread/GroupInfoRows.d.ts +33 -0
  279. package/dist/components/thread/GroupInfoRows.d.ts.map +1 -0
  280. package/dist/components/thread/GroupInfoRows.js +18 -0
  281. package/dist/components/thread/GroupThreadInfo.d.ts.map +1 -1
  282. package/dist/components/thread/GroupThreadInfo.js +23 -6
  283. package/dist/components/thread/ManualAssignPopover.d.ts +3 -1
  284. package/dist/components/thread/ManualAssignPopover.d.ts.map +1 -1
  285. package/dist/components/thread/ManualAssignPopover.js +21 -9
  286. package/dist/components/thread/SessionDetailCard.d.ts +6 -0
  287. package/dist/components/thread/SessionDetailCard.d.ts.map +1 -0
  288. package/dist/components/thread/SessionDetailCard.js +103 -0
  289. package/dist/components/thread/SessionSection.d.ts +2 -4
  290. package/dist/components/thread/SessionSection.d.ts.map +1 -1
  291. package/dist/components/thread/SessionSection.js +19 -122
  292. package/dist/components/thread/SessionTagPicker.d.ts +11 -0
  293. package/dist/components/thread/SessionTagPicker.d.ts.map +1 -0
  294. package/dist/components/thread/SessionTagPicker.js +27 -0
  295. package/dist/components/thread/SingleThreadInfo.d.ts.map +1 -1
  296. package/dist/components/thread/SingleThreadInfo.js +16 -6
  297. package/dist/components/thread/SupportSessionPanel.d.ts +18 -0
  298. package/dist/components/thread/SupportSessionPanel.d.ts.map +1 -0
  299. package/dist/components/thread/SupportSessionPanel.js +46 -0
  300. package/dist/components/thread/ThreadInfo.d.ts +8 -1
  301. package/dist/components/thread/ThreadInfo.d.ts.map +1 -1
  302. package/dist/components/thread/ThreadInfo.js +27 -29
  303. package/dist/components/thread/ThreadInfoHeader.d.ts +13 -0
  304. package/dist/components/thread/ThreadInfoHeader.d.ts.map +1 -0
  305. package/dist/components/thread/ThreadInfoHeader.js +11 -0
  306. package/dist/components/thread/UserSection.d.ts.map +1 -1
  307. package/dist/components/thread/UserSection.js +35 -22
  308. package/dist/components/thread/sessionDateFormat.d.ts +3 -0
  309. package/dist/components/thread/sessionDateFormat.d.ts.map +1 -0
  310. package/dist/components/thread/sessionDateFormat.js +13 -0
  311. package/dist/components/thread/sessionDuration.d.ts +5 -0
  312. package/dist/components/thread/sessionDuration.d.ts.map +1 -0
  313. package/dist/components/thread/sessionDuration.js +24 -0
  314. package/dist/constants/index.d.ts +1 -0
  315. package/dist/constants/index.d.ts.map +1 -1
  316. package/dist/constants/index.js +2 -0
  317. package/dist/constants/layout.d.ts +24 -0
  318. package/dist/constants/layout.d.ts.map +1 -0
  319. package/dist/constants/layout.js +23 -0
  320. package/dist/context/ChatContext.d.ts.map +1 -1
  321. package/dist/context/ChatContext.js +27 -1
  322. package/dist/hooks/canned-response/useSearchCannedAcrossScopes.d.ts +7 -0
  323. package/dist/hooks/canned-response/useSearchCannedAcrossScopes.d.ts.map +1 -0
  324. package/dist/hooks/canned-response/useSearchCannedAcrossScopes.js +46 -0
  325. package/dist/hooks/common/useCloseOnSidePanelOpen.d.ts +3 -0
  326. package/dist/hooks/common/useCloseOnSidePanelOpen.d.ts.map +1 -0
  327. package/dist/hooks/common/useCloseOnSidePanelOpen.js +15 -0
  328. package/dist/hooks/common/useDeskShortcuts.d.ts +11 -0
  329. package/dist/hooks/common/useDeskShortcuts.d.ts.map +1 -0
  330. package/dist/hooks/common/useDeskShortcuts.js +94 -0
  331. package/dist/hooks/common/useEscapeLayer.d.ts +3 -0
  332. package/dist/hooks/common/useEscapeLayer.d.ts.map +1 -0
  333. package/dist/hooks/common/useEscapeLayer.js +18 -0
  334. package/dist/hooks/common/useMediaQuery.d.ts +3 -0
  335. package/dist/hooks/common/useMediaQuery.d.ts.map +1 -0
  336. package/dist/hooks/common/useMediaQuery.js +12 -0
  337. package/dist/hooks/common/useSidePanel.d.ts +12 -0
  338. package/dist/hooks/common/useSidePanel.d.ts.map +1 -0
  339. package/dist/hooks/common/useSidePanel.js +32 -0
  340. package/dist/hooks/group/useConversationGroups.d.ts.map +1 -1
  341. package/dist/hooks/group/useConversationGroups.js +3 -0
  342. package/dist/hooks/message/useNewMessageAnnouncement.d.ts +3 -0
  343. package/dist/hooks/message/useNewMessageAnnouncement.d.ts.map +1 -0
  344. package/dist/hooks/message/useNewMessageAnnouncement.js +30 -0
  345. package/dist/hooks/search/useSearchGroups.js +2 -1
  346. package/dist/hooks/search/useSearchMessage.d.ts +3 -1
  347. package/dist/hooks/search/useSearchMessage.d.ts.map +1 -1
  348. package/dist/hooks/search/useSearchMessage.js +2 -2
  349. package/dist/hooks/session/useBotSessionOwnerIdentity.d.ts +12 -0
  350. package/dist/hooks/session/useBotSessionOwnerIdentity.d.ts.map +1 -0
  351. package/dist/hooks/session/useBotSessionOwnerIdentity.js +22 -0
  352. package/dist/hooks/session/useCloseSession.d.ts +1 -0
  353. package/dist/hooks/session/useCloseSession.d.ts.map +1 -1
  354. package/dist/hooks/session/useCloseSession.js +9 -8
  355. package/dist/hooks/session/useEndSession.d.ts +11 -0
  356. package/dist/hooks/session/useEndSession.d.ts.map +1 -0
  357. package/dist/hooks/session/useEndSession.js +45 -0
  358. package/dist/hooks/session/useGetSession.d.ts.map +1 -1
  359. package/dist/hooks/session/useGetSession.js +27 -6
  360. package/dist/hooks/session/usePendingSessionClose.d.ts +5 -0
  361. package/dist/hooks/session/usePendingSessionClose.d.ts.map +1 -0
  362. package/dist/hooks/session/usePendingSessionClose.js +12 -0
  363. package/dist/hooks/session/useSessionCustomerName.d.ts +3 -0
  364. package/dist/hooks/session/useSessionCustomerName.d.ts.map +1 -0
  365. package/dist/hooks/session/useSessionCustomerName.js +19 -0
  366. package/dist/hooks/session/useSessionFieldAutosave.d.ts +19 -0
  367. package/dist/hooks/session/useSessionFieldAutosave.d.ts.map +1 -0
  368. package/dist/hooks/session/useSessionFieldAutosave.js +52 -0
  369. package/dist/index.d.ts +8 -2
  370. package/dist/index.d.ts.map +1 -1
  371. package/dist/index.js +5 -1
  372. package/dist/locales/vi/common.json +201 -21
  373. package/dist/locales/vi/conversation-inbox.json +21 -2
  374. package/dist/screens/desk-message/DeskWorkspace.d.ts +12 -0
  375. package/dist/screens/desk-message/DeskWorkspace.d.ts.map +1 -0
  376. package/dist/screens/desk-message/DeskWorkspace.js +57 -0
  377. package/dist/screens/desk-message/FolderOverlay.d.ts +4 -0
  378. package/dist/screens/desk-message/FolderOverlay.d.ts.map +1 -0
  379. package/dist/screens/desk-message/FolderOverlay.js +32 -0
  380. package/dist/screens/desk-message/SkipLinks.d.ts +4 -0
  381. package/dist/screens/desk-message/SkipLinks.d.ts.map +1 -0
  382. package/dist/screens/desk-message/SkipLinks.js +19 -0
  383. package/dist/screens/desk-message/ViewportNotice.d.ts +4 -0
  384. package/dist/screens/desk-message/ViewportNotice.d.ts.map +1 -0
  385. package/dist/screens/desk-message/ViewportNotice.js +9 -0
  386. package/dist/screens/desk-message/index.d.ts +3 -2
  387. package/dist/screens/desk-message/index.d.ts.map +1 -1
  388. package/dist/screens/desk-message/index.js +4 -12
  389. package/dist/store/deskPanelHost.d.ts +13 -0
  390. package/dist/store/deskPanelHost.d.ts.map +1 -0
  391. package/dist/store/deskPanelHost.js +9 -0
  392. package/dist/store/escapeLayers.d.ts +15 -0
  393. package/dist/store/escapeLayers.d.ts.map +1 -0
  394. package/dist/store/escapeLayers.js +15 -0
  395. package/dist/store/pendingSessionClose.d.ts +19 -0
  396. package/dist/store/pendingSessionClose.d.ts.map +1 -0
  397. package/dist/store/pendingSessionClose.js +74 -0
  398. package/dist/store/session.d.ts +2 -1
  399. package/dist/store/session.d.ts.map +1 -1
  400. package/dist/store/session.js +4 -1
  401. package/dist/store/sessionFolder.d.ts +15 -0
  402. package/dist/store/sessionFolder.d.ts.map +1 -0
  403. package/dist/store/sessionFolder.js +18 -0
  404. package/dist/store/shortcutPrefs.d.ts +9 -0
  405. package/dist/store/shortcutPrefs.d.ts.map +1 -0
  406. package/dist/store/shortcutPrefs.js +23 -0
  407. package/dist/store/sidePanel.d.ts +12 -0
  408. package/dist/store/sidePanel.d.ts.map +1 -0
  409. package/dist/store/sidePanel.js +9 -0
  410. package/dist/store/workspaceLayout.d.ts +12 -0
  411. package/dist/store/workspaceLayout.d.ts.map +1 -0
  412. package/dist/store/workspaceLayout.js +9 -0
  413. package/dist/styles/global.css +1 -1
  414. package/dist/types/chat.d.ts +18 -0
  415. package/dist/types/chat.d.ts.map +1 -1
  416. package/dist/types/dto.d.ts +2 -1
  417. package/dist/types/dto.d.ts.map +1 -1
  418. package/dist/utils/a11yClickable.d.ts +10 -0
  419. package/dist/utils/a11yClickable.d.ts.map +1 -0
  420. package/dist/utils/a11yClickable.js +15 -0
  421. package/dist/utils/events.d.ts +4 -0
  422. package/dist/utils/events.d.ts.map +1 -1
  423. package/dist/utils/headerMemberCount.d.ts +10 -0
  424. package/dist/utils/headerMemberCount.d.ts.map +1 -0
  425. package/dist/utils/headerMemberCount.js +3 -0
  426. package/dist/utils/memberEventRun.d.ts +16 -0
  427. package/dist/utils/memberEventRun.d.ts.map +1 -0
  428. package/dist/utils/memberEventRun.js +40 -0
  429. package/package.json +1 -1
  430. package/dist/components/session/SessionFilterMenu.d.ts +0 -15
  431. package/dist/components/session/SessionFilterMenu.d.ts.map +0 -1
  432. package/dist/components/session/SessionFilterMenu.js +0 -30
  433. package/dist/components/session/sessionMenuItems.d.ts +0 -28
  434. package/dist/components/session/sessionMenuItems.d.ts.map +0 -1
  435. package/dist/components/session/sessionMenuItems.js +0 -119
@@ -0,0 +1,4 @@
1
+ /** Folder panel floating over the conversation list on narrow screens. */
2
+ declare const FolderOverlay: () => import("react/jsx-runtime").JSX.Element | null;
3
+ export default FolderOverlay;
4
+ //# sourceMappingURL=FolderOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FolderOverlay.d.ts","sourceRoot":"","sources":["../../../src/screens/desk-message/FolderOverlay.tsx"],"names":[],"mappings":"AAKA,0EAA0E;AAC1E,QAAA,MAAM,aAAa,sDAqClB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect, useRef } from "react";
4
+ import DeskAssignedSession from "../../components/session/DeskAssignedSession";
5
+ import useWorkspaceLayoutStore from "../../store/workspaceLayout";
6
+ /** Folder panel floating over the conversation list on narrow screens. */
7
+ const FolderOverlay = () => {
8
+ const isOpen = useWorkspaceLayoutStore((state) => state.isFolderOverlayOpen);
9
+ const close = useWorkspaceLayoutStore((state) => state.setFolderOverlayOpen);
10
+ const panelRef = useRef(null);
11
+ useEffect(() => {
12
+ var _a;
13
+ if (!isOpen)
14
+ return;
15
+ const opener = document.activeElement;
16
+ (_a = panelRef.current) === null || _a === void 0 ? void 0 : _a.focus();
17
+ const onKeyDown = (event) => {
18
+ if (event.key === "Escape")
19
+ close(false);
20
+ };
21
+ document.addEventListener("keydown", onKeyDown);
22
+ return () => {
23
+ var _a;
24
+ document.removeEventListener("keydown", onKeyDown);
25
+ (_a = opener === null || opener === void 0 ? void 0 : opener.focus) === null || _a === void 0 ? void 0 : _a.call(opener);
26
+ };
27
+ }, [isOpen, close]);
28
+ if (!isOpen)
29
+ return null;
30
+ return (_jsx("div", { className: "absolute inset-0 z-30 bg-gray-900/15", onClick: () => close(false), "data-cp-name": "FolderOverlay", children: _jsx("div", { ref: panelRef, tabIndex: -1, className: "h-full w-fit outline-none", onClick: (event) => event.stopPropagation(), children: _jsx(DeskAssignedSession, { variant: "overlay" }) }) }));
31
+ };
32
+ export default FolderOverlay;
@@ -0,0 +1,4 @@
1
+ /** Two skip links that appear on focus and jump past the folder panel. */
2
+ declare const SkipLinks: () => import("react/jsx-runtime").JSX.Element;
3
+ export default SkipLinks;
4
+ //# sourceMappingURL=SkipLinks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkipLinks.d.ts","sourceRoot":"","sources":["../../../src/screens/desk-message/SkipLinks.tsx"],"names":[],"mappings":"AAiBA,0EAA0E;AAC1E,QAAA,MAAM,SAAS,+CAoCd,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useTranslation } from "react-i18next";
4
+ import { DESK_COMPOSER_SELECTOR, DESK_ROW_SELECTOR, DESK_SEARCH_SELECTOR, } from "../../hooks/common/useDeskShortcuts";
5
+ const linkClass = "absolute left-3 top-3 z-50 -translate-y-[200%] rounded-lg bg-white px-3 py-2 text-sm font-medium text-primary-500 shadow-md focus:translate-y-0 focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary-200";
6
+ const focusTarget = (event, find) => {
7
+ var _a;
8
+ event.preventDefault();
9
+ (_a = find()) === null || _a === void 0 ? void 0 : _a.focus();
10
+ };
11
+ /** Two skip links that appear on focus and jump past the folder panel. */
12
+ const SkipLinks = () => {
13
+ const { t } = useTranslation();
14
+ return (_jsxs("nav", { "aria-label": t("skip_navigation"), className: "contents", children: [_jsx("a", { href: "#desk-conversation-list", className: linkClass, onClick: (e) => focusTarget(e, () => {
15
+ var _a, _b;
16
+ return (_b = (_a = document.querySelector(`${DESK_ROW_SELECTOR}[aria-current="true"]`)) !== null && _a !== void 0 ? _a : document.querySelector(DESK_ROW_SELECTOR)) !== null && _b !== void 0 ? _b : document.querySelector(DESK_SEARCH_SELECTOR);
17
+ }), children: t("skip_to_conversation_list") }), _jsx("a", { href: "#desk-composer", className: linkClass, onClick: (e) => focusTarget(e, () => document.querySelector(`${DESK_COMPOSER_SELECTOR} [contenteditable="true"]`)), children: t("skip_to_composer") })] }));
18
+ };
19
+ export default SkipLinks;
@@ -0,0 +1,4 @@
1
+ /** Shown instead of the workspace when the window is narrower than the desk supports. */
2
+ declare const ViewportNotice: () => import("react/jsx-runtime").JSX.Element;
3
+ export default ViewportNotice;
4
+ //# sourceMappingURL=ViewportNotice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewportNotice.d.ts","sourceRoot":"","sources":["../../../src/screens/desk-message/ViewportNotice.tsx"],"names":[],"mappings":"AAGA,yFAAyF;AACzF,QAAA,MAAM,cAAc,+CAcnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useTranslation } from "react-i18next";
4
+ /** Shown instead of the workspace when the window is narrower than the desk supports. */
5
+ const ViewportNotice = () => {
6
+ const { t } = useTranslation();
7
+ return (_jsx("div", { role: "status", className: "flex flex-1 h-screen items-center justify-center bg-gray-5 p-6", "data-cp-name": "ViewportNotice", children: _jsx("p", { className: "rounded-xl bg-white px-6 py-4 text-center text-base text-gray-900 shadow-sm", children: t("viewport_too_narrow") }) }));
8
+ };
9
+ export default ViewportNotice;
@@ -1,11 +1,12 @@
1
1
  import { GroupThreadInfoConfig } from "../../components/thread/GroupThreadInfo";
2
+ import type { CannedCreateRequest } from "../../types/chat";
2
3
  interface DChatDeskMessageProps {
3
- openCreateCannedModal?: () => void;
4
+ openCreateCannedModal?: (request?: CannedCreateRequest) => void;
4
5
  groupThreadInfoConfig?: GroupThreadInfoConfig;
5
6
  onCopyMessageLink?: (conversationId: string, clientMsgID: string) => void;
6
7
  /** Called instead of the SDK's default toast when a jumped-to message turns out to be revoked. */
7
8
  onSearchMessageRevoked?: () => void;
8
9
  }
9
- declare const DChatDeskMessage: ({ openCreateCannedModal, groupThreadInfoConfig, onCopyMessageLink, onSearchMessageRevoked, }: DChatDeskMessageProps) => import("react/jsx-runtime").JSX.Element;
10
+ declare const DChatDeskMessage: (props: DChatDeskMessageProps) => import("react/jsx-runtime").JSX.Element;
10
11
  export default DChatDeskMessage;
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/desk-message/index.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,UAAU,qBAAqB;IAC7B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,QAAA,MAAM,gBAAgB,GAAI,8FAKvB,qBAAqB,4CA2CvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screens/desk-message/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,UAAU,qBAAqB;IAC7B,qBAAqB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAChE,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,QAAA,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,4CAcrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,19 +1,11 @@
1
1
  "use client";
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useBoolean } from "ahooks";
4
- import MessageList from "../../components/message/MessageList";
5
- import DeskConversationList from "../../components/conversation/DeskConversationList";
2
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
6
3
  import { useChatContext } from "../../context/ChatContext";
7
4
  import { Spin } from "antd";
8
5
  import { ConnectStatus } from "../../types/chat";
9
- import useConversationStore from "../../store/conversation";
10
- import DeskAssignedSession from "../../components/session/DeskAssignedSession";
11
- import ThreadInfo from "../../components/thread/ThreadInfo";
12
- const DChatDeskMessage = ({ openCreateCannedModal, groupThreadInfoConfig, onCopyMessageLink, onSearchMessageRevoked, }) => {
13
- const selectedConversationId = useConversationStore((state) => state.selectedConversationId);
14
- const searchClientMsgID = useConversationStore((state) => state.searchClientMsgID);
15
- const [isThreadInfoOpen, { toggle: toggleThreadInfo, setFalse: closeThreadInfo },] = useBoolean(false);
6
+ import DeskWorkspace from "./DeskWorkspace";
7
+ const DChatDeskMessage = (props) => {
16
8
  const { connectStatus } = useChatContext();
17
- return (_jsx(_Fragment, { children: connectStatus === ConnectStatus.Connected ? (_jsxs("div", { className: "flex flex-1 flex-row h-screen bg-[#f5f5f5]", children: [_jsx(DeskAssignedSession, {}), _jsx(DeskConversationList, {}), _jsx(MessageList, { conversationId: selectedConversationId, searchClientMsgID: searchClientMsgID, openCreateCannedModal: openCreateCannedModal, onOpenThreadInfo: toggleThreadInfo, onCopyMessageLink: onCopyMessageLink, onSearchMessageRevoked: onSearchMessageRevoked, showPinnedMessageBar: true }), _jsx(ThreadInfo, { isOpen: isThreadInfoOpen, onClose: closeThreadInfo, groupConfig: groupThreadInfoConfig })] })) : (_jsx("div", { className: "flex flex-1 flex-row h-screen bg-[#f5f5f5]", children: connectStatus === ConnectStatus.Connecting && _jsx(Spin, { fullscreen: true }) })) }));
9
+ return (_jsx(_Fragment, { children: connectStatus === ConnectStatus.Connected ? (_jsx(DeskWorkspace, Object.assign({}, props))) : (_jsx("div", { className: "flex flex-1 flex-row h-screen bg-gray-5", children: connectStatus === ConnectStatus.Connecting && _jsx(Spin, { fullscreen: true }) })) }));
18
10
  };
19
11
  export default DChatDeskMessage;
@@ -0,0 +1,13 @@
1
+ interface DeskPanelHostStore {
2
+ /** Positioned workspace element that overlay drawers mount into. */
3
+ workspace: HTMLElement | null;
4
+ /** Right-hand slot where an inline side panel mounts (CRM desk only). */
5
+ slot: HTMLElement | null;
6
+ /** True from the width where side panels sit inline instead of overlaying. */
7
+ isInline: boolean;
8
+ setHost: (host: Partial<Omit<DeskPanelHostStore, "setHost">>) => void;
9
+ }
10
+ /** Lets a panel opened from the chat header mount in the desk workspace layout. */
11
+ declare const useDeskPanelHostStore: import("zustand").UseBoundStore<import("zustand").StoreApi<DeskPanelHostStore>>;
12
+ export default useDeskPanelHostStore;
13
+ //# sourceMappingURL=deskPanelHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deskPanelHost.d.ts","sourceRoot":"","sources":["../../src/store/deskPanelHost.ts"],"names":[],"mappings":"AAEA,UAAU,kBAAkB;IAC1B,oEAAoE;IACpE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,yEAAyE;IACzE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC;CACvE;AAED,mFAAmF;AACnF,QAAA,MAAM,qBAAqB,iFAKxB,CAAC;AAEJ,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { create } from "zustand";
2
+ /** Lets a panel opened from the chat header mount in the desk workspace layout. */
3
+ const useDeskPanelHostStore = create((set) => ({
4
+ workspace: null,
5
+ slot: null,
6
+ isInline: false,
7
+ setHost: (host) => set(host),
8
+ }));
9
+ export default useDeskPanelHostStore;
@@ -0,0 +1,15 @@
1
+ interface Layer {
2
+ id: number;
3
+ close: () => void;
4
+ }
5
+ interface EscapeLayersStore {
6
+ layers: Layer[];
7
+ push: (layer: Layer) => void;
8
+ remove: (id: number) => void;
9
+ /** Closes the most recently opened layer; returns false when none is open. */
10
+ closeTop: () => boolean;
11
+ }
12
+ /** Open popovers register here so Esc closes them before any side panel. */
13
+ declare const useEscapeLayersStore: import("zustand").UseBoundStore<import("zustand").StoreApi<EscapeLayersStore>>;
14
+ export default useEscapeLayersStore;
15
+ //# sourceMappingURL=escapeLayers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeLayers.d.ts","sourceRoot":"","sources":["../../src/store/escapeLayers.ts"],"names":[],"mappings":"AAEA,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;AAED,4EAA4E;AAC5E,QAAA,MAAM,oBAAoB,gFAUvB,CAAC;AAEJ,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { create } from "zustand";
2
+ /** Open popovers register here so Esc closes them before any side panel. */
3
+ const useEscapeLayersStore = create((set, get) => ({
4
+ layers: [],
5
+ push: (layer) => set((s) => ({ layers: [...s.layers, layer] })),
6
+ remove: (id) => set((s) => ({ layers: s.layers.filter((l) => l.id !== id) })),
7
+ closeTop: () => {
8
+ const top = get().layers[get().layers.length - 1];
9
+ if (!top)
10
+ return false;
11
+ top.close();
12
+ return true;
13
+ },
14
+ }));
15
+ export default useEscapeLayersStore;
@@ -0,0 +1,19 @@
1
+ export declare const END_SESSION_UNDO_MS = 5000;
2
+ interface PendingEntry {
3
+ conversationId: string;
4
+ timer: ReturnType<typeof setTimeout>;
5
+ execute: () => Promise<unknown> | void;
6
+ }
7
+ interface PendingSessionCloseStore {
8
+ pendingIds: Record<string, true>;
9
+ /** Returns false when this session already has a close pending. */
10
+ schedule: (sessionId: string, conversationId: string, execute: PendingEntry["execute"]) => boolean;
11
+ cancel: (sessionId: string) => boolean;
12
+ flush: (sessionId: string) => void;
13
+ flushConversation: (conversationId: string) => void;
14
+ flushAll: () => void;
15
+ }
16
+ /** Defers the close API call so the agent can undo within the grace period. */
17
+ declare const usePendingSessionCloseStore: import("zustand").UseBoundStore<import("zustand").StoreApi<PendingSessionCloseStore>>;
18
+ export default usePendingSessionCloseStore;
19
+ //# sourceMappingURL=pendingSessionClose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pendingSessionClose.d.ts","sourceRoot":"","sources":["../../src/store/pendingSessionClose.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,UAAU,YAAY;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACrC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CACxC;AAMD,UAAU,wBAAwB;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,mEAAmE;IACnE,QAAQ,EAAE,CACR,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,KAC7B,OAAO,CAAC;IACb,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iBAAiB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,+EAA+E;AAC/E,QAAA,MAAM,2BAA2B,uFAoD/B,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,74 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { create } from "zustand";
13
+ export const END_SESSION_UNDO_MS = 5000;
14
+ // Timers live outside React state so they survive unmounts and are never dropped.
15
+ const entries = new Map();
16
+ let leaveListenersInstalled = false;
17
+ /** Defers the close API call so the agent can undo within the grace period. */
18
+ const usePendingSessionCloseStore = create((set, get) => {
19
+ const take = (sessionId) => {
20
+ const entry = entries.get(sessionId);
21
+ if (!entry)
22
+ return undefined;
23
+ clearTimeout(entry.timer);
24
+ entries.delete(sessionId);
25
+ set((state) => {
26
+ const _a = state.pendingIds, _b = sessionId, _removed = _a[_b], rest = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
27
+ return { pendingIds: rest };
28
+ });
29
+ return entry;
30
+ };
31
+ const run = (sessionId) => {
32
+ const entry = take(sessionId);
33
+ if (!entry)
34
+ return;
35
+ Promise.resolve()
36
+ .then(entry.execute)
37
+ .catch(() => { });
38
+ };
39
+ const installLeaveListeners = () => {
40
+ if (leaveListenersInstalled || typeof window === "undefined")
41
+ return;
42
+ leaveListenersInstalled = true;
43
+ const flushAll = () => get().flushAll();
44
+ window.addEventListener("pagehide", flushAll);
45
+ document.addEventListener("visibilitychange", () => {
46
+ if (document.visibilityState === "hidden")
47
+ flushAll();
48
+ });
49
+ };
50
+ return {
51
+ pendingIds: {},
52
+ schedule: (sessionId, conversationId, execute) => {
53
+ if (entries.has(sessionId))
54
+ return false;
55
+ installLeaveListeners();
56
+ const timer = setTimeout(() => run(sessionId), END_SESSION_UNDO_MS);
57
+ entries.set(sessionId, { conversationId, timer, execute });
58
+ set((state) => ({ pendingIds: Object.assign(Object.assign({}, state.pendingIds), { [sessionId]: true }) }));
59
+ return true;
60
+ },
61
+ cancel: (sessionId) => take(sessionId) !== undefined,
62
+ flush: run,
63
+ flushConversation: (conversationId) => {
64
+ entries.forEach((entry, sessionId) => {
65
+ if (entry.conversationId === conversationId)
66
+ run(sessionId);
67
+ });
68
+ },
69
+ flushAll: () => {
70
+ Array.from(entries.keys()).forEach(run);
71
+ },
72
+ };
73
+ });
74
+ export default usePendingSessionCloseStore;
@@ -1,5 +1,6 @@
1
1
  import { IFilterSummary } from "./type";
2
- export type ConversationViewMode = "sessions" | "allGroups";
2
+ import type { ConversationViewMode } from "./sessionFolder";
3
+ export type { ConversationViewMode } from "./sessionFolder";
3
4
  interface SessionStore {
4
5
  filterSummary: IFilterSummary;
5
6
  setFilterSummary: (filterSummary: IFilterSummary) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/store/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGxC,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE5D,UAAU,YAAY;IACpB,aAAa,EAAE,cAAc,CAAC;IAC9B,gBAAgB,EAAE,CAAC,aAAa,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,WAAW,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACvD;AAKD,QAAA,MAAM,eAAe;;;;;;;;;;;;EAcpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/store/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,UAAU,YAAY;IACpB,aAAa,EAAE,cAAc,CAAC;IAC9B,gBAAgB,EAAE,CAAC,aAAa,EAAE,cAAc,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,WAAW,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACvD;AAKD,QAAA,MAAM,eAAe;;;;;;;;;;;;EAoBpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -11,6 +11,9 @@ const useSessionStore = create()(persist((set) => ({
11
11
  },
12
12
  setFilterSummary: (filterSummary) => set({ filterSummary, viewMode: "sessions" }),
13
13
  viewMode: "sessions",
14
- setViewMode: (viewMode) => set({ viewMode }),
14
+ // "All groups" is not a team folder: drop a stale teamId so only one folder is ever active.
15
+ setViewMode: (viewMode) => set((state) => viewMode === "allGroups"
16
+ ? { viewMode, filterSummary: Object.assign(Object.assign({}, state.filterSummary), { teamId: undefined }) }
17
+ : { viewMode }),
15
18
  }), { name: "chat-session-filter" }));
16
19
  export default useSessionStore;
@@ -0,0 +1,15 @@
1
+ import type { IFilterSummary } from "./type";
2
+ export type ConversationViewMode = "sessions" | "allGroups";
3
+ /** Which folder of the desk sidebar a filter points at. */
4
+ export interface ActiveFolder {
5
+ scope: "mine" | "team" | "allGroups";
6
+ teamId?: string;
7
+ /** Status or tag the list is filtered by; empty for "allGroups". */
8
+ filterKey: string;
9
+ }
10
+ export declare const getFilterKey: (filter: IFilterSummary) => string;
11
+ /** Stable id for one sidebar row; at most one row id matches the store at any time. */
12
+ export declare const buildFolderId: (folder: ActiveFolder) => string;
13
+ export declare const getActiveFolder: (filterSummary: IFilterSummary, viewMode: ConversationViewMode) => ActiveFolder;
14
+ export declare const getActiveFolderId: (filterSummary: IFilterSummary, viewMode: ConversationViewMode) => string;
15
+ //# sourceMappingURL=sessionFolder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionFolder.d.ts","sourceRoot":"","sources":["../../src/store/sessionFolder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE5D,2DAA2D;AAC3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,KAAG,MACnB,CAAC;AAEpC,uFAAuF;AACvF,eAAO,MAAM,aAAa,GAAI,QAAQ,YAAY,KAAG,MAIpD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,eAAe,cAAc,EAC7B,UAAU,oBAAoB,KAC7B,YAMF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,eAAe,cAAc,EAC7B,UAAU,oBAAoB,KAC7B,MAAiE,CAAC"}
@@ -0,0 +1,18 @@
1
+ export const getFilterKey = (filter) => filter.status || filter.tag || "";
2
+ /** Stable id for one sidebar row; at most one row id matches the store at any time. */
3
+ export const buildFolderId = (folder) => {
4
+ if (folder.scope === "allGroups")
5
+ return "allGroups";
6
+ if (folder.scope === "team")
7
+ return `team:${folder.teamId}:${folder.filterKey}`;
8
+ return `mine:${folder.filterKey}`;
9
+ };
10
+ export const getActiveFolder = (filterSummary, viewMode) => {
11
+ if (viewMode === "allGroups")
12
+ return { scope: "allGroups", filterKey: "" };
13
+ const filterKey = getFilterKey(filterSummary);
14
+ return filterSummary.teamId
15
+ ? { scope: "team", teamId: filterSummary.teamId, filterKey }
16
+ : { scope: "mine", filterKey };
17
+ };
18
+ export const getActiveFolderId = (filterSummary, viewMode) => buildFolderId(getActiveFolder(filterSummary, viewMode));
@@ -0,0 +1,9 @@
1
+ export declare const SINGLE_KEY_SHORTCUTS_STORAGE_KEY = "dchat.desk.single-key-shortcuts";
2
+ interface ShortcutPrefsStore {
3
+ /** Single-character shortcuts can be turned off (WCAG 2.1.4); on by default. */
4
+ singleKeyEnabled: boolean;
5
+ setSingleKeyEnabled: (enabled: boolean) => void;
6
+ }
7
+ declare const useShortcutPrefsStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ShortcutPrefsStore>>;
8
+ export default useShortcutPrefsStore;
9
+ //# sourceMappingURL=shortcutPrefs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcutPrefs.d.ts","sourceRoot":"","sources":["../../src/store/shortcutPrefs.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC,oCAAoC,CAAC;AAUlF,UAAU,kBAAkB;IAC1B,gFAAgF;IAChF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACjD;AAED,QAAA,MAAM,qBAAqB,iFAaxB,CAAC;AAEJ,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { create } from "zustand";
2
+ export const SINGLE_KEY_SHORTCUTS_STORAGE_KEY = "dchat.desk.single-key-shortcuts";
3
+ const readEnabled = () => {
4
+ try {
5
+ return window.localStorage.getItem(SINGLE_KEY_SHORTCUTS_STORAGE_KEY) !== "off";
6
+ }
7
+ catch (_a) {
8
+ return true;
9
+ }
10
+ };
11
+ const useShortcutPrefsStore = create((set) => ({
12
+ singleKeyEnabled: typeof window === "undefined" ? true : readEnabled(),
13
+ setSingleKeyEnabled: (enabled) => {
14
+ try {
15
+ window.localStorage.setItem(SINGLE_KEY_SHORTCUTS_STORAGE_KEY, enabled ? "on" : "off");
16
+ }
17
+ catch (_a) {
18
+ // Storage can be blocked; the choice still holds for this session.
19
+ }
20
+ set({ singleKeyEnabled: enabled });
21
+ },
22
+ }));
23
+ export default useShortcutPrefsStore;
@@ -0,0 +1,12 @@
1
+ export type SidePanelKey = "info" | "search" | "members" | "media";
2
+ interface SidePanelStore {
3
+ activePanel: SidePanelKey | null;
4
+ openPanel: (panel: SidePanelKey) => void;
5
+ /** Closes `panel` only if it is the active one; no argument closes whatever is open. */
6
+ closePanel: (panel?: SidePanelKey) => void;
7
+ togglePanel: (panel: SidePanelKey) => void;
8
+ }
9
+ /** Holds the one open desk side panel, so opening one closes the others. */
10
+ declare const useSidePanelStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SidePanelStore>>;
11
+ export default useSidePanelStore;
12
+ //# sourceMappingURL=sidePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidePanel.d.ts","sourceRoot":"","sources":["../../src/store/sidePanel.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnE,UAAU,cAAc;IACtB,WAAW,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,wFAAwF;IACxF,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC5C;AAED,4EAA4E;AAC5E,QAAA,MAAM,iBAAiB,6EASpB,CAAC;AAEJ,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { create } from "zustand";
2
+ /** Holds the one open desk side panel, so opening one closes the others. */
3
+ const useSidePanelStore = create((set) => ({
4
+ activePanel: null,
5
+ openPanel: (panel) => set({ activePanel: panel }),
6
+ closePanel: (panel) => set((state) => !panel || state.activePanel === panel ? { activePanel: null } : state),
7
+ togglePanel: (panel) => set((state) => ({ activePanel: state.activePanel === panel ? null : panel })),
8
+ }));
9
+ export default useSidePanelStore;
@@ -0,0 +1,12 @@
1
+ interface WorkspaceLayoutStore {
2
+ /** The agent's own choice for the inline folder panel; null follows the default (expanded). */
3
+ folderCollapsedChoice: boolean | null;
4
+ /** Folder panel overlaying the list on narrow screens. */
5
+ isFolderOverlayOpen: boolean;
6
+ setFolderCollapsedChoice: (collapsed: boolean) => void;
7
+ setFolderOverlayOpen: (open: boolean) => void;
8
+ }
9
+ /** Layout choices shared by the folder panel and the conversation list header. */
10
+ declare const useWorkspaceLayoutStore: import("zustand").UseBoundStore<import("zustand").StoreApi<WorkspaceLayoutStore>>;
11
+ export default useWorkspaceLayoutStore;
12
+ //# sourceMappingURL=workspaceLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaceLayout.d.ts","sourceRoot":"","sources":["../../src/store/workspaceLayout.ts"],"names":[],"mappings":"AAEA,UAAU,oBAAoB;IAC5B,+FAA+F;IAC/F,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtC,0DAA0D;IAC1D,mBAAmB,EAAE,OAAO,CAAC;IAC7B,wBAAwB,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAED,kFAAkF;AAClF,QAAA,MAAM,uBAAuB,mFAM1B,CAAC;AAEJ,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { create } from "zustand";
2
+ /** Layout choices shared by the folder panel and the conversation list header. */
3
+ const useWorkspaceLayoutStore = create((set) => ({
4
+ folderCollapsedChoice: null,
5
+ isFolderOverlayOpen: false,
6
+ setFolderCollapsedChoice: (collapsed) => set({ folderCollapsedChoice: collapsed }),
7
+ setFolderOverlayOpen: (open) => set({ isFolderOverlayOpen: open }),
8
+ }));
9
+ export default useWorkspaceLayoutStore;