@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
@@ -0,0 +1,114 @@
1
+ import { type ServerConfig } from '@botonic/core';
2
+ import type React from 'react';
3
+ import type { BlockInputOption, WebchatSettingsProps } from './components/index.js';
4
+ import type { CloseWebviewOptions } from './contexts.js';
5
+ import { type ActionRequest, type Event, type EventArgs, type OnStateChangeArgs, type OnUserInputArgs, type PreviewUtils, type WebchatArgs, type WebchatLocaleContents, type WebchatMessage, type WebchatRef } from './index-types.js';
6
+ import type { CoverComponentOptions, PersistentMenuOptionsTheme, WebchatTheme } from './webchat/theme/types.js';
7
+ export declare class WebchatApp {
8
+ theme?: Partial<WebchatTheme>;
9
+ persistentMenu?: PersistentMenuOptionsTheme;
10
+ coverComponent?: CoverComponentOptions;
11
+ blockInputs?: BlockInputOption[];
12
+ enableEmojiPicker?: boolean;
13
+ enableAttachments?: boolean;
14
+ enableUserInput?: boolean;
15
+ enableAnimations?: boolean;
16
+ hostId?: string;
17
+ shadowDOM?: boolean | (() => boolean);
18
+ defaultDelay?: number;
19
+ defaultTyping?: number;
20
+ storage?: Storage | null;
21
+ storageKey: string;
22
+ onInit?: (app: WebchatApp, args: any) => void;
23
+ onOpen?: (app: WebchatApp, args: any) => void;
24
+ onClose?: (app: WebchatApp, args: any) => void;
25
+ onMessage?: (app: WebchatApp, message: WebchatMessage) => void;
26
+ onTrackEvent?: (request: ActionRequest, eventName: string, args?: EventArgs) => Promise<void>;
27
+ onConnectionChange?: (app: WebchatApp, isOnline: boolean) => void;
28
+ contentsByLocale?: Record<string, WebchatLocaleContents>;
29
+ appId?: string;
30
+ visibility?: boolean | (() => boolean) | 'dynamic';
31
+ server?: ServerConfig;
32
+ previewUtils?: PreviewUtils;
33
+ webchatRef: React.RefObject<WebchatRef | null>;
34
+ private reactRoot;
35
+ private host;
36
+ private hubtypeService;
37
+ constructor({ theme, persistentMenu, coverComponent, blockInputs, enableEmojiPicker, enableAttachments, enableUserInput, enableAnimations, hostId, shadowDOM, defaultDelay, defaultTyping, storage, storageKey, onInit, onOpen, onClose, onMessage, onTrackEvent, onConnectionChange, contentsByLocale, appId, visibility, server, previewUtils, }: WebchatArgs);
38
+ createRootElement(host: HTMLElement | null): void;
39
+ getReactMountNode(node?: (HTMLElement | null) | ShadowRoot): Element | DocumentFragment;
40
+ onInitWebchat(...args: [any]): void;
41
+ onOpenWebchat(...args: [any]): void;
42
+ onCloseWebchat(...args: [any]): void;
43
+ onUserInput({ user, input }: OnUserInputArgs): Promise<void>;
44
+ onTrackEventWebchat(request: ActionRequest, eventName: string, args?: EventArgs): Promise<void>;
45
+ onConnectionRegained(): Promise<void>;
46
+ onStateChange(args: OnStateChangeArgs): void;
47
+ onServiceEvent(event: Event): void;
48
+ updateUser(user: any): void;
49
+ setSystemLocale(locale: string): void;
50
+ setUserLocale(locale: string): void;
51
+ setUserCountry(country: string): void;
52
+ addBotMessage(message: any): void;
53
+ addSystemMessage(message: any): void;
54
+ addBotText(text: string): void;
55
+ addUserMessage(message: any): void;
56
+ addUserText(text: string): void;
57
+ addUserPayload(payload: string): void;
58
+ setTyping(typing: boolean): void;
59
+ open(): void;
60
+ close(): void;
61
+ closeWebview(options?: CloseWebviewOptions): Promise<void>;
62
+ toggle(): void;
63
+ openCoverComponent(): void;
64
+ closeCoverComponent(): void;
65
+ renderCustomComponent(_customComponent: any): void;
66
+ unmountCustomComponent(): void;
67
+ toggleCoverComponent(): void;
68
+ getMessages(): {
69
+ id: string;
70
+ ack: number;
71
+ unsentInput: import("@botonic/core").Input;
72
+ }[] | undefined;
73
+ clearMessages(): void;
74
+ getVisibility(): Promise<boolean>;
75
+ getLastMessageUpdate(): string | undefined;
76
+ updateMessageInfo(msgId: string, messageInfo: any): void | undefined;
77
+ updateWebchatSettings(settings: WebchatSettingsProps): void | undefined;
78
+ createInitialTheme(optionsAtRuntime?: WebchatArgs): WebchatTheme & Partial<WebchatTheme>;
79
+ createInitialThemeUserInput(theme: WebchatTheme, optionsAtRuntime?: WebchatArgs): {
80
+ attachments?: {
81
+ enable?: boolean;
82
+ custom?: React.ComponentType;
83
+ };
84
+ blockInputs?: BlockInputOption[];
85
+ box?: {
86
+ placeholder: string;
87
+ style?: any;
88
+ };
89
+ emojiPicker?: {
90
+ enable?: boolean;
91
+ custom?: React.ComponentType;
92
+ };
93
+ menu?: {
94
+ darkBackground?: boolean;
95
+ custom?: React.ComponentType<import("./webchat/theme/types.js").PersistentMenuOptionsProps>;
96
+ };
97
+ menuButton?: {
98
+ custom?: React.ComponentType;
99
+ };
100
+ persistentMenu?: PersistentMenuOptionsTheme;
101
+ sendButton?: {
102
+ enable?: boolean;
103
+ custom?: React.ComponentType;
104
+ };
105
+ enable?: boolean;
106
+ style?: any;
107
+ };
108
+ getComponent(host: HTMLDivElement, optionsAtRuntime?: WebchatArgs): React.JSX.Element;
109
+ isWebchatVisible(appId: string): Promise<boolean>;
110
+ isOnline(): boolean | undefined;
111
+ resolveWebchatVisibility(optionsAtRuntime?: WebchatArgs): Promise<boolean>;
112
+ destroy(): void;
113
+ render(dest: HTMLDivElement, optionsAtRuntime?: WebchatArgs): Promise<void>;
114
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webchat-app.js","sources":["../src/webchat-app.tsx"],"sourcesContent":["import { HubtypeService, INPUT, type ServerConfig } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport type React from 'react'\nimport { createRef } from 'react'\nimport { createRoot, type Root } from 'react-dom/client'\n\nimport type { BlockInputOption, WebchatSettingsProps } from './components'\nimport { WEBCHAT } from './constants'\nimport type { CloseWebviewOptions } from './contexts'\nimport {\n type ActionRequest,\n type Event,\n type EventArgs,\n type OnStateChangeArgs,\n type OnUserInputArgs,\n type PreviewUtils,\n SENDERS,\n Typing,\n type WebchatArgs,\n type WebchatLocaleContents,\n type WebchatMessage,\n type WebchatRef,\n} from './index-types'\nimport { msgToBotonic } from './msg-to-botonic'\nimport { isShadowDOMSupported, onDOMLoaded } from './util/dom'\nimport { defaultTheme } from './webchat/theme/default-theme'\nimport type {\n CoverComponentOptions,\n PersistentMenuOptionsTheme,\n WebchatTheme,\n} from './webchat/theme/types'\nimport { Webchat } from './webchat/webchat'\n\nexport class WebchatApp {\n public theme?: Partial<WebchatTheme>\n public persistentMenu?: PersistentMenuOptionsTheme\n public coverComponent?: CoverComponentOptions\n public blockInputs?: BlockInputOption[]\n public enableEmojiPicker?: boolean\n public enableAttachments?: boolean\n public enableUserInput?: boolean\n public enableAnimations?: boolean\n public hostId?: string\n public shadowDOM?: boolean | (() => boolean)\n public defaultDelay?: number\n public defaultTyping?: number\n public storage?: Storage | null\n public storageKey: string\n public onInit?: (app: WebchatApp, args: any) => void\n public onOpen?: (app: WebchatApp, args: any) => void\n public onClose?: (app: WebchatApp, args: any) => void\n public onMessage?: (app: WebchatApp, message: WebchatMessage) => void\n public onTrackEvent?: (\n request: ActionRequest,\n eventName: string,\n args?: EventArgs\n ) => Promise<void>\n public onConnectionChange?: (app: WebchatApp, isOnline: boolean) => void\n public contentsByLocale?: Record<string, WebchatLocaleContents>\n public appId?: string\n public visibility?: boolean | (() => boolean) | 'dynamic'\n public server?: ServerConfig\n public previewUtils?: PreviewUtils\n public webchatRef: React.RefObject<WebchatRef | null>\n\n private reactRoot: Root | null = null\n private host: (HTMLElement | null) | ShadowRoot = null\n private hubtypeService: HubtypeService\n\n constructor({\n theme,\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n hostId = WEBCHAT.DEFAULTS.HOST_ID,\n shadowDOM = false,\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onTrackEvent,\n onConnectionChange,\n contentsByLocale,\n appId,\n visibility,\n server,\n previewUtils,\n }: WebchatArgs) {\n this.theme = theme\n this.persistentMenu = persistentMenu\n this.coverComponent = coverComponent\n this.blockInputs = blockInputs\n this.enableEmojiPicker = enableEmojiPicker\n this.enableAttachments = enableAttachments\n this.enableUserInput = enableUserInput\n this.enableAnimations = enableAnimations\n\n this.shadowDOM = Boolean(\n typeof shadowDOM === 'function' ? shadowDOM() : shadowDOM\n )\n if (this.shadowDOM && !isShadowDOMSupported()) {\n console.warn('[botonic] ShadowDOM not supported on this browser')\n this.shadowDOM = false\n }\n\n this.hostId = hostId || WEBCHAT.DEFAULTS.HOST_ID\n this.defaultDelay = defaultDelay\n this.defaultTyping = defaultTyping\n this.storage = storage === undefined ? localStorage : storage\n this.storageKey = storageKey || WEBCHAT.DEFAULTS.STORAGE_KEY\n this.onInit = onInit\n this.onOpen = onOpen\n this.onClose = onClose\n this.onMessage = onMessage\n this.onTrackEvent = onTrackEvent\n this.onConnectionChange = onConnectionChange\n this.contentsByLocale = contentsByLocale\n this.visibility = visibility\n this.server = server\n this.previewUtils = previewUtils\n this.webchatRef = createRef<WebchatRef>()\n this.appId = appId\n\n this.host = null\n this.reactRoot = null\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: createRootElement is a complex function that creates a root element for the webchat\n createRootElement(host: HTMLElement | null) {\n // Create root element <div id='root'> if not exists\n // Create shadowDOM to root element if needed\n if (host) {\n if (host.id && this.hostId) {\n if (host.id !== this.hostId) {\n console.warn(\n `[botonic] Host ID \"${host.id}\" don't match 'hostId' option: ${this.hostId}. Using value: ${host.id}.`\n )\n this.hostId = host.id\n }\n } else if (host.id) {\n this.hostId = host.id\n } else if (this.hostId) {\n host.id = this.hostId\n }\n } else {\n host = this.hostId ? document.getElementById(this.hostId) : null\n }\n\n if (!host) {\n host = document.createElement('div')\n host.id = this.hostId!\n if (document.body.firstChild) {\n document.body.insertBefore(host, document.body.firstChild)\n } else {\n document.body.appendChild(host)\n }\n }\n this.host = this.shadowDOM ? host.attachShadow({ mode: 'open' }) : host\n }\n\n getReactMountNode(\n node?: (HTMLElement | null) | ShadowRoot\n ): Element | DocumentFragment {\n if (!node) {\n node = this.host\n }\n\n if (node === null) {\n throw new Error('Host element not found')\n }\n\n // TODO: Review logic of ShadowRoot\n if ('shadowRoot' in node && node.shadowRoot !== null) {\n return node.shadowRoot\n }\n\n return node\n }\n\n onInitWebchat(...args: [any]) {\n this.onInit?.(this, ...args)\n }\n\n onOpenWebchat(...args: [any]) {\n this.onOpen?.(this, ...args)\n }\n\n onCloseWebchat(...args: [any]) {\n this.onClose?.(this, ...args)\n }\n\n async onUserInput({ user, input }: OnUserInputArgs): Promise<void> {\n if (!user) {\n return\n }\n\n this.onMessage?.(this, {\n ...input,\n sentBy: SENDERS.user,\n isUnread: false,\n } as unknown as WebchatMessage)\n this.hubtypeService.postMessage(user, {\n ...input,\n // TODO: Review if this is correct add sent_by or this is added in backend\n // sent_by: 'message_sent_by_user',\n })\n return\n }\n\n async onTrackEventWebchat(\n request: ActionRequest,\n eventName: string,\n args?: EventArgs\n ): Promise<void> {\n if (this.onTrackEvent) {\n await this.onTrackEvent(request, eventName, args)\n }\n }\n\n async onConnectionRegained() {\n return this.hubtypeService.onConnectionRegained()\n }\n\n onStateChange(args: OnStateChangeArgs) {\n const { user, messagesJSON } = args\n const lastMessage = messagesJSON[messagesJSON.length - 1]\n const lastMessageId = lastMessage?.id\n const lastMessageUpdateDate = this.getLastMessageUpdate()\n\n if (this.hubtypeService) {\n this.hubtypeService.lastMessageId = lastMessageId\n this.hubtypeService.lastMessageUpdateDate = lastMessageUpdateDate\n }\n\n if (!this.hubtypeService) {\n this.hubtypeService = new HubtypeService({\n appId: this.appId!,\n user,\n lastMessageId,\n lastMessageUpdateDate,\n onEvent: (event: any) => this.onServiceEvent(event),\n unsentInputs: () =>\n this.webchatRef.current\n ?.getMessages()\n .filter(msg => msg.ack === 0 && msg.unsentInput) || [],\n server: this.server,\n })\n }\n }\n\n onServiceEvent(event: Event) {\n if (event.action === 'connectionChange') {\n this.onConnectionChange?.(this, event.online)\n this.webchatRef.current?.setOnline(event.online)\n } else if (event.action === 'update_message_info' && event.message?.id) {\n this.updateMessageInfo(event.message.id, event.message)\n } else if (event.message?.type === 'update_webchat_settings') {\n this.updateWebchatSettings(event.message.data)\n } else if (event.message?.type === 'sender_action') {\n this.setTyping(event.message.data === Typing.On)\n } else {\n const isSystemMessage = (event.message as any)?.sent_by === SENDERS.system\n this.onMessage?.(this, {\n sentBy: isSystemMessage ? SENDERS.system : SENDERS.bot,\n ...event.message,\n } as unknown as WebchatMessage)\n\n if (isSystemMessage) {\n this.addSystemMessage(event.message)\n } else {\n this.addBotMessage(event.message)\n }\n }\n }\n\n updateUser(user: any) {\n this.webchatRef.current?.updateUser(user)\n }\n\n setSystemLocale(locale: string) {\n this.webchatRef.current?.updateUser({ system_locale: locale })\n }\n\n setUserLocale(locale: string) {\n this.webchatRef.current?.updateUser({ locale })\n }\n\n setUserCountry(country: string) {\n this.webchatRef.current?.updateUser({ country })\n }\n\n addBotMessage(message: any) {\n message.ack = 0\n message.isUnread = true\n message.sentBy = message.sent_by?.split('message_sent_by_')[1]\n delete message.sent_by\n const response = msgToBotonic(message, this.theme?.message?.customTypes)\n\n this.webchatRef.current?.addBotResponse({\n response,\n })\n }\n\n addSystemMessage(message: any) {\n message.ack = 0\n message.isUnread = true\n message.sentBy = SENDERS.system\n delete message.sent_by\n const response = msgToBotonic(message, this.theme?.message?.customTypes)\n\n this.webchatRef.current?.addSystemResponse({\n response,\n })\n }\n\n addBotText(text: string) {\n this.addBotMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserMessage(message: any) {\n this.webchatRef.current?.addUserMessage(message)\n }\n\n addUserText(text: string) {\n this.addUserMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserPayload(payload: string) {\n this.addUserMessage({ type: INPUT.POSTBACK, payload })\n }\n\n setTyping(typing: boolean) {\n this.webchatRef.current?.setTyping(typing)\n }\n\n open() {\n this.webchatRef.current?.openWebchat()\n }\n\n close() {\n this.webchatRef.current?.closeWebchat()\n }\n\n async closeWebview(options?: CloseWebviewOptions) {\n await this.webchatRef.current?.closeWebview(options)\n }\n\n // TODO: Remove this function because we have open and close functions\n toggle() {\n this.webchatRef.current?.toggleWebchat()\n }\n\n openCoverComponent() {\n this.webchatRef.current?.openCoverComponent()\n }\n\n closeCoverComponent() {\n this.webchatRef.current?.closeCoverComponent()\n }\n\n renderCustomComponent(_customComponent: any) {\n this.webchatRef.current?.renderCustomComponent(_customComponent)\n }\n\n unmountCustomComponent() {\n this.webchatRef.current?.unmountCustomComponent()\n }\n\n // TODO: Remove this function because we have openCoverComponent and closeCoverComponent functions\n toggleCoverComponent() {\n this.webchatRef.current?.toggleCoverComponent()\n }\n\n getMessages() {\n return this.webchatRef.current?.getMessages()\n }\n\n clearMessages() {\n this.webchatRef.current?.clearMessages()\n }\n\n async getVisibility() {\n return this.resolveWebchatVisibility({\n appId: this.appId,\n visibility: this.visibility,\n })\n }\n\n getLastMessageUpdate() {\n return this.webchatRef.current?.getLastMessageUpdate()\n }\n\n updateMessageInfo(msgId: string, messageInfo: any) {\n return this.webchatRef.current?.updateMessageInfo(msgId, messageInfo)\n }\n\n updateWebchatSettings(settings: WebchatSettingsProps) {\n return this.webchatRef.current?.updateWebchatSettings(settings)\n }\n\n createInitialTheme(optionsAtRuntime: WebchatArgs = {}) {\n const theme = merge(defaultTheme, this.theme, optionsAtRuntime.theme)\n\n if (theme.animations === undefined) {\n theme.animations = {}\n }\n\n theme.animations.enable =\n theme.animations.enable ??\n optionsAtRuntime.enableAnimations ??\n this.enableAnimations\n\n theme.coverComponent =\n theme.coverComponent ??\n optionsAtRuntime.coverComponent ??\n this.coverComponent\n\n theme.userInput = this.createInitialThemeUserInput(theme, optionsAtRuntime)\n\n return theme\n }\n\n createInitialThemeUserInput(\n theme: WebchatTheme,\n optionsAtRuntime: WebchatArgs = {}\n ) {\n if (!theme.userInput) {\n theme.userInput = {}\n }\n\n // Set main userInput properties\n theme.userInput = {\n ...theme.userInput,\n enable:\n theme.userInput.enable ??\n optionsAtRuntime.enableUserInput ??\n this.enableUserInput,\n persistentMenu:\n theme.userInput.persistentMenu ??\n optionsAtRuntime.persistentMenu ??\n this.persistentMenu,\n blockInputs:\n theme.userInput.blockInputs ??\n optionsAtRuntime.blockInputs ??\n this.blockInputs,\n }\n\n // Set emoji picker properties\n theme.userInput.emojiPicker = {\n ...(theme.userInput.emojiPicker || {}),\n enable:\n theme.userInput.emojiPicker?.enable ??\n optionsAtRuntime.enableEmojiPicker ??\n this.enableEmojiPicker,\n }\n\n // Set attachments properties\n theme.userInput.attachments = {\n ...(theme.userInput.attachments || {}),\n enable:\n theme.userInput.attachments?.enable ??\n optionsAtRuntime.enableAttachments ??\n this.enableAttachments,\n }\n\n return theme.userInput\n }\n\n getComponent(host: HTMLDivElement, optionsAtRuntime: WebchatArgs = {}) {\n let {\n theme = {},\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onConnectionChange,\n contentsByLocale,\n onTrackEvent,\n appId,\n visibility,\n server,\n hostId,\n previewUtils,\n ...webchatOptions\n } = optionsAtRuntime\n theme = this.createInitialTheme(optionsAtRuntime)\n defaultDelay = defaultDelay || this.defaultDelay\n defaultTyping = defaultTyping || this.defaultTyping\n server = server || this.server\n this.storage = storage || this.storage\n this.storageKey = storageKey || this.storageKey\n this.onInit = onInit || this.onInit\n this.onOpen = onOpen || this.onOpen\n this.onClose = onClose || this.onClose\n this.onMessage = onMessage || this.onMessage\n this.onTrackEvent = onTrackEvent || this.onTrackEvent\n this.onConnectionChange = onConnectionChange || this.onConnectionChange\n this.contentsByLocale = contentsByLocale || this.contentsByLocale\n this.visibility = visibility || this.visibility\n this.appId = appId || this.appId\n this.hostId = hostId || this.hostId\n this.previewUtils = previewUtils || this.previewUtils\n this.createRootElement(host)\n\n return (\n <Webchat\n {...webchatOptions}\n ref={this.webchatRef}\n host={this.host}\n shadowDOM={this.shadowDOM}\n theme={theme as WebchatTheme}\n storage={this.storage}\n storageKey={this.storageKey}\n defaultDelay={defaultDelay}\n defaultTyping={defaultTyping}\n previewUtils={this.previewUtils}\n onInit={(...args: [any]) => this.onInitWebchat(...args)}\n onOpen={(...args: [any]) => this.onOpenWebchat(...args)}\n onClose={(...args: [any]) => this.onCloseWebchat(...args)}\n onUserInput={(...args: [any]) => this.onUserInput(...args)}\n onStateChange={(args: OnStateChangeArgs) => {\n this.onStateChange(args)\n }}\n onTrackEvent={(\n request: ActionRequest,\n eventName: string,\n args?: EventArgs\n ) => this.onTrackEventWebchat(request, eventName, args)}\n server={server}\n contentsByLocale={this.contentsByLocale}\n />\n )\n }\n\n async isWebchatVisible(appId: string): Promise<boolean> {\n try {\n const { status } = await HubtypeService.getWebchatVisibility(appId)\n return status === 200\n } catch (_e) {\n return false\n }\n }\n\n isOnline() {\n return this.webchatRef.current?.isOnline()\n }\n\n async resolveWebchatVisibility(\n optionsAtRuntime?: WebchatArgs\n ): Promise<boolean> {\n if (!optionsAtRuntime) {\n // If optionsAtRuntime is not provided, always render the webchat\n return true\n }\n\n let { appId, visibility } = optionsAtRuntime\n visibility = visibility || this.visibility\n\n if (visibility === undefined || visibility === true) {\n return true\n }\n\n if (typeof visibility === 'function' && visibility()) {\n return true\n }\n\n if (\n appId &&\n visibility === 'dynamic' &&\n (await this.isWebchatVisible(appId))\n ) {\n return true\n }\n\n return false\n }\n\n destroy() {\n if (this.hubtypeService) {\n this.hubtypeService.destroyPusher()\n }\n this.reactRoot?.unmount()\n if (this.storage) {\n this.storage.removeItem(this.storageKey)\n }\n }\n\n async render(dest: HTMLDivElement, optionsAtRuntime?: WebchatArgs) {\n onDOMLoaded(async () => {\n const isVisible = await this.resolveWebchatVisibility(optionsAtRuntime)\n if (isVisible) {\n const webchatComponent = this.getComponent(dest, optionsAtRuntime)\n const container = this.getReactMountNode(dest)\n this.reactRoot = createRoot(container)\n this.reactRoot.render(webchatComponent)\n }\n })\n }\n}\n"],"names":["HubtypeService","INPUT","merge","createRef","createRoot","WEBCHAT","SENDERS","Typing","msgToBotonic","isShadowDOMSupported","onDOMLoaded","defaultTheme","Webchat","WebchatApp","host","console","document","node","Error","args","user","input","request","eventName","messagesJSON","lastMessage","lastMessageId","lastMessageUpdateDate","event","msg","isSystemMessage","locale","country","message","response","text","payload","typing","options","_customComponent","msgId","messageInfo","settings","optionsAtRuntime","theme","undefined","defaultDelay","defaultTyping","storage","storageKey","onInit","onOpen","onClose","onMessage","onConnectionChange","contentsByLocale","onTrackEvent","appId","visibility","server","hostId","previewUtils","webchatOptions","status","_e","dest","isVisible","webchatComponent","container","persistentMenu","coverComponent","blockInputs","enableEmojiPicker","enableAttachments","enableUserInput","enableAnimations","shadowDOM","Boolean","localStorage"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview-app.js","sources":["../src/webview-app.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n// @ts-nocheck\nimport { PROVIDER, params2queryString, type Session } from '@botonic/core'\nimport axios from 'axios'\nimport React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { BrowserRouter, Route } from 'react-router-dom'\n\nimport {\n type CloseWebviewOptions,\n WebviewRequestContext,\n type WebviewRequestContextType,\n} from './contexts'\n\nenum WebviewUrlParams {\n Context = 'context',\n BotId = 'bot_id',\n UserId = 'user_id',\n HubtypeApiUrl = 'hubtype_api_url',\n}\n\nconst DEFAULT_HUBTYPE_API_URL = 'https://api.hubtype.com'\n\nclass App extends React.Component {\n private url: URL\n private hubtypeApiUrl: string = DEFAULT_HUBTYPE_API_URL\n\n constructor(props) {\n super(props)\n this.url = new URL(window.location.href)\n this.state = {\n session: null,\n params: {},\n }\n }\n\n async componentDidMount() {\n await this.initializeApp()\n }\n\n private async initializeApp() {\n try {\n const botId = this.url.searchParams.get(WebviewUrlParams.BotId)\n const chatId = this.url.searchParams.get(WebviewUrlParams.UserId)\n const hubtypeApiUrl = this.url.searchParams.get(\n WebviewUrlParams.HubtypeApiUrl\n )\n\n if (botId && chatId && hubtypeApiUrl) {\n const session = await this.getBotSessionContextFromExternalApi(\n hubtypeApiUrl,\n botId,\n chatId\n )\n this.hubtypeApiUrl = hubtypeApiUrl\n this.setState({\n session,\n params: this.getParamsFromUrl(),\n })\n } else {\n const session = this.getBotSessionContextFromUrl()\n this.hubtypeApiUrl = session._hubtype_api || DEFAULT_HUBTYPE_API_URL\n this.setState({\n session,\n params: this.getParamsFromUrl(),\n })\n }\n } catch (error) {\n console.error('Failed to initialize app:', error)\n const session = this.getBotSessionContextFromUrl()\n this.hubtypeApiUrl = session._hubtype_api || DEFAULT_HUBTYPE_API_URL\n this.setState({\n session,\n params: this.getParamsFromUrl(),\n })\n }\n }\n\n private async getBotSessionContextFromExternalApi(\n hubtypeApiUrl: string,\n botId: string,\n userId: string\n ) {\n const url = `${hubtypeApiUrl}/external/v2/conversational_apps/${botId}/users/${userId}/context/`\n const response = await axios.get(url)\n return response.data\n }\n\n private getBotSessionContextFromUrl() {\n const urlContext = this.url.searchParams.get(WebviewUrlParams.Context)\n try {\n return JSON.parse(urlContext || '{}')\n } catch (error) {\n console.error('Failed to parse session context from URL:', error)\n return {}\n }\n }\n\n private getParamsFromUrl() {\n const keysToExclude = [\n WebviewUrlParams.Context,\n WebviewUrlParams.BotId,\n WebviewUrlParams.UserId,\n WebviewUrlParams.HubtypeApiUrl,\n ]\n return Array.from(this.url.searchParams.entries())\n .filter(([key]) => !keysToExclude.includes(key))\n .reduce((params, [key, value]) => {\n params[key] = value\n return params\n }, {})\n }\n\n private async closeWebviewForProvider(\n provider: string,\n session: Session,\n _payload?: string\n ) {\n const { user } = session\n\n switch (provider) {\n case PROVIDER.WHATSAPP:\n location.href = `https://wa.me/${user.unformatted_phone_number}`\n break\n case PROVIDER.TELEGRAM:\n location.href = `https://t.me/${user.imp_id}`\n break\n case PROVIDER.APPLE:\n location.href = `https://bcrw.apple.com/urn:biz:${user.imp_id}`\n break\n case PROVIDER.TWITTER:\n location.href = `https://twitter.com/messages/compose?recipient_id=${user.imp_id}`\n break\n case PROVIDER.INSTAGRAM:\n window.close()\n break\n case PROVIDER.FACEBOOK:\n try {\n window.MessengerExtensions.requestCloseBrowser(\n // biome-ignore lint/suspicious/noEmptyBlockStatements: success callback is empty\n () => {}, // success callback\n () => window.close() // error callback\n )\n } catch (_error) {\n window.close()\n }\n break\n case PROVIDER.WEBCHAT:\n try {\n await parent.postMessage('botonicCloseWebview', '*')\n } catch (error) {\n console.error('Failed to send close message to parent:', error)\n }\n break\n default:\n console.warn(`Unknown provider: ${provider}`)\n }\n }\n\n async close(options?: CloseWebviewOptions) {\n if (!this.state.session) {\n console.error('No session available for closing webview')\n return\n }\n\n let payload = options?.payload || null\n\n if (options?.path) {\n payload = `__PATH_PAYLOAD__${options.path}`\n }\n\n if (payload) {\n if (options?.params) {\n payload = `${payload}?${params2queryString(options.params)}`\n }\n\n try {\n const url = `${this.hubtypeApiUrl}/v1/bots/${this.state.session.bot.id}/send_postback/`\n const data = {\n payload,\n chat_id: this.state.session.user.id,\n }\n await axios.post(url, data)\n } catch (error) {\n console.error('Failed to send postback:', error)\n }\n }\n\n await this.closeWebviewForProvider(\n this.state.session.user.provider,\n this.state.session,\n payload\n )\n }\n\n render() {\n if (!this.state.session) {\n return null\n }\n\n const webviewRequestContext: WebviewRequestContextType = {\n params: this.state.params,\n session: this.state.session,\n getUserCountry: () => this.state.session.user.country,\n getUserLocale: () => this.state.session.user.locale,\n getSystemLocale: () => this.state.session.user.system_locale,\n closeWebview: this.close.bind(this),\n }\n\n return (\n <WebviewRequestContext.Provider value={webviewRequestContext}>\n {this.props.webviews.map((Webview, i) => (\n <Route\n key={`route-${i}-${Webview.name}`}\n path={`/${Webview.name}`}\n component={Webview}\n />\n ))}\n </WebviewRequestContext.Provider>\n )\n }\n}\n\nexport class WebviewApp {\n constructor({ webviews, locales }) {\n this.webviews = webviews\n this.locales = locales\n }\n\n render(dest) {\n const component = (\n <BrowserRouter>\n <App webviews={this.webviews} locales={this.locales} />\n </BrowserRouter>\n )\n const reactRoot = createRoot(dest)\n reactRoot.render(component)\n }\n}\n"],"names":["PROVIDER","params2queryString","axios","React","createRoot","BrowserRouter","Route","WebviewRequestContext","WebviewUrlParams","DEFAULT_HUBTYPE_API_URL","App","botId","chatId","hubtypeApiUrl","session","error","console","userId","url","response","urlContext","JSON","keysToExclude","Array","key","params","value","provider","_payload","user","location","window","_error","parent","options","payload","data","webviewRequestContext","Webview","i","props","URL","WebviewApp","dest","component","reactRoot","webviews","locales"],"mappings":"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"}
package/package.json CHANGED
@@ -1,25 +1,26 @@
1
1
  {
2
+ "type": "module",
2
3
  "name": "@botonic/react",
3
- "version": "0.57.0-rslib-esm.0",
4
+ "version": "0.57.0-rslib-esm.2",
4
5
  "license": "MIT",
5
6
  "description": "Build Chatbots using React",
6
- "main": "./lib/esm/index.js",
7
- "module": "./lib/esm/index.js",
8
- "types": "./lib/esm/index.d.ts",
7
+ "main": "./lib/index.js",
8
+ "module": "./lib/index.js",
9
+ "types": "./lib/index.d.ts",
9
10
  "scripts": {
10
- "test:no-coverage": "../../node_modules/.bin/jest -c ./jest.config.js",
11
- "test": "../../node_modules/.bin/jest -c ./jest.config.js --coverage",
12
- "updateSnapshot": "../../node_modules/.bin/jest -c ./jest.config.js --updateSnapshot",
11
+ "test:no-coverage": "vitest run",
12
+ "test": "vitest run --coverage",
13
+ "updateSnapshot": "vitest run --update",
13
14
  "cloc": "../../scripts/qa/cloc-package.sh .",
14
15
  "prepublishOnly": "npm run build && npm run test && npm run lint",
15
- "build": "node ../../scripts/build/clean.mjs && rslib build --no-env",
16
- "build:watch": "node ../../scripts/build/clean.mjs && rslib build --watch --no-env",
16
+ "build": "rslib build --no-env",
17
+ "build:watch": "rslib build --watch --no-env",
17
18
  "lint": "biome check --write src/ tests/",
18
19
  "lint:check": "biome check src/ tests/",
19
20
  "format": "biome format --write src/ tests/"
20
21
  },
21
22
  "dependencies": {
22
- "@botonic/core": "^0.57.0-rslib-esm.0",
23
+ "@botonic/core": "0.57.0-rslib-esm.2",
23
24
  "axios": "^1.18.1",
24
25
  "emoji-picker-react": "^4.12.0",
25
26
  "lodash.merge": "^4.6.2",
@@ -34,12 +35,9 @@
34
35
  "uuid": "^10.0.0"
35
36
  },
36
37
  "devDependencies": {
37
- "@babel/plugin-transform-runtime": "^7.25.9",
38
- "@babel/preset-react": "^7.26.3",
39
38
  "@testing-library/jest-dom": "^6.6.3",
40
39
  "@testing-library/react": "^16.0.1",
41
40
  "@testing-library/user-event": "^14.6.1",
42
- "@types/jest": "^29.5.14",
43
41
  "@types/lodash.merge": "^4.6.9",
44
42
  "@types/parse5": "^7.0.0",
45
43
  "@types/react": "^18.3.18",
@@ -47,7 +45,6 @@
47
45
  "@types/styled-components": "^5.1.34",
48
46
  "@types/ua-parser-js": "^0.7.39",
49
47
  "@types/uuid": "^10.0.0",
50
- "babel-plugin-add-module-exports": "^1.0.4",
51
48
  "identity-obj-proxy": "^3.0.0",
52
49
  "intersection-observer": "^0.12.2",
53
50
  "react-test-renderer": "^18.3.1"
@@ -4,10 +4,11 @@ import { MultichannelCarousel } from './multichannel-carousel'
4
4
  import { MultichannelReply } from './multichannel-reply'
5
5
  import { MultichannelText } from './multichannel-text'
6
6
 
7
- export { Multichannel }
8
- export { MultichannelText }
9
- export { MultichannelButton }
10
- export { MultichannelReply }
11
- export { MultichannelCarousel }
12
-
13
7
  export * from './index-types'
8
+ export {
9
+ Multichannel,
10
+ MultichannelButton,
11
+ MultichannelCarousel,
12
+ MultichannelReply,
13
+ MultichannelText,
14
+ }
@@ -87,6 +87,7 @@ export const WebchatMessageList = () => {
87
87
  })
88
88
  })
89
89
  observer.observe(lastMessageRef.current)
90
+ return () => observer.disconnect()
90
91
  }
91
92
  }, [webchatState.messagesComponents])
92
93
 
@@ -815,4 +815,5 @@ const Webchat = forwardRef<WebchatRef | null, WebchatProps>((props, ref) => {
815
815
  })
816
816
 
817
817
  Webchat.displayName = 'Webchat'
818
+
818
819
  export { Webchat }
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sources":["../../src/app.jsx"],"sourcesContent":["export class App {\n constructor() {\n throw 'This setup is deprecated in Botonic versions >=0.9.0. Please read the migration guide at: https://github.com/hubtype/botonic/tree/master/packages/botonic-react/MIGRATION_GUIDE.md'\n }\n}\n"],"names":["App"],"mappings":"AAAO,MAAMA,GAAGA;IACd,aAAc;QACZ,MAAM;IACR;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"botonic-tester.js","sources":["../../src/botonic-tester.jsx"],"sourcesContent":["import { INPUT } from '@botonic/core'\nimport ReactDOMServer from 'react-dom/server'\n\nimport { Reply } from './components/reply'\nimport { Text } from './components/text'\n\nfunction decodeHTMLEntities(text) {\n const entities = {\n '&quot;': '\"',\n '&amp;': '&',\n '&lt;': '<',\n '&gt;': '>',\n '&apos;': \"'\",\n }\n\n return text.replace(\n /&quot;|&amp;|&lt;|&gt;|&apos;/g,\n match => entities[match]\n )\n}\n\nexport class BotonicInputTester {\n constructor(bot) {\n this.bot = bot\n }\n\n async text(inp, session = { user: { id: '123' } }, lastRoutePath = '') {\n const res = await this.bot.input({\n input: { type: INPUT.TEXT, data: inp },\n session: session,\n lastRoutePath: lastRoutePath,\n })\n return decodeHTMLEntities(res.response)\n }\n\n async payload(inp, session = { user: { id: '123' } }, lastRoutePath = '') {\n const res = await this.bot.input({\n input: { type: INPUT.POSTBACK, payload: inp },\n session: session,\n lastRoutePath: lastRoutePath,\n })\n return decodeHTMLEntities(res.response)\n }\n\n async path(inp, session = { user: { id: '123' } }, lastRoutePath = '') {\n const res = await this.bot.input({\n input: { type: INPUT.TEXT, payload: `__PATH_PAYLOAD__${inp}` },\n session: session,\n lastRoutePath: lastRoutePath,\n })\n return decodeHTMLEntities(res.response)\n }\n}\n\nexport class BotonicOutputTester {\n constructor(bot) {\n this.bot = bot\n }\n\n text(out, replies = null) {\n return decodeHTMLEntities(\n ReactDOMServer.renderToStaticMarkup(\n !replies ? (\n <Text>{out}</Text>\n ) : (\n <Text>\n {out}\n {replies}\n </Text>\n )\n )\n )\n }\n\n reply({ text, payload = null, path = null }) {\n if (payload) {\n return decodeHTMLEntities(\n ReactDOMServer.renderToStaticMarkup(\n <Reply payload={payload}>{text}</Reply>\n )\n )\n }\n if (path) {\n return decodeHTMLEntities(\n ReactDOMServer.renderToStaticMarkup(<Reply path={path}>{text}</Reply>)\n )\n }\n throw new Error('reply should contain a payload or a path')\n }\n\n replies(...args) {\n const replies = []\n for (let i = 0; i < args.length; i++) {\n const r = args[i]\n replies.push(\n this.reply({ text: r.text, payload: r.payload, path: r.path })\n )\n }\n return replies\n }\n}\n"],"names":["INPUT","ReactDOMServer","Reply","Text","decodeHTMLEntities","text","entities","match","BotonicInputTester","inp","session","lastRoutePath","res","bot","BotonicOutputTester","out","replies","payload","path","Error","args","i","r"],"mappings":";;;;;;;;;;;;AAAqC;AACQ;AAEH;AACF;AAExC,SAASI,kBAAkBA,CAACC,IAAI;IAC9B,MAAMC,WAAW;QACf,UAAU;QACV,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,UAAU;IACZ;IAEA,OAAOD,KAAK,OAAO,CACjB,kCACAE,CAAAA,QAASD,QAAQ,CAACC,MAAM;AAE5B;AAEO,MAAMC,kBAAkBA;IAK7B,MAAM,KAAKC,GAAG,EAAEC,UAAU;QAAE,MAAM;YAAE,IAAI;QAAM;IAAE,CAAC,EAAEC,gBAAgB,EAAE,EAAE;QACrE,MAAMC,MAAM,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B,OAAO;gBAAE,MAAMZ,UAAU;gBAAE,MAAMS;YAAI;YACrC,SAASC;YACT,eAAeC;QACjB;QACA,OAAOP,kBAAkBA,CAACQ,IAAI,QAAQ;IACxC;IAEA,MAAM,QAAQH,GAAG,EAAEC,UAAU;QAAE,MAAM;YAAE,IAAI;QAAM;IAAE,CAAC,EAAEC,gBAAgB,EAAE,EAAE;QACxE,MAAMC,MAAM,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B,OAAO;gBAAE,MAAMZ,cAAc;gBAAE,SAASS;YAAI;YAC5C,SAASC;YACT,eAAeC;QACjB;QACA,OAAOP,kBAAkBA,CAACQ,IAAI,QAAQ;IACxC;IAEA,MAAM,KAAKH,GAAG,EAAEC,UAAU;QAAE,MAAM;YAAE,IAAI;QAAM;IAAE,CAAC,EAAEC,gBAAgB,EAAE,EAAE;QACrE,MAAMC,MAAM,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC/B,OAAO;gBAAE,MAAMZ,UAAU;gBAAE,SAAS,CAAC,gBAAgB,EAAES,KAAK;YAAC;YAC7D,SAASC;YACT,eAAeC;QACjB;QACA,OAAOP,kBAAkBA,CAACQ,IAAI,QAAQ;IACxC;IA7BA,YAAYC,GAAG,CAAE;QACf,IAAI,CAAC,GAAG,GAAGA;IACb;AA4BF;AAEO,MAAMC,mBAAmBA;IAK9B,KAAKC,GAAG,EAAEC,UAAU,IAAI,EAAE;QACxB,OAAOZ,kBAAkBA,CACvBH,2BAAmC,CACjC,CAACe,wBACC,IAACb,IAAIA;sBAAEY;2BAEP,KAACZ,IAAIA;;gBACFY;gBACAC;;;IAKX;IAEA,MAAM,EAAEX,IAAI,EAAEY,UAAU,IAAI,EAAEC,OAAO,IAAI,EAAE,EAAE;QAC3C,IAAID,SAAS;YACX,OAAOb,kBAAkBA,CACvBH,2BAAmC,eACjC,IAACC,KAAKA;gBAAC,SAASe;0BAAUZ;;QAGhC;QACA,IAAIa,MAAM;YACR,OAAOd,kBAAkBA,CACvBH,2BAAmC,eAAC,IAACC,KAAKA;gBAAC,MAAMgB;0BAAOb;;QAE5D;QACA,MAAM,IAAIc,MAAM;IAClB;IAEA,QAAQ,GAAGC,IAAI,EAAE;QACf,MAAMJ,UAAU,EAAE;QAClB,IAAK,IAAIK,IAAI,GAAGA,IAAID,KAAK,MAAM,EAAEC,IAAK;YACpC,MAAMC,IAAIF,IAAI,CAACC,EAAE;YACjBL,QAAQ,IAAI,CACV,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAMM,EAAE,IAAI;gBAAE,SAASA,EAAE,OAAO;gBAAE,MAAMA,EAAE,IAAI;YAAC;QAEhE;QACA,OAAON;IACT;IA5CA,YAAYH,GAAG,CAAE;QACf,IAAI,CAAC,GAAG,GAAGA;IACb;AA2CF"}
@@ -1,9 +0,0 @@
1
- import type { AudioProps } from './index-types.js';
2
- export declare const Audio: {
3
- (props: AudioProps): import("react/jsx-runtime").JSX.Element;
4
- serialize: (audioProps: {
5
- src: string;
6
- }) => {
7
- audio: string;
8
- };
9
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/audio.js","sources":["../../../src/components/audio.tsx"],"sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport styled from 'styled-components'\n\nimport { ROLES } from '../constants'\nimport { staticAsset } from '../util/environment'\nimport type { AudioProps } from './index-types'\nimport { Message } from './message'\n\nconst StyledAudio = styled.audio`\n max-width: 100%;\n`\n\nconst serialize = (audioProps: { src: string }) => {\n return { audio: audioProps.src }\n}\n\nexport const Audio = (props: AudioProps) => {\n props = { ...props, src: staticAsset(props.src) }\n let content = props.children\n if (isBrowser()) {\n content = (\n <StyledAudio id='myAudio' controls>\n <source src={props.src} type='audio/mpeg' />\n Your browser does not support this audio format.\n </StyledAudio>\n )\n }\n return (\n <Message\n role={ROLES.AUDIO_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.AUDIO}\n >\n {content}\n </Message>\n )\n}\n\nAudio.serialize = serialize\n"],"names":["INPUT","isBrowser","styled","ROLES","staticAsset","Message","StyledAudio","serialize","audioProps","Audio","props","content"],"mappings":";;;;;;;;;;;;;;AAAgD;AACV;AAEF;AACa;AAEd;AAEnC,MAAMM,WAAWA,GAAGJ,uBAAY,CAAC;;AAEjC,CAAC;AAED,MAAMK,SAASA,GAAG,CAACC;IACjB,OAAO;QAAE,OAAOA,WAAW,GAAG;IAAC;AACjC;AAEO,MAAMC,KAAKA,GAAG,CAACC;IACpBA,QAAQ;QAAE,GAAGA,KAAK;QAAE,KAAKN,WAAWA,CAACM,MAAM,GAAG;IAAE;IAChD,IAAIC,UAAUD,MAAM,QAAQ;IAC5B,IAAIT,SAASA,IAAI;QACfU,wBACE,KAACL,WAAWA;YAAC,IAAG;YAAU,QAAQ;;8BAChC,IAAC;oBAAO,KAAKI,MAAM,GAAG;oBAAE,MAAK;;gBAAe;;;IAIlD;IACA,qBACE,IAACL,OAAOA;QACN,MAAMF,mBAAmB;QACzB,MAAMI,SAASA,CAACG;QACf,GAAGA,KAAK;QACT,MAAMV,WAAW;kBAEhBW;;AAGP,EAAC;AAEDF,KAAKA,CAAC,SAAS,GAAGF,SAASA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/button/index.js","sources":["../../../../src/components/button/index.tsx"],"sourcesContent":["import { INPUT } from '@botonic/core'\nimport { useContext } from 'react'\n\nimport { isInWebviewApp, resolveImage } from '../../util/environment'\nimport { renderComponent } from '../../util/react'\nimport { generateWebviewUrlWithParams } from '../../util/webviews'\nimport { WebchatContext } from '../../webchat/context'\nimport { ButtonsDisabler } from '../buttons-disabler'\nimport { COMPONENT_DISPLAY_NAMES } from '../constants'\nimport type { ButtonProps } from '../index-types'\nimport { StyledButton, StyledUrlImage } from './styles'\n\nexport const Button = (props: ButtonProps) => {\n const { webchatState, openWebview, sendPayload, sendInput, updateMessage } =\n useContext(WebchatContext)\n\n const autoDisable =\n webchatState.theme?.button?.autodisable || props.autodisable\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: handleClick is a complex function\n const handleClick = event => {\n event.preventDefault()\n\n const type = webchatState.theme?.button?.messageType\n\n if (props.webview) {\n openWebview(props.webview, props.params)\n } else if (props.path) {\n type === INPUT.POSTBACK\n ? sendPayload(`__PATH_PAYLOAD__${props.path}`)\n : sendInput({\n type: INPUT.TEXT,\n data: String(props.children),\n text: String(props.children),\n payload: `__PATH_PAYLOAD__${props.path}`,\n })\n } else if (props.payload) {\n type === INPUT.POSTBACK\n ? sendPayload(props.payload)\n : sendInput({\n type: INPUT.TEXT,\n data: String(props.children),\n text: String(props.children),\n payload: props.payload,\n })\n } else if (props.url) {\n const defaultTarget = props.target || '_blank'\n const target = isInWebviewApp() ? '_self' : defaultTarget\n window.open(props.url, target)\n }\n\n if (props.onClick) {\n props.onClick()\n }\n\n if (props.setDisabled) {\n props.setDisabled(true)\n const messageToUpdate = webchatState.messagesJSON.filter(\n m => m.id === props.parentId\n )[0]\n const updatedMsg = ButtonsDisabler.getUpdatedMessage(messageToUpdate)\n updateMessage(updatedMsg)\n }\n }\n\n const getClassName = (isCustom = false) => {\n if (isCustom) {\n return 'button-custom'\n }\n if (props.payload) {\n return 'button-payload'\n }\n if (props.url) {\n return 'button-url'\n }\n if (props.webview) {\n return 'button-webview'\n }\n if (props.path) {\n return 'button-path'\n }\n return ''\n }\n\n const renderBrowser = () => {\n const themeButton = webchatState.theme.button\n const urlIconEnabledProp = themeButton?.urlIcon?.enable\n const urlIconImage = themeButton?.urlIcon?.image\n const urlIcon = urlIconEnabledProp ? urlIconImage : undefined\n\n const CustomButton = themeButton?.custom\n\n if (CustomButton) {\n return (\n <div className={getClassName(true)} onClick={e => handleClick(e)}>\n <CustomButton>{props.children}</CustomButton>\n </div>\n )\n }\n\n return (\n <StyledButton\n className={getClassName()}\n onClick={e => handleClick(e)}\n disabled={props.disabled && autoDisable}\n >\n {props.children}\n {props.url && urlIcon && (\n <StyledUrlImage\n className='botonic-url-icon'\n src={resolveImage(urlIcon)}\n />\n )}\n </StyledButton>\n )\n }\n\n const renderNode = () => {\n const disabledProps = ButtonsDisabler.constructNodeProps({\n disabled: props.disabled,\n disabledstyle: props.disabledstyle,\n autodisable: props.autodisable,\n })\n if (props.webview) {\n return (\n <button\n // @ts-expect-error\n url={generateWebviewUrlWithParams(props.webview, props.params)}\n {...disabledProps}\n >\n {props.children}\n </button>\n )\n }\n\n if (props.path) {\n const payload = `__PATH_PAYLOAD__${props.path}`\n return (\n // @ts-expect-error\n <button payload={payload} {...disabledProps}>\n {props.children}\n </button>\n )\n }\n\n if (props.payload) {\n return (\n // @ts-expect-error\n <button payload={props.payload} {...disabledProps}>\n {props.children}\n </button>\n )\n }\n\n if (props.url) {\n return (\n // @ts-expect-error\n <button url={props.url} target={props.target} {...disabledProps}>\n {props.children}\n </button>\n )\n }\n\n if (props.onClick) {\n return null\n }\n\n throw new Error('Button missing payload, path, webview, url or onClick')\n }\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nButton.displayName = COMPONENT_DISPLAY_NAMES.Button\n\nButton.serialize = (buttonProps: ButtonProps) => {\n const payload = buttonProps.path\n ? `__PATH_PAYLOAD__${buttonProps.path}`\n : buttonProps.payload\n\n return {\n button: {\n payload,\n url: buttonProps.url,\n target: buttonProps.target,\n webview: buttonProps.webview && String(buttonProps.webview),\n title: buttonProps.children && String(buttonProps.children),\n ...ButtonsDisabler.withDisabledProps(buttonProps),\n },\n }\n}\n"],"names":["INPUT","useContext","isInWebviewApp","resolveImage","renderComponent","generateWebviewUrlWithParams","WebchatContext","ButtonsDisabler","COMPONENT_DISPLAY_NAMES","StyledButton","StyledUrlImage","Button","props","webchatState","openWebview","sendPayload","sendInput","updateMessage","autoDisable","handleClick","event","type","String","defaultTarget","target","window","messageToUpdate","m","updatedMsg","getClassName","isCustom","renderBrowser","themeButton","urlIconEnabledProp","urlIconImage","urlIcon","undefined","CustomButton","e","renderNode","disabledProps","payload","Error","buttonProps"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/button/styles.js","sources":["../../../../src/components/button/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const StyledButton = styled.button`\n display: flex;\n justify-content: center;\n align-content: center;\n gap: 6px;\n cursor: pointer;\n width: ${props => props.theme.button?.style?.width};\n max-height: ${props => props.theme.button?.style?.maxHeight};\n height: ${props => props.theme.button?.style?.height};\n font-family: ${props => props.theme.style?.fontFamily};\n font-size: ${props => props.theme.button?.style?.fontSize};\n font-weight: ${props => props.theme.button?.style?.fontWeight};\n background: ${props => props.theme.button?.style?.background};\n color: ${props => props.theme.button?.style?.color};\n outline: ${props => props.theme.button?.style?.outline};\n border: ${props => props.theme.button?.style?.border};\n border-radius: ${props => props.theme.button?.style?.borderRadius};\n padding: ${props => props.theme.button?.style?.padding};\n overflow: ${props => props.theme.button?.style?.overflow};\n\n &:hover {\n background: ${props => props.theme.button?.hoverBackground};\n color: ${props => props.theme.button?.hoverTextColor};\n }\n\n &:disabled {\n opacity: ${props => props.theme.button?.disabledstyle?.opacity};\n cursor: ${props => props.theme.button?.disabledstyle?.cursor};\n pointer-events: ${props =>\n props.theme.button?.disabledstyle?.pointerEvents};\n }\n`\n\nexport const StyledUrlImage = styled.img`\n width: 20px;\n`\n"],"names":["styled","StyledButton","props","StyledUrlImage"],"mappings":";;;AAAsC;AAE/B,MAAMC,YAAYA,GAAGD,wBAAa,CAAC;;;;;;SAMjC,EAAEE,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM;cACvC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,UAAU;UACpD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO;eACxC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,EAAE,WAAW;aAC3C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,SAAS;eAC7C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,WAAW;cAClD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,WAAW;SACtD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM;WAC1C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,QAAQ;UAC/C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,OAAO;iBACtC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,aAAa;WACzD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,QAAQ;YAC7C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,SAAS;;;gBAG3C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,gBAAgB;WACpD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,eAAe;;;;aAI5C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,eAAe,QAAQ;YACvD,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,MAAM,EAAE,eAAe,OAAO;oBAC7C,EAAEA,CAAAA,QAChBA,MAAM,KAAK,CAAC,MAAM,EAAE,eAAe,cAAc;;AAEvD,CAAC;AAEM,MAAMC,cAAcA,GAAGH,qBAAU,CAAC;;AAEzC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/buttons-disabler.js","sources":["../../../src/components/buttons-disabler.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type React from 'react'\n\nimport type { WebchatMessage } from '../index-types'\nimport { isCarousel } from '../message-utils'\nimport { strToBool } from '../util/objects'\nimport { deepMapWithIndex } from '../util/react'\nimport { Button } from './button'\nimport type { ButtonProps } from './index-types'\n\ninterface DisabledProps {\n disabled?: boolean\n autodisable?: boolean | string\n disabledstyle?: Record<string, string> | string\n}\n\ninterface AdditionalProps {\n parentId: string\n disabled?: boolean\n setDisabled: (disabled: boolean) => void\n}\n// biome-ignore lint/complexity/noStaticOnlyClass: ButtonsDisabler is a static class and should not be instantiated\nexport class ButtonsDisabler {\n static constructBrowserProps(props: DisabledProps): DisabledProps {\n const disabledProps: DisabledProps = {}\n if (props.autodisable !== undefined) {\n disabledProps.autodisable = strToBool(props.autodisable)\n }\n if (props.disabledstyle !== undefined) {\n disabledProps.disabledstyle = props.disabledstyle\n }\n return disabledProps\n }\n\n static constructNodeProps(props: DisabledProps): DisabledProps {\n const disabledProps: DisabledProps = {}\n if (props.autodisable !== undefined) {\n disabledProps.autodisable = String(props.autodisable)\n }\n if (props.disabledstyle !== undefined) {\n disabledProps.disabledstyle = JSON.stringify(props.disabledstyle)\n }\n return disabledProps\n }\n\n static withDisabledProps(props: DisabledProps): DisabledProps {\n return {\n disabled: props.disabled,\n autodisable: props.autodisable,\n disabledstyle: props.disabledstyle,\n }\n }\n\n static updateChildrenButtons(\n children: React.ReactNode,\n additionalProps?: AdditionalProps\n ): React.ReactNode {\n return deepMapWithIndex(children, (node: any) => {\n if (node.type === Button) {\n return ButtonsDisabler.updateButtons(node, additionalProps)\n }\n return node\n })\n }\n\n static updateButtons(node: any, additionalProps?: AdditionalProps): any {\n if (additionalProps) {\n additionalProps = {\n parentId: additionalProps.parentId,\n disabled:\n node.props.disabled === true\n ? node.props.disabled\n : additionalProps.disabled,\n setDisabled: additionalProps.setDisabled,\n }\n }\n return {\n ...node,\n props: {\n ...node.props,\n ...additionalProps,\n },\n }\n }\n\n static getUpdatedMessage(messageToUpdate: WebchatMessage): WebchatMessage {\n const updateMsgButton = (button: ButtonProps) => {\n return {\n ...button,\n ...{\n disabled: true,\n },\n }\n }\n\n if (\n isCarousel(messageToUpdate) &&\n messageToUpdate.data &&\n messageToUpdate.data.elements\n ) {\n messageToUpdate.data.elements = messageToUpdate.data.elements.map(e => ({\n ...e,\n ...{\n buttons: e.buttons.map(updateMsgButton),\n },\n }))\n return messageToUpdate\n } else {\n return {\n ...messageToUpdate,\n ...{\n buttons: messageToUpdate.buttons.map(updateMsgButton),\n },\n }\n }\n }\n}\n"],"names":["isCarousel","strToBool","deepMapWithIndex","Button","ButtonsDisabler","props","disabledProps","undefined","String","JSON","children","additionalProps","node","messageToUpdate","updateMsgButton","button","e"],"mappings":";;;;;;;;;AAAA,qDAAqD,GAIR;AACF;AACK;AACf;AAcjC,mHAAmH;AAC5G,MAAMI,eAAeA;IAC1B,OAAO,sBAAsBC,KAAoB,EAAiB;QAChE,MAAMC,gBAA+B,CAAC;QACtC,IAAID,MAAM,WAAW,KAAKE,WAAW;YACnCD,cAAc,WAAW,GAAGL,SAASA,CAACI,MAAM,WAAW;QACzD;QACA,IAAIA,MAAM,aAAa,KAAKE,WAAW;YACrCD,cAAc,aAAa,GAAGD,MAAM,aAAa;QACnD;QACA,OAAOC;IACT;IAEA,OAAO,mBAAmBD,KAAoB,EAAiB;QAC7D,MAAMC,gBAA+B,CAAC;QACtC,IAAID,MAAM,WAAW,KAAKE,WAAW;YACnCD,cAAc,WAAW,GAAGE,OAAOH,MAAM,WAAW;QACtD;QACA,IAAIA,MAAM,aAAa,KAAKE,WAAW;YACrCD,cAAc,aAAa,GAAGG,KAAK,SAAS,CAACJ,MAAM,aAAa;QAClE;QACA,OAAOC;IACT;IAEA,OAAO,kBAAkBD,KAAoB,EAAiB;QAC5D,OAAO;YACL,UAAUA,MAAM,QAAQ;YACxB,aAAaA,MAAM,WAAW;YAC9B,eAAeA,MAAM,aAAa;QACpC;IACF;IAEA,OAAO,sBACLK,QAAyB,EACzBC,eAAiC,EAChB;QACjB,OAAOT,gBAAgBA,CAACQ,UAAU,CAACE;YACjC,IAAIA,KAAK,IAAI,KAAKT,MAAMA,EAAE;gBACxB,OAAOC,eAAeA,CAAC,aAAa,CAACQ,MAAMD;YAC7C;YACA,OAAOC;QACT;IACF;IAEA,OAAO,cAAcA,IAAS,EAAED,eAAiC,EAAO;QACtE,IAAIA,iBAAiB;YACnBA,kBAAkB;gBAChB,UAAUA,gBAAgB,QAAQ;gBAClC,UACEC,KAAK,KAAK,CAAC,QAAQ,KAAK,OACpBA,KAAK,KAAK,CAAC,QAAQ,GACnBD,gBAAgB,QAAQ;gBAC9B,aAAaA,gBAAgB,WAAW;YAC1C;QACF;QACA,OAAO;YACL,GAAGC,IAAI;YACP,OAAO;gBACL,GAAGA,KAAK,KAAK;gBACb,GAAGD,eAAe;YACpB;QACF;IACF;IAEA,OAAO,kBAAkBE,eAA+B,EAAkB;QACxE,MAAMC,kBAAkB,CAACC;YACvB,OAAO;gBACL,GAAGA,MAAM;gBACT,GAAG;oBACD,UAAU;gBACZ,CAAC;YACH;QACF;QAEA,IACEf,UAAUA,CAACa,oBACXA,gBAAgB,IAAI,IACpBA,gBAAgB,IAAI,CAAC,QAAQ,EAC7B;YACAA,gBAAgB,IAAI,CAAC,QAAQ,GAAGA,gBAAgB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACG,CAAAA,IAAM;oBACtE,GAAGA,CAAC;oBACJ,GAAG;wBACD,SAASA,EAAE,OAAO,CAAC,GAAG,CAACF;oBACzB,CAAC;gBACH;YACA,OAAOD;QACT,OAAO;YACL,OAAO;gBACL,GAAGA,eAAe;gBAClB,GAAG;oBACD,SAASA,gBAAgB,OAAO,CAAC,GAAG,CAACC;gBACvC,CAAC;YACH;QACF;IACF;AACF"}
@@ -1,10 +0,0 @@
1
- import { INPUT } from '@botonic/core';
2
- import type { CarouselProps } from './index-types.js';
3
- export declare const Carousel: {
4
- (props: CarouselProps): import("react/jsx-runtime").JSX.Element;
5
- displayName: "Carousel";
6
- serialize: (carouselProps: any) => {
7
- type: INPUT;
8
- elements: any;
9
- };
10
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/carousel.js","sources":["../../../src/components/carousel.tsx"],"sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\n\nimport LeftArrow from '../assets/leftArrow.svg'\nimport RightArrow from '../assets/rightArrow.svg'\nimport { COLORS, WEBCHAT } from '../constants'\nimport { resolveImage } from '../util/environment'\nimport { WebchatContext } from '../webchat/context'\nimport { ButtonsDisabler } from './buttons-disabler'\nimport { COMPONENT_DISPLAY_NAMES } from './constants'\nimport type { CarouselProps } from './index-types'\nimport { Message } from './message'\n\nconst ScrollableCarousel = styled.div`\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n`\n\ninterface StyledCarouselProps {\n carouselArrowsEnabled: boolean\n}\n\nconst StyledCarousel = styled.div<StyledCarouselProps>`\n padding: 10px 0px;\n display: flex;\n flex-direction: row;\n max-width: 100%;\n ${props => props.carouselArrowsEnabled && 'overflow-x: auto;'}\n`\n\nconst StyledItems = styled.div`\n display: flex;\n`\n\ninterface StyledArrowContainerProps {\n left?: number\n right?: number\n arrow: 'right' | 'left'\n justifyContent: string\n}\n\nconst StyledArrowContainer = styled.div<StyledArrowContainerProps>`\n position: absolute;\n top: calc(50% - 20px);\n height: 40px;\n width: 25px;\n background: ${COLORS.SILVER};\n display: flex;\n align-items: center;\n cursor: pointer;\n justify-content: ${props => props.justifyContent};\n\n ${props => (props.left === 0 ? `left: ${props.left}px` : '')};\n ${props => (props.right === 0 ? `right: ${props.right}px` : '')};\n ${props => (props.arrow === 'right' ? 'border-top-right-radius: 30px' : '')};\n ${props =>\n props.arrow === 'right' ? 'border-bottom-right-radius: 30px' : ''};\n ${props => (props.arrow === 'left' ? 'border-top-left-radius: 30px' : '')};\n ${props => (props.arrow === 'left' ? 'border-bottom-left-radius: 30px' : '')};\n`\nconst StyledArrow = styled.img`\n width: 20px;\n height: 20px;\n`\n\nconst serialize = carouselProps => {\n let carouselChildren = carouselProps.children\n if (!Array.isArray(carouselChildren)) {\n carouselChildren = [carouselChildren]\n }\n return {\n type: INPUT.CAROUSEL,\n elements: carouselChildren.map(e => e?.type?.serialize?.(e.props)),\n }\n}\n\nexport const Carousel = (props: CarouselProps) => {\n const { getThemeProperty } = useContext(WebchatContext)\n const [hasLeftArrow, setLeftArrow] = useState(false)\n const [hasRightArrow, setRightArrow] = useState(true)\n const carouselRef = useRef<HTMLDivElement>(null)\n\n const CustomCarouselLeftArrow = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.customCarouselLeftArrow\n )\n const CustomCarouselRightArrow = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.customCarouselRightArrow\n )\n // TODO: Investigate why when set to false, scroll is enabled via dragging the bar but not hovering the carousel elements\n const carouselArrowsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableCarouselArrows\n )\n\n const scrollCarouselBy = value => {\n carouselRef.current?.scrollBy({\n left: value,\n behavior: 'smooth',\n })\n }\n\n const setArrowsVisibility = event => {\n const carousel = event.currentTarget\n const maxRightScroll =\n carousel.scrollWidth -\n carousel.offsetWidth -\n WEBCHAT.DEFAULTS.ELEMENT_MARGIN_RIGHT\n setLeftArrow(carousel.scrollLeft !== 0)\n setRightArrow(carousel.scrollLeft < maxRightScroll)\n }\n\n const getArrows = () => {\n const scrollBy =\n WEBCHAT.DEFAULTS.ELEMENT_WIDTH + WEBCHAT.DEFAULTS.ELEMENT_MARGIN_RIGHT\n return (\n <>\n {hasLeftArrow &&\n (CustomCarouselLeftArrow ? (\n <CustomCarouselLeftArrow scrollCarouselBy={scrollCarouselBy} />\n ) : (\n <StyledArrowContainer\n left={0}\n arrow={'right'}\n justifyContent={'flex-start'}\n onClick={() => scrollCarouselBy(-scrollBy)}\n >\n <StyledArrow src={resolveImage(LeftArrow)} />\n </StyledArrowContainer>\n ))}\n {hasRightArrow &&\n (CustomCarouselRightArrow ? (\n <CustomCarouselRightArrow scrollCarouselBy={scrollCarouselBy} />\n ) : (\n <StyledArrowContainer\n right={0}\n arrow={'left'}\n justifyContent={'flex-end'}\n onClick={() => scrollCarouselBy(scrollBy)}\n >\n <StyledArrow src={resolveImage(RightArrow)} />\n </StyledArrowContainer>\n ))}\n </>\n )\n }\n\n useEffect(() => {\n const carousel = carouselRef.current\n if (carousel?.addEventListener) {\n carousel.addEventListener('scroll', setArrowsVisibility, false)\n }\n\n return () => {\n if (carousel?.removeEventListener) {\n carousel.removeEventListener('scroll', setArrowsVisibility, false)\n }\n }\n }, [carouselRef.current])\n\n const carouselProps = {\n ...props,\n children: ButtonsDisabler.updateChildrenButtons(props.children),\n }\n\n if (isBrowser()) {\n return (\n <Message\n style={{\n width: '85%',\n padding: 0,\n backgroundColor: COLORS.TRANSPARENT,\n }}\n blob={false}\n json={serialize(carouselProps)}\n type={INPUT.CAROUSEL}\n {...carouselProps}\n >\n <ScrollableCarousel>\n <StyledCarousel\n ref={carouselRef}\n carouselArrowsEnabled={carouselArrowsEnabled}\n >\n <StyledItems>{carouselProps.children}</StyledItems>\n {carouselArrowsEnabled && getArrows()}\n </StyledCarousel>\n </ScrollableCarousel>\n </Message>\n )\n }\n\n return (\n <Message\n style={{ width: '85%', padding: 0, backgroundColor: COLORS.TRANSPARENT }}\n blob={false}\n json={serialize(carouselProps)}\n type={INPUT.CAROUSEL}\n {...carouselProps}\n >\n {props.children}\n </Message>\n )\n}\n\nCarousel.displayName = COMPONENT_DISPLAY_NAMES.Carousel\n\nCarousel.serialize = serialize\n"],"names":["INPUT","isBrowser","useContext","useEffect","useRef","useState","styled","LeftArrow","RightArrow","COLORS","WEBCHAT","resolveImage","WebchatContext","ButtonsDisabler","COMPONENT_DISPLAY_NAMES","Message","ScrollableCarousel","StyledCarousel","props","StyledItems","StyledArrowContainer","StyledArrow","serialize","carouselProps","carouselChildren","Array","e","Carousel","getThemeProperty","hasLeftArrow","setLeftArrow","hasRightArrow","setRightArrow","carouselRef","CustomCarouselLeftArrow","CustomCarouselRightArrow","carouselArrowsEnabled","scrollCarouselBy","value","setArrowsVisibility","event","carousel","maxRightScroll","getArrows","scrollBy"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/components.js","sources":["../../../src/components/components.js"],"sourcesContent":["/**\n * Get the name of an element (instantiated component)\n * @param {React.Element} component\n * @returns {string}\n */\nexport function getElementName(component) {\n return component.type.name\n}\n\n/**\n * Get the name of a component TYPE\n * @param {React.ComponentType} component\n * @returns {string}\n */\nexport function getComponentTypeName(component) {\n return component.displayName || component.name || 'Component'\n}\n"],"names":["getElementName","component","getComponentTypeName"],"mappings":"AAAA;;;;CAIC,GACM,SAASA,cAAcA,CAACC,SAAS;IACtC,OAAOA,UAAU,IAAI,CAAC,IAAI;AAC5B;AAEA;;;;CAIC,GACM,SAASC,oBAAoBA,CAACD,SAAS;IAC5C,OAAOA,UAAU,WAAW,IAAIA,UAAU,IAAI,IAAI;AACpD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/constants.js","sources":["../../../src/components/constants.ts"],"sourcesContent":["export const COMPONENT_DISPLAY_NAMES = {\n Button: 'Button',\n Carousel: 'Carousel',\n Pic: 'Pic',\n Reply: 'Reply',\n Subtitle: 'Subtitle',\n Text: 'Text',\n Title: 'Title',\n MultichannelButton: 'MultichannelButton',\n MultichannelReply: 'MultichannelReply',\n} as const\n"],"names":["COMPONENT_DISPLAY_NAMES"],"mappings":"AAAO,MAAMA,uBAAuBA,GAAG;IACrC,QAAQ;IACR,UAAU;IACV,KAAK;IACL,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO;IACP,oBAAoB;IACpB,mBAAmB;AACrB,EAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/custom-message.js","sources":["../../../src/components/custom-message.tsx"],"sourcesContent":["import { INPUT } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport React from 'react'\n\nimport { SENDERS } from '../index-types'\nimport { createErrorBoundary } from '../util/error-boundary'\nimport { warnDeprecatedProps } from '../util/logs'\nimport { mapObjectNonBooleanValues } from '../util/react'\nimport type { CustomMessageType } from './index-types'\nimport { Message } from './message'\nimport { Reply } from './reply'\n\n/**\n *\n * name: as it appears at ThemeProps' message.customTypes key\n * CustomMessageComponent\n * defaultProps: Props for the wrapper Message\n * ErrorBoundary: to recover in case it fails\n */\n\nexport interface CustomMessageArgs {\n name: string\n component: React.FC<any>\n defaultProps?: Record<string, any>\n errorBoundary?: any\n}\n\nexport const customMessage = ({\n name,\n component: CustomMessageComponent,\n defaultProps = {},\n errorBoundary = createErrorBoundary(),\n}: CustomMessageArgs): CustomMessageType => {\n const CustomMessage = props => {\n warnDeprecatedProps(defaultProps, 'customMessage:')\n if (defaultProps.sentBy === SENDERS.user) {\n defaultProps.ack = 1\n }\n return (\n <Message\n {...merge(mapObjectNonBooleanValues(defaultProps), props)}\n type={INPUT.CUSTOM}\n />\n )\n }\n\n const splitChildren = props => {\n const { children } = props\n const isReply = e => e.type === Reply\n try {\n if (!Array.isArray(children) && !isReply(children)) {\n return { replies: null, childrenWithoutReplies: children }\n }\n const childrenArray = React.Children.toArray(children)\n const replies = childrenArray.filter(isReply)\n const childrenWithoutReplies = childrenArray.filter(e => !isReply(e))\n return {\n replies: replies,\n childrenWithoutReplies,\n }\n } catch (_e) {\n return { replies: null, childrenWithoutReplies: children }\n }\n }\n\n const WrappedComponent = props => {\n const { id, children, ...customMessageProps } = props\n const { replies, childrenWithoutReplies } = splitChildren(props)\n\n const ErrorBoundary = errorBoundary\n\n return (\n <CustomMessage\n id={id}\n json={{\n ...customMessageProps,\n id,\n children: childrenWithoutReplies,\n customTypeName: name,\n }}\n sentBy={props.sentBy || SENDERS.bot}\n isUnread={props.isUnread}\n >\n <ErrorBoundary key={'errorBoundary'} {...customMessageProps}>\n <CustomMessageComponent id={id} {...customMessageProps}>\n {childrenWithoutReplies}\n </CustomMessageComponent>\n </ErrorBoundary>\n {replies}\n </CustomMessage>\n )\n }\n WrappedComponent.customTypeName = name\n WrappedComponent.deserialize = (msg: any) => {\n return (\n <WrappedComponent\n id={msg.id}\n key={msg.key}\n json={msg.data}\n {...msg.data}\n sentBy={msg.sentBy || SENDERS.bot}\n isUnread={msg.isUnread}\n />\n )\n }\n return WrappedComponent\n}\n"],"names":["INPUT","merge","React","SENDERS","createErrorBoundary","warnDeprecatedProps","mapObjectNonBooleanValues","Message","Reply","customMessage","name","CustomMessageComponent","defaultProps","errorBoundary","CustomMessage","props","splitChildren","children","isReply","e","Array","childrenArray","replies","childrenWithoutReplies","_e","WrappedComponent","id","customMessageProps","ErrorBoundary","msg"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAqC;AACL;AACP;AAEe;AACoB;AACV;AACO;AAEtB;AACJ;AAiBxB,MAAMS,aAAaA,GAAG,CAAC,EAC5BC,IAAI,EACJ,WAAWC,sBAAsB,EACjCC,eAAe,CAAC,CAAC,EACjBC,gBAAgBT,mBAAmBA,EAAE,EACnB;IAClB,MAAMU,gBAAgBC,CAAAA;QACpBV,mBAAmBA,CAACO,cAAc;QAClC,IAAIA,aAAa,MAAM,KAAKT,YAAY,EAAE;YACxCS,aAAa,GAAG,GAAG;QACrB;QACA,qBACE,IAACL,OAAOA;YACL,GAAGN,YAAKA,CAACK,yBAAyBA,CAACM,eAAeG,MAAM;YACzD,MAAMf,YAAY;;IAGxB;IAEA,MAAMgB,gBAAgBD,CAAAA;QACpB,MAAM,EAAEE,QAAQ,EAAE,GAAGF;QACrB,MAAMG,UAAUC,CAAAA,IAAKA,EAAE,IAAI,KAAKX,KAAKA;QACrC,IAAI;YACF,IAAI,CAACY,MAAM,OAAO,CAACH,aAAa,CAACC,QAAQD,WAAW;gBAClD,OAAO;oBAAE,SAAS;oBAAM,wBAAwBA;gBAAS;YAC3D;YACA,MAAMI,gBAAgBnB,sBAAsB,CAACe;YAC7C,MAAMK,UAAUD,cAAc,MAAM,CAACH;YACrC,MAAMK,yBAAyBF,cAAc,MAAM,CAACF,CAAAA,IAAK,CAACD,QAAQC;YAClE,OAAO;gBACL,SAASG;gBACTC;YACF;QACF,EAAE,OAAOC,IAAI;YACX,OAAO;gBAAE,SAAS;gBAAM,wBAAwBP;YAAS;QAC3D;IACF;IAEA,MAAMQ,mBAAmBV,CAAAA;QACvB,MAAM,EAAEW,EAAE,EAAET,QAAQ,EAAE,GAAGU,oBAAoB,GAAGZ;QAChD,MAAM,EAAEO,OAAO,EAAEC,sBAAsB,EAAE,GAAGP,cAAcD;QAE1D,MAAMa,gBAAgBf;QAEtB,qBACE,KAACC;YACC,IAAIY;YACJ,MAAM;gBACJ,GAAGC,kBAAkB;gBACrBD;gBACA,UAAUH;gBACV,gBAAgBb;YAClB;YACA,QAAQK,MAAM,MAAM,IAAIZ,WAAW;YACnC,UAAUY,MAAM,QAAQ;;8BAExB,IAACa;oBAAqC,GAAGD,kBAAkB;8BACzD,kBAAChB;wBAAuB,IAAIe;wBAAK,GAAGC,kBAAkB;kCACnDJ;;mBAFe;gBAKnBD;;;IAGP;IACAG,iBAAiB,cAAc,GAAGf;IAClCe,iBAAiB,WAAW,GAAG,CAACI;QAC9B,qBACE,IAACJ;YACC,IAAII,IAAI,EAAE;YAEV,MAAMA,IAAI,IAAI;YACb,GAAGA,IAAI,IAAI;YACZ,QAAQA,IAAI,MAAM,IAAI1B,WAAW;YACjC,UAAU0B,IAAI,QAAQ;WAJjBA,IAAI,GAAG;IAOlB;IACA,OAAOJ;AACT,EAAC"}
@@ -1,9 +0,0 @@
1
- import type { DocumentProps } from './index-types.js';
2
- export declare const Document: {
3
- (props: DocumentProps): import("react/jsx-runtime").JSX.Element;
4
- serialize: (documentProps: {
5
- src: string;
6
- }) => {
7
- document: string;
8
- };
9
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/document.js","sources":["../../../src/components/document.tsx"],"sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport { useContext } from 'react'\nimport styled from 'styled-components'\n\nimport { ROLES, WEBCHAT } from '../constants'\nimport { staticAsset } from '../util/environment'\nimport { WebchatContext } from '../webchat/context'\nimport type { DocumentProps } from './index-types'\nimport { Message } from './message'\n\nconst StyledButton = styled.a`\n display: block;\n height: 25px;\n background-color: #f0f0f0;\n padding: 10px;\n text-align: center;\n border-radius: 5px;\n color: black;\n font-weight: bold;\n line-height: 25px;\n text-decoration: none;\n border: 1px solid black;\n opacity: 0.9;\n &:hover {\n opacity: 1;\n }\n`\n\nconst serialize = (documentProps: { src: string }) => {\n return { document: documentProps.src }\n}\n\nexport const Document = (props: DocumentProps) => {\n props = { ...props, src: staticAsset(props.src) }\n\n let content = props.children\n\n const { getThemeProperty } = useContext(WebchatContext)\n let documentDownload = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.documentDownload,\n {}\n )\n if (typeof documentDownload === 'function') {\n documentDownload = documentDownload(props.from)\n }\n\n if (isBrowser()) {\n content = (\n <StyledButton\n href={props.src}\n target='_blank'\n rel='noreferrer'\n style={{\n ...documentDownload.style,\n }}\n >\n {documentDownload.text || 'Download'}\n </StyledButton>\n )\n }\n\n return (\n <Message\n role={ROLES.DOCUMENT_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.DOCUMENT}\n >\n {content}\n </Message>\n )\n}\n\nDocument.serialize = serialize\n"],"names":["INPUT","isBrowser","useContext","styled","ROLES","WEBCHAT","staticAsset","WebchatContext","Message","StyledButton","serialize","documentProps","Document","props","content","getThemeProperty","documentDownload"],"mappings":";;;;;;;;;;;;;;;;;;AAAgD;AACd;AACI;AAEO;AACI;AACE;AAEhB;AAEnC,MAAMS,YAAYA,GAAGN,mBAAQ,CAAC;;;;;;;;;;;;;;;;AAgB9B,CAAC;AAED,MAAMO,SAASA,GAAG,CAACC;IACjB,OAAO;QAAE,UAAUA,cAAc,GAAG;IAAC;AACvC;AAEO,MAAMC,QAAQA,GAAG,CAACC;IACvBA,QAAQ;QAAE,GAAGA,KAAK;QAAE,KAAKP,WAAWA,CAACO,MAAM,GAAG;IAAE;IAEhD,IAAIC,UAAUD,MAAM,QAAQ;IAE5B,MAAM,EAAEE,gBAAgB,EAAE,GAAGb,UAAUA,CAACK,cAAcA;IACtD,IAAIS,mBAAmBD,iBACrBV,0CAA0C,EAC1C,CAAC;IAEH,IAAI,OAAOW,qBAAqB,YAAY;QAC1CA,mBAAmBA,iBAAiBH,MAAM,IAAI;IAChD;IAEA,IAAIZ,SAASA,IAAI;QACfa,wBACE,IAACL,YAAYA;YACX,MAAMI,MAAM,GAAG;YACf,QAAO;YACP,KAAI;YACJ,OAAO;gBACL,GAAGG,iBAAiB,KAAK;YAC3B;sBAECA,iBAAiB,IAAI,IAAI;;IAGhC;IAEA,qBACE,IAACR,OAAOA;QACN,MAAMJ,sBAAsB;QAC5B,MAAMM,SAASA,CAACG;QACf,GAAGA,KAAK;QACT,MAAMb,cAAc;kBAEnBc;;AAGP,EAAC;AAEDF,QAAQA,CAAC,SAAS,GAAGF,SAASA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/element.js","sources":["../../../src/components/element.tsx"],"sourcesContent":["import type React from 'react'\nimport styled from 'styled-components'\n\nimport { COLORS, WEBCHAT } from '../constants'\nimport { renderComponent } from '../util/react'\nimport { Button } from './button/index'\n\nconst ElementContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: ${WEBCHAT.DEFAULTS.ELEMENT_WIDTH}px;\n margin-right: ${WEBCHAT.DEFAULTS.ELEMENT_MARGIN_RIGHT}px;\n border-radius: 6px;\n border: 1px solid ${COLORS.SEASHELL_WHITE};\n overflow: hidden;\n justify-content: space-between;\n`\n\nexport interface ElementProps {\n children: React.ReactNode[]\n}\n\nexport const Element = (props: ElementProps) => {\n const renderBrowser = () => (\n <ElementContainer>{props.children}</ElementContainer>\n )\n\n // @ts-expect-error\n const renderNode = () => <element>{props.children}</element>\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nElement.serialize = elementProps => {\n const element = Object.assign(\n {},\n ...elementProps.children\n .filter(c => c?.type?.name !== Button.name)\n .map(c => c?.type?.serialize?.(c.props))\n )\n // When we are serializer buttons from backend, we are receiving the data\n // as an array of buttons, so we have to keep robust with serve and deal with arrays\n element.buttons = [\n ...elementProps.children\n .filter(c => {\n if (Array.isArray(c)) {\n return true\n }\n return c?.type?.name === Button.name\n })\n .map(b => {\n if (Array.isArray(b)) {\n b.map(bb => bb?.type?.serialize?.(bb.props)?.button)\n }\n return b?.type?.serialize(b.props).button\n }),\n ]\n // When we have the buttons from backend, we have all buttons inside an array on the first position\n // of another array in element['buttons'] we want that element['buttons'] to be an array of buttons,\n // not an array of another array of buttons\n if (Array.isArray(element.buttons[0])) {\n element.buttons = element.buttons[0]\n }\n return element\n}\n"],"names":["styled","COLORS","WEBCHAT","renderComponent","Button","ElementContainer","Element","props","renderBrowser","renderNode","elementProps","element","Object","c","Array","b","bb"],"mappings":";;;;;;;;;;;;AACsC;AAEQ;AACC;AACR;AAEvC,MAAMK,gBAAgBA,GAAGL,qBAAU,CAAC;;;SAG3B,EAAEE,8BAA8B,CAAC;gBAC1B,EAAEA,qCAAqC,CAAC;;oBAEpC,EAAED,qBAAqB,CAAC;;;AAG5C,CAAC;AAMM,MAAMK,OAAOA,GAAG,CAACC;IACtB,MAAMC,gBAAgB,kBACpB,IAACH,gBAAgBA;sBAAEE,MAAM,QAAQ;;IAGnC,mBAAmB;IACnB,MAAME,aAAa,kBAAM,IAAC;sBAASF,MAAM,QAAQ;;IAEjD,OAAOJ,eAAeA,CAAC;QAAEK;QAAeC;IAAW;AACrD,EAAC;AAEDH,OAAOA,CAAC,SAAS,GAAGI,CAAAA;IAClB,MAAMC,UAAUC,OAAO,MAAM,CAC3B,CAAC,MACEF,aAAa,QAAQ,CACrB,MAAM,CAACG,CAAAA,IAAKA,GAAG,MAAM,SAAST,WAAW,EACzC,GAAG,CAACS,CAAAA,IAAKA,GAAG,MAAM,YAAYA,EAAE,KAAK;IAE1C,yEAAyE;IACzE,oFAAoF;IACpFF,QAAQ,OAAO,GAAG;WACbD,aAAa,QAAQ,CACrB,MAAM,CAACG,CAAAA;YACN,IAAIC,MAAM,OAAO,CAACD,IAAI;gBACpB,OAAO;YACT;YACA,OAAOA,GAAG,MAAM,SAAST,WAAW;QACtC,GACC,GAAG,CAACW,CAAAA;YACH,IAAID,MAAM,OAAO,CAACC,IAAI;gBACpBA,EAAE,GAAG,CAACC,CAAAA,KAAMA,IAAI,MAAM,YAAYA,GAAG,KAAK,GAAG;YAC/C;YACA,OAAOD,GAAG,MAAM,UAAUA,EAAE,KAAK,EAAE;QACrC;KACH;IACD,mGAAmG;IACnG,oGAAoG;IACpG,2CAA2C;IAC3C,IAAID,MAAM,OAAO,CAACH,QAAQ,OAAO,CAAC,EAAE,GAAG;QACrCA,QAAQ,OAAO,GAAGA,QAAQ,OAAO,CAAC,EAAE;IACtC;IACA,OAAOA;AACT"}
@@ -1 +0,0 @@
1
- export function Handoff(_props: any): import("react/jsx-runtime").JSX.Element;
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/handoff.js","sources":["../../../src/components/handoff.jsx"],"sourcesContent":["import { useContext, useState } from 'react'\nimport styled from 'styled-components'\n\nimport { COLORS } from '../constants'\nimport { WebchatContext } from '../webchat/context'\n\nconst Container = styled.div`\n display: flex;\n font-family: inherit;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 24px;\n`\n\nconst TransferredContainer = styled.div`\n text-align: center;\n white-space: normal;\n`\n\nconst EndedContainer = styled.div`\n text-align: center;\n white-space: normal;\n`\n\nconst StyledButton = styled.button`\n max-width: 60%;\n padding: 12px 24px;\n background-color: ${COLORS.SOLID_WHITE};\n border: none;\n border-radius: 4px;\n margin-top: 8px;\n cursor: pointer;\n`\n\nexport const Handoff = _props => {\n const { resolveCase } = useContext(WebchatContext)\n const [state, setState] = useState({ showContinue: true })\n\n const continueClick = () => {\n setState({ showContinue: false })\n resolveCase()\n }\n\n const bgColor = state.showContinue\n ? COLORS.FRINGY_FLOWER_GREEN\n : COLORS.TASMAN_GRAY\n const fontColor = state.showContinue\n ? COLORS.APPLE_GREEN\n : COLORS.CACTUS_GREEN\n return (\n <Container\n style={{\n color: fontColor,\n backgroundColor: bgColor,\n }}\n >\n {state.showContinue ? (\n <TransferredContainer>\n Conversation transferred to a human agent...\n </TransferredContainer>\n ) : (\n <EndedContainer>Human handoff ended</EndedContainer>\n )}\n {state.showContinue && (\n <StyledButton onClick={continueClick}>Continue</StyledButton>\n )}\n </Container>\n )\n}\n"],"names":["useContext","useState","styled","COLORS","WebchatContext","Container","TransferredContainer","EndedContainer","StyledButton","Handoff","_props","resolveCase","state","setState","continueClick","bgColor","fontColor"],"mappings":";;;;;;;;;;;;AAA4C;AACN;AAED;AACc;AAEnD,MAAMK,SAASA,GAAGH,qBAAU,CAAC;;;;;;;AAO7B,CAAC;AAED,MAAMI,oBAAoBA,GAAGJ,qBAAU,CAAC;;;AAGxC,CAAC;AAED,MAAMK,cAAcA,GAAGL,qBAAU,CAAC;;;AAGlC,CAAC;AAED,MAAMM,YAAYA,GAAGN,wBAAa,CAAC;;;oBAGf,EAAEC,kBAAkB,CAAC;;;;;AAKzC,CAAC;AAEM,MAAMM,OAAOA,GAAGC,CAAAA;IACrB,MAAM,EAAEC,WAAW,EAAE,GAAGX,UAAUA,CAACI,cAAcA;IACjD,MAAM,CAACQ,OAAOC,SAAS,GAAGZ,QAAQA,CAAC;QAAE,cAAc;IAAK;IAExD,MAAMa,gBAAgB;QACpBD,SAAS;YAAE,cAAc;QAAM;QAC/BF;IACF;IAEA,MAAMI,UAAUH,MAAM,YAAY,GAC9BT,0BAA0B,GAC1BA,kBAAkB;IACtB,MAAMa,YAAYJ,MAAM,YAAY,GAChCT,kBAAkB,GAClBA,mBAAmB;IACvB,qBACE,KAACE,SAASA;QACR,OAAO;YACL,OAAOW;YACP,iBAAiBD;QACnB;;YAECH,MAAM,YAAY,iBACjB,IAACN,oBAAoBA;0BAAC;+BAItB,IAACC,cAAcA;0BAAC;;YAEjBK,MAAM,YAAY,kBACjB,IAACJ,YAAYA;gBAAC,SAASM;0BAAe;;;;AAI9C,EAAC"}
@@ -1,9 +0,0 @@
1
- import type { ImageProps } from './index-types.js';
2
- export declare const Image: {
3
- (props: ImageProps): import("react/jsx-runtime").JSX.Element;
4
- serialize: (imageProps: {
5
- src: string;
6
- }) => {
7
- image: string;
8
- };
9
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/image.js","sources":["../../../src/components/image.tsx"],"sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport { useContext, useState } from 'react'\nimport styled from 'styled-components'\n\nimport { ROLES, WEBCHAT } from '../constants'\nimport { staticAsset } from '../util/environment'\nimport { WebchatContext } from '../webchat/context'\nimport type { ImageProps } from './index-types'\nimport { Message } from './message'\n\ninterface StyledImageProps {\n hasPreviewer: boolean\n}\n\nconst StyledImage = styled.img<StyledImageProps>`\n border-radius: 8px;\n max-width: 150px;\n max-height: 150px;\n margin: -3px -6px;\n cursor: ${({ hasPreviewer }) => (hasPreviewer ? 'pointer' : 'auto')};\n`\n\nconst serialize = (imageProps: { src: string }) => {\n return { image: imageProps.src }\n}\n\nexport const Image = (props: ImageProps) => {\n props = props.input?.data\n ? { ...props, src: props.input.data }\n : { ...props, src: staticAsset(props.src) }\n\n let content = props.children\n\n const [isPreviewerOpened, setIsPreviewerOpened] = useState(false)\n const openPreviewer = () => setIsPreviewerOpened(true)\n const closePreviewer = () => setIsPreviewerOpened(false)\n\n const { getThemeProperty } = useContext(WebchatContext)\n const ImagePreviewer = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.imagePreviewer\n )\n\n if (isBrowser()) {\n content = (\n <>\n <StyledImage\n src={props.src}\n onClick={openPreviewer}\n hasPreviewer={Boolean(ImagePreviewer)}\n />\n {ImagePreviewer && (\n <ImagePreviewer\n src={props.src}\n isPreviewerOpened={isPreviewerOpened}\n openPreviewer={openPreviewer}\n closePreviewer={closePreviewer}\n />\n )}\n </>\n )\n }\n\n return (\n <Message\n role={ROLES.IMAGE_MESSAGE}\n json={serialize(props)}\n {...props}\n type={INPUT.IMAGE}\n >\n {content}\n </Message>\n )\n}\n\nImage.serialize = serialize\n"],"names":["INPUT","isBrowser","useContext","useState","styled","ROLES","WEBCHAT","staticAsset","WebchatContext","Message","StyledImage","hasPreviewer","serialize","imageProps","Image","props","content","isPreviewerOpened","setIsPreviewerOpened","openPreviewer","closePreviewer","getThemeProperty","ImagePreviewer","Boolean"],"mappings":";;;;;;;;;;;;;;;;;;AAAgD;AACJ;AACN;AAEO;AACI;AACE;AAEhB;AAMnC,MAAMU,WAAWA,GAAGN,qBAA4B,CAAC;;;;;UAKvC,EAAE,CAAC,EAAEO,YAAY,EAAE,GAAMA,eAAe,YAAY,OAAQ;AACtE,CAAC;AAED,MAAMC,SAASA,GAAG,CAACC;IACjB,OAAO;QAAE,OAAOA,WAAW,GAAG;IAAC;AACjC;AAEO,MAAMC,KAAKA,GAAG,CAACC;IACpBA,QAAQA,MAAM,KAAK,EAAE,OACjB;QAAE,GAAGA,KAAK;QAAE,KAAKA,MAAM,KAAK,CAAC,IAAI;IAAC,IAClC;QAAE,GAAGA,KAAK;QAAE,KAAKR,WAAWA,CAACQ,MAAM,GAAG;IAAE;IAE5C,IAAIC,UAAUD,MAAM,QAAQ;IAE5B,MAAM,CAACE,mBAAmBC,qBAAqB,GAAGf,QAAQA,CAAC;IAC3D,MAAMgB,gBAAgB,IAAMD,qBAAqB;IACjD,MAAME,iBAAiB,IAAMF,qBAAqB;IAElD,MAAM,EAAEG,gBAAgB,EAAE,GAAGnB,UAAUA,CAACM,cAAcA;IACtD,MAAMc,iBAAiBD,iBACrBf,wCAAwC;IAG1C,IAAIL,SAASA,IAAI;QACfe,wBACE;;8BACE,IAACN,WAAWA;oBACV,KAAKK,MAAM,GAAG;oBACd,SAASI;oBACT,cAAcI,QAAQD;;gBAEvBA,gCACC,IAACA;oBACC,KAAKP,MAAM,GAAG;oBACd,mBAAmBE;oBACnB,eAAeE;oBACf,gBAAgBC;;;;IAK1B;IAEA,qBACE,IAACX,OAAOA;QACN,MAAMJ,mBAAmB;QACzB,MAAMO,SAASA,CAACG;QACf,GAAGA,KAAK;QACT,MAAMf,WAAW;kBAEhBgB;;AAGP,EAAC;AAEDF,KAAKA,CAAC,SAAS,GAAGF,SAASA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/index-types.js","sources":["../../../src/components/index-types.ts"],"sourcesContent":["import type React from 'react'\n\nimport type { SENDERS } from '../index-types'\n\nexport type MessageType =\n | 'audio'\n | 'buttonmessage'\n | 'carousel'\n | 'custom'\n | 'document'\n | 'image'\n | 'location'\n | 'text'\n | 'video'\n\nexport interface MessageProps {\n blob?: boolean\n children?: React.ReactNode\n delay?: number\n enabletimestamps?: boolean\n sentBy?: SENDERS\n json?: Record<string, unknown>\n style?: Record<string, unknown>\n type?: MessageType\n typing?: number\n}\n\nexport interface TextProps extends MessageProps {\n // converts markdown syntax to HTML\n markdown?: boolean\n botInteractionId?: string\n}\n\nexport interface CarouselProps extends MessageProps {\n children: React.ReactNode[]\n text?: string // Only for Whatsapp Interactive Media Carousel\n}\n\nexport interface Webview {\n name: string\n}\n\nexport interface ButtonProps {\n params?: Record<string, string>\n path?: string\n payload?: string\n target?: string\n url?: string\n webview?: Webview\n onClick?: () => void\n autodisable?: boolean\n disabled?: boolean\n disabledstyle?: Record<string, string> | string\n children: string\n setDisabled?: (disabled: boolean) => void\n parentId?: string\n}\n\nexport interface ReplyProps {\n path?: string\n payload?: string\n children: string\n}\n\nexport interface ImageProps extends MessageProps {\n src: string\n input?: { data: string }\n}\n\nexport interface VideoProps extends MessageProps {\n src: string\n input?: { data: string }\n}\n\nexport interface AudioProps extends MessageProps {\n src: string\n input?: { data: string }\n}\n\nexport interface DocumentProps extends MessageProps {\n src: string\n input?: { data: string }\n from?: any\n}\n\nexport interface CustomMessageType {\n (props: any): JSX.Element\n customTypeName: string\n deserialize(msg: any): JSX.Element\n}\n\nexport type BlockInputOption = {\n preprocess?: (message: string) => string\n match: RegExp[]\n message: string\n}\n\nexport type WrappedComponent<Props> = React.FunctionComponent<Props> & {\n customTypeName: string\n}\n"],"names":[],"mappings":"AAmGC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/index.js","sources":["../../../src/components/index.ts"],"sourcesContent":["export { Audio } from './audio'\nexport { Button } from './button/index'\nexport { Carousel } from './carousel'\nexport { customMessage } from './custom-message'\nexport { Document } from './document'\nexport { Element } from './element'\nexport { Handoff } from './handoff'\nexport { Image } from './image'\nexport * from './index-types'\nexport { Location } from './location'\nexport { Message } from './message'\nexport { MessageTemplate } from './message-template'\nexport * from './multichannel'\nexport { Pic } from './pic'\nexport { Raw } from './raw'\nexport { Reply } from './reply'\nexport { ShareButton } from './share-button'\nexport { Subtitle } from './subtitle'\nexport { Text } from './text'\nexport { Title } from './title'\nexport { Video } from './video'\nexport {\n normalizeWebchatSettings,\n WebchatSettings,\n type WebchatSettingsProps,\n} from './webchat-settings'\nexport {\n WhatsappButtonList,\n type WhatsappButtonListProps,\n type WhatsappButtonListRowProps,\n type WhatsappButtonListSectionProps,\n} from './whatsapp-button-list'\nexport { WhatsappCatalog, type WhatsappCatalogProps } from './whatsapp-catalog'\nexport {\n WhatsappCTAUrlButton,\n type WhatsappCTAUrlButtonProps,\n WhatsappCTAUrlHeaderType,\n} from './whatsapp-cta-url-button'\nexport {\n CardType,\n type WhatsappInteractiveMediaCard,\n WhatsappInteractiveMediaCarousel,\n type WhatsappInteractiveMediaCarouselProps,\n} from './whatsapp-interactive-media-carousel'\nexport {\n WhatsappMediaCarousel,\n type WhatsappMediaCarouselProps,\n} from './whatsapp-media-carousel'\nexport { WhatsappProduct } from './whatsapp-product'\nexport {\n WhatsappProductCarousel,\n type WhatsappProductCarouselProps,\n} from './whatsapp-product-carousel'\nexport {\n type ProductItem,\n WhatsappProductList,\n type WhatsappProductListProps,\n type WhatsappProductListSection,\n} from './whatsapp-product-list'\nexport {\n WhatsappRequestContactInfo,\n type WhatsappRequestContactInfoProps,\n} from './whatsapp-request-contact-info'\nexport { WhatsappTemplate } from './whatsapp-template/index'\nexport * from './whatsapp-template/types'\n"],"names":["Audio","Button","Carousel","customMessage","Document","Element","Handoff","Image","Location","Message","MessageTemplate","Pic","Raw","Reply","ShareButton","Subtitle","Text","Title","Video","normalizeWebchatSettings","WebchatSettings","WhatsappButtonList","WhatsappCatalog","WhatsappCTAUrlButton","WhatsappCTAUrlHeaderType","CardType","WhatsappInteractiveMediaCarousel","WhatsappMediaCarousel","WhatsappProduct","WhatsappProductCarousel","WhatsappProductList","WhatsappRequestContactInfo","WhatsappTemplate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA+B;AACQ;AACF;AACW;AACX;AACF;AACA;AACJ;AACF;AACQ;AACF;AACiB;AACtB;AACH;AACA;AACI;AACa;AACP;AACR;AACE;AACA;AAKJ;AAMI;AACgD;AAK7C;AAMY;AAIZ;AACkB;AAIhB;AAMJ;AAIQ;AACoB;AACnB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/location.js","sources":["../../../src/components/location.jsx"],"sourcesContent":["import { INPUT } from '@botonic/core'\nimport styled from 'styled-components'\n\nimport { renderComponent } from '../util/react'\nimport { Message } from './message'\n\nconst Link = styled.a`\n text-decoration: none;\n font-weight: bold;\n target: blank;\n`\n\nconst serialize = locationProps => {\n return { location: { lat: locationProps.lat, long: locationProps.long } }\n}\n\nexport const Location = props => {\n const { lat, long } = props\n\n const renderBrowser = () => {\n const locationUrl = `https://www.google.com/maps/search/?api=1&query=${lat},${long}`\n return (\n <Message json={serialize(props)} {...props} type={INPUT.LOCATION}>\n <Link href={locationUrl} target='_blank' rel='noopener noreferrer'>\n {props.text || 'Open Location'}\n </Link>\n </Message>\n )\n }\n\n const renderNode = () => {\n return (\n <message type={INPUT.LOCATION}>\n <lat>{lat}</lat>\n <long>{long}</long>\n </message>\n )\n }\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nLocation.serialize = serialize\n"],"names":["INPUT","styled","renderComponent","Message","Link","serialize","locationProps","Location","props","lat","long","renderBrowser","locationUrl","renderNode"],"mappings":";;;;;;;;;;;;AAAqC;AACC;AAES;AACZ;AAEnC,MAAMI,IAAIA,GAAGH,mBAAQ,CAAC;;;;AAItB,CAAC;AAED,MAAMI,SAASA,GAAGC,CAAAA;IAChB,OAAO;QAAE,UAAU;YAAE,KAAKA,cAAc,GAAG;YAAE,MAAMA,cAAc,IAAI;QAAC;IAAE;AAC1E;AAEO,MAAMC,QAAQA,GAAGC,CAAAA;IACtB,MAAM,EAAEC,GAAG,EAAEC,IAAI,EAAE,GAAGF;IAEtB,MAAMG,gBAAgB;QACpB,MAAMC,cAAc,CAAC,gDAAgD,EAAEH,IAAI,CAAC,EAAEC,MAAM;QACpF,qBACE,IAACP,OAAOA;YAAC,MAAME,SAASA,CAACG;YAAS,GAAGA,KAAK;YAAE,MAAMR,cAAc;sBAC9D,kBAACI,IAAIA;gBAAC,MAAMQ;gBAAa,QAAO;gBAAS,KAAI;0BAC1CJ,MAAM,IAAI,IAAI;;;IAIvB;IAEA,MAAMK,aAAa;QACjB,qBACE,KAAC;YAAQ,MAAMb,cAAc;;8BAC3B,IAAC;8BAAKS;;8BACN,IAAC;8BAAMC;;;;IAGb;IAEA,OAAOR,eAAeA,CAAC;QAAES;QAAeE;IAAW;AACrD,EAAC;AAEDN,QAAQA,CAAC,SAAS,GAAGF,SAASA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components/markdown.js","sources":["../../../src/components/markdown.js"],"sourcesContent":["import MarkdownIt from 'markdown-it'\n\nimport { isInWebviewApp } from '../util/environment'\n\nconst BR_STRING_TAG = '<br/>'\nconst BR_STRING_TAG_REGEX = /<br\\s*\\/?>/g\nexport const ESCAPED_LINE_BREAK = '&lt;br&gt;'\nconst ESCAPED_LINE_BREAK_REGEX = new RegExp(ESCAPED_LINE_BREAK, 'g')\nconst isLineBreakElement = element => element.type === 'br'\n\nconst withLinksTarget = (renderer, target = '_blank') => {\n // Support opening links in new tabs: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer\n const newRenderer =\n renderer.renderer.rules.link_open ||\n ((tokens, idx, options, _env, self) =>\n self.renderToken(tokens, idx, options))\n renderer.renderer.rules.link_open = (tokens, idx, options, env, self) => {\n const aIndex = tokens[idx].attrIndex('target')\n if (aIndex < 0) {\n tokens[idx].attrPush(['target', target])\n } else {\n tokens[idx].attrs[aIndex][1] = target\n }\n return newRenderer(tokens, idx, options, env, self)\n }\n}\n\nconst configureLinksRenderer = () => {\n // zero preset comes with all options disabled, only enabling links\n const linksRenderer = new MarkdownIt('zero', { linkify: true }).enable([\n 'linkify',\n ])\n withLinksTarget(linksRenderer)\n return linksRenderer\n}\n\nconst configureMarkdownRenderer = target => {\n const markdownRenderer = new MarkdownIt({\n html: true,\n linkify: true,\n typographer: true,\n })\n withLinksTarget(markdownRenderer, target)\n return markdownRenderer\n}\n\nexport const renderMarkdown = text => {\n const target = isInWebviewApp() ? '_self' : '_blank'\n const markdownRenderer = configureMarkdownRenderer(target)\n // markdown-it renderer expects '<br/>' strings to render correctly line breaks\n // Supporting multiline: https://stackoverflow.com/a/20543835\n text = text\n .map(e => {\n if (isLineBreakElement(e)) {\n return BR_STRING_TAG\n } else if (typeof e === 'string') {\n return e\n .replace(BR_STRING_TAG_REGEX, BR_STRING_TAG)\n .replace(ESCAPED_LINE_BREAK_REGEX, BR_STRING_TAG)\n } else {\n return String(e)\n }\n })\n .join('')\n return markdownRenderer.render(text)\n}\n\nconst linksRenderer = configureLinksRenderer()\nexport const renderLinks = text => {\n return linksRenderer.render(text)\n}\n\nexport const serializeMarkdown = children => {\n children = Array.isArray(children) ? children : [children]\n const text = children\n .filter(e => isLineBreakElement(e) || !e.type)\n .map(e => {\n if (Array.isArray(e)) {\n return serializeMarkdown(e)\n }\n if (isLineBreakElement(e)) {\n return ESCAPED_LINE_BREAK\n } else {\n return String(e).replace(BR_STRING_TAG_REGEX, ESCAPED_LINE_BREAK)\n }\n })\n .join('')\n return text\n}\n\nexport const toMarkdownChildren = children =>\n children.map(e => (isLineBreakElement(e) ? ESCAPED_LINE_BREAK : e))\n\nexport const getDefaultMarkdownStyle = color => `\n*{\n margin: 0px;\n}\n\na {\n text-decoration:none;\n}\n\na:link{\n color:${color}; \n}\n\na:visited {\n color:${color};\n}\n\na:hover {\n text-shadow: 0px 1px black;\n}\n\nblockquote {\n margin: 0;\n padding-left: 1.4rem;\n border-left: 4px solid #dadada; \n}\n\npre code {\n margin: 0;\n padding: 0;\n white-space: pre;\n border: none;\n background: transparent; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\ncode, tt {\n margin: 0 2px;\n padding: 0 5px;\n white-space: nowrap;\n border: 1px solid #eaeaea;\n background-color: #f8f8f8;\n border-radius: 3px; \n}\n\npre {\n background-color: #f8f8f8;\n border: 1px solid #cccccc;\n font-size: 13px;\n line-height: 19px;\n overflow: auto;\n padding: 6px 10px;\n border-radius: 3px; \n}\n\npre code, pre tt {\n background-color: transparent;\n border: none; \n}\n \ntable, td, th {\n border: 1px solid black;\n padding:10px;\n}\n`\nexport const getMarkdownStyle = (getThemeFn, defaultColor) => {\n return getThemeFn('markdownStyle', getDefaultMarkdownStyle(defaultColor))\n}\n"],"names":["MarkdownIt","isInWebviewApp","BR_STRING_TAG","BR_STRING_TAG_REGEX","ESCAPED_LINE_BREAK","ESCAPED_LINE_BREAK_REGEX","RegExp","isLineBreakElement","element","withLinksTarget","renderer","target","newRenderer","tokens","idx","options","_env","self","env","aIndex","configureLinksRenderer","linksRenderer","configureMarkdownRenderer","markdownRenderer","renderMarkdown","text","e","String","renderLinks","serializeMarkdown","children","Array","toMarkdownChildren","getDefaultMarkdownStyle","color","getMarkdownStyle","getThemeFn","defaultColor"],"mappings":";;;;;AAAoC;AAEgB;AAEpD,MAAME,aAAaA,GAAG;AACtB,MAAMC,mBAAmBA,GAAG;AACrB,MAAMC,kBAAkBA,GAAG,aAAY;AAC9C,MAAMC,wBAAwBA,GAAG,IAAIC,OAAOF,kBAAkBA,EAAE;AAChE,MAAMG,kBAAkBA,GAAGC,CAAAA,UAAWA,QAAQ,IAAI,KAAK;AAEvD,MAAMC,eAAeA,GAAG,CAACC,UAAUC,SAAS,QAAQ;IAClD,0HAA0H;IAC1H,MAAMC,cACJF,SAAS,QAAQ,CAAC,KAAK,CAAC,SAAS,IAChC,EAACG,QAAQC,KAAKC,SAASC,MAAMC,OAC5BA,KAAK,WAAW,CAACJ,QAAQC,KAAKC,QAAO;IACzCL,SAAS,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAACG,QAAQC,KAAKC,SAASG,KAAKD;QAC9D,MAAME,SAASN,MAAM,CAACC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAIK,SAAS,GAAG;YACdN,MAAM,CAACC,IAAI,CAAC,QAAQ,CAAC;gBAAC;gBAAUH;aAAO;QACzC,OAAO;YACLE,MAAM,CAACC,IAAI,CAAC,KAAK,CAACK,OAAO,CAAC,EAAE,GAAGR;QACjC;QACA,OAAOC,YAAYC,QAAQC,KAAKC,SAASG,KAAKD;IAChD;AACF;AAEA,MAAMG,sBAAsBA,GAAG;IAC7B,mEAAmE;IACnE,MAAMC,gBAAgB,IAAIrB,WAAUA,CAAC,QAAQ;QAAE,SAAS;IAAK,GAAG,MAAM,CAAC;QACrE;KACD;IACDS,eAAeA,CAACY;IAChB,OAAOA;AACT;AAEA,MAAMC,yBAAyBA,GAAGX,CAAAA;IAChC,MAAMY,mBAAmB,IAAIvB,WAAUA,CAAC;QACtC,MAAM;QACN,SAAS;QACT,aAAa;IACf;IACAS,eAAeA,CAACc,kBAAkBZ;IAClC,OAAOY;AACT;AAEO,MAAMC,cAAcA,GAAGC,CAAAA;IAC5B,MAAMd,SAASV,cAAcA,KAAK,UAAU;IAC5C,MAAMsB,mBAAmBD,yBAAyBA,CAACX;IACnD,+EAA+E;IAC/E,6DAA6D;IAC7Dc,OAAOA,KACJ,GAAG,CAACC,CAAAA;QACH,IAAInB,kBAAkBA,CAACmB,IAAI;YACzB,OAAOxB,aAAaA;QACtB,OAAO,IAAI,OAAOwB,MAAM,UAAU;YAChC,OAAOA,EACJ,OAAO,CAACvB,mBAAmBA,EAAED,aAAaA,EAC1C,OAAO,CAACG,wBAAwBA,EAAEH,aAAaA;QACpD,OAAO;YACL,OAAOyB,OAAOD;QAChB;IACF,GACC,IAAI,CAAC;IACR,OAAOH,iBAAiB,MAAM,CAACE;AACjC,EAAC;AAED,MAAMJ,sBAAaA,GAAGD,sBAAsBA;AACrC,MAAMQ,WAAWA,GAAGH,CAAAA;IACzB,OAAOJ,sBAAaA,CAAC,MAAM,CAACI;AAC9B,EAAC;AAEM,MAAMI,iBAAiBA,GAAGC,CAAAA;IAC/BA,WAAWC,MAAM,OAAO,CAACD,YAAYA,WAAW;QAACA;KAAS;IAC1D,MAAML,OAAOK,SACV,MAAM,CAACJ,CAAAA,IAAKnB,kBAAkBA,CAACmB,MAAM,CAACA,EAAE,IAAI,EAC5C,GAAG,CAACA,CAAAA;QACH,IAAIK,MAAM,OAAO,CAACL,IAAI;YACpB,OAAOG,iBAAiBA,CAACH;QAC3B;QACA,IAAInB,kBAAkBA,CAACmB,IAAI;YACzB,OAAOtB,kBAAkBA;QAC3B,OAAO;YACL,OAAOuB,OAAOD,GAAG,OAAO,CAACvB,mBAAmBA,EAAEC,kBAAkBA;QAClE;IACF,GACC,IAAI,CAAC;IACR,OAAOqB;AACT,EAAC;AAEM,MAAMO,kBAAkBA,GAAGF,CAAAA,WAChCA,SAAS,GAAG,CAACJ,CAAAA,IAAMnB,kBAAkBA,CAACmB,KAAKtB,kBAAkBA,GAAGsB,GAAG;AAE9D,MAAMO,uBAAuBA,GAAGC,CAAAA,QAAS,CAAC;;;;;;;;;;QAUzC,EAAEA,MAAM;;;;QAIR,EAAEA,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DhB,CAAC;AACM,MAAMC,gBAAgBA,GAAG,CAACC,YAAYC;IAC3C,OAAOD,WAAW,iBAAiBH,uBAAuBA,CAACI;AAC7D,EAAC"}