@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.
- package/lib/app.js.map +1 -0
- package/lib/botonic-tester.js.map +1 -0
- package/lib/components/audio.d.ts +9 -0
- package/lib/components/audio.js.map +1 -0
- package/lib/components/button/index.js.map +1 -0
- package/lib/components/button/styles.js.map +1 -0
- package/lib/components/buttons-disabler.js.map +1 -0
- package/lib/components/carousel.d.ts +10 -0
- package/lib/components/carousel.js.map +1 -0
- package/lib/components/components.js.map +1 -0
- package/lib/components/constants.js.map +1 -0
- package/lib/components/custom-message.js.map +1 -0
- package/lib/components/document.d.ts +9 -0
- package/lib/components/document.js.map +1 -0
- package/lib/components/element.js.map +1 -0
- package/lib/components/handoff.d.ts +1 -0
- package/lib/components/handoff.js.map +1 -0
- package/lib/components/image.d.ts +9 -0
- package/lib/components/image.js.map +1 -0
- package/lib/components/index-types.js.map +1 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/location.js.map +1 -0
- package/lib/components/markdown.js.map +1 -0
- package/lib/components/message/index.js.map +1 -0
- package/lib/components/message/message-footer.d.ts +8 -0
- package/lib/components/message/message-footer.js.map +1 -0
- package/lib/components/message/message-image.js.map +1 -0
- package/lib/components/message/styles.js.map +1 -0
- package/lib/components/message/timestamps.d.ts +13 -0
- package/lib/components/message/timestamps.js.map +1 -0
- package/lib/components/message-template.js.map +1 -0
- package/lib/components/multichannel/facebook/facebook.js.map +1 -0
- package/lib/components/multichannel/index-types.js.map +1 -0
- package/lib/components/multichannel/index.d.ts +7 -0
- package/lib/components/multichannel/index.js +21 -0
- package/lib/components/multichannel/index.js.map +1 -0
- package/lib/components/multichannel/multichannel-button.d.ts +4 -0
- package/lib/components/multichannel/multichannel-button.js.map +1 -0
- package/lib/components/multichannel/multichannel-carousel.d.ts +1 -0
- package/lib/components/multichannel/multichannel-carousel.js.map +1 -0
- package/lib/components/multichannel/multichannel-context.js.map +1 -0
- package/lib/components/multichannel/multichannel-reply.d.ts +4 -0
- package/lib/components/multichannel/multichannel-reply.js.map +1 -0
- package/lib/components/multichannel/multichannel-text.d.ts +2 -0
- package/lib/components/multichannel/multichannel-text.js.map +1 -0
- package/lib/components/multichannel/multichannel-utils.js.map +1 -0
- package/lib/components/multichannel/multichannel.js.map +1 -0
- package/lib/components/multichannel/whatsapp/constants.js.map +1 -0
- package/lib/components/multichannel/whatsapp/markdown-meta.js.map +1 -0
- package/lib/components/pic.js.map +1 -0
- package/lib/components/raw.d.ts +9 -0
- package/lib/components/raw.js.map +1 -0
- package/lib/components/reply.js.map +1 -0
- package/lib/components/share-button.js.map +1 -0
- package/lib/components/subtitle.js.map +1 -0
- package/lib/components/system-debug-trace/debug-message.d.ts +8 -0
- package/lib/components/system-debug-trace/debug-message.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +4 -0
- package/lib/components/system-debug-trace/events/ai-agent/ai-agent.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +7 -0
- package/lib/components/system-debug-trace/events/ai-agent/executed-tools.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/parse-tools.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/types.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/ai-agent-router.d.ts +4 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/ai-agent-router.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/ai-agent-router/types.js.map +1 -0
- package/lib/components/system-debug-trace/events/bot-action.js.map +1 -0
- package/lib/components/system-debug-trace/events/components/guardrail-item.js.map +1 -0
- package/lib/components/system-debug-trace/events/components/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/components/sources-section.d.ts +11 -0
- package/lib/components/system-debug-trace/events/components/sources-section.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-channel.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-country.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-custom.d.ts +10 -0
- package/lib/components/system-debug-trace/events/conditional-custom.js.map +1 -0
- package/lib/components/system-debug-trace/events/conditional-queue-status.d.ts +11 -0
- package/lib/components/system-debug-trace/events/conditional-queue-status.js.map +1 -0
- package/lib/components/system-debug-trace/events/constants.js.map +1 -0
- package/lib/components/system-debug-trace/events/fallback.js.map +1 -0
- package/lib/components/system-debug-trace/events/handoff-success.d.ts +11 -0
- package/lib/components/system-debug-trace/events/handoff-success.js.map +1 -0
- package/lib/components/system-debug-trace/events/index.js.map +1 -0
- package/lib/components/system-debug-trace/events/keyword.js.map +1 -0
- package/lib/components/system-debug-trace/events/knowledge-bases-types.js.map +1 -0
- package/lib/components/system-debug-trace/events/redirect-flow.js.map +1 -0
- package/lib/components/system-debug-trace/events/smart-intent.js.map +1 -0
- package/lib/components/system-debug-trace/events/webview-action-triggered.d.ts +10 -0
- package/lib/components/system-debug-trace/events/webview-action-triggered.js.map +1 -0
- package/lib/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +16 -0
- package/lib/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +1 -0
- package/lib/components/system-debug-trace/hooks/use-last-label-position.js.map +1 -0
- package/lib/components/system-debug-trace/icons/ai-router.d.ts +1 -0
- package/lib/components/system-debug-trace/icons/ai-router.js.map +1 -0
- package/lib/components/system-debug-trace/icons/ai-specialist.d.ts +1 -0
- package/lib/components/system-debug-trace/icons/ai-specialist.js.map +1 -0
- package/lib/components/system-debug-trace/icons/arrow-progress.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/arrow-progress.js.map +1 -0
- package/lib/components/system-debug-trace/icons/brain.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/brain.js.map +1 -0
- package/lib/components/system-debug-trace/icons/caret-down.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/caret-down.js.map +1 -0
- package/lib/components/system-debug-trace/icons/caret-up.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/caret-up.js.map +1 -0
- package/lib/components/system-debug-trace/icons/circle-check.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/circle-check.js.map +1 -0
- package/lib/components/system-debug-trace/icons/code.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/code.js.map +1 -0
- package/lib/components/system-debug-trace/icons/file-pdf.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/file-pdf.js.map +1 -0
- package/lib/components/system-debug-trace/icons/file-word.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/file-word.js.map +1 -0
- package/lib/components/system-debug-trace/icons/hand.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/hand.js.map +1 -0
- package/lib/components/system-debug-trace/icons/head-set.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/head-set.js.map +1 -0
- package/lib/components/system-debug-trace/icons/index.js.map +1 -0
- package/lib/components/system-debug-trace/icons/life-ring.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/life-ring.js.map +1 -0
- package/lib/components/system-debug-trace/icons/link.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/link.js.map +1 -0
- package/lib/components/system-debug-trace/icons/quote-right.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/quote-right.js.map +1 -0
- package/lib/components/system-debug-trace/icons/screwdriver-wrench.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/screwdriver-wrench.js.map +1 -0
- package/lib/components/system-debug-trace/icons/split.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/split.js.map +1 -0
- package/lib/components/system-debug-trace/icons/wand.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/wand.js.map +1 -0
- package/lib/components/system-debug-trace/icons/window-restore.d.ts +2 -0
- package/lib/components/system-debug-trace/icons/window-restore.js.map +1 -0
- package/lib/components/system-debug-trace/index.d.ts +10 -0
- package/lib/components/system-debug-trace/index.js.map +1 -0
- package/lib/components/system-debug-trace/styles.js.map +1 -0
- package/lib/components/system-debug-trace/types.js.map +1 -0
- package/lib/components/text.d.ts +8 -0
- package/lib/components/text.js.map +1 -0
- package/lib/components/title.js.map +1 -0
- package/lib/components/video.d.ts +9 -0
- package/lib/components/video.js.map +1 -0
- package/lib/components/webchat-settings.js.map +1 -0
- package/lib/components/whatsapp-button-list.js.map +1 -0
- package/lib/components/whatsapp-catalog.js.map +1 -0
- package/lib/components/whatsapp-cta-url-button.js.map +1 -0
- package/lib/components/whatsapp-interactive-media-carousel.d.ts +31 -0
- package/lib/components/whatsapp-interactive-media-carousel.js.map +1 -0
- package/lib/components/whatsapp-media-carousel.js.map +1 -0
- package/lib/components/whatsapp-product-carousel.js.map +1 -0
- package/lib/components/whatsapp-product-list.js.map +1 -0
- package/lib/components/whatsapp-product.js.map +1 -0
- package/lib/components/whatsapp-request-contact-info.js.map +1 -0
- package/lib/components/whatsapp-template/index.js.map +1 -0
- package/lib/components/whatsapp-template/types.js.map +1 -0
- package/lib/constants.js.map +1 -0
- package/lib/contexts.js.map +1 -0
- package/lib/debug-system-messages.js.map +1 -0
- package/lib/dev-app.d.ts +213 -0
- package/lib/dev-app.js.map +1 -0
- package/lib/index-types.js.map +1 -0
- package/lib/index.js.map +1 -0
- package/lib/message-utils.js.map +1 -0
- package/lib/msg-to-botonic.js.map +1 -0
- package/lib/node-app.js.map +1 -0
- package/lib/react-bot.js.map +1 -0
- package/lib/shared/styles.js.map +1 -0
- package/lib/util/dom.js.map +1 -0
- package/lib/util/environment.js.map +1 -0
- package/lib/util/error-boundary.d.ts +7 -0
- package/lib/util/error-boundary.js.map +1 -0
- package/lib/util/functional.js.map +1 -0
- package/lib/util/i18n.js.map +1 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/logs.js.map +1 -0
- package/lib/util/objects.js.map +1 -0
- package/lib/util/react.js.map +1 -0
- package/lib/util/regexs.js.map +1 -0
- package/lib/util/strings.js.map +1 -0
- package/lib/util/webchat.js.map +1 -0
- package/lib/util/webviews.js.map +1 -0
- package/lib/webchat/chat-area/index.d.ts +1 -0
- package/lib/webchat/chat-area/index.js.map +1 -0
- package/lib/webchat/chat-area/styles.js.map +1 -0
- package/lib/webchat/components/common.d.ts +1 -0
- package/lib/webchat/components/common.js.map +1 -0
- package/lib/webchat/components/conditional-animation.d.ts +1 -0
- package/lib/webchat/components/conditional-animation.js.map +1 -0
- package/lib/webchat/components/opened-persistent-menu.d.ts +6 -0
- package/lib/webchat/components/opened-persistent-menu.js.map +1 -0
- package/lib/webchat/constants.js.map +1 -0
- package/lib/webchat/context/actions.js.map +1 -0
- package/lib/webchat/context/index.js.map +1 -0
- package/lib/webchat/context/messages-reducer.js.map +1 -0
- package/lib/webchat/context/types.js.map +1 -0
- package/lib/webchat/context/use-webchat.js.map +1 -0
- package/lib/webchat/context/webchat-reducer.js.map +1 -0
- package/lib/webchat/cover-component/index.d.ts +6 -0
- package/lib/webchat/cover-component/index.js.map +1 -0
- package/lib/webchat/custom-messages/index.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-angry.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-angry.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-frown.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-frown.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-grin-beam.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-grin-beam.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-meh.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-meh.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/face-smile.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/face-smile.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/index.js.map +1 -0
- package/lib/webchat/custom-messages/rating/icons/star.d.ts +3 -0
- package/lib/webchat/custom-messages/rating/icons/star.js.map +1 -0
- package/lib/webchat/custom-messages/rating/index.js.map +1 -0
- package/lib/webchat/custom-messages/rating/rating-selector.d.ts +11 -0
- package/lib/webchat/custom-messages/rating/rating-selector.js.map +1 -0
- package/lib/webchat/custom-messages/rating/smileys.d.ts +2 -0
- package/lib/webchat/custom-messages/rating/smileys.js.map +1 -0
- package/lib/webchat/custom-messages/rating/stars.d.ts +2 -0
- package/lib/webchat/custom-messages/rating/stars.js.map +1 -0
- package/lib/webchat/custom-messages/rating/styles.js.map +1 -0
- package/lib/webchat/custom-messages/rating/types.js.map +1 -0
- package/lib/webchat/devices/index.js.map +1 -0
- package/lib/webchat/header/default-header.d.ts +1 -0
- package/lib/webchat/header/default-header.js.map +1 -0
- package/lib/webchat/header/index.js.map +1 -0
- package/lib/webchat/header/styles.js.map +1 -0
- package/lib/webchat/hooks/index.js.map +1 -0
- package/lib/webchat/hooks/use-component-visible.js.map +1 -0
- package/lib/webchat/hooks/use-component-will-mount.js.map +1 -0
- package/lib/webchat/hooks/use-device-adapter.js.map +1 -0
- package/lib/webchat/hooks/use-previous.js.map +1 -0
- package/lib/webchat/hooks/use-scroll-to-bottom.js.map +1 -0
- package/lib/webchat/hooks/use-scrollbar-controller.js.map +1 -0
- package/lib/webchat/hooks/use-typing.js.map +1 -0
- package/lib/webchat/hooks/use-virtual-keyboard-detection.js.map +1 -0
- package/lib/webchat/hooks/use-webchat-dimensions.js.map +1 -0
- package/lib/webchat/hooks/use-webchat-resizer.js.map +1 -0
- package/lib/webchat/index-types.js.map +1 -0
- package/lib/webchat/index.js.map +1 -0
- package/lib/webchat/input-panel/attachment.d.ts +6 -0
- package/lib/webchat/input-panel/attachment.js.map +1 -0
- package/lib/webchat/input-panel/emoji-picker.d.ts +5 -0
- package/lib/webchat/input-panel/emoji-picker.js.map +1 -0
- package/lib/webchat/input-panel/index.d.ts +9 -0
- package/lib/webchat/input-panel/index.js.map +1 -0
- package/lib/webchat/input-panel/opened-emoji-picker.d.ts +6 -0
- package/lib/webchat/input-panel/opened-emoji-picker.js.map +1 -0
- package/lib/webchat/input-panel/persistent-menu.d.ts +5 -0
- package/lib/webchat/input-panel/persistent-menu.js.map +1 -0
- package/lib/webchat/input-panel/send-button.d.ts +5 -0
- package/lib/webchat/input-panel/send-button.js.map +1 -0
- package/lib/webchat/input-panel/styles.js.map +1 -0
- package/lib/webchat/input-panel/textarea.d.ts +10 -0
- package/lib/webchat/input-panel/textarea.js.map +1 -0
- package/lib/webchat/input-panel/typing-network-sender.js.map +1 -0
- package/lib/webchat/input-panel/use-typing-chat-event-sender.js.map +1 -0
- package/lib/webchat/input-panel/use-typing-session.js.map +1 -0
- package/lib/webchat/message-list/index.d.ts +2 -0
- package/lib/webchat/message-list/index.js +177 -0
- package/lib/webchat/message-list/index.js.map +1 -0
- package/lib/webchat/message-list/intro-message.d.ts +1 -0
- package/lib/webchat/message-list/intro-message.js.map +1 -0
- package/lib/webchat/message-list/scroll-button.js.map +1 -0
- package/lib/webchat/message-list/styles.js.map +1 -0
- package/lib/webchat/message-list/unread-messages-banner.js.map +1 -0
- package/lib/webchat/message-list/use-debounce.js.map +1 -0
- package/lib/webchat/message-list/use-notifications.js.map +1 -0
- package/lib/webchat/replies/index.d.ts +1 -0
- package/lib/webchat/replies/index.js.map +1 -0
- package/lib/webchat/replies/styles.js.map +1 -0
- package/lib/webchat/session-view.d.ts +1 -0
- package/lib/webchat/session-view.js.map +1 -0
- package/lib/webchat/styles.js.map +1 -0
- package/lib/webchat/theme/default-theme.js.map +1 -0
- package/lib/webchat/theme/types.js.map +1 -0
- package/lib/webchat/tracking.js.map +1 -0
- package/lib/webchat/trigger-button/index.js.map +1 -0
- package/lib/webchat/trigger-button/styles.js.map +1 -0
- package/lib/webchat/typing-indicator/index.js.map +1 -0
- package/lib/webchat/typing-indicator/styles.js.map +1 -0
- package/lib/webchat/use-storage-state-hook.js.map +1 -0
- package/lib/webchat/utils.js.map +1 -0
- package/lib/webchat/webchat-dev.js.map +1 -0
- package/lib/webchat/webchat.js.map +1 -0
- package/lib/webchat/webview/header.d.ts +1 -0
- package/lib/webchat/webview/header.js.map +1 -0
- package/lib/webchat/webview/index.d.ts +6 -0
- package/lib/webchat/webview/index.js.map +1 -0
- package/lib/webchat/webview/styles.js.map +1 -0
- package/lib/webchat-app.d.ts +114 -0
- package/lib/webchat-app.js.map +1 -0
- package/lib/webview-app.js.map +1 -0
- package/package.json +11 -14
- package/src/components/multichannel/index.ts +7 -6
- package/src/webchat/message-list/index.tsx +1 -0
- package/src/webchat/webchat.tsx +1 -0
- package/lib/esm/app.js.map +0 -1
- package/lib/esm/botonic-tester.js.map +0 -1
- package/lib/esm/components/audio.d.ts +0 -9
- package/lib/esm/components/audio.js.map +0 -1
- package/lib/esm/components/button/index.js.map +0 -1
- package/lib/esm/components/button/styles.js.map +0 -1
- package/lib/esm/components/buttons-disabler.js.map +0 -1
- package/lib/esm/components/carousel.d.ts +0 -10
- package/lib/esm/components/carousel.js.map +0 -1
- package/lib/esm/components/components.js.map +0 -1
- package/lib/esm/components/constants.js.map +0 -1
- package/lib/esm/components/custom-message.js.map +0 -1
- package/lib/esm/components/document.d.ts +0 -9
- package/lib/esm/components/document.js.map +0 -1
- package/lib/esm/components/element.js.map +0 -1
- package/lib/esm/components/handoff.d.ts +0 -1
- package/lib/esm/components/handoff.js.map +0 -1
- package/lib/esm/components/image.d.ts +0 -9
- package/lib/esm/components/image.js.map +0 -1
- package/lib/esm/components/index-types.js.map +0 -1
- package/lib/esm/components/index.js.map +0 -1
- package/lib/esm/components/location.js.map +0 -1
- package/lib/esm/components/markdown.js.map +0 -1
- package/lib/esm/components/message/index.js.map +0 -1
- package/lib/esm/components/message/message-footer.d.ts +0 -8
- package/lib/esm/components/message/message-footer.js.map +0 -1
- package/lib/esm/components/message/message-image.js.map +0 -1
- package/lib/esm/components/message/styles.js.map +0 -1
- package/lib/esm/components/message/timestamps.d.ts +0 -13
- package/lib/esm/components/message/timestamps.js.map +0 -1
- package/lib/esm/components/message-template.js.map +0 -1
- package/lib/esm/components/multichannel/facebook/facebook.js.map +0 -1
- package/lib/esm/components/multichannel/index-types.js.map +0 -1
- package/lib/esm/components/multichannel/index.d.ts +0 -11
- package/lib/esm/components/multichannel/index.js +0 -25
- package/lib/esm/components/multichannel/index.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-button.d.ts +0 -4
- package/lib/esm/components/multichannel/multichannel-button.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-carousel.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-context.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-reply.d.ts +0 -4
- package/lib/esm/components/multichannel/multichannel-reply.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-text.d.ts +0 -1
- package/lib/esm/components/multichannel/multichannel-text.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel-utils.js.map +0 -1
- package/lib/esm/components/multichannel/multichannel.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/constants.js.map +0 -1
- package/lib/esm/components/multichannel/whatsapp/markdown-meta.js.map +0 -1
- package/lib/esm/components/pic.js.map +0 -1
- package/lib/esm/components/raw.d.ts +0 -9
- package/lib/esm/components/raw.js.map +0 -1
- package/lib/esm/components/reply.js.map +0 -1
- package/lib/esm/components/share-button.js.map +0 -1
- package/lib/esm/components/subtitle.js.map +0 -1
- package/lib/esm/components/system-debug-trace/debug-message.d.ts +0 -7
- package/lib/esm/components/system-debug-trace/debug-message.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.d.ts +0 -4
- package/lib/esm/components/system-debug-trace/events/ai-agent/ai-agent.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.d.ts +0 -7
- package/lib/esm/components/system-debug-trace/events/ai-agent/executed-tools.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/parse-tools.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/types.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/ai-agent-router.d.ts +0 -4
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/ai-agent-router.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/ai-agent-router/types.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/bot-action.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/components/guardrail-item.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/components/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/components/sources-section.d.ts +0 -11
- package/lib/esm/components/system-debug-trace/events/components/sources-section.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-channel.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-country.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-custom.d.ts +0 -10
- package/lib/esm/components/system-debug-trace/events/conditional-custom.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/conditional-queue-status.d.ts +0 -11
- package/lib/esm/components/system-debug-trace/events/conditional-queue-status.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/constants.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/fallback.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/handoff-success.d.ts +0 -11
- package/lib/esm/components/system-debug-trace/events/handoff-success.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/keyword.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/knowledge-bases-types.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/redirect-flow.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/smart-intent.js.map +0 -1
- package/lib/esm/components/system-debug-trace/events/webview-action-triggered.d.ts +0 -10
- package/lib/esm/components/system-debug-trace/events/webview-action-triggered.js.map +0 -1
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.d.ts +0 -16
- package/lib/esm/components/system-debug-trace/hooks/use-knowledge-base-info.js.map +0 -1
- package/lib/esm/components/system-debug-trace/hooks/use-last-label-position.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-router.d.ts +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-router.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-specialist.d.ts +0 -1
- package/lib/esm/components/system-debug-trace/icons/ai-specialist.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/arrow-progress.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/arrow-progress.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/brain.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/brain.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/caret-down.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/caret-down.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/caret-up.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/caret-up.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/circle-check.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/circle-check.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/code.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/code.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/file-pdf.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/file-pdf.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/file-word.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/file-word.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/hand.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/hand.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/head-set.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/head-set.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/life-ring.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/life-ring.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/link.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/link.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/quote-right.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/quote-right.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/screwdriver-wrench.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/split.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/split.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/wand.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/wand.js.map +0 -1
- package/lib/esm/components/system-debug-trace/icons/window-restore.d.ts +0 -2
- package/lib/esm/components/system-debug-trace/icons/window-restore.js.map +0 -1
- package/lib/esm/components/system-debug-trace/index.d.ts +0 -10
- package/lib/esm/components/system-debug-trace/index.js.map +0 -1
- package/lib/esm/components/system-debug-trace/styles.js.map +0 -1
- package/lib/esm/components/system-debug-trace/types.js.map +0 -1
- package/lib/esm/components/text.d.ts +0 -8
- package/lib/esm/components/text.js.map +0 -1
- package/lib/esm/components/title.js.map +0 -1
- package/lib/esm/components/video.d.ts +0 -9
- package/lib/esm/components/video.js.map +0 -1
- package/lib/esm/components/webchat-settings.js.map +0 -1
- package/lib/esm/components/whatsapp-button-list.js.map +0 -1
- package/lib/esm/components/whatsapp-catalog.js.map +0 -1
- package/lib/esm/components/whatsapp-cta-url-button.js.map +0 -1
- package/lib/esm/components/whatsapp-interactive-media-carousel.d.ts +0 -31
- package/lib/esm/components/whatsapp-interactive-media-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-media-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-product-carousel.js.map +0 -1
- package/lib/esm/components/whatsapp-product-list.js.map +0 -1
- package/lib/esm/components/whatsapp-product.js.map +0 -1
- package/lib/esm/components/whatsapp-request-contact-info.js.map +0 -1
- package/lib/esm/components/whatsapp-template/index.js.map +0 -1
- package/lib/esm/components/whatsapp-template/types.js.map +0 -1
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/contexts.js.map +0 -1
- package/lib/esm/debug-system-messages.js.map +0 -1
- package/lib/esm/dev-app.d.ts +0 -213
- package/lib/esm/dev-app.js.map +0 -1
- package/lib/esm/index-types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/message-utils.js.map +0 -1
- package/lib/esm/msg-to-botonic.js.map +0 -1
- package/lib/esm/node-app.js.map +0 -1
- package/lib/esm/package.json +0 -3
- package/lib/esm/react-bot.js.map +0 -1
- package/lib/esm/shared/styles.js.map +0 -1
- package/lib/esm/util/dom.js.map +0 -1
- package/lib/esm/util/environment.js.map +0 -1
- package/lib/esm/util/error-boundary.d.ts +0 -7
- package/lib/esm/util/error-boundary.js.map +0 -1
- package/lib/esm/util/functional.js.map +0 -1
- package/lib/esm/util/i18n.js.map +0 -1
- package/lib/esm/util/index.js.map +0 -1
- package/lib/esm/util/logs.js.map +0 -1
- package/lib/esm/util/objects.js.map +0 -1
- package/lib/esm/util/react.js.map +0 -1
- package/lib/esm/util/regexs.js.map +0 -1
- package/lib/esm/util/strings.js.map +0 -1
- package/lib/esm/util/webchat.js.map +0 -1
- package/lib/esm/util/webviews.js.map +0 -1
- package/lib/esm/webchat/chat-area/index.d.ts +0 -1
- package/lib/esm/webchat/chat-area/index.js.map +0 -1
- package/lib/esm/webchat/chat-area/styles.js.map +0 -1
- package/lib/esm/webchat/components/common.d.ts +0 -1
- package/lib/esm/webchat/components/common.js.map +0 -1
- package/lib/esm/webchat/components/conditional-animation.d.ts +0 -1
- package/lib/esm/webchat/components/conditional-animation.js.map +0 -1
- package/lib/esm/webchat/components/opened-persistent-menu.d.ts +0 -6
- package/lib/esm/webchat/components/opened-persistent-menu.js.map +0 -1
- package/lib/esm/webchat/constants.js.map +0 -1
- package/lib/esm/webchat/context/actions.js.map +0 -1
- package/lib/esm/webchat/context/index.js.map +0 -1
- package/lib/esm/webchat/context/messages-reducer.js.map +0 -1
- package/lib/esm/webchat/context/types.js.map +0 -1
- package/lib/esm/webchat/context/use-webchat.js.map +0 -1
- package/lib/esm/webchat/context/webchat-reducer.js.map +0 -1
- package/lib/esm/webchat/cover-component/index.d.ts +0 -6
- package/lib/esm/webchat/cover-component/index.js.map +0 -1
- package/lib/esm/webchat/custom-messages/index.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-angry.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-angry.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-frown.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-frown.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-grin-beam.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-meh.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-meh.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/face-smile.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/face-smile.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/index.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/icons/star.d.ts +0 -3
- package/lib/esm/webchat/custom-messages/rating/icons/star.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/index.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/rating-selector.d.ts +0 -11
- package/lib/esm/webchat/custom-messages/rating/rating-selector.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/smileys.d.ts +0 -2
- package/lib/esm/webchat/custom-messages/rating/smileys.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/stars.d.ts +0 -2
- package/lib/esm/webchat/custom-messages/rating/stars.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/styles.js.map +0 -1
- package/lib/esm/webchat/custom-messages/rating/types.js.map +0 -1
- package/lib/esm/webchat/devices/index.js.map +0 -1
- package/lib/esm/webchat/header/default-header.d.ts +0 -1
- package/lib/esm/webchat/header/default-header.js.map +0 -1
- package/lib/esm/webchat/header/index.js.map +0 -1
- package/lib/esm/webchat/header/styles.js.map +0 -1
- package/lib/esm/webchat/hooks/index.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-visible.js.map +0 -1
- package/lib/esm/webchat/hooks/use-component-will-mount.js.map +0 -1
- package/lib/esm/webchat/hooks/use-device-adapter.js.map +0 -1
- package/lib/esm/webchat/hooks/use-previous.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scroll-to-bottom.js.map +0 -1
- package/lib/esm/webchat/hooks/use-scrollbar-controller.js.map +0 -1
- package/lib/esm/webchat/hooks/use-typing.js.map +0 -1
- package/lib/esm/webchat/hooks/use-virtual-keyboard-detection.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-dimensions.js.map +0 -1
- package/lib/esm/webchat/hooks/use-webchat-resizer.js.map +0 -1
- package/lib/esm/webchat/index-types.js.map +0 -1
- package/lib/esm/webchat/index.js.map +0 -1
- package/lib/esm/webchat/input-panel/attachment.d.ts +0 -6
- package/lib/esm/webchat/input-panel/attachment.js.map +0 -1
- package/lib/esm/webchat/input-panel/emoji-picker.d.ts +0 -5
- package/lib/esm/webchat/input-panel/emoji-picker.js.map +0 -1
- package/lib/esm/webchat/input-panel/index.d.ts +0 -9
- package/lib/esm/webchat/input-panel/index.js.map +0 -1
- package/lib/esm/webchat/input-panel/opened-emoji-picker.d.ts +0 -6
- package/lib/esm/webchat/input-panel/opened-emoji-picker.js.map +0 -1
- package/lib/esm/webchat/input-panel/persistent-menu.d.ts +0 -5
- package/lib/esm/webchat/input-panel/persistent-menu.js.map +0 -1
- package/lib/esm/webchat/input-panel/send-button.d.ts +0 -5
- package/lib/esm/webchat/input-panel/send-button.js.map +0 -1
- package/lib/esm/webchat/input-panel/styles.js.map +0 -1
- package/lib/esm/webchat/input-panel/textarea.d.ts +0 -10
- package/lib/esm/webchat/input-panel/textarea.js.map +0 -1
- package/lib/esm/webchat/input-panel/typing-network-sender.js.map +0 -1
- package/lib/esm/webchat/input-panel/use-typing-chat-event-sender.js.map +0 -1
- package/lib/esm/webchat/input-panel/use-typing-session.js.map +0 -1
- package/lib/esm/webchat/message-list/index.d.ts +0 -1
- package/lib/esm/webchat/message-list/index.js +0 -176
- package/lib/esm/webchat/message-list/index.js.map +0 -1
- package/lib/esm/webchat/message-list/intro-message.d.ts +0 -1
- package/lib/esm/webchat/message-list/intro-message.js.map +0 -1
- package/lib/esm/webchat/message-list/scroll-button.js.map +0 -1
- package/lib/esm/webchat/message-list/styles.js.map +0 -1
- package/lib/esm/webchat/message-list/unread-messages-banner.js.map +0 -1
- package/lib/esm/webchat/message-list/use-debounce.js.map +0 -1
- package/lib/esm/webchat/message-list/use-notifications.js.map +0 -1
- package/lib/esm/webchat/replies/index.d.ts +0 -1
- package/lib/esm/webchat/replies/index.js.map +0 -1
- package/lib/esm/webchat/replies/styles.js.map +0 -1
- package/lib/esm/webchat/session-view.d.ts +0 -1
- package/lib/esm/webchat/session-view.js.map +0 -1
- package/lib/esm/webchat/styles.js.map +0 -1
- package/lib/esm/webchat/theme/default-theme.js.map +0 -1
- package/lib/esm/webchat/theme/types.js.map +0 -1
- package/lib/esm/webchat/tracking.js.map +0 -1
- package/lib/esm/webchat/trigger-button/index.js.map +0 -1
- package/lib/esm/webchat/trigger-button/styles.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/index.js.map +0 -1
- package/lib/esm/webchat/typing-indicator/styles.js.map +0 -1
- package/lib/esm/webchat/use-storage-state-hook.js.map +0 -1
- package/lib/esm/webchat/utils.js.map +0 -1
- package/lib/esm/webchat/webchat-dev.js.map +0 -1
- package/lib/esm/webchat/webchat.js.map +0 -1
- package/lib/esm/webchat/webview/header.d.ts +0 -1
- package/lib/esm/webchat/webview/header.js.map +0 -1
- package/lib/esm/webchat/webview/index.d.ts +0 -6
- package/lib/esm/webchat/webview/index.js.map +0 -1
- package/lib/esm/webchat/webview/styles.js.map +0 -1
- package/lib/esm/webchat-app.d.ts +0 -114
- package/lib/esm/webchat-app.js.map +0 -1
- package/lib/esm/webview-app.js.map +0 -1
- /package/lib/{esm/app.d.ts → app.d.ts} +0 -0
- /package/lib/{esm/app.js → app.js} +0 -0
- /package/lib/{esm/assets → assets}/arrow-down.svg +0 -0
- /package/lib/{esm/assets → assets}/arrow-scroll-down.svg +0 -0
- /package/lib/{esm/assets → assets}/attachment-icon.svg +0 -0
- /package/lib/{esm/assets → assets}/audio.svg +0 -0
- /package/lib/{esm/assets → assets}/botonic_react_logo100x100.png +0 -0
- /package/lib/{esm/assets → assets}/document.svg +0 -0
- /package/lib/{esm/assets → assets}/emojiButton.svg +0 -0
- /package/lib/{esm/assets → assets}/image.svg +0 -0
- /package/lib/{esm/assets → assets}/leftArrow.svg +0 -0
- /package/lib/{esm/assets → assets}/menuButton.svg +0 -0
- /package/lib/{esm/assets → assets}/rightArrow.svg +0 -0
- /package/lib/{esm/assets → assets}/send-button.svg +0 -0
- /package/lib/{esm/assets → assets}/thumbs-down.svg +0 -0
- /package/lib/{esm/assets → assets}/thumbs-up.svg +0 -0
- /package/lib/{esm/assets → assets}/types.d.ts +0 -0
- /package/lib/{esm/assets → assets}/url-icon.png +0 -0
- /package/lib/{esm/assets → assets}/video.svg +0 -0
- /package/lib/{esm/botonic-tester.d.ts → botonic-tester.d.ts} +0 -0
- /package/lib/{esm/botonic-tester.js → botonic-tester.js} +0 -0
- /package/lib/{esm/components → components}/audio.js +0 -0
- /package/lib/{esm/components → components}/button/index.d.ts +0 -0
- /package/lib/{esm/components → components}/button/index.js +0 -0
- /package/lib/{esm/components → components}/button/styles.d.ts +0 -0
- /package/lib/{esm/components → components}/button/styles.js +0 -0
- /package/lib/{esm/components → components}/buttons-disabler.d.ts +0 -0
- /package/lib/{esm/components → components}/buttons-disabler.js +0 -0
- /package/lib/{esm/components → components}/carousel.js +0 -0
- /package/lib/{esm/components → components}/components.d.ts +0 -0
- /package/lib/{esm/components → components}/components.js +0 -0
- /package/lib/{esm/components → components}/constants.d.ts +0 -0
- /package/lib/{esm/components → components}/constants.js +0 -0
- /package/lib/{esm/components → components}/custom-message.d.ts +0 -0
- /package/lib/{esm/components → components}/custom-message.js +0 -0
- /package/lib/{esm/components → components}/document.js +0 -0
- /package/lib/{esm/components → components}/element.d.ts +0 -0
- /package/lib/{esm/components → components}/element.js +0 -0
- /package/lib/{esm/components → components}/handoff.js +0 -0
- /package/lib/{esm/components → components}/image.js +0 -0
- /package/lib/{esm/components → components}/index-types.d.ts +0 -0
- /package/lib/{esm/components → components}/index-types.js +0 -0
- /package/lib/{esm/components → components}/index.d.ts +0 -0
- /package/lib/{esm/components → components}/index.js +0 -0
- /package/lib/{esm/components → components}/location.d.ts +0 -0
- /package/lib/{esm/components → components}/location.js +0 -0
- /package/lib/{esm/components → components}/markdown.d.ts +0 -0
- /package/lib/{esm/components → components}/markdown.js +0 -0
- /package/lib/{esm/components → components}/message/index.d.ts +0 -0
- /package/lib/{esm/components → components}/message/index.js +0 -0
- /package/lib/{esm/components → components}/message/message-footer.js +0 -0
- /package/lib/{esm/components → components}/message/message-image.d.ts +0 -0
- /package/lib/{esm/components → components}/message/message-image.js +0 -0
- /package/lib/{esm/components → components}/message/styles.d.ts +0 -0
- /package/lib/{esm/components → components}/message/styles.js +0 -0
- /package/lib/{esm/components → components}/message/timestamps.js +0 -0
- /package/lib/{esm/components → components}/message-template.d.ts +0 -0
- /package/lib/{esm/components → components}/message-template.js +0 -0
- /package/lib/{esm/components → components}/multichannel/facebook/facebook.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/facebook/facebook.js +0 -0
- /package/lib/{esm/components → components}/multichannel/index-types.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/index-types.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-button.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-carousel.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-context.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-context.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-reply.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-text.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-utils.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel-utils.js +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/multichannel.js +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/constants.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/constants.js +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/markdown-meta.d.ts +0 -0
- /package/lib/{esm/components → components}/multichannel/whatsapp/markdown-meta.js +0 -0
- /package/lib/{esm/components → components}/pic.d.ts +0 -0
- /package/lib/{esm/components → components}/pic.js +0 -0
- /package/lib/{esm/components → components}/raw.js +0 -0
- /package/lib/{esm/components → components}/reply.d.ts +0 -0
- /package/lib/{esm/components → components}/reply.js +0 -0
- /package/lib/{esm/components → components}/share-button.d.ts +0 -0
- /package/lib/{esm/components → components}/share-button.js +0 -0
- /package/lib/{esm/components → components}/subtitle.d.ts +0 -0
- /package/lib/{esm/components → components}/subtitle.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/debug-message.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/ai-agent.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/executed-tools.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/parse-tools.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/parse-tools.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/types.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/ai-agent-router.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/ai-agent-router/types.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/bot-action.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/bot-action.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/guardrail-item.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/guardrail-item.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/components/sources-section.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-channel.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-channel.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-country.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-country.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-custom.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/conditional-queue-status.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/constants.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/constants.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/fallback.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/fallback.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/handoff-success.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/keyword.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/keyword.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/knowledge-bases-types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/knowledge-bases-types.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/redirect-flow.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/redirect-flow.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/smart-intent.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/smart-intent.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/events/webview-action-triggered.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/hooks/use-knowledge-base-info.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/hooks/use-last-label-position.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/hooks/use-last-label-position.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/ai-router.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/ai-specialist.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/arrow-progress.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/brain.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/caret-down.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/caret-up.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/circle-check.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/code.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/file-pdf.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/file-word.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/hand.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/head-set.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/index.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/life-ring.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/link.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/quote-right.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/screwdriver-wrench.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/split.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/wand.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/icons/window-restore.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/index.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/styles.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/styles.js +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/types.d.ts +0 -0
- /package/lib/{esm/components → components}/system-debug-trace/types.js +0 -0
- /package/lib/{esm/components → components}/text.js +0 -0
- /package/lib/{esm/components → components}/title.d.ts +0 -0
- /package/lib/{esm/components → components}/title.js +0 -0
- /package/lib/{esm/components → components}/video.js +0 -0
- /package/lib/{esm/components → components}/webchat-settings.d.ts +0 -0
- /package/lib/{esm/components → components}/webchat-settings.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-button-list.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-button-list.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-catalog.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-catalog.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-cta-url-button.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-cta-url-button.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-interactive-media-carousel.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-media-carousel.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-media-carousel.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-carousel.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-carousel.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-list.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-product-list.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-product.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-product.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-request-contact-info.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-request-contact-info.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/index.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/index.js +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/types.d.ts +0 -0
- /package/lib/{esm/components → components}/whatsapp-template/types.js +0 -0
- /package/lib/{esm/constants.d.ts → constants.d.ts} +0 -0
- /package/lib/{esm/constants.js → constants.js} +0 -0
- /package/lib/{esm/contexts.d.ts → contexts.d.ts} +0 -0
- /package/lib/{esm/contexts.js → contexts.js} +0 -0
- /package/lib/{esm/debug-system-messages.d.ts → debug-system-messages.d.ts} +0 -0
- /package/lib/{esm/debug-system-messages.js → debug-system-messages.js} +0 -0
- /package/lib/{esm/dev-app.js → dev-app.js} +0 -0
- /package/lib/{esm/index-types.d.ts → index-types.d.ts} +0 -0
- /package/lib/{esm/index-types.js → index-types.js} +0 -0
- /package/lib/{esm/index.d.ts → index.d.ts} +0 -0
- /package/lib/{esm/index.js → index.js} +0 -0
- /package/lib/{esm/message-utils.d.ts → message-utils.d.ts} +0 -0
- /package/lib/{esm/message-utils.js → message-utils.js} +0 -0
- /package/lib/{esm/msg-to-botonic.d.ts → msg-to-botonic.d.ts} +0 -0
- /package/lib/{esm/msg-to-botonic.js → msg-to-botonic.js} +0 -0
- /package/lib/{esm/node-app.d.ts → node-app.d.ts} +0 -0
- /package/lib/{esm/node-app.js → node-app.js} +0 -0
- /package/lib/{esm/react-bot.d.ts → react-bot.d.ts} +0 -0
- /package/lib/{esm/react-bot.js → react-bot.js} +0 -0
- /package/lib/{esm/shared → shared}/styles.d.ts +0 -0
- /package/lib/{esm/shared → shared}/styles.js +0 -0
- /package/lib/{esm/util → util}/dom.d.ts +0 -0
- /package/lib/{esm/util → util}/dom.js +0 -0
- /package/lib/{esm/util → util}/environment.d.ts +0 -0
- /package/lib/{esm/util → util}/environment.js +0 -0
- /package/lib/{esm/util → util}/error-boundary.js +0 -0
- /package/lib/{esm/util → util}/functional.d.ts +0 -0
- /package/lib/{esm/util → util}/functional.js +0 -0
- /package/lib/{esm/util → util}/i18n.d.ts +0 -0
- /package/lib/{esm/util → util}/i18n.js +0 -0
- /package/lib/{esm/util → util}/index.d.ts +0 -0
- /package/lib/{esm/util → util}/index.js +0 -0
- /package/lib/{esm/util → util}/logs.d.ts +0 -0
- /package/lib/{esm/util → util}/logs.js +0 -0
- /package/lib/{esm/util → util}/objects.d.ts +0 -0
- /package/lib/{esm/util → util}/objects.js +0 -0
- /package/lib/{esm/util → util}/react.d.ts +0 -0
- /package/lib/{esm/util → util}/react.js +0 -0
- /package/lib/{esm/util → util}/regexs.d.ts +0 -0
- /package/lib/{esm/util → util}/regexs.js +0 -0
- /package/lib/{esm/util → util}/strings.d.ts +0 -0
- /package/lib/{esm/util → util}/strings.js +0 -0
- /package/lib/{esm/util → util}/webchat.d.ts +0 -0
- /package/lib/{esm/util → util}/webchat.js +0 -0
- /package/lib/{esm/util → util}/webviews.d.ts +0 -0
- /package/lib/{esm/util → util}/webviews.js +0 -0
- /package/lib/{esm/webchat → webchat}/chat-area/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/chat-area/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/chat-area/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/components/common.js +0 -0
- /package/lib/{esm/webchat → webchat}/components/conditional-animation.js +0 -0
- /package/lib/{esm/webchat → webchat}/components/opened-persistent-menu.js +0 -0
- /package/lib/{esm/webchat → webchat}/constants.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/constants.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/actions.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/actions.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/messages-reducer.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/messages-reducer.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/types.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/use-webchat.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/use-webchat.js +0 -0
- /package/lib/{esm/webchat → webchat}/context/webchat-reducer.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/context/webchat-reducer.js +0 -0
- /package/lib/{esm/webchat → webchat}/cover-component/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-angry.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-frown.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-grin-beam.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-meh.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/face-smile.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/icons/star.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/rating-selector.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/smileys.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/stars.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/custom-messages/rating/types.js +0 -0
- /package/lib/{esm/webchat → webchat}/devices/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/devices/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/global.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/header/default-header.js +0 -0
- /package/lib/{esm/webchat → webchat}/header/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/header/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/header/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/header/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-visible.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-visible.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-will-mount.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-component-will-mount.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-device-adapter.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-device-adapter.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-previous.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-previous.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scroll-to-bottom.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scroll-to-bottom.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scrollbar-controller.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-scrollbar-controller.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-typing.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-typing.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-virtual-keyboard-detection.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-virtual-keyboard-detection.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-dimensions.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-dimensions.js +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-resizer.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/hooks/use-webchat-resizer.js +0 -0
- /package/lib/{esm/webchat → webchat}/index-types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/index-types.js +0 -0
- /package/lib/{esm/webchat → webchat}/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/attachment.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/emoji-picker.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/opened-emoji-picker.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/persistent-menu.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/send-button.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/textarea.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/typing-network-sender.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/typing-network-sender.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-chat-event-sender.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-chat-event-sender.js +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-session.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/input-panel/use-typing-session.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/intro-message.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/scroll-button.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/scroll-button.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/unread-messages-banner.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/unread-messages-banner.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-debounce.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-debounce.js +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-notifications.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/message-list/use-notifications.js +0 -0
- /package/lib/{esm/webchat → webchat}/replies/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/replies/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/replies/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/session-view.js +0 -0
- /package/lib/{esm/webchat → webchat}/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/theme/default-theme.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/theme/default-theme.js +0 -0
- /package/lib/{esm/webchat → webchat}/theme/theme.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/theme/types.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/theme/types.js +0 -0
- /package/lib/{esm/webchat → webchat}/tracking.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/tracking.js +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/trigger-button/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/index.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/typing-indicator/styles.js +0 -0
- /package/lib/{esm/webchat → webchat}/use-storage-state-hook.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/use-storage-state-hook.js +0 -0
- /package/lib/{esm/webchat → webchat}/utils.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/utils.js +0 -0
- /package/lib/{esm/webchat → webchat}/webchat-dev.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/webchat-dev.js +0 -0
- /package/lib/{esm/webchat → webchat}/webchat.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/webchat.js +0 -0
- /package/lib/{esm/webchat → webchat}/webview/header.js +0 -0
- /package/lib/{esm/webchat → webchat}/webview/index.js +0 -0
- /package/lib/{esm/webchat → webchat}/webview/styles.d.ts +0 -0
- /package/lib/{esm/webchat → webchat}/webview/styles.js +0 -0
- /package/lib/{esm/webchat-app.js → webchat-app.js} +0 -0
- /package/lib/{esm/webchat.template.html → webchat.template.html} +0 -0
- /package/lib/{esm/webview-app.d.ts → webview-app.d.ts} +0 -0
- /package/lib/{esm/webview-app.js → webview-app.js} +0 -0
- /package/lib/{esm/webview.template.html → webview.template.html} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/message/index.js","sources":["../../../../src/components/message/index.jsx"],"sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { v7 as uuidv7 } from 'uuid'\n\nimport { COLORS, WEBCHAT } from '../../constants'\nimport { RequestContext } from '../../contexts'\nimport { SENDERS } from '../../index-types'\nimport { Fade } from '../../shared/styles'\nimport { isDev } from '../../util/environment'\nimport { ConditionalWrapper, renderComponent } from '../../util/react'\nimport { WebchatContext } from '../../webchat/context'\nimport { Button } from '../button/index'\nimport { ButtonsDisabler } from '../buttons-disabler'\nimport { getMarkdownStyle, renderLinks, renderMarkdown } from '../markdown'\nimport { Reply } from '../reply'\nimport { MessageFooter } from './message-footer'\nimport { MessageImage } from './message-image'\nimport {\n BlobContainer,\n BlobText,\n BlobTick,\n BlobTickContainer,\n MessageContainer,\n} from './styles'\nimport { resolveMessageTimestamps } from './timestamps'\n\nexport const Message = props => {\n const { defaultTyping, defaultDelay } = useContext(RequestContext)\n let {\n type = '',\n blob = true,\n sentBy,\n delay = defaultDelay,\n typing = defaultTyping,\n children,\n enabletimestamps = props.enabletimestamps || props.enableTimestamps,\n json,\n style,\n imagestyle = props.imagestyle || props.imageStyle,\n isUnread = true,\n botInteractionId,\n markdown,\n ...otherProps\n } = props\n\n const isSentByUser = sentBy === SENDERS.user\n const isSentByBot = sentBy === SENDERS.bot\n const isSentBySystem = sentBy === SENDERS.system\n const { webchatState, addMessage, updateReplies, getThemeProperty } =\n useContext(WebchatContext)\n const [state] = useState({\n id: props.id || uuidv7(),\n })\n\n const [disabled, setDisabled] = useState(false)\n children = ButtonsDisabler.updateChildrenButtons(children, {\n parentId: state.id,\n disabled,\n setDisabled,\n })\n const replies = React.Children.toArray(children).filter(e => e.type === Reply)\n const buttons = React.Children.toArray(children).filter(\n e => e.type === Button\n )\n\n let textChildren = React.Children.toArray(children).filter(\n e => ![Button, Reply].includes(e.type)\n )\n if (isSentByUser) {\n textChildren = textChildren.map(e =>\n typeof e === 'string' ? renderLinks(e) : e\n )\n }\n\n const { timestampsEnabled, getFormattedTimestamp } = resolveMessageTimestamps(\n getThemeProperty,\n enabletimestamps\n )\n\n const getEnvAck = () => {\n if (isDev) {\n return 1\n }\n if (!isSentByUser) {\n return 1\n }\n if (props.ack !== undefined) {\n return props.ack\n }\n return 0\n }\n\n const ack = getEnvAck()\n\n useEffect(() => {\n if (isBrowser()) {\n const decomposedChildren = json\n const message = {\n id: state.id,\n type,\n data: decomposedChildren ? decomposedChildren : textChildren,\n timestamp: props.timestamp || getFormattedTimestamp,\n markdown,\n sentBy,\n buttons: buttons.map(b => ({\n parentId: b.props.parentId,\n payload: b.props.payload,\n path: b.props.path,\n url: b.props.url,\n target: b.props.target,\n webview: b.props.webview && String(b.props.webview),\n title: b.props.children,\n ...ButtonsDisabler.withDisabledProps(b.props),\n })),\n delay,\n typing,\n replies: replies.map(r => ({\n payload: r.props.payload,\n path: r.props.path,\n url: r.props.url,\n text: r.props.children,\n })),\n display: delay + typing === 0,\n customTypeName: decomposedChildren.customTypeName,\n ack: ack,\n isUnread: isUnread === 1 || isUnread === true,\n botInteractionId,\n }\n addMessage(message)\n }\n }, [])\n\n useEffect(() => {\n if (isBrowser()) {\n const msg = webchatState.messagesJSON.find(m => m.id === state.id)\n if (\n msg?.display &&\n webchatState.messagesJSON.filter(m => !m.display).length === 0\n ) {\n updateReplies(replies)\n }\n }\n }, [webchatState.messagesJSON])\n\n const brandColor = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.brandColor)\n\n const getBgColor = () => {\n if (!blob) {\n return COLORS.TRANSPARENT\n }\n if (isSentByUser) {\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.userMessageBackground,\n brandColor\n )\n }\n return getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBackground,\n COLORS.SEASHELL_WHITE\n )\n }\n\n const getMessageStyle = () =>\n isSentByUser\n ? getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.userMessageStyle)\n : getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.botMessageStyle)\n\n const userOrBotMessage = isSentByUser ? SENDERS.user : SENDERS.bot\n const hasBlobTick = () =>\n getThemeProperty(`message.${userOrBotMessage}.blobTick`)\n\n const renderBrowser = () => {\n const messageJSON = webchatState.messagesJSON.find(m => m.id === state.id)\n if (!messageJSON || !messageJSON.display) {\n return <></>\n }\n\n if (messageJSON?.type === INPUT.SYSTEM_DEBUG_TRACE) {\n return children\n }\n\n const getBlobTick = pointerSize => {\n // to add a border to the blobTick we need to create two triangles and overlap them\n // that is why the color depends on the pointerSize\n // https://developpaper.com/realization-code-of-css-drawing-triangle-border-method/\n const color =\n pointerSize === 5\n ? getBgColor()\n : getThemeProperty(\n `message.${userOrBotMessage}.style.borderColor`,\n COLORS.TRANSPARENT\n )\n const containerStyle = {\n ...getThemeProperty(`message.${userOrBotMessage}.blobTickStyle`),\n }\n const blobTickStyle = {}\n if (isSentByUser) {\n containerStyle.right = 0\n containerStyle.marginRight = -pointerSize\n blobTickStyle.borderRight = 0\n blobTickStyle.borderLeftColor = color\n } else {\n containerStyle.left = 0\n containerStyle.marginLeft = -pointerSize\n blobTickStyle.borderLeft = 0\n blobTickStyle.borderRightColor = color\n }\n return (\n <BlobTickContainer style={containerStyle}>\n <BlobTick pointerSize={pointerSize} style={blobTickStyle} />\n </BlobTickContainer>\n )\n }\n\n const animationsEnabled = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableAnimations\n )\n\n const resolveCustomTypeName = () =>\n isSentByBot && type === INPUT.CUSTOM\n ? ` ${messageJSON.customTypeName}`\n : ''\n\n const className = `${type}-${userOrBotMessage}${resolveCustomTypeName()}`\n\n return (\n <ConditionalWrapper\n condition={animationsEnabled}\n wrapper={children => <Fade>{children}</Fade>}\n >\n <MessageContainer\n isSentByUser={isSentByUser}\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.messageStyle),\n }}\n >\n <MessageImage imagestyle={imagestyle} sentBy={sentBy} />\n <BlobContainer\n className={className}\n issentbysystem={isSentBySystem}\n bgcolor={getBgColor()}\n color={isSentByUser ? COLORS.SOLID_WHITE : COLORS.SOLID_BLACK}\n blobwidth={getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageBlobWidth\n )}\n blob={blob}\n style={{\n ...getMessageStyle(),\n ...style,\n ...{ opacity: ack === 0 ? 0.6 : 1 },\n }}\n {...otherProps}\n >\n {markdown ? (\n <BlobText\n blob={blob}\n dangerouslySetInnerHTML={{\n __html: renderMarkdown(textChildren),\n }}\n markdownstyle={getMarkdownStyle(\n getThemeProperty,\n isSentByUser ? COLORS.SEASHELL_WHITE : brandColor\n )}\n />\n ) : (\n <BlobText blob={blob}>{textChildren}</BlobText>\n )}\n {!!buttons.length && (\n <div className='message-buttons-container'>{buttons}</div>\n )}\n {Boolean(blob) && hasBlobTick() && getBlobTick(6)}\n {Boolean(blob) && hasBlobTick() && getBlobTick(5)}\n </BlobContainer>\n </MessageContainer>\n {timestampsEnabled ? (\n <MessageFooter\n enabletimestamps={timestampsEnabled}\n messageJSON={messageJSON}\n sentBy={sentBy}\n />\n ) : null}\n </ConditionalWrapper>\n )\n }\n\n const { blob: _blob, json: _json, ...nodeProps } = props\n const renderNode = () =>\n type === INPUT.CUSTOM ? (\n <message\n json={JSON.stringify(_json)}\n typing={typing}\n delay={delay}\n {...nodeProps}\n />\n ) : (\n <message typing={typing} delay={delay} {...nodeProps}>\n {children}\n </message>\n )\n\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"names":["INPUT","isBrowser","React","useContext","useEffect","useState","v7","uuidv7","COLORS","WEBCHAT","RequestContext","SENDERS","Fade","isDev","ConditionalWrapper","renderComponent","WebchatContext","Button","ButtonsDisabler","getMarkdownStyle","renderLinks","renderMarkdown","Reply","MessageFooter","MessageImage","BlobContainer","BlobText","BlobTick","BlobTickContainer","MessageContainer","resolveMessageTimestamps","Message","props","defaultTyping","defaultDelay","type","blob","sentBy","delay","typing","children","enabletimestamps","json","style","imagestyle","isUnread","botInteractionId","markdown","otherProps","isSentByUser","isSentByBot","isSentBySystem","webchatState","addMessage","updateReplies","getThemeProperty","state","disabled","setDisabled","replies","e","buttons","textChildren","timestampsEnabled","getFormattedTimestamp","getEnvAck","undefined","ack","decomposedChildren","message","b","String","r","msg","m","brandColor","getBgColor","getMessageStyle","userOrBotMessage","hasBlobTick","renderBrowser","messageJSON","getBlobTick","pointerSize","color","containerStyle","blobTickStyle","animationsEnabled","resolveCustomTypeName","className","Boolean","_blob","_json","nodeProps","renderNode","JSON"],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SENDERS } from '../../index-types.js';
|
|
2
|
-
interface MessageFooterProps {
|
|
3
|
-
enabletimestamps: boolean;
|
|
4
|
-
messageJSON: any;
|
|
5
|
-
sentBy: SENDERS;
|
|
6
|
-
}
|
|
7
|
-
export declare const MessageFooter: ({ enabletimestamps, messageJSON, sentBy, }: MessageFooterProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/message/message-footer.js","sources":["../../../../src/components/message/message-footer.tsx"],"sourcesContent":["import { useContext } from 'react'\n\nimport { SENDERS } from '../../index-types'\nimport { WebchatContext } from '../../webchat/context'\nimport { MessageFooterContainer } from './styles'\nimport { MessageTimestamp, resolveMessageTimestamps } from './timestamps'\n\ninterface MessageFooterProps {\n enabletimestamps: boolean\n messageJSON: any\n sentBy: SENDERS\n}\n\nexport const MessageFooter = ({\n enabletimestamps,\n messageJSON,\n sentBy,\n}: MessageFooterProps) => {\n const { getThemeProperty } = useContext(WebchatContext)\n\n const { timestampsEnabled, timestampStyle } = resolveMessageTimestamps(\n getThemeProperty,\n enabletimestamps\n )\n const isSentByUser = sentBy === SENDERS.user\n const messageFooterClass = isSentByUser\n ? 'message-footer-user'\n : 'message-footer-bot'\n\n return (\n <MessageFooterContainer\n className={messageFooterClass}\n isSentByUser={isSentByUser}\n >\n {timestampsEnabled ? (\n <MessageTimestamp\n sentBy={sentBy}\n style={timestampStyle}\n timestamp={messageJSON.timestamp}\n />\n ) : null}\n </MessageFooterContainer>\n )\n}\n"],"names":["useContext","SENDERS","WebchatContext","MessageFooterContainer","MessageTimestamp","resolveMessageTimestamps","MessageFooter","enabletimestamps","messageJSON","sentBy","getThemeProperty","timestampsEnabled","timestampStyle","isSentByUser","messageFooterClass"],"mappings":";;;;;;;;;;;;;;AAAkC;AAES;AACW;AACL;AACwB;AAQlE,MAAMM,aAAaA,GAAG,CAAC,EAC5BC,gBAAgB,EAChBC,WAAW,EACXC,MAAM,EACa;IACnB,MAAM,EAAEC,gBAAgB,EAAE,GAAGV,UAAUA,CAACE,cAAcA;IAEtD,MAAM,EAAES,iBAAiB,EAAEC,cAAc,EAAE,GAAGP,wBAAwBA,CACpEK,kBACAH;IAEF,MAAMM,eAAeJ,WAAWR,YAAY;IAC5C,MAAMa,qBAAqBD,eACvB,wBACA;IAEJ,qBACE,IAACV,sBAAsBA;QACrB,WAAWW;QACX,cAAcD;kBAEbF,kCACC,IAACP,gBAAgBA;YACf,QAAQK;YACR,OAAOG;YACP,WAAWJ,YAAY,SAAS;aAEhC;;AAGV,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/message/message-image.js","sources":["../../../../src/components/message/message-image.tsx"],"sourcesContent":["import { useContext } from 'react'\n\nimport { WEBCHAT } from '../../constants'\nimport { SENDERS } from '../../index-types'\nimport { resolveImage } from '../../util/environment'\nimport { WebchatContext } from '../../webchat/context'\nimport { BotMessageImageContainer } from './styles'\n\ninterface MessageImageProps {\n imagestyle: Record<string, unknown>\n sentBy: SENDERS\n}\n\nexport const MessageImage = ({ imagestyle, sentBy }: MessageImageProps) => {\n const { getThemeProperty } = useContext(WebchatContext)\n\n const isSentByAgent = sentBy === SENDERS.agent\n const isSentByUser = sentBy === SENDERS.user\n\n const timestampsWithImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.messageTimestampsWithImage\n )\n\n const BotMessageImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImage,\n getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.brandImage)\n )\n\n const AgentMessageImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.agentMessageImage,\n BotMessageImage\n )\n\n return (\n !timestampsWithImage &&\n !isSentByUser &&\n BotMessageImage && (\n <BotMessageImageContainer\n style={{\n ...getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.botMessageImageStyle),\n ...imagestyle,\n }}\n >\n <img\n style={{ width: '100%' }}\n src={resolveImage(\n isSentByAgent ? AgentMessageImage : BotMessageImage\n )}\n />\n </BotMessageImageContainer>\n )\n )\n}\n"],"names":["useContext","WEBCHAT","SENDERS","resolveImage","WebchatContext","BotMessageImageContainer","MessageImage","imagestyle","sentBy","getThemeProperty","isSentByAgent","isSentByUser","timestampsWithImage","BotMessageImage","AgentMessageImage"],"mappings":";;;;;;;;;;;;;;;;AAAkC;AAEO;AACE;AACU;AACC;AACH;AAO5C,MAAMM,YAAYA,GAAG,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAqB;IACpE,MAAM,EAAEC,gBAAgB,EAAE,GAAGT,UAAUA,CAACI,cAAcA;IAEtD,MAAMM,gBAAgBF,WAAWN,aAAa;IAC9C,MAAMS,eAAeH,WAAWN,YAAY;IAE5C,MAAMU,sBAAsBH,iBAC1BR,oDAAoD;IAGtD,MAAMY,kBAAkBJ,iBACtBR,yCAAyC,EACzCQ,iBAAiBR,oCAAoC;IAGvD,MAAMa,oBAAoBL,iBACxBR,2CAA2C,EAC3CY;IAGF,OACE,CAACD,uBACD,CAACD,gBACDE,iCACE,IAACR,wBAAwBA;QACvB,OAAO;YACL,GAAGI,iBAAiBR,8CAA8C,CAAC;YACnE,GAAGM,UAAU;QACf;kBAEA,kBAAC;YACC,OAAO;gBAAE,OAAO;YAAO;YACvB,KAAKJ,YAAYA,CACfO,gBAAgBI,oBAAoBD;;;AAMhD,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/message/styles.js","sources":["../../../../src/components/message/styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nimport { COLORS } from '../../constants'\n\ninterface MessageContainerProps {\n isSentByUser: boolean\n isSentBySystem: boolean\n}\n\nexport const MessageContainer = styled.div<MessageContainerProps>`\n display: flex;\n justify-content: ${props => (props.isSentByUser ? 'flex-end' : 'flex-start')};\n position: relative;\n padding: 0px 6px;\n`\n\nexport const BotMessageImageContainer = styled.div`\n width: 28px;\n padding: 12px 4px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: center;\n`\ninterface BlobContainerProps {\n bgcolor: string\n blob: boolean\n blobwidth?: string\n issentbysystem: boolean\n}\n\nexport const BlobContainer = styled.div<BlobContainerProps>`\n position: relative;\n margin: 8px;\n padding: ${props =>\n props.issentbysystem ? '4px 8px !important' : 'inherit'};\n border-radius: 8px;\n background-color: ${props => props.bgcolor};\n color: ${props => props.color};\n max-width: ${props =>\n props.blob\n ? props.blobwidth\n ? props.blobwidth\n : '60%'\n : 'calc(100% - 16px)'};\n`\ninterface BlobTextProps {\n blob: boolean\n markdownstyle: any\n}\n\nexport const BlobText = styled.div<BlobTextProps>`\n padding: ${props => (props.blob ? '8px 12px' : '0px')};\n display: flex;\n flex-direction: column;\n white-space: pre-line;\n ${props => props.markdownstyle}\n`\n\nexport const BlobTickContainer = styled.div`\n position: absolute;\n box-sizing: border-box;\n height: 100%;\n padding: 18px 0px 18px 0px;\n display: flex;\n top: 0;\n align-items: center;\n`\n\ninterface BlobTickProps {\n pointerSize: number\n}\n\nexport const BlobTick = styled.div<BlobTickProps>`\n position: relative;\n margin: -${props => props.pointerSize}px 0px;\n border: ${props => props.pointerSize}px solid ${COLORS.TRANSPARENT};\n`\ninterface TimestampContainerProps {\n isSentByUser: boolean\n}\n\nexport const TimestampContainer = styled.div<TimestampContainerProps>`\n display: flex;\n position: relative;\n justify-content: ${props => (props.isSentByUser ? 'flex-end' : 'flex-start')};\n align-items: center;\n gap: 10px;\n\n box-sizing: border-box;\n width: 100%;\n\n img {\n max-width: 20px;\n }\n`\ninterface TimestampTextProps {\n isSentByUser: boolean\n}\n\nexport const TimestampText = styled.div<TimestampTextProps>`\n @import url('https://fonts.googleapis.com/css?family=Lato');\n font-family: Lato;\n font-size: 10px;\n color: ${COLORS.SOLID_BLACK};\n text-align: ${props => (props.isSentByUser ? 'right' : 'left')};\n`\n\nexport const MessageFooterContainer = styled.div<TimestampContainerProps>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n box-sizing: border-box;\n padding: 0px 15px 4px 15px;\n padding-top: ${props => (props.isSentByUser ? '0px' : '4px')};\n width: 100%;\n`\n\nexport const FeedbackMessageContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 4px;\n\n box-sizing: border-box;\n`\n\nexport const FeedbackButton = styled.button`\n display: flex;\n justify-content: center;\n align-items: center;\n\n background: none;\n box-sizing: border-box;\n border: none;\n border-radius: 4px;\n padding: 8px 8px;\n height: 24px;\n width: 24px;\n\n &:hover {\n cursor: pointer;\n background-color: #f4f3f4;\n }\n\n &:disabled {\n cursor: default;\n background: none;\n opacity: 0.3;\n }\n\n &.clicked {\n opacity: 0;\n transition: 1s 1s;\n }\n`\n"],"names":["styled","COLORS","MessageContainer","props","BotMessageImageContainer","BlobContainer","BlobText","BlobTickContainer","BlobTick","TimestampContainer","TimestampText","MessageFooterContainer","FeedbackMessageContainer","FeedbackButton"],"mappings":";;;;;AAAsC;AAEE;AAOjC,MAAME,gBAAgBA,GAAGF,qBAAiC,CAAC;;mBAE/C,EAAEG,CAAAA,QAAUA,MAAM,YAAY,GAAG,aAAa,aAAc;;;AAG/E,CAAC;AAEM,MAAMC,wBAAwBA,GAAGJ,qBAAU,CAAC;;;;;;;AAOnD,CAAC;AAQM,MAAMK,aAAaA,GAAGL,qBAA8B,CAAC;;;WAGjD,EAAEG,CAAAA,QACTA,MAAM,cAAc,GAAG,uBAAuB,UAAU;;oBAExC,EAAEA,CAAAA,QAASA,MAAM,OAAO,CAAC;SACpC,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC;aACnB,EAAEA,CAAAA,QACXA,MAAM,IAAI,GACNA,MAAM,SAAS,GACbA,MAAM,SAAS,GACf,QACF,oBAAoB;AAC5B,CAAC;AAMM,MAAMG,QAAQA,GAAGN,qBAAyB,CAAC;WACvC,EAAEG,CAAAA,QAAUA,MAAM,IAAI,GAAG,aAAa,MAAO;;;;EAItD,EAAEA,CAAAA,QAASA,MAAM,aAAa,CAAC;AACjC,CAAC;AAEM,MAAMI,iBAAiBA,GAAGP,qBAAU,CAAC;;;;;;;;AAQ5C,CAAC;AAMM,MAAMQ,QAAQA,GAAGR,qBAAyB,CAAC;;WAEvC,EAAEG,CAAAA,QAASA,MAAM,WAAW,CAAC;UAC9B,EAAEA,CAAAA,QAASA,MAAM,WAAW,CAAC,SAAS,EAAEF,kBAAkB,CAAC;AACrE,CAAC;AAKM,MAAMQ,kBAAkBA,GAAGT,qBAAmC,CAAC;;;mBAGnD,EAAEG,CAAAA,QAAUA,MAAM,YAAY,GAAG,aAAa,aAAc;;;;;;;;;;AAU/E,CAAC;AAKM,MAAMO,aAAaA,GAAGV,qBAA8B,CAAC;;;;SAInD,EAAEC,kBAAkB,CAAC;cAChB,EAAEE,CAAAA,QAAUA,MAAM,YAAY,GAAG,UAAU,OAAQ;AACjE,CAAC;AAEM,MAAMQ,sBAAsBA,GAAGX,qBAAmC,CAAC;;;;;;;eAO3D,EAAEG,CAAAA,QAAUA,MAAM,YAAY,GAAG,QAAQ,MAAO;;AAE/D,CAAC;AAEM,MAAMS,wBAAwBA,GAAGZ,qBAAU,CAAC;;;;;;;AAOnD,CAAC;AAEM,MAAMa,cAAcA,GAAGb,wBAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4B5C,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { SENDERS } from '../../index-types.js';
|
|
2
|
-
export declare const resolveMessageTimestamps: (getThemeProperty: any, timestampEnabled: any) => {
|
|
3
|
-
timestampsEnabled: boolean;
|
|
4
|
-
getFormattedTimestamp: any;
|
|
5
|
-
timestampStyle: any;
|
|
6
|
-
};
|
|
7
|
-
interface MessageTimestampProps {
|
|
8
|
-
timestamp: string;
|
|
9
|
-
style: Record<string, unknown>;
|
|
10
|
-
sentBy: SENDERS;
|
|
11
|
-
}
|
|
12
|
-
export declare const MessageTimestamp: ({ timestamp, style, sentBy, }: MessageTimestampProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/message/timestamps.js","sources":["../../../../src/components/message/timestamps.tsx"],"sourcesContent":["import { useContext } from 'react'\n\nimport { WEBCHAT } from '../../constants'\nimport { SENDERS } from '../../index-types'\nimport { resolveImage } from '../../util'\nimport { WebchatContext } from '../../webchat/context'\nimport { TimestampContainer, TimestampText } from './styles'\n\nexport const resolveMessageTimestamps = (\n getThemeProperty,\n timestampEnabled\n) => {\n const timestampsFormat = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.messageTimestampsFormat\n )\n const timestampStyle = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.messageTimestampsStyle\n )\n const timestampsEnabled = Boolean(\n timestampEnabled !== undefined\n ? timestampEnabled\n : getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.enableMessageTimestamps,\n Boolean(timestampStyle) || Boolean(timestampsFormat) || false\n )\n )\n\n const defaultTimestampFormat = {\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n }\n\n const getFormattedTimestamp = timestampsFormat\n ? timestampsFormat()\n : // @ts-ignore\n new Date().toLocaleString(undefined, defaultTimestampFormat)\n\n return {\n timestampsEnabled,\n getFormattedTimestamp,\n timestampStyle,\n }\n}\n\ninterface MessageTimestampProps {\n timestamp: string\n style: Record<string, unknown>\n sentBy: SENDERS\n}\n\nexport const MessageTimestamp = ({\n timestamp,\n style,\n sentBy,\n}: MessageTimestampProps) => {\n const { getThemeProperty } = useContext(WebchatContext)\n\n const isSentByUser = sentBy === SENDERS.user\n const isSentByAgent = sentBy === SENDERS.agent\n\n const BotMessageImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.botMessageImage\n )\n\n const AgentMessageImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.agentMessageImage,\n BotMessageImage\n )\n\n const timestampsWithImage = getThemeProperty(\n WEBCHAT.CUSTOM_PROPERTIES.messageTimestampsWithImage\n )\n\n return (\n <TimestampContainer\n className={`botonic-timestamp-container ${sentBy}`}\n isSentByUser={isSentByUser}\n >\n {timestampsWithImage && BotMessageImage && !isSentByUser && (\n <img\n alt={isSentByAgent ? 'Agent message image' : 'Bot message image'}\n src={resolveImage(\n isSentByAgent ? AgentMessageImage : BotMessageImage\n )}\n />\n )}\n <TimestampText isSentByUser={isSentByUser} style={style}>\n {timestamp}\n </TimestampText>\n </TimestampContainer>\n )\n}\n"],"names":["useContext","WEBCHAT","SENDERS","resolveImage","WebchatContext","TimestampContainer","TimestampText","resolveMessageTimestamps","getThemeProperty","timestampEnabled","timestampsFormat","timestampStyle","timestampsEnabled","Boolean","undefined","defaultTimestampFormat","getFormattedTimestamp","Date","MessageTimestamp","timestamp","style","sentBy","isSentByUser","isSentByAgent","BotMessageImage","AgentMessageImage","timestampsWithImage"],"mappings":";;;;;;;;;;;;;;;;AAAkC;AAEO;AACE;AACF;AACa;AACM;AAErD,MAAMO,wBAAwBA,GAAG,CACtCC,kBACAC;IAEA,MAAMC,mBAAmBF,iBACvBP,iDAAiD;IAEnD,MAAMU,iBAAiBH,iBACrBP,gDAAgD;IAElD,MAAMW,oBAAoBC,QACxBJ,qBAAqBK,YACjBL,mBACAD,iBACEP,iDAAiD,EACjDY,QAAQF,mBAAmBE,QAAQH,qBAAqB;IAIhE,MAAMK,yBAAyB;QAC7B,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;IACV;IAEA,MAAMC,wBAAwBN,mBAC1BA,qBAEA,IAAIO,OAAO,cAAc,CAACH,WAAWC;IAEzC,OAAO;QACLH;QACAI;QACAL;IACF;AACF,EAAC;AAQM,MAAMO,gBAAgBA,GAAG,CAAC,EAC/BC,SAAS,EACTC,KAAK,EACLC,MAAM,EACgB;IACtB,MAAM,EAAEb,gBAAgB,EAAE,GAAGR,UAAUA,CAACI,cAAcA;IAEtD,MAAMkB,eAAeD,WAAWnB,YAAY;IAC5C,MAAMqB,gBAAgBF,WAAWnB,aAAa;IAE9C,MAAMsB,kBAAkBhB,iBACtBP,yCAAyC;IAG3C,MAAMwB,oBAAoBjB,iBACxBP,2CAA2C,EAC3CuB;IAGF,MAAME,sBAAsBlB,iBAC1BP,oDAAoD;IAGtD,qBACE,KAACI,kBAAkBA;QACjB,WAAW,CAAC,4BAA4B,EAAEgB,QAAQ;QAClD,cAAcC;;YAEbI,uBAAuBF,mBAAmB,CAACF,8BAC1C,IAAC;gBACC,KAAKC,gBAAgB,wBAAwB;gBAC7C,KAAKpB,YAAYA,CACfoB,gBAAgBE,oBAAoBD;;0BAI1C,IAAClB,aAAaA;gBAAC,cAAcgB;gBAAc,OAAOF;0BAC/CD;;;;AAIT,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/message-template.js","sources":["../../../src/components/message-template.jsx"],"sourcesContent":["/** biome-ignore-all lint/security/noDangerouslySetInnerHtml: MessageTemplate is a component that renders a message template */\nimport { renderComponent } from '../util/react'\n\nexport const MessageTemplate = props => {\n const renderBrowser = () => null\n const renderNode = () => (\n <message type='template'>\n <pre\n dangerouslySetInnerHTML={{ __html: JSON.stringify(props.payload) }}\n />\n </message>\n )\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"names":["renderComponent","MessageTemplate","props","renderBrowser","renderNode","JSON"],"mappings":";;;;;;AAAA,6HAA6H,GAC9E;AAExC,MAAMC,eAAeA,GAAGC,CAAAA;IAC7B,MAAMC,gBAAgB,IAAM;IAC5B,MAAMC,aAAa,kBACjB,IAAC;YAAQ,MAAK;sBACZ,kBAAC;gBACC,yBAAyB;oBAAE,QAAQC,KAAK,SAAS,CAACH,MAAM,OAAO;gBAAE;;;IAIvE,OAAOF,eAAeA,CAAC;QAAEG;QAAeC;IAAW;AACrD,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/facebook/facebook.js","sources":["../../../../../src/components/multichannel/facebook/facebook.jsx"],"sourcesContent":["export const MAX_CHARACTERS_FACEBOOK = 640\n\nexport class MultichannelFacebook {\n convertText(props, originalText) {\n if (originalText.length > MAX_CHARACTERS_FACEBOOK) {\n const texts = this.splitText(originalText)\n const lastText = texts.pop()\n const { propsLastText, propsWithoutChildren } = this.getNewProps(\n props,\n lastText\n )\n return { texts, propsLastText, propsWithoutChildren }\n }\n return { propsLastText: props }\n }\n\n splitText(originalText) {\n const lines = originalText.split('\\n')\n const initialText = lines.shift()\n const texts = [initialText]\n let index = 0\n lines.forEach(currentText => {\n if (texts[index].length + currentText.length > MAX_CHARACTERS_FACEBOOK) {\n index++\n texts.push(currentText)\n } else {\n texts[index] = texts[index].concat('\\n', currentText)\n }\n })\n return texts\n }\n\n // modifies the props to keep the children only for the last text message, this message will be the one with buttons and replies\n getNewProps(props, lastText) {\n const propsLastText = { ...props }\n propsLastText.children = [lastText]\n if (Array.isArray(props.children)) {\n props.children\n .filter(e => e.type)\n .forEach(e => {\n propsLastText.children.push(e)\n })\n }\n const propsWithoutChildren = { ...props }\n delete propsWithoutChildren.children\n return { propsLastText, propsWithoutChildren }\n }\n}\n"],"names":["MAX_CHARACTERS_FACEBOOK","MultichannelFacebook","props","originalText","texts","lastText","propsLastText","propsWithoutChildren","lines","initialText","index","currentText","Array","e"],"mappings":"AAAO,MAAMA,uBAAuBA,GAAG,IAAG;AAEnC,MAAMC,oBAAoBA;IAC/B,YAAYC,KAAK,EAAEC,YAAY,EAAE;QAC/B,IAAIA,aAAa,MAAM,GAAGH,uBAAuBA,EAAE;YACjD,MAAMI,QAAQ,IAAI,CAAC,SAAS,CAACD;YAC7B,MAAME,WAAWD,MAAM,GAAG;YAC1B,MAAM,EAAEE,aAAa,EAAEC,oBAAoB,EAAE,GAAG,IAAI,CAAC,WAAW,CAC9DL,OACAG;YAEF,OAAO;gBAAED;gBAAOE;gBAAeC;YAAqB;QACtD;QACA,OAAO;YAAE,eAAeL;QAAM;IAChC;IAEA,UAAUC,YAAY,EAAE;QACtB,MAAMK,QAAQL,aAAa,KAAK,CAAC;QACjC,MAAMM,cAAcD,MAAM,KAAK;QAC/B,MAAMJ,QAAQ;YAACK;SAAY;QAC3B,IAAIC,QAAQ;QACZF,MAAM,OAAO,CAACG,CAAAA;YACZ,IAAIP,KAAK,CAACM,MAAM,CAAC,MAAM,GAAGC,YAAY,MAAM,GAAGX,uBAAuBA,EAAE;gBACtEU;gBACAN,MAAM,IAAI,CAACO;YACb,OAAO;gBACLP,KAAK,CAACM,MAAM,GAAGN,KAAK,CAACM,MAAM,CAAC,MAAM,CAAC,MAAMC;YAC3C;QACF;QACA,OAAOP;IACT;IAEA,gIAAgI;IAChI,YAAYF,KAAK,EAAEG,QAAQ,EAAE;QAC3B,MAAMC,gBAAgB;YAAE,GAAGJ,KAAK;QAAC;QACjCI,cAAc,QAAQ,GAAG;YAACD;SAAS;QACnC,IAAIO,MAAM,OAAO,CAACV,MAAM,QAAQ,GAAG;YACjCA,MAAM,QAAQ,CACX,MAAM,CAACW,CAAAA,IAAKA,EAAE,IAAI,EAClB,OAAO,CAACA,CAAAA;gBACPP,cAAc,QAAQ,CAAC,IAAI,CAACO;YAC9B;QACJ;QACA,MAAMN,uBAAuB;YAAE,GAAGL,KAAK;QAAC;QACxC,OAAOK,qBAAqB,QAAQ;QACpC,OAAO;YAAED;YAAeC;QAAqB;IAC/C;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/index-types.js","sources":["../../../../src/components/multichannel/index-types.ts"],"sourcesContent":["export type IndexMode = 'number' | 'letter' | undefined //undefined means no index\n\nexport interface MultichannelViewOptions {\n boldIndex?: boolean\n indexSeparator?: string // after it, a space will always be added\n}\n\nexport interface MultichannelContextType extends MultichannelViewOptions {\n currentIndex: number | string // can be letter or number\n /** @see same field at MultichannelProps */\n messageSeparator?: string\n}\n\n// Text\nexport interface MultichannelTextProps extends MultichannelViewOptions {\n index?: string\n indexMode?: IndexMode\n /** Defaults to no separator between lines*/\n newline?: string\n buttonsAsText?: boolean\n buttonsTextSeparator?: string\n menuButtonTextWhatsappList?: string\n}\n\n// Carousel\nexport interface MultichannelCarouselProps extends MultichannelViewOptions {\n enableURL?: boolean\n}\n\n// Button\nexport interface MultichannelButtonProps {\n newline?: string\n path?: string\n payload?: string\n url?: string\n webview?: string\n asText?: boolean\n}\n\n// Reply\n\nexport interface MultichannelProps extends MultichannelViewOptions {\n firstIndex?: number | string\n carousel?: MultichannelCarouselProps\n text?: MultichannelTextProps\n /**\n * If undefined, each component will be served in a different botonic message\n * '' will concatenate in the same line\n * '\\n' will split in different lines\n * '\\n\\n' will separate with an empty line\n **/\n messageSeparator?: string\n}\n"],"names":[],"mappings":"AAuCA,QAAQ;AAaP"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Multichannel } from './multichannel.js';
|
|
2
|
-
import { MultichannelButton } from './multichannel-button.js';
|
|
3
|
-
import { MultichannelCarousel } from './multichannel-carousel.js';
|
|
4
|
-
import { MultichannelReply } from './multichannel-reply.js';
|
|
5
|
-
import { MultichannelText } from './multichannel-text.js';
|
|
6
|
-
export { Multichannel };
|
|
7
|
-
export { MultichannelText };
|
|
8
|
-
export { MultichannelButton };
|
|
9
|
-
export { MultichannelReply };
|
|
10
|
-
export { MultichannelCarousel };
|
|
11
|
-
export * from './index-types.js';
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export * from "./index-types.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
export { Multichannel } from "./multichannel.js";
|
|
20
|
-
export { MultichannelButton } from "./multichannel-button.js";
|
|
21
|
-
export { MultichannelCarousel } from "./multichannel-carousel.js";
|
|
22
|
-
export { MultichannelReply } from "./multichannel-reply.js";
|
|
23
|
-
export { MultichannelText } from "./multichannel-text.js";
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/index.js","sources":["../../../../src/components/multichannel/index.ts"],"sourcesContent":["import { Multichannel } from './multichannel'\nimport { MultichannelButton } from './multichannel-button'\nimport { MultichannelCarousel } from './multichannel-carousel'\nimport { MultichannelReply } from './multichannel-reply'\nimport { MultichannelText } from './multichannel-text'\n\nexport { Multichannel }\nexport { MultichannelText }\nexport { MultichannelButton }\nexport { MultichannelReply }\nexport { MultichannelCarousel }\n\nexport * from './index-types'\n"],"names":["Multichannel","MultichannelButton","MultichannelCarousel","MultichannelReply","MultichannelText"],"mappings":";;;;;;AAA6C;AACa;AACI;AACN;AACF;AAE/B;AACI;AACE;AACD;AACG;AAEF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/multichannel-button.js","sources":["../../../../src/components/multichannel/multichannel-button.jsx"],"sourcesContent":["import { isWhatsapp } from '@botonic/core'\nimport { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { truncateText } from '../../util'\nimport { Button } from '../button/index'\nimport { COMPONENT_DISPLAY_NAMES } from '../constants'\nimport { MultichannelContext } from './multichannel-context'\nimport { WHATSAPP_MAX_BUTTON_CHARS } from './whatsapp/constants'\n\nexport const MultichannelButton = props => {\n const requestContext = useContext(RequestContext)\n const multichannelContext = useContext(MultichannelContext)\n\n const hasUrl = () => Boolean(props.url)\n\n const hasPath = () => Boolean(props.path)\n\n const hasPayload = () => Boolean(props.payload)\n\n const hasPostback = () => hasPath() || hasPayload()\n\n const hasWebview = () => Boolean(props.webview)\n\n const getUrl = () => props.url\n const _getWebview = () => props.webview\n\n const increaseCurrentIndex = () => {\n if (typeof multichannelContext.currentIndex === 'number') {\n multichannelContext.currentIndex += 1\n } else if (typeof multichannelContext.currentIndex === 'string') {\n const lastChar = multichannelContext.currentIndex.charCodeAt(\n multichannelContext.currentIndex.length - 1\n )\n multichannelContext.currentIndex = String.fromCharCode(lastChar + 1)\n }\n }\n\n const formatIndex = index => {\n const boldIndex = multichannelContext.boldIndex ?? false\n return boldIndex ? `*${index}*` : index\n }\n\n const getText = () => {\n let text = props.children\n const newline = props.newline || ''\n const separator = multichannelContext.indexSeparator || ' '\n const index = multichannelContext.currentIndex\n ? `${formatIndex(multichannelContext.currentIndex + separator)} `\n : ''\n if (hasPostback()) {\n text = `${newline}${index}${text}`\n } else if (hasUrl()) {\n text = `${newline}- ${text}`\n }\n return text\n }\n\n if (isWhatsapp(requestContext.session)) {\n const asText = props.asText ?? true\n if (asText) {\n if (hasUrl()) {\n return `${getText()}: ${getUrl()}`\n } else if (hasPath() || hasPayload()) {\n const text = getText()\n increaseCurrentIndex()\n return `${text}`\n } else if (hasWebview()) {\n return <Button {...props}>{getText()}</Button>\n }\n }\n return (\n <Button {...props}>\n {truncateText(props.children, WHATSAPP_MAX_BUTTON_CHARS)}\n </Button>\n )\n }\n return <Button {...props}>{props.children}</Button>\n}\n\nMultichannelButton.displayName = COMPONENT_DISPLAY_NAMES.MultichannelButton\n"],"names":["isWhatsapp","useContext","RequestContext","truncateText","Button","COMPONENT_DISPLAY_NAMES","MultichannelContext","WHATSAPP_MAX_BUTTON_CHARS","MultichannelButton","props","requestContext","multichannelContext","hasUrl","Boolean","hasPath","hasPayload","hasPostback","hasWebview","getUrl","_getWebview","increaseCurrentIndex","lastChar","String","formatIndex","index","boldIndex","getText","text","newline","separator","asText"],"mappings":";;;;;;;;;;;;;;;;;;;;AAA0C;AACR;AAEa;AACN;AACD;AACc;AACM;AACI;AAEzD,MAAMQ,kBAAkBA,GAAGC,CAAAA;IAChC,MAAMC,iBAAiBT,UAAUA,CAACC,cAAcA;IAChD,MAAMS,sBAAsBV,UAAUA,CAACK,mBAAmBA;IAE1D,MAAMM,SAAS,IAAMC,QAAQJ,MAAM,GAAG;IAEtC,MAAMK,UAAU,IAAMD,QAAQJ,MAAM,IAAI;IAExC,MAAMM,aAAa,IAAMF,QAAQJ,MAAM,OAAO;IAE9C,MAAMO,cAAc,IAAMF,aAAaC;IAEvC,MAAME,aAAa,IAAMJ,QAAQJ,MAAM,OAAO;IAE9C,MAAMS,SAAS,IAAMT,MAAM,GAAG;IAC9B,MAAMU,cAAc,IAAMV,MAAM,OAAO;IAEvC,MAAMW,uBAAuB;QAC3B,IAAI,OAAOT,oBAAoB,YAAY,KAAK,UAAU;YACxDA,oBAAoB,YAAY,IAAI;QACtC,OAAO,IAAI,OAAOA,oBAAoB,YAAY,KAAK,UAAU;YAC/D,MAAMU,WAAWV,oBAAoB,YAAY,CAAC,UAAU,CAC1DA,oBAAoB,YAAY,CAAC,MAAM,GAAG;YAE5CA,oBAAoB,YAAY,GAAGW,OAAO,YAAY,CAACD,WAAW;QACpE;IACF;IAEA,MAAME,cAAcC,CAAAA;QAClB,MAAMC,YAAYd,oBAAoB,SAAS,IAAI;QACnD,OAAOc,YAAY,CAAC,CAAC,EAAED,MAAM,CAAC,CAAC,GAAGA;IACpC;IAEA,MAAME,UAAU;QACd,IAAIC,OAAOlB,MAAM,QAAQ;QACzB,MAAMmB,UAAUnB,MAAM,OAAO,IAAI;QACjC,MAAMoB,YAAYlB,oBAAoB,cAAc,IAAI;QACxD,MAAMa,QAAQb,oBAAoB,YAAY,GAC1C,GAAGY,YAAYZ,oBAAoB,YAAY,GAAGkB,WAAW,CAAC,CAAC,GAC/D;QACJ,IAAIb,eAAe;YACjBW,OAAO,GAAGC,UAAUJ,QAAQG,MAAM;QACpC,OAAO,IAAIf,UAAU;YACnBe,OAAO,GAAGC,QAAQ,EAAE,EAAED,MAAM;QAC9B;QACA,OAAOA;IACT;IAEA,IAAI3B,UAAUA,CAACU,eAAe,OAAO,GAAG;QACtC,MAAMoB,SAASrB,MAAM,MAAM,IAAI;QAC/B,IAAIqB,QAAQ;YACV,IAAIlB,UAAU;gBACZ,OAAO,GAAGc,UAAU,EAAE,EAAER,UAAU;YACpC,OAAO,IAAIJ,aAAaC,cAAc;gBACpC,MAAMY,OAAOD;gBACbN;gBACA,OAAO,GAAGO,MAAM;YAClB,OAAO,IAAIV,cAAc;gBACvB,qBAAO,IAACb,MAAMA;oBAAE,GAAGK,KAAK;8BAAGiB;;YAC7B;QACF;QACA,qBACE,IAACtB,MAAMA;YAAE,GAAGK,KAAK;sBACdN,YAAYA,CAACM,MAAM,QAAQ,EAAEF,yBAAyBA;;IAG7D;IACA,qBAAO,IAACH,MAAMA;QAAE,GAAGK,KAAK;kBAAGA,MAAM,QAAQ;;AAC3C,EAAC;AAEDD,kBAAkBA,CAAC,WAAW,GAAGH,0CAA0C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function MultichannelCarousel(props: any): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/multichannel-carousel.js","sources":["../../../../src/components/multichannel/multichannel-carousel.jsx"],"sourcesContent":["import {\n isDev,\n isFacebook,\n isInstagram,\n isWebchat,\n isWhatsapp,\n} from '@botonic/core'\nimport { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { Button } from '../button/index'\nimport { Carousel } from '../carousel'\nimport { Image } from '../image'\nimport { Text } from '../text'\nimport { WhatsappCTAUrlButton } from '../whatsapp-cta-url-button'\nimport {\n getFilteredElements,\n isMultichannelButton,\n isNodePic,\n isNodeSubtitle,\n isNodeTitle,\n} from './multichannel-utils'\nimport { convertToMarkdownMeta } from './whatsapp/markdown-meta'\n\nexport const MultichannelCarousel = props => {\n const requestContext = useContext(RequestContext)\n\n if (isDev(requestContext.session) || isWebchat(requestContext.session)) {\n return <Carousel {...props}>{props.children}</Carousel>\n }\n\n const messages = []\n const childrenElements = props.children.map(e => e.props.children)\n\n childrenElements.forEach((element, i) => {\n const { imageProps, title, subtitle, buttons } =\n parseCarouselElement(element)\n\n const textMessage = getTextMessage(requestContext.session, title, subtitle)\n\n if (imageProps?.src) {\n const messageWithImage = <Image src={imageProps.src} />\n messages.push(messageWithImage)\n }\n\n if (\n isWhatsapp(requestContext.session) &&\n buttons.some(button => button.url)\n ) {\n const messageWithButtonUrl = (\n <WhatsappCTAUrlButton\n key={`carousel-element-${i}-cta-url`}\n body={title}\n footer={`_${subtitle}_`}\n displayText={buttons[0].text}\n url={buttons[0].url}\n />\n )\n messages.push(messageWithButtonUrl)\n }\n\n const messageWithButtons = buttons.some(button => button.payload) ? (\n <Text key={`carousel-element-${i}-text`}>\n {textMessage}\n {buttons\n .filter(button => isWhatsapp(requestContext.session) && !button.url)\n .map(button => (\n <Button\n key={`carousel-element-${i}-button`}\n payload={button.payload}\n url={button.url}\n >\n {button.text}\n </Button>\n ))}\n </Text>\n ) : (\n []\n )\n messages.push(messageWithButtons)\n })\n\n return <>{messages}</>\n}\n\nfunction getButtons(node) {\n return [].concat(getFilteredElements(node, isMultichannelButton))\n}\n\nfunction parseCarouselElement(element) {\n let imageProps, title, subtitle\n const buttonsChildren = []\n\n for (const node of element) {\n if (isNodePic(node)) {\n imageProps = node.props\n }\n if (isNodeTitle(node)) {\n title = node.props.children\n }\n if (isNodeSubtitle(node)) {\n subtitle = node.props.children\n }\n if (isMultichannelButton(node)) {\n buttonsChildren.push(node)\n }\n if (Array.isArray(node)) {\n buttonsChildren.push(...getButtons(node))\n }\n }\n\n const buttons = buttonsChildren.map(button => {\n return {\n text: button.props.children,\n payload: button.props.payload,\n url: button.props.url,\n }\n })\n\n return { imageProps, title, subtitle, buttons }\n}\n\nfunction getTextMessage(session, title, subtitle) {\n const formattedTextMessage = `**${title}**${subtitle ? ` _${subtitle}_` : ''}`\n return isWhatsapp(session) || isFacebook(session) || isInstagram(session)\n ? convertToMarkdownMeta(formattedTextMessage)\n : formattedTextMessage\n}\n"],"names":["isDev","isFacebook","isInstagram","isWebchat","isWhatsapp","useContext","RequestContext","Button","Carousel","Image","Text","WhatsappCTAUrlButton","getFilteredElements","isMultichannelButton","isNodePic","isNodeSubtitle","isNodeTitle","convertToMarkdownMeta","MultichannelCarousel","props","requestContext","messages","childrenElements","e","element","i","imageProps","title","subtitle","buttons","parseCarouselElement","textMessage","getTextMessage","messageWithImage","button","messageWithButtonUrl","messageWithButtons","getButtons","node","buttonsChildren","Array","session","formattedTextMessage"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/multichannel-context.js","sources":["../../../../src/components/multichannel/multichannel-context.jsx"],"sourcesContent":["import React from 'react'\n\nexport const MultichannelContext = React.createContext({\n boldIndex: true,\n text: {\n indexMode: 'letter',\n },\n indexSeparator: '.',\n})\n"],"names":["React","MultichannelContext"],"mappings":";;;AAAyB;AAElB,MAAMC,mBAAmBA,iBAAGD,mBAAmB,CAAC;IACrD,WAAW;IACX,MAAM;QACJ,WAAW;IACb;IACA,gBAAgB;AAClB,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/multichannel-reply.js","sources":["../../../../src/components/multichannel/multichannel-reply.jsx"],"sourcesContent":["import { isWhatsapp } from '@botonic/core'\nimport { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { COMPONENT_DISPLAY_NAMES } from '../constants'\nimport { Reply } from '../reply'\n\nexport const MultichannelReply = props => {\n const requestContext = useContext(RequestContext)\n const hasPath = () => Boolean(props.path)\n const hasPayload = () => Boolean(props.payload)\n const getText = () => `${props.children}`\n\n if (isWhatsapp(requestContext.session)) {\n if (hasPath() || hasPayload()) {\n return `${getText()}`\n }\n return null\n } else {\n return <Reply {...props}>{props.children}</Reply>\n }\n}\n\nMultichannelReply.displayName = COMPONENT_DISPLAY_NAMES.MultichannelReply\n"],"names":["isWhatsapp","useContext","RequestContext","COMPONENT_DISPLAY_NAMES","Reply","MultichannelReply","props","requestContext","hasPath","Boolean","hasPayload","getText"],"mappings":";;;;;;;;;;;;;;AAA0C;AACR;AAEa;AACO;AACtB;AAEzB,MAAMK,iBAAiBA,GAAGC,CAAAA;IAC/B,MAAMC,iBAAiBN,UAAUA,CAACC,cAAcA;IAChD,MAAMM,UAAU,IAAMC,QAAQH,MAAM,IAAI;IACxC,MAAMI,aAAa,IAAMD,QAAQH,MAAM,OAAO;IAC9C,MAAMK,UAAU,IAAM,GAAGL,MAAM,QAAQ,EAAE;IAEzC,IAAIN,UAAUA,CAACO,eAAe,OAAO,GAAG;QACtC,IAAIC,aAAaE,cAAc;YAC7B,OAAO,GAAGC,WAAW;QACvB;QACA,OAAO;IACT,OAAO;QACL,qBAAO,IAACP,KAAKA;YAAE,GAAGE,KAAK;sBAAGA,MAAM,QAAQ;;IAC1C;AACF,EAAC;AAEDD,iBAAiBA,CAAC,WAAW,GAAGF,yCAAyC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function MultichannelText(props: any): never[] | import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/multichannel-text.js","sources":["../../../../src/components/multichannel/multichannel-text.jsx"],"sourcesContent":["/* eslint-disable complexity */\nimport { INPUT, isFacebook, isInstagram, isWhatsapp } from '@botonic/core'\nimport React, { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { WhatsappButtonList, WhatsappCTAUrlButton } from '..'\nimport { Reply } from '../reply'\nimport { Text } from '../text'\nimport { MultichannelFacebook } from './facebook/facebook'\nimport { MultichannelButton } from './multichannel-button'\nimport { MultichannelContext } from './multichannel-context'\nimport {\n buttonTypes,\n elementHasPostback,\n elementHasUrl,\n elementHasWebview,\n getButtonType,\n getMultichannelButtons,\n getMultichannelReplies,\n isNodeButton,\n} from './multichannel-utils'\nimport {\n DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR,\n MENU_BUTTON_WHATSAPP_BUTTON_LIST,\n MULTICHANNEL_WHATSAPP_PROPS,\n WHATSAPP_LIST_MAX_BUTTONS,\n WHATSAPP_MAX_BUTTONS,\n} from './whatsapp/constants'\nimport { convertToMarkdownMeta } from './whatsapp/markdown-meta'\n\nexport const MultichannelText = props => {\n const requestContext = useContext(RequestContext)\n const multichannelContext = useContext(MultichannelContext)\n const postbackButtonsAsText = props.buttonsAsText ?? true\n\n let elements = []\n\n const getText = children => {\n children = Array.isArray(children) ? children : [children]\n const text = children\n .filter(e => e && !e.type)\n .map(e => {\n if (Array.isArray(e)) {\n return getText(e)\n } else {\n return String(e)\n }\n })\n .join('')\n if (text === undefined) {\n return []\n }\n return [text].filter(t => t !== '') // to avoid line breaks when the carousel doesn't have title or subtitle\n }\n\n const getButtonsAndReplies = () =>\n [].concat(\n getMultichannelButtons(React.Children.toArray(props.children)),\n getMultichannelReplies(React.Children.toArray(props.children))\n )\n\n const getWhatsappButtons = () => {\n const postbackButtons = []\n const urlButtons = []\n const webviewButtons = []\n for (const button of getButtonsAndReplies()) {\n if (elementHasUrl(button)) {\n urlButtons.push(button)\n } else if (elementHasWebview(button)) {\n webviewButtons.push(button)\n } else if (elementHasPostback(button)) {\n postbackButtons.push(button)\n }\n }\n return { postbackButtons, urlButtons, webviewButtons }\n }\n\n const getDefaultIndex = () => {\n if (props.indexMode === undefined) {\n return undefined\n }\n if (multichannelContext.currentIndex != null) {\n return multichannelContext.currentIndex\n }\n return props.indexMode === 'letter' ? 'a' : 1\n }\n\n const regenerateMultichannelButtons = (newLineFirstButton = true) => {\n const generator = (multichannelButton, i) => {\n const type = getButtonType(multichannelButton)\n const asText =\n type === buttonTypes.POSTBACK ? postbackButtonsAsText : true\n const newline =\n multichannelContext.messageSeparator == null &&\n !newLineFirstButton &&\n i === 0\n ? ''\n : '\\n'\n\n return (\n <MultichannelButton\n key={`${type}${i}`}\n newline={newline}\n asText={asText}\n {...multichannelButton.props}\n >\n {multichannelButton.props.children}\n </MultichannelButton>\n )\n }\n return generator\n }\n\n const splitInWhatsappListButtons = postbackButtons => {\n const messages = []\n for (\n let i = 0;\n i < postbackButtons.length;\n i += WHATSAPP_LIST_MAX_BUTTONS\n ) {\n messages.push(postbackButtons.slice(i, i + WHATSAPP_LIST_MAX_BUTTONS))\n }\n return messages\n }\n\n if (isWhatsapp(requestContext.session)) {\n const texts = getText(props.children)\n const { postbackButtons, urlButtons, webviewButtons } = getWhatsappButtons()\n\n const textElements = texts.map(text => {\n const textWithMarkdown = convertToMarkdownMeta(text)\n return (props.newline || '') + textWithMarkdown\n })\n\n const webviewButtonElements = webviewButtons.map(\n regenerateMultichannelButtons(false)\n )\n\n const buttonsTextSeparator =\n props.buttonsTextSeparator || DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR\n\n const exceedWhatsAppMaxButtonNumber =\n !postbackButtonsAsText && postbackButtons.length > WHATSAPP_MAX_BUTTONS\n\n if (exceedWhatsAppMaxButtonNumber) {\n const menuButtonTextWhatsappList =\n props.menuButtonTextWhatsappList || MENU_BUTTON_WHATSAPP_BUTTON_LIST\n\n const urlButtonElements = urlButtons.map(\n regenerateMultichannelButtons(!!texts.length)\n )\n const postbackButtonElements = postbackButtons.map(\n regenerateMultichannelButtons(!!texts.length || !!urlButtons.length)\n )\n\n const messagesPostbackButtonList = splitInWhatsappListButtons(\n postbackButtonElements\n )\n\n const messages = messagesPostbackButtonList.map(\n (postbackButtons, index) => {\n if (postbackButtons.length <= WHATSAPP_MAX_BUTTONS) {\n return {\n type: INPUT.TEXT,\n children: [...buttonsTextSeparator, ...postbackButtons],\n }\n }\n const rows = postbackButtons.map(postbackButton => {\n const row = {\n id: postbackButton.props.path\n ? `__PATH_PAYLOAD__${postbackButton.props.path}`\n : postbackButton.props.payload,\n title: postbackButton.props.children,\n }\n return row\n })\n const whatsAppButtonListProps = {\n body: index === 0 ? texts.join('') : buttonsTextSeparator,\n button: menuButtonTextWhatsappList,\n sections: [{ rows }],\n }\n\n return {\n type: INPUT.WHATSAPP_BUTTON_LIST,\n props: whatsAppButtonListProps,\n }\n }\n )\n\n const messageWithUrlButtonElements = (\n <Text\n key={`msg-with-url-button`}\n {...MULTICHANNEL_WHATSAPP_PROPS}\n {...props}\n >\n {urlButtonElements}\n </Text>\n )\n\n const messageWithWebviewButtonElements = (\n <Text\n key={`msg-with-webview-button`}\n {...MULTICHANNEL_WHATSAPP_PROPS}\n {...props}\n >\n {buttonsTextSeparator}\n {webviewButtonElements}\n </Text>\n )\n\n return (\n <>\n {messages.map((message, i) => {\n if (message.type === INPUT.WHATSAPP_BUTTON_LIST) {\n return (\n <WhatsappButtonList\n key={`msg-${i}-whatsapp-list`}\n {...message.props}\n />\n )\n }\n return (\n <Text\n key={`msg-${i}-with-postback-buttons`}\n {...MULTICHANNEL_WHATSAPP_PROPS}\n {...props}\n >\n {message.children}\n </Text>\n )\n })}\n {urlButtonElements.length > 0 && messageWithUrlButtonElements}\n {webviewButtonElements.length > 0 && messageWithWebviewButtonElements}\n </>\n )\n }\n\n multichannelContext.currentIndex = getDefaultIndex()\n const postbackButtonElements = postbackButtons.map(\n regenerateMultichannelButtons(!!texts.length)\n )\n const urlButtonElements = urlButtons.map(\n regenerateMultichannelButtons(!!texts.length || !!postbackButtons.length)\n )\n\n elements = [].concat(\n [...textElements],\n [...postbackButtonElements],\n [...urlButtonElements]\n )\n\n if (postbackButtonElements.length === 0) {\n // Use texts[0] instead of textElements[0] as a body to avoid apply the markdownMeta function twice.\n // If the markdownMeta function is applied twice, bold is replaced by italics.\n const body = texts[0] || ''\n\n if (urlButtonElements.length === 1) {\n return (\n <WhatsappCTAUrlButton\n body={body}\n displayText={urlButtonElements[0].props.children}\n url={urlButtonElements[0].props.url}\n />\n )\n }\n\n if (webviewButtonElements.length === 1) {\n return (\n <WhatsappCTAUrlButton\n body={body}\n displayText={webviewButtonElements[0].props.children}\n webview={webviewButtonElements[0].props.webview}\n params={webviewButtonElements[0].props.params}\n />\n )\n }\n }\n\n if (multichannelContext.messageSeparator != null) {\n return elements\n }\n const messages = [\n <Text key={0} {...MULTICHANNEL_WHATSAPP_PROPS} {...props}>\n {elements}\n </Text>,\n ]\n if (webviewButtonElements.length) {\n messages.push(\n <Text key={1} {...MULTICHANNEL_WHATSAPP_PROPS} {...props}>\n {buttonsTextSeparator}\n {webviewButtonElements}\n </Text>\n )\n }\n\n return <>{messages}</>\n }\n\n if (\n isFacebook(requestContext.session) ||\n isInstagram(requestContext.session)\n ) {\n const text = getText(props.children)\n const multichannelFacebook = new MultichannelFacebook()\n const { texts, propsLastText, propsWithoutChildren } =\n multichannelFacebook.convertText(props, text[0])\n\n const [lastText, ...buttonsAndReplies] = propsLastText.children\n const replies = []\n\n if (buttonsAndReplies.length > 3) {\n buttonsAndReplies.forEach(button => {\n if (isNodeButton(button)) {\n replies.push(<Reply {...button.props} />)\n }\n })\n }\n\n return (\n <>\n {texts?.map((message, i) => (\n <Text key={`msg-${i}-text`} {...propsWithoutChildren}>\n {convertToMarkdownMeta(message)}\n </Text>\n ))}\n <Text {...propsLastText}>\n {convertToMarkdownMeta(lastText)}\n {replies.length > 0 ? replies : buttonsAndReplies}\n </Text>\n </>\n )\n }\n\n return <Text {...props}>{props.children}</Text>\n}\n"],"names":["INPUT","isFacebook","isInstagram","isWhatsapp","React","useContext","RequestContext","WhatsappButtonList","WhatsappCTAUrlButton","Reply","Text","MultichannelFacebook","MultichannelButton","MultichannelContext","buttonTypes","elementHasPostback","elementHasUrl","elementHasWebview","getButtonType","getMultichannelButtons","getMultichannelReplies","isNodeButton","DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR","MENU_BUTTON_WHATSAPP_BUTTON_LIST","MULTICHANNEL_WHATSAPP_PROPS","WHATSAPP_LIST_MAX_BUTTONS","WHATSAPP_MAX_BUTTONS","convertToMarkdownMeta","MultichannelText","props","requestContext","multichannelContext","postbackButtonsAsText","elements","getText","children","Array","text","e","String","undefined","t","getButtonsAndReplies","getWhatsappButtons","postbackButtons","urlButtons","webviewButtons","button","getDefaultIndex","regenerateMultichannelButtons","newLineFirstButton","generator","multichannelButton","i","type","asText","newline","splitInWhatsappListButtons","messages","texts","textElements","textWithMarkdown","webviewButtonElements","buttonsTextSeparator","exceedWhatsAppMaxButtonNumber","menuButtonTextWhatsappList","urlButtonElements","postbackButtonElements","messagesPostbackButtonList","index","rows","postbackButton","row","whatsAppButtonListProps","messageWithUrlButtonElements","messageWithWebviewButtonElements","message","body","multichannelFacebook","propsLastText","propsWithoutChildren","lastText","buttonsAndReplies","replies"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/multichannel-utils.js","sources":["../../../../src/components/multichannel/multichannel-utils.ts"],"sourcesContent":["import { COMPONENT_DISPLAY_NAMES } from '../constants'\n\ninterface ReactElementWithDisplayName {\n type?: {\n displayName?: string\n }\n}\n\ninterface ElementWithProps {\n props?: {\n url?: string\n payload?: string\n path?: string\n webview?: unknown\n }\n}\n\nexport function isMultichannelButton(\n node?: ReactElementWithDisplayName\n): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.MultichannelButton\n}\n\nexport function isMultichannelReply(\n node?: ReactElementWithDisplayName\n): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.MultichannelReply\n}\n\nexport function isNodeText(node?: ReactElementWithDisplayName): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.Text\n}\n\nexport function isNodeButton(node?: ReactElementWithDisplayName): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.Button\n}\n\nexport function isNodeCarousel(node?: ReactElementWithDisplayName): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.Carousel\n}\n\nexport function isNodeReply(node?: ReactElementWithDisplayName): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.Reply\n}\n\nexport function isNodePic(node?: ReactElementWithDisplayName): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.Pic\n}\n\nexport function isNodeTitle(node?: ReactElementWithDisplayName): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.Title\n}\n\nexport function isNodeSubtitle(node?: ReactElementWithDisplayName): boolean {\n return node?.type?.displayName === COMPONENT_DISPLAY_NAMES.Subtitle\n}\n\nexport function elementHasUrl(element?: ElementWithProps): string | undefined {\n return element?.props?.url\n}\n\nexport function elementHasPostback(\n element?: ElementWithProps\n): string | undefined {\n return element?.props?.payload || element?.props?.path\n}\n\nexport function elementHasWebview(element?: ElementWithProps): unknown {\n return element?.props?.webview\n}\n\nexport const buttonTypes = {\n POSTBACK: 'postback',\n URL: 'url',\n WEBVIEW: 'webview',\n} as const\n\nexport type ButtonType = (typeof buttonTypes)[keyof typeof buttonTypes]\n\nexport function getButtonType(\n multichannelButton?: ElementWithProps\n): ButtonType | undefined {\n if (elementHasUrl(multichannelButton)) {\n return buttonTypes.URL\n }\n if (elementHasPostback(multichannelButton)) {\n return buttonTypes.POSTBACK\n }\n if (elementHasWebview(multichannelButton)) {\n return buttonTypes.WEBVIEW\n }\n\n return undefined\n}\n\nexport function getFilteredElements<T extends ReactElementWithDisplayName>(\n node: Iterable<T>,\n filter: (n: T) => boolean\n): T[] {\n const elements: T[] = []\n for (const n of node) {\n if (filter(n)) {\n elements.push(n)\n }\n }\n return elements\n}\n\nexport function getMultichannelButtons(\n node: Iterable<ReactElementWithDisplayName>\n): ReactElementWithDisplayName[] {\n return getFilteredElements(node, isMultichannelButton)\n}\n\nexport function getMultichannelReplies(\n node: Iterable<ReactElementWithDisplayName>\n): ReactElementWithDisplayName[] {\n return getFilteredElements(node, isMultichannelReply)\n}\n"],"names":["COMPONENT_DISPLAY_NAMES","isMultichannelButton","node","isMultichannelReply","isNodeText","isNodeButton","isNodeCarousel","isNodeReply","isNodePic","isNodeTitle","isNodeSubtitle","elementHasUrl","element","elementHasPostback","elementHasWebview","buttonTypes","getButtonType","multichannelButton","undefined","getFilteredElements","filter","elements","n","getMultichannelButtons","getMultichannelReplies"],"mappings":";;;AAAsD;AAiB/C,SAASC,oBAAoBA,CAClCC,IAAkC;IAElC,OAAOA,MAAM,MAAM,gBAAgBF,0CAA0C;AAC/E;AAEO,SAASG,mBAAmBA,CACjCD,IAAkC;IAElC,OAAOA,MAAM,MAAM,gBAAgBF,yCAAyC;AAC9E;AAEO,SAASI,UAAUA,CAACF,IAAkC;IAC3D,OAAOA,MAAM,MAAM,gBAAgBF,4BAA4B;AACjE;AAEO,SAASK,YAAYA,CAACH,IAAkC;IAC7D,OAAOA,MAAM,MAAM,gBAAgBF,8BAA8B;AACnE;AAEO,SAASM,cAAcA,CAACJ,IAAkC;IAC/D,OAAOA,MAAM,MAAM,gBAAgBF,gCAAgC;AACrE;AAEO,SAASO,WAAWA,CAACL,IAAkC;IAC5D,OAAOA,MAAM,MAAM,gBAAgBF,6BAA6B;AAClE;AAEO,SAASQ,SAASA,CAACN,IAAkC;IAC1D,OAAOA,MAAM,MAAM,gBAAgBF,2BAA2B;AAChE;AAEO,SAASS,WAAWA,CAACP,IAAkC;IAC5D,OAAOA,MAAM,MAAM,gBAAgBF,6BAA6B;AAClE;AAEO,SAASU,cAAcA,CAACR,IAAkC;IAC/D,OAAOA,MAAM,MAAM,gBAAgBF,gCAAgC;AACrE;AAEO,SAASW,aAAaA,CAACC,OAA0B;IACtD,OAAOA,SAAS,OAAO;AACzB;AAEO,SAASC,kBAAkBA,CAChCD,OAA0B;IAE1B,OAAOA,SAAS,OAAO,WAAWA,SAAS,OAAO;AACpD;AAEO,SAASE,iBAAiBA,CAACF,OAA0B;IAC1D,OAAOA,SAAS,OAAO;AACzB;AAEO,MAAMG,WAAWA,GAAG;IACzB,UAAU;IACV,KAAK;IACL,SAAS;AACX,EAAU;AAIH,SAASC,aAAaA,CAC3BC,kBAAqC;IAErC,IAAIN,aAAaA,CAACM,qBAAqB;QACrC,OAAOF,WAAWA,CAAC,GAAG;IACxB;IACA,IAAIF,kBAAkBA,CAACI,qBAAqB;QAC1C,OAAOF,WAAWA,CAAC,QAAQ;IAC7B;IACA,IAAID,iBAAiBA,CAACG,qBAAqB;QACzC,OAAOF,WAAWA,CAAC,OAAO;IAC5B;IAEA,OAAOG;AACT;AAEO,SAASC,mBAAmBA,CACjCjB,IAAiB,EACjBkB,MAAyB;IAEzB,MAAMC,WAAgB,EAAE;IACxB,KAAK,MAAMC,KAAKpB,KAAM;QACpB,IAAIkB,OAAOE,IAAI;YACbD,SAAS,IAAI,CAACC;QAChB;IACF;IACA,OAAOD;AACT;AAEO,SAASE,sBAAsBA,CACpCrB,IAA2C;IAE3C,OAAOiB,mBAAmBA,CAACjB,MAAMD,oBAAoBA;AACvD;AAEO,SAASuB,sBAAsBA,CACpCtB,IAA2C;IAE3C,OAAOiB,mBAAmBA,CAACjB,MAAMC,mBAAmBA;AACtD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/multichannel.js","sources":["../../../../src/components/multichannel/multichannel.jsx"],"sourcesContent":["import { isFacebook, isInstagram, isWhatsapp } from '@botonic/core'\nimport { useContext } from 'react'\n\nimport { RequestContext } from '../../contexts'\nimport { deepMapWithIndex } from '../../util/react'\nimport { Text } from '../text'\nimport { MultichannelButton } from './multichannel-button'\nimport { MultichannelCarousel } from './multichannel-carousel'\nimport { MultichannelContext } from './multichannel-context'\nimport { MultichannelReply } from './multichannel-reply'\nimport { MultichannelText } from './multichannel-text'\nimport {\n isNodeButton,\n isNodeCarousel,\n isNodeReply,\n isNodeText,\n} from './multichannel-utils'\nimport { MULTICHANNEL_WHATSAPP_PROPS } from './whatsapp/constants'\n\nexport const Multichannel = props => {\n const requestContext = useContext(RequestContext)\n if (\n !isWhatsapp(requestContext.session) &&\n !isFacebook(requestContext.session) &&\n !isInstagram(requestContext.session)\n ) {\n return props.children\n }\n if (\n isFacebook(requestContext.session) ||\n isInstagram(requestContext.session)\n ) {\n const newChildren = deepMapWithIndex(props.children, child => {\n if (isNodeText(child)) {\n return (\n <MultichannelText {...child.props} key={child.key}>\n {child.props.children}\n </MultichannelText>\n )\n }\n return child\n })\n return newChildren\n }\n\n let newChildren = deepMapWithIndex(props.children, (child, index) => {\n if (isNodeButton(child)) {\n return (\n <MultichannelButton {...child.props} key={child.key}>\n {child.props.children}\n </MultichannelButton>\n )\n }\n if (isNodeReply(child)) {\n return (\n <MultichannelReply {...child.props} key={child.key}>\n {child.props.children}\n </MultichannelReply>\n )\n }\n if (isNodeText(child)) {\n return (\n <MultichannelText\n {...child.props}\n {...props.text}\n key={child.key}\n {...(props.messageSeparator &&\n index > 0 && { newline: props.messageSeparator })}\n >\n {child.props.children}\n </MultichannelText>\n )\n }\n if (isNodeCarousel(child)) {\n return (\n <MultichannelCarousel\n {...child.props}\n {...props.carousel}\n key={child.key}\n >\n {child.props.children}\n </MultichannelCarousel>\n )\n }\n return child\n })\n if (props.messageSeparator != null) {\n newChildren = newChildren.map((c, index) =>\n index > 0 && typeof c === 'string' ? props.messageSeparator + c : c\n )\n newChildren = (\n <Text key={props.key} {...MULTICHANNEL_WHATSAPP_PROPS}>\n {newChildren}\n </Text>\n )\n }\n return (\n <MultichannelContext.Provider\n value={{\n currentIndex: props.firstIndex,\n boldIndex: props.boldIndex,\n indexSeparator: props.indexSeparator,\n messageSeparator: props.messageSeparator,\n }}\n >\n {newChildren}\n </MultichannelContext.Provider>\n )\n}\n"],"names":["isFacebook","isInstagram","isWhatsapp","useContext","RequestContext","deepMapWithIndex","Text","MultichannelButton","MultichannelCarousel","MultichannelContext","MultichannelReply","MultichannelText","isNodeButton","isNodeCarousel","isNodeReply","isNodeText","MULTICHANNEL_WHATSAPP_PROPS","Multichannel","props","requestContext","newChildren","child","index","c"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAmE;AACjC;AAEa;AACI;AACrB;AAC4B;AACI;AACF;AACJ;AACF;AAMzB;AACqC;AAE3D,MAAMiB,YAAYA,GAAGC,CAAAA;IAC1B,MAAMC,iBAAiBhB,UAAUA,CAACC,cAAcA;IAChD,IACE,CAACF,UAAUA,CAACiB,eAAe,OAAO,KAClC,CAACnB,UAAUA,CAACmB,eAAe,OAAO,KAClC,CAAClB,WAAWA,CAACkB,eAAe,OAAO,GACnC;QACA,OAAOD,MAAM,QAAQ;IACvB;IACA,IACElB,UAAUA,CAACmB,eAAe,OAAO,KACjClB,WAAWA,CAACkB,eAAe,OAAO,GAClC;QACA,MAAMC,cAAcf,gBAAgBA,CAACa,MAAM,QAAQ,EAAEG,CAAAA;YACnD,IAAIN,UAAUA,CAACM,QAAQ;gBACrB,qBACE,cAACV,gBAAgBA;oBAAE,GAAGU,MAAM,KAAK;oBAAE,KAAKA,MAAM,GAAG;mBAC9CA,MAAM,KAAK,CAAC,QAAQ;YAG3B;YACA,OAAOA;QACT;QACA,OAAOD;IACT;IAEA,IAAIA,cAAcf,gBAAgBA,CAACa,MAAM,QAAQ,EAAE,CAACG,OAAOC;QACzD,IAAIV,YAAYA,CAACS,QAAQ;YACvB,qBACE,cAACd,kBAAkBA;gBAAE,GAAGc,MAAM,KAAK;gBAAE,KAAKA,MAAM,GAAG;eAChDA,MAAM,KAAK,CAAC,QAAQ;QAG3B;QACA,IAAIP,WAAWA,CAACO,QAAQ;YACtB,qBACE,cAACX,iBAAiBA;gBAAE,GAAGW,MAAM,KAAK;gBAAE,KAAKA,MAAM,GAAG;eAC/CA,MAAM,KAAK,CAAC,QAAQ;QAG3B;QACA,IAAIN,UAAUA,CAACM,QAAQ;YACrB,qBACE,cAACV,gBAAgBA;gBACd,GAAGU,MAAM,KAAK;gBACd,GAAGH,MAAM,IAAI;gBACd,KAAKG,MAAM,GAAG;gBACb,GAAIH,MAAM,gBAAgB,IACzBI,QAAQ,KAAK;oBAAE,SAASJ,MAAM,gBAAgB;gBAAC,CAAC;eAEjDG,MAAM,KAAK,CAAC,QAAQ;QAG3B;QACA,IAAIR,cAAcA,CAACQ,QAAQ;YACzB,qBACE,cAACb,oBAAoBA;gBAClB,GAAGa,MAAM,KAAK;gBACd,GAAGH,MAAM,QAAQ;gBAClB,KAAKG,MAAM,GAAG;eAEbA,MAAM,KAAK,CAAC,QAAQ;QAG3B;QACA,OAAOA;IACT;IACA,IAAIH,MAAM,gBAAgB,IAAI,MAAM;QAClCE,cAAcA,YAAY,GAAG,CAAC,CAACG,GAAGD,QAChCA,QAAQ,KAAK,OAAOC,MAAM,WAAWL,MAAM,gBAAgB,GAAGK,IAAIA;QAEpEH,4BACE,IAACd,IAAIA;YAAkB,GAAGU,2BAA2B;sBAClDI;WADQF,MAAM,GAAG;IAIxB;IACA,qBACE,IAACT,4BAA4B;QAC3B,OAAO;YACL,cAAcS,MAAM,UAAU;YAC9B,WAAWA,MAAM,SAAS;YAC1B,gBAAgBA,MAAM,cAAc;YACpC,kBAAkBA,MAAM,gBAAgB;QAC1C;kBAECE;;AAGP,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/whatsapp/constants.js","sources":["../../../../../src/components/multichannel/whatsapp/constants.ts"],"sourcesContent":["export const MULTICHANNEL_WHATSAPP_PROPS = { markdown: false }\n\nexport const WHATSAPP_MAX_BUTTONS = 3\nexport const WHATSAPP_LIST_MAX_BUTTONS = 10\nexport const WHATSAPP_MAX_BUTTON_CHARS = 20\nexport const WHATSAPP_MAX_HEADER_CHARS = 60\nexport const WHATSAPP_MAX_BODY_CHARS = 1024\nexport const WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS = 160\nexport const WHATSAPP_MAX_FOOTER_CHARS = 60\nexport const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:'\nexport const MENU_BUTTON_WHATSAPP_BUTTON_LIST = 'Show options'\n"],"names":["MULTICHANNEL_WHATSAPP_PROPS","WHATSAPP_MAX_BUTTONS","WHATSAPP_LIST_MAX_BUTTONS","WHATSAPP_MAX_BUTTON_CHARS","WHATSAPP_MAX_HEADER_CHARS","WHATSAPP_MAX_BODY_CHARS","WHATSAPP_MAX_CAROUSEL_CARD_TEXT_CHARS","WHATSAPP_MAX_FOOTER_CHARS","DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR","MENU_BUTTON_WHATSAPP_BUTTON_LIST"],"mappings":"AAAO,MAAMA,2BAA2BA,GAAG;IAAE,UAAU;AAAM,EAAC;AAEvD,MAAMC,oBAAoBA,GAAG,EAAC;AAC9B,MAAMC,yBAAyBA,GAAG,GAAE;AACpC,MAAMC,yBAAyBA,GAAG,GAAE;AACpC,MAAMC,yBAAyBA,GAAG,GAAE;AACpC,MAAMC,uBAAuBA,GAAG,KAAI;AACpC,MAAMC,qCAAqCA,GAAG,IAAG;AACjD,MAAMC,yBAAyBA,GAAG,GAAE;AACpC,MAAMC,qCAAqCA,GAAG,gBAAe;AAC7D,MAAMC,gCAAgCA,GAAG,eAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/multichannel/whatsapp/markdown-meta.js","sources":["../../../../../src/components/multichannel/whatsapp/markdown-meta.ts"],"sourcesContent":["const REGEX_MARKDOWN_BOLD = /(\\*\\*|__)(.*?)\\1/g\nconst REGEX_MARKDOWN_ITALIC = /(\\*|_)(.*?)\\1/g\nconst REGEX_MARKDOWN_LINK = /\\[([^\\]]+)\\]\\(([^)]+)\\)/g\n\nconst NORMALIZED_BOLD = '&%BOLD%&'\nconst REGEX_NORMALIZED_BOLD = new RegExp(\n `${NORMALIZED_BOLD}(.*?)${NORMALIZED_BOLD}`,\n 'g'\n)\nconst NORMALIZED_ITALIC = '&%ITALIC%&'\nconst REGEX_NORMALIZED_ITALIC = new RegExp(\n `${NORMALIZED_ITALIC}(.*?)${NORMALIZED_ITALIC}`,\n 'g'\n)\n\nconst WHATSAPP_BOLD = '*'\nconst WHATSAPP_ITALIC = '_'\n\n// Convert markdown to WhatsApp and Facebook format\nexport function convertToMarkdownMeta(text: string): string {\n const textWithBoldAndItalic = replaceBoldAndItalic(text)\n\n return replaceMarkdownLinks(textWithBoldAndItalic)\n}\n\nfunction replaceBoldAndItalic(text: string) {\n const normalizedText = normalizeBoldAndItalic(text)\n const boldAndItalicText = normalizedToMarkdownMeta(normalizedText)\n\n return boldAndItalicText\n}\n\nfunction normalizeBoldAndItalic(text: string): string {\n // Normalize bold\n text = text.replace(\n REGEX_MARKDOWN_BOLD,\n `${NORMALIZED_BOLD}$2${NORMALIZED_BOLD}`\n )\n // Normalize italic\n text = text.replace(\n REGEX_MARKDOWN_ITALIC,\n `${NORMALIZED_ITALIC}$2${NORMALIZED_ITALIC}`\n )\n\n return text\n}\n\nfunction normalizedToMarkdownMeta(text: string): string {\n // convert &%BOLD%&text&%BOLD%& to *text*\n text = text.replace(\n REGEX_NORMALIZED_BOLD,\n `${WHATSAPP_BOLD}$1${WHATSAPP_BOLD}`\n )\n // convert &%ITALIC%&text&%ITALIC%& to _text_\n text = text.replace(\n REGEX_NORMALIZED_ITALIC,\n `${WHATSAPP_ITALIC}$1${WHATSAPP_ITALIC}`\n )\n\n return text\n}\n\nfunction replaceMarkdownLinks(text: string) {\n // $1 = textUrl, $2 = linkUrl\n return text.replace(REGEX_MARKDOWN_LINK, '$1: $2')\n}\n"],"names":["REGEX_MARKDOWN_BOLD","REGEX_MARKDOWN_ITALIC","REGEX_MARKDOWN_LINK","NORMALIZED_BOLD","REGEX_NORMALIZED_BOLD","RegExp","NORMALIZED_ITALIC","REGEX_NORMALIZED_ITALIC","WHATSAPP_BOLD","WHATSAPP_ITALIC","convertToMarkdownMeta","text","textWithBoldAndItalic","replaceBoldAndItalic","replaceMarkdownLinks","normalizedText","normalizeBoldAndItalic","boldAndItalicText","normalizedToMarkdownMeta"],"mappings":"AAAA,MAAMA,mBAAmBA,GAAG;AAC5B,MAAMC,qBAAqBA,GAAG;AAC9B,MAAMC,mBAAmBA,GAAG;AAE5B,MAAMC,eAAeA,GAAG;AACxB,MAAMC,qBAAqBA,GAAG,IAAIC,OAChC,GAAGF,eAAeA,CAAC,KAAK,EAAEA,eAAeA,EAAE,EAC3C;AAEF,MAAMG,iBAAiBA,GAAG;AAC1B,MAAMC,uBAAuBA,GAAG,IAAIF,OAClC,GAAGC,iBAAiBA,CAAC,KAAK,EAAEA,iBAAiBA,EAAE,EAC/C;AAGF,MAAME,aAAaA,GAAG;AACtB,MAAMC,eAAeA,GAAG;AAExB,mDAAmD;AAC5C,SAASC,qBAAqBA,CAACC,IAAY;IAChD,MAAMC,wBAAwBC,oBAAoBA,CAACF;IAEnD,OAAOG,oBAAoBA,CAACF;AAC9B;AAEA,SAASC,oBAAoBA,CAACF,IAAY;IACxC,MAAMI,iBAAiBC,sBAAsBA,CAACL;IAC9C,MAAMM,oBAAoBC,wBAAwBA,CAACH;IAEnD,OAAOE;AACT;AAEA,SAASD,sBAAsBA,CAACL,IAAY;IAC1C,iBAAiB;IACjBA,OAAOA,KAAK,OAAO,CACjBX,mBAAmBA,EACnB,GAAGG,eAAeA,CAAC,EAAE,EAAEA,eAAeA,EAAE;IAE1C,mBAAmB;IACnBQ,OAAOA,KAAK,OAAO,CACjBV,qBAAqBA,EACrB,GAAGK,iBAAiBA,CAAC,EAAE,EAAEA,iBAAiBA,EAAE;IAG9C,OAAOK;AACT;AAEA,SAASO,wBAAwBA,CAACP,IAAY;IAC5C,yCAAyC;IACzCA,OAAOA,KAAK,OAAO,CACjBP,qBAAqBA,EACrB,GAAGI,aAAaA,CAAC,EAAE,EAAEA,aAAaA,EAAE;IAEtC,6CAA6C;IAC7CG,OAAOA,KAAK,OAAO,CACjBJ,uBAAuBA,EACvB,GAAGE,eAAeA,CAAC,EAAE,EAAEA,eAAeA,EAAE;IAG1C,OAAOE;AACT;AAEA,SAASG,oBAAoBA,CAACH,IAAY;IACxC,6BAA6B;IAC7B,OAAOA,KAAK,OAAO,CAACT,mBAAmBA,EAAE;AAC3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/pic.js","sources":["../../../src/components/pic.tsx"],"sourcesContent":["import styled from 'styled-components'\n\nimport { COLORS, WEBCHAT } from '../constants'\nimport { staticAsset } from '../util/environment'\nimport { renderComponent } from '../util/react'\nimport { COMPONENT_DISPLAY_NAMES } from './constants'\n\nconst PicStyled = styled.img`\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n width: ${WEBCHAT.DEFAULTS.ELEMENT_WIDTH}px;\n height: 140px;\n background: ${COLORS.SOLID_WHITE};\n object-fit: center/cover;\n border-bottom: 1px solid ${COLORS.SEASHELL_WHITE};\n`\nexport interface PicProps {\n src: string\n}\n\nexport const Pic = (props: PicProps) => {\n props = { ...props, src: staticAsset(props.src) }\n\n const renderBrowser = () => <PicStyled src={props.src} />\n\n // @ts-expect-error\n const renderNode = () => <pic>{props.src}</pic>\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nPic.displayName = COMPONENT_DISPLAY_NAMES.Pic\n\nPic.serialize = (props: PicProps) => {\n return { pic: props.src }\n}\n"],"names":["styled","COLORS","WEBCHAT","staticAsset","renderComponent","COMPONENT_DISPLAY_NAMES","PicStyled","Pic","props","renderBrowser","renderNode"],"mappings":";;;;;;;;;;;;;;AAAsC;AAEQ;AACG;AACF;AACM;AAErD,MAAMM,SAASA,GAAGN,qBAAU,CAAC;;;SAGpB,EAAEE,8BAA8B,CAAC;;cAE5B,EAAED,kBAAkB,CAAC;;2BAER,EAAEA,qBAAqB,CAAC;AACnD,CAAC;AAKM,MAAMM,GAAGA,GAAG,CAACC;IAClBA,QAAQ;QAAE,GAAGA,KAAK;QAAE,KAAKL,WAAWA,CAACK,MAAM,GAAG;IAAE;IAEhD,MAAMC,gBAAgB,kBAAM,IAACH,SAASA;YAAC,KAAKE,MAAM,GAAG;;IAErD,mBAAmB;IACnB,MAAME,aAAa,kBAAM,IAAC;sBAAKF,MAAM,GAAG;;IAExC,OAAOJ,eAAeA,CAAC;QAAEK;QAAeC;IAAW;AACrD,EAAC;AAEDH,GAAGA,CAAC,WAAW,GAAGF,2BAA2B;AAE7CE,GAAGA,CAAC,SAAS,GAAG,CAACC;IACf,OAAO;QAAE,KAAKA,MAAM,GAAG;IAAC;AAC1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/raw.js","sources":["../../../src/components/raw.jsx"],"sourcesContent":["import { INPUT, isBrowser } from '@botonic/core'\nimport { useState } from 'react'\nimport styled from 'styled-components'\n\nimport { COLORS, ROLES } from '../constants'\nimport { Message } from './message'\n\nconst RawDataButton = styled.div`\n align-self: flex-start;\n background-color: ${COLORS.CURIOUS_BLUE};\n padding: 4px;\n margin: 4px 0px;\n cursor: pointer;\n color: ${COLORS.SOLID_WHITE_ALPHA_0_8};\n font-size: 10px;\n border-radius: 2px;\n`\n\nconst Popover = styled.div`\n max-width: 100%;\n max-height: 500px;\n overflow: auto;\n background-color: ${COLORS.LIGHT_GRAY};\n padding: 10px;\n pre {\n margin: 0px;\n }\n`\n\nconst serialize = rawProps => {\n return { data: rawProps.data, alt: rawProps.alt }\n}\n\nexport const Raw = props => {\n let content = props.children\n const data = JSON.stringify(props.data, null, ' ')\n const [isOpen, setIsOpen] = useState(false)\n if (isBrowser()) {\n content = (\n <>\n <div>{props.alt}</div>\n <RawDataButton onClick={() => setIsOpen(!isOpen)}>\n RAW DATA <small>{isOpen ? '▲' : '▼'}</small>\n </RawDataButton>\n {isOpen && (\n <Popover>\n <pre>{data}</pre>\n </Popover>\n )}\n </>\n )\n }\n return (\n <Message\n role={ROLES.RAW_MESSAGE}\n json={serialize(props)}\n {...props}\n data={data}\n type={INPUT.RAW}\n >\n {content}\n </Message>\n )\n}\n\nRaw.serialize = serialize\n"],"names":["INPUT","isBrowser","useState","styled","COLORS","ROLES","Message","RawDataButton","Popover","serialize","rawProps","Raw","props","content","data","JSON","isOpen","setIsOpen"],"mappings":";;;;;;;;;;;;;;AAAgD;AAChB;AACM;AAEM;AACT;AAEnC,MAAMO,aAAaA,GAAGJ,qBAAU,CAAC;;oBAEb,EAAEC,mBAAmB,CAAC;;;;SAIjC,EAAEA,4BAA4B,CAAC;;;AAGxC,CAAC;AAED,MAAMI,OAAOA,GAAGL,qBAAU,CAAC;;;;oBAIP,EAAEC,iBAAiB,CAAC;;;;;AAKxC,CAAC;AAED,MAAMK,SAASA,GAAGC,CAAAA;IAChB,OAAO;QAAE,MAAMA,SAAS,IAAI;QAAE,KAAKA,SAAS,GAAG;IAAC;AAClD;AAEO,MAAMC,GAAGA,GAAGC,CAAAA;IACjB,IAAIC,UAAUD,MAAM,QAAQ;IAC5B,MAAME,OAAOC,KAAK,SAAS,CAACH,MAAM,IAAI,EAAE,MAAM;IAC9C,MAAM,CAACI,QAAQC,UAAU,GAAGf,QAAQA,CAAC;IACrC,IAAID,SAASA,IAAI;QACfY,wBACE;;8BACE,IAAC;8BAAKD,MAAM,GAAG;;8BACf,KAACL,aAAaA;oBAAC,SAAS,IAAMU,UAAU,CAACD;;wBAAS;sCACvC,IAAC;sCAAOA,SAAS,MAAM;;;;gBAEjCA,wBACC,IAACR,OAAOA;8BACN,kBAAC;kCAAKM;;;;;IAKhB;IACA,qBACE,IAACR,OAAOA;QACN,MAAMD,iBAAiB;QACvB,MAAMI,SAASA,CAACG;QACf,GAAGA,KAAK;QACT,MAAME;QACN,MAAMd,SAAS;kBAEda;;AAGP,EAAC;AAEDF,GAAGA,CAAC,SAAS,GAAGF,SAASA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/reply.js","sources":["../../../src/components/reply.tsx"],"sourcesContent":["import { useContext } from 'react'\nimport styled from 'styled-components'\n\nimport { WEBCHAT } from '../constants'\nimport { renderComponent } from '../util/react'\nimport { WebchatContext } from '../webchat/context'\nimport { COMPONENT_DISPLAY_NAMES } from './constants'\nimport type { ReplyProps } from './index-types'\n\nconst StyledButton = styled.button`\n width: 100%;\n padding: 4px 8px;\n font-family: inherit;\n border-radius: 8px;\n border: 1px solid ${props => props.theme.brand?.color};\n color: ${props => props.theme.brand?.color};\n cursor: pointer;\n outline: 0;\n`\n\nexport const Reply = (props: ReplyProps) => {\n const { sendText, getThemeProperty } = useContext(WebchatContext)\n\n const handleClick = (event: any) => {\n event.preventDefault()\n if (props.children) {\n let payload = props.payload\n if (props.path) {\n payload = `__PATH_PAYLOAD__${props.path}`\n }\n sendText(props.children, payload)\n }\n }\n\n const renderBrowser = () => {\n const replyStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.replyStyle)\n const CustomReply = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.customReply)\n if (CustomReply) {\n return (\n <div onClick={e => handleClick(e)}>\n <CustomReply>{props.children}</CustomReply>\n </div>\n )\n }\n\n return (\n <StyledButton\n style={{\n ...replyStyle,\n }}\n onClick={e => handleClick(e)}\n >\n {props.children}\n </StyledButton>\n )\n }\n\n const renderNode = () => {\n if (props.path) {\n const payload = `__PATH_PAYLOAD__${props.path}`\n // @ts-expect-error\n // eslint-disable-next-line react/no-unknown-property\n return <reply payload={payload}>{props.children}</reply>\n }\n // @ts-expect-error\n // eslint-disable-next-line react/no-unknown-property\n return <reply payload={props.payload}>{props.children}</reply>\n }\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nReply.displayName = COMPONENT_DISPLAY_NAMES.Reply\n\nReply.serialize = (replyProps: ReplyProps) => {\n let payload = replyProps.payload\n if (replyProps.path) {\n payload = `__PATH_PAYLOAD__${replyProps.path}`\n }\n return { reply: { title: replyProps.children, payload } }\n}\n"],"names":["useContext","styled","WEBCHAT","renderComponent","WebchatContext","COMPONENT_DISPLAY_NAMES","StyledButton","props","Reply","sendText","getThemeProperty","handleClick","event","payload","renderBrowser","replyStyle","CustomReply","e","renderNode","replyProps"],"mappings":";;;;;;;;;;;;;;;;AAAkC;AACI;AAEA;AACS;AACI;AACE;AAGrD,MAAMM,YAAYA,GAAGL,wBAAa,CAAC;;;;;oBAKf,EAAEM,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM;SAC/C,EAAEA,CAAAA,QAASA,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM;;;AAG7C,CAAC;AAEM,MAAMC,KAAKA,GAAG,CAACD;IACpB,MAAM,EAAEE,QAAQ,EAAEC,gBAAgB,EAAE,GAAGV,UAAUA,CAACI,cAAcA;IAEhE,MAAMO,cAAc,CAACC;QACnBA,MAAM,cAAc;QACpB,IAAIL,MAAM,QAAQ,EAAE;YAClB,IAAIM,UAAUN,MAAM,OAAO;YAC3B,IAAIA,MAAM,IAAI,EAAE;gBACdM,UAAU,CAAC,gBAAgB,EAAEN,MAAM,IAAI,EAAE;YAC3C;YACAE,SAASF,MAAM,QAAQ,EAAEM;QAC3B;IACF;IAEA,MAAMC,gBAAgB;QACpB,MAAMC,aAAaL,iBAAiBR,oCAAoC;QACxE,MAAMc,cAAcN,iBAAiBR,qCAAqC;QAC1E,IAAIc,aAAa;YACf,qBACE,IAAC;gBAAI,SAASC,CAAAA,IAAKN,YAAYM;0BAC7B,kBAACD;8BAAaT,MAAM,QAAQ;;;QAGlC;QAEA,qBACE,IAACD,YAAYA;YACX,OAAO;gBACL,GAAGS,UAAU;YACf;YACA,SAASE,CAAAA,IAAKN,YAAYM;sBAEzBV,MAAM,QAAQ;;IAGrB;IAEA,MAAMW,aAAa;QACjB,IAAIX,MAAM,IAAI,EAAE;YACd,MAAMM,UAAU,CAAC,gBAAgB,EAAEN,MAAM,IAAI,EAAE;YAC/C,mBAAmB;YACnB,qDAAqD;YACrD,qBAAO,IAAC;gBAAM,SAASM;0BAAUN,MAAM,QAAQ;;QACjD;QACA,mBAAmB;QACnB,qDAAqD;QACrD,qBAAO,IAAC;YAAM,SAASA,MAAM,OAAO;sBAAGA,MAAM,QAAQ;;IACvD;IAEA,OAAOJ,eAAeA,CAAC;QAAEW;QAAeI;IAAW;AACrD,EAAC;AAEDV,KAAKA,CAAC,WAAW,GAAGH,6BAA6B;AAEjDG,KAAKA,CAAC,SAAS,GAAG,CAACW;IACjB,IAAIN,UAAUM,WAAW,OAAO;IAChC,IAAIA,WAAW,IAAI,EAAE;QACnBN,UAAU,CAAC,gBAAgB,EAAEM,WAAW,IAAI,EAAE;IAChD;IACA,OAAO;QAAE,OAAO;YAAE,OAAOA,WAAW,QAAQ;YAAEN;QAAQ;IAAE;AAC1D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/share-button.js","sources":["../../../src/components/share-button.jsx"],"sourcesContent":["/** biome-ignore-all lint/security/noDangerouslySetInnerHtml: ShareButton is a component that renders a share button */\nimport { renderComponent } from '../util/react'\n\nexport const ShareButton = props => {\n const renderBrowser = () => null\n const renderNode = () => (\n <button type='element_share'>\n <pre\n dangerouslySetInnerHTML={{ __html: JSON.stringify(props.payload) }}\n />\n </button>\n )\n\n return renderComponent({ renderBrowser, renderNode })\n}\n"],"names":["renderComponent","ShareButton","props","renderBrowser","renderNode","JSON"],"mappings":";;;;;;AAAA,qHAAqH,GACtE;AAExC,MAAMC,WAAWA,GAAGC,CAAAA;IACzB,MAAMC,gBAAgB,IAAM;IAC5B,MAAMC,aAAa,kBACjB,IAAC;YAAO,MAAK;sBACX,kBAAC;gBACC,yBAAyB;oBAAE,QAAQC,KAAK,SAAS,CAACH,MAAM,OAAO;gBAAE;;;IAKvE,OAAOF,eAAeA,CAAC;QAAEG;QAAeC;IAAW;AACrD,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/subtitle.js","sources":["../../../src/components/subtitle.tsx"],"sourcesContent":["import type React from 'react'\nimport styled from 'styled-components'\n\nimport { COLORS } from '../constants'\nimport { renderComponent } from '../util/react'\nimport { COMPONENT_DISPLAY_NAMES } from './constants'\n\nconst SubtitleContainer = styled.div`\n font-size: 12px;\n padding: 0px 15px 10px 15px;\n color: ${COLORS.MID_GRAY};\n`\n\nexport interface SubtitleProps {\n children: React.ReactNode\n}\n\nexport const Subtitle = (props: SubtitleProps) => {\n const renderBrowser = () => (\n <SubtitleContainer>{props.children}</SubtitleContainer>\n )\n\n const renderNode = () => <desc>{props.children}</desc>\n\n return renderComponent({ renderBrowser, renderNode })\n}\n\nSubtitle.displayName = COMPONENT_DISPLAY_NAMES.Subtitle\n\nSubtitle.serialize = (props: SubtitleProps) => {\n return { subtitle: props.children }\n}\n"],"names":["styled","COLORS","renderComponent","COMPONENT_DISPLAY_NAMES","SubtitleContainer","Subtitle","props","renderBrowser","renderNode"],"mappings":";;;;;;;;;;;;AACsC;AAED;AACU;AACM;AAErD,MAAMI,iBAAiBA,GAAGJ,qBAAU,CAAC;;;SAG5B,EAAEC,eAAe,CAAC;AAC3B,CAAC;AAMM,MAAMI,QAAQA,GAAG,CAACC;IACvB,MAAMC,gBAAgB,kBACpB,IAACH,iBAAiBA;sBAAEE,MAAM,QAAQ;;IAGpC,MAAME,aAAa,kBAAM,IAAC;sBAAMF,MAAM,QAAQ;;IAE9C,OAAOJ,eAAeA,CAAC;QAAEK;QAAeC;IAAW;AACrD,EAAC;AAEDH,QAAQA,CAAC,WAAW,GAAGF,gCAAgC;AAEvDE,QAAQA,CAAC,SAAS,GAAG,CAACC;IACpB,OAAO;QAAE,UAAUA,MAAM,QAAQ;IAAC;AACpC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { DebugEvent } from './types.js';
|
|
2
|
-
interface DebugMessageProps {
|
|
3
|
-
debugEvent: DebugEvent;
|
|
4
|
-
messageId?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const DebugMessage: ({ debugEvent, messageId }: DebugMessageProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/debug-message.js","sources":["../../../../src/components/system-debug-trace/debug-message.tsx"],"sourcesContent":["import { EventAction } from '@botonic/core'\nimport type React from 'react'\nimport { useContext, useEffect, useRef, useState } from 'react'\n\nimport { WebchatContext } from '../../webchat/context'\nimport {\n getAiAgentEventConfig,\n getAiAgentRouterEventConfig,\n getBotActionEventConfig,\n getConditionalChannelEventConfig,\n getConditionalCountryEventConfig,\n getConditionalCustomEventConfig,\n getConditionalQueueStatusEventConfig,\n getFallbackEventConfig,\n getHandoffSuccessEventConfig,\n getKeywordEventConfig,\n getRedirectFlowEventConfig,\n getSmartIntentEventConfig,\n getWebviewActionTriggeredEventConfig,\n} from './events'\nimport { useLastLabelPosition } from './hooks/use-last-label-position'\nimport { CaretDownSvg, CaretUpSvg } from './icons'\nimport {\n StyledDebugArrow,\n StyledDebugContainer,\n StyledDebugContent,\n StyledDebugContentWrapper,\n StyledDebugHeader,\n StyledDebugIcon,\n StyledDebugTitle,\n} from './styles'\nimport type { DebugEvent, DebugEventConfig } from './types'\n\nconst getEventConfig = (\n debugEvent: DebugEvent\n): DebugEventConfig | undefined => {\n switch (debugEvent.action) {\n case EventAction.Keyword:\n return getKeywordEventConfig(debugEvent)\n case EventAction.IntentSmart:\n return getSmartIntentEventConfig(debugEvent)\n case EventAction.HandoffSuccess:\n return getHandoffSuccessEventConfig(debugEvent)\n case EventAction.AiAgent:\n return getAiAgentEventConfig(debugEvent)\n case EventAction.AiAgentRouter:\n return getAiAgentRouterEventConfig(debugEvent)\n case EventAction.Fallback:\n return getFallbackEventConfig(debugEvent)\n case EventAction.BotAction:\n return getBotActionEventConfig(debugEvent)\n case EventAction.ConditionalChannel:\n return getConditionalChannelEventConfig(debugEvent)\n case EventAction.ConditionalCountry:\n return getConditionalCountryEventConfig(debugEvent)\n case EventAction.ConditionalCustom:\n return getConditionalCustomEventConfig(debugEvent)\n case EventAction.ConditionalQueueStatus:\n return getConditionalQueueStatusEventConfig(debugEvent)\n case EventAction.RedirectFlow:\n return getRedirectFlowEventConfig(debugEvent)\n case EventAction.WebviewActionTriggered:\n return getWebviewActionTriggeredEventConfig(debugEvent)\n default:\n return undefined\n }\n}\n\ninterface DebugMessageProps {\n debugEvent: DebugEvent\n messageId?: string\n}\n\nexport const DebugMessage = ({ debugEvent, messageId }: DebugMessageProps) => {\n const [isExpanded, setIsExpanded] = useState(false)\n const wrapperRef = useRef<HTMLDivElement>(null)\n const { previewUtils } = useContext(WebchatContext)\n const eventConfig = getEventConfig(debugEvent)\n\n useLastLabelPosition({\n wrapperRef,\n isExpanded,\n debugEvent,\n isCollapsible: eventConfig?.collapsible ?? false,\n })\n\n useEffect(() => {\n if (isExpanded) {\n previewUtils?.trackPreviewEventOpened?.({ action: debugEvent.action })\n }\n }, [previewUtils, isExpanded, debugEvent])\n\n if (!eventConfig) {\n return null\n }\n\n const { title, icon, component, collapsible } = eventConfig\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const Component = component\n\n const handleClick = (e: React.MouseEvent) => {\n if (collapsible) {\n const target = e.target as HTMLElement\n const isButton = target.closest('button, a, [role=\"button\"]')\n\n if (!isButton) {\n e.stopPropagation()\n setIsExpanded(!isExpanded)\n }\n }\n }\n\n const containerClassName = collapsible\n ? `collapsible${isExpanded ? ' expanded' : ''}`\n : ''\n\n return (\n <StyledDebugContainer\n className={containerClassName}\n onClick={collapsible ? handleClick : undefined}\n >\n <StyledDebugHeader>\n <StyledDebugIcon>{icon}</StyledDebugIcon>\n <StyledDebugTitle>{title}</StyledDebugTitle>\n {collapsible && (\n <StyledDebugArrow>\n {isExpanded ? <CaretUpSvg /> : <CaretDownSvg />}\n </StyledDebugArrow>\n )}\n </StyledDebugHeader>\n {Component && (\n <StyledDebugContent style={{ display: isExpanded ? 'block' : 'none' }}>\n <StyledDebugContentWrapper ref={wrapperRef}>\n <Component {...debugEvent} messageId={messageId} />\n </StyledDebugContentWrapper>\n </StyledDebugContent>\n )}\n </StyledDebugContainer>\n )\n}\n"],"names":["EventAction","useContext","useEffect","useRef","useState","WebchatContext","getAiAgentEventConfig","getAiAgentRouterEventConfig","getBotActionEventConfig","getConditionalChannelEventConfig","getConditionalCountryEventConfig","getConditionalCustomEventConfig","getConditionalQueueStatusEventConfig","getFallbackEventConfig","getHandoffSuccessEventConfig","getKeywordEventConfig","getRedirectFlowEventConfig","getSmartIntentEventConfig","getWebviewActionTriggeredEventConfig","useLastLabelPosition","CaretDownSvg","CaretUpSvg","StyledDebugArrow","StyledDebugContainer","StyledDebugContent","StyledDebugContentWrapper","StyledDebugHeader","StyledDebugIcon","StyledDebugTitle","getEventConfig","debugEvent","undefined","DebugMessage","messageId","isExpanded","setIsExpanded","wrapperRef","previewUtils","eventConfig","title","icon","component","collapsible","Component","handleClick","e","target","isButton","containerClassName"],"mappings":";;;;;;;;;;;;;;;;;;AAA2C;AAEoB;AAET;AAerC;AACqD;AACpB;AASjC;AAGjB,MAAM6B,cAAcA,GAAG,CACrBC;IAEA,OAAQA,WAAW,MAAM;QACvB,KAAK9B,mBAAmB;YACtB,OAAOe,qBAAqBA,CAACe;QAC/B,KAAK9B,uBAAuB;YAC1B,OAAOiB,yBAAyBA,CAACa;QACnC,KAAK9B,0BAA0B;YAC7B,OAAOc,4BAA4BA,CAACgB;QACtC,KAAK9B,mBAAmB;YACtB,OAAOM,qBAAqBA,CAACwB;QAC/B,KAAK9B,yBAAyB;YAC5B,OAAOO,2BAA2BA,CAACuB;QACrC,KAAK9B,oBAAoB;YACvB,OAAOa,sBAAsBA,CAACiB;QAChC,KAAK9B,qBAAqB;YACxB,OAAOQ,uBAAuBA,CAACsB;QACjC,KAAK9B,8BAA8B;YACjC,OAAOS,gCAAgCA,CAACqB;QAC1C,KAAK9B,8BAA8B;YACjC,OAAOU,gCAAgCA,CAACoB;QAC1C,KAAK9B,6BAA6B;YAChC,OAAOW,+BAA+BA,CAACmB;QACzC,KAAK9B,kCAAkC;YACrC,OAAOY,oCAAoCA,CAACkB;QAC9C,KAAK9B,wBAAwB;YAC3B,OAAOgB,0BAA0BA,CAACc;QACpC,KAAK9B,kCAAkC;YACrC,OAAOkB,oCAAoCA,CAACY;QAC9C;YACE,OAAOC;IACX;AACF;AAOO,MAAMC,YAAYA,GAAG,CAAC,EAAEF,UAAU,EAAEG,SAAS,EAAqB;IACvE,MAAM,CAACC,YAAYC,cAAc,GAAG/B,QAAQA,CAAC;IAC7C,MAAMgC,aAAajC,MAAMA,CAAiB;IAC1C,MAAM,EAAEkC,YAAY,EAAE,GAAGpC,UAAUA,CAACI,cAAcA;IAClD,MAAMiC,cAAcT,cAAcA,CAACC;IAEnCX,oBAAoBA,CAAC;QACnBiB;QACAF;QACAJ;QACA,eAAeQ,aAAa,eAAe;IAC7C;IAEApC,SAASA,CAAC;QACR,IAAIgC,YAAY;YACdG,cAAc,0BAA0B;gBAAE,QAAQP,WAAW,MAAM;YAAC;QACtE;IACF,GAAG;QAACO;QAAcH;QAAYJ;KAAW;IAEzC,IAAI,CAACQ,aAAa;QAChB,OAAO;IACT;IAEA,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,SAAS,EAAEC,WAAW,EAAE,GAAGJ;IAChD,gEAAgE;IAChE,MAAMK,YAAYF;IAElB,MAAMG,cAAc,CAACC;QACnB,IAAIH,aAAa;YACf,MAAMI,SAASD,EAAE,MAAM;YACvB,MAAME,WAAWD,OAAO,OAAO,CAAC;YAEhC,IAAI,CAACC,UAAU;gBACbF,EAAE,eAAe;gBACjBV,cAAc,CAACD;YACjB;QACF;IACF;IAEA,MAAMc,qBAAqBN,cACvB,CAAC,WAAW,EAAER,aAAa,cAAc,IAAI,GAC7C;IAEJ,qBACE,KAACX,oBAAoBA;QACnB,WAAWyB;QACX,SAASN,cAAcE,cAAcb;;0BAErC,KAACL,iBAAiBA;;kCAChB,IAACC,eAAeA;kCAAEa;;kCAClB,IAACZ,gBAAgBA;kCAAEW;;oBAClBG,6BACC,IAACpB,gBAAgBA;kCACdY,2BAAa,IAACb,UAAUA,sBAAM,IAACD,YAAYA;;;;YAIjDuB,2BACC,IAACnB,kBAAkBA;gBAAC,OAAO;oBAAE,SAASU,aAAa,UAAU;gBAAO;0BAClE,kBAACT,yBAAyBA;oBAAC,KAAKW;8BAC9B,kBAACO;wBAAW,GAAGb,UAAU;wBAAE,WAAWG;;;;;;AAMlD,EAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { DebugEventConfig } from '../../types.js';
|
|
2
|
-
import type { AiAgentDebugEvent } from './types.js';
|
|
3
|
-
export declare const AiAgent: (props: AiAgentDebugEvent) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
export declare const getAiAgentEventConfig: (data: AiAgentDebugEvent) => DebugEventConfig;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent/ai-agent.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent/ai-agent.tsx"],"sourcesContent":["import { EventAction, type ToolExecution } from '@botonic/core'\nimport { useContext, useMemo } from 'react'\n\nimport { WebchatContext } from '../../../../webchat/context'\nimport { useKnowledgeBaseInfo } from '../../hooks/use-knowledge-base-info'\nimport { AiSpecialistSvg } from '../../icons'\nimport {\n StyledDebugDetail,\n StyledDebugLabel,\n StyledDebugValue,\n} from '../../styles'\nimport type { DebugEventConfig } from '../../types'\nimport { GuardrailList, SourcesSection } from '../components'\nimport { LABELS } from '../constants'\nimport { ExecutedTools } from './executed-tools'\nimport { parseTools } from './parse-tools'\nimport type { AiAgentDebugEvent, ToolExecuted } from './types'\nimport { useRehydratedAiAgentEvent } from './use-rehydrated-ai-agent-event'\n\nexport const AiAgent = (props: AiAgentDebugEvent) => {\n const { previewUtils } = useContext(WebchatContext)\n const { resolvedEvent, isRehydrating } = useRehydratedAiAgentEvent(\n props,\n previewUtils\n )\n\n const {\n tools_executed,\n input_guardrails_triggered,\n output_guardrails_triggered,\n exit,\n error,\n messageId,\n knowledge_base_chunks_with_sources,\n truncated,\n } = resolvedEvent\n\n const { otherTools, allSourcesIds, allChunksIds, query } = useMemo(\n () => parseTools(tools_executed),\n [tools_executed]\n )\n\n const {\n sources: allSources,\n chunks: allChunks,\n chunksWithSources,\n getIconForSourceType,\n } = useKnowledgeBaseInfo({\n sourceIds: allSourcesIds,\n chunkIds: allChunksIds,\n messageId,\n existingChunksWithSources: knowledge_base_chunks_with_sources,\n })\n\n const handleSeeChunks = () => {\n previewUtils?.onClickOpenChunks?.(chunksWithSources)\n }\n\n const handleSeeToolDetails = (tool: ToolExecuted) => {\n const toolExecution: ToolExecution = {\n toolName: tool.tool_name,\n toolArguments: tool.tool_arguments ?? {},\n toolResults: tool.tool_results ?? '',\n }\n\n previewUtils?.onClickOpenToolResults?.(toolExecution)\n }\n\n const showNoToolsExecuted =\n !isRehydrating && !tools_executed.length && !truncated\n\n return (\n <>\n {query && (\n <StyledDebugDetail>\n <StyledDebugLabel>{LABELS.QUERY}</StyledDebugLabel>\n <StyledDebugValue>"{query}"</StyledDebugValue>\n </StyledDebugDetail>\n )}\n\n <SourcesSection\n sources={allSources}\n chunks={allChunks}\n getIconForSourceType={getIconForSourceType}\n onSeeChunks={handleSeeChunks}\n label={LABELS.KNOWLEDGE_SOURCES}\n />\n\n <ExecutedTools\n tools={otherTools}\n onSeeToolDetails={handleSeeToolDetails}\n />\n\n {showNoToolsExecuted && (\n <StyledDebugDetail>\n <StyledDebugLabel>{LABELS.NO_TOOLS_EXECUTED}</StyledDebugLabel>\n </StyledDebugDetail>\n )}\n\n <GuardrailList\n keyPrefix='input'\n guardrails={input_guardrails_triggered}\n />\n\n <GuardrailList\n keyPrefix='output'\n guardrails={output_guardrails_triggered}\n $isLastItem={!exit && !error}\n />\n\n {exit && (\n <StyledDebugDetail>\n <StyledDebugLabel>{LABELS.EXIT}</StyledDebugLabel>\n </StyledDebugDetail>\n )}\n\n {error && (\n <StyledDebugDetail>\n <StyledDebugLabel>{LABELS.ERROR}</StyledDebugLabel>\n </StyledDebugDetail>\n )}\n </>\n )\n}\n\nexport const getAiAgentEventConfig = (\n data: AiAgentDebugEvent\n): DebugEventConfig => {\n const title = (\n <>\n Specialist triggered <span>- {data.flow_node_content_id}</span>\n </>\n )\n\n return {\n action: EventAction.AiAgent,\n title,\n component: AiAgent,\n icon: <AiSpecialistSvg />,\n collapsible: true,\n }\n}\n"],"names":["EventAction","useContext","useMemo","WebchatContext","useKnowledgeBaseInfo","AiSpecialistSvg","StyledDebugDetail","StyledDebugLabel","StyledDebugValue","GuardrailList","SourcesSection","LABELS","ExecutedTools","parseTools","useRehydratedAiAgentEvent","AiAgent","props","previewUtils","resolvedEvent","isRehydrating","tools_executed","input_guardrails_triggered","output_guardrails_triggered","exit","error","messageId","knowledge_base_chunks_with_sources","truncated","otherTools","allSourcesIds","allChunksIds","query","allSources","allChunks","chunksWithSources","getIconForSourceType","handleSeeChunks","handleSeeToolDetails","tool","toolExecution","showNoToolsExecuted","getAiAgentEventConfig","data","title"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAA+D;AACpB;AAEiB;AACc;AAC7B;AAKxB;AAEwC;AACxB;AACW;AACN;AAEiC;AAEpE,MAAMe,OAAOA,GAAG,CAACC;IACtB,MAAM,EAAEC,YAAY,EAAE,GAAGhB,UAAUA,CAACE,cAAcA;IAClD,MAAM,EAAEe,aAAa,EAAEC,aAAa,EAAE,GAAGL,yBAAyBA,CAChEE,OACAC;IAGF,MAAM,EACJG,cAAc,EACdC,0BAA0B,EAC1BC,2BAA2B,EAC3BC,IAAI,EACJC,KAAK,EACLC,SAAS,EACTC,kCAAkC,EAClCC,SAAS,EACV,GAAGT;IAEJ,MAAM,EAAEU,UAAU,EAAEC,aAAa,EAAEC,YAAY,EAAEC,KAAK,EAAE,GAAG7B,OAAOA,CAChE,IAAMW,UAAUA,CAACO,iBACjB;QAACA;KAAe;IAGlB,MAAM,EACJ,SAASY,UAAU,EACnB,QAAQC,SAAS,EACjBC,iBAAiB,EACjBC,oBAAoB,EACrB,GAAG/B,oBAAoBA,CAAC;QACvB,WAAWyB;QACX,UAAUC;QACVL;QACA,2BAA2BC;IAC7B;IAEA,MAAMU,kBAAkB;QACtBnB,cAAc,oBAAoBiB;IACpC;IAEA,MAAMG,uBAAuB,CAACC;QAC5B,MAAMC,gBAA+B;YACnC,UAAUD,KAAK,SAAS;YACxB,eAAeA,KAAK,cAAc,IAAI,CAAC;YACvC,aAAaA,KAAK,YAAY,IAAI;QACpC;QAEArB,cAAc,yBAAyBsB;IACzC;IAEA,MAAMC,sBACJ,CAACrB,iBAAiB,CAACC,eAAe,MAAM,IAAI,CAACO;IAE/C,qBACE;;YACGI,uBACC,KAACzB,iBAAiBA;;kCAChB,IAACC,gBAAgBA;kCAAEI,YAAY;;kCAC/B,KAACH,gBAAgBA;;4BAAC;4BAAOuB;4BAAM;;;;;0BAInC,IAACrB,cAAcA;gBACb,SAASsB;gBACT,QAAQC;gBACR,sBAAsBE;gBACtB,aAAaC;gBACb,OAAOzB,wBAAwB;;0BAGjC,IAACC,aAAaA;gBACZ,OAAOgB;gBACP,kBAAkBS;;YAGnBG,qCACC,IAAClC,iBAAiBA;0BAChB,kBAACC,gBAAgBA;8BAAEI,wBAAwB;;;0BAI/C,IAACF,aAAaA;gBACZ,WAAU;gBACV,YAAYY;;0BAGd,IAACZ,aAAaA;gBACZ,WAAU;gBACV,YAAYa;gBACZ,aAAa,CAACC,QAAQ,CAACC;;YAGxBD,sBACC,IAACjB,iBAAiBA;0BAChB,kBAACC,gBAAgBA;8BAAEI,WAAW;;;YAIjCa,uBACC,IAAClB,iBAAiBA;0BAChB,kBAACC,gBAAgBA;8BAAEI,YAAY;;;;;AAKzC,EAAC;AAEM,MAAM8B,qBAAqBA,GAAG,CACnCC;IAEA,MAAMC,sBACJ;;YAAE;0BACqB,KAAC;;oBAAK;oBAAGD,KAAK,oBAAoB;;;;;IAI3D,OAAO;QACL,QAAQ1C,mBAAmB;QAC3B2C;QACA,WAAW5B,OAAOA;QAClB,oBAAM,IAACV,eAAeA;QACtB,aAAa;IACf;AACF,EAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { ToolExecuted } from './types.js';
|
|
2
|
-
interface Props {
|
|
3
|
-
tools: ToolExecuted[];
|
|
4
|
-
onSeeToolDetails: (tool: ToolExecuted) => void;
|
|
5
|
-
}
|
|
6
|
-
export declare const ExecutedTools: ({ tools, onSeeToolDetails }: Props) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent/executed-tools.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent/executed-tools.tsx"],"sourcesContent":["import styled from 'styled-components'\nimport { ScrewdriverWrenchSvg } from '../../icons'\nimport {\n StyledDebugDetail,\n StyledDebugItemWithIcon,\n StyledDebugLabel,\n StyledSeeInfo,\n} from '../../styles'\nimport { LABELS } from '../constants'\nimport type { ToolExecuted } from './types'\n\nconst StyledSeeToolDetailsButton = styled(StyledSeeInfo)`\n flex-shrink: 0;\n border: none;\n`\n\ninterface Props {\n tools: ToolExecuted[]\n onSeeToolDetails: (tool: ToolExecuted) => void\n}\n\nexport const ExecutedTools = ({ tools, onSeeToolDetails }: Props) => {\n if (!tools.length) {\n return null\n }\n\n return (\n <StyledDebugDetail>\n <StyledDebugLabel>{LABELS.EXECUTED_TOOLS}</StyledDebugLabel>\n\n {tools.map((tool, index) => (\n <StyledDebugItemWithIcon key={`${tool.tool_name}-${index}`}>\n <ScrewdriverWrenchSvg />\n {tool.tool_name}\n\n <StyledSeeToolDetailsButton onClick={() => onSeeToolDetails(tool)}>\n {LABELS.SEE_TOOL_DETAILS}\n </StyledSeeToolDetailsButton>\n </StyledDebugItemWithIcon>\n ))}\n </StyledDebugDetail>\n )\n}\n"],"names":["styled","ScrewdriverWrenchSvg","StyledDebugDetail","StyledDebugItemWithIcon","StyledDebugLabel","StyledSeeInfo","LABELS","StyledSeeToolDetailsButton","ExecutedTools","tools","onSeeToolDetails","tool","index"],"mappings":";;;;;;;;;;;;AAAsC;AACY;AAM7B;AACgB;AAGrC,MAAMO,0BAA0BA,GAAGP,iBAAMA,CAACK,aAAaA,CAAC,CAAC;;;AAGzD,CAAC;AAOM,MAAMG,aAAaA,GAAG,CAAC,EAAEC,KAAK,EAAEC,gBAAgB,EAAS;IAC9D,IAAI,CAACD,MAAM,MAAM,EAAE;QACjB,OAAO;IACT;IAEA,qBACE,KAACP,iBAAiBA;;0BAChB,IAACE,gBAAgBA;0BAAEE,qBAAqB;;YAEvCG,MAAM,GAAG,CAAC,CAACE,MAAMC,sBAChB,KAACT,uBAAuBA;;sCACtB,IAACF,oBAAoBA;wBACpBU,KAAK,SAAS;sCAEf,IAACJ,0BAA0BA;4BAAC,SAAS,IAAMG,iBAAiBC;sCACzDL,uBAAuB;;;mBALE,GAAGK,KAAK,SAAS,CAAC,CAAC,EAAEC,OAAO;;;AAWlE,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent/index.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent/index.ts"],"sourcesContent":["export * from './ai-agent'\nexport * from './types'\n"],"names":[],"mappings":";;AAA0B;AACH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent/parse-tools.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent/parse-tools.ts"],"sourcesContent":["import type { ToolExecuted } from './types'\n\nexport const RETRIEVE_KNOWLEDGE_TOOL = 'retrieve_knowledge'\n\nconst TRANSFER_TOOL_PREFIX = 'transfer_to_'\n\nexport function parseTools(\n tools: ToolExecuted[],\n excludeTransferTools = false\n) {\n const result = {\n retrieveKnowledgeTools: [] as ToolExecuted[],\n otherTools: [] as ToolExecuted[],\n allSourcesIds: [] as string[],\n allChunksIds: [] as string[],\n query: undefined as string | undefined,\n }\n\n for (const tool of tools) {\n if (tool.tool_name !== RETRIEVE_KNOWLEDGE_TOOL) {\n if (\n !(\n excludeTransferTools &&\n tool.tool_name.startsWith(TRANSFER_TOOL_PREFIX)\n )\n ) {\n result.otherTools.push(tool)\n }\n continue\n }\n\n result.retrieveKnowledgeTools.push(tool)\n\n if (typeof tool.tool_arguments?.query === 'string') {\n result.query = tool.tool_arguments.query\n }\n\n result.allSourcesIds.push(...(tool.knowledgebase_sources_ids ?? []))\n result.allChunksIds.push(...(tool.knowledgebase_chunks_ids ?? []))\n }\n\n return result\n}\n"],"names":["RETRIEVE_KNOWLEDGE_TOOL","TRANSFER_TOOL_PREFIX","parseTools","tools","excludeTransferTools","result","undefined","tool"],"mappings":"AAEO,MAAMA,uBAAuBA,GAAG,qBAAoB;AAE3D,MAAMC,oBAAoBA,GAAG;AAEtB,SAASC,UAAUA,CACxBC,KAAqB,EACrBC,uBAAuB,KAAK;IAE5B,MAAMC,SAAS;QACb,wBAAwB,EAAE;QAC1B,YAAY,EAAE;QACd,eAAe,EAAE;QACjB,cAAc,EAAE;QAChB,OAAOC;IACT;IAEA,KAAK,MAAMC,QAAQJ,MAAO;QACxB,IAAII,KAAK,SAAS,KAAKP,uBAAuBA,EAAE;YAC9C,IACE,CACEI,CAAAA,wBACAG,KAAK,SAAS,CAAC,UAAU,CAACN,oBAAoBA,CAAA,GAEhD;gBACAI,OAAO,UAAU,CAAC,IAAI,CAACE;YACzB;YACA;QACF;QAEAF,OAAO,sBAAsB,CAAC,IAAI,CAACE;QAEnC,IAAI,OAAOA,KAAK,cAAc,EAAE,UAAU,UAAU;YAClDF,OAAO,KAAK,GAAGE,KAAK,cAAc,CAAC,KAAK;QAC1C;QAEAF,OAAO,aAAa,CAAC,IAAI,IAAKE,KAAK,yBAAyB,IAAI,EAAE;QAClEF,OAAO,YAAY,CAAC,IAAI,IAAKE,KAAK,wBAAwB,IAAI,EAAE;IAClE;IAEA,OAAOF;AACT"}
|
package/lib/esm/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent/rehydrate-ai-agent-event.ts"],"sourcesContent":["import type { PreviewUtils } from '../../../../index-types'\nimport type { AiAgentDebugEvent } from './types'\n\nconst rehydratedEventsCache = new Map<string, AiAgentDebugEvent>()\nconst rehydrationInFlight = new Map<string, Promise<AiAgentDebugEvent | null>>()\n\nexport const clearRehydrationCacheForTests = () => {\n rehydratedEventsCache.clear()\n rehydrationInFlight.clear()\n}\n\nexport const getCachedRehydratedEvent = (\n hubtypeMessageId: string\n): AiAgentDebugEvent | undefined => rehydratedEventsCache.get(hubtypeMessageId)\n\nexport const rehydrateTruncatedEvent = async (\n props: AiAgentDebugEvent,\n previewUtils: PreviewUtils,\n hubtypeMessageId: string\n): Promise<AiAgentDebugEvent | null> => {\n const message = await previewUtils.getMessageById(hubtypeMessageId, {\n includeDebugEvents: true,\n })\n\n if (!message?.event_data) {\n return null\n }\n\n const eventData = message.event_data as Partial<AiAgentDebugEvent>\n\n return {\n ...props,\n ...eventData,\n action: props.action,\n messageId: props.messageId,\n truncated: false,\n }\n}\n\nexport const getOrStartRehydration = (\n props: AiAgentDebugEvent,\n previewUtils: PreviewUtils,\n hubtypeMessageId: string\n): Promise<AiAgentDebugEvent | null> => {\n const cached = rehydratedEventsCache.get(hubtypeMessageId)\n if (cached) {\n return Promise.resolve(cached)\n }\n\n const inFlight = rehydrationInFlight.get(hubtypeMessageId)\n if (inFlight) {\n return inFlight\n }\n\n const promise = rehydrateTruncatedEvent(props, previewUtils, hubtypeMessageId)\n .then(mergedEvent => {\n if (mergedEvent) {\n rehydratedEventsCache.set(hubtypeMessageId, mergedEvent)\n }\n rehydrationInFlight.delete(hubtypeMessageId)\n return mergedEvent\n })\n .catch(error => {\n rehydrationInFlight.delete(hubtypeMessageId)\n throw error\n })\n\n rehydrationInFlight.set(hubtypeMessageId, promise)\n return promise\n}\n"],"names":["rehydratedEventsCache","Map","rehydrationInFlight","clearRehydrationCacheForTests","getCachedRehydratedEvent","hubtypeMessageId","rehydrateTruncatedEvent","props","previewUtils","message","eventData","getOrStartRehydration","cached","Promise","inFlight","promise","mergedEvent","error"],"mappings":"AAGA,MAAMA,qBAAqBA,GAAG,IAAIC;AAClC,MAAMC,mBAAmBA,GAAG,IAAID;AAEzB,MAAME,6BAA6BA,GAAG;IAC3CH,qBAAqBA,CAAC,KAAK;IAC3BE,mBAAmBA,CAAC,KAAK;AAC3B,EAAC;AAEM,MAAME,wBAAwBA,GAAG,CACtCC,mBACkCL,qBAAqBA,CAAC,GAAG,CAACK,kBAAiB;AAExE,MAAMC,uBAAuBA,GAAG,OACrCC,OACAC,cACAH;IAEA,MAAMI,UAAU,MAAMD,aAAa,cAAc,CAACH,kBAAkB;QAClE,oBAAoB;IACtB;IAEA,IAAI,CAACI,SAAS,YAAY;QACxB,OAAO;IACT;IAEA,MAAMC,YAAYD,QAAQ,UAAU;IAEpC,OAAO;QACL,GAAGF,KAAK;QACR,GAAGG,SAAS;QACZ,QAAQH,MAAM,MAAM;QACpB,WAAWA,MAAM,SAAS;QAC1B,WAAW;IACb;AACF,EAAC;AAEM,MAAMI,qBAAqBA,GAAG,CACnCJ,OACAC,cACAH;IAEA,MAAMO,SAASZ,qBAAqBA,CAAC,GAAG,CAACK;IACzC,IAAIO,QAAQ;QACV,OAAOC,QAAQ,OAAO,CAACD;IACzB;IAEA,MAAME,WAAWZ,mBAAmBA,CAAC,GAAG,CAACG;IACzC,IAAIS,UAAU;QACZ,OAAOA;IACT;IAEA,MAAMC,UAAUT,uBAAuBA,CAACC,OAAOC,cAAcH,kBAC1D,IAAI,CAACW,CAAAA;QACJ,IAAIA,aAAa;YACfhB,qBAAqBA,CAAC,GAAG,CAACK,kBAAkBW;QAC9C;QACAd,mBAAmBA,CAAC,MAAM,CAACG;QAC3B,OAAOW;IACT,GACC,KAAK,CAACC,CAAAA;QACLf,mBAAmBA,CAAC,MAAM,CAACG;QAC3B,MAAMY;IACR;IAEFf,mBAAmBA,CAAC,GAAG,CAACG,kBAAkBU;IAC1C,OAAOA;AACT,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent/types.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent/types.ts"],"sourcesContent":["import type { EventAction } from '@botonic/core'\nimport type { ChunkIdsGroupedBySourceData } from '../knowledge-bases-types'\n\nexport interface ToolExecuted {\n tool_name: string\n tool_arguments: Record<string, unknown>\n tool_results?: string\n knowledgebase_sources_ids?: string[]\n knowledgebase_chunks_ids?: string[]\n}\n\nexport interface AiAgentDebugEvent {\n action: EventAction.AiAgent\n flow_node_content_id: string\n user_input?: string\n tools_executed: ToolExecuted[]\n input_guardrails_triggered: string[]\n output_guardrails_triggered: string[]\n exit: boolean\n error: boolean\n knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[]\n messageId?: string\n truncated?: boolean\n hubtype_message_id?: string\n}\n"],"names":[],"mappings":"AAwBC"}
|
package/lib/esm/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent/use-rehydrated-ai-agent-event.ts"],"sourcesContent":["import { useRef, useState } from 'react'\n\nimport type { PreviewUtils } from '../../../../index-types'\nimport {\n getCachedRehydratedEvent,\n getOrStartRehydration,\n} from './rehydrate-ai-agent-event'\nimport type { AiAgentDebugEvent } from './types'\n\ninterface UseRehydratedAiAgentEventResult {\n resolvedEvent: AiAgentDebugEvent\n isRehydrating: boolean\n}\n\nexport const useRehydratedAiAgentEvent = (\n props: AiAgentDebugEvent,\n previewUtils?: PreviewUtils\n): UseRehydratedAiAgentEventResult => {\n const hubtypeMessageId = props.hubtype_message_id\n const needsRehydration = Boolean(\n props.truncated && hubtypeMessageId && previewUtils\n )\n\n const cachedEvent =\n hubtypeMessageId && needsRehydration\n ? getCachedRehydratedEvent(hubtypeMessageId)\n : undefined\n\n const [resolvedEvent, setResolvedEvent] = useState<AiAgentDebugEvent>(\n () => cachedEvent ?? props\n )\n const [isRehydrating, setIsRehydrating] = useState(\n () => needsRehydration && !cachedEvent\n )\n\n const fetchStartedRef = useRef(false)\n\n if (!needsRehydration) {\n return { resolvedEvent: props, isRehydrating: false }\n }\n\n if (\n !cachedEvent &&\n !fetchStartedRef.current &&\n hubtypeMessageId &&\n previewUtils\n ) {\n fetchStartedRef.current = true\n\n getOrStartRehydration(props, previewUtils, hubtypeMessageId)\n .then(mergedEvent => {\n if (mergedEvent) {\n setResolvedEvent(mergedEvent)\n }\n setIsRehydrating(false)\n })\n .catch(error => {\n console.error('Error rehydrating truncated AI agent event:', error)\n setIsRehydrating(false)\n })\n }\n\n return {\n resolvedEvent: cachedEvent ?? resolvedEvent,\n isRehydrating: cachedEvent ? false : isRehydrating,\n }\n}\n"],"names":["useRef","useState","getCachedRehydratedEvent","getOrStartRehydration","useRehydratedAiAgentEvent","props","previewUtils","hubtypeMessageId","needsRehydration","Boolean","cachedEvent","undefined","resolvedEvent","setResolvedEvent","isRehydrating","setIsRehydrating","fetchStartedRef","mergedEvent","error","console"],"mappings":";;;;;AAAwC;AAML;AAQ5B,MAAMI,yBAAyBA,GAAG,CACvCC,OACAC;IAEA,MAAMC,mBAAmBF,MAAM,kBAAkB;IACjD,MAAMG,mBAAmBC,QACvBJ,MAAM,SAAS,IAAIE,oBAAoBD;IAGzC,MAAMI,cACJH,oBAAoBC,mBAChBN,wBAAwBA,CAACK,oBACzBI;IAEN,MAAM,CAACC,eAAeC,iBAAiB,GAAGZ,QAAQA,CAChD,IAAMS,eAAeL;IAEvB,MAAM,CAACS,eAAeC,iBAAiB,GAAGd,QAAQA,CAChD,IAAMO,oBAAoB,CAACE;IAG7B,MAAMM,kBAAkBhB,MAAMA,CAAC;IAE/B,IAAI,CAACQ,kBAAkB;QACrB,OAAO;YAAE,eAAeH;YAAO,eAAe;QAAM;IACtD;IAEA,IACE,CAACK,eACD,CAACM,gBAAgB,OAAO,IACxBT,oBACAD,cACA;QACAU,gBAAgB,OAAO,GAAG;QAE1Bb,qBAAqBA,CAACE,OAAOC,cAAcC,kBACxC,IAAI,CAACU,CAAAA;YACJ,IAAIA,aAAa;gBACfJ,iBAAiBI;YACnB;YACAF,iBAAiB;QACnB,GACC,KAAK,CAACG,CAAAA;YACLC,QAAQ,KAAK,CAAC,+CAA+CD;YAC7DH,iBAAiB;QACnB;IACJ;IAEA,OAAO;QACL,eAAeL,eAAeE;QAC9B,eAAeF,cAAc,QAAQI;IACvC;AACF,EAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { DebugEventConfig } from '../../types.js';
|
|
2
|
-
import type { AiAgentRouterDebugEvent } from './types.js';
|
|
3
|
-
export declare const AiAgentRouter: ({ input_guardrails_triggered, available_specialists, is_transferred_to_specialist, last_agent_name, }: AiAgentRouterDebugEvent) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
export declare const getAiAgentRouterEventConfig: (data: AiAgentRouterDebugEvent) => DebugEventConfig;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent-router/ai-agent-router.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent-router/ai-agent-router.tsx"],"sourcesContent":["import { EventAction } from '@botonic/core'\nimport { AiRouterSvg, AiSpecialistSvg, HandSvg } from '../../icons'\nimport {\n StyledDebugDetail,\n StyledDebugItemWithIcon,\n StyledDebugLabel,\n StyledDebugValue,\n StyledGuardrailLabel,\n StyledGuardrailValue,\n} from '../../styles'\nimport type { DebugEventConfig } from '../../types'\nimport { LABELS } from '../constants'\nimport type { AiAgentRouterDebugEvent } from './types'\n\nexport const AiAgentRouter = ({\n input_guardrails_triggered,\n available_specialists,\n is_transferred_to_specialist,\n last_agent_name,\n}: AiAgentRouterDebugEvent) => {\n return (\n <>\n {available_specialists.length > 0 && (\n <StyledDebugDetail data-line-end>\n <StyledDebugLabel>{LABELS.SPECIALISTS_AVAILABLE}</StyledDebugLabel>\n {available_specialists.map(h => (\n <StyledDebugItemWithIcon key={h.name}>\n <AiSpecialistSvg />\n {h.name}\n </StyledDebugItemWithIcon>\n ))}\n </StyledDebugDetail>\n )}\n\n <StyledDebugDetail>\n {is_transferred_to_specialist ? (\n <StyledDebugValue>\n {LABELS.TRANSFERRED_TO}{' '}\n <span style={{ fontWeight: 400 }}>- {last_agent_name}</span>\n </StyledDebugValue>\n ) : input_guardrails_triggered.length > 0 ? (\n <>\n {input_guardrails_triggered.map(guardrail => (\n <StyledDebugItemWithIcon key={`input-guardrail-${guardrail}`}>\n <HandSvg />\n <StyledGuardrailLabel>\n {LABELS.GUARDRAIL_TRIGGERED}\n </StyledGuardrailLabel>\n <StyledGuardrailValue>- {guardrail}</StyledGuardrailValue>\n </StyledDebugItemWithIcon>\n ))}\n </>\n ) : (\n <StyledDebugValue>{LABELS.NO_TRANSFER}</StyledDebugValue>\n )}\n </StyledDebugDetail>\n </>\n )\n}\n\nexport const getAiAgentRouterEventConfig = (\n data: AiAgentRouterDebugEvent\n): DebugEventConfig => {\n return {\n action: EventAction.AiAgentRouter,\n title: (\n <>\n Router triggered <span>- {data.flow_node_content_id}</span>\n </>\n ),\n component: AiAgentRouter,\n icon: <AiRouterSvg />,\n collapsible: true,\n }\n}\n"],"names":["EventAction","AiRouterSvg","AiSpecialistSvg","HandSvg","StyledDebugDetail","StyledDebugItemWithIcon","StyledDebugLabel","StyledDebugValue","StyledGuardrailLabel","StyledGuardrailValue","LABELS","AiAgentRouter","input_guardrails_triggered","available_specialists","is_transferred_to_specialist","last_agent_name","h","guardrail","getAiAgentRouterEventConfig","data"],"mappings":";;;;;;;;;;;;AAA2C;AACwB;AAQ9C;AAEgB;AAG9B,MAAMW,aAAaA,GAAG,CAAC,EAC5BC,0BAA0B,EAC1BC,qBAAqB,EACrBC,4BAA4B,EAC5BC,eAAe,EACS;IACxB,qBACE;;YACGF,sBAAsB,MAAM,GAAG,mBAC9B,KAACT,iBAAiBA;gBAAC,eAAa;;kCAC9B,IAACE,gBAAgBA;kCAAEI,4BAA4B;;oBAC9CG,sBAAsB,GAAG,CAACG,CAAAA,kBACzB,KAACX,uBAAuBA;;8CACtB,IAACH,eAAeA;gCACfc,EAAE,IAAI;;2BAFqBA,EAAE,IAAI;;;0BAQ1C,IAACZ,iBAAiBA;0BACfU,6CACC,KAACP,gBAAgBA;;wBACdG,qBAAqB;wBAAE;sCACxB,KAAC;4BAAK,OAAO;gCAAE,YAAY;4BAAI;;gCAAG;gCAAGK;;;;qBAErCH,2BAA2B,MAAM,GAAG,kBACtC;8BACGA,2BAA2B,GAAG,CAACK,CAAAA,0BAC9B,KAACZ,uBAAuBA;;8CACtB,IAACF,OAAOA;8CACR,IAACK,oBAAoBA;8CAClBE,0BAA0B;;8CAE7B,KAACD,oBAAoBA;;wCAAC;wCAAGQ;;;;2BALG,CAAC,gBAAgB,EAAEA,WAAW;mCAUhE,IAACV,gBAAgBA;8BAAEG,kBAAkB;;;;;AAK/C,EAAC;AAEM,MAAMQ,2BAA2BA,GAAG,CACzCC;IAEA,OAAO;QACL,QAAQnB,yBAAyB;QACjC,qBACE;;gBAAE;8BACiB,KAAC;;wBAAK;wBAAGmB,KAAK,oBAAoB;;;;;QAGvD,WAAWR,aAAaA;QACxB,oBAAM,IAACV,WAAWA;QAClB,aAAa;IACf;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent-router/index.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent-router/index.ts"],"sourcesContent":["export * from './ai-agent-router'\nexport * from './types'\n"],"names":[],"mappings":";;AAAiC;AACV"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/ai-agent-router/types.js","sources":["../../../../../../src/components/system-debug-trace/events/ai-agent-router/types.ts"],"sourcesContent":["import type { EventAction } from '@botonic/core'\nimport type { ToolExecuted } from '../ai-agent/types'\nimport type { ChunkIdsGroupedBySourceData } from '../knowledge-bases-types'\n\nexport type { ToolExecuted }\n\nexport interface SpecialistDebugEvent {\n name: string\n description: string\n}\n\nexport interface AiAgentRouterDebugEvent {\n action: EventAction.AiAgentRouter\n flow_node_content_id: string\n tools_executed: ToolExecuted[]\n memory_length: number\n input_guardrails_triggered: string[]\n output_guardrails_triggered: string[]\n exit: boolean\n starting_agent_name: string\n last_agent_name: string\n available_specialists: SpecialistDebugEvent[]\n is_transferred_to_specialist: boolean\n knowledge_base_chunks_with_sources?: ChunkIdsGroupedBySourceData[]\n messageId?: string\n}\n"],"names":[],"mappings":"AAyBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/bot-action.js","sources":["../../../../../src/components/system-debug-trace/events/bot-action.tsx"],"sourcesContent":["import { EventAction } from '@botonic/core'\n\nimport { CodeSvg } from '../icons/code'\nimport type { DebugEventConfig } from '../types'\n\nexport interface BotActionDebugEvent {\n action: EventAction.BotAction\n payload: string\n}\n\nexport const getBotActionEventConfig = (\n data: BotActionDebugEvent\n): DebugEventConfig => {\n const title = (\n <>\n Bot action triggered <span>- {data.payload}</span>\n </>\n )\n\n return {\n action: EventAction.BotAction,\n title,\n component: null,\n icon: <CodeSvg />,\n collapsible: false,\n }\n}\n"],"names":["EventAction","CodeSvg","getBotActionEventConfig","data","title"],"mappings":";;;;;;;;AAA2C;AAEJ;AAQhC,MAAME,uBAAuBA,GAAG,CACrCC;IAEA,MAAMC,sBACJ;;YAAE;0BACqB,KAAC;;oBAAK;oBAAGD,KAAK,OAAO;;;;;IAI9C,OAAO;QACL,QAAQH,qBAAqB;QAC7BI;QACA,WAAW;QACX,oBAAM,IAACH,OAAOA;QACd,aAAa;IACf;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/components/guardrail-item.js","sources":["../../../../../../src/components/system-debug-trace/events/components/guardrail-item.tsx"],"sourcesContent":["import type React from 'react'\n\nimport { HandSvg } from '../../icons'\nimport {\n StyledGuardrailItem,\n StyledGuardrailLabel,\n StyledGuardrailValue,\n} from '../../styles'\nimport { LABELS } from '../constants'\n\ninterface GuardrailItemProps {\n guardrail: string\n keyPrefix: string\n $isLastItem?: boolean\n}\n\nexport const GuardrailItem: React.FC<GuardrailItemProps> = ({\n guardrail,\n keyPrefix,\n $isLastItem,\n}) => (\n <StyledGuardrailItem\n key={`${keyPrefix}-${guardrail}`}\n $isLastItem={$isLastItem}\n >\n <HandSvg />\n <StyledGuardrailLabel>{LABELS.GUARDRAIL_TRIGGERED}</StyledGuardrailLabel>\n <StyledGuardrailValue>- {guardrail}</StyledGuardrailValue>\n </StyledGuardrailItem>\n)\n\ninterface GuardrailListProps {\n guardrails: string[]\n keyPrefix: string\n $isLastItem?: boolean\n}\n\nexport const GuardrailList: React.FC<GuardrailListProps> = ({\n guardrails,\n keyPrefix,\n $isLastItem,\n}) => (\n <>\n {guardrails.map(guardrail => (\n <GuardrailItem\n key={`${keyPrefix}-${guardrail}`}\n guardrail={guardrail}\n keyPrefix={keyPrefix}\n $isLastItem={$isLastItem}\n />\n ))}\n </>\n)\n"],"names":["HandSvg","StyledGuardrailItem","StyledGuardrailLabel","StyledGuardrailValue","LABELS","GuardrailItem","guardrail","keyPrefix","$isLastItem","GuardrailList","guardrails"],"mappings":";;;;;;;;;;AAEqC;AAKhB;AACgB;AAQ9B,MAAMK,aAAaA,GAAiC,CAAC,EAC1DC,SAAS,EACTC,SAAS,EACTC,WAAW,EACZ,iBACC,KAACP,mBAAmBA;QAElB,aAAaO;;0BAEb,IAACR,OAAOA;0BACR,IAACE,oBAAoBA;0BAAEE,0BAA0B;;0BACjD,KAACD,oBAAoBA;;oBAAC;oBAAGG;;;;OALpB,GAAGC,UAAU,CAAC,EAAED,WAAW,EAOnC;AAQM,MAAMG,aAAaA,GAAiC,CAAC,EAC1DC,UAAU,EACVH,SAAS,EACTC,WAAW,EACZ,iBACC;kBACGE,WAAW,GAAG,CAACJ,CAAAA,0BACd,IAACD,aAAaA;gBAEZ,WAAWC;gBACX,WAAWC;gBACX,aAAaC;eAHR,GAAGD,UAAU,CAAC,EAAED,WAAW;OAOvC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components/system-debug-trace/events/components/index.js","sources":["../../../../../../src/components/system-debug-trace/events/components/index.ts"],"sourcesContent":["export * from './guardrail-item'\nexport * from './sources-section'\n"],"names":[],"mappings":";;AAAgC;AACC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type React from 'react';
|
|
2
|
-
import type { HubtypeChunk, HubtypeSource } from '../knowledge-bases-types.js';
|
|
3
|
-
interface SourcesSectionProps {
|
|
4
|
-
sources: HubtypeSource[];
|
|
5
|
-
chunks: HubtypeChunk[];
|
|
6
|
-
getIconForSourceType: (source: HubtypeSource) => React.ReactNode;
|
|
7
|
-
onSeeChunks: () => void;
|
|
8
|
-
label?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const SourcesSection: ({ sources, chunks, getIconForSourceType, onSeeChunks, label, }: SourcesSectionProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
-
export {};
|