@botonic/react 0.57.0-rslib-esm.0 → 0.57.0-rslib-esm.2

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 (965) hide show
  1. package/lib/app.js.map +1 -0
  2. package/lib/botonic-tester.js.map +1 -0
  3. package/lib/components/audio.d.ts +9 -0
  4. package/lib/components/audio.js.map +1 -0
  5. package/lib/components/button/index.js.map +1 -0
  6. package/lib/components/button/styles.js.map +1 -0
  7. package/lib/components/buttons-disabler.js.map +1 -0
  8. package/lib/components/carousel.d.ts +10 -0
  9. package/lib/components/carousel.js.map +1 -0
  10. package/lib/components/components.js.map +1 -0
  11. package/lib/components/constants.js.map +1 -0
  12. package/lib/components/custom-message.js.map +1 -0
  13. package/lib/components/document.d.ts +9 -0
  14. package/lib/components/document.js.map +1 -0
  15. package/lib/components/element.js.map +1 -0
  16. package/lib/components/handoff.d.ts +1 -0
  17. package/lib/components/handoff.js.map +1 -0
  18. package/lib/components/image.d.ts +9 -0
  19. package/lib/components/image.js.map +1 -0
  20. package/lib/components/index-types.js.map +1 -0
  21. package/lib/components/index.js.map +1 -0
  22. package/lib/components/location.js.map +1 -0
  23. package/lib/components/markdown.js.map +1 -0
  24. package/lib/components/message/index.js.map +1 -0
  25. package/lib/components/message/message-footer.d.ts +8 -0
  26. package/lib/components/message/message-footer.js.map +1 -0
  27. package/lib/components/message/message-image.js.map +1 -0
  28. package/lib/components/message/styles.js.map +1 -0
  29. package/lib/components/message/timestamps.d.ts +13 -0
  30. package/lib/components/message/timestamps.js.map +1 -0
  31. package/lib/components/message-template.js.map +1 -0
  32. package/lib/components/multichannel/facebook/facebook.js.map +1 -0
  33. package/lib/components/multichannel/index-types.js.map +1 -0
  34. package/lib/components/multichannel/index.d.ts +7 -0
  35. package/lib/components/multichannel/index.js +21 -0
  36. package/lib/components/multichannel/index.js.map +1 -0
  37. package/lib/components/multichannel/multichannel-button.d.ts +4 -0
  38. package/lib/components/multichannel/multichannel-button.js.map +1 -0
  39. package/lib/components/multichannel/multichannel-carousel.d.ts +1 -0
  40. package/lib/components/multichannel/multichannel-carousel.js.map +1 -0
  41. package/lib/components/multichannel/multichannel-context.js.map +1 -0
  42. package/lib/components/multichannel/multichannel-reply.d.ts +4 -0
  43. package/lib/components/multichannel/multichannel-reply.js.map +1 -0
  44. package/lib/components/multichannel/multichannel-text.d.ts +2 -0
  45. package/lib/components/multichannel/multichannel-text.js.map +1 -0
  46. package/lib/components/multichannel/multichannel-utils.js.map +1 -0
  47. package/lib/components/multichannel/multichannel.js.map +1 -0
  48. package/lib/components/multichannel/whatsapp/constants.js.map +1 -0
  49. package/lib/components/multichannel/whatsapp/markdown-meta.js.map +1 -0
  50. package/lib/components/pic.js.map +1 -0
  51. package/lib/components/raw.d.ts +9 -0
  52. package/lib/components/raw.js.map +1 -0
  53. package/lib/components/reply.js.map +1 -0
  54. package/lib/components/share-button.js.map +1 -0
  55. package/lib/components/subtitle.js.map +1 -0
  56. package/lib/components/system-debug-trace/debug-message.d.ts +8 -0
  57. package/lib/components/system-debug-trace/debug-message.js.map +1 -0
  58. package/lib/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +4 -0
  59. package/lib/components/system-debug-trace/events/ai-agent/ai-agent.js.map +1 -0
  60. package/lib/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +7 -0
  61. package/lib/components/system-debug-trace/events/ai-agent/executed-tools.js.map +1 -0
  62. package/lib/components/system-debug-trace/events/ai-agent/index.js.map +1 -0
  63. package/lib/components/system-debug-trace/events/ai-agent/parse-tools.js.map +1 -0
  64. package/lib/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +1 -0
  65. package/lib/components/system-debug-trace/events/ai-agent/types.js.map +1 -0
  66. package/lib/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +1 -0
  67. package/lib/components/system-debug-trace/events/ai-agent-router/ai-agent-router.d.ts +4 -0
  68. package/lib/components/system-debug-trace/events/ai-agent-router/ai-agent-router.js.map +1 -0
  69. package/lib/components/system-debug-trace/events/ai-agent-router/index.js.map +1 -0
  70. package/lib/components/system-debug-trace/events/ai-agent-router/types.js.map +1 -0
  71. package/lib/components/system-debug-trace/events/bot-action.js.map +1 -0
  72. package/lib/components/system-debug-trace/events/components/guardrail-item.js.map +1 -0
  73. package/lib/components/system-debug-trace/events/components/index.js.map +1 -0
  74. package/lib/components/system-debug-trace/events/components/sources-section.d.ts +11 -0
  75. package/lib/components/system-debug-trace/events/components/sources-section.js.map +1 -0
  76. package/lib/components/system-debug-trace/events/conditional-channel.js.map +1 -0
  77. package/lib/components/system-debug-trace/events/conditional-country.js.map +1 -0
  78. package/lib/components/system-debug-trace/events/conditional-custom.d.ts +10 -0
  79. package/lib/components/system-debug-trace/events/conditional-custom.js.map +1 -0
  80. package/lib/components/system-debug-trace/events/conditional-queue-status.d.ts +11 -0
  81. package/lib/components/system-debug-trace/events/conditional-queue-status.js.map +1 -0
  82. package/lib/components/system-debug-trace/events/constants.js.map +1 -0
  83. package/lib/components/system-debug-trace/events/fallback.js.map +1 -0
  84. package/lib/components/system-debug-trace/events/handoff-success.d.ts +11 -0
  85. package/lib/components/system-debug-trace/events/handoff-success.js.map +1 -0
  86. package/lib/components/system-debug-trace/events/index.js.map +1 -0
  87. package/lib/components/system-debug-trace/events/keyword.js.map +1 -0
  88. package/lib/components/system-debug-trace/events/knowledge-bases-types.js.map +1 -0
  89. package/lib/components/system-debug-trace/events/redirect-flow.js.map +1 -0
  90. package/lib/components/system-debug-trace/events/smart-intent.js.map +1 -0
  91. package/lib/components/system-debug-trace/events/webview-action-triggered.d.ts +10 -0
  92. package/lib/components/system-debug-trace/events/webview-action-triggered.js.map +1 -0
  93. package/lib/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +16 -0
  94. package/lib/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +1 -0
  95. package/lib/components/system-debug-trace/hooks/use-last-label-position.js.map +1 -0
  96. package/lib/components/system-debug-trace/icons/ai-router.d.ts +1 -0
  97. package/lib/components/system-debug-trace/icons/ai-router.js.map +1 -0
  98. package/lib/components/system-debug-trace/icons/ai-specialist.d.ts +1 -0
  99. package/lib/components/system-debug-trace/icons/ai-specialist.js.map +1 -0
  100. package/lib/components/system-debug-trace/icons/arrow-progress.d.ts +2 -0
  101. package/lib/components/system-debug-trace/icons/arrow-progress.js.map +1 -0
  102. package/lib/components/system-debug-trace/icons/brain.d.ts +2 -0
  103. package/lib/components/system-debug-trace/icons/brain.js.map +1 -0
  104. package/lib/components/system-debug-trace/icons/caret-down.d.ts +2 -0
  105. package/lib/components/system-debug-trace/icons/caret-down.js.map +1 -0
  106. package/lib/components/system-debug-trace/icons/caret-up.d.ts +2 -0
  107. package/lib/components/system-debug-trace/icons/caret-up.js.map +1 -0
  108. package/lib/components/system-debug-trace/icons/circle-check.d.ts +2 -0
  109. package/lib/components/system-debug-trace/icons/circle-check.js.map +1 -0
  110. package/lib/components/system-debug-trace/icons/code.d.ts +2 -0
  111. package/lib/components/system-debug-trace/icons/code.js.map +1 -0
  112. package/lib/components/system-debug-trace/icons/file-pdf.d.ts +2 -0
  113. package/lib/components/system-debug-trace/icons/file-pdf.js.map +1 -0
  114. package/lib/components/system-debug-trace/icons/file-word.d.ts +2 -0
  115. package/lib/components/system-debug-trace/icons/file-word.js.map +1 -0
  116. package/lib/components/system-debug-trace/icons/hand.d.ts +2 -0
  117. package/lib/components/system-debug-trace/icons/hand.js.map +1 -0
  118. package/lib/components/system-debug-trace/icons/head-set.d.ts +2 -0
  119. package/lib/components/system-debug-trace/icons/head-set.js.map +1 -0
  120. package/lib/components/system-debug-trace/icons/index.js.map +1 -0
  121. package/lib/components/system-debug-trace/icons/life-ring.d.ts +2 -0
  122. package/lib/components/system-debug-trace/icons/life-ring.js.map +1 -0
  123. package/lib/components/system-debug-trace/icons/link.d.ts +2 -0
  124. package/lib/components/system-debug-trace/icons/link.js.map +1 -0
  125. package/lib/components/system-debug-trace/icons/quote-right.d.ts +2 -0
  126. package/lib/components/system-debug-trace/icons/quote-right.js.map +1 -0
  127. package/lib/components/system-debug-trace/icons/screwdriver-wrench.d.ts +2 -0
  128. package/lib/components/system-debug-trace/icons/screwdriver-wrench.js.map +1 -0
  129. package/lib/components/system-debug-trace/icons/split.d.ts +2 -0
  130. package/lib/components/system-debug-trace/icons/split.js.map +1 -0
  131. package/lib/components/system-debug-trace/icons/wand.d.ts +2 -0
  132. package/lib/components/system-debug-trace/icons/wand.js.map +1 -0
  133. package/lib/components/system-debug-trace/icons/window-restore.d.ts +2 -0
  134. package/lib/components/system-debug-trace/icons/window-restore.js.map +1 -0
  135. package/lib/components/system-debug-trace/index.d.ts +10 -0
  136. package/lib/components/system-debug-trace/index.js.map +1 -0
  137. package/lib/components/system-debug-trace/styles.js.map +1 -0
  138. package/lib/components/system-debug-trace/types.js.map +1 -0
  139. package/lib/components/text.d.ts +8 -0
  140. package/lib/components/text.js.map +1 -0
  141. package/lib/components/title.js.map +1 -0
  142. package/lib/components/video.d.ts +9 -0
  143. package/lib/components/video.js.map +1 -0
  144. package/lib/components/webchat-settings.js.map +1 -0
  145. package/lib/components/whatsapp-button-list.js.map +1 -0
  146. package/lib/components/whatsapp-catalog.js.map +1 -0
  147. package/lib/components/whatsapp-cta-url-button.js.map +1 -0
  148. package/lib/components/whatsapp-interactive-media-carousel.d.ts +31 -0
  149. package/lib/components/whatsapp-interactive-media-carousel.js.map +1 -0
  150. package/lib/components/whatsapp-media-carousel.js.map +1 -0
  151. package/lib/components/whatsapp-product-carousel.js.map +1 -0
  152. package/lib/components/whatsapp-product-list.js.map +1 -0
  153. package/lib/components/whatsapp-product.js.map +1 -0
  154. package/lib/components/whatsapp-request-contact-info.js.map +1 -0
  155. package/lib/components/whatsapp-template/index.js.map +1 -0
  156. package/lib/components/whatsapp-template/types.js.map +1 -0
  157. package/lib/constants.js.map +1 -0
  158. package/lib/contexts.js.map +1 -0
  159. package/lib/debug-system-messages.js.map +1 -0
  160. package/lib/dev-app.d.ts +213 -0
  161. package/lib/dev-app.js.map +1 -0
  162. package/lib/index-types.js.map +1 -0
  163. package/lib/index.js.map +1 -0
  164. package/lib/message-utils.js.map +1 -0
  165. package/lib/msg-to-botonic.js.map +1 -0
  166. package/lib/node-app.js.map +1 -0
  167. package/lib/react-bot.js.map +1 -0
  168. package/lib/shared/styles.js.map +1 -0
  169. package/lib/util/dom.js.map +1 -0
  170. package/lib/util/environment.js.map +1 -0
  171. package/lib/util/error-boundary.d.ts +7 -0
  172. package/lib/util/error-boundary.js.map +1 -0
  173. package/lib/util/functional.js.map +1 -0
  174. package/lib/util/i18n.js.map +1 -0
  175. package/lib/util/index.js.map +1 -0
  176. package/lib/util/logs.js.map +1 -0
  177. package/lib/util/objects.js.map +1 -0
  178. package/lib/util/react.js.map +1 -0
  179. package/lib/util/regexs.js.map +1 -0
  180. package/lib/util/strings.js.map +1 -0
  181. package/lib/util/webchat.js.map +1 -0
  182. package/lib/util/webviews.js.map +1 -0
  183. package/lib/webchat/chat-area/index.d.ts +1 -0
  184. package/lib/webchat/chat-area/index.js.map +1 -0
  185. package/lib/webchat/chat-area/styles.js.map +1 -0
  186. package/lib/webchat/components/common.d.ts +1 -0
  187. package/lib/webchat/components/common.js.map +1 -0
  188. package/lib/webchat/components/conditional-animation.d.ts +1 -0
  189. package/lib/webchat/components/conditional-animation.js.map +1 -0
  190. package/lib/webchat/components/opened-persistent-menu.d.ts +6 -0
  191. package/lib/webchat/components/opened-persistent-menu.js.map +1 -0
  192. package/lib/webchat/constants.js.map +1 -0
  193. package/lib/webchat/context/actions.js.map +1 -0
  194. package/lib/webchat/context/index.js.map +1 -0
  195. package/lib/webchat/context/messages-reducer.js.map +1 -0
  196. package/lib/webchat/context/types.js.map +1 -0
  197. package/lib/webchat/context/use-webchat.js.map +1 -0
  198. package/lib/webchat/context/webchat-reducer.js.map +1 -0
  199. package/lib/webchat/cover-component/index.d.ts +6 -0
  200. package/lib/webchat/cover-component/index.js.map +1 -0
  201. package/lib/webchat/custom-messages/index.js.map +1 -0
  202. package/lib/webchat/custom-messages/rating/icons/face-angry.d.ts +3 -0
  203. package/lib/webchat/custom-messages/rating/icons/face-angry.js.map +1 -0
  204. package/lib/webchat/custom-messages/rating/icons/face-frown.d.ts +3 -0
  205. package/lib/webchat/custom-messages/rating/icons/face-frown.js.map +1 -0
  206. package/lib/webchat/custom-messages/rating/icons/face-grin-beam.d.ts +3 -0
  207. package/lib/webchat/custom-messages/rating/icons/face-grin-beam.js.map +1 -0
  208. package/lib/webchat/custom-messages/rating/icons/face-meh.d.ts +3 -0
  209. package/lib/webchat/custom-messages/rating/icons/face-meh.js.map +1 -0
  210. package/lib/webchat/custom-messages/rating/icons/face-smile.d.ts +3 -0
  211. package/lib/webchat/custom-messages/rating/icons/face-smile.js.map +1 -0
  212. package/lib/webchat/custom-messages/rating/icons/index.js.map +1 -0
  213. package/lib/webchat/custom-messages/rating/icons/star.d.ts +3 -0
  214. package/lib/webchat/custom-messages/rating/icons/star.js.map +1 -0
  215. package/lib/webchat/custom-messages/rating/index.js.map +1 -0
  216. package/lib/webchat/custom-messages/rating/rating-selector.d.ts +11 -0
  217. package/lib/webchat/custom-messages/rating/rating-selector.js.map +1 -0
  218. package/lib/webchat/custom-messages/rating/smileys.d.ts +2 -0
  219. package/lib/webchat/custom-messages/rating/smileys.js.map +1 -0
  220. package/lib/webchat/custom-messages/rating/stars.d.ts +2 -0
  221. package/lib/webchat/custom-messages/rating/stars.js.map +1 -0
  222. package/lib/webchat/custom-messages/rating/styles.js.map +1 -0
  223. package/lib/webchat/custom-messages/rating/types.js.map +1 -0
  224. package/lib/webchat/devices/index.js.map +1 -0
  225. package/lib/webchat/header/default-header.d.ts +1 -0
  226. package/lib/webchat/header/default-header.js.map +1 -0
  227. package/lib/webchat/header/index.js.map +1 -0
  228. package/lib/webchat/header/styles.js.map +1 -0
  229. package/lib/webchat/hooks/index.js.map +1 -0
  230. package/lib/webchat/hooks/use-component-visible.js.map +1 -0
  231. package/lib/webchat/hooks/use-component-will-mount.js.map +1 -0
  232. package/lib/webchat/hooks/use-device-adapter.js.map +1 -0
  233. package/lib/webchat/hooks/use-previous.js.map +1 -0
  234. package/lib/webchat/hooks/use-scroll-to-bottom.js.map +1 -0
  235. package/lib/webchat/hooks/use-scrollbar-controller.js.map +1 -0
  236. package/lib/webchat/hooks/use-typing.js.map +1 -0
  237. package/lib/webchat/hooks/use-virtual-keyboard-detection.js.map +1 -0
  238. package/lib/webchat/hooks/use-webchat-dimensions.js.map +1 -0
  239. package/lib/webchat/hooks/use-webchat-resizer.js.map +1 -0
  240. package/lib/webchat/index-types.js.map +1 -0
  241. package/lib/webchat/index.js.map +1 -0
  242. package/lib/webchat/input-panel/attachment.d.ts +6 -0
  243. package/lib/webchat/input-panel/attachment.js.map +1 -0
  244. package/lib/webchat/input-panel/emoji-picker.d.ts +5 -0
  245. package/lib/webchat/input-panel/emoji-picker.js.map +1 -0
  246. package/lib/webchat/input-panel/index.d.ts +9 -0
  247. package/lib/webchat/input-panel/index.js.map +1 -0
  248. package/lib/webchat/input-panel/opened-emoji-picker.d.ts +6 -0
  249. package/lib/webchat/input-panel/opened-emoji-picker.js.map +1 -0
  250. package/lib/webchat/input-panel/persistent-menu.d.ts +5 -0
  251. package/lib/webchat/input-panel/persistent-menu.js.map +1 -0
  252. package/lib/webchat/input-panel/send-button.d.ts +5 -0
  253. package/lib/webchat/input-panel/send-button.js.map +1 -0
  254. package/lib/webchat/input-panel/styles.js.map +1 -0
  255. package/lib/webchat/input-panel/textarea.d.ts +10 -0
  256. package/lib/webchat/input-panel/textarea.js.map +1 -0
  257. package/lib/webchat/input-panel/typing-network-sender.js.map +1 -0
  258. package/lib/webchat/input-panel/use-typing-chat-event-sender.js.map +1 -0
  259. package/lib/webchat/input-panel/use-typing-session.js.map +1 -0
  260. package/lib/webchat/message-list/index.d.ts +2 -0
  261. package/lib/webchat/message-list/index.js +177 -0
  262. package/lib/webchat/message-list/index.js.map +1 -0
  263. package/lib/webchat/message-list/intro-message.d.ts +1 -0
  264. package/lib/webchat/message-list/intro-message.js.map +1 -0
  265. package/lib/webchat/message-list/scroll-button.js.map +1 -0
  266. package/lib/webchat/message-list/styles.js.map +1 -0
  267. package/lib/webchat/message-list/unread-messages-banner.js.map +1 -0
  268. package/lib/webchat/message-list/use-debounce.js.map +1 -0
  269. package/lib/webchat/message-list/use-notifications.js.map +1 -0
  270. package/lib/webchat/replies/index.d.ts +1 -0
  271. package/lib/webchat/replies/index.js.map +1 -0
  272. package/lib/webchat/replies/styles.js.map +1 -0
  273. package/lib/webchat/session-view.d.ts +1 -0
  274. package/lib/webchat/session-view.js.map +1 -0
  275. package/lib/webchat/styles.js.map +1 -0
  276. package/lib/webchat/theme/default-theme.js.map +1 -0
  277. package/lib/webchat/theme/types.js.map +1 -0
  278. package/lib/webchat/tracking.js.map +1 -0
  279. package/lib/webchat/trigger-button/index.js.map +1 -0
  280. package/lib/webchat/trigger-button/styles.js.map +1 -0
  281. package/lib/webchat/typing-indicator/index.js.map +1 -0
  282. package/lib/webchat/typing-indicator/styles.js.map +1 -0
  283. package/lib/webchat/use-storage-state-hook.js.map +1 -0
  284. package/lib/webchat/utils.js.map +1 -0
  285. package/lib/webchat/webchat-dev.js.map +1 -0
  286. package/lib/webchat/webchat.js.map +1 -0
  287. package/lib/webchat/webview/header.d.ts +1 -0
  288. package/lib/webchat/webview/header.js.map +1 -0
  289. package/lib/webchat/webview/index.d.ts +6 -0
  290. package/lib/webchat/webview/index.js.map +1 -0
  291. package/lib/webchat/webview/styles.js.map +1 -0
  292. package/lib/webchat-app.d.ts +114 -0
  293. package/lib/webchat-app.js.map +1 -0
  294. package/lib/webview-app.js.map +1 -0
  295. package/package.json +11 -14
  296. package/src/components/multichannel/index.ts +7 -6
  297. package/src/webchat/message-list/index.tsx +1 -0
  298. package/src/webchat/webchat.tsx +1 -0
  299. package/lib/esm/app.js.map +0 -1
  300. package/lib/esm/botonic-tester.js.map +0 -1
  301. package/lib/esm/components/audio.d.ts +0 -9
  302. package/lib/esm/components/audio.js.map +0 -1
  303. package/lib/esm/components/button/index.js.map +0 -1
  304. package/lib/esm/components/button/styles.js.map +0 -1
  305. package/lib/esm/components/buttons-disabler.js.map +0 -1
  306. package/lib/esm/components/carousel.d.ts +0 -10
  307. package/lib/esm/components/carousel.js.map +0 -1
  308. package/lib/esm/components/components.js.map +0 -1
  309. package/lib/esm/components/constants.js.map +0 -1
  310. package/lib/esm/components/custom-message.js.map +0 -1
  311. package/lib/esm/components/document.d.ts +0 -9
  312. package/lib/esm/components/document.js.map +0 -1
  313. package/lib/esm/components/element.js.map +0 -1
  314. package/lib/esm/components/handoff.d.ts +0 -1
  315. package/lib/esm/components/handoff.js.map +0 -1
  316. package/lib/esm/components/image.d.ts +0 -9
  317. package/lib/esm/components/image.js.map +0 -1
  318. package/lib/esm/components/index-types.js.map +0 -1
  319. package/lib/esm/components/index.js.map +0 -1
  320. package/lib/esm/components/location.js.map +0 -1
  321. package/lib/esm/components/markdown.js.map +0 -1
  322. package/lib/esm/components/message/index.js.map +0 -1
  323. package/lib/esm/components/message/message-footer.d.ts +0 -8
  324. package/lib/esm/components/message/message-footer.js.map +0 -1
  325. package/lib/esm/components/message/message-image.js.map +0 -1
  326. package/lib/esm/components/message/styles.js.map +0 -1
  327. package/lib/esm/components/message/timestamps.d.ts +0 -13
  328. package/lib/esm/components/message/timestamps.js.map +0 -1
  329. package/lib/esm/components/message-template.js.map +0 -1
  330. package/lib/esm/components/multichannel/facebook/facebook.js.map +0 -1
  331. package/lib/esm/components/multichannel/index-types.js.map +0 -1
  332. package/lib/esm/components/multichannel/index.d.ts +0 -11
  333. package/lib/esm/components/multichannel/index.js +0 -25
  334. package/lib/esm/components/multichannel/index.js.map +0 -1
  335. package/lib/esm/components/multichannel/multichannel-button.d.ts +0 -4
  336. package/lib/esm/components/multichannel/multichannel-button.js.map +0 -1
  337. package/lib/esm/components/multichannel/multichannel-carousel.d.ts +0 -1
  338. package/lib/esm/components/multichannel/multichannel-carousel.js.map +0 -1
  339. package/lib/esm/components/multichannel/multichannel-context.js.map +0 -1
  340. package/lib/esm/components/multichannel/multichannel-reply.d.ts +0 -4
  341. package/lib/esm/components/multichannel/multichannel-reply.js.map +0 -1
  342. package/lib/esm/components/multichannel/multichannel-text.d.ts +0 -1
  343. package/lib/esm/components/multichannel/multichannel-text.js.map +0 -1
  344. package/lib/esm/components/multichannel/multichannel-utils.js.map +0 -1
  345. package/lib/esm/components/multichannel/multichannel.js.map +0 -1
  346. package/lib/esm/components/multichannel/whatsapp/constants.js.map +0 -1
  347. package/lib/esm/components/multichannel/whatsapp/markdown-meta.js.map +0 -1
  348. package/lib/esm/components/pic.js.map +0 -1
  349. package/lib/esm/components/raw.d.ts +0 -9
  350. package/lib/esm/components/raw.js.map +0 -1
  351. package/lib/esm/components/reply.js.map +0 -1
  352. package/lib/esm/components/share-button.js.map +0 -1
  353. package/lib/esm/components/subtitle.js.map +0 -1
  354. package/lib/esm/components/system-debug-trace/debug-message.d.ts +0 -7
  355. package/lib/esm/components/system-debug-trace/debug-message.js.map +0 -1
  356. package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +0 -4
  357. package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.js.map +0 -1
  358. package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +0 -7
  359. package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.js.map +0 -1
  360. package/lib/esm/components/system-debug-trace/events/ai-agent/index.js.map +0 -1
  361. package/lib/esm/components/system-debug-trace/events/ai-agent/parse-tools.js.map +0 -1
  362. package/lib/esm/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +0 -1
  363. package/lib/esm/components/system-debug-trace/events/ai-agent/types.js.map +0 -1
  364. package/lib/esm/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +0 -1
  365. package/lib/esm/components/system-debug-trace/events/ai-agent-router/ai-agent-router.d.ts +0 -4
  366. package/lib/esm/components/system-debug-trace/events/ai-agent-router/ai-agent-router.js.map +0 -1
  367. package/lib/esm/components/system-debug-trace/events/ai-agent-router/index.js.map +0 -1
  368. package/lib/esm/components/system-debug-trace/events/ai-agent-router/types.js.map +0 -1
  369. package/lib/esm/components/system-debug-trace/events/bot-action.js.map +0 -1
  370. package/lib/esm/components/system-debug-trace/events/components/guardrail-item.js.map +0 -1
  371. package/lib/esm/components/system-debug-trace/events/components/index.js.map +0 -1
  372. package/lib/esm/components/system-debug-trace/events/components/sources-section.d.ts +0 -11
  373. package/lib/esm/components/system-debug-trace/events/components/sources-section.js.map +0 -1
  374. package/lib/esm/components/system-debug-trace/events/conditional-channel.js.map +0 -1
  375. package/lib/esm/components/system-debug-trace/events/conditional-country.js.map +0 -1
  376. package/lib/esm/components/system-debug-trace/events/conditional-custom.d.ts +0 -10
  377. package/lib/esm/components/system-debug-trace/events/conditional-custom.js.map +0 -1
  378. package/lib/esm/components/system-debug-trace/events/conditional-queue-status.d.ts +0 -11
  379. package/lib/esm/components/system-debug-trace/events/conditional-queue-status.js.map +0 -1
  380. package/lib/esm/components/system-debug-trace/events/constants.js.map +0 -1
  381. package/lib/esm/components/system-debug-trace/events/fallback.js.map +0 -1
  382. package/lib/esm/components/system-debug-trace/events/handoff-success.d.ts +0 -11
  383. package/lib/esm/components/system-debug-trace/events/handoff-success.js.map +0 -1
  384. package/lib/esm/components/system-debug-trace/events/index.js.map +0 -1
  385. package/lib/esm/components/system-debug-trace/events/keyword.js.map +0 -1
  386. package/lib/esm/components/system-debug-trace/events/knowledge-bases-types.js.map +0 -1
  387. package/lib/esm/components/system-debug-trace/events/redirect-flow.js.map +0 -1
  388. package/lib/esm/components/system-debug-trace/events/smart-intent.js.map +0 -1
  389. package/lib/esm/components/system-debug-trace/events/webview-action-triggered.d.ts +0 -10
  390. package/lib/esm/components/system-debug-trace/events/webview-action-triggered.js.map +0 -1
  391. package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +0 -16
  392. package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +0 -1
  393. package/lib/esm/components/system-debug-trace/hooks/use-last-label-position.js.map +0 -1
  394. package/lib/esm/components/system-debug-trace/icons/ai-router.d.ts +0 -1
  395. package/lib/esm/components/system-debug-trace/icons/ai-router.js.map +0 -1
  396. package/lib/esm/components/system-debug-trace/icons/ai-specialist.d.ts +0 -1
  397. package/lib/esm/components/system-debug-trace/icons/ai-specialist.js.map +0 -1
  398. package/lib/esm/components/system-debug-trace/icons/arrow-progress.d.ts +0 -2
  399. package/lib/esm/components/system-debug-trace/icons/arrow-progress.js.map +0 -1
  400. package/lib/esm/components/system-debug-trace/icons/brain.d.ts +0 -2
  401. package/lib/esm/components/system-debug-trace/icons/brain.js.map +0 -1
  402. package/lib/esm/components/system-debug-trace/icons/caret-down.d.ts +0 -2
  403. package/lib/esm/components/system-debug-trace/icons/caret-down.js.map +0 -1
  404. package/lib/esm/components/system-debug-trace/icons/caret-up.d.ts +0 -2
  405. package/lib/esm/components/system-debug-trace/icons/caret-up.js.map +0 -1
  406. package/lib/esm/components/system-debug-trace/icons/circle-check.d.ts +0 -2
  407. package/lib/esm/components/system-debug-trace/icons/circle-check.js.map +0 -1
  408. package/lib/esm/components/system-debug-trace/icons/code.d.ts +0 -2
  409. package/lib/esm/components/system-debug-trace/icons/code.js.map +0 -1
  410. package/lib/esm/components/system-debug-trace/icons/file-pdf.d.ts +0 -2
  411. package/lib/esm/components/system-debug-trace/icons/file-pdf.js.map +0 -1
  412. package/lib/esm/components/system-debug-trace/icons/file-word.d.ts +0 -2
  413. package/lib/esm/components/system-debug-trace/icons/file-word.js.map +0 -1
  414. package/lib/esm/components/system-debug-trace/icons/hand.d.ts +0 -2
  415. package/lib/esm/components/system-debug-trace/icons/hand.js.map +0 -1
  416. package/lib/esm/components/system-debug-trace/icons/head-set.d.ts +0 -2
  417. package/lib/esm/components/system-debug-trace/icons/head-set.js.map +0 -1
  418. package/lib/esm/components/system-debug-trace/icons/index.js.map +0 -1
  419. package/lib/esm/components/system-debug-trace/icons/life-ring.d.ts +0 -2
  420. package/lib/esm/components/system-debug-trace/icons/life-ring.js.map +0 -1
  421. package/lib/esm/components/system-debug-trace/icons/link.d.ts +0 -2
  422. package/lib/esm/components/system-debug-trace/icons/link.js.map +0 -1
  423. package/lib/esm/components/system-debug-trace/icons/quote-right.d.ts +0 -2
  424. package/lib/esm/components/system-debug-trace/icons/quote-right.js.map +0 -1
  425. package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.d.ts +0 -2
  426. package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.js.map +0 -1
  427. package/lib/esm/components/system-debug-trace/icons/split.d.ts +0 -2
  428. package/lib/esm/components/system-debug-trace/icons/split.js.map +0 -1
  429. package/lib/esm/components/system-debug-trace/icons/wand.d.ts +0 -2
  430. package/lib/esm/components/system-debug-trace/icons/wand.js.map +0 -1
  431. package/lib/esm/components/system-debug-trace/icons/window-restore.d.ts +0 -2
  432. package/lib/esm/components/system-debug-trace/icons/window-restore.js.map +0 -1
  433. package/lib/esm/components/system-debug-trace/index.d.ts +0 -10
  434. package/lib/esm/components/system-debug-trace/index.js.map +0 -1
  435. package/lib/esm/components/system-debug-trace/styles.js.map +0 -1
  436. package/lib/esm/components/system-debug-trace/types.js.map +0 -1
  437. package/lib/esm/components/text.d.ts +0 -8
  438. package/lib/esm/components/text.js.map +0 -1
  439. package/lib/esm/components/title.js.map +0 -1
  440. package/lib/esm/components/video.d.ts +0 -9
  441. package/lib/esm/components/video.js.map +0 -1
  442. package/lib/esm/components/webchat-settings.js.map +0 -1
  443. package/lib/esm/components/whatsapp-button-list.js.map +0 -1
  444. package/lib/esm/components/whatsapp-catalog.js.map +0 -1
  445. package/lib/esm/components/whatsapp-cta-url-button.js.map +0 -1
  446. package/lib/esm/components/whatsapp-interactive-media-carousel.d.ts +0 -31
  447. package/lib/esm/components/whatsapp-interactive-media-carousel.js.map +0 -1
  448. package/lib/esm/components/whatsapp-media-carousel.js.map +0 -1
  449. package/lib/esm/components/whatsapp-product-carousel.js.map +0 -1
  450. package/lib/esm/components/whatsapp-product-list.js.map +0 -1
  451. package/lib/esm/components/whatsapp-product.js.map +0 -1
  452. package/lib/esm/components/whatsapp-request-contact-info.js.map +0 -1
  453. package/lib/esm/components/whatsapp-template/index.js.map +0 -1
  454. package/lib/esm/components/whatsapp-template/types.js.map +0 -1
  455. package/lib/esm/constants.js.map +0 -1
  456. package/lib/esm/contexts.js.map +0 -1
  457. package/lib/esm/debug-system-messages.js.map +0 -1
  458. package/lib/esm/dev-app.d.ts +0 -213
  459. package/lib/esm/dev-app.js.map +0 -1
  460. package/lib/esm/index-types.js.map +0 -1
  461. package/lib/esm/index.js.map +0 -1
  462. package/lib/esm/message-utils.js.map +0 -1
  463. package/lib/esm/msg-to-botonic.js.map +0 -1
  464. package/lib/esm/node-app.js.map +0 -1
  465. package/lib/esm/package.json +0 -3
  466. package/lib/esm/react-bot.js.map +0 -1
  467. package/lib/esm/shared/styles.js.map +0 -1
  468. package/lib/esm/util/dom.js.map +0 -1
  469. package/lib/esm/util/environment.js.map +0 -1
  470. package/lib/esm/util/error-boundary.d.ts +0 -7
  471. package/lib/esm/util/error-boundary.js.map +0 -1
  472. package/lib/esm/util/functional.js.map +0 -1
  473. package/lib/esm/util/i18n.js.map +0 -1
  474. package/lib/esm/util/index.js.map +0 -1
  475. package/lib/esm/util/logs.js.map +0 -1
  476. package/lib/esm/util/objects.js.map +0 -1
  477. package/lib/esm/util/react.js.map +0 -1
  478. package/lib/esm/util/regexs.js.map +0 -1
  479. package/lib/esm/util/strings.js.map +0 -1
  480. package/lib/esm/util/webchat.js.map +0 -1
  481. package/lib/esm/util/webviews.js.map +0 -1
  482. package/lib/esm/webchat/chat-area/index.d.ts +0 -1
  483. package/lib/esm/webchat/chat-area/index.js.map +0 -1
  484. package/lib/esm/webchat/chat-area/styles.js.map +0 -1
  485. package/lib/esm/webchat/components/common.d.ts +0 -1
  486. package/lib/esm/webchat/components/common.js.map +0 -1
  487. package/lib/esm/webchat/components/conditional-animation.d.ts +0 -1
  488. package/lib/esm/webchat/components/conditional-animation.js.map +0 -1
  489. package/lib/esm/webchat/components/opened-persistent-menu.d.ts +0 -6
  490. package/lib/esm/webchat/components/opened-persistent-menu.js.map +0 -1
  491. package/lib/esm/webchat/constants.js.map +0 -1
  492. package/lib/esm/webchat/context/actions.js.map +0 -1
  493. package/lib/esm/webchat/context/index.js.map +0 -1
  494. package/lib/esm/webchat/context/messages-reducer.js.map +0 -1
  495. package/lib/esm/webchat/context/types.js.map +0 -1
  496. package/lib/esm/webchat/context/use-webchat.js.map +0 -1
  497. package/lib/esm/webchat/context/webchat-reducer.js.map +0 -1
  498. package/lib/esm/webchat/cover-component/index.d.ts +0 -6
  499. package/lib/esm/webchat/cover-component/index.js.map +0 -1
  500. package/lib/esm/webchat/custom-messages/index.js.map +0 -1
  501. package/lib/esm/webchat/custom-messages/rating/icons/face-angry.d.ts +0 -3
  502. package/lib/esm/webchat/custom-messages/rating/icons/face-angry.js.map +0 -1
  503. package/lib/esm/webchat/custom-messages/rating/icons/face-frown.d.ts +0 -3
  504. package/lib/esm/webchat/custom-messages/rating/icons/face-frown.js.map +0 -1
  505. package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.d.ts +0 -3
  506. package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.js.map +0 -1
  507. package/lib/esm/webchat/custom-messages/rating/icons/face-meh.d.ts +0 -3
  508. package/lib/esm/webchat/custom-messages/rating/icons/face-meh.js.map +0 -1
  509. package/lib/esm/webchat/custom-messages/rating/icons/face-smile.d.ts +0 -3
  510. package/lib/esm/webchat/custom-messages/rating/icons/face-smile.js.map +0 -1
  511. package/lib/esm/webchat/custom-messages/rating/icons/index.js.map +0 -1
  512. package/lib/esm/webchat/custom-messages/rating/icons/star.d.ts +0 -3
  513. package/lib/esm/webchat/custom-messages/rating/icons/star.js.map +0 -1
  514. package/lib/esm/webchat/custom-messages/rating/index.js.map +0 -1
  515. package/lib/esm/webchat/custom-messages/rating/rating-selector.d.ts +0 -11
  516. package/lib/esm/webchat/custom-messages/rating/rating-selector.js.map +0 -1
  517. package/lib/esm/webchat/custom-messages/rating/smileys.d.ts +0 -2
  518. package/lib/esm/webchat/custom-messages/rating/smileys.js.map +0 -1
  519. package/lib/esm/webchat/custom-messages/rating/stars.d.ts +0 -2
  520. package/lib/esm/webchat/custom-messages/rating/stars.js.map +0 -1
  521. package/lib/esm/webchat/custom-messages/rating/styles.js.map +0 -1
  522. package/lib/esm/webchat/custom-messages/rating/types.js.map +0 -1
  523. package/lib/esm/webchat/devices/index.js.map +0 -1
  524. package/lib/esm/webchat/header/default-header.d.ts +0 -1
  525. package/lib/esm/webchat/header/default-header.js.map +0 -1
  526. package/lib/esm/webchat/header/index.js.map +0 -1
  527. package/lib/esm/webchat/header/styles.js.map +0 -1
  528. package/lib/esm/webchat/hooks/index.js.map +0 -1
  529. package/lib/esm/webchat/hooks/use-component-visible.js.map +0 -1
  530. package/lib/esm/webchat/hooks/use-component-will-mount.js.map +0 -1
  531. package/lib/esm/webchat/hooks/use-device-adapter.js.map +0 -1
  532. package/lib/esm/webchat/hooks/use-previous.js.map +0 -1
  533. package/lib/esm/webchat/hooks/use-scroll-to-bottom.js.map +0 -1
  534. package/lib/esm/webchat/hooks/use-scrollbar-controller.js.map +0 -1
  535. package/lib/esm/webchat/hooks/use-typing.js.map +0 -1
  536. package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js.map +0 -1
  537. package/lib/esm/webchat/hooks/use-webchat-dimensions.js.map +0 -1
  538. package/lib/esm/webchat/hooks/use-webchat-resizer.js.map +0 -1
  539. package/lib/esm/webchat/index-types.js.map +0 -1
  540. package/lib/esm/webchat/index.js.map +0 -1
  541. package/lib/esm/webchat/input-panel/attachment.d.ts +0 -6
  542. package/lib/esm/webchat/input-panel/attachment.js.map +0 -1
  543. package/lib/esm/webchat/input-panel/emoji-picker.d.ts +0 -5
  544. package/lib/esm/webchat/input-panel/emoji-picker.js.map +0 -1
  545. package/lib/esm/webchat/input-panel/index.d.ts +0 -9
  546. package/lib/esm/webchat/input-panel/index.js.map +0 -1
  547. package/lib/esm/webchat/input-panel/opened-emoji-picker.d.ts +0 -6
  548. package/lib/esm/webchat/input-panel/opened-emoji-picker.js.map +0 -1
  549. package/lib/esm/webchat/input-panel/persistent-menu.d.ts +0 -5
  550. package/lib/esm/webchat/input-panel/persistent-menu.js.map +0 -1
  551. package/lib/esm/webchat/input-panel/send-button.d.ts +0 -5
  552. package/lib/esm/webchat/input-panel/send-button.js.map +0 -1
  553. package/lib/esm/webchat/input-panel/styles.js.map +0 -1
  554. package/lib/esm/webchat/input-panel/textarea.d.ts +0 -10
  555. package/lib/esm/webchat/input-panel/textarea.js.map +0 -1
  556. package/lib/esm/webchat/input-panel/typing-network-sender.js.map +0 -1
  557. package/lib/esm/webchat/input-panel/use-typing-chat-event-sender.js.map +0 -1
  558. package/lib/esm/webchat/input-panel/use-typing-session.js.map +0 -1
  559. package/lib/esm/webchat/message-list/index.d.ts +0 -1
  560. package/lib/esm/webchat/message-list/index.js +0 -176
  561. package/lib/esm/webchat/message-list/index.js.map +0 -1
  562. package/lib/esm/webchat/message-list/intro-message.d.ts +0 -1
  563. package/lib/esm/webchat/message-list/intro-message.js.map +0 -1
  564. package/lib/esm/webchat/message-list/scroll-button.js.map +0 -1
  565. package/lib/esm/webchat/message-list/styles.js.map +0 -1
  566. package/lib/esm/webchat/message-list/unread-messages-banner.js.map +0 -1
  567. package/lib/esm/webchat/message-list/use-debounce.js.map +0 -1
  568. package/lib/esm/webchat/message-list/use-notifications.js.map +0 -1
  569. package/lib/esm/webchat/replies/index.d.ts +0 -1
  570. package/lib/esm/webchat/replies/index.js.map +0 -1
  571. package/lib/esm/webchat/replies/styles.js.map +0 -1
  572. package/lib/esm/webchat/session-view.d.ts +0 -1
  573. package/lib/esm/webchat/session-view.js.map +0 -1
  574. package/lib/esm/webchat/styles.js.map +0 -1
  575. package/lib/esm/webchat/theme/default-theme.js.map +0 -1
  576. package/lib/esm/webchat/theme/types.js.map +0 -1
  577. package/lib/esm/webchat/tracking.js.map +0 -1
  578. package/lib/esm/webchat/trigger-button/index.js.map +0 -1
  579. package/lib/esm/webchat/trigger-button/styles.js.map +0 -1
  580. package/lib/esm/webchat/typing-indicator/index.js.map +0 -1
  581. package/lib/esm/webchat/typing-indicator/styles.js.map +0 -1
  582. package/lib/esm/webchat/use-storage-state-hook.js.map +0 -1
  583. package/lib/esm/webchat/utils.js.map +0 -1
  584. package/lib/esm/webchat/webchat-dev.js.map +0 -1
  585. package/lib/esm/webchat/webchat.js.map +0 -1
  586. package/lib/esm/webchat/webview/header.d.ts +0 -1
  587. package/lib/esm/webchat/webview/header.js.map +0 -1
  588. package/lib/esm/webchat/webview/index.d.ts +0 -6
  589. package/lib/esm/webchat/webview/index.js.map +0 -1
  590. package/lib/esm/webchat/webview/styles.js.map +0 -1
  591. package/lib/esm/webchat-app.d.ts +0 -114
  592. package/lib/esm/webchat-app.js.map +0 -1
  593. package/lib/esm/webview-app.js.map +0 -1
  594. /package/lib/{esm/app.d.ts → app.d.ts} +0 -0
  595. /package/lib/{esm/app.js → app.js} +0 -0
  596. /package/lib/{esm/assets → assets}/arrow-down.svg +0 -0
  597. /package/lib/{esm/assets → assets}/arrow-scroll-down.svg +0 -0
  598. /package/lib/{esm/assets → assets}/attachment-icon.svg +0 -0
  599. /package/lib/{esm/assets → assets}/audio.svg +0 -0
  600. /package/lib/{esm/assets → assets}/botonic_react_logo100x100.png +0 -0
  601. /package/lib/{esm/assets → assets}/document.svg +0 -0
  602. /package/lib/{esm/assets → assets}/emojiButton.svg +0 -0
  603. /package/lib/{esm/assets → assets}/image.svg +0 -0
  604. /package/lib/{esm/assets → assets}/leftArrow.svg +0 -0
  605. /package/lib/{esm/assets → assets}/menuButton.svg +0 -0
  606. /package/lib/{esm/assets → assets}/rightArrow.svg +0 -0
  607. /package/lib/{esm/assets → assets}/send-button.svg +0 -0
  608. /package/lib/{esm/assets → assets}/thumbs-down.svg +0 -0
  609. /package/lib/{esm/assets → assets}/thumbs-up.svg +0 -0
  610. /package/lib/{esm/assets → assets}/types.d.ts +0 -0
  611. /package/lib/{esm/assets → assets}/url-icon.png +0 -0
  612. /package/lib/{esm/assets → assets}/video.svg +0 -0
  613. /package/lib/{esm/botonic-tester.d.ts → botonic-tester.d.ts} +0 -0
  614. /package/lib/{esm/botonic-tester.js → botonic-tester.js} +0 -0
  615. /package/lib/{esm/components → components}/audio.js +0 -0
  616. /package/lib/{esm/components → components}/button/index.d.ts +0 -0
  617. /package/lib/{esm/components → components}/button/index.js +0 -0
  618. /package/lib/{esm/components → components}/button/styles.d.ts +0 -0
  619. /package/lib/{esm/components → components}/button/styles.js +0 -0
  620. /package/lib/{esm/components → components}/buttons-disabler.d.ts +0 -0
  621. /package/lib/{esm/components → components}/buttons-disabler.js +0 -0
  622. /package/lib/{esm/components → components}/carousel.js +0 -0
  623. /package/lib/{esm/components → components}/components.d.ts +0 -0
  624. /package/lib/{esm/components → components}/components.js +0 -0
  625. /package/lib/{esm/components → components}/constants.d.ts +0 -0
  626. /package/lib/{esm/components → components}/constants.js +0 -0
  627. /package/lib/{esm/components → components}/custom-message.d.ts +0 -0
  628. /package/lib/{esm/components → components}/custom-message.js +0 -0
  629. /package/lib/{esm/components → components}/document.js +0 -0
  630. /package/lib/{esm/components → components}/element.d.ts +0 -0
  631. /package/lib/{esm/components → components}/element.js +0 -0
  632. /package/lib/{esm/components → components}/handoff.js +0 -0
  633. /package/lib/{esm/components → components}/image.js +0 -0
  634. /package/lib/{esm/components → components}/index-types.d.ts +0 -0
  635. /package/lib/{esm/components → components}/index-types.js +0 -0
  636. /package/lib/{esm/components → components}/index.d.ts +0 -0
  637. /package/lib/{esm/components → components}/index.js +0 -0
  638. /package/lib/{esm/components → components}/location.d.ts +0 -0
  639. /package/lib/{esm/components → components}/location.js +0 -0
  640. /package/lib/{esm/components → components}/markdown.d.ts +0 -0
  641. /package/lib/{esm/components → components}/markdown.js +0 -0
  642. /package/lib/{esm/components → components}/message/index.d.ts +0 -0
  643. /package/lib/{esm/components → components}/message/index.js +0 -0
  644. /package/lib/{esm/components → components}/message/message-footer.js +0 -0
  645. /package/lib/{esm/components → components}/message/message-image.d.ts +0 -0
  646. /package/lib/{esm/components → components}/message/message-image.js +0 -0
  647. /package/lib/{esm/components → components}/message/styles.d.ts +0 -0
  648. /package/lib/{esm/components → components}/message/styles.js +0 -0
  649. /package/lib/{esm/components → components}/message/timestamps.js +0 -0
  650. /package/lib/{esm/components → components}/message-template.d.ts +0 -0
  651. /package/lib/{esm/components → components}/message-template.js +0 -0
  652. /package/lib/{esm/components → components}/multichannel/facebook/facebook.d.ts +0 -0
  653. /package/lib/{esm/components → components}/multichannel/facebook/facebook.js +0 -0
  654. /package/lib/{esm/components → components}/multichannel/index-types.d.ts +0 -0
  655. /package/lib/{esm/components → components}/multichannel/index-types.js +0 -0
  656. /package/lib/{esm/components → components}/multichannel/multichannel-button.js +0 -0
  657. /package/lib/{esm/components → components}/multichannel/multichannel-carousel.js +0 -0
  658. /package/lib/{esm/components → components}/multichannel/multichannel-context.d.ts +0 -0
  659. /package/lib/{esm/components → components}/multichannel/multichannel-context.js +0 -0
  660. /package/lib/{esm/components → components}/multichannel/multichannel-reply.js +0 -0
  661. /package/lib/{esm/components → components}/multichannel/multichannel-text.js +0 -0
  662. /package/lib/{esm/components → components}/multichannel/multichannel-utils.d.ts +0 -0
  663. /package/lib/{esm/components → components}/multichannel/multichannel-utils.js +0 -0
  664. /package/lib/{esm/components → components}/multichannel/multichannel.d.ts +0 -0
  665. /package/lib/{esm/components → components}/multichannel/multichannel.js +0 -0
  666. /package/lib/{esm/components → components}/multichannel/whatsapp/constants.d.ts +0 -0
  667. /package/lib/{esm/components → components}/multichannel/whatsapp/constants.js +0 -0
  668. /package/lib/{esm/components → components}/multichannel/whatsapp/markdown-meta.d.ts +0 -0
  669. /package/lib/{esm/components → components}/multichannel/whatsapp/markdown-meta.js +0 -0
  670. /package/lib/{esm/components → components}/pic.d.ts +0 -0
  671. /package/lib/{esm/components → components}/pic.js +0 -0
  672. /package/lib/{esm/components → components}/raw.js +0 -0
  673. /package/lib/{esm/components → components}/reply.d.ts +0 -0
  674. /package/lib/{esm/components → components}/reply.js +0 -0
  675. /package/lib/{esm/components → components}/share-button.d.ts +0 -0
  676. /package/lib/{esm/components → components}/share-button.js +0 -0
  677. /package/lib/{esm/components → components}/subtitle.d.ts +0 -0
  678. /package/lib/{esm/components → components}/subtitle.js +0 -0
  679. /package/lib/{esm/components → components}/system-debug-trace/debug-message.js +0 -0
  680. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/ai-agent.js +0 -0
  681. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/executed-tools.js +0 -0
  682. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/index.d.ts +0 -0
  683. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/index.js +0 -0
  684. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/parse-tools.d.ts +0 -0
  685. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/parse-tools.js +0 -0
  686. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.d.ts +0 -0
  687. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js +0 -0
  688. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/types.d.ts +0 -0
  689. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/types.js +0 -0
  690. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.d.ts +0 -0
  691. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js +0 -0
  692. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/ai-agent-router.js +0 -0
  693. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/index.d.ts +0 -0
  694. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/index.js +0 -0
  695. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/types.d.ts +0 -0
  696. /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/types.js +0 -0
  697. /package/lib/{esm/components → components}/system-debug-trace/events/bot-action.d.ts +0 -0
  698. /package/lib/{esm/components → components}/system-debug-trace/events/bot-action.js +0 -0
  699. /package/lib/{esm/components → components}/system-debug-trace/events/components/guardrail-item.d.ts +0 -0
  700. /package/lib/{esm/components → components}/system-debug-trace/events/components/guardrail-item.js +0 -0
  701. /package/lib/{esm/components → components}/system-debug-trace/events/components/index.d.ts +0 -0
  702. /package/lib/{esm/components → components}/system-debug-trace/events/components/index.js +0 -0
  703. /package/lib/{esm/components → components}/system-debug-trace/events/components/sources-section.js +0 -0
  704. /package/lib/{esm/components → components}/system-debug-trace/events/conditional-channel.d.ts +0 -0
  705. /package/lib/{esm/components → components}/system-debug-trace/events/conditional-channel.js +0 -0
  706. /package/lib/{esm/components → components}/system-debug-trace/events/conditional-country.d.ts +0 -0
  707. /package/lib/{esm/components → components}/system-debug-trace/events/conditional-country.js +0 -0
  708. /package/lib/{esm/components → components}/system-debug-trace/events/conditional-custom.js +0 -0
  709. /package/lib/{esm/components → components}/system-debug-trace/events/conditional-queue-status.js +0 -0
  710. /package/lib/{esm/components → components}/system-debug-trace/events/constants.d.ts +0 -0
  711. /package/lib/{esm/components → components}/system-debug-trace/events/constants.js +0 -0
  712. /package/lib/{esm/components → components}/system-debug-trace/events/fallback.d.ts +0 -0
  713. /package/lib/{esm/components → components}/system-debug-trace/events/fallback.js +0 -0
  714. /package/lib/{esm/components → components}/system-debug-trace/events/handoff-success.js +0 -0
  715. /package/lib/{esm/components → components}/system-debug-trace/events/index.d.ts +0 -0
  716. /package/lib/{esm/components → components}/system-debug-trace/events/index.js +0 -0
  717. /package/lib/{esm/components → components}/system-debug-trace/events/keyword.d.ts +0 -0
  718. /package/lib/{esm/components → components}/system-debug-trace/events/keyword.js +0 -0
  719. /package/lib/{esm/components → components}/system-debug-trace/events/knowledge-bases-types.d.ts +0 -0
  720. /package/lib/{esm/components → components}/system-debug-trace/events/knowledge-bases-types.js +0 -0
  721. /package/lib/{esm/components → components}/system-debug-trace/events/redirect-flow.d.ts +0 -0
  722. /package/lib/{esm/components → components}/system-debug-trace/events/redirect-flow.js +0 -0
  723. /package/lib/{esm/components → components}/system-debug-trace/events/smart-intent.d.ts +0 -0
  724. /package/lib/{esm/components → components}/system-debug-trace/events/smart-intent.js +0 -0
  725. /package/lib/{esm/components → components}/system-debug-trace/events/webview-action-triggered.js +0 -0
  726. /package/lib/{esm/components → components}/system-debug-trace/hooks/use-knowledge-base-info.js +0 -0
  727. /package/lib/{esm/components → components}/system-debug-trace/hooks/use-last-label-position.d.ts +0 -0
  728. /package/lib/{esm/components → components}/system-debug-trace/hooks/use-last-label-position.js +0 -0
  729. /package/lib/{esm/components → components}/system-debug-trace/icons/ai-router.js +0 -0
  730. /package/lib/{esm/components → components}/system-debug-trace/icons/ai-specialist.js +0 -0
  731. /package/lib/{esm/components → components}/system-debug-trace/icons/arrow-progress.js +0 -0
  732. /package/lib/{esm/components → components}/system-debug-trace/icons/brain.js +0 -0
  733. /package/lib/{esm/components → components}/system-debug-trace/icons/caret-down.js +0 -0
  734. /package/lib/{esm/components → components}/system-debug-trace/icons/caret-up.js +0 -0
  735. /package/lib/{esm/components → components}/system-debug-trace/icons/circle-check.js +0 -0
  736. /package/lib/{esm/components → components}/system-debug-trace/icons/code.js +0 -0
  737. /package/lib/{esm/components → components}/system-debug-trace/icons/file-pdf.js +0 -0
  738. /package/lib/{esm/components → components}/system-debug-trace/icons/file-word.js +0 -0
  739. /package/lib/{esm/components → components}/system-debug-trace/icons/hand.js +0 -0
  740. /package/lib/{esm/components → components}/system-debug-trace/icons/head-set.js +0 -0
  741. /package/lib/{esm/components → components}/system-debug-trace/icons/index.d.ts +0 -0
  742. /package/lib/{esm/components → components}/system-debug-trace/icons/index.js +0 -0
  743. /package/lib/{esm/components → components}/system-debug-trace/icons/life-ring.js +0 -0
  744. /package/lib/{esm/components → components}/system-debug-trace/icons/link.js +0 -0
  745. /package/lib/{esm/components → components}/system-debug-trace/icons/quote-right.js +0 -0
  746. /package/lib/{esm/components → components}/system-debug-trace/icons/screwdriver-wrench.js +0 -0
  747. /package/lib/{esm/components → components}/system-debug-trace/icons/split.js +0 -0
  748. /package/lib/{esm/components → components}/system-debug-trace/icons/wand.js +0 -0
  749. /package/lib/{esm/components → components}/system-debug-trace/icons/window-restore.js +0 -0
  750. /package/lib/{esm/components → components}/system-debug-trace/index.js +0 -0
  751. /package/lib/{esm/components → components}/system-debug-trace/styles.d.ts +0 -0
  752. /package/lib/{esm/components → components}/system-debug-trace/styles.js +0 -0
  753. /package/lib/{esm/components → components}/system-debug-trace/types.d.ts +0 -0
  754. /package/lib/{esm/components → components}/system-debug-trace/types.js +0 -0
  755. /package/lib/{esm/components → components}/text.js +0 -0
  756. /package/lib/{esm/components → components}/title.d.ts +0 -0
  757. /package/lib/{esm/components → components}/title.js +0 -0
  758. /package/lib/{esm/components → components}/video.js +0 -0
  759. /package/lib/{esm/components → components}/webchat-settings.d.ts +0 -0
  760. /package/lib/{esm/components → components}/webchat-settings.js +0 -0
  761. /package/lib/{esm/components → components}/whatsapp-button-list.d.ts +0 -0
  762. /package/lib/{esm/components → components}/whatsapp-button-list.js +0 -0
  763. /package/lib/{esm/components → components}/whatsapp-catalog.d.ts +0 -0
  764. /package/lib/{esm/components → components}/whatsapp-catalog.js +0 -0
  765. /package/lib/{esm/components → components}/whatsapp-cta-url-button.d.ts +0 -0
  766. /package/lib/{esm/components → components}/whatsapp-cta-url-button.js +0 -0
  767. /package/lib/{esm/components → components}/whatsapp-interactive-media-carousel.js +0 -0
  768. /package/lib/{esm/components → components}/whatsapp-media-carousel.d.ts +0 -0
  769. /package/lib/{esm/components → components}/whatsapp-media-carousel.js +0 -0
  770. /package/lib/{esm/components → components}/whatsapp-product-carousel.d.ts +0 -0
  771. /package/lib/{esm/components → components}/whatsapp-product-carousel.js +0 -0
  772. /package/lib/{esm/components → components}/whatsapp-product-list.d.ts +0 -0
  773. /package/lib/{esm/components → components}/whatsapp-product-list.js +0 -0
  774. /package/lib/{esm/components → components}/whatsapp-product.d.ts +0 -0
  775. /package/lib/{esm/components → components}/whatsapp-product.js +0 -0
  776. /package/lib/{esm/components → components}/whatsapp-request-contact-info.d.ts +0 -0
  777. /package/lib/{esm/components → components}/whatsapp-request-contact-info.js +0 -0
  778. /package/lib/{esm/components → components}/whatsapp-template/index.d.ts +0 -0
  779. /package/lib/{esm/components → components}/whatsapp-template/index.js +0 -0
  780. /package/lib/{esm/components → components}/whatsapp-template/types.d.ts +0 -0
  781. /package/lib/{esm/components → components}/whatsapp-template/types.js +0 -0
  782. /package/lib/{esm/constants.d.ts → constants.d.ts} +0 -0
  783. /package/lib/{esm/constants.js → constants.js} +0 -0
  784. /package/lib/{esm/contexts.d.ts → contexts.d.ts} +0 -0
  785. /package/lib/{esm/contexts.js → contexts.js} +0 -0
  786. /package/lib/{esm/debug-system-messages.d.ts → debug-system-messages.d.ts} +0 -0
  787. /package/lib/{esm/debug-system-messages.js → debug-system-messages.js} +0 -0
  788. /package/lib/{esm/dev-app.js → dev-app.js} +0 -0
  789. /package/lib/{esm/index-types.d.ts → index-types.d.ts} +0 -0
  790. /package/lib/{esm/index-types.js → index-types.js} +0 -0
  791. /package/lib/{esm/index.d.ts → index.d.ts} +0 -0
  792. /package/lib/{esm/index.js → index.js} +0 -0
  793. /package/lib/{esm/message-utils.d.ts → message-utils.d.ts} +0 -0
  794. /package/lib/{esm/message-utils.js → message-utils.js} +0 -0
  795. /package/lib/{esm/msg-to-botonic.d.ts → msg-to-botonic.d.ts} +0 -0
  796. /package/lib/{esm/msg-to-botonic.js → msg-to-botonic.js} +0 -0
  797. /package/lib/{esm/node-app.d.ts → node-app.d.ts} +0 -0
  798. /package/lib/{esm/node-app.js → node-app.js} +0 -0
  799. /package/lib/{esm/react-bot.d.ts → react-bot.d.ts} +0 -0
  800. /package/lib/{esm/react-bot.js → react-bot.js} +0 -0
  801. /package/lib/{esm/shared → shared}/styles.d.ts +0 -0
  802. /package/lib/{esm/shared → shared}/styles.js +0 -0
  803. /package/lib/{esm/util → util}/dom.d.ts +0 -0
  804. /package/lib/{esm/util → util}/dom.js +0 -0
  805. /package/lib/{esm/util → util}/environment.d.ts +0 -0
  806. /package/lib/{esm/util → util}/environment.js +0 -0
  807. /package/lib/{esm/util → util}/error-boundary.js +0 -0
  808. /package/lib/{esm/util → util}/functional.d.ts +0 -0
  809. /package/lib/{esm/util → util}/functional.js +0 -0
  810. /package/lib/{esm/util → util}/i18n.d.ts +0 -0
  811. /package/lib/{esm/util → util}/i18n.js +0 -0
  812. /package/lib/{esm/util → util}/index.d.ts +0 -0
  813. /package/lib/{esm/util → util}/index.js +0 -0
  814. /package/lib/{esm/util → util}/logs.d.ts +0 -0
  815. /package/lib/{esm/util → util}/logs.js +0 -0
  816. /package/lib/{esm/util → util}/objects.d.ts +0 -0
  817. /package/lib/{esm/util → util}/objects.js +0 -0
  818. /package/lib/{esm/util → util}/react.d.ts +0 -0
  819. /package/lib/{esm/util → util}/react.js +0 -0
  820. /package/lib/{esm/util → util}/regexs.d.ts +0 -0
  821. /package/lib/{esm/util → util}/regexs.js +0 -0
  822. /package/lib/{esm/util → util}/strings.d.ts +0 -0
  823. /package/lib/{esm/util → util}/strings.js +0 -0
  824. /package/lib/{esm/util → util}/webchat.d.ts +0 -0
  825. /package/lib/{esm/util → util}/webchat.js +0 -0
  826. /package/lib/{esm/util → util}/webviews.d.ts +0 -0
  827. /package/lib/{esm/util → util}/webviews.js +0 -0
  828. /package/lib/{esm/webchat → webchat}/chat-area/index.js +0 -0
  829. /package/lib/{esm/webchat → webchat}/chat-area/styles.d.ts +0 -0
  830. /package/lib/{esm/webchat → webchat}/chat-area/styles.js +0 -0
  831. /package/lib/{esm/webchat → webchat}/components/common.js +0 -0
  832. /package/lib/{esm/webchat → webchat}/components/conditional-animation.js +0 -0
  833. /package/lib/{esm/webchat → webchat}/components/opened-persistent-menu.js +0 -0
  834. /package/lib/{esm/webchat → webchat}/constants.d.ts +0 -0
  835. /package/lib/{esm/webchat → webchat}/constants.js +0 -0
  836. /package/lib/{esm/webchat → webchat}/context/actions.d.ts +0 -0
  837. /package/lib/{esm/webchat → webchat}/context/actions.js +0 -0
  838. /package/lib/{esm/webchat → webchat}/context/index.d.ts +0 -0
  839. /package/lib/{esm/webchat → webchat}/context/index.js +0 -0
  840. /package/lib/{esm/webchat → webchat}/context/messages-reducer.d.ts +0 -0
  841. /package/lib/{esm/webchat → webchat}/context/messages-reducer.js +0 -0
  842. /package/lib/{esm/webchat → webchat}/context/types.d.ts +0 -0
  843. /package/lib/{esm/webchat → webchat}/context/types.js +0 -0
  844. /package/lib/{esm/webchat → webchat}/context/use-webchat.d.ts +0 -0
  845. /package/lib/{esm/webchat → webchat}/context/use-webchat.js +0 -0
  846. /package/lib/{esm/webchat → webchat}/context/webchat-reducer.d.ts +0 -0
  847. /package/lib/{esm/webchat → webchat}/context/webchat-reducer.js +0 -0
  848. /package/lib/{esm/webchat → webchat}/cover-component/index.js +0 -0
  849. /package/lib/{esm/webchat → webchat}/custom-messages/index.d.ts +0 -0
  850. /package/lib/{esm/webchat → webchat}/custom-messages/index.js +0 -0
  851. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-angry.js +0 -0
  852. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-frown.js +0 -0
  853. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-grin-beam.js +0 -0
  854. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-meh.js +0 -0
  855. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-smile.js +0 -0
  856. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/index.d.ts +0 -0
  857. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/index.js +0 -0
  858. /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/star.js +0 -0
  859. /package/lib/{esm/webchat → webchat}/custom-messages/rating/index.d.ts +0 -0
  860. /package/lib/{esm/webchat → webchat}/custom-messages/rating/index.js +0 -0
  861. /package/lib/{esm/webchat → webchat}/custom-messages/rating/rating-selector.js +0 -0
  862. /package/lib/{esm/webchat → webchat}/custom-messages/rating/smileys.js +0 -0
  863. /package/lib/{esm/webchat → webchat}/custom-messages/rating/stars.js +0 -0
  864. /package/lib/{esm/webchat → webchat}/custom-messages/rating/styles.d.ts +0 -0
  865. /package/lib/{esm/webchat → webchat}/custom-messages/rating/styles.js +0 -0
  866. /package/lib/{esm/webchat → webchat}/custom-messages/rating/types.d.ts +0 -0
  867. /package/lib/{esm/webchat → webchat}/custom-messages/rating/types.js +0 -0
  868. /package/lib/{esm/webchat → webchat}/devices/index.d.ts +0 -0
  869. /package/lib/{esm/webchat → webchat}/devices/index.js +0 -0
  870. /package/lib/{esm/webchat → webchat}/global.d.ts +0 -0
  871. /package/lib/{esm/webchat → webchat}/header/default-header.js +0 -0
  872. /package/lib/{esm/webchat → webchat}/header/index.d.ts +0 -0
  873. /package/lib/{esm/webchat → webchat}/header/index.js +0 -0
  874. /package/lib/{esm/webchat → webchat}/header/styles.d.ts +0 -0
  875. /package/lib/{esm/webchat → webchat}/header/styles.js +0 -0
  876. /package/lib/{esm/webchat → webchat}/hooks/index.d.ts +0 -0
  877. /package/lib/{esm/webchat → webchat}/hooks/index.js +0 -0
  878. /package/lib/{esm/webchat → webchat}/hooks/use-component-visible.d.ts +0 -0
  879. /package/lib/{esm/webchat → webchat}/hooks/use-component-visible.js +0 -0
  880. /package/lib/{esm/webchat → webchat}/hooks/use-component-will-mount.d.ts +0 -0
  881. /package/lib/{esm/webchat → webchat}/hooks/use-component-will-mount.js +0 -0
  882. /package/lib/{esm/webchat → webchat}/hooks/use-device-adapter.d.ts +0 -0
  883. /package/lib/{esm/webchat → webchat}/hooks/use-device-adapter.js +0 -0
  884. /package/lib/{esm/webchat → webchat}/hooks/use-previous.d.ts +0 -0
  885. /package/lib/{esm/webchat → webchat}/hooks/use-previous.js +0 -0
  886. /package/lib/{esm/webchat → webchat}/hooks/use-scroll-to-bottom.d.ts +0 -0
  887. /package/lib/{esm/webchat → webchat}/hooks/use-scroll-to-bottom.js +0 -0
  888. /package/lib/{esm/webchat → webchat}/hooks/use-scrollbar-controller.d.ts +0 -0
  889. /package/lib/{esm/webchat → webchat}/hooks/use-scrollbar-controller.js +0 -0
  890. /package/lib/{esm/webchat → webchat}/hooks/use-typing.d.ts +0 -0
  891. /package/lib/{esm/webchat → webchat}/hooks/use-typing.js +0 -0
  892. /package/lib/{esm/webchat → webchat}/hooks/use-virtual-keyboard-detection.d.ts +0 -0
  893. /package/lib/{esm/webchat → webchat}/hooks/use-virtual-keyboard-detection.js +0 -0
  894. /package/lib/{esm/webchat → webchat}/hooks/use-webchat-dimensions.d.ts +0 -0
  895. /package/lib/{esm/webchat → webchat}/hooks/use-webchat-dimensions.js +0 -0
  896. /package/lib/{esm/webchat → webchat}/hooks/use-webchat-resizer.d.ts +0 -0
  897. /package/lib/{esm/webchat → webchat}/hooks/use-webchat-resizer.js +0 -0
  898. /package/lib/{esm/webchat → webchat}/index-types.d.ts +0 -0
  899. /package/lib/{esm/webchat → webchat}/index-types.js +0 -0
  900. /package/lib/{esm/webchat → webchat}/index.d.ts +0 -0
  901. /package/lib/{esm/webchat → webchat}/index.js +0 -0
  902. /package/lib/{esm/webchat → webchat}/input-panel/attachment.js +0 -0
  903. /package/lib/{esm/webchat → webchat}/input-panel/emoji-picker.js +0 -0
  904. /package/lib/{esm/webchat → webchat}/input-panel/index.js +0 -0
  905. /package/lib/{esm/webchat → webchat}/input-panel/opened-emoji-picker.js +0 -0
  906. /package/lib/{esm/webchat → webchat}/input-panel/persistent-menu.js +0 -0
  907. /package/lib/{esm/webchat → webchat}/input-panel/send-button.js +0 -0
  908. /package/lib/{esm/webchat → webchat}/input-panel/styles.d.ts +0 -0
  909. /package/lib/{esm/webchat → webchat}/input-panel/styles.js +0 -0
  910. /package/lib/{esm/webchat → webchat}/input-panel/textarea.js +0 -0
  911. /package/lib/{esm/webchat → webchat}/input-panel/typing-network-sender.d.ts +0 -0
  912. /package/lib/{esm/webchat → webchat}/input-panel/typing-network-sender.js +0 -0
  913. /package/lib/{esm/webchat → webchat}/input-panel/use-typing-chat-event-sender.d.ts +0 -0
  914. /package/lib/{esm/webchat → webchat}/input-panel/use-typing-chat-event-sender.js +0 -0
  915. /package/lib/{esm/webchat → webchat}/input-panel/use-typing-session.d.ts +0 -0
  916. /package/lib/{esm/webchat → webchat}/input-panel/use-typing-session.js +0 -0
  917. /package/lib/{esm/webchat → webchat}/message-list/intro-message.js +0 -0
  918. /package/lib/{esm/webchat → webchat}/message-list/scroll-button.d.ts +0 -0
  919. /package/lib/{esm/webchat → webchat}/message-list/scroll-button.js +0 -0
  920. /package/lib/{esm/webchat → webchat}/message-list/styles.d.ts +0 -0
  921. /package/lib/{esm/webchat → webchat}/message-list/styles.js +0 -0
  922. /package/lib/{esm/webchat → webchat}/message-list/unread-messages-banner.d.ts +0 -0
  923. /package/lib/{esm/webchat → webchat}/message-list/unread-messages-banner.js +0 -0
  924. /package/lib/{esm/webchat → webchat}/message-list/use-debounce.d.ts +0 -0
  925. /package/lib/{esm/webchat → webchat}/message-list/use-debounce.js +0 -0
  926. /package/lib/{esm/webchat → webchat}/message-list/use-notifications.d.ts +0 -0
  927. /package/lib/{esm/webchat → webchat}/message-list/use-notifications.js +0 -0
  928. /package/lib/{esm/webchat → webchat}/replies/index.js +0 -0
  929. /package/lib/{esm/webchat → webchat}/replies/styles.d.ts +0 -0
  930. /package/lib/{esm/webchat → webchat}/replies/styles.js +0 -0
  931. /package/lib/{esm/webchat → webchat}/session-view.js +0 -0
  932. /package/lib/{esm/webchat → webchat}/styles.d.ts +0 -0
  933. /package/lib/{esm/webchat → webchat}/styles.js +0 -0
  934. /package/lib/{esm/webchat → webchat}/theme/default-theme.d.ts +0 -0
  935. /package/lib/{esm/webchat → webchat}/theme/default-theme.js +0 -0
  936. /package/lib/{esm/webchat → webchat}/theme/theme.d.ts +0 -0
  937. /package/lib/{esm/webchat → webchat}/theme/types.d.ts +0 -0
  938. /package/lib/{esm/webchat → webchat}/theme/types.js +0 -0
  939. /package/lib/{esm/webchat → webchat}/tracking.d.ts +0 -0
  940. /package/lib/{esm/webchat → webchat}/tracking.js +0 -0
  941. /package/lib/{esm/webchat → webchat}/trigger-button/index.d.ts +0 -0
  942. /package/lib/{esm/webchat → webchat}/trigger-button/index.js +0 -0
  943. /package/lib/{esm/webchat → webchat}/trigger-button/styles.d.ts +0 -0
  944. /package/lib/{esm/webchat → webchat}/trigger-button/styles.js +0 -0
  945. /package/lib/{esm/webchat → webchat}/typing-indicator/index.d.ts +0 -0
  946. /package/lib/{esm/webchat → webchat}/typing-indicator/index.js +0 -0
  947. /package/lib/{esm/webchat → webchat}/typing-indicator/styles.d.ts +0 -0
  948. /package/lib/{esm/webchat → webchat}/typing-indicator/styles.js +0 -0
  949. /package/lib/{esm/webchat → webchat}/use-storage-state-hook.d.ts +0 -0
  950. /package/lib/{esm/webchat → webchat}/use-storage-state-hook.js +0 -0
  951. /package/lib/{esm/webchat → webchat}/utils.d.ts +0 -0
  952. /package/lib/{esm/webchat → webchat}/utils.js +0 -0
  953. /package/lib/{esm/webchat → webchat}/webchat-dev.d.ts +0 -0
  954. /package/lib/{esm/webchat → webchat}/webchat-dev.js +0 -0
  955. /package/lib/{esm/webchat → webchat}/webchat.d.ts +0 -0
  956. /package/lib/{esm/webchat → webchat}/webchat.js +0 -0
  957. /package/lib/{esm/webchat → webchat}/webview/header.js +0 -0
  958. /package/lib/{esm/webchat → webchat}/webview/index.js +0 -0
  959. /package/lib/{esm/webchat → webchat}/webview/styles.d.ts +0 -0
  960. /package/lib/{esm/webchat → webchat}/webview/styles.js +0 -0
  961. /package/lib/{esm/webchat-app.js → webchat-app.js} +0 -0
  962. /package/lib/{esm/webchat.template.html → webchat.template.html} +0 -0
  963. /package/lib/{esm/webview-app.d.ts → webview-app.d.ts} +0 -0
  964. /package/lib/{esm/webview-app.js → webview-app.js} +0 -0
  965. /package/lib/{esm/webview.template.html → webview.template.html} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/hooks/use-webchat-resizer.js","sources":["../../../../src/webchat/hooks/use-webchat-resizer.ts"],"sourcesContent":["import { useContext } from 'react'\n\nimport { WebchatContext } from '../../webchat/context'\nimport { useWebchatDimensions } from './use-webchat-dimensions'\n\nexport const useWebchatResizer = () => {\n const { webchatContainerRef, chatAreaRef, inputPanelRef, headerRef } =\n useContext(WebchatContext)\n\n const {\n calculateResizedPercentualWebchatHeight,\n calculateResizedPxChatAreaHeight,\n } = useWebchatDimensions()\n\n const handleKeyboardShown = () => {\n if (\n webchatContainerRef.current &&\n chatAreaRef.current &&\n headerRef.current &&\n inputPanelRef.current\n ) {\n webchatContainerRef.current.style.height = `${calculateResizedPercentualWebchatHeight()}%`\n chatAreaRef.current.style.height = `${calculateResizedPxChatAreaHeight()}px`\n }\n }\n\n const handleKeyboardHidden = () => {\n if (\n webchatContainerRef.current &&\n chatAreaRef.current &&\n inputPanelRef.current &&\n headerRef.current\n ) {\n webchatContainerRef.current.style.height = '100%'\n chatAreaRef.current.style.height = `${calculateResizedPxChatAreaHeight()}px`\n }\n }\n\n return {\n handleKeyboardShown,\n handleKeyboardHidden,\n }\n}\n"],"names":["useContext","WebchatContext","useWebchatDimensions","useWebchatResizer","webchatContainerRef","chatAreaRef","inputPanelRef","headerRef","calculateResizedPercentualWebchatHeight","calculateResizedPxChatAreaHeight","handleKeyboardShown","handleKeyboardHidden"],"mappings":";;;;;;;AAAkC;AAEoB;AACS;AAExD,MAAMG,iBAAiBA,GAAG;IAC/B,MAAM,EAAEC,mBAAmB,EAAEC,WAAW,EAAEC,aAAa,EAAEC,SAAS,EAAE,GAClEP,UAAUA,CAACC,cAAcA;IAE3B,MAAM,EACJO,uCAAuC,EACvCC,gCAAgC,EACjC,GAAGP,oBAAoBA;IAExB,MAAMQ,sBAAsB;QAC1B,IACEN,oBAAoB,OAAO,IAC3BC,YAAY,OAAO,IACnBE,UAAU,OAAO,IACjBD,cAAc,OAAO,EACrB;YACAF,oBAAoB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAGI,0CAA0C,CAAC,CAAC;YAC1FH,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAGI,mCAAmC,EAAE,CAAC;QAC9E;IACF;IAEA,MAAME,uBAAuB;QAC3B,IACEP,oBAAoB,OAAO,IAC3BC,YAAY,OAAO,IACnBC,cAAc,OAAO,IACrBC,UAAU,OAAO,EACjB;YACAH,oBAAoB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG;YAC3CC,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAGI,mCAAmC,EAAE,CAAC;QAC9E;IACF;IAEA,OAAO;QACLC;QACAC;IACF;AACF,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/index-types.js","sources":["../../../src/webchat/index-types.ts"],"sourcesContent":["import type { WebchatArgs } from '../index-types'\n\nexport interface WebchatDevProps extends WebchatArgs {\n initialDevSettings?: {\n keepSessionOnReload?: boolean\n showSessionView?: boolean\n }\n}\n"],"names":[],"mappings":"AAOC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/index.js","sources":["../../../src/webchat/index.ts"],"sourcesContent":["// @ts-nocheck\nexport { type ClientSession, WebchatContext } from './context'\nexport * from './custom-messages'\nexport { Webchat } from './webchat'\nexport { WebchatDev } from './webchat-dev'\n\nexport function getBotonicApp() {\n // Botonic is exported from your bot\n // eslint-disable-next-line no-undef\n return Botonic\n}\n\nexport * from './index-types'\n"],"names":["WebchatContext","Webchat","WebchatDev","getBotonicApp","Botonic"],"mappings":";;;;;AAAA,cAAc;AACgD;AAC7B;AACE;AACO;AAEnC,SAASG,aAAaA;IAC3B,oCAAoC;IACpC,oCAAoC;IACpC,OAAOC;AACT;AAE6B"}
@@ -1,6 +0,0 @@
1
- interface AttachmentProps {
2
- accept: string;
3
- onChange: (event: any) => void;
4
- }
5
- export declare const Attachment: ({ accept, onChange }: AttachmentProps) => import("react/jsx-runtime").JSX.Element;
6
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/attachment.js","sources":["../../../../src/webchat/input-panel/attachment.tsx"],"sourcesContent":["import { useContext, useRef } from 'react'\n\nimport AttachmentIcon from '../../assets/attachment-icon.svg'\nimport { ROLES } from '../../constants'\nimport { WebchatContext } from '../../webchat/context'\nimport { Icon } from '../components/common'\nimport { ConditionalAnimation } from '../components/conditional-animation'\n\ninterface AttachmentProps {\n accept: string\n onChange: (event: any) => void\n}\n\nexport const Attachment = ({ accept, onChange }: AttachmentProps) => {\n const { webchatState } = useContext(WebchatContext)\n\n const fileInputRef = useRef<HTMLInputElement | null>(null)\n\n const CustomAttachments = webchatState.theme.userInput?.attachments?.custom\n\n const isAttachmentsEnabled = () => {\n const hasCustomAttachments = !!CustomAttachments\n return (\n webchatState.theme.userInput?.attachments?.enable ?? hasCustomAttachments\n )\n }\n const attachmentsEnabled = isAttachmentsEnabled()\n\n const handleOnChange = event => {\n onChange(event)\n if (fileInputRef.current) {\n fileInputRef.current.value = ''\n }\n }\n\n return (\n <>\n {attachmentsEnabled ? (\n <ConditionalAnimation>\n <div role={ROLES.ATTACHMENT_ICON}>\n <label htmlFor='attachment' style={{ marginTop: 4 }}>\n {CustomAttachments ? (\n <CustomAttachments />\n ) : (\n <Icon src={AttachmentIcon} />\n )}\n </label>\n <input\n ref={fileInputRef}\n type='file'\n name='file'\n id='attachment'\n style={{ display: 'none' }}\n onChange={handleOnChange}\n accept={accept}\n />\n </div>\n </ConditionalAnimation>\n ) : null}\n </>\n )\n}\n"],"names":["useContext","useRef","AttachmentIcon","ROLES","WebchatContext","Icon","ConditionalAnimation","Attachment","accept","onChange","webchatState","fileInputRef","CustomAttachments","isAttachmentsEnabled","hasCustomAttachments","attachmentsEnabled","handleOnChange","event"],"mappings":";;;;;;;;;;;;;;;;AAA0C;AAEmB;AACtB;AACe;AACX;AAC+B;AAOnE,MAAMO,UAAUA,GAAG,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAmB;IAC9D,MAAM,EAAEC,YAAY,EAAE,GAAGV,UAAUA,CAACI,cAAcA;IAElD,MAAMO,eAAeV,MAAMA,CAA0B;IAErD,MAAMW,oBAAoBF,aAAa,KAAK,CAAC,SAAS,EAAE,aAAa;IAErE,MAAMG,uBAAuB;QAC3B,MAAMC,uBAAuB,CAAC,CAACF;QAC/B,OACEF,aAAa,KAAK,CAAC,SAAS,EAAE,aAAa,UAAUI;IAEzD;IACA,MAAMC,qBAAqBF;IAE3B,MAAMG,iBAAiBC,CAAAA;QACrBR,SAASQ;QACT,IAAIN,aAAa,OAAO,EAAE;YACxBA,aAAa,OAAO,CAAC,KAAK,GAAG;QAC/B;IACF;IAEA,qBACE;kBACGI,mCACC,IAACT,oBAAoBA;sBACnB,mBAAC;gBAAI,MAAMH,qBAAqB;;kCAC9B,IAAC;wBAAM,SAAQ;wBAAa,OAAO;4BAAE,WAAW;wBAAE;kCAC/CS,kCACC,IAACA,uCAED,IAACP,IAAIA;4BAAC,KAAKH,eAAcA;;;kCAG7B,IAAC;wBACC,KAAKS;wBACL,MAAK;wBACL,MAAK;wBACL,IAAG;wBACH,OAAO;4BAAE,SAAS;wBAAO;wBACzB,UAAUK;wBACV,QAAQR;;;;aAIZ;;AAGV,EAAC"}
@@ -1,5 +0,0 @@
1
- interface EmojiPickerProps {
2
- onClick: () => void;
3
- }
4
- export declare const EmojiPicker: ({ onClick }: EmojiPickerProps) => import("react/jsx-runtime").JSX.Element;
5
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/emoji-picker.js","sources":["../../../../src/webchat/input-panel/emoji-picker.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: we need to use static elements for the emoji picker */\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: we need to use key with click events for the emoji picker */\nimport { useContext } from 'react'\n\nimport LogoEmoji from '../../assets/emojiButton.svg'\nimport { ROLES } from '../../constants'\nimport { WebchatContext } from '../../webchat/context'\nimport { Icon } from '../components/common'\nimport { ConditionalAnimation } from '../components/conditional-animation'\n\ninterface EmojiPickerProps {\n onClick: () => void\n}\n\nexport const EmojiPicker = ({ onClick }: EmojiPickerProps) => {\n const { webchatState } = useContext(WebchatContext)\n\n const CustomEmojiPicker = webchatState.theme.userInput?.emojiPicker?.custom\n\n const isEmojiPickerEnabled = () => {\n const hasCustomEmojiPicker = !!CustomEmojiPicker\n return (\n webchatState.theme.userInput?.emojiPicker?.enable ?? hasCustomEmojiPicker\n )\n }\n const emojiPickerEnabled = isEmojiPickerEnabled()\n\n const handleClick = (event: any) => {\n onClick()\n event.stopPropagation()\n }\n\n return (\n <>\n {emojiPickerEnabled ? (\n <ConditionalAnimation>\n <div role={ROLES.EMOJI_PICKER_ICON} onClick={handleClick}>\n {CustomEmojiPicker ? (\n <CustomEmojiPicker />\n ) : (\n <Icon src={LogoEmoji} />\n )}\n </div>\n </ConditionalAnimation>\n ) : null}\n </>\n )\n}\n"],"names":["useContext","LogoEmoji","ROLES","WebchatContext","Icon","ConditionalAnimation","EmojiPicker","onClick","webchatState","CustomEmojiPicker","isEmojiPickerEnabled","hasCustomEmojiPicker","emojiPickerEnabled","handleClick","event"],"mappings":";;;;;;;;;;;;;;;;AAAA,gHAAgH,GAChH,gHAAgH,GAC9E;AAEkB;AACb;AACe;AACX;AAC+B;AAMnE,MAAMM,WAAWA,GAAG,CAAC,EAAEC,OAAO,EAAoB;IACvD,MAAM,EAAEC,YAAY,EAAE,GAAGR,UAAUA,CAACG,cAAcA;IAElD,MAAMM,oBAAoBD,aAAa,KAAK,CAAC,SAAS,EAAE,aAAa;IAErE,MAAME,uBAAuB;QAC3B,MAAMC,uBAAuB,CAAC,CAACF;QAC/B,OACED,aAAa,KAAK,CAAC,SAAS,EAAE,aAAa,UAAUG;IAEzD;IACA,MAAMC,qBAAqBF;IAE3B,MAAMG,cAAc,CAACC;QACnBP;QACAO,MAAM,eAAe;IACvB;IAEA,qBACE;kBACGF,mCACC,IAACP,oBAAoBA;sBACnB,kBAAC;gBAAI,MAAMH,uBAAuB;gBAAE,SAASW;0BAC1CJ,kCACC,IAACA,uCAED,IAACL,IAAIA;oBAAC,KAAKH,WAASA;;;aAIxB;;AAGV,EAAC"}
@@ -1,9 +0,0 @@
1
- import type React from 'react';
2
- interface InputPanelProps {
3
- handleAttachment: (event: any) => void;
4
- textareaRef: React.MutableRefObject<HTMLTextAreaElement | undefined>;
5
- host: HTMLElement;
6
- onUserInput?: (event: any) => Promise<void>;
7
- }
8
- export declare const InputPanel: ({ handleAttachment, textareaRef, host, onUserInput, }: InputPanelProps) => import("react/jsx-runtime").JSX.Element;
9
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/index.js","sources":["../../../../src/webchat/input-panel/index.tsx"],"sourcesContent":["import type React from 'react'\nimport { useContext } from 'react'\n\nimport { WEBCHAT } from '../../constants'\nimport { getFullMimeWhitelist } from '../../message-utils'\nimport { WebchatContext } from '../../webchat/context'\nimport { BotonicContainerId } from '../constants'\nimport { Attachment } from './attachment'\nimport { EmojiPicker } from './emoji-picker'\nimport { OpenedEmojiPicker } from './opened-emoji-picker'\nimport { PersistentMenu } from './persistent-menu'\nimport { SendButton } from './send-button'\nimport { UserInputContainer } from './styles'\nimport { Textarea } from './textarea'\nimport { useTypingChatEventSender } from './use-typing-chat-event-sender'\n\ninterface InputPanelProps {\n handleAttachment: (event: any) => void\n textareaRef: React.MutableRefObject<HTMLTextAreaElement | undefined>\n host: HTMLElement\n onUserInput?: (event: any) => Promise<void>\n}\n\nexport const InputPanel = ({\n handleAttachment,\n textareaRef,\n host,\n onUserInput,\n}: InputPanelProps) => {\n const {\n getThemeProperty,\n sendText,\n togglePersistentMenu,\n toggleEmojiPicker,\n webchatState,\n inputPanelRef,\n } = useContext(WebchatContext)\n\n const handleSelectedEmoji = event => {\n if (!textareaRef.current) {\n return\n }\n\n textareaRef.current.value += event.emoji\n textareaRef.current.focus()\n }\n\n const handleEmojiClick = () => {\n toggleEmojiPicker(!webchatState.isEmojiPickerOpen)\n }\n\n const handleMenu = () => {\n togglePersistentMenu(!webchatState.isPersistentMenuOpen)\n }\n\n const sendTextAreaText = async () => {\n if (!textareaRef.current) {\n return\n }\n\n await sendText(textareaRef.current?.value)\n textareaRef.current.value = ''\n }\n\n // Network layer: deduplicates typing_on/off before they reach onUserInput.\n const sendChatEvent = useTypingChatEventSender({\n onUserInput,\n session: webchatState.session,\n lastRoutePath: webchatState.lastRoutePath,\n })\n\n return (\n <UserInputContainer\n id={BotonicContainerId.InputPanel}\n ref={inputPanelRef}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.userInputStyle),\n }}\n className='user-input-container'\n >\n {webchatState.isEmojiPickerOpen && (\n <OpenedEmojiPicker\n onEmojiClick={handleSelectedEmoji}\n onClick={handleEmojiClick}\n />\n )}\n\n <PersistentMenu onClick={handleMenu} />\n\n <Textarea\n host={host}\n textareaRef={textareaRef}\n sendChatEvent={sendChatEvent}\n sendTextAreaText={sendTextAreaText}\n />\n\n <EmojiPicker onClick={handleEmojiClick} />\n\n <Attachment\n onChange={handleAttachment}\n accept={getFullMimeWhitelist().join(',')}\n />\n\n <SendButton onClick={sendTextAreaText} />\n </UserInputContainer>\n )\n}\n"],"names":["useContext","WEBCHAT","getFullMimeWhitelist","WebchatContext","BotonicContainerId","Attachment","EmojiPicker","OpenedEmojiPicker","PersistentMenu","SendButton","UserInputContainer","Textarea","useTypingChatEventSender","InputPanel","handleAttachment","textareaRef","host","onUserInput","getThemeProperty","sendText","togglePersistentMenu","toggleEmojiPicker","webchatState","inputPanelRef","handleSelectedEmoji","event","handleEmojiClick","handleMenu","sendTextAreaText","sendChatEvent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACkC;AAEO;AACiB;AACJ;AACL;AACR;AACG;AACa;AACP;AACR;AACG;AACR;AACoC;AASlE,MAAMa,UAAUA,GAAG,CAAC,EACzBC,gBAAgB,EAChBC,WAAW,EACXC,IAAI,EACJC,WAAW,EACK;IAChB,MAAM,EACJC,gBAAgB,EAChBC,QAAQ,EACRC,oBAAoB,EACpBC,iBAAiB,EACjBC,YAAY,EACZC,aAAa,EACd,GAAGvB,UAAUA,CAACG,cAAcA;IAE7B,MAAMqB,sBAAsBC,CAAAA;QAC1B,IAAI,CAACV,YAAY,OAAO,EAAE;YACxB;QACF;QAEAA,YAAY,OAAO,CAAC,KAAK,IAAIU,MAAM,KAAK;QACxCV,YAAY,OAAO,CAAC,KAAK;IAC3B;IAEA,MAAMW,mBAAmB;QACvBL,kBAAkB,CAACC,aAAa,iBAAiB;IACnD;IAEA,MAAMK,aAAa;QACjBP,qBAAqB,CAACE,aAAa,oBAAoB;IACzD;IAEA,MAAMM,mBAAmB;QACvB,IAAI,CAACb,YAAY,OAAO,EAAE;YACxB;QACF;QAEA,MAAMI,SAASJ,YAAY,OAAO,EAAE;QACpCA,YAAY,OAAO,CAAC,KAAK,GAAG;IAC9B;IAEA,2EAA2E;IAC3E,MAAMc,gBAAgBjB,wBAAwBA,CAAC;QAC7CK;QACA,SAASK,aAAa,OAAO;QAC7B,eAAeA,aAAa,aAAa;IAC3C;IAEA,qBACE,KAACZ,kBAAkBA;QACjB,IAAIN,6BAA6B;QACjC,KAAKmB;QACL,OAAO;YACL,GAAGL,iBAAiBjB,wCAAwC,CAAC;QAC/D;QACA,WAAU;;YAETqB,aAAa,iBAAiB,kBAC7B,IAACf,iBAAiBA;gBAChB,cAAciB;gBACd,SAASE;;0BAIb,IAAClB,cAAcA;gBAAC,SAASmB;;0BAEzB,IAAChB,QAAQA;gBACP,MAAMK;gBACN,aAAaD;gBACb,eAAec;gBACf,kBAAkBD;;0BAGpB,IAACtB,WAAWA;gBAAC,SAASoB;;0BAEtB,IAACrB,UAAUA;gBACT,UAAUS;gBACV,QAAQZ,oBAAoBA,GAAG,IAAI,CAAC;;0BAGtC,IAACO,UAAUA;gBAAC,SAASmB;;;;AAG3B,EAAC"}
@@ -1,6 +0,0 @@
1
- interface OpenedEmojiPickerProps {
2
- onClick: () => void;
3
- onEmojiClick: (event: any) => void;
4
- }
5
- export declare const OpenedEmojiPicker: ({ onClick, onEmojiClick, }: OpenedEmojiPickerProps) => import("react/jsx-runtime").JSX.Element;
6
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/opened-emoji-picker.js","sources":["../../../../src/webchat/input-panel/opened-emoji-picker.tsx"],"sourcesContent":["import Picker from 'emoji-picker-react'\nimport type { LegacyRef } from 'react'\n\nimport { ROLES } from '../../constants'\nimport { useComponentVisible } from '../hooks'\nimport { OpenedEmojiPickerContainer } from './styles'\n\ninterface OpenedEmojiPickerProps {\n onClick: () => void\n onEmojiClick: (event: any) => void\n}\n\nexport const OpenedEmojiPicker = ({\n onClick,\n onEmojiClick,\n}: OpenedEmojiPickerProps) => {\n const { ref, isComponentVisible } = useComponentVisible(true, onClick)\n return (\n <div ref={ref as LegacyRef<HTMLDivElement>}>\n {isComponentVisible && (\n <OpenedEmojiPickerContainer role={ROLES.EMOJI_PICKER}>\n <Picker\n width='100%'\n height='19rem'\n previewConfig={{ showPreview: false }}\n lazyLoadEmojis={true}\n onEmojiClick={onEmojiClick}\n autoFocusSearch={false}\n />\n </OpenedEmojiPickerContainer>\n )}\n </div>\n )\n}\n"],"names":["Picker","ROLES","useComponentVisible","OpenedEmojiPickerContainer","OpenedEmojiPicker","onClick","onEmojiClick","ref","isComponentVisible"],"mappings":";;;;;;;;;;;;AAAuC;AAGA;AACO;AACO;AAO9C,MAAMI,iBAAiBA,GAAG,CAAC,EAChCC,OAAO,EACPC,YAAY,EACW;IACvB,MAAM,EAAEC,GAAG,EAAEC,kBAAkB,EAAE,GAAGN,mBAAmBA,CAAC,MAAMG;IAC9D,qBACE,IAAC;QAAI,KAAKE;kBACPC,oCACC,IAACL,0BAA0BA;YAAC,MAAMF,kBAAkB;sBAClD,kBAACD,kBAAMA;gBACL,OAAM;gBACN,QAAO;gBACP,eAAe;oBAAE,aAAa;gBAAM;gBACpC,gBAAgB;gBAChB,cAAcM;gBACd,iBAAiB;;;;AAM7B,EAAC"}
@@ -1,5 +0,0 @@
1
- interface PersistentMenuProps {
2
- onClick: () => void;
3
- }
4
- export declare const PersistentMenu: ({ onClick }: PersistentMenuProps) => import("react/jsx-runtime").JSX.Element;
5
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/persistent-menu.js","sources":["../../../../src/webchat/input-panel/persistent-menu.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: we need to use static elements for the persistent menu */\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: we need to use key with click events for the persistent menu */\nimport { useContext } from 'react'\n\nimport LogoMenu from '../../assets/menuButton.svg'\nimport { ROLES } from '../../constants'\nimport { WebchatContext } from '../../webchat/context'\nimport { Icon } from '../components/common'\nimport { ConditionalAnimation } from '../components/conditional-animation'\n\ninterface PersistentMenuProps {\n onClick: () => void\n}\n\nexport const PersistentMenu = ({ onClick }: PersistentMenuProps) => {\n const { webchatState } = useContext(WebchatContext)\n\n const persistentMenuOptions = webchatState.theme.userInput?.persistentMenu\n\n const CustomMenuButton = webchatState.theme.userInput?.menuButton?.custom\n\n return (\n <>\n {persistentMenuOptions ? (\n <ConditionalAnimation>\n <div role={ROLES.PERSISTENT_MENU_ICON} onClick={onClick}>\n {CustomMenuButton ? <CustomMenuButton /> : <Icon src={LogoMenu} />}\n </div>\n </ConditionalAnimation>\n ) : null}\n </>\n )\n}\n"],"names":["useContext","LogoMenu","ROLES","WebchatContext","Icon","ConditionalAnimation","PersistentMenu","onClick","webchatState","persistentMenuOptions","CustomMenuButton"],"mappings":";;;;;;;;;;;;;;;;AAAA,mHAAmH,GACnH,mHAAmH,GACjF;AAEgB;AACX;AACe;AACX;AAC+B;AAMnE,MAAMM,cAAcA,GAAG,CAAC,EAAEC,OAAO,EAAuB;IAC7D,MAAM,EAAEC,YAAY,EAAE,GAAGR,UAAUA,CAACG,cAAcA;IAElD,MAAMM,wBAAwBD,aAAa,KAAK,CAAC,SAAS,EAAE;IAE5D,MAAME,mBAAmBF,aAAa,KAAK,CAAC,SAAS,EAAE,YAAY;IAEnE,qBACE;kBACGC,sCACC,IAACJ,oBAAoBA;sBACnB,kBAAC;gBAAI,MAAMH,0BAA0B;gBAAE,SAASK;0BAC7CG,iCAAmB,IAACA,sCAAsB,IAACN,IAAIA;oBAAC,KAAKH,UAAQA;;;aAGhE;;AAGV,EAAC"}
@@ -1,5 +0,0 @@
1
- interface SendButtonProps {
2
- onClick: () => Promise<void>;
3
- }
4
- export declare const SendButton: ({ onClick }: SendButtonProps) => import("react/jsx-runtime").JSX.Element;
5
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/send-button.js","sources":["../../../../src/webchat/input-panel/send-button.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: we need to use static elements for the send button */\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: we need to use key with click events for the send button */\nimport { useContext } from 'react'\n\nimport SendButtonIcon from '../../assets/send-button.svg'\nimport { ROLES } from '../../constants'\nimport { WebchatContext } from '../../webchat/context'\nimport { Icon } from '../components/common'\nimport { ConditionalAnimation } from '../components/conditional-animation'\n\ninterface SendButtonProps {\n onClick: () => Promise<void>\n}\n\nexport const SendButton = ({ onClick }: SendButtonProps) => {\n const { webchatState } = useContext(WebchatContext)\n\n const CustomSendButton = webchatState.theme.userInput?.sendButton?.custom\n\n const isSendButtonEnabled = () => {\n const hasCustomSendButton = !!CustomSendButton\n return (\n webchatState.theme.userInput?.sendButton?.enable ?? hasCustomSendButton\n )\n }\n const sendButtonEnabled = isSendButtonEnabled()\n\n return (\n <>\n {sendButtonEnabled ? (\n <ConditionalAnimation>\n <div onClick={onClick} role={ROLES.SEND_BUTTON_ICON}>\n {CustomSendButton ? (\n <CustomSendButton />\n ) : (\n <Icon src={SendButtonIcon} />\n )}\n </div>\n </ConditionalAnimation>\n ) : null}\n </>\n )\n}\n"],"names":["useContext","SendButtonIcon","ROLES","WebchatContext","Icon","ConditionalAnimation","SendButton","onClick","webchatState","CustomSendButton","isSendButtonEnabled","hasCustomSendButton","sendButtonEnabled"],"mappings":";;;;;;;;;;;;;;;;AAAA,+GAA+G,GAC/G,+GAA+G,GAC7E;AAEuB;AAClB;AACe;AACX;AAC+B;AAMnE,MAAMM,UAAUA,GAAG,CAAC,EAAEC,OAAO,EAAmB;IACrD,MAAM,EAAEC,YAAY,EAAE,GAAGR,UAAUA,CAACG,cAAcA;IAElD,MAAMM,mBAAmBD,aAAa,KAAK,CAAC,SAAS,EAAE,YAAY;IAEnE,MAAME,sBAAsB;QAC1B,MAAMC,sBAAsB,CAAC,CAACF;QAC9B,OACED,aAAa,KAAK,CAAC,SAAS,EAAE,YAAY,UAAUG;IAExD;IACA,MAAMC,oBAAoBF;IAE1B,qBACE;kBACGE,kCACC,IAACP,oBAAoBA;sBACnB,kBAAC;gBAAI,SAASE;gBAAS,MAAML,sBAAsB;0BAChDO,iCACC,IAACA,sCAED,IAACL,IAAIA;oBAAC,KAAKH,WAAcA;;;aAI7B;;AAGV,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/styles.js","sources":["../../../../src/webchat/input-panel/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nimport { COLORS } from '../../constants'\n\nexport const UserInputContainer = styled.div`\n min-height: 52px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 16px;\n padding: 0px 16px;\n z-index: 1;\n border-top: 1px solid ${COLORS.SOLID_BLACK_ALPHA_0_5};\n`\n\nexport const TextAreaContainer = styled.div`\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n padding: 5px 0px;\n`\n\nexport const OpenedEmojiPickerContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n position: absolute;\n right: 3px;\n top: -324px;\n`\n"],"names":["styled","COLORS","UserInputContainer","TextAreaContainer","OpenedEmojiPickerContainer"],"mappings":";;;;;AAAsC;AAEE;AAEjC,MAAME,kBAAkBA,GAAGF,qBAAU,CAAC;;;;;;;;;wBASrB,EAAEC,4BAA4B,CAAC;AACvD,CAAC;AAEM,MAAME,iBAAiBA,GAAGH,qBAAU,CAAC;;;;;AAK5C,CAAC;AAEM,MAAMI,0BAA0BA,GAAGJ,qBAAU,CAAC;;;;;;AAMrD,CAAC"}
@@ -1,10 +0,0 @@
1
- import type React from 'react';
2
- import type { TypingChatEvent } from './typing-network-sender.js';
3
- interface TextareaProps {
4
- host: HTMLElement;
5
- textareaRef: React.MutableRefObject<HTMLTextAreaElement | undefined>;
6
- sendChatEvent: (event: TypingChatEvent) => Promise<boolean>;
7
- sendTextAreaText: () => Promise<void>;
8
- }
9
- export { TYPING_IDLE_MS } from './use-typing-session.js';
10
- export declare const Textarea: ({ host, textareaRef, sendChatEvent, sendTextAreaText, }: TextareaProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/textarea.js","sources":["../../../../src/webchat/input-panel/textarea.tsx"],"sourcesContent":["import type React from 'react'\nimport { useContext } from 'react'\nimport TextareaAutosize from 'react-textarea-autosize'\n\nimport { WebchatContext } from '../../webchat/context'\nimport { useDeviceAdapter } from '../hooks'\nimport { TextAreaContainer } from './styles'\nimport type { TypingChatEvent } from './typing-network-sender'\nimport { useTypingSession } from './use-typing-session'\n\ninterface TextareaProps {\n host: HTMLElement\n textareaRef: React.MutableRefObject<HTMLTextAreaElement | undefined>\n sendChatEvent: (event: TypingChatEvent) => Promise<boolean>\n sendTextAreaText: () => Promise<void>\n}\n\nexport { TYPING_IDLE_MS } from './use-typing-session'\n\nexport const Textarea = ({\n host,\n textareaRef,\n sendChatEvent,\n sendTextAreaText,\n}: TextareaProps) => {\n const { webchatState, setIsInputFocused } = useContext(WebchatContext)\n // UI layer: decides when the user is typing. Network dedup lives in sendChatEvent.\n const { stopTyping, onTextChange } = useTypingSession(sendChatEvent)\n\n useDeviceAdapter(host, webchatState.isWebchatOpen)\n\n const persistentMenuOptions = webchatState.theme.userInput?.persistentMenu\n const placeholder = webchatState.theme.userInput?.box?.placeholder\n const userInputBoxStyle = webchatState.theme.userInput?.box?.style\n\n const onKeyDown = async event => {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault()\n // Run in parallel: stop typing must not wait for sendTextAreaText to finish.\n await Promise.all([stopTyping(), sendTextAreaText()])\n }\n }\n\n return (\n <TextAreaContainer>\n <TextareaAutosize\n ref={(ref: HTMLTextAreaElement) => {\n textareaRef.current = ref\n }}\n onFocus={() => setIsInputFocused(true)}\n onBlur={async () => {\n setIsInputFocused(false)\n await stopTyping()\n }}\n onChange={async event => {\n await onTextChange(event.target.value)\n }}\n name='text'\n maxRows={4}\n wrap='soft'\n maxLength={1000}\n placeholder={placeholder}\n autoFocus={false}\n onKeyDown={onKeyDown}\n style={{\n display: 'flex',\n fontSize: 16,\n width: '100%',\n border: 'none',\n resize: 'none',\n overflow: 'auto',\n outline: 'none',\n flex: '1 1 auto',\n padding: 10,\n paddingLeft: persistentMenuOptions ? 0 : 10,\n fontFamily: 'inherit',\n ...userInputBoxStyle,\n }}\n />\n </TextAreaContainer>\n )\n}\n"],"names":["useContext","TextareaAutosize","WebchatContext","useDeviceAdapter","TextAreaContainer","useTypingSession","TYPING_IDLE_MS","Textarea","host","textareaRef","sendChatEvent","sendTextAreaText","webchatState","setIsInputFocused","stopTyping","onTextChange","persistentMenuOptions","placeholder","userInputBoxStyle","onKeyDown","event","Promise","ref"],"mappings":";;;;;;;;;;;;;;;;AACkC;AACoB;AAEA;AACX;AACC;AAEW;AASF;AAE9C,MAAMO,QAAQA,GAAG,CAAC,EACvBC,IAAI,EACJC,WAAW,EACXC,aAAa,EACbC,gBAAgB,EACF;IACd,MAAM,EAAEC,YAAY,EAAEC,iBAAiB,EAAE,GAAGb,UAAUA,CAACE,cAAcA;IACrE,mFAAmF;IACnF,MAAM,EAAEY,UAAU,EAAEC,YAAY,EAAE,GAAGV,gBAAgBA,CAACK;IAEtDP,gBAAgBA,CAACK,MAAMI,aAAa,aAAa;IAEjD,MAAMI,wBAAwBJ,aAAa,KAAK,CAAC,SAAS,EAAE;IAC5D,MAAMK,cAAcL,aAAa,KAAK,CAAC,SAAS,EAAE,KAAK;IACvD,MAAMM,oBAAoBN,aAAa,KAAK,CAAC,SAAS,EAAE,KAAK;IAE7D,MAAMO,YAAY,OAAMC;QACtB,IAAIA,MAAM,GAAG,KAAK,WAAW,CAACA,MAAM,QAAQ,EAAE;YAC5CA,MAAM,cAAc;YACpB,6EAA6E;YAC7E,MAAMC,QAAQ,GAAG,CAAC;gBAACP;gBAAcH;aAAmB;QACtD;IACF;IAEA,qBACE,IAACP,iBAAiBA;kBAChB,kBAACH,uBAAgBA;YACf,KAAK,CAACqB;gBACJb,YAAY,OAAO,GAAGa;YACxB;YACA,SAAS,IAAMT,kBAAkB;YACjC,QAAQ;gBACNA,kBAAkB;gBAClB,MAAMC;YACR;YACA,UAAU,OAAMM;gBACd,MAAML,aAAaK,MAAM,MAAM,CAAC,KAAK;YACvC;YACA,MAAK;YACL,SAAS;YACT,MAAK;YACL,WAAW;YACX,aAAaH;YACb,WAAW;YACX,WAAWE;YACX,OAAO;gBACL,SAAS;gBACT,UAAU;gBACV,OAAO;gBACP,QAAQ;gBACR,QAAQ;gBACR,UAAU;gBACV,SAAS;gBACT,MAAM;gBACN,SAAS;gBACT,aAAaH,wBAAwB,IAAI;gBACzC,YAAY;gBACZ,GAAGE,iBAAiB;YACtB;;;AAIR,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/typing-network-sender.js","sources":["../../../../src/webchat/input-panel/typing-network-sender.ts"],"sourcesContent":["import type { Session as CoreSession } from '@botonic/core'\nimport { INPUT } from '@botonic/core'\nimport { v7 as uuidv7 } from 'uuid'\n\nimport { Typing } from '../../index-types'\n\n/** Network debounce before `typing_off` is sent after a stop signal. */\nexport const TYPING_OFF_DEBOUNCE_MS = 2000\n\nexport type TypingChatEvent = Typing.On | Typing.Off\n\n/** `true` when `typing_on` was delivered to the server. */\nexport type TypingOnSendResult = boolean\n\n/** `true` when `typing_off` was scheduled; delivery happens after debounce. */\nexport type TypingOffSendResult = boolean\n\nexport interface ChatEventContext {\n session: Partial<CoreSession>\n lastRoutePath?: string\n}\n\nexport type SendToServer = (\n chatEvent: TypingChatEvent,\n context: ChatEventContext\n) => Promise<boolean>\n\nexport function buildChatEventPayload(\n chatEvent: TypingChatEvent,\n { session, lastRoutePath }: ChatEventContext\n) {\n return {\n user: session.user,\n input: {\n id: uuidv7(),\n type: INPUT.CHAT_EVENT,\n data: chatEvent,\n },\n session,\n lastRoutePath,\n }\n}\n\n/**\n * Network-layer sender for typing_on / typing_off.\n *\n * Guarantees at most one typing_on per session, debounced typing_off,\n * and matching session context between on/off pairs.\n */\nexport class TypingNetworkSender {\n private disposed = false\n private isTypingOnServer = false\n // Snapshot of session/route captured when typing_on was delivered.\n private activeContext: ChatEventContext | null = null\n private pendingOffTimer: ReturnType<typeof setTimeout> | null = null\n private pendingTypingOn: Promise<TypingOnSendResult> | null = null\n\n constructor(\n private readonly getContext: () => ChatEventContext,\n private readonly sendToServer: SendToServer\n ) {}\n\n /**\n * For `Typing.On`, returns whether the event was delivered.\n * For `Typing.Off`, returns whether the stop was scheduled.\n */\n async send(\n chatEvent: TypingChatEvent\n ): Promise<TypingOnSendResult | TypingOffSendResult> {\n if (chatEvent === Typing.On) {\n return this.userStartedTyping()\n }\n\n return this.userStoppedTyping()\n }\n\n private sendTypingOffBestEffort(context: ChatEventContext) {\n return this.sendToServer(Typing.Off, context).catch(() => {})\n }\n\n dispose() {\n this.disposed = true\n this.cancelPendingOff()\n\n if (!this.isTypingOnServer || !this.activeContext) {\n return\n }\n\n // Unmount should not leave the server thinking the user is still typing.\n const context = this.activeContext\n this.resetTypingState()\n this.sendTypingOffBestEffort(context)\n }\n\n private async userStartedTyping(): Promise<TypingOnSendResult> {\n if (this.pendingTypingOn) {\n return this.pendingTypingOn\n }\n\n // User resumed typing before the debounced typing_off was sent.\n this.cancelPendingOff()\n\n if (this.isTypingOnServer) {\n return true\n }\n\n this.pendingTypingOn = (async () => {\n const context = this.getContext()\n\n try {\n const delivered = await this.sendToServer(Typing.On, context)\n\n if (this.disposed) {\n // typing_on resolved after unmount: immediately balance with typing_off.\n if (delivered) {\n this.sendTypingOffBestEffort(context)\n }\n\n return false\n }\n\n if (delivered) {\n this.isTypingOnServer = true\n this.activeContext = context\n }\n\n return delivered\n } finally {\n this.pendingTypingOn = null\n }\n })()\n\n return this.pendingTypingOn\n }\n\n private userStoppedTyping(): Promise<TypingOffSendResult> {\n if (!this.isTypingOnServer || !this.activeContext) {\n return Promise.resolve(false)\n }\n\n this.cancelPendingOff()\n\n const context = this.activeContext\n\n // Coalesce blur + clear + send into a single typing_off.\n this.pendingOffTimer = setTimeout(() => {\n this.pendingOffTimer = null\n this.resetTypingState()\n this.sendTypingOffBestEffort(context)\n }, TYPING_OFF_DEBOUNCE_MS)\n\n return Promise.resolve(true)\n }\n\n private resetTypingState() {\n this.isTypingOnServer = false\n this.activeContext = null\n }\n\n private cancelPendingOff() {\n if (!this.pendingOffTimer) {\n return\n }\n\n clearTimeout(this.pendingOffTimer)\n this.pendingOffTimer = null\n }\n}\n"],"names":["INPUT","v7","uuidv7","Typing","TYPING_OFF_DEBOUNCE_MS","buildChatEventPayload","chatEvent","session","lastRoutePath","TypingNetworkSender","context","delivered","Promise","setTimeout","clearTimeout","getContext","sendToServer"],"mappings":";;;;;;;;;;;;;;;;;;AACqC;AACF;AAEO;AAE1C,sEAAsE,GAC/D,MAAMI,sBAAsBA,GAAG,KAAI;AAoBnC,SAASC,qBAAqBA,CACnCC,SAA0B,EAC1B,EAAEC,OAAO,EAAEC,aAAa,EAAoB;IAE5C,OAAO;QACL,MAAMD,QAAQ,IAAI;QAClB,OAAO;YACL,IAAIL,EAAMA;YACV,MAAMF,gBAAgB;YACtB,MAAMM;QACR;QACAC;QACAC;IACF;AACF;AAEA;;;;;CAKC,GACM,MAAMC,mBAAmBA;IAa9B;;;GAGC,GACD,MAAM,KACJH,SAA0B,EACyB;QACnD,IAAIA,cAAcH,SAAS,EAAE;YAC3B,OAAO,IAAI,CAAC,iBAAiB;QAC/B;QAEA,OAAO,IAAI,CAAC,iBAAiB;IAC/B;IAEQ,wBAAwBO,OAAyB,EAAE;QACzD,OAAO,IAAI,CAAC,YAAY,CAACP,UAAU,EAAEO,SAAS,KAAK,CAAC,KAAO;IAC7D;IAEA,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG;QAChB,IAAI,CAAC,gBAAgB;QAErB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACjD;QACF;QAEA,yEAAyE;QACzE,MAAMA,UAAU,IAAI,CAAC,aAAa;QAClC,IAAI,CAAC,gBAAgB;QACrB,IAAI,CAAC,uBAAuB,CAACA;IAC/B;IAEA,MAAc,oBAAiD;QAC7D,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,OAAO,IAAI,CAAC,eAAe;QAC7B;QAEA,gEAAgE;QAChE,IAAI,CAAC,gBAAgB;QAErB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,OAAO;QACT;QAEA,IAAI,CAAC,eAAe,GAAI;YACtB,MAAMA,UAAU,IAAI,CAAC,UAAU;YAE/B,IAAI;gBACF,MAAMC,YAAY,MAAM,IAAI,CAAC,YAAY,CAACR,SAAS,EAAEO;gBAErD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,yEAAyE;oBACzE,IAAIC,WAAW;wBACb,IAAI,CAAC,uBAAuB,CAACD;oBAC/B;oBAEA,OAAO;gBACT;gBAEA,IAAIC,WAAW;oBACb,IAAI,CAAC,gBAAgB,GAAG;oBACxB,IAAI,CAAC,aAAa,GAAGD;gBACvB;gBAEA,OAAOC;YACT,SAAU;gBACR,IAAI,CAAC,eAAe,GAAG;YACzB;QACF;QAEA,OAAO,IAAI,CAAC,eAAe;IAC7B;IAEQ,oBAAkD;QACxD,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACjD,OAAOC,QAAQ,OAAO,CAAC;QACzB;QAEA,IAAI,CAAC,gBAAgB;QAErB,MAAMF,UAAU,IAAI,CAAC,aAAa;QAElC,yDAAyD;QACzD,IAAI,CAAC,eAAe,GAAGG,WAAW;YAChC,IAAI,CAAC,eAAe,GAAG;YACvB,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,uBAAuB,CAACH;QAC/B,GAAGN,sBAAsBA;QAEzB,OAAOQ,QAAQ,OAAO,CAAC;IACzB;IAEQ,mBAAmB;QACzB,IAAI,CAAC,gBAAgB,GAAG;QACxB,IAAI,CAAC,aAAa,GAAG;IACvB;IAEQ,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB;QACF;QAEAE,aAAa,IAAI,CAAC,eAAe;QACjC,IAAI,CAAC,eAAe,GAAG;IACzB;IA7GA,YACmBC,UAAkC,EAClCC,YAA0B,CAC3C;;;QAVF,uBAAQ,YAAR;QACA,uBAAQ,oBAAR;QACA,mEAAmE;QACnE,uBAAQ,iBAAR;QACA,uBAAQ,mBAAR;QACA,uBAAQ,mBAAR;aAGmBD,aAAAA;aACAC,eAAAA;aATX,WAAW;aACX,mBAAmB;aAEnB,gBAAyC;aACzC,kBAAwD;aACxD,kBAAsD;IAK3D;AA2GL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/use-typing-chat-event-sender.js","sources":["../../../../src/webchat/input-panel/use-typing-chat-event-sender.ts"],"sourcesContent":["import type { Session as CoreSession } from '@botonic/core'\nimport { useCallback, useEffect, useRef } from 'react'\nimport {\n buildChatEventPayload,\n type TypingChatEvent,\n TypingNetworkSender,\n} from './typing-network-sender'\n\nexport type TypingChatEventPayload = ReturnType<typeof buildChatEventPayload>\n\ninterface UseTypingChatEventSenderArgs {\n onUserInput?: (args: TypingChatEventPayload) => Promise<void>\n session: Partial<CoreSession>\n lastRoutePath?: string\n}\n\n/**\n * React bridge from Textarea to TypingNetworkSender.\n *\n * Keeps one sender instance per input panel and forwards typing events\n * to onUserInput with the current session context.\n */\nexport function useTypingChatEventSender({\n onUserInput,\n session,\n lastRoutePath,\n}: UseTypingChatEventSenderArgs) {\n // Always read the latest handler/session without recreating the sender.\n const contextRef = useRef({ onUserInput, session, lastRoutePath })\n const typingSenderRef = useRef<TypingNetworkSender | null>(null)\n\n contextRef.current = { onUserInput, session, lastRoutePath }\n\n if (!typingSenderRef.current) {\n typingSenderRef.current = new TypingNetworkSender(\n () => ({\n session: contextRef.current.session,\n lastRoutePath: contextRef.current.lastRoutePath,\n }),\n async (chatEvent, context) => {\n const handler = contextRef.current.onUserInput\n\n if (!handler) {\n return false\n }\n\n try {\n await handler(buildChatEventPayload(chatEvent, context))\n return true\n } catch {\n // Let the UI retry on the next keystroke.\n return false\n }\n }\n )\n }\n\n useEffect(() => {\n return () => {\n typingSenderRef.current?.dispose()\n }\n }, [])\n\n return useCallback(async (chatEvent: TypingChatEvent): Promise<boolean> => {\n return (await typingSenderRef.current?.send(chatEvent)) ?? false\n }, [])\n}\n"],"names":["useCallback","useEffect","useRef","buildChatEventPayload","TypingNetworkSender","useTypingChatEventSender","onUserInput","session","lastRoutePath","contextRef","typingSenderRef","chatEvent","context","handler"],"mappings":";;;;;AACsD;AAKtB;AAUhC;;;;;CAKC,GACM,SAASK,wBAAwBA,CAAC,EACvCC,WAAW,EACXC,OAAO,EACPC,aAAa,EACgB;IAC7B,wEAAwE;IACxE,MAAMC,aAAaP,MAAMA,CAAC;QAAEI;QAAaC;QAASC;IAAc;IAChE,MAAME,kBAAkBR,MAAMA,CAA6B;IAE3DO,WAAW,OAAO,GAAG;QAAEH;QAAaC;QAASC;IAAc;IAE3D,IAAI,CAACE,gBAAgB,OAAO,EAAE;QAC5BA,gBAAgB,OAAO,GAAG,IAAIN,mBAAmBA,CAC/C,IAAO;gBACL,SAASK,WAAW,OAAO,CAAC,OAAO;gBACnC,eAAeA,WAAW,OAAO,CAAC,aAAa;YACjD,IACA,OAAOE,WAAWC;YAChB,MAAMC,UAAUJ,WAAW,OAAO,CAAC,WAAW;YAE9C,IAAI,CAACI,SAAS;gBACZ,OAAO;YACT;YAEA,IAAI;gBACF,MAAMA,QAAQV,qBAAqBA,CAACQ,WAAWC;gBAC/C,OAAO;YACT,EAAE,OAAM;gBACN,0CAA0C;gBAC1C,OAAO;YACT;QACF;IAEJ;IAEAX,SAASA,CAAC;QACR,OAAO;YACLS,gBAAgB,OAAO,EAAE;QAC3B;IACF,GAAG,EAAE;IAEL,OAAOV,WAAWA,CAAC,OAAOW;QACxB,OAAQ,MAAMD,gBAAgB,OAAO,EAAE,KAAKC,cAAe;IAC7D,GAAG,EAAE;AACP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/input-panel/use-typing-session.js","sources":["../../../../src/webchat/input-panel/use-typing-session.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react'\n\nimport { Typing } from '../../index-types'\nimport type { TypingChatEvent } from './typing-network-sender'\n\n/** Local UI inactivity before the textarea stops emitting typing events. */\nexport const TYPING_IDLE_MS = 10 * 1000\n\ntype SendTypingEvent = (event: TypingChatEvent) => Promise<boolean>\n\n/**\n * UI-layer typing session for the textarea.\n *\n * Decides *when* the user is typing and requests typing_on / typing_off.\n * Deduplication and network debouncing live in TypingNetworkSender instead.\n */\nexport function useTypingSession(sendChatEvent: SendTypingEvent) {\n const isTyping = useRef(false)\n // Bumps on each start/stop so stale async stopTyping() calls can be ignored.\n const startOrStopTypingCount = useRef(0)\n const idleTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\n // Shares one in-flight typing_on while delivery is still pending.\n const pendingTypingOn = useRef<Promise<boolean> | null>(null)\n\n const stopTyping = useCallback(async () => {\n const countWhenStopWasRequested = ++startOrStopTypingCount.current\n\n if (idleTimer.current) {\n clearTimeout(idleTimer.current)\n idleTimer.current = null\n }\n\n // Wait for typing_on to settle before deciding whether to send typing_off.\n if (pendingTypingOn.current) {\n await pendingTypingOn.current\n }\n\n // Let same-turn input events (e.g. Enter then type next message) bump the counter first.\n await Promise.resolve()\n\n if (countWhenStopWasRequested !== startOrStopTypingCount.current) {\n return\n }\n\n if (!isTyping.current) {\n return\n }\n\n isTyping.current = false\n await sendChatEvent(Typing.Off)\n }, [sendChatEvent])\n\n const startTyping = useCallback(async () => {\n if (isTyping.current) {\n return true\n }\n\n if (pendingTypingOn.current) {\n return pendingTypingOn.current\n }\n\n pendingTypingOn.current = (async () => {\n try {\n const accepted = await sendChatEvent(Typing.On)\n\n // Only mark active after the network layer confirms delivery.\n if (accepted) {\n isTyping.current = true\n }\n\n return accepted\n } finally {\n pendingTypingOn.current = null\n }\n })()\n\n return pendingTypingOn.current\n }, [sendChatEvent])\n\n const onTextChange = useCallback(\n async (value: string) => {\n if (value === '') {\n await stopTyping()\n return\n }\n\n const countWhenUserTyped = ++startOrStopTypingCount.current\n await startTyping()\n\n if (countWhenUserTyped !== startOrStopTypingCount.current) {\n return\n }\n\n if (!isTyping.current) {\n return\n }\n\n // Reset the idle timer on every keystroke.\n if (idleTimer.current) {\n clearTimeout(idleTimer.current)\n }\n\n idleTimer.current = setTimeout(() => {\n stopTyping().catch(() => {})\n }, TYPING_IDLE_MS)\n },\n [startTyping, stopTyping]\n )\n\n const stopTypingRef = useRef(stopTyping)\n stopTypingRef.current = stopTyping\n\n useEffect(() => {\n return () => {\n if (idleTimer.current) {\n clearTimeout(idleTimer.current)\n }\n\n stopTypingRef.current().catch(() => {})\n }\n }, [])\n\n return { stopTyping, onTextChange }\n}\n"],"names":["useCallback","useEffect","useRef","Typing","TYPING_IDLE_MS","useTypingSession","sendChatEvent","isTyping","startOrStopTypingCount","idleTimer","pendingTypingOn","stopTyping","countWhenStopWasRequested","clearTimeout","Promise","startTyping","accepted","onTextChange","value","countWhenUserTyped","setTimeout","stopTypingRef"],"mappings":";;;;;AAAsD;AAEZ;AAG1C,0EAA0E,GACnE,MAAMI,cAAcA,GAAG,KAAK,KAAI;AAIvC;;;;;CAKC,GACM,SAASC,gBAAgBA,CAACC,aAA8B;IAC7D,MAAMC,WAAWL,MAAMA,CAAC;IACxB,6EAA6E;IAC7E,MAAMM,yBAAyBN,MAAMA,CAAC;IACtC,MAAMO,YAAYP,MAAMA,CAAuC;IAC/D,kEAAkE;IAClE,MAAMQ,kBAAkBR,MAAMA,CAA0B;IAExD,MAAMS,aAAaX,WAAWA,CAAC;QAC7B,MAAMY,4BAA4B,EAAEJ,uBAAuB,OAAO;QAElE,IAAIC,UAAU,OAAO,EAAE;YACrBI,aAAaJ,UAAU,OAAO;YAC9BA,UAAU,OAAO,GAAG;QACtB;QAEA,2EAA2E;QAC3E,IAAIC,gBAAgB,OAAO,EAAE;YAC3B,MAAMA,gBAAgB,OAAO;QAC/B;QAEA,yFAAyF;QACzF,MAAMI,QAAQ,OAAO;QAErB,IAAIF,8BAA8BJ,uBAAuB,OAAO,EAAE;YAChE;QACF;QAEA,IAAI,CAACD,SAAS,OAAO,EAAE;YACrB;QACF;QAEAA,SAAS,OAAO,GAAG;QACnB,MAAMD,cAAcH,UAAU;IAChC,GAAG;QAACG;KAAc;IAElB,MAAMS,cAAcf,WAAWA,CAAC;QAC9B,IAAIO,SAAS,OAAO,EAAE;YACpB,OAAO;QACT;QAEA,IAAIG,gBAAgB,OAAO,EAAE;YAC3B,OAAOA,gBAAgB,OAAO;QAChC;QAEAA,gBAAgB,OAAO,GAAI;YACzB,IAAI;gBACF,MAAMM,WAAW,MAAMV,cAAcH,SAAS;gBAE9C,8DAA8D;gBAC9D,IAAIa,UAAU;oBACZT,SAAS,OAAO,GAAG;gBACrB;gBAEA,OAAOS;YACT,SAAU;gBACRN,gBAAgB,OAAO,GAAG;YAC5B;QACF;QAEA,OAAOA,gBAAgB,OAAO;IAChC,GAAG;QAACJ;KAAc;IAElB,MAAMW,eAAejB,WAAWA,CAC9B,OAAOkB;QACL,IAAIA,UAAU,IAAI;YAChB,MAAMP;YACN;QACF;QAEA,MAAMQ,qBAAqB,EAAEX,uBAAuB,OAAO;QAC3D,MAAMO;QAEN,IAAII,uBAAuBX,uBAAuB,OAAO,EAAE;YACzD;QACF;QAEA,IAAI,CAACD,SAAS,OAAO,EAAE;YACrB;QACF;QAEA,2CAA2C;QAC3C,IAAIE,UAAU,OAAO,EAAE;YACrBI,aAAaJ,UAAU,OAAO;QAChC;QAEAA,UAAU,OAAO,GAAGW,WAAW;YAC7BT,aAAa,KAAK,CAAC,KAAO;QAC5B,GAAGP,cAAcA;IACnB,GACA;QAACW;QAAaJ;KAAW;IAG3B,MAAMU,gBAAgBnB,MAAMA,CAACS;IAC7BU,cAAc,OAAO,GAAGV;IAExBV,SAASA,CAAC;QACR,OAAO;YACL,IAAIQ,UAAU,OAAO,EAAE;gBACrBI,aAAaJ,UAAU,OAAO;YAChC;YAEAY,cAAc,OAAO,GAAG,KAAK,CAAC,KAAO;QACvC;IACF,GAAG,EAAE;IAEL,OAAO;QAAEV;QAAYM;IAAa;AACpC"}
@@ -1 +0,0 @@
1
- export declare const WebchatMessageList: () => import("react/jsx-runtime").JSX.Element;
@@ -1,176 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import react, { useContext, useEffect, useRef, useState } from "react";
3
- import { ROLES } from "../../constants.js";
4
- import { SENDERS } from "../../index-types.js";
5
- import { WebchatContext } from "../context/index.js";
6
- import { BotonicContainerId } from "../constants.js";
7
- import typing_indicator from "../typing-indicator/index.js";
8
- import { IntroMessage } from "./intro-message.js";
9
- import { ScrollButton } from "./scroll-button.js";
10
- import { MessageContainer, ScrollableMessageList } from "./styles.js";
11
- import { UnreadMessagesBanner } from "./unread-messages-banner.js";
12
- import { useNotifications } from "./use-notifications.js";
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
- const SCROLL_TIMEOUT = 200;
39
- const scrollOptionsEnd = {
40
- block: 'end'
41
- };
42
- const scrollOptionsCenter = {
43
- block: 'center'
44
- };
45
- const WebchatMessageList = ()=>{
46
- const { webchatState, resetUnreadMessages, setLastMessageVisible, scrollableMessagesListRef } = useContext(WebchatContext);
47
- const { notificationsEnabled } = useNotifications();
48
- const [firstUnreadMessageId, setFirstUnreadMessageId] = useState();
49
- const lastMessageRef = useRef(null);
50
- const typingRef = useRef(null);
51
- const unreadMessagesBannerRef = useRef(null);
52
- const scrollToTyping = ()=>{
53
- setTimeout(()=>{
54
- typingRef.current?.scrollIntoView(scrollOptionsEnd);
55
- }, SCROLL_TIMEOUT);
56
- };
57
- const scrollToLastMessage = ()=>{
58
- setTimeout(()=>{
59
- lastMessageRef.current?.scrollIntoView(scrollOptionsEnd);
60
- }, SCROLL_TIMEOUT);
61
- };
62
- const scrollToBanner = ()=>{
63
- setTimeout(()=>{
64
- unreadMessagesBannerRef.current?.scrollIntoView(scrollOptionsCenter);
65
- }, SCROLL_TIMEOUT);
66
- };
67
- const handleScrollToBottom = ()=>{
68
- resetUnreadMessages();
69
- if (webchatState.typing) {
70
- scrollToTyping();
71
- return;
72
- }
73
- scrollToLastMessage();
74
- };
75
- const showUnreadMessagesBanner = (messageComponentId)=>{
76
- return !webchatState.isInputFocused && firstUnreadMessageId && messageComponentId === firstUnreadMessageId && webchatState.numUnreadMessages > 0;
77
- };
78
- useEffect(()=>{
79
- const firstUnreadMessage = webchatState.messagesComponents.find((message)=>message.props.isUnread);
80
- setFirstUnreadMessageId(firstUnreadMessage?.props?.id);
81
- }, [
82
- webchatState.messagesComponents
83
- ]);
84
- useEffect(()=>{
85
- if (webchatState.messagesComponents.length > 0 && lastMessageRef.current) {
86
- const observer = new IntersectionObserver((entries)=>{
87
- entries.forEach((entry)=>{
88
- setLastMessageVisible(entry.isIntersecting);
89
- });
90
- });
91
- observer.observe(lastMessageRef.current);
92
- }
93
- }, [
94
- webchatState.messagesComponents
95
- ]);
96
- useEffect(()=>{
97
- if (!notificationsEnabled) {
98
- if (webchatState.typing) {
99
- scrollToTyping();
100
- return;
101
- }
102
- scrollToLastMessage();
103
- }
104
- }, [
105
- webchatState.typing,
106
- webchatState.messagesComponents
107
- ]);
108
- useEffect(()=>{
109
- if (webchatState.isWebchatOpen && notificationsEnabled) {
110
- if (unreadMessagesBannerRef.current) {
111
- scrollToBanner();
112
- return;
113
- }
114
- if (webchatState.typing) {
115
- scrollToTyping();
116
- return;
117
- }
118
- scrollToLastMessage();
119
- }
120
- }, [
121
- firstUnreadMessageId,
122
- webchatState.isWebchatOpen,
123
- webchatState.typing,
124
- webchatState.messagesComponents
125
- ]);
126
- const showScrollButton = webchatState.numUnreadMessages > 0 && !webchatState.isLastMessageVisible;
127
- return /*#__PURE__*/ jsxs(Fragment, {
128
- children: [
129
- /*#__PURE__*/ jsxs(ScrollableMessageList, {
130
- id: BotonicContainerId.ScrollableMessagesList,
131
- ref: scrollableMessagesListRef,
132
- role: ROLES.MESSAGE_LIST,
133
- children: [
134
- /*#__PURE__*/ jsx(IntroMessage, {}),
135
- webchatState.messagesComponents.map((messageComponent, index)=>{
136
- const messageId = messageComponent.props.id;
137
- const sentBySystem = messageComponent.props?.sentBy === SENDERS.system;
138
- // Check if system message is followed by a regular message (user/bot)
139
- const nextMessage = webchatState.messagesComponents[index + 1];
140
- const isSystemMessageFollowedByMessage = sentBySystem && nextMessage && nextMessage.props?.sentBy !== SENDERS.system;
141
- return /*#__PURE__*/ jsxs(react.Fragment, {
142
- children: [
143
- /*#__PURE__*/ jsxs(MessageContainer, {
144
- role: sentBySystem ? ROLES.SYSTEM_MESSAGE : ROLES.MESSAGE,
145
- $isLastSystemMessage: isSystemMessageFollowedByMessage,
146
- children: [
147
- showUnreadMessagesBanner(messageId) && /*#__PURE__*/ jsx(UnreadMessagesBanner, {
148
- unreadMessagesBannerRef: unreadMessagesBannerRef
149
- }),
150
- messageComponent
151
- ]
152
- }),
153
- index === webchatState.messagesComponents.length - 1 && /*#__PURE__*/ jsx("div", {
154
- ref: lastMessageRef,
155
- style: {
156
- content: ''
157
- }
158
- })
159
- ]
160
- }, messageId);
161
- }),
162
- webchatState.typing && /*#__PURE__*/ jsx(typing_indicator, {
163
- ref: typingRef
164
- })
165
- ]
166
- }),
167
- showScrollButton && /*#__PURE__*/ jsx(ScrollButton, {
168
- handleClick: handleScrollToBottom
169
- })
170
- ]
171
- });
172
- };
173
-
174
- export { WebchatMessageList };
175
-
176
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/message-list/index.js","sources":["../../../../src/webchat/message-list/index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef, useState } from 'react'\n\nimport { ROLES } from '../../constants'\nimport { SENDERS } from '../../index-types'\nimport { WebchatContext } from '../../webchat/context'\nimport { BotonicContainerId } from '../constants'\nimport TypingIndicator from '../typing-indicator'\nimport { IntroMessage } from './intro-message'\nimport { ScrollButton } from './scroll-button'\nimport { MessageContainer, ScrollableMessageList } from './styles'\nimport { UnreadMessagesBanner } from './unread-messages-banner'\nimport { useNotifications } from './use-notifications'\n\nconst SCROLL_TIMEOUT = 200\nconst scrollOptionsEnd: ScrollIntoViewOptions = {\n block: 'end',\n}\nconst scrollOptionsCenter: ScrollIntoViewOptions = {\n block: 'center',\n}\n\nexport const WebchatMessageList = () => {\n const {\n webchatState,\n resetUnreadMessages,\n setLastMessageVisible,\n scrollableMessagesListRef,\n } = useContext(WebchatContext)\n\n const { notificationsEnabled } = useNotifications()\n\n const [firstUnreadMessageId, setFirstUnreadMessageId] = useState<string>()\n\n const lastMessageRef = useRef<HTMLDivElement>(null)\n const typingRef = useRef<HTMLDivElement>(null)\n const unreadMessagesBannerRef = useRef<HTMLDivElement>(null)\n\n const scrollToTyping = () => {\n setTimeout(() => {\n typingRef.current?.scrollIntoView(scrollOptionsEnd)\n }, SCROLL_TIMEOUT)\n }\n\n const scrollToLastMessage = () => {\n setTimeout(() => {\n lastMessageRef.current?.scrollIntoView(scrollOptionsEnd)\n }, SCROLL_TIMEOUT)\n }\n\n const scrollToBanner = () => {\n setTimeout(() => {\n unreadMessagesBannerRef.current?.scrollIntoView(scrollOptionsCenter)\n }, SCROLL_TIMEOUT)\n }\n\n const handleScrollToBottom = () => {\n resetUnreadMessages()\n if (webchatState.typing) {\n scrollToTyping()\n return\n }\n\n scrollToLastMessage()\n }\n\n const showUnreadMessagesBanner = (messageComponentId: string) => {\n return (\n !webchatState.isInputFocused &&\n firstUnreadMessageId &&\n messageComponentId === firstUnreadMessageId &&\n webchatState.numUnreadMessages > 0\n )\n }\n\n useEffect(() => {\n const firstUnreadMessage = webchatState.messagesComponents.find(\n message => message.props.isUnread\n )\n setFirstUnreadMessageId(firstUnreadMessage?.props?.id)\n }, [webchatState.messagesComponents])\n\n useEffect(() => {\n if (webchatState.messagesComponents.length > 0 && lastMessageRef.current) {\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n setLastMessageVisible(entry.isIntersecting)\n })\n })\n observer.observe(lastMessageRef.current)\n }\n }, [webchatState.messagesComponents])\n\n useEffect(() => {\n if (!notificationsEnabled) {\n if (webchatState.typing) {\n scrollToTyping()\n return\n }\n\n scrollToLastMessage()\n }\n }, [webchatState.typing, webchatState.messagesComponents])\n\n useEffect(() => {\n if (webchatState.isWebchatOpen && notificationsEnabled) {\n if (unreadMessagesBannerRef.current) {\n scrollToBanner()\n return\n }\n\n if (webchatState.typing) {\n scrollToTyping()\n return\n }\n\n scrollToLastMessage()\n }\n }, [\n firstUnreadMessageId,\n webchatState.isWebchatOpen,\n webchatState.typing,\n webchatState.messagesComponents,\n ])\n\n const showScrollButton =\n webchatState.numUnreadMessages > 0 && !webchatState.isLastMessageVisible\n\n return (\n <>\n <ScrollableMessageList\n id={BotonicContainerId.ScrollableMessagesList}\n ref={scrollableMessagesListRef}\n role={ROLES.MESSAGE_LIST}\n >\n <IntroMessage />\n {webchatState.messagesComponents.map((messageComponent, index) => {\n const messageId = messageComponent.props.id\n const sentBySystem = messageComponent.props?.sentBy === SENDERS.system\n\n // Check if system message is followed by a regular message (user/bot)\n const nextMessage = webchatState.messagesComponents[index + 1]\n const isSystemMessageFollowedByMessage =\n sentBySystem &&\n nextMessage &&\n nextMessage.props?.sentBy !== SENDERS.system\n\n return (\n <React.Fragment key={messageId}>\n <MessageContainer\n role={sentBySystem ? ROLES.SYSTEM_MESSAGE : ROLES.MESSAGE}\n $isLastSystemMessage={isSystemMessageFollowedByMessage}\n >\n {showUnreadMessagesBanner(messageId) && (\n <UnreadMessagesBanner\n unreadMessagesBannerRef={unreadMessagesBannerRef}\n />\n )}\n {messageComponent}\n </MessageContainer>\n {index === webchatState.messagesComponents.length - 1 && (\n <div\n ref={lastMessageRef}\n style={{\n content: '',\n }}\n ></div>\n )}\n </React.Fragment>\n )\n })}\n {webchatState.typing && <TypingIndicator ref={typingRef} />}\n </ScrollableMessageList>\n {showScrollButton && <ScrollButton handleClick={handleScrollToBottom} />}\n </>\n )\n}\n"],"names":["React","useContext","useEffect","useRef","useState","ROLES","SENDERS","WebchatContext","BotonicContainerId","TypingIndicator","IntroMessage","ScrollButton","MessageContainer","ScrollableMessageList","UnreadMessagesBanner","useNotifications","SCROLL_TIMEOUT","scrollOptionsEnd","scrollOptionsCenter","WebchatMessageList","webchatState","resetUnreadMessages","setLastMessageVisible","scrollableMessagesListRef","notificationsEnabled","firstUnreadMessageId","setFirstUnreadMessageId","lastMessageRef","typingRef","unreadMessagesBannerRef","scrollToTyping","setTimeout","scrollToLastMessage","scrollToBanner","handleScrollToBottom","showUnreadMessagesBanner","messageComponentId","firstUnreadMessage","message","observer","IntersectionObserver","entries","entry","showScrollButton","messageComponent","index","messageId","sentBySystem","nextMessage","isSystemMessageFollowedByMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAsE;AAE/B;AACI;AACW;AACL;AACA;AACH;AACA;AACoB;AACH;AACT;AAEtD,MAAMgB,cAAcA,GAAG;AACvB,MAAMC,gBAAgBA,GAA0B;IAC9C,OAAO;AACT;AACA,MAAMC,mBAAmBA,GAA0B;IACjD,OAAO;AACT;AAEO,MAAMC,kBAAkBA,GAAG;IAChC,MAAM,EACJC,YAAY,EACZC,mBAAmB,EACnBC,qBAAqB,EACrBC,yBAAyB,EAC1B,GAAGtB,UAAUA,CAACM,cAAcA;IAE7B,MAAM,EAAEiB,oBAAoB,EAAE,GAAGT,gBAAgBA;IAEjD,MAAM,CAACU,sBAAsBC,wBAAwB,GAAGtB,QAAQA;IAEhE,MAAMuB,iBAAiBxB,MAAMA,CAAiB;IAC9C,MAAMyB,YAAYzB,MAAMA,CAAiB;IACzC,MAAM0B,0BAA0B1B,MAAMA,CAAiB;IAEvD,MAAM2B,iBAAiB;QACrBC,WAAW;YACTH,UAAU,OAAO,EAAE,eAAeX,gBAAgBA;QACpD,GAAGD,cAAcA;IACnB;IAEA,MAAMgB,sBAAsB;QAC1BD,WAAW;YACTJ,eAAe,OAAO,EAAE,eAAeV,gBAAgBA;QACzD,GAAGD,cAAcA;IACnB;IAEA,MAAMiB,iBAAiB;QACrBF,WAAW;YACTF,wBAAwB,OAAO,EAAE,eAAeX,mBAAmBA;QACrE,GAAGF,cAAcA;IACnB;IAEA,MAAMkB,uBAAuB;QAC3Bb;QACA,IAAID,aAAa,MAAM,EAAE;YACvBU;YACA;QACF;QAEAE;IACF;IAEA,MAAMG,2BAA2B,CAACC;QAChC,OACE,CAAChB,aAAa,cAAc,IAC5BK,wBACAW,uBAAuBX,wBACvBL,aAAa,iBAAiB,GAAG;IAErC;IAEAlB,SAASA,CAAC;QACR,MAAMmC,qBAAqBjB,aAAa,kBAAkB,CAAC,IAAI,CAC7DkB,CAAAA,UAAWA,QAAQ,KAAK,CAAC,QAAQ;QAEnCZ,wBAAwBW,oBAAoB,OAAO;IACrD,GAAG;QAACjB,aAAa,kBAAkB;KAAC;IAEpClB,SAASA,CAAC;QACR,IAAIkB,aAAa,kBAAkB,CAAC,MAAM,GAAG,KAAKO,eAAe,OAAO,EAAE;YACxE,MAAMY,WAAW,IAAIC,qBAAqBC,CAAAA;gBACxCA,QAAQ,OAAO,CAACC,CAAAA;oBACdpB,sBAAsBoB,MAAM,cAAc;gBAC5C;YACF;YACAH,SAAS,OAAO,CAACZ,eAAe,OAAO;QACzC;IACF,GAAG;QAACP,aAAa,kBAAkB;KAAC;IAEpClB,SAASA,CAAC;QACR,IAAI,CAACsB,sBAAsB;YACzB,IAAIJ,aAAa,MAAM,EAAE;gBACvBU;gBACA;YACF;YAEAE;QACF;IACF,GAAG;QAACZ,aAAa,MAAM;QAAEA,aAAa,kBAAkB;KAAC;IAEzDlB,SAASA,CAAC;QACR,IAAIkB,aAAa,aAAa,IAAII,sBAAsB;YACtD,IAAIK,wBAAwB,OAAO,EAAE;gBACnCI;gBACA;YACF;YAEA,IAAIb,aAAa,MAAM,EAAE;gBACvBU;gBACA;YACF;YAEAE;QACF;IACF,GAAG;QACDP;QACAL,aAAa,aAAa;QAC1BA,aAAa,MAAM;QACnBA,aAAa,kBAAkB;KAChC;IAED,MAAMuB,mBACJvB,aAAa,iBAAiB,GAAG,KAAK,CAACA,aAAa,oBAAoB;IAE1E,qBACE;;0BACE,KAACP,qBAAqBA;gBACpB,IAAIL,yCAAyC;gBAC7C,KAAKe;gBACL,MAAMlB,kBAAkB;;kCAExB,IAACK,YAAYA;oBACZU,aAAa,kBAAkB,CAAC,GAAG,CAAC,CAACwB,kBAAkBC;wBACtD,MAAMC,YAAYF,iBAAiB,KAAK,CAAC,EAAE;wBAC3C,MAAMG,eAAeH,iBAAiB,KAAK,EAAE,WAAWtC,cAAc;wBAEtE,sEAAsE;wBACtE,MAAM0C,cAAc5B,aAAa,kBAAkB,CAACyB,QAAQ,EAAE;wBAC9D,MAAMI,mCACJF,gBACAC,eACAA,YAAY,KAAK,EAAE,WAAW1C,cAAc;wBAE9C,qBACE,KAACN,cAAc;;8CACb,KAACY,gBAAgBA;oCACf,MAAMmC,eAAe1C,oBAAoB,GAAGA,aAAa;oCACzD,sBAAsB4C;;wCAErBd,yBAAyBW,4BACxB,IAAChC,oBAAoBA;4CACnB,yBAAyBe;;wCAG5Be;;;gCAEFC,UAAUzB,aAAa,kBAAkB,CAAC,MAAM,GAAG,mBAClD,IAAC;oCACC,KAAKO;oCACL,OAAO;wCACL,SAAS;oCACX;;;2BAjBemB;oBAsBzB;oBACC1B,aAAa,MAAM,kBAAI,IAACX,gBAAeA;wBAAC,KAAKmB;;;;YAE/Ce,kCAAoB,IAAChC,YAAYA;gBAAC,aAAauB;;;;AAGtD,EAAC"}
@@ -1 +0,0 @@
1
- export declare const IntroMessage: () => import("react/jsx-runtime").JSX.Element | null;
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/message-list/intro-message.js","sources":["../../../../src/webchat/message-list/intro-message.tsx"],"sourcesContent":["import { useContext } from 'react'\n\nimport { WEBCHAT } from '../../constants'\nimport { Fade } from '../../shared/styles'\nimport { resolveImage } from '../../util/environment'\nimport { ConditionalWrapper } from '../../util/react'\nimport { WebchatContext } from '../../webchat/context'\nimport { DefaultIntroImage } from './styles'\n\nexport const IntroMessage = () => {\n const { getThemeProperty } = useContext(WebchatContext)\n\n const animationsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableAnimations\n )\n const CustomIntro = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.customIntro)\n const introImage = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.introImage)\n const introStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.introStyle)\n\n const DefaultIntro = introImage && (\n <DefaultIntroImage\n style={{\n ...introStyle,\n }}\n src={resolveImage(introImage)}\n />\n )\n\n return CustomIntro || DefaultIntro ? (\n <ConditionalWrapper\n condition={animationsEnabled}\n wrapper={children => <Fade>{children}</Fade>}\n >\n {CustomIntro ? <CustomIntro /> : DefaultIntro}\n </ConditionalWrapper>\n ) : null\n}\n"],"names":["useContext","WEBCHAT","Fade","resolveImage","ConditionalWrapper","WebchatContext","DefaultIntroImage","IntroMessage","getThemeProperty","animationsEnabled","CustomIntro","introImage","introStyle","DefaultIntro","children"],"mappings":";;;;;;;;;;;;;;;;;;AAAkC;AAEO;AACC;AACW;AACA;AACC;AACV;AAErC,MAAMO,YAAYA,GAAG;IAC1B,MAAM,EAAEC,gBAAgB,EAAE,GAAGR,UAAUA,CAACK,cAAcA;IAEtD,MAAMI,oBAAoBD,iBACxBP,0CAA0C;IAE5C,MAAMS,cAAcF,iBAAiBP,qCAAqC;IAC1E,MAAMU,aAAaH,iBAAiBP,oCAAoC;IACxE,MAAMW,aAAaJ,iBAAiBP,oCAAoC;IAExE,MAAMY,eAAeF,4BACnB,IAACL,iBAAiBA;QAChB,OAAO;YACL,GAAGM,UAAU;QACf;QACA,KAAKT,YAAYA,CAACQ;;IAItB,OAAOD,eAAeG,6BACpB,IAACT,kBAAkBA;QACjB,WAAWK;QACX,SAASK,CAAAA,yBAAY,IAACZ,IAAIA;0BAAEY;;kBAE3BJ,4BAAc,IAACA,mBAAiBG;SAEjC;AACN,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/message-list/scroll-button.js","sources":["../../../../src/webchat/message-list/scroll-button.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/useAltText: This is a SVG icon */\nimport ArrowScrollDown from '../../assets/arrow-scroll-down.svg'\nimport { resolveImage } from '../../util/environment'\nimport { ContainerScrollButton } from './styles'\nimport { useDebounce } from './use-debounce'\nimport { useNotifications } from './use-notifications'\n\ninterface ScrollButtonProps {\n handleClick: () => void\n}\n\nexport const ScrollButton = ({\n handleClick,\n}: ScrollButtonProps): JSX.Element => {\n const { CustomScrollButton, scrollButtonEnabled } = useNotifications()\n\n const show = useDebounce()\n\n return (\n <>\n {scrollButtonEnabled && show ? (\n CustomScrollButton ? (\n <CustomScrollButton handleScrollToBottom={handleClick} />\n ) : (\n <ContainerScrollButton onClick={handleClick}>\n <img src={resolveImage(ArrowScrollDown)} />\n </ContainerScrollButton>\n )\n ) : null}\n </>\n )\n}\n"],"names":["ArrowScrollDown","resolveImage","ContainerScrollButton","useDebounce","useNotifications","ScrollButton","handleClick","CustomScrollButton","scrollButtonEnabled","show"],"mappings":";;;;;;;;;;;;;;AAAA,8DAA8D,GACE;AACX;AACL;AACJ;AACU;AAM/C,MAAMK,YAAYA,GAAG,CAAC,EAC3BC,WAAW,EACO;IAClB,MAAM,EAAEC,kBAAkB,EAAEC,mBAAmB,EAAE,GAAGJ,gBAAgBA;IAEpE,MAAMK,OAAON,WAAWA;IAExB,qBACE;kBACGK,uBAAuBC,OACtBF,mCACE,IAACA;YAAmB,sBAAsBD;2BAE1C,IAACJ,qBAAqBA;YAAC,SAASI;sBAC9B,kBAAC;gBAAI,KAAKL,YAAYA,CAACD,iBAAeA;;aAGxC;;AAGV,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/message-list/styles.js","sources":["../../../../src/webchat/message-list/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\ninterface MessageContainerProps {\n $isLastSystemMessage?: boolean\n}\n\nexport const MessageContainer = styled.div<MessageContainerProps>`\n display: flex;\n overflow-x: hidden;\n flex-direction: column;\n flex: none;\n white-space: pre;\n word-wrap: break-word;\n margin-bottom: ${({ $isLastSystemMessage }) =>\n $isLastSystemMessage ? '8px' : '0'};\n`\n\nexport const DefaultIntroImage = styled.img`\n max-height: 50%;\n width: 100%;\n`\n\nexport const ContainerScrollButton = styled.div`\n position: sticky;\n left: 85%;\n bottom: 15px;\n\n background-color: #6d6a78;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 37px;\n height: 37px;\n border-radius: 50%;\n`\n\nexport const ContainerUnreadMessagesBanner = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n\n border-top: 1px solid #e8e8ea;\n padding: 8px;\n color: #6d6a78;\n font-size: 14px;\n font-weight: 400;\n width: 100%;\n\n img {\n width: 10px;\n }\n`\n\nexport const ScrollableMessageList = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain; // https://css-tricks.com/almanac/properties/o/overscroll-behavior/\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n`\n"],"names":["styled","MessageContainer","$isLastSystemMessage","DefaultIntroImage","ContainerScrollButton","ContainerUnreadMessagesBanner","ScrollableMessageList"],"mappings":";;;AAAsC;AAM/B,MAAMC,gBAAgBA,GAAGD,qBAAiC,CAAC;;;;;;;iBAOjD,EAAE,CAAC,EAAEE,oBAAoB,EAAE,GACxCA,uBAAuB,QAAQ,IAAI;AACvC,CAAC;AAEM,MAAMC,iBAAiBA,GAAGH,qBAAU,CAAC;;;AAG5C,CAAC;AAEM,MAAMI,qBAAqBA,GAAGJ,qBAAU,CAAC;;;;;;;;;;;;;;AAchD,CAAC;AAEM,MAAMK,6BAA6BA,GAAGL,qBAAU,CAAC;;;;;;;;;;;;;;;;AAgBxD,CAAC;AAEM,MAAMM,qBAAqBA,GAAGN,qBAAU,CAAC;;;;;;;;;AAShD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/message-list/unread-messages-banner.js","sources":["../../../../src/webchat/message-list/unread-messages-banner.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/useAltText: we need to use alt text for the unread messages banner */\nimport type React from 'react'\nimport { useContext } from 'react'\n\nimport ArrowDown from '../../assets/arrow-down.svg'\nimport { resolveImage } from '../../util/environment'\nimport { WebchatContext } from '../../webchat/context'\nimport { ContainerUnreadMessagesBanner } from './styles'\nimport { useNotifications } from './use-notifications'\n\ninterface UnreadMessagesBannerProps {\n unreadMessagesBannerRef: React.RefObject<HTMLDivElement>\n}\n\nexport const UnreadMessagesBanner = ({\n unreadMessagesBannerRef,\n}: UnreadMessagesBannerProps): JSX.Element => {\n const { webchatState } = useContext(WebchatContext)\n\n const { notificationsEnabled, CustomUnreadMessagesBanner, bannerText } =\n useNotifications()\n\n return (\n <>\n {notificationsEnabled ? (\n <div ref={unreadMessagesBannerRef}>\n {CustomUnreadMessagesBanner ? (\n <CustomUnreadMessagesBanner />\n ) : (\n <ContainerUnreadMessagesBanner>\n <img src={resolveImage(ArrowDown)} />\n {webchatState.numUnreadMessages} {bannerText}\n </ContainerUnreadMessagesBanner>\n )}\n </div>\n ) : null}\n </>\n )\n}\n"],"names":["useContext","ArrowDown","resolveImage","WebchatContext","ContainerUnreadMessagesBanner","useNotifications","UnreadMessagesBanner","unreadMessagesBannerRef","webchatState","notificationsEnabled","CustomUnreadMessagesBanner","bannerText"],"mappings":";;;;;;;;;;;;;;;AAAA,kGAAkG;AAEhE;AAEiB;AACE;AACC;AACE;AACF;AAM/C,MAAMM,oBAAoBA,GAAG,CAAC,EACnCC,uBAAuB,EACG;IAC1B,MAAM,EAAEC,YAAY,EAAE,GAAGR,UAAUA,CAACG,cAAcA;IAElD,MAAM,EAAEM,oBAAoB,EAAEC,0BAA0B,EAAEC,UAAU,EAAE,GACpEN,gBAAgBA;IAElB,qBACE;kBACGI,qCACC,IAAC;YAAI,KAAKF;sBACPG,2CACC,IAACA,gDAED,KAACN,6BAA6BA;;kCAC5B,IAAC;wBAAI,KAAKF,YAAYA,CAACD,UAASA;;oBAC/BO,aAAa,iBAAiB;oBAAC;oBAAEG;;;aAItC;;AAGV,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/message-list/use-debounce.js","sources":["../../../../src/webchat/message-list/use-debounce.ts"],"sourcesContent":["import { useEffect, useState } from 'react'\n\nexport function useDebounce(delay?: number) {\n const [show, setShow] = useState(false)\n useEffect(() => {\n const timeoutId = setTimeout(() => {\n setShow(true)\n }, delay || 500)\n\n return () => {\n clearTimeout(timeoutId)\n }\n }, [])\n\n return show\n}\n"],"names":["useEffect","useState","useDebounce","delay","show","setShow","timeoutId","setTimeout","clearTimeout"],"mappings":";;;AAA2C;AAEpC,SAASE,WAAWA,CAACC,KAAc;IACxC,MAAM,CAACC,MAAMC,QAAQ,GAAGJ,QAAQA,CAAC;IACjCD,SAASA,CAAC;QACR,MAAMM,YAAYC,WAAW;YAC3BF,QAAQ;QACV,GAAGF,SAAS;QAEZ,OAAO;YACLK,aAAaF;QACf;IACF,GAAG,EAAE;IAEL,OAAOF;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/message-list/use-notifications.js","sources":["../../../../src/webchat/message-list/use-notifications.ts"],"sourcesContent":["import { useContext } from 'react'\n\nimport { WEBCHAT } from '../../constants'\nimport { WebchatContext } from '../../webchat/context'\n\nexport function useNotifications() {\n const { getThemeProperty } = useContext(WebchatContext)\n\n const CustomUnreadMessagesBanner = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.notificationsBannerCustom\n )\n\n const notificationsBannerEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.notificationsBannerEnabled\n )\n\n const notificationsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.notificationsEnabled,\n CustomUnreadMessagesBanner || notificationsBannerEnabled\n )\n\n const bannerText = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.notificationsBannerText\n )\n\n const CustomScrollButton = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.scrollButtonCustom\n )\n\n const scrollButtonEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.scrollButtonEnabled,\n CustomScrollButton\n )\n\n return {\n notificationsEnabled,\n bannerText,\n CustomUnreadMessagesBanner,\n CustomScrollButton,\n scrollButtonEnabled,\n }\n}\n"],"names":["useContext","WEBCHAT","WebchatContext","useNotifications","getThemeProperty","CustomUnreadMessagesBanner","notificationsBannerEnabled","notificationsEnabled","bannerText","CustomScrollButton","scrollButtonEnabled"],"mappings":";;;;;;;AAAkC;AAEO;AACa;AAE/C,SAASG,gBAAgBA;IAC9B,MAAM,EAAEC,gBAAgB,EAAE,GAAGJ,UAAUA,CAACE,cAAcA;IAEtD,MAAMG,6BAA6BD,iBACjCH,mDAAmD;IAGrD,MAAMK,6BAA6BF,iBACjCH,oDAAoD;IAGtD,MAAMM,uBAAuBH,iBAC3BH,8CAA8C,EAC9CI,8BAA8BC;IAGhC,MAAME,aAAaJ,iBACjBH,iDAAiD;IAGnD,MAAMQ,qBAAqBL,iBACzBH,4CAA4C;IAG9C,MAAMS,sBAAsBN,iBAC1BH,6CAA6C,EAC7CQ;IAGF,OAAO;QACLF;QACAC;QACAH;QACAI;QACAC;IACF;AACF"}
@@ -1 +0,0 @@
1
- export declare const WebchatReplies: () => import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/replies/index.js","sources":["../../../../src/webchat/replies/index.tsx"],"sourcesContent":["import { useContext } from 'react'\n\nimport { WEBCHAT } from '../../constants'\nimport { WebchatContext } from '../../webchat/context'\nimport { BotonicContainerId } from '../constants'\nimport { RepliesContainer, ReplyContainer, ScrollableReplies } from './styles'\n\nconst options = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n}\n\nexport const WebchatReplies = () => {\n const { webchatState, getThemeProperty, repliesRef } =\n useContext(WebchatContext)\n\n let justifyContent = 'center'\n const flexWrap = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.wrapReplies,\n 'wrap'\n )\n\n if (flexWrap === 'nowrap') {\n justifyContent = 'flex-start'\n } else if (getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.alignReplies)) {\n justifyContent =\n options[getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.alignReplies)]\n }\n\n return (\n <ScrollableReplies>\n <RepliesContainer\n id={BotonicContainerId.RepliesContainer}\n ref={repliesRef}\n className='replies-container'\n justify={justifyContent}\n wrap={flexWrap}\n >\n {webchatState.replies?.map((reply, i) => (\n // @ts-expect-error TODO: In this point reply is the the component to render\n <ReplyContainer key={`reply-${i}`}>{reply}</ReplyContainer>\n ))}\n </RepliesContainer>\n </ScrollableReplies>\n )\n}\n"],"names":["useContext","WEBCHAT","WebchatContext","BotonicContainerId","RepliesContainer","ReplyContainer","ScrollableReplies","options","WebchatReplies","webchatState","getThemeProperty","repliesRef","justifyContent","flexWrap","reply","i"],"mappings":";;;;;;;;;;;;;;AAAkC;AAEO;AACa;AACL;AAC6B;AAE9E,MAAMO,OAAOA,GAAG;IACd,MAAM;IACN,QAAQ;IACR,OAAO;AACT;AAEO,MAAMC,cAAcA,GAAG;IAC5B,MAAM,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,UAAU,EAAE,GAClDX,UAAUA,CAACE,cAAcA;IAE3B,IAAIU,iBAAiB;IACrB,MAAMC,WAAWH,iBACfT,qCAAqC,EACrC;IAGF,IAAIY,aAAa,UAAU;QACzBD,iBAAiB;IACnB,OAAO,IAAIF,iBAAiBT,sCAAsC,GAAG;QACnEW,iBACEL,OAAO,CAACG,iBAAiBT,sCAAsC,EAAE;IACrE;IAEA,qBACE,IAACK,iBAAiBA;kBAChB,kBAACF,gBAAgBA;YACf,IAAID,mCAAmC;YACvC,KAAKQ;YACL,WAAU;YACV,SAASC;YACT,MAAMC;sBAELJ,aAAa,OAAO,EAAE,IAAI,CAACK,OAAOC,IACjC,4EAA4E;8BAC5E,IAACV,cAAcA;8BAAqBS;mBAAf,CAAC,MAAM,EAAEC,GAAG;;;AAK3C,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/replies/styles.js","sources":["../../../../src/webchat/replies/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const ScrollableReplies = styled.div`\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n`\n\ninterface RepliesContainerProps {\n justify: string\n wrap: string\n}\n\nexport const RepliesContainer = styled.div<RepliesContainerProps>`\n display: flex;\n text-align: center;\n justify-content: ${props => props.justify};\n flex-wrap: ${props => props.wrap};\n padding-bottom: 10px;\n margin-left: 5px;\n margin-right: 5px;\n overflow-x: auto;\n`\n\nexport const ReplyContainer = styled.div`\n flex: none;\n display: inline-block;\n margin: 3px;\n`\n"],"names":["styled","ScrollableReplies","RepliesContainer","props","ReplyContainer"],"mappings":";;;AAAsC;AAE/B,MAAMC,iBAAiBA,GAAGD,qBAAU,CAAC;;;AAG5C,CAAC;AAOM,MAAME,gBAAgBA,GAAGF,qBAAiC,CAAC;;;mBAG/C,EAAEG,CAAAA,QAASA,MAAM,OAAO,CAAC;aAC/B,EAAEA,CAAAA,QAASA,MAAM,IAAI,CAAC;;;;;AAKnC,CAAC;AAEM,MAAMC,cAAcA,GAAGJ,qBAAU,CAAC;;;;AAIzC,CAAC"}
@@ -1 +0,0 @@
1
- export function SessionView(props: any): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/session-view.js","sources":["../../../src/webchat/session-view.jsx"],"sourcesContent":["import { JSONTree } from 'react-json-tree'\nimport styled from 'styled-components'\n\nimport { COLORS } from '../constants'\nimport { useWebchat } from './context/use-webchat'\n\nconst AttributeContainer = styled.div`\n display: flex;\n flex: none;\n padding: 12px;\n padding-bottom: 0px;\n font-size: 12px;\n font-weight: 600;\n color: ${COLORS.SOLID_WHITE};\n align-items: center;\n`\n\nconst Label = styled.div`\n flex: none;\n`\n\nconst Value = styled.div`\n flex: 1 1 auto;\n max-height: 20px;\n font-size: 16px;\n font-weight: 400;\n margin-left: 6px;\n color: ${COLORS.CURIOUS_BLUE};\n overflow-x: hidden;\n`\n\nconst SessionViewAttribute = props => (\n <AttributeContainer>\n <Label>{props.label}</Label>\n <Value>{props.value}</Value>\n </AttributeContainer>\n)\n\nconst SessionViewContent = styled.div`\n position: relative;\n width: ${props => (props.show ? '100%' : '0%')};\n height: 100%;\n display: flex;\n background-color: ${COLORS.DAINTREE_BLUE};\n font-family: Arial, Helvetica, sans-serif;\n flex-direction: column;\n z-index: 100000;\n transition: all 0.2s ease-in-out;\n`\n\nconst ToggleTab = styled.div`\n position: absolute;\n top: 10px;\n right: -32px;\n width: 32px;\n height: 32px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${COLORS.SOLID_WHITE_ALPHA_0_8};\n font-size: 14px;\n font-weight: 600;\n background-color: ${COLORS.DAINTREE_BLUE};\n flex-direction: column;\n z-index: 100000;\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n`\n\nconst ContentContainer = styled.div`\n overflow-y: auto;\n overflow-x: auto;\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n`\n\nconst Title = styled.div`\n padding: 12px;\n text-align: center;\n color: ${COLORS.SOLID_WHITE};\n border-bottom: 1px solid ${COLORS.SOLID_WHITE_ALPHA_0_2};\n`\n\nconst SessionContainer = styled.div`\n flex: 1 1 auto;\n height: 100%;\n overflow-y: auto;\n`\n\nconst KeepSessionContainer = styled.div`\n flex: none;\n padding: 12px;\n color: ${COLORS.SOLID_WHITE_ALPHA_0_8};\n font-size: 12px;\n`\n\nexport const SessionView = props => {\n const { webchatState, updateDevSettings } = props.webchatHooks || useWebchat()\n const { latestInput: input, session, lastRoutePath } = webchatState\n const toggleSessionView = () =>\n updateDevSettings({\n ...webchatState.devSettings,\n showSessionView: !webchatState.devSettings.showSessionView,\n })\n const toggleKeepSessionOnReload = () =>\n updateDevSettings({\n ...webchatState.devSettings,\n keepSessionOnReload: !webchatState.devSettings.keepSessionOnReload,\n })\n return (\n <SessionViewContent show={webchatState.devSettings.showSessionView}>\n <ToggleTab onClick={toggleSessionView}>\n {webchatState.devSettings.showSessionView ? '⇤' : '⇥'}\n </ToggleTab>\n <ContentContainer>\n <Title>Botonic Dev Console</Title>\n <SessionViewAttribute\n label='INPUT:'\n value={\n input && Object.keys(input).length\n ? `[${input.type}] ${input.data || ''}`\n : ''\n }\n />\n <SessionViewAttribute label='PAYLOAD:' value={input.payload} />\n <SessionViewAttribute\n label='PATH:'\n value={lastRoutePath ? `/${lastRoutePath}` : '/'}\n />\n <SessionViewAttribute label='SESSION:' />\n <SessionContainer>\n <JSONTree data={session} hideRoot={true} />\n </SessionContainer>\n <KeepSessionContainer>\n <label>\n <input\n type='checkbox'\n name='toggleKeepSessionOnReload'\n checked={Boolean(webchatState.devSettings.keepSessionOnReload)}\n onChange={toggleKeepSessionOnReload}\n />\n Keep session on reload\n </label>\n </KeepSessionContainer>\n </ContentContainer>\n </SessionViewContent>\n )\n}\n"],"names":["JSONTree","styled","COLORS","useWebchat","AttributeContainer","Label","Value","SessionViewAttribute","props","SessionViewContent","ToggleTab","ContentContainer","Title","SessionContainer","KeepSessionContainer","SessionView","webchatState","updateDevSettings","input","session","lastRoutePath","toggleSessionView","toggleKeepSessionOnReload","Object","Boolean"],"mappings":";;;;;;;;;;;;AAA0C;AACJ;AAED;AACa;AAElD,MAAMI,kBAAkBA,GAAGH,qBAAU,CAAC;;;;;;;SAO7B,EAAEC,kBAAkB,CAAC;;AAE9B,CAAC;AAED,MAAMG,KAAKA,GAAGJ,qBAAU,CAAC;;AAEzB,CAAC;AAED,MAAMK,KAAKA,GAAGL,qBAAU,CAAC;;;;;;SAMhB,EAAEC,mBAAmB,CAAC;;AAE/B,CAAC;AAED,MAAMK,oBAAoBA,GAAGC,CAAAA,sBAC3B,KAACJ,kBAAkBA;;0BACjB,IAACC,KAAKA;0BAAEG,MAAM,KAAK;;0BACnB,IAACF,KAAKA;0BAAEE,MAAM,KAAK;;;;AAIvB,MAAMC,kBAAkBA,GAAGR,qBAAU,CAAC;;SAE7B,EAAEO,CAAAA,QAAUA,MAAM,IAAI,GAAG,SAAS,KAAM;;;oBAG7B,EAAEN,oBAAoB,CAAC;;;;;AAK3C,CAAC;AAED,MAAMQ,SAASA,GAAGT,qBAAU,CAAC;;;;;;;;;;SAUpB,EAAEC,4BAA4B,CAAC;;;oBAGpB,EAAEA,oBAAoB,CAAC;;;;;AAK3C,CAAC;AAED,MAAMS,gBAAgBA,GAAGV,qBAAU,CAAC;;;;;;AAMpC,CAAC;AAED,MAAMW,KAAKA,GAAGX,qBAAU,CAAC;;;SAGhB,EAAEC,kBAAkB,CAAC;2BACH,EAAEA,4BAA4B,CAAC;AAC1D,CAAC;AAED,MAAMW,gBAAgBA,GAAGZ,qBAAU,CAAC;;;;AAIpC,CAAC;AAED,MAAMa,oBAAoBA,GAAGb,qBAAU,CAAC;;;SAG/B,EAAEC,4BAA4B,CAAC;;AAExC,CAAC;AAEM,MAAMa,WAAWA,GAAGP,CAAAA;IACzB,MAAM,EAAEQ,YAAY,EAAEC,iBAAiB,EAAE,GAAGT,MAAM,YAAY,IAAIL,UAAUA;IAC5E,MAAM,EAAE,aAAae,KAAK,EAAEC,OAAO,EAAEC,aAAa,EAAE,GAAGJ;IACvD,MAAMK,oBAAoB,IACxBJ,kBAAkB;YAChB,GAAGD,aAAa,WAAW;YAC3B,iBAAiB,CAACA,aAAa,WAAW,CAAC,eAAe;QAC5D;IACF,MAAMM,4BAA4B,IAChCL,kBAAkB;YAChB,GAAGD,aAAa,WAAW;YAC3B,qBAAqB,CAACA,aAAa,WAAW,CAAC,mBAAmB;QACpE;IACF,qBACE,KAACP,kBAAkBA;QAAC,MAAMO,aAAa,WAAW,CAAC,eAAe;;0BAChE,IAACN,SAASA;gBAAC,SAASW;0BACjBL,aAAa,WAAW,CAAC,eAAe,GAAG,MAAM;;0BAEpD,KAACL,gBAAgBA;;kCACf,IAACC,KAAKA;kCAAC;;kCACP,IAACL,oBAAoBA;wBACnB,OAAM;wBACN,OACEW,SAASK,OAAO,IAAI,CAACL,OAAO,MAAM,GAC9B,CAAC,CAAC,EAAEA,MAAM,IAAI,CAAC,EAAE,EAAEA,MAAM,IAAI,IAAI,IAAI,GACrC;;kCAGR,IAACX,oBAAoBA;wBAAC,OAAM;wBAAW,OAAOW,MAAM,OAAO;;kCAC3D,IAACX,oBAAoBA;wBACnB,OAAM;wBACN,OAAOa,gBAAgB,CAAC,CAAC,EAAEA,eAAe,GAAG;;kCAE/C,IAACb,oBAAoBA;wBAAC,OAAM;;kCAC5B,IAACM,gBAAgBA;kCACf,kBAACb,QAAQA;4BAAC,MAAMmB;4BAAS,UAAU;;;kCAErC,IAACL,oBAAoBA;kCACnB,mBAAC;;8CACC,IAAC;oCACC,MAAK;oCACL,MAAK;oCACL,SAASU,QAAQR,aAAa,WAAW,CAAC,mBAAmB;oCAC7D,UAAUM;;gCACV;;;;;;;;AAOd,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/styles.js","sources":["../../../src/webchat/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nimport { COLORS } from '../constants'\n\nexport const StyledWebchat = styled.div`\n position: fixed;\n right: ${props => props.theme.style.right};\n bottom: ${props => props.theme.style.bottom};\n width: ${props => props.theme.style.width};\n height: ${props => props.theme.style.height};\n margin: auto;\n background-color: ${props => props.theme.style.backgroundColor};\n border-radius: 10px;\n box-shadow: ${props => props.theme.style.boxShadow};\n font-family: ${props => props.theme.style.fontFamily};\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n\n @media (max-width: ${props => props.theme.mobileBreakpoint}px) {\n position: ${props => props.theme.mobileStyle.position};\n right: ${props => props.theme.mobileStyle.right};\n bottom: ${props => props.theme.mobileStyle.bottom};\n width: ${props => props.theme.mobileStyle.width};\n height: ${props => props.theme.mobileStyle.height};\n border-radius: ${props => props.theme.mobileStyle.borderRadius};\n font-size: ${props => props.theme.mobileStyle.fontSize};\n }\n`\n\nexport const ErrorMessageContainer = styled.div`\n position: relative;\n display: flex;\n z-index: 1;\n justify-content: center;\n width: 100%;\n`\n\nexport const ErrorMessage = styled.div`\n position: absolute;\n top: 10px;\n font-size: 14px;\n line-height: 20px;\n padding: 4px 11px;\n display: flex;\n background-color: ${COLORS.ERROR_RED};\n color: ${COLORS.CONCRETE_WHITE};\n border-radius: 5px;\n align-items: center;\n justify-content: center;\n font-family: ${props => props.theme.style.fontFamily};\n`\n\nexport const DarkBackgroundMenu = styled.div`\n background: ${COLORS.SOLID_BLACK};\n opacity: 0.3;\n z-index: 1;\n right: 0;\n bottom: 0;\n border-radius: 10px;\n position: absolute;\n width: 100%;\n height: 100%;\n`\n"],"names":["styled","COLORS","StyledWebchat","props","ErrorMessageContainer","ErrorMessage","DarkBackgroundMenu"],"mappings":";;;;;AAAsC;AAED;AAE9B,MAAME,aAAaA,GAAGF,qBAAU,CAAC;;SAE/B,EAAEG,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;UAClC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;SACrC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;UAClC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;;oBAE1B,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;;cAEnD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;eACtC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;;;;;;qBAMlC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,gBAAgB,CAAC;cAC/C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;WAC/C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;WAC3C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;YACxC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;mBACnC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC;eACpD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC;;AAE3D,CAAC;AAEM,MAAMC,qBAAqBA,GAAGJ,qBAAU,CAAC;;;;;;AAMhD,CAAC;AAEM,MAAMK,YAAYA,GAAGL,qBAAU,CAAC;;;;;;;oBAOnB,EAAEC,gBAAgB,CAAC;SAC9B,EAAEA,qBAAqB,CAAC;;;;eAIlB,EAAEE,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;AACvD,CAAC;AAEM,MAAMG,kBAAkBA,GAAGN,qBAAU,CAAC;cAC/B,EAAEC,kBAAkB,CAAC;;;;;;;;;AASnC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/theme/default-theme.js","sources":["../../../../src/webchat/theme/default-theme.ts"],"sourcesContent":["import { COLORS, WEBCHAT, WEBCHAT_DEFAULT_CONTENTS } from '../../constants'\nimport type { WebchatTheme } from './types'\n\nexport const defaultTheme: WebchatTheme = {\n style: {\n width: '300px',\n height: '450px',\n borderRadius: '10px',\n fontFamily: \"'Noto Sans JP', sans-serif\",\n fontSize: '16px',\n position: 'fixed',\n right: '20px',\n bottom: '20px',\n backgroundColor: COLORS.SOLID_WHITE,\n boxShadow: `${COLORS.SOLID_BLACK_ALPHA_0_2} 0px 0px 12px`,\n },\n mobileBreakpoint: 768,\n mobileStyle: {\n width: '100%',\n height: '100%',\n borderRadius: '0px',\n fontSize: '16px',\n position: 'absolute',\n right: '0px',\n bottom: '0px',\n },\n header: {\n title: 'Botonic',\n subtitle: '',\n image: WEBCHAT.DEFAULTS.LOGO,\n style: {\n borderRadius: '10px 10px 0px 0px',\n },\n mobileStyle: {\n borderRadius: '0px',\n },\n },\n brand: {\n color: COLORS.BOTONIC_BLUE,\n image: WEBCHAT.DEFAULTS.LOGO,\n },\n button: {\n autodisable: false,\n disabledstyle: {\n opacity: 0.5,\n cursor: 'auto',\n pointerEvents: 'none',\n },\n messageType: 'text',\n hoverBackground: COLORS.CONCRETE_WHITE,\n hoverTextColor: COLORS.SOLID_BLACK,\n style: {\n width: '100%',\n maxHeight: '80px',\n height: 'auto',\n fontFamily: 'inherit',\n fontSize: '14px',\n fontWeight: 'normal',\n background: COLORS.SOLID_WHITE,\n color: COLORS.SOLID_BLACK,\n outline: '0',\n border: ` 1px solid ${COLORS.SEASHELL_WHITE}`,\n borderRadius: '0px',\n padding: '12px 32px',\n overflow: 'hidden',\n },\n urlIcon: {\n enable: false,\n image: WEBCHAT.DEFAULTS.URL_ICON,\n },\n },\n message: {\n user: {\n blobTick: true,\n },\n bot: {\n blobTick: true,\n },\n },\n triggerButton: { image: WEBCHAT.DEFAULTS.LOGO },\n userInput: {\n attachments: { enable: undefined },\n box: {\n placeholder: WEBCHAT_DEFAULT_CONTENTS.INPUT_PLACEHOLDER,\n },\n emojiPicker: { enable: undefined },\n sendButton: { enable: true },\n enable: true,\n },\n carousel: {\n enableArrows: true,\n },\n animations: { enable: true },\n notifications: {\n enable: false,\n banner: {\n enable: false,\n text: 'unread messages',\n },\n triggerButton: { enable: false },\n },\n}\n"],"names":["COLORS","WEBCHAT","WEBCHAT_DEFAULT_CONTENTS","defaultTheme","undefined"],"mappings":";;;AAA2E;AAGpE,MAAMG,YAAYA,GAAiB;IACxC,OAAO;QACL,OAAO;QACP,QAAQ;QACR,cAAc;QACd,YAAY;QACZ,UAAU;QACV,UAAU;QACV,OAAO;QACP,QAAQ;QACR,iBAAiBH,kBAAkB;QACnC,WAAW,GAAGA,4BAA4B,CAAC,aAAa,CAAC;IAC3D;IACA,kBAAkB;IAClB,aAAa;QACX,OAAO;QACP,QAAQ;QACR,cAAc;QACd,UAAU;QACV,UAAU;QACV,OAAO;QACP,QAAQ;IACV;IACA,QAAQ;QACN,OAAO;QACP,UAAU;QACV,OAAOC,qBAAqB;QAC5B,OAAO;YACL,cAAc;QAChB;QACA,aAAa;YACX,cAAc;QAChB;IACF;IACA,OAAO;QACL,OAAOD,mBAAmB;QAC1B,OAAOC,qBAAqB;IAC9B;IACA,QAAQ;QACN,aAAa;QACb,eAAe;YACb,SAAS;YACT,QAAQ;YACR,eAAe;QACjB;QACA,aAAa;QACb,iBAAiBD,qBAAqB;QACtC,gBAAgBA,kBAAkB;QAClC,OAAO;YACL,OAAO;YACP,WAAW;YACX,QAAQ;YACR,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,YAAYA,kBAAkB;YAC9B,OAAOA,kBAAkB;YACzB,SAAS;YACT,QAAQ,CAAC,WAAW,EAAEA,qBAAqB,EAAE;YAC7C,cAAc;YACd,SAAS;YACT,UAAU;QACZ;QACA,SAAS;YACP,QAAQ;YACR,OAAOC,yBAAyB;QAClC;IACF;IACA,SAAS;QACP,MAAM;YACJ,UAAU;QACZ;QACA,KAAK;YACH,UAAU;QACZ;IACF;IACA,eAAe;QAAE,OAAOA,qBAAqB;IAAC;IAC9C,WAAW;QACT,aAAa;YAAE,QAAQG;QAAU;QACjC,KAAK;YACH,aAAaF,0CAA0C;QACzD;QACA,aAAa;YAAE,QAAQE;QAAU;QACjC,YAAY;YAAE,QAAQ;QAAK;QAC3B,QAAQ;IACV;IACA,UAAU;QACR,cAAc;IAChB;IACA,YAAY;QAAE,QAAQ;IAAK;IAC3B,eAAe;QACb,QAAQ;QACR,QAAQ;YACN,QAAQ;YACR,MAAM;QACR;QACA,eAAe;YAAE,QAAQ;QAAM;IACjC;AACF,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/theme/types.js","sources":["../../../../src/webchat/theme/types.ts"],"sourcesContent":["import type {\n BlockInputOption,\n ButtonProps,\n CustomMessageType,\n} from '../../components/index-types'\n\nexport interface ImagePreviewerProps {\n src: string\n isPreviewerOpened: boolean\n closePreviewer: () => void\n}\nexport interface CoverComponentProps {\n closeComponent: () => void\n}\n\nexport interface CoverComponentOptions {\n component: React.ComponentType<CoverComponentProps>\n props?: any\n}\n\nexport type PersistentMenuCloseOption = { closeLabel: string }\nexport type PersistentMenuOption = { label: string } & ButtonProps\n\nexport type PersistentMenuOptionsTheme = (\n | PersistentMenuCloseOption\n | PersistentMenuOption\n)[]\n\nexport interface PersistentMenuOptionsProps {\n onClick: () => void\n options: any\n}\n\nexport interface BlobProps {\n blobTick?: boolean\n blobTickStyle?: any\n blobWidth?: string\n imageStyle?: any\n}\n\nexport interface CustomButtonProps {\n children: React.ReactNode\n onClick?: () => void\n}\n\ninterface ButtonStyle {\n width?: string\n maxHeight?: string\n height?: string\n fontFamily?: string\n fontSize?: string\n fontWeight?: string\n background?: string\n color?: string\n outline?: string\n border?: string\n borderRadius?: string\n padding?: string\n overflow?: string\n}\n\nexport interface WebchatTheme {\n style: {\n width?: string\n height?: string\n borderRadius?: string\n fontFamily?: string\n fontSize?: string\n position?: 'fixed' | 'absolute'\n right?: string\n bottom?: string\n backgroundColor?: string\n boxShadow?: string\n }\n mobileBreakpoint: number\n mobileStyle: {\n width?: string\n height?: string\n borderRadius?: string\n fontSize?: string\n position?: 'fixed' | 'absolute'\n right?: string\n bottom?: string\n }\n\n coverComponent?: CoverComponentOptions\n webview?: {\n style?: any\n header?: {\n style?: any\n }\n }\n animations?: { enable?: boolean }\n intro?: {\n style?: any\n image?: string\n custom?: React.ComponentType\n }\n brand?: { color?: string; image?: string }\n header?: {\n title?: string\n subtitle?: string\n image?: string\n style?: {\n borderRadius?: string\n }\n mobileStyle?: {\n borderRadius?: string\n }\n custom?: React.ComponentType\n }\n message?: {\n bot?: BlobProps & { image?: string; style?: any }\n agent?: { image?: string }\n user?: BlobProps & { style?: any }\n // TODO: Review type used in customTypes should be a component exported by default with customMessage function\n customTypes?: CustomMessageType[]\n style?: any\n timestamps?: {\n withImage?: boolean\n format: () => string\n style?: any\n enable?: boolean\n }\n }\n button?: {\n autodisable?: boolean\n disabledstyle?: {\n opacity?: number\n cursor?: string\n pointerEvents?: string\n backgroundColor?: string\n }\n hoverBackground?: string\n hoverTextColor?: string\n messageType?: 'text' | 'postback'\n urlIcon?: {\n image?: string\n enable?: boolean\n }\n style?: ButtonStyle\n custom?: React.ComponentType<CustomButtonProps>\n }\n replies?: {\n align?: 'left' | 'center' | 'right'\n wrap?: 'wrap' | 'nowrap'\n }\n carousel?: {\n arrow?: {\n left: { custom?: React.ComponentType }\n right: { custom?: React.ComponentType }\n }\n enableArrows?: boolean\n }\n reply?: {\n style?: any\n custom?: React.ComponentType\n }\n triggerButton: {\n image?: string\n style?: any\n custom?: React.ComponentType\n }\n notifications?: {\n enable?: boolean\n banner?: {\n custom?: React.ComponentType\n enable?: boolean\n text?: string\n }\n triggerButton?: { enable?: boolean }\n }\n scrollButton?: {\n enable?: boolean\n custom?: React.ComponentType\n }\n markdownStyle?: string // string template with css styles\n userInput?: {\n attachments?: {\n enable?: boolean\n custom?: React.ComponentType\n }\n blockInputs?: BlockInputOption[]\n box?: {\n placeholder: string\n style?: any\n }\n emojiPicker?: {\n enable?: boolean\n custom?: React.ComponentType\n }\n menu?: {\n darkBackground?: boolean\n custom?: React.ComponentType<PersistentMenuOptionsProps>\n }\n menuButton?: { custom?: React.ComponentType }\n persistentMenu?: PersistentMenuOptionsTheme\n sendButton?: {\n enable?: boolean\n custom?: React.ComponentType\n }\n enable?: boolean\n style?: any\n }\n imagePreviewer?: React.ComponentType<ImagePreviewerProps>\n}\n"],"names":[],"mappings":"AA6MC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/tracking.js","sources":["../../../src/webchat/tracking.ts"],"sourcesContent":["import type { EventCustom, EventFeedback } from '@botonic/core'\nimport { useContext } from 'react'\n\nimport type { ActionRequest } from '../index-types'\nimport { WebchatContext } from './context'\n\ninterface UseTracking {\n trackCustomEvent: (event: EventCustom) => Promise<void>\n trackFeedbackEvent: (event: EventFeedback) => Promise<void>\n}\n\nexport function useTracking(): UseTracking {\n const { webchatState, trackEvent } = useContext(WebchatContext)\n\n const getRequest = () => {\n const request = {\n session: {\n ...webchatState.session,\n },\n getUserCountry: () => webchatState.session.user?.country || '',\n getUserLocale: () => webchatState.session.user?.locale || '',\n getSystemLocale: () => {\n return webchatState.session.user?.system_locale || ''\n },\n } as unknown as ActionRequest\n\n return request\n }\n\n const trackCustomEvent = async (event: EventCustom) => {\n if (!trackEvent) {\n return\n }\n\n const request = getRequest()\n const { action, ...eventArgs } = event\n await trackEvent(request, action, eventArgs)\n }\n\n const trackFeedbackEvent = async (event: EventFeedback) => {\n if (!trackEvent) {\n return\n }\n\n const request = getRequest()\n const { action, ...eventArgs } = event\n await trackEvent(request, action, eventArgs)\n }\n\n return { trackCustomEvent, trackFeedbackEvent }\n}\n"],"names":["useContext","WebchatContext","useTracking","webchatState","trackEvent","getRequest","request","trackCustomEvent","event","action","eventArgs","trackFeedbackEvent"],"mappings":";;;;;AACkC;AAGQ;AAOnC,SAASE,WAAWA;IACzB,MAAM,EAAEC,YAAY,EAAEC,UAAU,EAAE,GAAGJ,UAAUA,CAACC,cAAcA;IAE9D,MAAMI,aAAa;QACjB,MAAMC,UAAU;YACd,SAAS;gBACP,GAAGH,aAAa,OAAO;YACzB;YACA,gBAAgB,IAAMA,aAAa,OAAO,CAAC,IAAI,EAAE,WAAW;YAC5D,eAAe,IAAMA,aAAa,OAAO,CAAC,IAAI,EAAE,UAAU;YAC1D,iBAAiB;gBACf,OAAOA,aAAa,OAAO,CAAC,IAAI,EAAE,iBAAiB;YACrD;QACF;QAEA,OAAOG;IACT;IAEA,MAAMC,mBAAmB,OAAOC;QAC9B,IAAI,CAACJ,YAAY;YACf;QACF;QAEA,MAAME,UAAUD;QAChB,MAAM,EAAEI,MAAM,EAAE,GAAGC,WAAW,GAAGF;QACjC,MAAMJ,WAAWE,SAASG,QAAQC;IACpC;IAEA,MAAMC,qBAAqB,OAAOH;QAChC,IAAI,CAACJ,YAAY;YACf;QACF;QAEA,MAAME,UAAUD;QAChB,MAAM,EAAEI,MAAM,EAAE,GAAGC,WAAW,GAAGF;QACjC,MAAMJ,WAAWE,SAASG,QAAQC;IACpC;IAEA,OAAO;QAAEH;QAAkBI;IAAmB;AAChD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/trigger-button/index.js","sources":["../../../../src/webchat/trigger-button/index.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: we need to use static elements for the trigger button */\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: we need to use key with click events for the trigger button */\nimport { useContext } from 'react'\n\nimport { ROLES, WEBCHAT } from '../../constants'\nimport { resolveImage } from '../../util/environment'\nimport { WebchatContext } from '../../webchat/context'\nimport {\n StyledTriggerButton,\n TriggerImage,\n UnreadMessagesCounter,\n} from './styles'\n\nexport const TriggerButton = (): JSX.Element => {\n const { webchatState, getThemeProperty, toggleWebchat } =\n useContext(WebchatContext)\n\n const getTriggerImage = () => {\n const image = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.triggerButtonImage,\n undefined\n )\n\n if (!image) {\n webchatState.theme.triggerButton.image = WEBCHAT.DEFAULTS.LOGO\n return null\n }\n return image\n }\n\n const triggerButtonImage = getTriggerImage()\n\n const triggerButtonStyle = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.triggerButtonStyle\n )\n\n const notificationsTriggerButtonEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.notificationsTriggerButtonEnabled\n )\n\n const notificationsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.notificationsEnabled,\n notificationsTriggerButtonEnabled\n )\n\n const CustomTriggerButton = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.customTrigger\n )\n\n const handleClick = (event: any) => {\n toggleWebchat(true)\n event.preventDefault()\n }\n\n return (\n <div onClick={handleClick}>\n {webchatState.numUnreadMessages !== 0 && notificationsEnabled && (\n <UnreadMessagesCounter className='trigger-notifications'>\n {webchatState.numUnreadMessages}\n </UnreadMessagesCounter>\n )}\n {CustomTriggerButton ? (\n <CustomTriggerButton />\n ) : (\n <StyledTriggerButton\n role={ROLES.TRIGGER_BUTTON}\n style={triggerButtonStyle}\n >\n {triggerButtonImage && (\n <TriggerImage src={resolveImage(triggerButtonImage)} />\n )}\n </StyledTriggerButton>\n )}\n </div>\n )\n}\n"],"names":["useContext","ROLES","WEBCHAT","resolveImage","WebchatContext","StyledTriggerButton","TriggerImage","UnreadMessagesCounter","TriggerButton","webchatState","getThemeProperty","toggleWebchat","getTriggerImage","image","undefined","triggerButtonImage","triggerButtonStyle","notificationsTriggerButtonEnabled","notificationsEnabled","CustomTriggerButton","handleClick","event"],"mappings":";;;;;;;;;;;;;;AAAA,kHAAkH,GAClH,kHAAkH,GAChF;AAEc;AACK;AACC;AAKrC;AAEV,MAAMQ,aAAaA,GAAG;IAC3B,MAAM,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GACrDX,UAAUA,CAACI,cAAcA;IAE3B,MAAMQ,kBAAkB;QACtB,MAAMC,QAAQH,iBACZR,4CAA4C,EAC5CY;QAGF,IAAI,CAACD,OAAO;YACVJ,aAAa,KAAK,CAAC,aAAa,CAAC,KAAK,GAAGP,qBAAqB;YAC9D,OAAO;QACT;QACA,OAAOW;IACT;IAEA,MAAME,qBAAqBH;IAE3B,MAAMI,qBAAqBN,iBACzBR,4CAA4C;IAG9C,MAAMe,oCAAoCP,iBACxCR,2DAA2D;IAG7D,MAAMgB,uBAAuBR,iBAC3BR,8CAA8C,EAC9Ce;IAGF,MAAME,sBAAsBT,iBAC1BR,uCAAuC;IAGzC,MAAMkB,cAAc,CAACC;QACnBV,cAAc;QACdU,MAAM,cAAc;IACtB;IAEA,qBACE,KAAC;QAAI,SAASD;;YACXX,aAAa,iBAAiB,KAAK,KAAKS,sCACvC,IAACX,qBAAqBA;gBAAC,WAAU;0BAC9BE,aAAa,iBAAiB;;YAGlCU,oCACC,IAACA,yCAED,IAACd,mBAAmBA;gBAClB,MAAMJ,oBAAoB;gBAC1B,OAAOe;0BAEND,oCACC,IAACT,YAAYA;oBAAC,KAAKH,YAAYA,CAACY;;;;;AAM5C,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/trigger-button/styles.js","sources":["../../../../src/webchat/trigger-button/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nimport { COLORS } from '../../constants'\n\nexport const StyledTriggerButton = styled.div`\n cursor: pointer;\n position: fixed;\n background: ${COLORS.SOLID_WHITE};\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n width: 65px;\n height: 65px;\n bottom: 20px;\n right: 10px;\n padding: 8px;\n`\n\nexport const UnreadMessagesCounter = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n position: fixed;\n right: 20px;\n bottom: 80px;\n width: 24px;\n height: 24px;\n background-color: ${COLORS.RED_NOTIFICATIONS};\n color: white;\n z-index: 10;\n`\n\nexport const TriggerImage = styled.img`\n max-width: 100%;\n max-height: 100%;\n`\n"],"names":["styled","COLORS","StyledTriggerButton","UnreadMessagesCounter","TriggerImage"],"mappings":";;;;;AAAsC;AAEE;AAEjC,MAAME,mBAAmBA,GAAGF,qBAAU,CAAC;;;cAGhC,EAAEC,kBAAkB,CAAC;;;;;;;;;;;AAWnC,CAAC;AAEM,MAAME,qBAAqBA,GAAGH,qBAAU,CAAC;;;;;;;;;;oBAU5B,EAAEC,wBAAwB,CAAC;;;AAG/C,CAAC;AAEM,MAAMG,YAAYA,GAAGJ,qBAAU,CAAC;;;AAGvC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/typing-indicator/index.js","sources":["../../../../src/webchat/typing-indicator/index.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef } from 'react'\n\nimport { COLORS, ROLES } from '../../constants'\nimport { Dot, TypingContainer, TypingMsgWrapper } from './styles'\n\nconst TypingIndicator = forwardRef<HTMLDivElement, any>(\n (_props, ref: ForwardedRef<HTMLDivElement>) => (\n <TypingContainer ref={ref}>\n <TypingMsgWrapper\n role={ROLES.TYPING_INDICATOR}\n className='typing-indicator'\n backgroundColor={COLORS.SEASHELL_WHITE}\n >\n <Dot />\n <Dot />\n <Dot />\n </TypingMsgWrapper>\n </TypingContainer>\n )\n)\n\nTypingIndicator.displayName = 'TypingIndicator'\n\nexport default TypingIndicator\n"],"names":["forwardRef","COLORS","ROLES","Dot","TypingContainer","TypingMsgWrapper","TypingIndicator","_props","ref"],"mappings":";;;;;;;;;;AAAqD;AAEN;AACkB;AAEjE,MAAMM,eAAeA,iBAAGN,UAAUA,CAChC,CAACO,QAAQC,oBACP,IAACJ,eAAeA;QAAC,KAAKI;kBACpB,mBAACH,gBAAgBA;YACf,MAAMH,sBAAsB;YAC5B,WAAU;YACV,iBAAiBD,qBAAqB;;8BAEtC,IAACE,GAAGA;8BACJ,IAACA,GAAGA;8BACJ,IAACA,GAAGA;;;;AAMZG,eAAeA,CAAC,WAAW,GAAG;AAE9B,+CAAeA,eAAeA,EAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/typing-indicator/styles.js","sources":["../../../../src/webchat/typing-indicator/styles.ts"],"sourcesContent":["import styled, { keyframes } from 'styled-components'\n\nconst blink = keyframes`\n 50% {\n opacity: 1;\n }\n`\n\nconst bulge = keyframes`\n 50% {\n transform: scale(1.05);\n }\n`\n\nexport const TypingContainer = styled.div`\n padding: 0px 8px 8px 8px;\n`\n\ninterface TypingMsgWrapperProps {\n backgroundColor: string\n}\n\nexport const TypingMsgWrapper = styled.div<TypingMsgWrapperProps>`\n will-change: transform;\n width: 44px;\n line-height: 0px;\n border-radius: 20px;\n padding: 8px 2px;\n text-align: center;\n display: block;\n margin: 8px;\n position: relative;\n animation: 2s ${bulge} infinite ease-out;\n background-color: ${props => props.backgroundColor};\n`\n\nexport const Dot = styled.span`\n height: 6px;\n width: 6px;\n margin: 0 1px;\n background-color: #9e9ea1;\n display: inline-block;\n border-radius: 50%;\n opacity: 0.4;\n &:nth-of-type(1) {\n animation: 1s ${blink} infinite 0.3333s;\n }\n &:nth-of-type(2) {\n animation: 1s ${blink} infinite 0.6666s;\n }\n &:nth-of-type(3) {\n animation: 1s ${blink} infinite 1s;\n }\n`\n"],"names":["styled","keyframes","blink","bulge","TypingContainer","TypingMsgWrapper","props","Dot"],"mappings":";;;AAAqD;AAErD,MAAME,KAAKA,GAAGD,SAAS,CAAC;;;;AAIxB,CAAC;AAED,MAAME,KAAKA,GAAGF,SAAS,CAAC;;;;AAIxB,CAAC;AAEM,MAAMG,eAAeA,GAAGJ,qBAAU,CAAC;;AAE1C,CAAC;AAMM,MAAMK,gBAAgBA,GAAGL,qBAAiC,CAAC;;;;;;;;;;gBAUlD,EAAEG,KAAKA,CAAC;oBACJ,EAAEG,CAAAA,QAASA,MAAM,eAAe,CAAC;AACrD,CAAC;AAEM,MAAMC,GAAGA,GAAGP,sBAAW,CAAC;;;;;;;;;kBASb,EAAEE,KAAKA,CAAC;;;kBAGR,EAAEA,KAAKA,CAAC;;;kBAGR,EAAEA,KAAKA,CAAC;;AAE1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/use-storage-state-hook.js","sources":["../../../src/webchat/use-storage-state-hook.js"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\n// Code taken from https://github.com/leny/react-use-storage/blob/master/src/index.js\nconst IS_BROWSER =\n typeof window !== 'undefined' &&\n typeof navigator !== 'undefined' &&\n typeof document !== 'undefined'\n\nexport function useStorageState(storage, key, defaultValue) {\n let evtTarget\n\n try {\n evtTarget = new EventTarget()\n } catch {\n evtTarget = (IS_BROWSER ? document : {})?.createElement?.('phony')\n }\n\n const raw = storage?.getItem(key)\n\n const [value, setValue] = useState(raw ? JSON.parse(raw) : defaultValue)\n\n const updater = useCallback(\n (updatedValue, remove = false) => {\n setValue(updatedValue)\n storage[remove ? 'removeItem' : 'setItem'](\n key,\n JSON.stringify(updatedValue)\n )\n evtTarget.dispatchEvent(\n new CustomEvent('storage_change', { detail: { key } })\n )\n },\n [key]\n )\n\n defaultValue != null && !raw && updater(defaultValue)\n\n useEffect(() => {\n const listener = ({ detail }) => {\n if (detail.key === key) {\n const lraw = storage?.getItem(key)\n\n lraw !== raw && setValue(JSON.parse(lraw))\n }\n }\n\n evtTarget.addEventListener('storage_change', listener)\n return () => evtTarget.removeEventListener('storage_change', listener)\n })\n\n if (storage === null) {\n return [undefined, undefined]\n }\n return [value, updater, () => updater(null, true)]\n}\n"],"names":["useCallback","useEffect","useState","IS_BROWSER","window","navigator","document","useStorageState","storage","key","defaultValue","evtTarget","EventTarget","raw","value","setValue","JSON","updater","updatedValue","remove","CustomEvent","listener","detail","lraw","undefined"],"mappings":";;;AAAwD;AAExD,qFAAqF;AACrF,MAAMG,UAAUA,GACd,OAAOC,WAAW,eAClB,OAAOC,cAAc,eACrB,OAAOC,aAAa;AAEf,SAASC,eAAeA,CAACC,OAAO,EAAEC,GAAG,EAAEC,YAAY;IACxD,IAAIC;IAEJ,IAAI;QACFA,YAAY,IAAIC;IAClB,EAAE,OAAM;QACND,YAAaR,CAAAA,UAAUA,GAAGG,WAAW,CAAC,IAAI,gBAAgB;IAC5D;IAEA,MAAMO,MAAML,SAAS,QAAQC;IAE7B,MAAM,CAACK,OAAOC,SAAS,GAAGb,QAAQA,CAACW,MAAMG,KAAK,KAAK,CAACH,OAAOH;IAE3D,MAAMO,UAAUjB,WAAWA,CACzB,CAACkB,cAAcC,SAAS,KAAK;QAC3BJ,SAASG;QACTV,OAAO,CAACW,SAAS,eAAe,UAAU,CACxCV,KACAO,KAAK,SAAS,CAACE;QAEjBP,UAAU,aAAa,CACrB,IAAIS,YAAY,kBAAkB;YAAE,QAAQ;gBAAEX;YAAI;QAAE;IAExD,GACA;QAACA;KAAI;IAGPC,gBAAgB,QAAQ,CAACG,OAAOI,QAAQP;IAExCT,SAASA,CAAC;QACR,MAAMoB,WAAW,CAAC,EAAEC,MAAM,EAAE;YAC1B,IAAIA,OAAO,GAAG,KAAKb,KAAK;gBACtB,MAAMc,OAAOf,SAAS,QAAQC;gBAE9Bc,SAASV,OAAOE,SAASC,KAAK,KAAK,CAACO;YACtC;QACF;QAEAZ,UAAU,gBAAgB,CAAC,kBAAkBU;QAC7C,OAAO,IAAMV,UAAU,mBAAmB,CAAC,kBAAkBU;IAC/D;IAEA,IAAIb,YAAY,MAAM;QACpB,OAAO;YAACgB;YAAWA;SAAU;IAC/B;IACA,OAAO;QAACV;QAAOG;QAAS,IAAMA,QAAQ,MAAM;KAAM;AACpD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"webchat/utils.js","sources":["../../../src/webchat/utils.ts"],"sourcesContent":["import { BotonicAction, type BotonicActionType } from '@botonic/core'\n\nexport const getParsedAction = (botonicAction: BotonicActionType) => {\n const splittedAction = botonicAction.split(`${BotonicAction.CreateCase}:`)\n if (splittedAction.length <= 1) {\n return undefined\n }\n return JSON.parse(splittedAction[1])\n}\n"],"names":["BotonicAction","getParsedAction","botonicAction","splittedAction","undefined","JSON"],"mappings":";;;AAAqE;AAE9D,MAAMC,eAAeA,GAAG,CAACC;IAC9B,MAAMC,iBAAiBD,cAAc,KAAK,CAAC,GAAGF,wBAAwB,CAAC,CAAC,CAAC;IACzE,IAAIG,eAAe,MAAM,IAAI,GAAG;QAC9B,OAAOC;IACT;IACA,OAAOC,KAAK,KAAK,CAACF,cAAc,CAAC,EAAE;AACrC,EAAC"}