@messenger-box/tailwind-ui-inbox 10.0.3-alpha.100

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 (373) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/LICENSE +21 -0
  3. package/jest.config.js +9 -0
  4. package/lib/cdm-locales/en/translations.json +31 -0
  5. package/lib/cdm-locales/es/translations.json +31 -0
  6. package/lib/components/AIAgent/AIAgent.d.ts +21 -0
  7. package/lib/components/AIAgent/AIAgent.d.ts.map +1 -0
  8. package/lib/components/AIAgent/AIAgent.js +904 -0
  9. package/lib/components/AIAgent/AIAgent.js.map +1 -0
  10. package/lib/components/AIAgent/index.d.ts +2 -0
  11. package/lib/components/AIAgent/index.d.ts.map +1 -0
  12. package/lib/components/InboxMessage/CommonMessage.d.ts +8 -0
  13. package/lib/components/InboxMessage/CommonMessage.d.ts.map +1 -0
  14. package/lib/components/InboxMessage/CommonMessage.js +35 -0
  15. package/lib/components/InboxMessage/CommonMessage.js.map +1 -0
  16. package/lib/components/InboxMessage/ConversationItem.d.ts +14 -0
  17. package/lib/components/InboxMessage/ConversationItem.d.ts.map +1 -0
  18. package/lib/components/InboxMessage/ConversationItem.js +200 -0
  19. package/lib/components/InboxMessage/ConversationItem.js.map +1 -0
  20. package/lib/components/InboxMessage/InputComponent.d.ts +12 -0
  21. package/lib/components/InboxMessage/InputComponent.d.ts.map +1 -0
  22. package/lib/components/InboxMessage/InputComponent.js +359 -0
  23. package/lib/components/InboxMessage/InputComponent.js.map +1 -0
  24. package/lib/components/InboxMessage/LeftSidebar.d.ts +20 -0
  25. package/lib/components/InboxMessage/LeftSidebar.d.ts.map +1 -0
  26. package/lib/components/InboxMessage/LeftSidebar.js +102 -0
  27. package/lib/components/InboxMessage/LeftSidebar.js.map +1 -0
  28. package/lib/components/InboxMessage/MessageInput.d.ts +9 -0
  29. package/lib/components/InboxMessage/MessageInput.d.ts.map +1 -0
  30. package/lib/components/InboxMessage/MessageInput.js +154 -0
  31. package/lib/components/InboxMessage/MessageInput.js.map +1 -0
  32. package/lib/components/InboxMessage/MessageInputComponent.d.ts +9 -0
  33. package/lib/components/InboxMessage/MessageInputComponent.d.ts.map +1 -0
  34. package/lib/components/InboxMessage/Messages.d.ts +17 -0
  35. package/lib/components/InboxMessage/Messages.d.ts.map +1 -0
  36. package/lib/components/InboxMessage/Messages.js +99 -0
  37. package/lib/components/InboxMessage/Messages.js.map +1 -0
  38. package/lib/components/InboxMessage/MessagesBuilderUi.d.ts +17 -0
  39. package/lib/components/InboxMessage/MessagesBuilderUi.d.ts.map +1 -0
  40. package/lib/components/InboxMessage/Popover.d.ts +3 -0
  41. package/lib/components/InboxMessage/Popover.d.ts.map +1 -0
  42. package/lib/components/InboxMessage/Popover.js +31 -0
  43. package/lib/components/InboxMessage/Popover.js.map +1 -0
  44. package/lib/components/InboxMessage/RightSidebar.d.ts +9 -0
  45. package/lib/components/InboxMessage/RightSidebar.d.ts.map +1 -0
  46. package/lib/components/InboxMessage/RightSidebar.js +9 -0
  47. package/lib/components/InboxMessage/RightSidebar.js.map +1 -0
  48. package/lib/components/InboxMessage/RightSidebarAi.d.ts +23 -0
  49. package/lib/components/InboxMessage/RightSidebarAi.d.ts.map +1 -0
  50. package/lib/components/InboxMessage/RightSidebarAi.js +9 -0
  51. package/lib/components/InboxMessage/RightSidebarAi.js.map +1 -0
  52. package/lib/components/InboxMessage/ServiceConversationItem.d.ts +12 -0
  53. package/lib/components/InboxMessage/ServiceConversationItem.d.ts.map +1 -0
  54. package/lib/components/InboxMessage/ServiceConversationItem.js +185 -0
  55. package/lib/components/InboxMessage/ServiceConversationItem.js.map +1 -0
  56. package/lib/components/InboxMessage/ServiceInboxItem.d.ts +12 -0
  57. package/lib/components/InboxMessage/ServiceInboxItem.d.ts.map +1 -0
  58. package/lib/components/InboxMessage/ServiceInboxItem.js +182 -0
  59. package/lib/components/InboxMessage/ServiceInboxItem.js.map +1 -0
  60. package/lib/components/InboxMessage/SubscriptionHandler.d.ts +19 -0
  61. package/lib/components/InboxMessage/SubscriptionHandler.d.ts.map +1 -0
  62. package/lib/components/InboxMessage/SubscriptionHandler.js +41 -0
  63. package/lib/components/InboxMessage/SubscriptionHandler.js.map +1 -0
  64. package/lib/components/InboxMessage/UploadImageButton.d.ts +7 -0
  65. package/lib/components/InboxMessage/UploadImageButton.d.ts.map +1 -0
  66. package/lib/components/InboxMessage/UploadImageButton.js +34 -0
  67. package/lib/components/InboxMessage/UploadImageButton.js.map +1 -0
  68. package/lib/components/InboxMessage/UserModalContent.d.ts +3 -0
  69. package/lib/components/InboxMessage/UserModalContent.d.ts.map +1 -0
  70. package/lib/components/InboxMessage/UserModalContent.js +60 -0
  71. package/lib/components/InboxMessage/UserModalContent.js.map +1 -0
  72. package/lib/components/InboxMessage/index.d.ts +17 -0
  73. package/lib/components/InboxMessage/index.d.ts.map +1 -0
  74. package/lib/components/InboxMessage/message-widgets/CommonMessage.d.ts +11 -0
  75. package/lib/components/InboxMessage/message-widgets/CommonMessage.d.ts.map +1 -0
  76. package/lib/components/InboxMessage/message-widgets/CommonMessage.js +44 -0
  77. package/lib/components/InboxMessage/message-widgets/CommonMessage.js.map +1 -0
  78. package/lib/components/InboxMessage/message-widgets/ErrorFixCard.d.ts +11 -0
  79. package/lib/components/InboxMessage/message-widgets/ErrorFixCard.d.ts.map +1 -0
  80. package/lib/components/InboxMessage/message-widgets/ErrorFixCard.js +194 -0
  81. package/lib/components/InboxMessage/message-widgets/ErrorFixCard.js.map +1 -0
  82. package/lib/components/InboxMessage/message-widgets/MessageCard.d.ts +8 -0
  83. package/lib/components/InboxMessage/message-widgets/MessageCard.d.ts.map +1 -0
  84. package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.d.ts +12 -0
  85. package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.d.ts.map +1 -0
  86. package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.js +37 -0
  87. package/lib/components/InboxMessage/message-widgets/MessageSliceRenderer.js.map +1 -0
  88. package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.d.ts +18 -0
  89. package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.d.ts.map +1 -0
  90. package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.js +1082 -0
  91. package/lib/components/InboxMessage/message-widgets/ModernMessageGroup.js.map +1 -0
  92. package/lib/components/InboxMessage/message-widgets/PlainMessage.d.ts +8 -0
  93. package/lib/components/InboxMessage/message-widgets/PlainMessage.d.ts.map +1 -0
  94. package/lib/components/InboxMessage/message-widgets/PlainMessage.js +14 -0
  95. package/lib/components/InboxMessage/message-widgets/PlainMessage.js.map +1 -0
  96. package/lib/components/InboxMessage/message-widgets/PropertyMessageWidget.d.ts +9 -0
  97. package/lib/components/InboxMessage/message-widgets/PropertyMessageWidget.d.ts.map +1 -0
  98. package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.d.ts +14 -0
  99. package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.d.ts.map +1 -0
  100. package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.js +333 -0
  101. package/lib/components/InboxMessage/message-widgets/SlackLikeMessageGroup.js.map +1 -0
  102. package/lib/components/InboxMessage/message-widgets/index.d.ts +4 -0
  103. package/lib/components/InboxMessage/message-widgets/index.d.ts.map +1 -0
  104. package/lib/components/ModelConfigPanel.d.ts +37 -0
  105. package/lib/components/ModelConfigPanel.d.ts.map +1 -0
  106. package/lib/components/ModelConfigPanel.js +317 -0
  107. package/lib/components/ModelConfigPanel.js.map +1 -0
  108. package/lib/components/filler-components/RightSiderBar.d.ts +24 -0
  109. package/lib/components/filler-components/RightSiderBar.d.ts.map +1 -0
  110. package/lib/components/filler-components/RightSiderBar.js +335 -0
  111. package/lib/components/filler-components/RightSiderBar.js.map +1 -0
  112. package/lib/components/inbox/FilesList.d.ts +20 -0
  113. package/lib/components/inbox/FilesList.d.ts.map +1 -0
  114. package/lib/components/inbox/FilesList.js +68 -0
  115. package/lib/components/inbox/FilesList.js.map +1 -0
  116. package/lib/components/inbox/MessageItem.d.ts +17 -0
  117. package/lib/components/inbox/MessageItem.d.ts.map +1 -0
  118. package/lib/components/inbox/MessageItem.js +50 -0
  119. package/lib/components/inbox/MessageItem.js.map +1 -0
  120. package/lib/components/inbox/ThreadItem.d.ts +11 -0
  121. package/lib/components/inbox/ThreadItem.d.ts.map +1 -0
  122. package/lib/components/inbox/ThreadItem.js +147 -0
  123. package/lib/components/inbox/ThreadItem.js.map +1 -0
  124. package/lib/components/inbox/index.d.ts +4 -0
  125. package/lib/components/inbox/index.d.ts.map +1 -0
  126. package/lib/components/index.d.ts +7 -0
  127. package/lib/components/index.d.ts.map +1 -0
  128. package/lib/components/live-code-editor/hybrid-live-editor.d.ts +20 -0
  129. package/lib/components/live-code-editor/hybrid-live-editor.d.ts.map +1 -0
  130. package/lib/components/live-code-editor/hybrid-live-editor.js +68 -0
  131. package/lib/components/live-code-editor/hybrid-live-editor.js.map +1 -0
  132. package/lib/components/live-code-editor/index.d.ts +4 -0
  133. package/lib/components/live-code-editor/index.d.ts.map +1 -0
  134. package/lib/components/live-code-editor/live-code-editor.d.ts +14 -0
  135. package/lib/components/live-code-editor/live-code-editor.d.ts.map +1 -0
  136. package/lib/components/live-code-editor/live-code-editor.js +207 -0
  137. package/lib/components/live-code-editor/live-code-editor.js.map +1 -0
  138. package/lib/components/slot-fill/chat-message-filler.d.ts +4 -0
  139. package/lib/components/slot-fill/chat-message-filler.d.ts.map +1 -0
  140. package/lib/components/slot-fill/chat-message-filler.js +5 -0
  141. package/lib/components/slot-fill/chat-message-filler.js.map +1 -0
  142. package/lib/components/slot-fill/chat-message-slot.d.ts +11 -0
  143. package/lib/components/slot-fill/chat-message-slot.d.ts.map +1 -0
  144. package/lib/components/slot-fill/chat-message-slot.js +6 -0
  145. package/lib/components/slot-fill/chat-message-slot.js.map +1 -0
  146. package/lib/components/slot-fill/index.d.ts +4 -0
  147. package/lib/components/slot-fill/index.d.ts.map +1 -0
  148. package/lib/components/slot-fill/right-sidebar-filler.d.ts +4 -0
  149. package/lib/components/slot-fill/right-sidebar-filler.d.ts.map +1 -0
  150. package/lib/components/slot-fill/right-sidebar-filler.js +13 -0
  151. package/lib/components/slot-fill/right-sidebar-filler.js.map +1 -0
  152. package/lib/components/ui/button.d.ts +9 -0
  153. package/lib/components/ui/button.d.ts.map +1 -0
  154. package/lib/compute.d.ts +8 -0
  155. package/lib/compute.d.ts.map +1 -0
  156. package/lib/compute.js +137 -0
  157. package/lib/compute.js.map +1 -0
  158. package/lib/config/env-config.d.ts +13 -0
  159. package/lib/config/env-config.d.ts.map +1 -0
  160. package/lib/config/env-config.js +34 -0
  161. package/lib/config/env-config.js.map +1 -0
  162. package/lib/config/index.d.ts +2 -0
  163. package/lib/config/index.d.ts.map +1 -0
  164. package/lib/constants/breakpoints.d.ts +8 -0
  165. package/lib/constants/breakpoints.d.ts.map +1 -0
  166. package/lib/constants/index.d.ts +3 -0
  167. package/lib/constants/index.d.ts.map +1 -0
  168. package/lib/container/AiInbox.d.ts +15 -0
  169. package/lib/container/AiInbox.d.ts.map +1 -0
  170. package/lib/container/AiInboxWithLoader.d.ts +36 -0
  171. package/lib/container/AiInboxWithLoader.d.ts.map +1 -0
  172. package/lib/container/AiLandingInput.d.ts +4 -0
  173. package/lib/container/AiLandingInput.d.ts.map +1 -0
  174. package/lib/container/AiLandingInput.js +101 -0
  175. package/lib/container/AiLandingInput.js.map +1 -0
  176. package/lib/container/Inbox.d.ts +15 -0
  177. package/lib/container/Inbox.d.ts.map +1 -0
  178. package/lib/container/Inbox.js +955 -0
  179. package/lib/container/Inbox.js.map +1 -0
  180. package/lib/container/InboxAiMessagesLoader.d.ts +15 -0
  181. package/lib/container/InboxAiMessagesLoader.d.ts.map +1 -0
  182. package/lib/container/InboxAiMessagesLoader.js +30 -0
  183. package/lib/container/InboxAiMessagesLoader.js.map +1 -0
  184. package/lib/container/InboxContainer.d.ts +12 -0
  185. package/lib/container/InboxContainer.d.ts.map +1 -0
  186. package/lib/container/InboxContainer.js +31 -0
  187. package/lib/container/InboxContainer.js.map +1 -0
  188. package/lib/container/InboxTemplate1.d.ts +15 -0
  189. package/lib/container/InboxTemplate1.d.ts.map +1 -0
  190. package/lib/container/InboxTemplate1WithLoader.d.ts +36 -0
  191. package/lib/container/InboxTemplate1WithLoader.d.ts.map +1 -0
  192. package/lib/container/InboxTemplate2.d.ts +15 -0
  193. package/lib/container/InboxTemplate2.d.ts.map +1 -0
  194. package/lib/container/InboxWithAiLoader.d.ts +15 -0
  195. package/lib/container/InboxWithAiLoader.d.ts.map +1 -0
  196. package/lib/container/InboxWithAiLoader.js +56 -0
  197. package/lib/container/InboxWithAiLoader.js.map +1 -0
  198. package/lib/container/InboxWithLoader.d.ts +36 -0
  199. package/lib/container/InboxWithLoader.d.ts.map +1 -0
  200. package/lib/container/InboxWithLoader.js +277 -0
  201. package/lib/container/InboxWithLoader.js.map +1 -0
  202. package/lib/container/ServiceInbox.d.ts +9 -0
  203. package/lib/container/ServiceInbox.d.ts.map +1 -0
  204. package/lib/container/ServiceInbox.js +144 -0
  205. package/lib/container/ServiceInbox.js.map +1 -0
  206. package/lib/container/ThreadMessages.d.ts +13 -0
  207. package/lib/container/ThreadMessages.d.ts.map +1 -0
  208. package/lib/container/ThreadMessages.js +314 -0
  209. package/lib/container/ThreadMessages.js.map +1 -0
  210. package/lib/container/ThreadMessagesInbox.d.ts +14 -0
  211. package/lib/container/ThreadMessagesInbox.d.ts.map +1 -0
  212. package/lib/container/ThreadMessagesInbox.js +341 -0
  213. package/lib/container/ThreadMessagesInbox.js.map +1 -0
  214. package/lib/container/Threads.d.ts +8 -0
  215. package/lib/container/Threads.d.ts.map +1 -0
  216. package/lib/container/Threads.js +231 -0
  217. package/lib/container/Threads.js.map +1 -0
  218. package/lib/container/ThreadsInbox.d.ts +21 -0
  219. package/lib/container/ThreadsInbox.d.ts.map +1 -0
  220. package/lib/container/ThreadsInbox.js +244 -0
  221. package/lib/container/ThreadsInbox.js.map +1 -0
  222. package/lib/container/apply-footer-styles.d.ts +2 -0
  223. package/lib/container/apply-footer-styles.d.ts.map +1 -0
  224. package/lib/container/apply-footer-styles.js +16 -0
  225. package/lib/container/apply-footer-styles.js.map +1 -0
  226. package/lib/container/index.d.ts +13 -0
  227. package/lib/container/index.d.ts.map +1 -0
  228. package/lib/enums/index.d.ts +2 -0
  229. package/lib/enums/index.d.ts.map +1 -0
  230. package/lib/enums/messenger-slot-fill-name-enum.d.ts +5 -0
  231. package/lib/enums/messenger-slot-fill-name-enum.d.ts.map +1 -0
  232. package/lib/enums/messenger-slot-fill-name-enum.js +5 -0
  233. package/lib/enums/messenger-slot-fill-name-enum.js.map +1 -0
  234. package/lib/hooks/index.d.ts +3 -0
  235. package/lib/hooks/index.d.ts.map +1 -0
  236. package/lib/hooks/use-file-sync.d.ts +16 -0
  237. package/lib/hooks/use-file-sync.d.ts.map +1 -0
  238. package/lib/hooks/use-file-sync.js +63 -0
  239. package/lib/hooks/use-file-sync.js.map +1 -0
  240. package/lib/hooks/usePersistentModelConfig.d.ts +15 -0
  241. package/lib/hooks/usePersistentModelConfig.d.ts.map +1 -0
  242. package/lib/hooks/usePersistentModelConfig.js +46 -0
  243. package/lib/hooks/usePersistentModelConfig.js.map +1 -0
  244. package/lib/index.d.ts +10 -0
  245. package/lib/index.d.ts.map +1 -0
  246. package/lib/index.js +1 -0
  247. package/lib/index.js.map +1 -0
  248. package/lib/interfaces/index.d.ts +2 -0
  249. package/lib/interfaces/index.d.ts.map +1 -0
  250. package/lib/interfaces/message-widgets.interface.d.ts +21 -0
  251. package/lib/interfaces/message-widgets.interface.d.ts.map +1 -0
  252. package/lib/machines/aiAgentMachine.d.ts +3 -0
  253. package/lib/machines/aiAgentMachine.d.ts.map +1 -0
  254. package/lib/machines/aiAgentMachine.js +1083 -0
  255. package/lib/machines/aiAgentMachine.js.map +1 -0
  256. package/lib/machines/aiAgentMachine.simple.d.ts +3 -0
  257. package/lib/machines/aiAgentMachine.simple.d.ts.map +1 -0
  258. package/lib/machines/aiAgentMachine.simple.js +108 -0
  259. package/lib/machines/aiAgentMachine.simple.js.map +1 -0
  260. package/lib/machines/index.d.ts +3 -0
  261. package/lib/machines/index.d.ts.map +1 -0
  262. package/lib/machines/types.d.ts +77 -0
  263. package/lib/machines/types.d.ts.map +1 -0
  264. package/lib/module.d.ts +7 -0
  265. package/lib/module.d.ts.map +1 -0
  266. package/lib/module.js +26 -0
  267. package/lib/module.js.map +1 -0
  268. package/lib/routes.json +98 -0
  269. package/lib/styles/responsive.css +76 -0
  270. package/lib/templates/InboxWithAi.d.ts +15 -0
  271. package/lib/templates/InboxWithAi.d.ts.map +1 -0
  272. package/lib/templates/InboxWithAi.js +440 -0
  273. package/lib/templates/InboxWithAi.js.map +1 -0
  274. package/lib/templates/InboxWithAi.tsx +533 -0
  275. package/lib/templates/index.d.ts +2 -0
  276. package/lib/templates/index.d.ts.map +1 -0
  277. package/lib/templates/index.ts +1 -0
  278. package/lib/utils/utils.d.ts +2 -0
  279. package/lib/utils/utils.d.ts.map +1 -0
  280. package/lib/utils/utils.js +3 -0
  281. package/lib/utils/utils.js.map +1 -0
  282. package/package.json +62 -0
  283. package/rollup.config.mjs +35 -0
  284. package/src/cdm-locales/en/translations.json +31 -0
  285. package/src/cdm-locales/es/translations.json +31 -0
  286. package/src/components/AIAgent/AIAgent.tsx +1103 -0
  287. package/src/components/AIAgent/AIAgent.tsx.bk +1365 -0
  288. package/src/components/AIAgent/README.md +82 -0
  289. package/src/components/AIAgent/index.ts +1 -0
  290. package/src/components/InboxMessage/CommonMessage.tsx +40 -0
  291. package/src/components/InboxMessage/ConversationItem.tsx +255 -0
  292. package/src/components/InboxMessage/InputComponent.tsx +462 -0
  293. package/src/components/InboxMessage/LeftSidebar.tsx +140 -0
  294. package/src/components/InboxMessage/MessageInput.tsx +209 -0
  295. package/src/components/InboxMessage/MessageInputComponent.tsx +245 -0
  296. package/src/components/InboxMessage/Messages.tsx +137 -0
  297. package/src/components/InboxMessage/MessagesBuilderUi.tsx +205 -0
  298. package/src/components/InboxMessage/Popover.tsx +42 -0
  299. package/src/components/InboxMessage/RightSidebar.tsx +22 -0
  300. package/src/components/InboxMessage/RightSidebarAi.tsx +37 -0
  301. package/src/components/InboxMessage/ServiceConversationItem.tsx +234 -0
  302. package/src/components/InboxMessage/ServiceInboxItem.tsx +223 -0
  303. package/src/components/InboxMessage/SubscriptionHandler.tsx +55 -0
  304. package/src/components/InboxMessage/UploadImageButton.tsx +46 -0
  305. package/src/components/InboxMessage/UserModalContent.tsx +60 -0
  306. package/src/components/InboxMessage/index.ts +16 -0
  307. package/src/components/InboxMessage/message-widgets/CommonMessage.tsx +69 -0
  308. package/src/components/InboxMessage/message-widgets/ErrorFixCard.tsx +240 -0
  309. package/src/components/InboxMessage/message-widgets/MessageCard.tsx +127 -0
  310. package/src/components/InboxMessage/message-widgets/MessageSliceRenderer.tsx +40 -0
  311. package/src/components/InboxMessage/message-widgets/ModernMessageGroup.tsx +1295 -0
  312. package/src/components/InboxMessage/message-widgets/PlainMessage.tsx +18 -0
  313. package/src/components/InboxMessage/message-widgets/PropertyMessageWidget.tsx +29 -0
  314. package/src/components/InboxMessage/message-widgets/SlackLikeMessageGroup.tsx +492 -0
  315. package/src/components/InboxMessage/message-widgets/index.ts +3 -0
  316. package/src/components/ModelConfigPanel.tsx +345 -0
  317. package/src/components/filler-components/RightSiderBar.tsx +408 -0
  318. package/src/components/inbox/FilesList.tsx +89 -0
  319. package/src/components/inbox/MessageItem.tsx +50 -0
  320. package/src/components/inbox/ThreadItem.tsx +295 -0
  321. package/src/components/inbox/index.ts +3 -0
  322. package/src/components/index.ts +22 -0
  323. package/src/components/live-code-editor/hybrid-live-editor.tsx +105 -0
  324. package/src/components/live-code-editor/index.ts +3 -0
  325. package/src/components/live-code-editor/live-code-editor.tsx +257 -0
  326. package/src/components/slot-fill/chat-message-filler.tsx +18 -0
  327. package/src/components/slot-fill/chat-message-slot.tsx +18 -0
  328. package/src/components/slot-fill/index.ts +3 -0
  329. package/src/components/slot-fill/right-sidebar-filler.tsx +39 -0
  330. package/src/components/ui/button.tsx +32 -0
  331. package/src/compute.ts +134 -0
  332. package/src/config/env-config.ts +17 -0
  333. package/src/config/index.ts +1 -0
  334. package/src/constants/breakpoints.ts +7 -0
  335. package/src/constants/index.ts +5 -0
  336. package/src/container/AiInbox.tsx +1819 -0
  337. package/src/container/AiInboxWithLoader.tsx +356 -0
  338. package/src/container/AiLandingInput.tsx +221 -0
  339. package/src/container/Inbox.tsx +1092 -0
  340. package/src/container/InboxAiMessagesLoader.tsx +44 -0
  341. package/src/container/InboxContainer.tsx +35 -0
  342. package/src/container/InboxTemplate1.tsx +1542 -0
  343. package/src/container/InboxTemplate1WithLoader.tsx +338 -0
  344. package/src/container/InboxTemplate2.tsx +1606 -0
  345. package/src/container/InboxWithAiLoader.tsx +76 -0
  346. package/src/container/InboxWithLoader.tsx +341 -0
  347. package/src/container/ServiceInbox.tsx +190 -0
  348. package/src/container/ThreadMessages.tsx +371 -0
  349. package/src/container/ThreadMessagesInbox.tsx +450 -0
  350. package/src/container/Threads.tsx +270 -0
  351. package/src/container/ThreadsInbox.tsx +354 -0
  352. package/src/container/apply-footer-styles.ts +17 -0
  353. package/src/container/index.ts +31 -0
  354. package/src/enums/index.ts +1 -0
  355. package/src/enums/messenger-slot-fill-name-enum.ts +4 -0
  356. package/src/hooks/index.ts +2 -0
  357. package/src/hooks/use-file-sync.ts +91 -0
  358. package/src/hooks/usePersistentModelConfig.ts +63 -0
  359. package/src/index.ts +37 -0
  360. package/src/interfaces/index.ts +1 -0
  361. package/src/interfaces/message-widgets.interface.ts +21 -0
  362. package/src/machines/aiAgentMachine.simple.ts +89 -0
  363. package/src/machines/aiAgentMachine.ts +1296 -0
  364. package/src/machines/aiAgentMachine.ts.bk +1296 -0
  365. package/src/machines/index.ts +2 -0
  366. package/src/machines/types.ts +59 -0
  367. package/src/module.tsx +32 -0
  368. package/src/styles/responsive.css +76 -0
  369. package/src/templates/InboxWithAi.tsx +533 -0
  370. package/src/templates/index.ts +1 -0
  371. package/src/utils/utils.ts +3 -0
  372. package/tsconfig.json +14 -0
  373. package/webpack.config.js +92 -0
@@ -0,0 +1,82 @@
1
+ # AI Agent Integration
2
+
3
+ This component integrates an AI-powered chat agent using XState state machines to provide intelligent conversation capabilities within the messenger inbox.
4
+
5
+ ## Features
6
+
7
+ - **AI-Powered Conversations**: Uses Claude AI through the XState machine
8
+ - **Multi-Message Responses**: Automatically breaks down complex queries into multiple messages
9
+ - **Real-Time Data**: Integrates with MCP (Model Context Protocol) for web search and news
10
+ - **Smart Query Detection**: Automatically detects when queries need multi-message responses or real-time data
11
+ - **Toggle Mode**: Easy switch between regular messaging and AI agent mode
12
+
13
+ ## Components
14
+
15
+ ### AIAgent
16
+
17
+ The main AI agent component that handles:
18
+
19
+ - Message display and input
20
+ - AI response generation
21
+ - Multi-message planning and execution
22
+ - Real-time data integration
23
+ - Error handling and retry mechanisms
24
+
25
+ ### aiAgentMachine
26
+
27
+ XState machine that manages:
28
+
29
+ - Message flow and state transitions
30
+ - AI response generation
31
+ - Multi-message planning
32
+ - MCP data fetching
33
+ - Error handling
34
+
35
+ ## Usage
36
+
37
+ The AI Agent is integrated into the main inbox interface with a toggle switch. When enabled:
38
+
39
+ 1. **Toggle AI Mode**: Use the toggle switch in the header to enable AI agent mode
40
+ 2. **Chat with AI**: Send messages to the AI agent and receive intelligent responses
41
+ 3. **Multi-Message**: Complex queries automatically trigger multi-message responses
42
+ 4. **Real-Time Data**: Queries needing current information automatically fetch web search and news data
43
+
44
+ ## Configuration
45
+
46
+ The AI Agent requires:
47
+
48
+ - Anthropic API key configured on the server
49
+ - MCP server running for real-time data
50
+ - XState and @xstate/react packages
51
+
52
+ ## States
53
+
54
+ The AI Agent machine has several states:
55
+
56
+ - `idle`: Waiting for user input
57
+ - `analyzing`: Determining response strategy
58
+ - `planningMultiMessage`: Creating multi-message plan
59
+ - `multiProcessing`: Generating multi-message responses
60
+ - `fetchingData`: Retrieving real-time data
61
+ - `processing`: Generating AI response
62
+ - `error`: Handling errors
63
+
64
+ ## Events
65
+
66
+ Supported events:
67
+
68
+ - `SEND_MESSAGE`: Send a user message
69
+ - `FORCE_MULTI_MESSAGE`: Force multi-message response
70
+ - `INPUT_CHANGE`: Update input field
71
+ - `RETRY`: Retry failed operations
72
+ - `CLEAR_ERROR`: Clear error state
73
+
74
+ ## Integration Points
75
+
76
+ The AI Agent integrates with:
77
+
78
+ - Main inbox interface
79
+ - Message handling system
80
+ - User authentication
81
+ - Channel management
82
+ - File upload system
@@ -0,0 +1 @@
1
+ export { AIAgent } from './AIAgent';
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ import { format } from 'date-fns';
3
+ import { BsFlag } from '@react-icons/all-files/bs/BsFlag.js';
4
+ import { FilesList } from '../inbox';
5
+
6
+ export const CommonMessage = ({ message, index, onOpen, currentUser }) => {
7
+ return (
8
+ <div className="w-full flex justify-start mb-7" key={`msgList_${index}`}>
9
+ <div className="flex flex-grow">
10
+ <img
11
+ className="w-8 h-8 bg-gray-500 rounded-full mr-4 cursor-pointer"
12
+ src={message?.imageUrl || ''}
13
+ alt="User avatar"
14
+ onClick={onOpen}
15
+ />
16
+ <div className="flex-grow">
17
+ <div className="flex flex-grow mt-1">
18
+ <span className="text-sm text-gray-600 font-bold">
19
+ {message?.author?.familyName && message?.author?.givenName
20
+ ? message?.author?.givenName + ' ' + message?.author?.familyName
21
+ : message?.author?.username}
22
+ </span>
23
+ <span className="text-sm text-gray-500 ml-2">
24
+ {format(new Date(message?.createdAt), 'MMM dd, yyyy hh:mm aaa')}
25
+ </span>
26
+ </div>
27
+ <div>
28
+ <p className="text-sm mt-1 mb-1 whitespace-pre-line">{message?.message}</p>
29
+ {message.files?.totalCount ? <FilesList uploaded files={message.files?.data} /> : null}
30
+ </div>
31
+ </div>
32
+ </div>
33
+ {currentUser?.id !== message?.author?.id && (
34
+ <div className="ml-2">
35
+ <BsFlag className="text-gray-600 w-6 h-6" />
36
+ </div>
37
+ )}
38
+ </div>
39
+ );
40
+ };
@@ -0,0 +1,255 @@
1
+ import { useMessagesQuery, OnChatMessageAddedDocument as CHAT_MESSAGE_ADDED } from 'common/graphql';
2
+ import { format, isToday, isYesterday } from 'date-fns';
3
+ import React, { useMemo, useEffect, useState, useCallback } from 'react';
4
+ import { SubscriptionHandler } from './SubscriptionHandler';
5
+
6
+ const createdAtText = (value) => {
7
+ if (!value) return '';
8
+ let date = new Date(value);
9
+ if (isToday(date)) return 'Today';
10
+ if (isYesterday(date)) return 'Yesterday';
11
+ return format(new Date(value), 'MMM dd, yyyy');
12
+ };
13
+
14
+ // Custom Skeleton component for loading state
15
+ const Skeleton = ({ className = '' }) => {
16
+ return (
17
+ <div className={`animate-pulse bg-gray-300 dark:bg-gray-600 rounded ${className}`}>
18
+ <div className="h-4 bg-gray-300 dark:bg-gray-600 rounded w-3/4 mb-2"></div>
19
+ <div className="h-4 bg-gray-300 dark:bg-gray-600 rounded w-1/2"></div>
20
+ </div>
21
+ );
22
+ };
23
+
24
+ interface ConversationItemProps {
25
+ showBorder: boolean;
26
+ currentUser: any;
27
+ filter: string;
28
+ channel: any;
29
+ handleSelectChannel: (channelId: string) => void;
30
+ users: any[];
31
+ selectedChannelId: string;
32
+ messagesQuery: any;
33
+ }
34
+
35
+ export const ConversationItem = React.memo(
36
+ ({
37
+ showBorder,
38
+ currentUser,
39
+ filter,
40
+ channel,
41
+ handleSelectChannel,
42
+ users,
43
+ selectedChannelId,
44
+ messagesQuery: messagesQueryProp,
45
+ }: ConversationItemProps) => {
46
+ // const {
47
+ // data: messagesQuery,
48
+ // loading: messageLoading,
49
+ // } = useMessagesQuery({
50
+ // variables: {
51
+ // channelId: channel.id?.toString(),
52
+ // limit: 1,
53
+ // },
54
+ // fetchPolicy: 'cache-and-network',
55
+ // });
56
+ const [messages, setMessages] = useState([]);
57
+ const {
58
+ data: messagesQuery,
59
+ loading: messageLoading,
60
+ refetch: refetchMessages,
61
+ subscribeToMore,
62
+ } = useMessagesQuery({
63
+ variables: {
64
+ channelId: channel?.id?.toString(),
65
+ parentId: null,
66
+ limit: 10,
67
+ // sort: {
68
+ // key: 'updatedAt',
69
+ // value: SortEnum.Desc,
70
+ // },
71
+ },
72
+ fetchPolicy: 'cache-and-network',
73
+ refetchWritePolicy: 'merge',
74
+ });
75
+
76
+ // const {
77
+ // data: newMessage,
78
+ // loading: newMsgLoading,
79
+ // error: newMsgError,
80
+ // }: any = useOnChatMessageAddedSubscription({
81
+ // variables: {
82
+ // channelId: channel?.id?.toString(),
83
+ // },
84
+ // });
85
+
86
+ React.useEffect(() => {
87
+ if (channel?.id) {
88
+ refetchMessages({
89
+ channelId: channel?.id?.toString(),
90
+ parentId: null,
91
+ limit: 10,
92
+ // sort: {
93
+ // key: 'updatedAt',
94
+ // value: SortEnum.Desc,
95
+ // },
96
+ });
97
+ }
98
+ }, [channel?.id, refetchMessages]);
99
+
100
+ React.useEffect(() => {
101
+ if (messagesQuery?.messages?.data?.length) {
102
+ setMessages(messagesQuery.messages.data);
103
+ }
104
+ }, [messagesQuery?.messages?.data]);
105
+
106
+ const chatUser = useMemo(
107
+ () =>
108
+ users?.find(({ id }) => {
109
+ const isNotCurrentUser = id !== currentUser?.id;
110
+ if (isNotCurrentUser) {
111
+ return channel?.members?.find(({ user }) => user.id === id);
112
+ }
113
+ if (channel?.members?.length === 1 && channel?.members?.[0]?.user?.id === currentUser?.id) {
114
+ return currentUser;
115
+ }
116
+ return isNotCurrentUser;
117
+ }),
118
+ [users, currentUser, channel],
119
+ );
120
+
121
+ // Last Message
122
+ // const lastMessage = useMemo(() => {
123
+ // if (!messagesQuery?.messages?.data?.length) {
124
+ // return null;
125
+ // }
126
+ // const { data } = messagesQuery.messages;
127
+ // return data[data.length - 1];
128
+ // }, [messagesQuery]);
129
+ const lastMessage = useMemo(() => {
130
+ if (!messages?.length) {
131
+ return null;
132
+ }
133
+ const data = messages;
134
+ const filteredData: any = data?.filter((p: any) => p?.message !== '');
135
+
136
+ //return filteredData[0];
137
+ let filteredLastMessage =
138
+ filteredData && filteredData?.length
139
+ ? filteredData?.reduce((a, b) => {
140
+ return new Date(a?.updatedAt) > new Date(b?.updatedAt) ? a : b;
141
+ }, []) ?? null
142
+ : null;
143
+ return filteredLastMessage;
144
+ // //return data[data.length - 1];
145
+ }, [messages]);
146
+
147
+ const channelType = useMemo(() => {
148
+ return channel?.type;
149
+ }, [channel]);
150
+
151
+ if (
152
+ filter &&
153
+ !chatUser?.username?.toLowerCase().includes(filter.toLowerCase()) &&
154
+ !lastMessage?.message?.toLowerCase().includes(filter.toLowerCase())
155
+ ) {
156
+ return null;
157
+ }
158
+
159
+ return (
160
+ <div
161
+ key={`conv_channel_${channel.id}`}
162
+ className={`cursor-pointer flex items-center p-3 border-b ${
163
+ showBorder ? 'border-gray-300' : 'border-transparent'
164
+ } ${
165
+ channel.id == selectedChannelId
166
+ ? 'bg-gray-300 dark:bg-gray-500'
167
+ : 'hover:bg-gray-50 dark:hover:bg-gray-700'
168
+ }`}
169
+ onClick={() => channel.id !== selectedChannelId && handleSelectChannel(channel.id)}
170
+ >
171
+ <img
172
+ className="w-10 h-10 rounded-full bg-gray-400 object-cover flex-shrink-0"
173
+ src={chatUser?.picture || '/default-avatar.svg'}
174
+ alt={chatUser?.givenName || 'User avatar'}
175
+ onError={(e) => {
176
+ // Prevent infinite loop by checking if we're already showing the fallback
177
+ if (e.currentTarget.src.includes('default-avatar.svg')) {
178
+ // If SVG also fails, use a data URL fallback
179
+ e.currentTarget.src =
180
+ 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8Y2lyY2xlIGN4PSIyMCIgY3k9IjIwIiByPSIyMCIgZmlsbD0iI0U1RTdFQiIvPgogIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTYiIHI9IjYiIGZpbGw9IiM5Q0EzQUYiLz4KICA8cGF0aCBkPSJNOCAzMmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyczEyIDUuMzczIDEyIDEyIiBmaWxsPSIjOUNBM0FGIi8+Cjwvc3ZnPgo=';
181
+ } else {
182
+ e.currentTarget.src = '/default-avatar.svg';
183
+ }
184
+ }}
185
+ />
186
+ <div className="ml-2 flex-grow min-w-10 max-w-96">
187
+ {messageLoading && <Skeleton className="w-full h-16" />}
188
+ {!messageLoading && (
189
+ <>
190
+ <LastMessageComponent
191
+ lastMessage={lastMessage}
192
+ channelType={channelType}
193
+ chatUser={chatUser}
194
+ />
195
+ <SubscriptionHandler
196
+ subscribeToMore={subscribeToMore}
197
+ document={CHAT_MESSAGE_ADDED}
198
+ variables={{ channelId: channel?.id?.toString() }}
199
+ enabled={!!channel?.id && !!subscribeToMore}
200
+ updateQuery={(prev, { subscriptionData }: any) => {
201
+ if (!subscriptionData.data) return prev;
202
+ const newMessage: any = subscriptionData?.data?.chatMessageAdded;
203
+ console.log('ConversationItem: New message received via subscription:', newMessage);
204
+ const previousData = prev?.messages?.data
205
+ ? [...prev.messages.data, newMessage]
206
+ : [];
207
+ const totalMsgCount = prev?.messages?.totalCount + 1;
208
+ const merged = {
209
+ ...prev,
210
+ messages: {
211
+ ...prev?.messages,
212
+ data: previousData,
213
+ totalCount: totalMsgCount,
214
+ },
215
+ };
216
+ return merged;
217
+ }}
218
+ onError={(error) => {
219
+ console.error('ConversationItem: Subscription error:', error);
220
+ }}
221
+ />
222
+ </>
223
+ )}
224
+ </div>
225
+ </div>
226
+ );
227
+ },
228
+ );
229
+
230
+ interface LastMessageComponentProps {
231
+ lastMessage: any;
232
+ channelType: string;
233
+ chatUser: any;
234
+ }
235
+
236
+ const LastMessageComponent = React.memo(({ lastMessage, channelType, chatUser }: LastMessageComponentProps) => {
237
+ return (
238
+ <div className="flex flex-col w-full">
239
+ <div className="w-full flex justify-between items-center">
240
+ <span className="text-xs text-green-500 truncate">{channelType}</span>
241
+ <span className="text-xs text-gray-500">
242
+ {lastMessage ? createdAtText(lastMessage?.createdAt) : ''}
243
+ </span>
244
+ </div>
245
+ <p className="text-sm text-gray-600 dark:text-gray-300 font-bold mt-1">
246
+ {chatUser?.givenName + ' ' + chatUser?.familyName}
247
+ </p>
248
+ <p className="text-sm text-gray-600 dark:text-gray-400 truncate w-4/5 mt-1 line-clamp-1">
249
+ {lastMessage?.message && lastMessage.message.length > 30
250
+ ? lastMessage.message.slice(0, 30) + '…'
251
+ : lastMessage?.message}
252
+ </p>
253
+ </div>
254
+ );
255
+ });