@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,154 @@
1
+ import React__default,{useState,useRef,useEffect,useCallback,useMemo}from'react';import {useTranslation}from'react-i18next';import {config}from'../../config/env-config.js';import {UploadImageButton}from'./UploadImageButton.js';import {FilesList}from'../inbox/FilesList.js';import'../inbox/MessageItem.js';import'../inbox/ThreadItem.js';const MessageInput = ({
2
+ handleSend: handleSendProp,
3
+ placeholder
4
+ }) => {
5
+ const [message, setMessage] = useState('');
6
+ const [sending, setSending] = useState(false);
7
+ const [files, setFiles] = useState([]);
8
+ const [showToast, setShowToast] = useState(false);
9
+ const [toastMessage, setToastMessage] = useState('');
10
+ const [isFocused, setIsFocused] = useState(false);
11
+ const textareaRef = useRef(null);
12
+ const {
13
+ t
14
+ } = useTranslation('translations');
15
+ // Auto-focus the textarea when component mounts
16
+ useEffect(() => {
17
+ if (textareaRef.current) {
18
+ textareaRef.current.focus();
19
+ }
20
+ }, []);
21
+ const showToastMessage = useCallback(message => {
22
+ setToastMessage(message);
23
+ setShowToast(true);
24
+ setTimeout(() => setShowToast(false), 3000);
25
+ }, []);
26
+ const handleSend = useCallback(() => {
27
+ if (!message.trim() && files.length === 0) return;
28
+ setSending(true);
29
+ handleSendProp(message, files).then(() => {
30
+ setMessage('');
31
+ setFiles([]);
32
+ // Auto-focus the textarea after sending a message
33
+ setTimeout(() => {
34
+ if (textareaRef.current) {
35
+ textareaRef.current.focus();
36
+ }
37
+ }, 100);
38
+ }).finally(() => setSending(false));
39
+ }, [files, handleSendProp, message]);
40
+ const handleKeyDown = useCallback(e => {
41
+ const keyCode = e.which || e.keyCode;
42
+ if (keyCode == 13 && !e.shiftKey) {
43
+ e.preventDefault();
44
+ handleSend();
45
+ }
46
+ }, [handleSend]);
47
+ const inputHeight = useMemo(() => {
48
+ const lines = message.split('\n').length;
49
+ return Math.max(40, Math.min(120, 40 + (lines - 1) * 20));
50
+ }, [message]);
51
+ const onUploadImageChange = useCallback(({
52
+ target
53
+ }) => {
54
+ let fileList = [];
55
+ let index = 0;
56
+ if (files.length + target.files.length > config.FILES_PER_MESSAGE) {
57
+ showToastMessage(t('tailwind_ui_inbox.you_can_not_upload_more_than_files', {
58
+ files_per_message: config.FILES_PER_MESSAGE
59
+ }));
60
+ return;
61
+ }
62
+ while (target.files[index]) {
63
+ fileList.push(target.files[index]);
64
+ index += 1;
65
+ }
66
+ setFiles(oldFiles => [...oldFiles, ...fileList]);
67
+ }, [setFiles, files, showToastMessage, t]);
68
+ const canSend = message.trim() || files.length > 0;
69
+ return React__default.createElement("div", {
70
+ className: "border-t border-gray-200 bg-white"
71
+ }, showToast && React__default.createElement("div", {
72
+ className: "fixed top-4 right-4 z-50 bg-orange-50 border border-orange-200 text-orange-800 px-4 py-3 rounded-lg shadow-lg animate-bounce"
73
+ }, React__default.createElement("div", {
74
+ className: "flex items-center"
75
+ }, React__default.createElement("svg", {
76
+ className: "w-5 h-5 mr-2",
77
+ fill: "currentColor",
78
+ viewBox: "0 0 20 20"
79
+ }, React__default.createElement("path", {
80
+ fillRule: "evenodd",
81
+ d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
82
+ clipRule: "evenodd"
83
+ })), toastMessage)), files?.length > 0 && !sending && React__default.createElement("div", {
84
+ className: "px-4 py-3 border-b border-gray-100 animate-fade-in"
85
+ }, React__default.createElement(FilesList, {
86
+ files: files
87
+ })), React__default.createElement("div", {
88
+ className: "p-4"
89
+ }, React__default.createElement("div", {
90
+ className: `relative bg-white border rounded-lg transition-all duration-200 ease-in-out ${isFocused ? 'ring-2 ring-blue-500 ring-opacity-50 border-blue-300 shadow-sm' : 'border-gray-300 hover:border-gray-400'}`
91
+ }, React__default.createElement("div", {
92
+ className: "flex items-end gap-2 p-2"
93
+ }, React__default.createElement("div", {
94
+ className: "flex-shrink-0 self-end pb-1"
95
+ }, React__default.createElement(UploadImageButton, {
96
+ onChange: onUploadImageChange
97
+ })), React__default.createElement("div", {
98
+ className: "flex-grow min-w-0"
99
+ }, React__default.createElement("textarea", {
100
+ ref: textareaRef,
101
+ className: "w-full text-base px-3 py-2 bg-transparent border-none resize-none overflow-hidden placeholder-gray-500 text-gray-900 focus:outline-none focus:ring-0 scrollbar-thin scrollbar-thumb-gray-300 scrollbar-track-transparent",
102
+ style: {
103
+ height: `${inputHeight}px`,
104
+ minHeight: '40px',
105
+ maxHeight: '120px'
106
+ },
107
+ placeholder: placeholder || t('tailwind_ui_inbox.reminder_leave_a_review'),
108
+ value: sending ? '' : message,
109
+ onKeyDown: handleKeyDown,
110
+ onChange: e => setMessage(e.target.value),
111
+ onFocus: () => setIsFocused(true),
112
+ onBlur: () => setIsFocused(false),
113
+ disabled: sending,
114
+ rows: 1
115
+ })), React__default.createElement("div", {
116
+ className: "flex-shrink-0 self-end pb-1"
117
+ }, React__default.createElement("button", {
118
+ className: `w-8 h-8 rounded-md flex items-center justify-center transition-all duration-200 ease-in-out ${canSend && !sending ? 'bg-green-600 hover:bg-green-700 text-white shadow-sm hover:shadow-md' : 'bg-gray-200 text-gray-400 cursor-not-allowed'}`,
119
+ onClick: handleSend,
120
+ disabled: !canSend || sending,
121
+ type: "button"
122
+ }, sending ? React__default.createElement("svg", {
123
+ className: "w-4 h-4 animate-spin",
124
+ fill: "none",
125
+ viewBox: "0 0 24 24"
126
+ }, React__default.createElement("circle", {
127
+ className: "opacity-25",
128
+ cx: "12",
129
+ cy: "12",
130
+ r: "10",
131
+ stroke: "currentColor",
132
+ strokeWidth: "4"
133
+ }), React__default.createElement("path", {
134
+ className: "opacity-75",
135
+ fill: "currentColor",
136
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
137
+ })) : React__default.createElement("svg", {
138
+ className: "w-4 h-4",
139
+ fill: "none",
140
+ stroke: "currentColor",
141
+ viewBox: "0 0 24 24"
142
+ }, React__default.createElement("path", {
143
+ strokeLinecap: "round",
144
+ strokeLinejoin: "round",
145
+ strokeWidth: 2,
146
+ d: "M12 19l9 2-9-18-9 18 9-2zm0 0v-8"
147
+ })))))), React__default.createElement("div", {
148
+ className: "flex items-center justify-between mt-2 px-1"
149
+ }, React__default.createElement("span", {
150
+ className: "text-xs text-gray-400"
151
+ }, "Press Enter to send, Shift+Enter for new line"), message.length > 0 && React__default.createElement("span", {
152
+ className: "text-xs text-gray-400 transition-opacity duration-200 ease-in-out"
153
+ }, message.length, " characters"))));
154
+ };export{MessageInput};//# sourceMappingURL=MessageInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageInput.js","sources":["../../../src/components/InboxMessage/MessageInput.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type MessageInputProps = {
3
+ channelId?: string;
4
+ handleSend: (message: string, files: File[]) => Promise<void>;
5
+ placeholder?: string;
6
+ };
7
+ export declare const MessageInputComponent: ({ handleSend: handleSendProp, placeholder }: MessageInputProps) => React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=MessageInputComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageInputComponent.d.ts","sourceRoot":"","sources":["../../../src/components/InboxMessage/MessageInputComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAMjF,KAAK,iBAAiB,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,6CAA6C,iBAAiB,sBAwOnG,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface MessagesProps {
3
+ channelId: number;
4
+ currentUser: any;
5
+ channelMessages: any[];
6
+ totalCount: number;
7
+ innerRef?: any;
8
+ refetchMessages?: () => void;
9
+ subscribeToNewMessages?: () => any;
10
+ subscribeToNewServiceMessages?: () => any;
11
+ onMessageClick: (msg: any) => void;
12
+ isDesktopView?: boolean;
13
+ isSmallScreen?: boolean;
14
+ }
15
+ export declare const Messages: ({ currentUser, channelMessages, refetchMessages, innerRef, channelId, subscribeToNewMessages, subscribeToNewServiceMessages, onMessageClick, isDesktopView, isSmallScreen, }: MessagesProps) => React.JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=Messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Messages.d.ts","sourceRoot":"","sources":["../../../src/components/InboxMessage/Messages.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAKpE,UAAU,aAAa;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,GAAG,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,GAAG,CAAC;IACnC,6BAA6B,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1C,cAAc,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,QAAQ,GAAI,8KAWtB,aAAa,sBAyGf,CAAC"}
@@ -0,0 +1,99 @@
1
+ import {isToday,isYesterday,format}from'date-fns';import React__default,{useEffect,useRef,useMemo}from'react';import {useTranslation}from'react-i18next';import {SlackLikeMessageGroup}from'./message-widgets/SlackLikeMessageGroup.js';const Messages = ({
2
+ currentUser,
3
+ channelMessages,
4
+ refetchMessages,
5
+ innerRef,
6
+ channelId,
7
+ subscribeToNewMessages,
8
+ subscribeToNewServiceMessages,
9
+ onMessageClick,
10
+ isDesktopView = false,
11
+ isSmallScreen = false
12
+ }) => {
13
+ const {
14
+ t
15
+ } = useTranslation('translations');
16
+ // Disable user modal behavior: no-op handler
17
+ const onOpen = () => {};
18
+ useEffect(() => {
19
+ subscribeToNewMessages?.();
20
+ subscribeToNewServiceMessages?.();
21
+ }, [channelId]);
22
+ useRef(null);
23
+ React__default.useCallback(() => {
24
+ if (innerRef.current) innerRef.current?.querySelector(':scope > :last-child')?.scrollIntoView({
25
+ behavior: 'smooth',
26
+ inline: 'start'
27
+ });
28
+ }, [innerRef]);
29
+ React__default.useEffect(() => {
30
+ if (channelMessages?.length) ;
31
+ }, [channelMessages]);
32
+ const messageListWithDates = useMemo(() => {
33
+ let currentDate = '';
34
+ let res = [];
35
+ channelMessages?.map(msg => {
36
+ const date = new Date(msg.createdAt);
37
+ let msgDate;
38
+ if (isToday(date)) msgDate = t('tailwind_ui_inbox.today');else if (isYesterday(date)) msgDate = t('tailwind_ui_inbox.yesterday');else msgDate = format(new Date(msg.createdAt), 'eee, do MMMM');
39
+ if (msgDate !== currentDate) {
40
+ res.push({
41
+ type: 'date',
42
+ content: msgDate
43
+ });
44
+ currentDate = msgDate;
45
+ }
46
+ res.push(msg);
47
+ });
48
+ return res;
49
+ }, [channelMessages]);
50
+ // Group messages by date sections for Slack-like rendering
51
+ const messagesByDate = useMemo(() => {
52
+ const sections = [];
53
+ let currentSection = {
54
+ date: null,
55
+ messages: []
56
+ };
57
+ messageListWithDates.forEach(item => {
58
+ if (item?.type === 'date') {
59
+ if (currentSection.messages.length > 0) {
60
+ sections.push(currentSection);
61
+ }
62
+ currentSection = {
63
+ date: item.content,
64
+ messages: []
65
+ };
66
+ } else {
67
+ currentSection.messages.push(item);
68
+ }
69
+ });
70
+ if (currentSection.messages.length > 0) {
71
+ sections.push(currentSection);
72
+ }
73
+ return sections;
74
+ }, [messageListWithDates]);
75
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
76
+ className: `w-full pb-8 pt-4 ${isDesktopView ? 'space-y-8 max-w-full mx-auto' : isSmallScreen ? 'space-y-4' : 'space-y-6'}`,
77
+ ref: innerRef
78
+ }, messagesByDate?.map((section, sectionIndex) => React__default.createElement("div", {
79
+ key: `section-${sectionIndex}`,
80
+ className: "w-full"
81
+ }, section.date && React__default.createElement("div", {
82
+ className: "flex items-center justify-center my-6"
83
+ }, React__default.createElement("div", {
84
+ className: "flex-grow border-t border-gray-200"
85
+ }), React__default.createElement("div", {
86
+ className: "mx-4 px-3 py-1 bg-white border border-gray-200 rounded-full text-xs font-medium text-gray-600"
87
+ }, section.date), React__default.createElement("div", {
88
+ className: "flex-grow border-t border-gray-200"
89
+ })), React__default.createElement("div", {
90
+ className: `${isDesktopView ? 'mb-6' : 'mb-4'}`
91
+ }, React__default.createElement(SlackLikeMessageGroup, {
92
+ messages: section.messages,
93
+ currentUser: currentUser,
94
+ onOpen: onOpen,
95
+ onMessageClick: onMessageClick,
96
+ isDesktopView: isDesktopView,
97
+ isSmallScreen: isSmallScreen
98
+ }))))));
99
+ };export{Messages};//# sourceMappingURL=Messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Messages.js","sources":["../../../src/components/InboxMessage/Messages.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"wOAoBO,MAAM,QAAQ,GAAG,CAAC;aAYZ;iBAET;AACA,EAAA,eAAY;UAEZ;WACI;wBACA;AACJ,EAAA,6BAAgB;AAEhB,EAAA;AACA,EAAA;eACQ,GAAA;;AAEI,EAAA,MAAA;AACA,IAAA;AACH,GAAA,GAAA,cAAE,CAAA,cAAA,CAAA;AACX;AAEA,EAAA,MAAA,MAAM,GAAA,MAAa,CAAA,CAAE;AACjB,EAAA,SAAA,CAAI,MAAA;0BACA,IAAA;iCACH,IAAA;AACL,EAAA,CAAA,EAAC,CAAA,SAAG,CAAA,CAAA;AAEJ,EAAM,MAAoB,CAAA,IAAG;EACVA,cAAM,CAAA,WAAA,CAAA,MAAA;QACrB,QAAO,CAAA,OAAM,EAAA,QAAA,CAAA,OAAA,EAAA,aAAA,CAAA,sBAAA,CAAA,EAAA,cAAA,CAAA;AACb,MAAA,QAAA,EAAA;YACI,EAAA;AACA,KAAA,CAAA;cACA,CAAA;AAAmB,EAAAA,cAAA,CAAA,SAAA,CAAA,MAAO;uBACjB,EAAA,MAAA,EAAY;AAChB,EAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAO;AAEZ,EAAA,MAAA,oBAAgB,GAAA,OAAA,CAAW,MAAG;AAC1B,IAAA,IAAA,WAAG,GAAC,EAAI;gBACR;mBACH,EAAA,GAAA,CAAA,GAAA,IAAA;AACD,MAAA,MAAA,IAAI,GAAA,IAAK,IAAK,CAAA,GAAA,CAAA,SAAA,CAAA;AAClB,MAAA,IAAE,OAAC;AACH,MAAA,IAAA,QAAU,IAAC,CAAA,EAAA,OAAA,GAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,KAAA,IAAA,WAAA,CAAA,IAAA,CAAA,EAAA,OAAA,GAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,KAAA,OAAA,GAAA,MAAA,CAAA,IAAA,IAAA,CAAA,GAAA,CAAA,SAAA,CAAA,EAAA,cAAA,CAAA;AACf,MAAC,IAAG,OAAA,KAAA,WAAkB,EAAA;QAEtB,GAAA,CAAA,IAAA,CAAA;AACA,UAAM,IAAA,EAAA,MAAA;UACF,OAAM,EAAA;SACN,CAAA;AAEA,QAAA,WAAA,GAAA,OAAqB;AACjB,MAAA;kBACI,CAAA;AACI,IAAA,CAAA,CAAA;;AAEJ,EAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA;;sBACI,GAAA,OAAA,CAAA,MAAA;AACJ,IAAA,MAAA,QAAA,GAAA,EAAA;sBACH,GAAA;AACL,MAAA,IAAE,EAAC,IAAA;cAEC,EAAA;AACA,KAAA;wBACH,CAAA,OAAA,CAAA,IAAA,IAAA;AAED,MAAA,IAAA,IAAA,WAAgB,MAAA,EAAA;AACpB,QAAI,IAAA,cAAA,CAAA,QAAuB,CAAA,MAAA,GAAA,CAAA,EAAA;AAE3B,UAAA,QACI,CAAA,IAAA,CAAA,cAAA,CAAA;QACI;AASa,QAAA,cAAQ,GAAI;gBAEL,IAAA,CAAA,OAAA;AACA,UAAA,QAAA,EAAA;AAGA,SAAA;AAKR,MAAA,CAAA,MAAA;AACI,QAAA,cAAA,CAAA,QAAA,CAAA,IAAC,CAAA,IAAA,CAAA;AAc7B,MAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface MessagesProps {
3
+ channelId: number;
4
+ currentUser: any;
5
+ channelMessages: any[];
6
+ totalCount: number;
7
+ innerRef?: any;
8
+ refetchMessages?: () => void;
9
+ subscribeToNewMessages?: () => any;
10
+ subscribeToNewServiceMessages?: () => any;
11
+ onMessageClick: (msg: any) => void;
12
+ isDesktopView?: boolean;
13
+ isSmallScreen?: boolean;
14
+ }
15
+ export declare const MessagesBuilderUi: ({ currentUser, channelMessages, refetchMessages, innerRef, channelId, subscribeToNewMessages, subscribeToNewServiceMessages, onMessageClick, isDesktopView, isSmallScreen, }: MessagesProps) => React.JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=MessagesBuilderUi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessagesBuilderUi.d.ts","sourceRoot":"","sources":["../../../src/components/InboxMessage/MessagesBuilderUi.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAMpE,UAAU,aAAa;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,GAAG,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,GAAG,CAAC;IACnC,6BAA6B,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1C,cAAc,EAAE,CAAC,GAAG,KAAA,KAAK,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,GAAI,8KAW/B,aAAa,sBAiIf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Popover: () => React.JSX.Element;
3
+ //# sourceMappingURL=Popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/components/InboxMessage/Popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,OAAO,yBAsCnB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import React__default from'react';import {useTranslation}from'react-i18next';const Popover = () => {
2
+ const {
3
+ t
4
+ } = useTranslation('translations');
5
+ const content = [{
6
+ name: t('tailwind_ui_inbox.all_conversations')
7
+ }, {
8
+ name: t('tailwind_ui_inbox.archived_conversations'),
9
+ total: '0'
10
+ }, {
11
+ name: t('tailwind_ui_inbox.unread_conversations'),
12
+ total: '0'
13
+ }];
14
+ return React__default.createElement("div", null, content?.map((item, index) => {
15
+ if (!item.total) {
16
+ return React__default.createElement("div", {
17
+ className: "popover-style hover:bg-gray-200",
18
+ key: index
19
+ }, React__default.createElement("button", {
20
+ className: "border-none text-base text-gray-800 bg-transparent h-7 p-0 cursor-pointer hover:underline"
21
+ }, item.name));
22
+ } else {
23
+ return React__default.createElement("div", {
24
+ className: "popover-style hover:bg-gray-200",
25
+ key: index
26
+ }, React__default.createElement("button", {
27
+ className: "border-none text-base text-gray-800 bg-transparent h-7 p-0 cursor-pointer hover:underline"
28
+ }, item.name + `(${item.total})`));
29
+ }
30
+ }));
31
+ };export{Popover};//# sourceMappingURL=Popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.js","sources":["../../../src/components/InboxMessage/Popover.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"6EAGO,MAAM,OAAO,GAAG,MAAK;QACxB;AACA,IAAA;AACI,GAAA,GAAA,cAAA,CAAA,cAAA,CAAA;AACI,EAAA,MAAA,OAAA,GAAM,CAAC;AACV,IAAA,IAAA,EAAA,CAAA,CAAA,qCAAA;AACD,GAAA,EAAA;AACI,IAAA,IAAA,EAAA,CAAA,CAAA,0CAAQ,CAAA;AACR,IAAA,KAAA,EAAA;AACH,GAAA,EAAA;AACD,IAAA,IAAA,EAAA,CAAA,CAAA,wCAAA,CAAA;AACI,IAAA,KAAA,EAAA;AACA,GAAA,CAAA;AACH,EAAA,OAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,OAAA,EAAA,GAAA,CAAA,CAAA,IAAA,EAAA,KAAA,KAAA;QACH,CAAA,IAAA,CAAA,KAAA,EAAA;MACF,OACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAEQ,QAAA,SAAS,EAAC,iCAAQ;aACd;qCAEQ,CAAA,QAAA,EAAA;QAKZ,SAAC,EAAA;aAAM,CAAC,IAAA,CAAA,CAAA;;AAGI,MAAA,OAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA;QAKZ,SAAC,EAAA,iCAAA;QAGZ,GAAC,EAAA;AACN,OAAE,EAAAA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA;;;;;"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { IPost } from 'common';
3
+ export interface IRightSidebar extends React.HTMLAttributes<HTMLDivElement> {
4
+ channelMessages: IPost[];
5
+ isMobileView: boolean;
6
+ selectedPost: string;
7
+ }
8
+ export declare const RightSidebar: (props: IRightSidebar) => React.JSX.Element;
9
+ //# sourceMappingURL=RightSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/InboxMessage/RightSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE,eAAe,EAAE,KAAK,EAAE,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,sBAUhD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React__default from'react';import {Slot}from'@common-stack/components-pro';import {MessengerSlotFillNameEnum}from'../../enums/messenger-slot-fill-name-enum.js';const RightSidebar = props => {
2
+ return React__default.createElement(Slot, {
3
+ name: MessengerSlotFillNameEnum.INBOX_RIGHT_SIDEBAR,
4
+ fillProps: {
5
+ active: true,
6
+ ...props
7
+ }
8
+ });
9
+ };export{RightSidebar};//# sourceMappingURL=RightSidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightSidebar.js","sources":["../../../src/components/InboxMessage/RightSidebar.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"uKAWO,MAAM,YAAY,GAAG,KAAC,IAAsB;SAC/CA,cACI,CAAA,aAAA,CAAA,IAAC,EAAA;AAGO,IAAA,IAAA,EAAA,yBAAY,CAAA,mBAAA;AACZ,IAAA,SAAA,EAAG;AACN,MAAA,MACH,EACJ,IAAA;AACN,MAAE,GAAA;;;"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ export interface IRightSidebarAi extends React.HTMLAttributes<HTMLDivElement> {
3
+ channelId: string;
4
+ detailSidebarOptions: {
5
+ isMobileView: boolean;
6
+ isSmallTabletView: boolean;
7
+ isTabletView: boolean;
8
+ isDesktopView: boolean;
9
+ isLargeDesktopView: boolean;
10
+ isSmallScreen: boolean;
11
+ [key: string]: any;
12
+ };
13
+ windowWidth: number;
14
+ windowHeight: number;
15
+ activeTab?: string;
16
+ setIsLoading?: (isLoading: boolean) => void;
17
+ isLoading?: boolean;
18
+ messages?: any[];
19
+ selectedPost?: any;
20
+ [key: string]: any;
21
+ }
22
+ export declare const RightSidebarAi: (props: IRightSidebarAi) => React.JSX.Element;
23
+ //# sourceMappingURL=RightSidebarAi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightSidebarAi.d.ts","sourceRoot":"","sources":["../../../src/components/InboxMessage/RightSidebarAi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE;QAClB,YAAY,EAAE,OAAO,CAAC;QACtB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,EAAE,OAAO,CAAC;QACvB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,aAAa,EAAE,OAAO,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,eAAe,sBAUpD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React__default from'react';import {Slot}from'@common-stack/components-pro';import {MessengerSlotFillNameEnum}from'../../enums/messenger-slot-fill-name-enum.js';const RightSidebarAi = props => {
2
+ return React__default.createElement(Slot, {
3
+ name: MessengerSlotFillNameEnum.INBOX_WITH_AI_RIGHT_SIDEBAR,
4
+ fillProps: {
5
+ active: true,
6
+ ...props
7
+ }
8
+ });
9
+ };export{RightSidebarAi};//# sourceMappingURL=RightSidebarAi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightSidebarAi.js","sources":["../../../src/components/InboxMessage/RightSidebarAi.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"uKA0BO,MAAM,cAAc,GAAG,KAAC,IAAwB;SACnDA,cACI,CAAA,aAAA,CAAA,IAAC,EAAA;AAGO,IAAA,IAAA,EAAA,yBAAY,CAAA,2BAAA;AACZ,IAAA,SAAA,EAAG;AACN,MAAA,MACH,EACJ,IAAA;AACN,MAAE,GAAA;;;"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export declare const ServiceConversationItem: React.MemoExoticComponent<({ showBorder, currentUser, filter, channel, handleSelectChannel, users, selectedChannelId, role, }: {
3
+ showBorder: any;
4
+ currentUser: any;
5
+ filter: any;
6
+ channel: any;
7
+ handleSelectChannel: any;
8
+ users: any;
9
+ selectedChannelId: any;
10
+ role: any;
11
+ }) => React.JSX.Element>;
12
+ //# sourceMappingURL=ServiceConversationItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceConversationItem.d.ts","sourceRoot":"","sources":["../../../src/components/InboxMessage/ServiceConversationItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAyOvC,eAAO,MAAM,uBAAuB;;;;;;;;;wBAA+C,CAAC"}
@@ -0,0 +1,185 @@
1
+ import React__default,{useMemo}from'react';import {useThreadMessagesQuery,OnThreadCreatedUpdatedDocument}from'common/graphql';import {isToday,isYesterday,format}from'date-fns';import {useLocation}from'@remix-run/react';const createdAtText = value => {
2
+ if (!value) return '';
3
+ let date = new Date(value);
4
+ if (isToday(date)) return 'Today';
5
+ if (isYesterday(date)) return 'Yesterday';
6
+ return format(new Date(value), 'MMM dd, yyyy');
7
+ };
8
+ // Custom Skeleton component using Tailwind
9
+ const Skeleton = () => React__default.createElement("div", {
10
+ className: "animate-pulse"
11
+ }, React__default.createElement("div", {
12
+ className: "h-4 bg-gray-200 dark:bg-gray-700 rounded mb-2"
13
+ }), React__default.createElement("div", {
14
+ className: "h-4 bg-gray-200 dark:bg-gray-700 rounded w-3/4 mb-2"
15
+ }), React__default.createElement("div", {
16
+ className: "h-4 bg-gray-200 dark:bg-gray-700 rounded w-1/2"
17
+ }));
18
+ const ServiceLastMessageComponent = ({
19
+ subscribeToNewMessages,
20
+ channel,
21
+ channelType,
22
+ lastMessage
23
+ }) => {
24
+ React__default.useEffect(() => subscribeToNewMessages(), []);
25
+ return React__default.createElement("div", {
26
+ className: "flex flex-col w-full"
27
+ }, React__default.createElement("div", {
28
+ className: "w-full flex justify-between items-center"
29
+ }, React__default.createElement("span", {
30
+ className: "text-xs text-green-500 truncate"
31
+ }, channelType), React__default.createElement("span", {
32
+ className: "text-xs text-gray-500"
33
+ }, lastMessage ? createdAtText(lastMessage?.createdAt) : '')), React__default.createElement("p", {
34
+ className: "text-sm text-gray-600 dark:text-gray-300 font-bold mt-1"
35
+ }, channel?.title), React__default.createElement("p", {
36
+ className: "text-sm text-gray-600 dark:text-gray-400 truncate w-4/5 mt-1"
37
+ }, lastMessage?.message));
38
+ };
39
+ const ServiceConversationItemComponent = ({
40
+ showBorder,
41
+ currentUser,
42
+ filter,
43
+ channel,
44
+ handleSelectChannel,
45
+ users,
46
+ selectedChannelId,
47
+ role
48
+ }) => {
49
+ const [parentId, setParentId] = React__default.useState(null);
50
+ const [messages, setMessages] = React__default.useState([]);
51
+ const [servicePostParentId, setServicePostParentId] = React__default.useState(null);
52
+ const {
53
+ pathname
54
+ } = useLocation();
55
+ const {
56
+ data: threadMessages,
57
+ loading: threadMessageLoading,
58
+ fetchMore: fetchMoreMessages,
59
+ refetch: refetchThreadMessages,
60
+ subscribeToMore
61
+ } = useThreadMessagesQuery({
62
+ variables: {
63
+ channelId: channel?.id?.toString(),
64
+ role,
65
+ limit: 10
66
+ },
67
+ fetchPolicy: 'cache-and-network'
68
+ });
69
+ React__default.useEffect(() => {
70
+ if (channel) refetchThreadMessages({
71
+ channelId: channel?.id?.toString(),
72
+ role,
73
+ limit: 10
74
+ });
75
+ }, [channel]);
76
+ // }, [selectedChannelId, channel, role]);
77
+ React__default.useEffect(() => {
78
+ if (threadMessages?.threadMessages?.data?.length) {
79
+ const {
80
+ data
81
+ } = threadMessages.threadMessages;
82
+ const replies = data?.map(t => t?.replies)?.flat(1)?.filter(p => p?.message !== '') ?? [];
83
+ const posts = data?.map(t => t?.post)?.flat(1)?.filter(p => p?.message !== '') ?? [];
84
+ // const post =
85
+ // data?.find((t: any) => {
86
+ // return t?.post?.message !== '';
87
+ // }) ??
88
+ // data?.find((t: any) => {
89
+ // return t?.post;
90
+ // }) ??
91
+ // null;
92
+ if (replies?.length) {
93
+ setMessages(pre => [...pre, ...replies]);
94
+ } else if (posts?.length) {
95
+ setMessages(pre => [...pre, ...posts]);
96
+ }
97
+ }
98
+ }, [threadMessages]);
99
+ const lastMessage = useMemo(() => {
100
+ const threadMessagesData = messages?.flat(1);
101
+ if (!threadMessagesData?.length) {
102
+ return null;
103
+ }
104
+ let filteredLastMessage = threadMessagesData && threadMessagesData?.length > 1 ? threadMessagesData?.reduce((a, b) => {
105
+ return new Date(a?.updatedAt) > new Date(b?.updatedAt) ? a : b;
106
+ }, []) ?? null : threadMessagesData?.length <= 1 ? threadMessagesData?.[0] ?? [] : null;
107
+ return filteredLastMessage;
108
+ // //return data[data.length - 1];
109
+ }, [messages]);
110
+ React__default.useEffect(() => {
111
+ if (lastMessage) {
112
+ const sParentId = lastMessage?.parentId ? lastMessage?.parentId : lastMessage?.id;
113
+ setServicePostParentId(sParentId);
114
+ }
115
+ }, [lastMessage]);
116
+ const creatorAndMembersId = React__default.useMemo(() => {
117
+ if (!channel?.members) return null;
118
+ const membersIds = channel?.members?.filter(m => m?.user?.id !== currentUser?.id)?.map(mu => mu?.user?.id) ?? [];
119
+ const creatorId = channel?.creator?.id;
120
+ const mergedIds = [].concat(membersIds, creatorId) ?? [];
121
+ return mergedIds?.filter((m, pos) => mergedIds?.indexOf(m) === pos) ?? [];
122
+ }, [channel]);
123
+ const postParentId = React__default.useMemo(() => {
124
+ if (!creatorAndMembersId?.length) return null;
125
+ return creatorAndMembersId?.length && creatorAndMembersId?.includes(currentUser?.id) ? 1 : lastMessage?.parentId ? lastMessage?.parentId : lastMessage?.id ?? 0;
126
+ }, [creatorAndMembersId, lastMessage]);
127
+ React__default.useEffect(() => {
128
+ if (postParentId) {
129
+ setParentId(postParentId);
130
+ }
131
+ }, [postParentId]);
132
+ const channelType = useMemo(() => {
133
+ return channel?.type;
134
+ }, [channel]);
135
+ // const servicePostParentId = lastMessage?.parentId ? lastMessage?.parentId : lastMessage?.id;
136
+ return React__default.createElement("div", {
137
+ key: `services_channel_${channel.id}`,
138
+ className: `cursor-pointer flex items-center border-b p-3 ${showBorder ? 'border-gray-300' : 'border-transparent'} ${channel.id == selectedChannelId ? 'bg-gray-300 dark:bg-gray-500' : ''}`,
139
+ onClick: () => handleSelectChannel(channel.id, postParentId)
140
+ }, React__default.createElement("div", {
141
+ className: "w-10 h-10 rounded-full bg-gray-400 flex-shrink-0 overflow-hidden"
142
+ }, channel?.creator?.picture ? React__default.createElement("img", {
143
+ src: channel.creator.picture,
144
+ alt: "Creator avatar",
145
+ className: "w-full h-full object-cover"
146
+ }) : React__default.createElement("div", {
147
+ className: "w-full h-full bg-gray-400"
148
+ })), React__default.createElement("div", {
149
+ className: "ml-2 flex-grow min-w-10 max-w-96"
150
+ }, threadMessageLoading && React__default.createElement(Skeleton, null), !threadMessageLoading && React__default.createElement(ServiceLastMessageComponent, {
151
+ channel: channel,
152
+ channelType: channelType,
153
+ lastMessage: lastMessage,
154
+ subscribeToNewMessages: () => subscribeToMore({
155
+ document: OnThreadCreatedUpdatedDocument,
156
+ variables: {
157
+ channelId: channel?.id?.toString(),
158
+ postParentId: postParentId && postParentId == 1 ? null : servicePostParentId
159
+ },
160
+ updateQuery: (prev, {
161
+ subscriptionData
162
+ }) => {
163
+ if (!subscriptionData.data) return prev;
164
+ const newPostThreadData = subscriptionData?.data?.threadCreatedUpdated?.data;
165
+ const newMessage = subscriptionData?.data?.threadCreatedUpdated?.lastMessage;
166
+ const updatedData = prev?.threadMessages?.data?.map(t => t.id === newPostThreadData?.id ? {
167
+ ...t,
168
+ replies: [...t?.replies, newMessage],
169
+ replyCount: newPostThreadData?.replyCount,
170
+ lastReplyAt: newPostThreadData?.lastReplyAt,
171
+ updatedAt: newPostThreadData?.updatedAt
172
+ } : t) ?? [];
173
+ return Object.assign({}, prev, {
174
+ threadMessages: {
175
+ ...prev?.threadMessages,
176
+ totalCount: newPostThreadData?.totalCount ?? 0,
177
+ // totalCount: prev?.threadMessages?.totalCount + 1,
178
+ data: updatedData?.length > 0 ? updatedData : [newPostThreadData]
179
+ }
180
+ });
181
+ }
182
+ })
183
+ })));
184
+ };
185
+ const ServiceConversationItem = React__default.memo(ServiceConversationItemComponent);export{ServiceConversationItem};//# sourceMappingURL=ServiceConversationItem.js.map