@bikdotai/bik-component-library 0.0.807 → 0.0.808-beta.0
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/dist/cjs/assets/icons/AiEdit.svg.js +1 -1
- package/dist/cjs/assets/icons/AiEdit.svg.js.map +1 -1
- package/dist/cjs/assets/icons/Ai_event_generating.svg.js +1 -1
- package/dist/cjs/assets/icons/Ai_event_generating.svg.js.map +1 -1
- package/dist/cjs/assets/icons/Bik_logo.svg.js +1 -1
- package/dist/cjs/assets/icons/Bik_logo.svg.js.map +1 -1
- package/dist/cjs/assets/icons/ChartBar.svg.js +1 -1
- package/dist/cjs/assets/icons/ChartBar.svg.js.map +1 -1
- package/dist/cjs/assets/icons/ChartPie.svg.js +1 -1
- package/dist/cjs/assets/icons/ChartPie.svg.js.map +1 -1
- package/dist/cjs/assets/icons/CheckSquareOffset.svg.js +1 -1
- package/dist/cjs/assets/icons/CheckSquareOffset.svg.js.map +1 -1
- package/dist/cjs/assets/icons/HelpIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/HelpIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/Idea.svg.js +1 -1
- package/dist/cjs/assets/icons/Idea.svg.js.map +1 -1
- package/dist/cjs/assets/icons/OnboardingLogo.js +1 -1
- package/dist/cjs/assets/icons/OnboardingLogo.js.map +1 -1
- package/dist/cjs/assets/icons/RCS_PDF.svg.js +1 -1
- package/dist/cjs/assets/icons/RCS_PDF.svg.js.map +1 -1
- package/dist/cjs/assets/icons/RedirectToNew.svg.js +1 -1
- package/dist/cjs/assets/icons/RedirectToNew.svg.js.map +1 -1
- package/dist/cjs/assets/icons/WhiteStarFilled.svg.js +1 -1
- package/dist/cjs/assets/icons/WhiteStarFilled.svg.js.map +1 -1
- package/dist/cjs/assets/icons/actionButton.svg.js +1 -1
- package/dist/cjs/assets/icons/actionButton.svg.js.map +1 -1
- package/dist/cjs/assets/icons/aiContentIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/aiContentIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/alarm.svg.js +1 -1
- package/dist/cjs/assets/icons/alarm.svg.js.map +1 -1
- package/dist/cjs/assets/icons/alert.svg.js +1 -1
- package/dist/cjs/assets/icons/alert.svg.js.map +1 -1
- package/dist/cjs/assets/icons/alert_triangle.svg.js +1 -1
- package/dist/cjs/assets/icons/alert_triangle.svg.js.map +1 -1
- package/dist/cjs/assets/icons/arrow_back.svg.js +1 -1
- package/dist/cjs/assets/icons/arrow_back.svg.js.map +1 -1
- package/dist/cjs/assets/icons/arrow_down.svg.js +1 -1
- package/dist/cjs/assets/icons/arrow_down.svg.js.map +1 -1
- package/dist/cjs/assets/icons/arrow_left.svg.js +1 -1
- package/dist/cjs/assets/icons/arrow_left.svg.js.map +1 -1
- package/dist/cjs/assets/icons/arrow_up.svg.js +1 -1
- package/dist/cjs/assets/icons/arrow_up.svg.js.map +1 -1
- package/dist/cjs/assets/icons/back_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/back_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/bik_ai_stars_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/bik_ai_stars_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/bik_livechat.svg.js +1 -1
- package/dist/cjs/assets/icons/bik_livechat.svg.js.map +1 -1
- package/dist/cjs/assets/icons/bold.svg.js +1 -1
- package/dist/cjs/assets/icons/bold.svg.js.map +1 -1
- package/dist/cjs/assets/icons/box.svg.js +1 -1
- package/dist/cjs/assets/icons/box.svg.js.map +1 -1
- package/dist/cjs/assets/icons/boxV2.svg.js +1 -1
- package/dist/cjs/assets/icons/boxV2.svg.js.map +1 -1
- package/dist/cjs/assets/icons/box_round.svg.js +1 -1
- package/dist/cjs/assets/icons/box_round.svg.js.map +1 -1
- package/dist/cjs/assets/icons/box_search.svg.js +1 -1
- package/dist/cjs/assets/icons/box_search.svg.js.map +1 -1
- package/dist/cjs/assets/icons/brand_home.svg.js +1 -1
- package/dist/cjs/assets/icons/brand_home.svg.js.map +1 -1
- package/dist/cjs/assets/icons/broken_media_image.svg.js +1 -1
- package/dist/cjs/assets/icons/broken_media_image.svg.js.map +1 -1
- package/dist/cjs/assets/icons/calendar.svg.js +1 -1
- package/dist/cjs/assets/icons/calendar.svg.js.map +1 -1
- package/dist/cjs/assets/icons/card_footer_arraw.svg.js +1 -1
- package/dist/cjs/assets/icons/card_footer_arraw.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chat-channel.svg.js +1 -1
- package/dist/cjs/assets/icons/chat-channel.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chat.svg.js +1 -1
- package/dist/cjs/assets/icons/chat.svg.js.map +1 -1
- package/dist/cjs/assets/icons/check.svg.js +1 -1
- package/dist/cjs/assets/icons/check.svg.js.map +1 -1
- package/dist/cjs/assets/icons/checkCircle.svg.js +1 -1
- package/dist/cjs/assets/icons/checkCircle.svg.js.map +1 -1
- package/dist/cjs/assets/icons/checklistIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/checklistIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronDown.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronDown.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronDownOutline.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronDownOutline.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronLeft.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronLeft.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronLeft2.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronLeft2.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronRight.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronRight.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronRight2.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronRight2.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronRightAlt.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronRightAlt.svg.js.map +1 -1
- package/dist/cjs/assets/icons/chevronUpOutline.svg.js +1 -1
- package/dist/cjs/assets/icons/chevronUpOutline.svg.js.map +1 -1
- package/dist/cjs/assets/icons/circular-cross-icon.svg.js +1 -1
- package/dist/cjs/assets/icons/circular-cross-icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/click.svg.js +1 -1
- package/dist/cjs/assets/icons/click.svg.js.map +1 -1
- package/dist/cjs/assets/icons/clock.svg.js +1 -1
- package/dist/cjs/assets/icons/clock.svg.js.map +1 -1
- package/dist/cjs/assets/icons/copy-code-icon.svg.js +1 -1
- package/dist/cjs/assets/icons/copy-code-icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/cross.svg.js +1 -1
- package/dist/cjs/assets/icons/cross.svg.js.map +1 -1
- package/dist/cjs/assets/icons/cubeIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/cubeIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/cursor.svg.js +1 -1
- package/dist/cjs/assets/icons/cursor.svg.js.map +1 -1
- package/dist/cjs/assets/icons/delete.svg.js +1 -1
- package/dist/cjs/assets/icons/delete.svg.js.map +1 -1
- package/dist/cjs/assets/icons/desktop_custom.svg.js +1 -1
- package/dist/cjs/assets/icons/desktop_custom.svg.js.map +1 -1
- package/dist/cjs/assets/icons/document_pdf.svg.js +1 -1
- package/dist/cjs/assets/icons/document_pdf.svg.js.map +1 -1
- package/dist/cjs/assets/icons/drag_handle.svg.js +1 -1
- package/dist/cjs/assets/icons/drag_handle.svg.js.map +1 -1
- package/dist/cjs/assets/icons/edit.svg.js +1 -1
- package/dist/cjs/assets/icons/edit.svg.js.map +1 -1
- package/dist/cjs/assets/icons/email-channel.svg.js +1 -1
- package/dist/cjs/assets/icons/email-channel.svg.js.map +1 -1
- package/dist/cjs/assets/icons/emoji.svg.js +1 -1
- package/dist/cjs/assets/icons/emoji.svg.js.map +1 -1
- package/dist/cjs/assets/icons/errorIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/errorIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/errorInfo.svg.js +1 -1
- package/dist/cjs/assets/icons/errorInfo.svg.js.map +1 -1
- package/dist/cjs/assets/icons/expressionless_emoji.svg.js +1 -1
- package/dist/cjs/assets/icons/expressionless_emoji.svg.js.map +1 -1
- package/dist/cjs/assets/icons/facebook_channel.svg.js +1 -1
- package/dist/cjs/assets/icons/facebook_channel.svg.js.map +1 -1
- package/dist/cjs/assets/icons/file.svg.js +1 -1
- package/dist/cjs/assets/icons/file.svg.js.map +1 -1
- package/dist/cjs/assets/icons/filePdf.svg.js +1 -1
- package/dist/cjs/assets/icons/filePdf.svg.js.map +1 -1
- package/dist/cjs/assets/icons/gift_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/gift_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/gmail.svg.js +1 -1
- package/dist/cjs/assets/icons/gmail.svg.js.map +1 -1
- package/dist/cjs/assets/icons/graph.svg.js +1 -1
- package/dist/cjs/assets/icons/graph.svg.js.map +1 -1
- package/dist/cjs/assets/icons/grid.svg.js +1 -1
- package/dist/cjs/assets/icons/grid.svg.js.map +1 -1
- package/dist/cjs/assets/icons/halfRectangle.svg.js +1 -1
- package/dist/cjs/assets/icons/halfRectangle.svg.js.map +1 -1
- package/dist/cjs/assets/icons/help.svg.js +1 -1
- package/dist/cjs/assets/icons/help.svg.js.map +1 -1
- package/dist/cjs/assets/icons/home.svg.js +1 -1
- package/dist/cjs/assets/icons/home.svg.js.map +1 -1
- package/dist/cjs/assets/icons/horizontal_dots.svg.js +1 -1
- package/dist/cjs/assets/icons/horizontal_dots.svg.js.map +1 -1
- package/dist/cjs/assets/icons/hover_home.svg.js +1 -1
- package/dist/cjs/assets/icons/hover_home.svg.js.map +1 -1
- package/dist/cjs/assets/icons/image.svg.js +1 -1
- package/dist/cjs/assets/icons/image.svg.js.map +1 -1
- package/dist/cjs/assets/icons/info.svg.js +1 -1
- package/dist/cjs/assets/icons/info.svg.js.map +1 -1
- package/dist/cjs/assets/icons/instagram-channel.svg.js +1 -1
- package/dist/cjs/assets/icons/instagram-channel.svg.js.map +1 -1
- package/dist/cjs/assets/icons/instagram.svg.js +1 -1
- package/dist/cjs/assets/icons/instagram.svg.js.map +1 -1
- package/dist/cjs/assets/icons/italic.svg.js +1 -1
- package/dist/cjs/assets/icons/italic.svg.js.map +1 -1
- package/dist/cjs/assets/icons/list.svg.js +1 -1
- package/dist/cjs/assets/icons/list.svg.js.map +1 -1
- package/dist/cjs/assets/icons/locked.svg.js +1 -1
- package/dist/cjs/assets/icons/locked.svg.js.map +1 -1
- package/dist/cjs/assets/icons/log_out.svg.js +1 -1
- package/dist/cjs/assets/icons/log_out.svg.js.map +1 -1
- package/dist/cjs/assets/icons/lto_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/lto_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/magic-line.svg.js +1 -1
- package/dist/cjs/assets/icons/magic-line.svg.js.map +1 -1
- package/dist/cjs/assets/icons/maximize.svg.js +1 -1
- package/dist/cjs/assets/icons/maximize.svg.js.map +1 -1
- package/dist/cjs/assets/icons/mobile_custom.svg.js +1 -1
- package/dist/cjs/assets/icons/mobile_custom.svg.js.map +1 -1
- package/dist/cjs/assets/icons/more_vertical.svg.js +1 -1
- package/dist/cjs/assets/icons/more_vertical.svg.js.map +1 -1
- package/dist/cjs/assets/icons/openai.svg.js +1 -1
- package/dist/cjs/assets/icons/openai.svg.js.map +1 -1
- package/dist/cjs/assets/icons/paperclip.svg.js +1 -1
- package/dist/cjs/assets/icons/paperclip.svg.js.map +1 -1
- package/dist/cjs/assets/icons/percentage_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/percentage_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/phone.svg.js +1 -1
- package/dist/cjs/assets/icons/phone.svg.js.map +1 -1
- package/dist/cjs/assets/icons/phone_round.svg.js +1 -1
- package/dist/cjs/assets/icons/phone_round.svg.js.map +1 -1
- package/dist/cjs/assets/icons/play.svg.js +1 -1
- package/dist/cjs/assets/icons/play.svg.js.map +1 -1
- package/dist/cjs/assets/icons/plus.svg.js +1 -1
- package/dist/cjs/assets/icons/plus.svg.js.map +1 -1
- package/dist/cjs/assets/icons/pointer.svg.js +1 -1
- package/dist/cjs/assets/icons/pointer.svg.js.map +1 -1
- package/dist/cjs/assets/icons/profile.svg.js +1 -1
- package/dist/cjs/assets/icons/profile.svg.js.map +1 -1
- package/dist/cjs/assets/icons/qrb.svg.js +1 -1
- package/dist/cjs/assets/icons/qrb.svg.js.map +1 -1
- package/dist/cjs/assets/icons/question-mark.svg.js +1 -1
- package/dist/cjs/assets/icons/question-mark.svg.js.map +1 -1
- package/dist/cjs/assets/icons/quotes.svg.js +1 -1
- package/dist/cjs/assets/icons/quotes.svg.js.map +1 -1
- package/dist/cjs/assets/icons/redirect.svg.js +1 -1
- package/dist/cjs/assets/icons/redirect.svg.js.map +1 -1
- package/dist/cjs/assets/icons/refresh-purple.svg.js +1 -1
- package/dist/cjs/assets/icons/refresh-purple.svg.js.map +1 -1
- package/dist/cjs/assets/icons/refresh.svg.js +1 -1
- package/dist/cjs/assets/icons/refresh.svg.js.map +1 -1
- package/dist/cjs/assets/icons/retry.svg.js +1 -1
- package/dist/cjs/assets/icons/retry.svg.js.map +1 -1
- package/dist/cjs/assets/icons/retryIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/retryIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/rewind.svg.js +1 -1
- package/dist/cjs/assets/icons/rewind.svg.js.map +1 -1
- package/dist/cjs/assets/icons/sad_emoji.svg.js +1 -1
- package/dist/cjs/assets/icons/sad_emoji.svg.js.map +1 -1
- package/dist/cjs/assets/icons/search.svg.js +1 -1
- package/dist/cjs/assets/icons/search.svg.js.map +1 -1
- package/dist/cjs/assets/icons/searchIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/searchIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/send.svg.js +1 -1
- package/dist/cjs/assets/icons/send.svg.js.map +1 -1
- package/dist/cjs/assets/icons/send_template.svg.js +1 -1
- package/dist/cjs/assets/icons/send_template.svg.js.map +1 -1
- package/dist/cjs/assets/icons/shipping_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/shipping_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/similar.svg.js +1 -1
- package/dist/cjs/assets/icons/similar.svg.js.map +1 -1
- package/dist/cjs/assets/icons/smile_emoji.svg.js +1 -1
- package/dist/cjs/assets/icons/smile_emoji.svg.js.map +1 -1
- package/dist/cjs/assets/icons/smiley_emoji.svg.js +1 -1
- package/dist/cjs/assets/icons/smiley_emoji.svg.js.map +1 -1
- package/dist/cjs/assets/icons/sparkle.svg.js +1 -1
- package/dist/cjs/assets/icons/sparkle.svg.js.map +1 -1
- package/dist/cjs/assets/icons/speedometer.svg.js +1 -1
- package/dist/cjs/assets/icons/speedometer.svg.js.map +1 -1
- package/dist/cjs/assets/icons/starEmpty.svg.js +1 -1
- package/dist/cjs/assets/icons/starEmpty.svg.js.map +1 -1
- package/dist/cjs/assets/icons/starFilled.svg.js +1 -1
- package/dist/cjs/assets/icons/starFilled.svg.js.map +1 -1
- package/dist/cjs/assets/icons/starFilledV2.svg.js +1 -1
- package/dist/cjs/assets/icons/starFilledV2.svg.js.map +1 -1
- package/dist/cjs/assets/icons/state_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/state_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/strikeThrough.svg.js +1 -1
- package/dist/cjs/assets/icons/strikeThrough.svg.js.map +1 -1
- package/dist/cjs/assets/icons/sub_category.svg.js +1 -1
- package/dist/cjs/assets/icons/sub_category.svg.js.map +1 -1
- package/dist/cjs/assets/icons/successIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/successIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/sync.svg.js +1 -1
- package/dist/cjs/assets/icons/sync.svg.js.map +1 -1
- package/dist/cjs/assets/icons/task.svg.js +1 -1
- package/dist/cjs/assets/icons/task.svg.js.map +1 -1
- package/dist/cjs/assets/icons/text_t9.svg.js +1 -1
- package/dist/cjs/assets/icons/text_t9.svg.js.map +1 -1
- package/dist/cjs/assets/icons/thumb-down-line.svg.js +1 -1
- package/dist/cjs/assets/icons/thumb-down-line.svg.js.map +1 -1
- package/dist/cjs/assets/icons/thumb-up-line.svg.js +1 -1
- package/dist/cjs/assets/icons/thumb-up-line.svg.js.map +1 -1
- package/dist/cjs/assets/icons/tick.svg.js +1 -1
- package/dist/cjs/assets/icons/tick.svg.js.map +1 -1
- package/dist/cjs/assets/icons/tick_double.svg.js +1 -1
- package/dist/cjs/assets/icons/tick_double.svg.js.map +1 -1
- package/dist/cjs/assets/icons/triangle_error.svg.js +1 -1
- package/dist/cjs/assets/icons/triangle_error.svg.js.map +1 -1
- package/dist/cjs/assets/icons/undo.svg.js +1 -1
- package/dist/cjs/assets/icons/undo.svg.js.map +1 -1
- package/dist/cjs/assets/icons/union.svg.js +1 -1
- package/dist/cjs/assets/icons/union.svg.js.map +1 -1
- package/dist/cjs/assets/icons/upload.svg.js +1 -1
- package/dist/cjs/assets/icons/upload.svg.js.map +1 -1
- package/dist/cjs/assets/icons/user_icon.svg.js +1 -1
- package/dist/cjs/assets/icons/user_icon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/vertical_dots.svg.js +1 -1
- package/dist/cjs/assets/icons/vertical_dots.svg.js.map +1 -1
- package/dist/cjs/assets/icons/videoRecorder.svg.js +1 -1
- package/dist/cjs/assets/icons/videoRecorder.svg.js.map +1 -1
- package/dist/cjs/assets/icons/video_camcorder.svg.js +1 -1
- package/dist/cjs/assets/icons/video_camcorder.svg.js.map +1 -1
- package/dist/cjs/assets/icons/warning.svg.js +1 -1
- package/dist/cjs/assets/icons/warning.svg.js.map +1 -1
- package/dist/cjs/assets/icons/warningIcon.svg.js +1 -1
- package/dist/cjs/assets/icons/warningIcon.svg.js.map +1 -1
- package/dist/cjs/assets/icons/website.svg.js +1 -1
- package/dist/cjs/assets/icons/website.svg.js.map +1 -1
- package/dist/cjs/assets/icons/whatsNew.svg.js +1 -1
- package/dist/cjs/assets/icons/whatsNew.svg.js.map +1 -1
- package/dist/cjs/assets/icons/whatsapp-channel.svg.js +1 -1
- package/dist/cjs/assets/icons/whatsapp-channel.svg.js.map +1 -1
- package/dist/cjs/assets/icons/whatsapp_color.svg.js +1 -1
- package/dist/cjs/assets/icons/whatsapp_color.svg.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/scrollHooks.js +1 -1
- package/dist/cjs/components/BikGiftedChat/GiftedChat/scrollHooks.js.map +1 -1
- package/dist/cjs/components/InfiniteScroll/InfiniteScroll.js +1 -1
- package/dist/cjs/components/InfiniteScroll/InfiniteScroll.js.map +1 -1
- package/dist/cjs/components/ProgressChecklist/MultiChecklistItem.js +1 -1
- package/dist/cjs/components/ProgressChecklist/MultiChecklistItem.js.map +1 -1
- package/dist/cjs/components/ProgressChecklist/ProgressChecklist.js +1 -1
- package/dist/cjs/components/ProgressChecklist/ProgressChecklist.js.map +1 -1
- package/dist/cjs/components/ProgressChecklist/ProgressStepper.js +1 -1
- package/dist/cjs/components/ProgressChecklist/ProgressStepper.js.map +1 -1
- package/dist/cjs/components/ProgressChecklist/SimpleChecklistItem.js +1 -1
- package/dist/cjs/components/ProgressChecklist/SimpleChecklistItem.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/CustomField/components/CustomField.js +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/CustomField/components/CustomField.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/Event/components/EventFilter.js +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/Event/components/EventFilter.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/Segment/components/SegmentFilter.js +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/Segment/components/SegmentFilter.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/UserProperty/components/UserPropertyFilter.js +1 -1
- package/dist/cjs/components/QueryBuilder/Filters/UserProperty/components/UserPropertyFilter.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/QueryBuilder.js +1 -1
- package/dist/cjs/components/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.js +1 -1
- package/dist/cjs/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/AddNodeButton.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/AddNodeButton.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/AllowedListDropdown.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/AllowedListDropdown.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/EmojiPicker.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/EmojiPicker.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/FreeText.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/FreeText.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/FrequencyIntegerPositiveSingle.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/FrequencyIntegerPositiveSingle.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/IgPicker.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/InTheLast.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/InTheLast.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/InTwoLast.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/InTwoLast.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/IntegerPositiveSingle.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/IntegerPositiveSingle.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/IntegerSingleValue.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/IntegerSingleValue.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/MultiselectDropdownFreeText.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/MultiselectDropdownFreeText.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/NumberTime.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/NumberTime.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/SingleDate.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/SingleDate.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/SingleselectDropdownFreeText.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/SingleselectDropdownFreeText.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/StringSingleValue.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/StringSingleValue.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/TwoDate.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/TwoDate.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/TwoNumberInputsSeperatedByAnd.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Components/TwoNumberInputsSeperatedByAnd.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Connector.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/Connectors/Connector.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/DeleteButton.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/DeleteButton.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/DropdownWrapper.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/DropdownWrapper.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/InputLoader.js +4 -4
- package/dist/cjs/components/QueryBuilder/components/InputLoader.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/AddPropertyButton.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/AddPropertyButton.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNodeUIWrapper.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNodeUIWrapper.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNodes.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNodes.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNodes.js.map +1 -1
- package/dist/cjs/components/QueryBuilder/hooks/useQueryBuilderCache.js +1 -1
- package/dist/cjs/components/QueryBuilder/hooks/useQueryBuilderCache.js.map +1 -1
- package/dist/cjs/components/SearchFilter/components/DatePickerButton.js.map +1 -1
- package/dist/cjs/components/SearchFilter/components/DateRangeOnlyButton.js.map +1 -1
- package/dist/cjs/components/SearchFilter/components/FilterChipListRenderer.js +1 -1
- package/dist/cjs/components/SearchFilter/components/FilterChipListRenderer.js.map +1 -1
- package/dist/cjs/components/SearchFilter/index.js +1 -1
- package/dist/cjs/components/SearchFilter/index.js.map +1 -1
- package/dist/cjs/components/TablePagination/TablePagination.js +1 -1
- package/dist/cjs/components/TablePagination/TablePagination.js.map +1 -1
- package/dist/cjs/components/TablePagination/TablePagination.styled.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/AIRephrase.styled.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/BorderAnimation.js +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/BorderAnimation.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +1 -1
- package/dist/cjs/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
- package/dist/cjs/components/access-token-troubleshoot-dialog/AccessTokenTroubleshootDialog.js +1 -1
- package/dist/cjs/components/access-token-troubleshoot-dialog/AccessTokenTroubleshootDialog.js.map +1 -1
- package/dist/cjs/components/accordion/Accordion.js.map +1 -1
- package/dist/cjs/components/action-button/ActionButton.styled.js.map +1 -1
- package/dist/cjs/components/action-button/ActionButtons.js +1 -1
- package/dist/cjs/components/action-button/ActionButtons.js.map +1 -1
- package/dist/cjs/components/add-variableV2/AddVariableV2.js +1 -1
- package/dist/cjs/components/add-variableV2/AddVariableV2.js.map +1 -1
- package/dist/cjs/components/ai-modals/ActivateBikAI.js +1 -1
- package/dist/cjs/components/ai-modals/ActivateBikAI.js.map +1 -1
- package/dist/cjs/components/ai-modals/AiCreditsExhausted.js +1 -1
- package/dist/cjs/components/ai-modals/AiCreditsExhausted.js.map +1 -1
- package/dist/cjs/components/ai-modals/AiCreditsLow.js +1 -1
- package/dist/cjs/components/ai-modals/AiCreditsLow.js.map +1 -1
- package/dist/cjs/components/ai-modals/AiSyncProgress.js +1 -1
- package/dist/cjs/components/ai-modals/AiSyncProgress.js.map +1 -1
- package/dist/cjs/components/analytics-card/AnalyticsCard.styled.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsDropdown.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsDropdown.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsMetric.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsMetric.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsTrend.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsTrend.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Legend/Legend.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Legend/Legend.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Pie/PieChart.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Pie/PieChart.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarChart.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarChart.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/VerticalBarAndLinearGraph/VerticalBarAndLinearGraph.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/VerticalBarAndLinearGraph/VerticalBarAndLinearGraph.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/FunnelVerticalBarGraph.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/FunnelVerticalBarGraph.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMap.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMap.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMapVertical.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMapVertical.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/linearChipGroupedChart/LinearChipGroupedChart.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/linearChipGroupedChart/LinearChipGroupedChart.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/scoreBlock/Chip.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/scoreBlock/Chip.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/scoreBlock/HorizontalBar.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/scoreBlock/HorizontalBar.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/scoreBlock/ScoreBlock.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/scoreBlock/ScoreBlock.js.map +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/utils/calcPercentage.js +1 -1
- package/dist/cjs/components/analytics-chips-and-dropdowns/chart/utils/calcPercentage.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/components/AIChat.js +1 -1
- package/dist/cjs/components/bik-chatbot/components/AIChat.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/components/BIKChatbot.js +1 -1
- package/dist/cjs/components/bik-chatbot/components/BIKChatbot.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/components/ChatLoadingState.js +1 -1
- package/dist/cjs/components/bik-chatbot/components/ChatLoadingState.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/components/ChatWindow.js +1 -1
- package/dist/cjs/components/bik-chatbot/components/ChatWindow.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/components/ThinkingIndicator.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/contexts/AIContext.js +1 -1
- package/dist/cjs/components/bik-chatbot/contexts/AIContext.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/services/aiService.js +1 -1
- package/dist/cjs/components/bik-chatbot/services/aiService.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/services/callToChatbot.js +1 -1
- package/dist/cjs/components/bik-chatbot/services/callToChatbot.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/services/db.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/services/useAIChat.js +1 -1
- package/dist/cjs/components/bik-chatbot/services/useAIChat.js.map +1 -1
- package/dist/cjs/components/bik-chatbot/utils/guardrails.js.map +1 -1
- package/dist/cjs/components/bik-layout/BikLayout.js.map +1 -1
- package/dist/cjs/components/bik-layout/BikSidebar.js +1 -1
- package/dist/cjs/components/bik-layout/BikSidebar.js.map +1 -1
- package/dist/cjs/components/bik-layout/SimpleSidebar.js.map +1 -1
- package/dist/cjs/components/button/Button.styled.js.map +1 -1
- package/dist/cjs/components/button/themes.js +1 -1
- package/dist/cjs/components/button/themes.js.map +1 -1
- package/dist/cjs/components/carousel-preview/CarouselPreview.js +1 -1
- package/dist/cjs/components/carousel-preview/CarouselPreview.js.map +1 -1
- package/dist/cjs/components/carousel-preview/CarouselPreviewCard.js +1 -1
- package/dist/cjs/components/carousel-preview/CarouselPreviewCard.js.map +1 -1
- package/dist/cjs/components/carousel-secondary/CarouselSecondary.js +1 -1
- package/dist/cjs/components/carousel-secondary/CarouselSecondary.js.map +1 -1
- package/dist/cjs/components/code-block/CodeBlock.js +1 -1
- package/dist/cjs/components/code-block/CodeBlock.js.map +1 -1
- package/dist/cjs/components/code-block/CodeBlock.styled.js +33 -33
- package/dist/cjs/components/code-block/CodeBlock.styled.js.map +1 -1
- package/dist/cjs/components/code-block/CodeBlockHelper.js +1 -1
- package/dist/cjs/components/code-block/CodeBlockHelper.js.map +1 -1
- package/dist/cjs/components/country-code-picker/CountryPicker.js +1 -1
- package/dist/cjs/components/country-code-picker/CountryPicker.js.map +1 -1
- package/dist/cjs/components/custom-date-time/CustomDateTime.js.map +1 -1
- package/dist/cjs/components/dashboard-review-popup/DashboardReviewPopUp.js +1 -1
- package/dist/cjs/components/dashboard-review-popup/DashboardReviewPopUp.js.map +1 -1
- package/dist/cjs/components/dashboard-review-popup/components/FiveStar.js +1 -1
- package/dist/cjs/components/dashboard-review-popup/components/FiveStar.js.map +1 -1
- package/dist/cjs/components/dashboard-review-popup/components/Form.js +1 -1
- package/dist/cjs/components/dashboard-review-popup/components/Form.js.map +1 -1
- package/dist/cjs/components/dashboard-review-popup/components/ZeroState.js +1 -1
- package/dist/cjs/components/dashboard-review-popup/components/ZeroState.js.map +1 -1
- package/dist/cjs/components/data-source-panel/DataSourceInfoFooter.js.map +1 -1
- package/dist/cjs/components/data-source-panel/DataSourcePanel.js +1 -1
- package/dist/cjs/components/data-source-panel/DataSourcePanel.js.map +1 -1
- package/dist/cjs/components/datePicker/DatePicker.js +1 -1
- package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/datePicker/DatePickerWrapper.js +1 -1
- package/dist/cjs/components/datePicker/DatePickerWrapper.js.map +1 -1
- package/dist/cjs/components/datePicker/TimePicker.js +1 -1
- package/dist/cjs/components/datePicker/TimePicker.js.map +1 -1
- package/dist/cjs/components/discount-modal/DiscountModal.js.map +1 -1
- package/dist/cjs/components/discount-modal/DiscountUtils.js.map +1 -1
- package/dist/cjs/components/discount-modal/DynamicCoupon/DynamicCoupon.js.map +1 -1
- package/dist/cjs/components/discount-modal/DynamicCoupon/DynamicCoupon.styled.js +6 -6
- package/dist/cjs/components/discount-modal/DynamicCoupon/DynamicCoupon.styled.js.map +1 -1
- package/dist/cjs/components/discount-modal/StaticCoupon/StaticCoupon.js.map +1 -1
- package/dist/cjs/components/dot-pulse/DotPulse.js +2 -2
- package/dist/cjs/components/dot-pulse/DotPulse.js.map +1 -1
- package/dist/cjs/components/dropShadow/DropShadow.js +1 -1
- package/dist/cjs/components/dropShadow/DropShadow.js.map +1 -1
- package/dist/cjs/components/dropdown/ChipDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/ChipInput.js +1 -1
- package/dist/cjs/components/dropdown/ChipInput.js.map +1 -1
- package/dist/cjs/components/dropdown/Common.styled.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +5 -5
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +1 -1
- package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
- package/dist/cjs/components/dropdown/hooks/useDropdown.js +1 -1
- package/dist/cjs/components/dropdown/hooks/useDropdown.js.map +1 -1
- package/dist/cjs/components/dynamic-tabs/DynamicTabs.js.map +1 -1
- package/dist/cjs/components/fab-menu/FABMenu.js.map +1 -1
- package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js +1 -1
- package/dist/cjs/components/feature-announcements/FeatureAnnouncementProvider.js.map +1 -1
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js +1 -1
- package/dist/cjs/components/feature-announcements/MajorUpdatePopup.js.map +1 -1
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js +1 -1
- package/dist/cjs/components/feature-announcements/MinorUpdatePopup.js.map +1 -1
- package/dist/cjs/components/feature-announcements/VideoModal.js +1 -1
- package/dist/cjs/components/feature-announcements/VideoModal.js.map +1 -1
- package/dist/cjs/components/feature-announcements/constants/animations.js.map +1 -1
- package/dist/cjs/components/feature-announcements/hooks/useFeatureAnnouncements.js +1 -1
- package/dist/cjs/components/feature-announcements/hooks/useFeatureAnnouncements.js.map +1 -1
- package/dist/cjs/components/feature-announcements/styles/majorPopup.styles.js +1 -1
- package/dist/cjs/components/feature-announcements/styles/majorPopup.styles.js.map +1 -1
- package/dist/cjs/components/feature-announcements/styles/minorPopup.styles.js.map +1 -1
- package/dist/cjs/components/feature-announcements/utils/animationHelpers.js +1 -1
- package/dist/cjs/components/feature-announcements/utils/animationHelpers.js.map +1 -1
- package/dist/cjs/components/feature-announcements/utils/elementHelpers.js +1 -1
- package/dist/cjs/components/feature-announcements/utils/elementHelpers.js.map +1 -1
- package/dist/cjs/components/file-uploader/FileUploader.js.map +1 -1
- package/dist/cjs/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
- package/dist/cjs/components/floating-input-dropdown/FloatingInputDropdown.js +4 -4
- package/dist/cjs/components/floating-input-dropdown/FloatingInputDropdown.js.map +1 -1
- package/dist/cjs/components/half-doughnut-chart/HalfDoughnutChart.js +1 -1
- package/dist/cjs/components/half-doughnut-chart/HalfDoughnutChart.js.map +1 -1
- package/dist/cjs/components/helpers/FileUploaderHelper.js.map +1 -1
- package/dist/cjs/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/cjs/components/image-cropper/BikImagePipeline/BikImagePipeline.js +1 -1
- package/dist/cjs/components/image-cropper/BikImagePipeline/BikImagePipeline.js.map +1 -1
- package/dist/cjs/components/input/ChipInput.js +1 -1
- package/dist/cjs/components/input/ChipInput.js.map +1 -1
- package/dist/cjs/components/input/ChipInput.styled.js.map +1 -1
- package/dist/cjs/components/input/Input-helper.js +1 -1
- package/dist/cjs/components/input/Input-helper.js.map +1 -1
- package/dist/cjs/components/input/Input.js +1 -1
- package/dist/cjs/components/input/Input.js.map +1 -1
- package/dist/cjs/components/input/Input.styled.js +1 -1
- package/dist/cjs/components/input/Input.styled.js.map +1 -1
- package/dist/cjs/components/input-with-vars/InputWithVariables.js +1 -1
- package/dist/cjs/components/input-with-vars/InputWithVariables.js.map +1 -1
- package/dist/cjs/components/list-item/themes.js.map +1 -1
- package/dist/cjs/components/markdown/MarkdownRender.js +1 -1
- package/dist/cjs/components/markdown/MarkdownRender.js.map +1 -1
- package/dist/cjs/components/markdown/utils.js +1 -1
- package/dist/cjs/components/markdown/utils.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuItem.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuItem.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuList.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MenuList.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js +20 -20
- package/dist/cjs/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/cjs/components/navigation-hyperlink/NavigationHyperlink.js.map +1 -1
- package/dist/cjs/components/plans/NewSubscriptionPlan.js.map +1 -1
- package/dist/cjs/components/plans/SubscriptionPlan.js.map +1 -1
- package/dist/cjs/components/plans/SubscriptionPlansCollected.js +1 -1
- package/dist/cjs/components/plans/SubscriptionPlansCollected.js.map +1 -1
- package/dist/cjs/components/post-live-checklist/PostLiveChecklist.js +1 -1
- package/dist/cjs/components/post-live-checklist/PostLiveChecklist.js.map +1 -1
- package/dist/cjs/components/postPicker/postPicker.js.map +1 -1
- package/dist/cjs/components/product-picker/ProductPickerModal.js +1 -1
- package/dist/cjs/components/product-picker/ProductPickerModal.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/emptyState.js +1 -1
- package/dist/cjs/components/product-picker-v2/emptyState.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/helpers/ProductHelper.js +1 -1
- package/dist/cjs/components/product-picker-v2/helpers/ProductHelper.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/modal.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/product.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/productInfoOverlay.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/utility.js +1 -1
- package/dist/cjs/components/product-picker-v2/utility.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/variant.js.map +1 -1
- package/dist/cjs/components/product-picker-v2/variantComponents.js +1 -1
- package/dist/cjs/components/product-picker-v2/variantComponents.js.map +1 -1
- package/dist/cjs/components/progress-bar/CircularProgressBar.js +1 -1
- package/dist/cjs/components/progress-bar/CircularProgressBar.js.map +1 -1
- package/dist/cjs/components/progress-bar-v2/ProgressBarV2.js.map +1 -1
- package/dist/cjs/components/resizeImage/index.js +1 -1
- package/dist/cjs/components/resizeImage/index.js.map +1 -1
- package/dist/cjs/components/shimmer-image/ShimmerImage.js +1 -1
- package/dist/cjs/components/shimmer-image/ShimmerImage.js.map +1 -1
- package/dist/cjs/components/side-modal/SideModal.style.js +16 -16
- package/dist/cjs/components/side-modal/SideModal.style.js.map +1 -1
- package/dist/cjs/components/slider/slider.js +1 -1
- package/dist/cjs/components/slider/slider.js.map +1 -1
- package/dist/cjs/components/spinner/Spinner.js +1 -1
- package/dist/cjs/components/spinner/Spinner.js.map +1 -1
- package/dist/cjs/components/star-rating/Star.js +1 -1
- package/dist/cjs/components/star-rating/Star.js.map +1 -1
- package/dist/cjs/components/star-rating/StarRating.js +1 -1
- package/dist/cjs/components/star-rating/StarRating.js.map +1 -1
- package/dist/cjs/components/states/StateComponent.styled.js.map +1 -1
- package/dist/cjs/components/stepper/Stepper.js.map +1 -1
- package/dist/cjs/components/stepper/themes.js.map +1 -1
- package/dist/cjs/components/switch/Switch.js +1 -1
- package/dist/cjs/components/switch/Switch.js.map +1 -1
- package/dist/cjs/components/tabs/Tabs.styles.js.map +1 -1
- package/dist/cjs/components/tag/Tag.js +1 -1
- package/dist/cjs/components/tag/Tag.js.map +1 -1
- package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/TemplateContextMapper.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/helpers/WebpushTemplateHelper.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/Body.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/DesktopPreview.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/DesktopPreview.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditMediaModal.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditMediaModal.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditWebpushTemplate.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditWebpushTemplate.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditWhatsAppCarouselTemplateV2.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditWhatsAppCarouselTemplateV2.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditWhatsAppTemplateV2.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/EditWhatsAppTemplateV2.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/Footer.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/Footer.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/Header.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/Header.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/MobilePreview.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/MobilePreview.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/TemplateAnalyticsComponent.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/TemplateAnalyticsComponent.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/TemplateSelectModalContent.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/TemplateSelectModalContent.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/VariableConnector.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/VariableConnectorWhatsApp.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/VariableConnectorsPanel.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/VariableConnectorsPanel.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/VariableEditorHeader.js +2 -2
- package/dist/cjs/components/template-context-mapper/modalElements/VariableEditorHeader.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/WhatsAppTemplateCardButtonV2.js +1 -1
- package/dist/cjs/components/template-context-mapper/modalElements/WhatsAppTemplateCardButtonV2.js.map +1 -1
- package/dist/cjs/components/template-context-mapper/styles/TemplateAnalyticsStyles.js.map +1 -1
- package/dist/cjs/components/template-preview/EmailTemplatePreview.styled.js.map +1 -1
- package/dist/cjs/components/template-preview/EmailTemplateThumbnailPreview.js +1 -1
- package/dist/cjs/components/template-preview/EmailTemplateThumbnailPreview.js.map +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSButtons.js +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSButtons.js.map +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSMediaCard.js +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSMediaCard.js.map +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
- package/dist/cjs/components/template-preview/RCS/RCSTemplateLikePreview.js.map +1 -1
- package/dist/cjs/components/template-preview/SmsTemplatePreview.js +1 -1
- package/dist/cjs/components/template-preview/SmsTemplatePreview.js.map +1 -1
- package/dist/cjs/components/template-preview/TemplatePreview.js +1 -1
- package/dist/cjs/components/template-preview/TemplatePreview.js.map +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/ChatBtn.js +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/ChatBtn.js.map +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/MediaCard.js +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/MediaCard.js.map +1 -1
- package/dist/cjs/components/template-preview/WhatsApp/WhatsAppLikePreviewV2.js.map +1 -1
- package/dist/cjs/components/template-preview/WhatsAppTemplatePreview.js +1 -1
- package/dist/cjs/components/template-preview/WhatsAppTemplatePreview.js.map +1 -1
- package/dist/cjs/components/template-preview/constants/TemplateConstants.js.map +1 -1
- package/dist/cjs/components/template-preview/helpers/SmsTemplateHelper.js +1 -1
- package/dist/cjs/components/template-preview/helpers/SmsTemplateHelper.js.map +1 -1
- package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
- package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.js.map +1 -1
- package/dist/cjs/components/template-preview/helpers/VariableEditorHelper.js +1 -1
- package/dist/cjs/components/template-preview/helpers/VariableEditorHelper.js.map +1 -1
- package/dist/cjs/components/template-preview/utils/TemplateHelperUtils.js +1 -1
- package/dist/cjs/components/template-preview/utils/TemplateHelperUtils.js.map +1 -1
- package/dist/cjs/components/template-preview/webpush/WebpushPreview.js.map +1 -1
- package/dist/cjs/components/text-picker/TextPickerCategoryCard.js +5 -5
- package/dist/cjs/components/text-picker/TextPickerCategoryCard.js.map +1 -1
- package/dist/cjs/components/text-picker/TextPickerFooter.js +3 -3
- package/dist/cjs/components/text-picker/TextPickerFooter.js.map +1 -1
- package/dist/cjs/components/text-picker/TextPickerItemRow.js +4 -4
- package/dist/cjs/components/text-picker/TextPickerItemRow.js.map +1 -1
- package/dist/cjs/components/text-picker/TextPickerModal.js.map +1 -1
- package/dist/cjs/components/text-picker/TextPickerSelectAllRow.js +4 -4
- package/dist/cjs/components/text-picker/TextPickerSelectAllRow.js.map +1 -1
- package/dist/cjs/components/toaster/Toaster.js.map +1 -1
- package/dist/cjs/components/tooltips/Tooltip.js +1 -1
- package/dist/cjs/components/tooltips/Tooltip.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/NoResult.js.map +1 -1
- package/dist/cjs/components/variable-picker-v3/searchVariables.js +1 -1
- package/dist/cjs/components/variable-picker-v3/searchVariables.js.map +1 -1
- package/dist/cjs/components/vertical-full-screen-modal/component.js +1 -1
- package/dist/cjs/components/vertical-full-screen-modal/component.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewButton.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNewButton.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewPanel.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNewPanel.js.map +1 -1
- package/dist/cjs/components/whats-new/WhatsNewProvider.js +1 -1
- package/dist/cjs/components/whats-new/WhatsNewProvider.js.map +1 -1
- package/dist/cjs/components/whats-new/useWhatsNew.js +1 -1
- package/dist/cjs/components/whats-new/useWhatsNew.js.map +1 -1
- package/dist/cjs/editor/BikEditor.js +1 -1
- package/dist/cjs/editor/BikEditor.js.map +1 -1
- package/dist/cjs/editor/BikEditor.styles.js +2 -2
- package/dist/cjs/editor/BikEditor.styles.js.map +1 -1
- package/dist/cjs/editor/extensions/FontSizeExtension.js +1 -1
- package/dist/cjs/editor/extensions/FontSizeExtension.js.map +1 -1
- package/dist/cjs/editor/extensions/editorDropdown.styles.js +5 -5
- package/dist/cjs/editor/extensions/editorDropdown.styles.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js +1 -1
- package/dist/cjs/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/cjs/editor/extensions/sectionDivider/SectionDividerNode.js +1 -1
- package/dist/cjs/editor/extensions/sectionDivider/SectionDividerNode.js.map +1 -1
- package/dist/cjs/editor/extensions/slashCommand/SlashCommandExtension.js +1 -1
- package/dist/cjs/editor/extensions/slashCommand/SlashCommandExtension.js.map +1 -1
- package/dist/cjs/editor/extensions/slashCommand/SlashCommandMenu.js +1 -1
- package/dist/cjs/editor/extensions/slashCommand/SlashCommandMenu.js.map +1 -1
- package/dist/cjs/editor/extensions/suggestionPopup.js.map +1 -1
- package/dist/cjs/editor/floating/LinkBubbleMenu.js +1 -1
- package/dist/cjs/editor/floating/LinkBubbleMenu.js.map +1 -1
- package/dist/cjs/editor/serializers/toLiveChatText.js.map +1 -1
- package/dist/cjs/editor/serializers/toWhatsAppText.js.map +1 -1
- package/dist/cjs/editor/toolbar/BikEditorToolbar.js +1 -1
- package/dist/cjs/editor/toolbar/BikEditorToolbar.js.map +1 -1
- package/dist/cjs/helpers/BaseWhatsappContentLang.helper.js.map +1 -1
- package/dist/cjs/hooks/useCurreny.js +1 -1
- package/dist/cjs/hooks/useCurreny.js.map +1 -1
- package/dist/cjs/hooks/useOutside.js +1 -1
- package/dist/cjs/hooks/useOutside.js.map +1 -1
- package/dist/cjs/src/amplitude/Track.stories.d.ts +5 -3
- package/dist/cjs/src/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/cjs/src/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
- package/dist/cjs/src/components/banner/Banner.stories.d.ts +38 -8
- package/dist/cjs/src/components/post-live-checklist/PostLiveChecklist.stories.d.ts +104 -11
- package/dist/cjs/src/components/shimmer-image/ShimmerImage.stories.d.ts +15 -5
- package/dist/cjs/src/components/tag/Tag.stories.d.ts +54 -21
- package/dist/cjs/utils/DateUtils.js +1 -1
- package/dist/cjs/utils/DateUtils.js.map +1 -1
- package/dist/cjs/utils/StringUtils.js +1 -1
- package/dist/cjs/utils/StringUtils.js.map +1 -1
- package/dist/cjs/utils/logging/ErrorConstructor/CustomError.js +1 -1
- package/dist/cjs/utils/logging/ErrorConstructor/CustomError.js.map +1 -1
- package/dist/cjs/utils/logging/ErrorConstructor/FirebaseCallError.js.map +1 -1
- package/dist/cjs/utils/logging/ErrorConstructor/FirebaseSubscriptionError.js.map +1 -1
- package/dist/cjs/utils/logging/Logger.js +1 -1
- package/dist/cjs/utils/logging/Logger.js.map +1 -1
- package/dist/esm/assets/icons/AiEdit.svg.js +1 -1
- package/dist/esm/assets/icons/AiEdit.svg.js.map +1 -1
- package/dist/esm/assets/icons/Ai_event_generating.svg.js +1 -1
- package/dist/esm/assets/icons/Ai_event_generating.svg.js.map +1 -1
- package/dist/esm/assets/icons/Bik_logo.svg.js +1 -1
- package/dist/esm/assets/icons/Bik_logo.svg.js.map +1 -1
- package/dist/esm/assets/icons/ChartBar.svg.js +1 -1
- package/dist/esm/assets/icons/ChartBar.svg.js.map +1 -1
- package/dist/esm/assets/icons/ChartPie.svg.js +1 -1
- package/dist/esm/assets/icons/ChartPie.svg.js.map +1 -1
- package/dist/esm/assets/icons/CheckSquareOffset.svg.js +1 -1
- package/dist/esm/assets/icons/CheckSquareOffset.svg.js.map +1 -1
- package/dist/esm/assets/icons/HelpIcon.svg.js +1 -1
- package/dist/esm/assets/icons/HelpIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/Idea.svg.js +1 -1
- package/dist/esm/assets/icons/Idea.svg.js.map +1 -1
- package/dist/esm/assets/icons/OnboardingLogo.js +1 -1
- package/dist/esm/assets/icons/OnboardingLogo.js.map +1 -1
- package/dist/esm/assets/icons/RCS_PDF.svg.js +1 -1
- package/dist/esm/assets/icons/RCS_PDF.svg.js.map +1 -1
- package/dist/esm/assets/icons/RedirectToNew.svg.js +1 -1
- package/dist/esm/assets/icons/RedirectToNew.svg.js.map +1 -1
- package/dist/esm/assets/icons/WhiteStarFilled.svg.js +1 -1
- package/dist/esm/assets/icons/WhiteStarFilled.svg.js.map +1 -1
- package/dist/esm/assets/icons/actionButton.svg.js +1 -1
- package/dist/esm/assets/icons/actionButton.svg.js.map +1 -1
- package/dist/esm/assets/icons/aiContentIcon.svg.js +1 -1
- package/dist/esm/assets/icons/aiContentIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/alarm.svg.js +1 -1
- package/dist/esm/assets/icons/alarm.svg.js.map +1 -1
- package/dist/esm/assets/icons/alert.svg.js +1 -1
- package/dist/esm/assets/icons/alert.svg.js.map +1 -1
- package/dist/esm/assets/icons/alert_triangle.svg.js +1 -1
- package/dist/esm/assets/icons/alert_triangle.svg.js.map +1 -1
- package/dist/esm/assets/icons/arrow_back.svg.js +1 -1
- package/dist/esm/assets/icons/arrow_back.svg.js.map +1 -1
- package/dist/esm/assets/icons/arrow_down.svg.js +1 -1
- package/dist/esm/assets/icons/arrow_down.svg.js.map +1 -1
- package/dist/esm/assets/icons/arrow_left.svg.js +1 -1
- package/dist/esm/assets/icons/arrow_left.svg.js.map +1 -1
- package/dist/esm/assets/icons/arrow_up.svg.js +1 -1
- package/dist/esm/assets/icons/arrow_up.svg.js.map +1 -1
- package/dist/esm/assets/icons/back_icon.svg.js +1 -1
- package/dist/esm/assets/icons/back_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/bik_ai_stars_icon.svg.js +1 -1
- package/dist/esm/assets/icons/bik_ai_stars_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/bik_livechat.svg.js +1 -1
- package/dist/esm/assets/icons/bik_livechat.svg.js.map +1 -1
- package/dist/esm/assets/icons/bold.svg.js +1 -1
- package/dist/esm/assets/icons/bold.svg.js.map +1 -1
- package/dist/esm/assets/icons/box.svg.js +1 -1
- package/dist/esm/assets/icons/box.svg.js.map +1 -1
- package/dist/esm/assets/icons/boxV2.svg.js +1 -1
- package/dist/esm/assets/icons/boxV2.svg.js.map +1 -1
- package/dist/esm/assets/icons/box_round.svg.js +1 -1
- package/dist/esm/assets/icons/box_round.svg.js.map +1 -1
- package/dist/esm/assets/icons/box_search.svg.js +1 -1
- package/dist/esm/assets/icons/box_search.svg.js.map +1 -1
- package/dist/esm/assets/icons/brand_home.svg.js +1 -1
- package/dist/esm/assets/icons/brand_home.svg.js.map +1 -1
- package/dist/esm/assets/icons/broken_media_image.svg.js +1 -1
- package/dist/esm/assets/icons/broken_media_image.svg.js.map +1 -1
- package/dist/esm/assets/icons/calendar.svg.js +1 -1
- package/dist/esm/assets/icons/calendar.svg.js.map +1 -1
- package/dist/esm/assets/icons/card_footer_arraw.svg.js +1 -1
- package/dist/esm/assets/icons/card_footer_arraw.svg.js.map +1 -1
- package/dist/esm/assets/icons/chat-channel.svg.js +1 -1
- package/dist/esm/assets/icons/chat-channel.svg.js.map +1 -1
- package/dist/esm/assets/icons/chat.svg.js +1 -1
- package/dist/esm/assets/icons/chat.svg.js.map +1 -1
- package/dist/esm/assets/icons/check.svg.js +1 -1
- package/dist/esm/assets/icons/check.svg.js.map +1 -1
- package/dist/esm/assets/icons/checkCircle.svg.js +1 -1
- package/dist/esm/assets/icons/checkCircle.svg.js.map +1 -1
- package/dist/esm/assets/icons/checklistIcon.svg.js +1 -1
- package/dist/esm/assets/icons/checklistIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronDown.svg.js +1 -1
- package/dist/esm/assets/icons/chevronDown.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronDownOutline.svg.js +1 -1
- package/dist/esm/assets/icons/chevronDownOutline.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronLeft.svg.js +1 -1
- package/dist/esm/assets/icons/chevronLeft.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronLeft2.svg.js +1 -1
- package/dist/esm/assets/icons/chevronLeft2.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronRight.svg.js +1 -1
- package/dist/esm/assets/icons/chevronRight.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronRight2.svg.js +1 -1
- package/dist/esm/assets/icons/chevronRight2.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronRightAlt.svg.js +1 -1
- package/dist/esm/assets/icons/chevronRightAlt.svg.js.map +1 -1
- package/dist/esm/assets/icons/chevronUpOutline.svg.js +1 -1
- package/dist/esm/assets/icons/chevronUpOutline.svg.js.map +1 -1
- package/dist/esm/assets/icons/circular-cross-icon.svg.js +1 -1
- package/dist/esm/assets/icons/circular-cross-icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/click.svg.js +1 -1
- package/dist/esm/assets/icons/click.svg.js.map +1 -1
- package/dist/esm/assets/icons/clock.svg.js +1 -1
- package/dist/esm/assets/icons/clock.svg.js.map +1 -1
- package/dist/esm/assets/icons/copy-code-icon.svg.js +1 -1
- package/dist/esm/assets/icons/copy-code-icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/cross.svg.js +1 -1
- package/dist/esm/assets/icons/cross.svg.js.map +1 -1
- package/dist/esm/assets/icons/cubeIcon.svg.js +1 -1
- package/dist/esm/assets/icons/cubeIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/cursor.svg.js +1 -1
- package/dist/esm/assets/icons/cursor.svg.js.map +1 -1
- package/dist/esm/assets/icons/delete.svg.js +1 -1
- package/dist/esm/assets/icons/delete.svg.js.map +1 -1
- package/dist/esm/assets/icons/desktop_custom.svg.js +1 -1
- package/dist/esm/assets/icons/desktop_custom.svg.js.map +1 -1
- package/dist/esm/assets/icons/document_pdf.svg.js +1 -1
- package/dist/esm/assets/icons/document_pdf.svg.js.map +1 -1
- package/dist/esm/assets/icons/drag_handle.svg.js +1 -1
- package/dist/esm/assets/icons/drag_handle.svg.js.map +1 -1
- package/dist/esm/assets/icons/edit.svg.js +1 -1
- package/dist/esm/assets/icons/edit.svg.js.map +1 -1
- package/dist/esm/assets/icons/email-channel.svg.js +1 -1
- package/dist/esm/assets/icons/email-channel.svg.js.map +1 -1
- package/dist/esm/assets/icons/emoji.svg.js +1 -1
- package/dist/esm/assets/icons/emoji.svg.js.map +1 -1
- package/dist/esm/assets/icons/errorIcon.svg.js +1 -1
- package/dist/esm/assets/icons/errorIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/errorInfo.svg.js +1 -1
- package/dist/esm/assets/icons/errorInfo.svg.js.map +1 -1
- package/dist/esm/assets/icons/expressionless_emoji.svg.js +1 -1
- package/dist/esm/assets/icons/expressionless_emoji.svg.js.map +1 -1
- package/dist/esm/assets/icons/facebook_channel.svg.js +1 -1
- package/dist/esm/assets/icons/facebook_channel.svg.js.map +1 -1
- package/dist/esm/assets/icons/file.svg.js +1 -1
- package/dist/esm/assets/icons/file.svg.js.map +1 -1
- package/dist/esm/assets/icons/filePdf.svg.js +1 -1
- package/dist/esm/assets/icons/filePdf.svg.js.map +1 -1
- package/dist/esm/assets/icons/gift_icon.svg.js +1 -1
- package/dist/esm/assets/icons/gift_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/gmail.svg.js +1 -1
- package/dist/esm/assets/icons/gmail.svg.js.map +1 -1
- package/dist/esm/assets/icons/graph.svg.js +1 -1
- package/dist/esm/assets/icons/graph.svg.js.map +1 -1
- package/dist/esm/assets/icons/grid.svg.js +1 -1
- package/dist/esm/assets/icons/grid.svg.js.map +1 -1
- package/dist/esm/assets/icons/halfRectangle.svg.js +1 -1
- package/dist/esm/assets/icons/halfRectangle.svg.js.map +1 -1
- package/dist/esm/assets/icons/help.svg.js +1 -1
- package/dist/esm/assets/icons/help.svg.js.map +1 -1
- package/dist/esm/assets/icons/home.svg.js +1 -1
- package/dist/esm/assets/icons/home.svg.js.map +1 -1
- package/dist/esm/assets/icons/horizontal_dots.svg.js +1 -1
- package/dist/esm/assets/icons/horizontal_dots.svg.js.map +1 -1
- package/dist/esm/assets/icons/hover_home.svg.js +1 -1
- package/dist/esm/assets/icons/hover_home.svg.js.map +1 -1
- package/dist/esm/assets/icons/image.svg.js +1 -1
- package/dist/esm/assets/icons/image.svg.js.map +1 -1
- package/dist/esm/assets/icons/info.svg.js +1 -1
- package/dist/esm/assets/icons/info.svg.js.map +1 -1
- package/dist/esm/assets/icons/instagram-channel.svg.js +1 -1
- package/dist/esm/assets/icons/instagram-channel.svg.js.map +1 -1
- package/dist/esm/assets/icons/instagram.svg.js +1 -1
- package/dist/esm/assets/icons/instagram.svg.js.map +1 -1
- package/dist/esm/assets/icons/italic.svg.js +1 -1
- package/dist/esm/assets/icons/italic.svg.js.map +1 -1
- package/dist/esm/assets/icons/list.svg.js +1 -1
- package/dist/esm/assets/icons/list.svg.js.map +1 -1
- package/dist/esm/assets/icons/locked.svg.js +1 -1
- package/dist/esm/assets/icons/locked.svg.js.map +1 -1
- package/dist/esm/assets/icons/log_out.svg.js +1 -1
- package/dist/esm/assets/icons/log_out.svg.js.map +1 -1
- package/dist/esm/assets/icons/lto_icon.svg.js +1 -1
- package/dist/esm/assets/icons/lto_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/magic-line.svg.js +1 -1
- package/dist/esm/assets/icons/magic-line.svg.js.map +1 -1
- package/dist/esm/assets/icons/maximize.svg.js +1 -1
- package/dist/esm/assets/icons/maximize.svg.js.map +1 -1
- package/dist/esm/assets/icons/mobile_custom.svg.js +1 -1
- package/dist/esm/assets/icons/mobile_custom.svg.js.map +1 -1
- package/dist/esm/assets/icons/more_vertical.svg.js +1 -1
- package/dist/esm/assets/icons/more_vertical.svg.js.map +1 -1
- package/dist/esm/assets/icons/openai.svg.js +1 -1
- package/dist/esm/assets/icons/openai.svg.js.map +1 -1
- package/dist/esm/assets/icons/paperclip.svg.js +1 -1
- package/dist/esm/assets/icons/paperclip.svg.js.map +1 -1
- package/dist/esm/assets/icons/percentage_icon.svg.js +1 -1
- package/dist/esm/assets/icons/percentage_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/phone.svg.js +1 -1
- package/dist/esm/assets/icons/phone.svg.js.map +1 -1
- package/dist/esm/assets/icons/phone_round.svg.js +1 -1
- package/dist/esm/assets/icons/phone_round.svg.js.map +1 -1
- package/dist/esm/assets/icons/play.svg.js +1 -1
- package/dist/esm/assets/icons/play.svg.js.map +1 -1
- package/dist/esm/assets/icons/plus.svg.js +1 -1
- package/dist/esm/assets/icons/plus.svg.js.map +1 -1
- package/dist/esm/assets/icons/pointer.svg.js +1 -1
- package/dist/esm/assets/icons/pointer.svg.js.map +1 -1
- package/dist/esm/assets/icons/profile.svg.js +1 -1
- package/dist/esm/assets/icons/profile.svg.js.map +1 -1
- package/dist/esm/assets/icons/qrb.svg.js +1 -1
- package/dist/esm/assets/icons/qrb.svg.js.map +1 -1
- package/dist/esm/assets/icons/question-mark.svg.js +1 -1
- package/dist/esm/assets/icons/question-mark.svg.js.map +1 -1
- package/dist/esm/assets/icons/quotes.svg.js +1 -1
- package/dist/esm/assets/icons/quotes.svg.js.map +1 -1
- package/dist/esm/assets/icons/redirect.svg.js +1 -1
- package/dist/esm/assets/icons/redirect.svg.js.map +1 -1
- package/dist/esm/assets/icons/refresh-purple.svg.js +1 -1
- package/dist/esm/assets/icons/refresh-purple.svg.js.map +1 -1
- package/dist/esm/assets/icons/refresh.svg.js +1 -1
- package/dist/esm/assets/icons/refresh.svg.js.map +1 -1
- package/dist/esm/assets/icons/retry.svg.js +1 -1
- package/dist/esm/assets/icons/retry.svg.js.map +1 -1
- package/dist/esm/assets/icons/retryIcon.svg.js +1 -1
- package/dist/esm/assets/icons/retryIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/rewind.svg.js +1 -1
- package/dist/esm/assets/icons/rewind.svg.js.map +1 -1
- package/dist/esm/assets/icons/sad_emoji.svg.js +1 -1
- package/dist/esm/assets/icons/sad_emoji.svg.js.map +1 -1
- package/dist/esm/assets/icons/search.svg.js +1 -1
- package/dist/esm/assets/icons/search.svg.js.map +1 -1
- package/dist/esm/assets/icons/searchIcon.svg.js +1 -1
- package/dist/esm/assets/icons/searchIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/send.svg.js +1 -1
- package/dist/esm/assets/icons/send.svg.js.map +1 -1
- package/dist/esm/assets/icons/send_template.svg.js +1 -1
- package/dist/esm/assets/icons/send_template.svg.js.map +1 -1
- package/dist/esm/assets/icons/shipping_icon.svg.js +1 -1
- package/dist/esm/assets/icons/shipping_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/similar.svg.js +1 -1
- package/dist/esm/assets/icons/similar.svg.js.map +1 -1
- package/dist/esm/assets/icons/smile_emoji.svg.js +1 -1
- package/dist/esm/assets/icons/smile_emoji.svg.js.map +1 -1
- package/dist/esm/assets/icons/smiley_emoji.svg.js +1 -1
- package/dist/esm/assets/icons/smiley_emoji.svg.js.map +1 -1
- package/dist/esm/assets/icons/sparkle.svg.js +1 -1
- package/dist/esm/assets/icons/sparkle.svg.js.map +1 -1
- package/dist/esm/assets/icons/speedometer.svg.js +1 -1
- package/dist/esm/assets/icons/speedometer.svg.js.map +1 -1
- package/dist/esm/assets/icons/starEmpty.svg.js +1 -1
- package/dist/esm/assets/icons/starEmpty.svg.js.map +1 -1
- package/dist/esm/assets/icons/starFilled.svg.js +1 -1
- package/dist/esm/assets/icons/starFilled.svg.js.map +1 -1
- package/dist/esm/assets/icons/starFilledV2.svg.js +1 -1
- package/dist/esm/assets/icons/starFilledV2.svg.js.map +1 -1
- package/dist/esm/assets/icons/state_icon.svg.js +1 -1
- package/dist/esm/assets/icons/state_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/strikeThrough.svg.js +1 -1
- package/dist/esm/assets/icons/strikeThrough.svg.js.map +1 -1
- package/dist/esm/assets/icons/sub_category.svg.js +1 -1
- package/dist/esm/assets/icons/sub_category.svg.js.map +1 -1
- package/dist/esm/assets/icons/successIcon.svg.js +1 -1
- package/dist/esm/assets/icons/successIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/sync.svg.js +1 -1
- package/dist/esm/assets/icons/sync.svg.js.map +1 -1
- package/dist/esm/assets/icons/task.svg.js +1 -1
- package/dist/esm/assets/icons/task.svg.js.map +1 -1
- package/dist/esm/assets/icons/text_t9.svg.js +1 -1
- package/dist/esm/assets/icons/text_t9.svg.js.map +1 -1
- package/dist/esm/assets/icons/thumb-down-line.svg.js +1 -1
- package/dist/esm/assets/icons/thumb-down-line.svg.js.map +1 -1
- package/dist/esm/assets/icons/thumb-up-line.svg.js +1 -1
- package/dist/esm/assets/icons/thumb-up-line.svg.js.map +1 -1
- package/dist/esm/assets/icons/tick.svg.js +1 -1
- package/dist/esm/assets/icons/tick.svg.js.map +1 -1
- package/dist/esm/assets/icons/tick_double.svg.js +1 -1
- package/dist/esm/assets/icons/tick_double.svg.js.map +1 -1
- package/dist/esm/assets/icons/triangle_error.svg.js +1 -1
- package/dist/esm/assets/icons/triangle_error.svg.js.map +1 -1
- package/dist/esm/assets/icons/undo.svg.js +1 -1
- package/dist/esm/assets/icons/undo.svg.js.map +1 -1
- package/dist/esm/assets/icons/union.svg.js +1 -1
- package/dist/esm/assets/icons/union.svg.js.map +1 -1
- package/dist/esm/assets/icons/upload.svg.js +1 -1
- package/dist/esm/assets/icons/upload.svg.js.map +1 -1
- package/dist/esm/assets/icons/user_icon.svg.js +1 -1
- package/dist/esm/assets/icons/user_icon.svg.js.map +1 -1
- package/dist/esm/assets/icons/vertical_dots.svg.js +1 -1
- package/dist/esm/assets/icons/vertical_dots.svg.js.map +1 -1
- package/dist/esm/assets/icons/videoRecorder.svg.js +1 -1
- package/dist/esm/assets/icons/videoRecorder.svg.js.map +1 -1
- package/dist/esm/assets/icons/video_camcorder.svg.js +1 -1
- package/dist/esm/assets/icons/video_camcorder.svg.js.map +1 -1
- package/dist/esm/assets/icons/warning.svg.js +1 -1
- package/dist/esm/assets/icons/warning.svg.js.map +1 -1
- package/dist/esm/assets/icons/warningIcon.svg.js +1 -1
- package/dist/esm/assets/icons/warningIcon.svg.js.map +1 -1
- package/dist/esm/assets/icons/website.svg.js +1 -1
- package/dist/esm/assets/icons/website.svg.js.map +1 -1
- package/dist/esm/assets/icons/whatsNew.svg.js +1 -1
- package/dist/esm/assets/icons/whatsNew.svg.js.map +1 -1
- package/dist/esm/assets/icons/whatsapp-channel.svg.js +1 -1
- package/dist/esm/assets/icons/whatsapp-channel.svg.js.map +1 -1
- package/dist/esm/assets/icons/whatsapp_color.svg.js +1 -1
- package/dist/esm/assets/icons/whatsapp_color.svg.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/Day.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/scrollHooks.js +1 -1
- package/dist/esm/components/BikGiftedChat/GiftedChat/scrollHooks.js.map +1 -1
- package/dist/esm/components/InfiniteScroll/InfiniteScroll.js +1 -1
- package/dist/esm/components/InfiniteScroll/InfiniteScroll.js.map +1 -1
- package/dist/esm/components/ProgressChecklist/MultiChecklistItem.js +1 -1
- package/dist/esm/components/ProgressChecklist/MultiChecklistItem.js.map +1 -1
- package/dist/esm/components/ProgressChecklist/ProgressChecklist.js +1 -1
- package/dist/esm/components/ProgressChecklist/ProgressChecklist.js.map +1 -1
- package/dist/esm/components/ProgressChecklist/ProgressStepper.js +1 -1
- package/dist/esm/components/ProgressChecklist/ProgressStepper.js.map +1 -1
- package/dist/esm/components/ProgressChecklist/SimpleChecklistItem.js +1 -1
- package/dist/esm/components/ProgressChecklist/SimpleChecklistItem.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Filters/CustomField/components/CustomField.js +1 -1
- package/dist/esm/components/QueryBuilder/Filters/CustomField/components/CustomField.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Filters/Event/components/EventFilter.js +1 -1
- package/dist/esm/components/QueryBuilder/Filters/Event/components/EventFilter.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Filters/Segment/components/SegmentFilter.js +1 -1
- package/dist/esm/components/QueryBuilder/Filters/Segment/components/SegmentFilter.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Filters/UserProperty/components/UserPropertyFilter.js +1 -1
- package/dist/esm/components/QueryBuilder/Filters/UserProperty/components/UserPropertyFilter.js.map +1 -1
- package/dist/esm/components/QueryBuilder/QueryBuilder.js +1 -1
- package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/esm/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.js +1 -1
- package/dist/esm/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/AddNodeButton.js +1 -1
- package/dist/esm/components/QueryBuilder/components/AddNodeButton.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/AllowedListDropdown.js +1 -1
- package/dist/esm/components/QueryBuilder/components/AllowedListDropdown.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/EmojiPicker.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/EmojiPicker.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/FreeText.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/FreeText.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/FrequencyIntegerPositiveSingle.js +2 -2
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/FrequencyIntegerPositiveSingle.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/IgPicker.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/InTheLast.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/InTheLast.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/InTwoLast.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/InTwoLast.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/IntegerPositiveSingle.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/IntegerPositiveSingle.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/IntegerSingleValue.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/IntegerSingleValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/MultiselectDropdownFreeText.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/MultiselectDropdownFreeText.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/NumberTime.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/NumberTime.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/SingleDate.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/SingleDate.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/SingleselectDropdownFreeText.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/SingleselectDropdownFreeText.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/StringSingleValue.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/StringSingleValue.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/TwoDate.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/TwoDate.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/TwoNumberInputsSeperatedByAnd.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Components/TwoNumberInputsSeperatedByAnd.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Connector.js +1 -1
- package/dist/esm/components/QueryBuilder/components/Connectors/Connector.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/DeleteButton.js +1 -1
- package/dist/esm/components/QueryBuilder/components/DeleteButton.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/DropdownWrapper.js +1 -1
- package/dist/esm/components/QueryBuilder/components/DropdownWrapper.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/InputLoader.js +4 -4
- package/dist/esm/components/QueryBuilder/components/InputLoader.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/AddPropertyButton.js +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/AddPropertyButton.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNodeUIWrapper.js +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNodeUIWrapper.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNodes.js.map +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNodes.js +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNodes.js.map +1 -1
- package/dist/esm/components/QueryBuilder/hooks/useQueryBuilderCache.js +1 -1
- package/dist/esm/components/QueryBuilder/hooks/useQueryBuilderCache.js.map +1 -1
- package/dist/esm/components/SearchFilter/components/DatePickerButton.js.map +1 -1
- package/dist/esm/components/SearchFilter/components/DateRangeOnlyButton.js.map +1 -1
- package/dist/esm/components/SearchFilter/components/FilterChipListRenderer.js +1 -1
- package/dist/esm/components/SearchFilter/components/FilterChipListRenderer.js.map +1 -1
- package/dist/esm/components/SearchFilter/index.js +1 -1
- package/dist/esm/components/SearchFilter/index.js.map +1 -1
- package/dist/esm/components/TablePagination/TablePagination.js +1 -1
- package/dist/esm/components/TablePagination/TablePagination.js.map +1 -1
- package/dist/esm/components/TablePagination/TablePagination.styled.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/AIRephrase.styled.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js +1 -1
- package/dist/esm/components/WhatsAppTextEditor/AIRephraseButton.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/BorderAnimation.js +1 -1
- package/dist/esm/components/WhatsAppTextEditor/BorderAnimation.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js +1 -1
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditor.js.map +1 -1
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js +1 -1
- package/dist/esm/components/WhatsAppTextEditor/WhatsAppTextEditorHeader.js.map +1 -1
- package/dist/esm/components/access-token-troubleshoot-dialog/AccessTokenTroubleshootDialog.js +1 -1
- package/dist/esm/components/access-token-troubleshoot-dialog/AccessTokenTroubleshootDialog.js.map +1 -1
- package/dist/esm/components/accordion/Accordion.js.map +1 -1
- package/dist/esm/components/action-button/ActionButton.styled.js.map +1 -1
- package/dist/esm/components/action-button/ActionButtons.js +1 -1
- package/dist/esm/components/action-button/ActionButtons.js.map +1 -1
- package/dist/esm/components/add-variableV2/AddVariableV2.js +1 -1
- package/dist/esm/components/add-variableV2/AddVariableV2.js.map +1 -1
- package/dist/esm/components/ai-modals/ActivateBikAI.js +1 -1
- package/dist/esm/components/ai-modals/ActivateBikAI.js.map +1 -1
- package/dist/esm/components/ai-modals/AiCreditsExhausted.js +1 -1
- package/dist/esm/components/ai-modals/AiCreditsExhausted.js.map +1 -1
- package/dist/esm/components/ai-modals/AiCreditsLow.js +1 -1
- package/dist/esm/components/ai-modals/AiCreditsLow.js.map +1 -1
- package/dist/esm/components/ai-modals/AiSyncProgress.js +1 -1
- package/dist/esm/components/ai-modals/AiSyncProgress.js.map +1 -1
- package/dist/esm/components/analytics-card/AnalyticsCard.styled.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsDropdown.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsDropdown.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsMetric.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsMetric.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsTrend.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsTrend.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/CommonStyles.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/HorizontalBarGraph/HorizontalGraph.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/Legend/Legend.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/Legend/Legend.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/LineChart/LineChart.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/Pie/PieChart.js +2 -2
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/Pie/PieChart.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/Pie/PieChartAnalytics.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarChart.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/StackedBarChart/StackedBarChart.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarAndLinearGraph/VerticalBarAndLinearGraph.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarAndLinearGraph/VerticalBarAndLinearGraph.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/FunnelVerticalBarGraph.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/FunnelVerticalBarGraph.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/VerticalBarGraph/VerticalGraph.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMap.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMap.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMapVertical.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/heatmap/HeatMapVertical.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/linearChipGroupedChart/LinearChipGroupedChart.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/linearChipGroupedChart/LinearChipGroupedChart.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/scoreBlock/Chip.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/scoreBlock/Chip.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/scoreBlock/HorizontalBar.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/scoreBlock/HorizontalBar.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/scoreBlock/ScoreBlock.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/scoreBlock/ScoreBlock.js.map +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/utils/calcPercentage.js +1 -1
- package/dist/esm/components/analytics-chips-and-dropdowns/chart/utils/calcPercentage.js.map +1 -1
- package/dist/esm/components/bik-chatbot/components/AIChat.js +1 -1
- package/dist/esm/components/bik-chatbot/components/AIChat.js.map +1 -1
- package/dist/esm/components/bik-chatbot/components/BIKChatbot.js +1 -1
- package/dist/esm/components/bik-chatbot/components/BIKChatbot.js.map +1 -1
- package/dist/esm/components/bik-chatbot/components/ChatLoadingState.js +1 -1
- package/dist/esm/components/bik-chatbot/components/ChatLoadingState.js.map +1 -1
- package/dist/esm/components/bik-chatbot/components/ChatWindow.js +1 -1
- package/dist/esm/components/bik-chatbot/components/ChatWindow.js.map +1 -1
- package/dist/esm/components/bik-chatbot/components/ThinkingIndicator.js.map +1 -1
- package/dist/esm/components/bik-chatbot/contexts/AIContext.js +1 -1
- package/dist/esm/components/bik-chatbot/contexts/AIContext.js.map +1 -1
- package/dist/esm/components/bik-chatbot/services/aiService.js +1 -1
- package/dist/esm/components/bik-chatbot/services/aiService.js.map +1 -1
- package/dist/esm/components/bik-chatbot/services/callToChatbot.js +1 -1
- package/dist/esm/components/bik-chatbot/services/callToChatbot.js.map +1 -1
- package/dist/esm/components/bik-chatbot/services/db.js.map +1 -1
- package/dist/esm/components/bik-chatbot/services/useAIChat.js +1 -1
- package/dist/esm/components/bik-chatbot/services/useAIChat.js.map +1 -1
- package/dist/esm/components/bik-chatbot/utils/guardrails.js.map +1 -1
- package/dist/esm/components/bik-layout/BikLayout.js.map +1 -1
- package/dist/esm/components/bik-layout/BikSidebar.js +1 -1
- package/dist/esm/components/bik-layout/BikSidebar.js.map +1 -1
- package/dist/esm/components/bik-layout/SimpleSidebar.js.map +1 -1
- package/dist/esm/components/button/Button.styled.js.map +1 -1
- package/dist/esm/components/button/themes.js +1 -1
- package/dist/esm/components/button/themes.js.map +1 -1
- package/dist/esm/components/carousel-preview/CarouselPreview.js +1 -1
- package/dist/esm/components/carousel-preview/CarouselPreview.js.map +1 -1
- package/dist/esm/components/carousel-preview/CarouselPreviewCard.js +1 -1
- package/dist/esm/components/carousel-preview/CarouselPreviewCard.js.map +1 -1
- package/dist/esm/components/carousel-secondary/CarouselSecondary.js +1 -1
- package/dist/esm/components/carousel-secondary/CarouselSecondary.js.map +1 -1
- package/dist/esm/components/code-block/CodeBlock.js +1 -1
- package/dist/esm/components/code-block/CodeBlock.js.map +1 -1
- package/dist/esm/components/code-block/CodeBlock.styled.js +31 -31
- package/dist/esm/components/code-block/CodeBlock.styled.js.map +1 -1
- package/dist/esm/components/code-block/CodeBlockHelper.js +1 -1
- package/dist/esm/components/code-block/CodeBlockHelper.js.map +1 -1
- package/dist/esm/components/country-code-picker/CountryPicker.js +1 -1
- package/dist/esm/components/country-code-picker/CountryPicker.js.map +1 -1
- package/dist/esm/components/custom-date-time/CustomDateTime.js.map +1 -1
- package/dist/esm/components/dashboard-review-popup/DashboardReviewPopUp.js +1 -1
- package/dist/esm/components/dashboard-review-popup/DashboardReviewPopUp.js.map +1 -1
- package/dist/esm/components/dashboard-review-popup/components/FiveStar.js +1 -1
- package/dist/esm/components/dashboard-review-popup/components/FiveStar.js.map +1 -1
- package/dist/esm/components/dashboard-review-popup/components/Form.js +1 -1
- package/dist/esm/components/dashboard-review-popup/components/Form.js.map +1 -1
- package/dist/esm/components/dashboard-review-popup/components/ZeroState.js +1 -1
- package/dist/esm/components/dashboard-review-popup/components/ZeroState.js.map +1 -1
- package/dist/esm/components/data-source-panel/DataSourceInfoFooter.js.map +1 -1
- package/dist/esm/components/data-source-panel/DataSourcePanel.js +1 -1
- package/dist/esm/components/data-source-panel/DataSourcePanel.js.map +1 -1
- package/dist/esm/components/datePicker/DatePicker.js +1 -1
- package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/datePicker/DatePickerWrapper.js +1 -1
- package/dist/esm/components/datePicker/DatePickerWrapper.js.map +1 -1
- package/dist/esm/components/datePicker/TimePicker.js +1 -1
- package/dist/esm/components/datePicker/TimePicker.js.map +1 -1
- package/dist/esm/components/discount-modal/DiscountModal.js.map +1 -1
- package/dist/esm/components/discount-modal/DiscountUtils.js.map +1 -1
- package/dist/esm/components/discount-modal/DynamicCoupon/DynamicCoupon.js.map +1 -1
- package/dist/esm/components/discount-modal/DynamicCoupon/DynamicCoupon.styled.js +8 -8
- package/dist/esm/components/discount-modal/DynamicCoupon/DynamicCoupon.styled.js.map +1 -1
- package/dist/esm/components/discount-modal/StaticCoupon/StaticCoupon.js.map +1 -1
- package/dist/esm/components/dot-pulse/DotPulse.js +2 -2
- package/dist/esm/components/dot-pulse/DotPulse.js.map +1 -1
- package/dist/esm/components/dropShadow/DropShadow.js +1 -1
- package/dist/esm/components/dropShadow/DropShadow.js.map +1 -1
- package/dist/esm/components/dropdown/ChipDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/ChipInput.js +1 -1
- package/dist/esm/components/dropdown/ChipInput.js.map +1 -1
- package/dist/esm/components/dropdown/Common.styled.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/description/Description.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/FreeFormMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +5 -5
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js +1 -1
- package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchZeroState.js.map +1 -1
- package/dist/esm/components/dropdown/hooks/useDropdown.js +1 -1
- package/dist/esm/components/dropdown/hooks/useDropdown.js.map +1 -1
- package/dist/esm/components/dynamic-tabs/DynamicTabs.js.map +1 -1
- package/dist/esm/components/fab-menu/FABMenu.js.map +1 -1
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js +1 -1
- package/dist/esm/components/feature-announcements/FeatureAnnouncementProvider.js.map +1 -1
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.js +1 -1
- package/dist/esm/components/feature-announcements/MajorUpdatePopup.js.map +1 -1
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.js +1 -1
- package/dist/esm/components/feature-announcements/MinorUpdatePopup.js.map +1 -1
- package/dist/esm/components/feature-announcements/VideoModal.js +1 -1
- package/dist/esm/components/feature-announcements/VideoModal.js.map +1 -1
- package/dist/esm/components/feature-announcements/constants/animations.js.map +1 -1
- package/dist/esm/components/feature-announcements/hooks/useFeatureAnnouncements.js +1 -1
- package/dist/esm/components/feature-announcements/hooks/useFeatureAnnouncements.js.map +1 -1
- package/dist/esm/components/feature-announcements/styles/majorPopup.styles.js +1 -1
- package/dist/esm/components/feature-announcements/styles/majorPopup.styles.js.map +1 -1
- package/dist/esm/components/feature-announcements/styles/minorPopup.styles.js.map +1 -1
- package/dist/esm/components/feature-announcements/utils/animationHelpers.js +1 -1
- package/dist/esm/components/feature-announcements/utils/animationHelpers.js.map +1 -1
- package/dist/esm/components/feature-announcements/utils/elementHelpers.js +1 -1
- package/dist/esm/components/feature-announcements/utils/elementHelpers.js.map +1 -1
- package/dist/esm/components/file-uploader/FileUploader.js.map +1 -1
- package/dist/esm/components/floating-action-button/FloatingActionButton.styles.js.map +1 -1
- package/dist/esm/components/floating-input-dropdown/FloatingInputDropdown.js +3 -3
- package/dist/esm/components/floating-input-dropdown/FloatingInputDropdown.js.map +1 -1
- package/dist/esm/components/half-doughnut-chart/HalfDoughnutChart.js +1 -1
- package/dist/esm/components/half-doughnut-chart/HalfDoughnutChart.js.map +1 -1
- package/dist/esm/components/helpers/FileUploaderHelper.js.map +1 -1
- package/dist/esm/components/icon-button/IconButton.styled.js.map +1 -1
- package/dist/esm/components/image-cropper/BikImagePipeline/BikImagePipeline.js +1 -1
- package/dist/esm/components/image-cropper/BikImagePipeline/BikImagePipeline.js.map +1 -1
- package/dist/esm/components/input/ChipInput.js +1 -1
- package/dist/esm/components/input/ChipInput.js.map +1 -1
- package/dist/esm/components/input/ChipInput.styled.js.map +1 -1
- package/dist/esm/components/input/Input-helper.js +1 -1
- package/dist/esm/components/input/Input-helper.js.map +1 -1
- package/dist/esm/components/input/Input.js +1 -1
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/input/Input.styled.js +1 -1
- package/dist/esm/components/input/Input.styled.js.map +1 -1
- package/dist/esm/components/input-with-vars/InputWithVariables.js +1 -1
- package/dist/esm/components/input-with-vars/InputWithVariables.js.map +1 -1
- package/dist/esm/components/list-item/themes.js.map +1 -1
- package/dist/esm/components/markdown/MarkdownRender.js +1 -1
- package/dist/esm/components/markdown/MarkdownRender.js.map +1 -1
- package/dist/esm/components/markdown/utils.js +1 -1
- package/dist/esm/components/markdown/utils.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js +1 -1
- package/dist/esm/components/multi-level-dropdown/GroupedMenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuItem.js +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuList.js +1 -1
- package/dist/esm/components/multi-level-dropdown/MenuList.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.js.map +1 -1
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js +25 -25
- package/dist/esm/components/multi-level-dropdown/MultiLevelDropdown.styled.js.map +1 -1
- package/dist/esm/components/navigation-hyperlink/NavigationHyperlink.js.map +1 -1
- package/dist/esm/components/plans/NewSubscriptionPlan.js.map +1 -1
- package/dist/esm/components/plans/SubscriptionPlan.js.map +1 -1
- package/dist/esm/components/plans/SubscriptionPlansCollected.js +2 -2
- package/dist/esm/components/plans/SubscriptionPlansCollected.js.map +1 -1
- package/dist/esm/components/post-live-checklist/PostLiveChecklist.js +1 -1
- package/dist/esm/components/post-live-checklist/PostLiveChecklist.js.map +1 -1
- package/dist/esm/components/postPicker/postPicker.js.map +1 -1
- package/dist/esm/components/product-picker/ProductPickerModal.js +1 -1
- package/dist/esm/components/product-picker/ProductPickerModal.js.map +1 -1
- package/dist/esm/components/product-picker-v2/emptyState.js +1 -1
- package/dist/esm/components/product-picker-v2/emptyState.js.map +1 -1
- package/dist/esm/components/product-picker-v2/helpers/ProductHelper.js +1 -1
- package/dist/esm/components/product-picker-v2/helpers/ProductHelper.js.map +1 -1
- package/dist/esm/components/product-picker-v2/modal.js.map +1 -1
- package/dist/esm/components/product-picker-v2/product.js.map +1 -1
- package/dist/esm/components/product-picker-v2/productInfoOverlay.js.map +1 -1
- package/dist/esm/components/product-picker-v2/utility.js +1 -1
- package/dist/esm/components/product-picker-v2/utility.js.map +1 -1
- package/dist/esm/components/product-picker-v2/variant.js.map +1 -1
- package/dist/esm/components/product-picker-v2/variantComponents.js +1 -1
- package/dist/esm/components/product-picker-v2/variantComponents.js.map +1 -1
- package/dist/esm/components/progress-bar/CircularProgressBar.js +1 -1
- package/dist/esm/components/progress-bar/CircularProgressBar.js.map +1 -1
- package/dist/esm/components/progress-bar-v2/ProgressBarV2.js.map +1 -1
- package/dist/esm/components/resizeImage/index.js +1 -1
- package/dist/esm/components/resizeImage/index.js.map +1 -1
- package/dist/esm/components/shimmer-image/ShimmerImage.js +1 -1
- package/dist/esm/components/shimmer-image/ShimmerImage.js.map +1 -1
- package/dist/esm/components/side-modal/SideModal.style.js +9 -9
- package/dist/esm/components/side-modal/SideModal.style.js.map +1 -1
- package/dist/esm/components/slider/slider.js +1 -1
- package/dist/esm/components/slider/slider.js.map +1 -1
- package/dist/esm/components/spinner/Spinner.js +1 -1
- package/dist/esm/components/spinner/Spinner.js.map +1 -1
- package/dist/esm/components/star-rating/Star.js +1 -1
- package/dist/esm/components/star-rating/Star.js.map +1 -1
- package/dist/esm/components/star-rating/StarRating.js +1 -1
- package/dist/esm/components/star-rating/StarRating.js.map +1 -1
- package/dist/esm/components/states/StateComponent.styled.js.map +1 -1
- package/dist/esm/components/stepper/Stepper.js.map +1 -1
- package/dist/esm/components/stepper/themes.js.map +1 -1
- package/dist/esm/components/switch/Switch.js +1 -1
- package/dist/esm/components/switch/Switch.js.map +1 -1
- package/dist/esm/components/tabs/Tabs.styles.js.map +1 -1
- package/dist/esm/components/tag/Tag.js +1 -1
- package/dist/esm/components/tag/Tag.js.map +1 -1
- package/dist/esm/components/tag/Tag.styled.js.map +1 -1
- package/dist/esm/components/template-context-mapper/TemplateContextMapper.js.map +1 -1
- package/dist/esm/components/template-context-mapper/helpers/WebpushTemplateHelper.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/Body.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/DesktopPreview.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/DesktopPreview.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditMediaModal.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditMediaModal.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditWebpushTemplate.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditWebpushTemplate.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditWhatsAppCarouselTemplateV2.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditWhatsAppCarouselTemplateV2.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditWhatsAppTemplateV2.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/EditWhatsAppTemplateV2.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/Footer.js +2 -2
- package/dist/esm/components/template-context-mapper/modalElements/Footer.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/Header.js +2 -2
- package/dist/esm/components/template-context-mapper/modalElements/Header.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/MobilePreview.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/MobilePreview.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/TemplateAnalyticsComponent.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/TemplateAnalyticsComponent.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/TemplateSelectModalContent.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/TemplateSelectModalContent.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/VariableConnector.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/VariableConnectorWhatsApp.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/VariableConnectorsPanel.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/VariableConnectorsPanel.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/VariableEditorHeader.js +2 -2
- package/dist/esm/components/template-context-mapper/modalElements/VariableEditorHeader.js.map +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/WhatsAppTemplateCardButtonV2.js +1 -1
- package/dist/esm/components/template-context-mapper/modalElements/WhatsAppTemplateCardButtonV2.js.map +1 -1
- package/dist/esm/components/template-context-mapper/styles/TemplateAnalyticsStyles.js.map +1 -1
- package/dist/esm/components/template-preview/EmailTemplatePreview.styled.js.map +1 -1
- package/dist/esm/components/template-preview/EmailTemplateThumbnailPreview.js +1 -1
- package/dist/esm/components/template-preview/EmailTemplateThumbnailPreview.js.map +1 -1
- package/dist/esm/components/template-preview/RCS/RCSButtons.js +1 -1
- package/dist/esm/components/template-preview/RCS/RCSButtons.js.map +1 -1
- package/dist/esm/components/template-preview/RCS/RCSMediaCard.js +1 -1
- package/dist/esm/components/template-preview/RCS/RCSMediaCard.js.map +1 -1
- package/dist/esm/components/template-preview/RCS/RCSPreview.styled.js.map +1 -1
- package/dist/esm/components/template-preview/RCS/RCSTemplateLikePreview.js.map +1 -1
- package/dist/esm/components/template-preview/SmsTemplatePreview.js +1 -1
- package/dist/esm/components/template-preview/SmsTemplatePreview.js.map +1 -1
- package/dist/esm/components/template-preview/TemplatePreview.js +1 -1
- package/dist/esm/components/template-preview/TemplatePreview.js.map +1 -1
- package/dist/esm/components/template-preview/WhatsApp/ChatBtn.js +1 -1
- package/dist/esm/components/template-preview/WhatsApp/ChatBtn.js.map +1 -1
- package/dist/esm/components/template-preview/WhatsApp/ChatUI.style.js.map +1 -1
- package/dist/esm/components/template-preview/WhatsApp/MediaCard.js +1 -1
- package/dist/esm/components/template-preview/WhatsApp/MediaCard.js.map +1 -1
- package/dist/esm/components/template-preview/WhatsApp/WhatsAppLikePreviewV2.js.map +1 -1
- package/dist/esm/components/template-preview/WhatsAppTemplatePreview.js +1 -1
- package/dist/esm/components/template-preview/WhatsAppTemplatePreview.js.map +1 -1
- package/dist/esm/components/template-preview/constants/TemplateConstants.js.map +1 -1
- package/dist/esm/components/template-preview/helpers/SmsTemplateHelper.js +1 -1
- package/dist/esm/components/template-preview/helpers/SmsTemplateHelper.js.map +1 -1
- package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
- package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.js.map +1 -1
- package/dist/esm/components/template-preview/helpers/VariableEditorHelper.js +1 -1
- package/dist/esm/components/template-preview/helpers/VariableEditorHelper.js.map +1 -1
- package/dist/esm/components/template-preview/utils/TemplateHelperUtils.js +1 -1
- package/dist/esm/components/template-preview/utils/TemplateHelperUtils.js.map +1 -1
- package/dist/esm/components/template-preview/webpush/WebpushPreview.js.map +1 -1
- package/dist/esm/components/text-picker/TextPickerCategoryCard.js +4 -4
- package/dist/esm/components/text-picker/TextPickerCategoryCard.js.map +1 -1
- package/dist/esm/components/text-picker/TextPickerFooter.js +5 -5
- package/dist/esm/components/text-picker/TextPickerFooter.js.map +1 -1
- package/dist/esm/components/text-picker/TextPickerItemRow.js +6 -6
- package/dist/esm/components/text-picker/TextPickerItemRow.js.map +1 -1
- package/dist/esm/components/text-picker/TextPickerModal.js.map +1 -1
- package/dist/esm/components/text-picker/TextPickerSelectAllRow.js +5 -5
- package/dist/esm/components/text-picker/TextPickerSelectAllRow.js.map +1 -1
- package/dist/esm/components/toaster/Toaster.js.map +1 -1
- package/dist/esm/components/tooltips/Tooltip.js +1 -1
- package/dist/esm/components/tooltips/Tooltip.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/Content.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/NoResult.js.map +1 -1
- package/dist/esm/components/variable-picker-v3/searchVariables.js +1 -1
- package/dist/esm/components/variable-picker-v3/searchVariables.js.map +1 -1
- package/dist/esm/components/vertical-full-screen-modal/component.js +1 -1
- package/dist/esm/components/vertical-full-screen-modal/component.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNew.js +1 -1
- package/dist/esm/components/whats-new/WhatsNew.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNewButton.js +1 -1
- package/dist/esm/components/whats-new/WhatsNewButton.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNewPanel.js +1 -1
- package/dist/esm/components/whats-new/WhatsNewPanel.js.map +1 -1
- package/dist/esm/components/whats-new/WhatsNewProvider.js +1 -1
- package/dist/esm/components/whats-new/WhatsNewProvider.js.map +1 -1
- package/dist/esm/components/whats-new/useWhatsNew.js +1 -1
- package/dist/esm/components/whats-new/useWhatsNew.js.map +1 -1
- package/dist/esm/editor/BikEditor.js +1 -1
- package/dist/esm/editor/BikEditor.js.map +1 -1
- package/dist/esm/editor/BikEditor.styles.js +2 -2
- package/dist/esm/editor/BikEditor.styles.js.map +1 -1
- package/dist/esm/editor/extensions/FontSizeExtension.js +1 -1
- package/dist/esm/editor/extensions/FontSizeExtension.js.map +1 -1
- package/dist/esm/editor/extensions/editorDropdown.styles.js +5 -5
- package/dist/esm/editor/extensions/editorDropdown.styles.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionDropdown.js +1 -1
- package/dist/esm/editor/extensions/mention/MentionDropdown.js.map +1 -1
- package/dist/esm/editor/extensions/mention/MentionExtension.js +1 -1
- package/dist/esm/editor/extensions/mention/MentionExtension.js.map +1 -1
- package/dist/esm/editor/extensions/sectionDivider/SectionDividerNode.js +1 -1
- package/dist/esm/editor/extensions/sectionDivider/SectionDividerNode.js.map +1 -1
- package/dist/esm/editor/extensions/slashCommand/SlashCommandExtension.js +1 -1
- package/dist/esm/editor/extensions/slashCommand/SlashCommandExtension.js.map +1 -1
- package/dist/esm/editor/extensions/slashCommand/SlashCommandMenu.js +1 -1
- package/dist/esm/editor/extensions/slashCommand/SlashCommandMenu.js.map +1 -1
- package/dist/esm/editor/extensions/suggestionPopup.js.map +1 -1
- package/dist/esm/editor/floating/LinkBubbleMenu.js +1 -1
- package/dist/esm/editor/floating/LinkBubbleMenu.js.map +1 -1
- package/dist/esm/editor/serializers/toLiveChatText.js.map +1 -1
- package/dist/esm/editor/serializers/toWhatsAppText.js.map +1 -1
- package/dist/esm/editor/toolbar/BikEditorToolbar.js +1 -1
- package/dist/esm/editor/toolbar/BikEditorToolbar.js.map +1 -1
- package/dist/esm/helpers/BaseWhatsappContentLang.helper.js.map +1 -1
- package/dist/esm/hooks/useCurreny.js +1 -1
- package/dist/esm/hooks/useCurreny.js.map +1 -1
- package/dist/esm/hooks/useOutside.js +1 -1
- package/dist/esm/hooks/useOutside.js.map +1 -1
- package/dist/esm/src/amplitude/Track.stories.d.ts +5 -3
- package/dist/esm/src/components/QueryBuilder/Triggers/EVENTS/components/EventsTrigger.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/EVENTS/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/IG/components/IGTrigger.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/IG/selectors/useIGTriggerNameCacheSelector.d.ts +1 -1
- package/dist/esm/src/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.d.ts +2 -2
- package/dist/esm/src/components/banner/Banner.stories.d.ts +38 -8
- package/dist/esm/src/components/post-live-checklist/PostLiveChecklist.stories.d.ts +104 -11
- package/dist/esm/src/components/shimmer-image/ShimmerImage.stories.d.ts +15 -5
- package/dist/esm/src/components/tag/Tag.stories.d.ts +54 -21
- package/dist/esm/utils/DateUtils.js +1 -1
- package/dist/esm/utils/DateUtils.js.map +1 -1
- package/dist/esm/utils/StringUtils.js +1 -1
- package/dist/esm/utils/StringUtils.js.map +1 -1
- package/dist/esm/utils/logging/ErrorConstructor/CustomError.js +1 -1
- package/dist/esm/utils/logging/ErrorConstructor/CustomError.js.map +1 -1
- package/dist/esm/utils/logging/ErrorConstructor/FirebaseCallError.js.map +1 -1
- package/dist/esm/utils/logging/ErrorConstructor/FirebaseSubscriptionError.js.map +1 -1
- package/dist/esm/utils/logging/Logger.js +1 -1
- package/dist/esm/utils/logging/Logger.js.map +1 -1
- package/package.json +12 -18
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsx as s,jsxs as t}from"react/jsx-runtime";import{useAIContext as i}from"../contexts/AIContext.js";import a from"./ChatLoadingState.js";import n from"./ChatWindow.js";const r=
|
|
1
|
+
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsx as s,jsxs as t}from"react/jsx-runtime";import{useAIContext as i}from"../contexts/AIContext.js";import a from"./ChatLoadingState.js";import n from"./ChatWindow.js";const r=({className:r,style:o,header:l,showHeader:c=!0,placeholder:d="Ask me anything...",suggestions:m=["Top festivals for marketing","Top events this week?","Top August festivals near you"],disabled:g=!1,isThinking:h=!1,height:p,iceBreakers:v,videoStarter:u,onMessageSent:b,onIceBreakerClick:f,chatState:j,chatWindowHeight:k,inputDisabled:x=!1})=>{const{isReady:y,isLoading:N,messages:O,sendMessage:S,error:w,system:A,isApiCallInProgress:C}=i(),I=l||(null==A?void 0:A.name)||"AI Assistant";return w?s("div",Object.assign({className:`flex items-center justify-center p-6 ${r}`,style:o},{children:t("div",Object.assign({className:"text-red-500 text-center"},{children:[s("div",Object.assign({className:"text-lg font-semibold mb-2"},{children:"Error"})),s("div",Object.assign({className:"text-sm"},{children:w}))]}))})):y?s("div",Object.assign({className:r,style:Object.assign(Object.assign({},o),{height:p||"100%",width:"100%",display:"flex",flexDirection:"column",minHeight:0})},{children:s(n,{messages:O,onSend:s=>e(void 0,void 0,void 0,(function*(){null==b||b(s),yield S(s)})),header:c?I:void 0,placeholder:d,suggestions:m,iceBreakers:v,videoStarter:u,disabled:g||N,isThinking:h||C,onIceBreakerClick:f,chatState:j,chatWindowHeight:k||"100%",inputDisabled:x})})):s(a,{className:r,style:o})};export{r as AIChat};
|
|
2
2
|
//# sourceMappingURL=AIChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIChat.js","sources":["../../../../../src/components/bik-chatbot/components/AIChat.tsx"],"sourcesContent":["import React from 'react';\nimport { useAIContext } from '../contexts/AIContext';\nimport { AIChatProps } from '../types';\nimport ChatLoadingState from './ChatLoadingState';\nimport ChatWindow from './ChatWindow';\n\nexport const AIChat: React.FC<\n\tAIChatProps & { chatWindowHeight?: string | number }\n> = ({\n\tclassName,\n\tstyle,\n\theader,\n\tshowHeader = true,\n\tplaceholder = 'Ask me anything...',\n\tsuggestions = [\n\t\t'Top festivals for marketing',\n\t\t'Top events this week?',\n\t\t'Top August festivals near you',\n\t],\n\tdisabled = false,\n\tisThinking = false,\n\theight,\n\ticeBreakers,\n\tvideoStarter,\n\tonMessageSent,\n\tonIceBreakerClick,\n\tchatState,\n\tchatWindowHeight,\n\tinputDisabled = false,\n}) => {\n\tconst {\n\t\tisReady,\n\t\tisLoading,\n\t\tmessages,\n\t\tsendMessage,\n\t\terror,\n\t\tsystem,\n\t\tisApiCallInProgress,\n\t} = useAIContext();\n\n\t// Use system name as header if not provided\n\tconst displayHeader = header || system?.name || 'AI Assistant';\n\n\t// Handle message sending with callback\n\tconst handleSendMessage = async (content: string) => {\n\t\t// Call onMessageSent immediately when user sends message (before AI response)\n\t\tonMessageSent?.(content);\n\t\t// Then send the message to AI service\n\t\tawait sendMessage(content);\n\t};\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={`flex items-center justify-center p-6 ${className}`}\n\t\t\t\tstyle={style}\n\t\t\t>\n\t\t\t\t<div className=\"text-red-500 text-center\">\n\t\t\t\t\t<div className=\"text-lg font-semibold mb-2\">Error</div>\n\t\t\t\t\t<div className=\"text-sm\">{error}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!isReady) {\n\t\treturn <ChatLoadingState className={className} style={style} />;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={className}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\theight: height || '100%',\n\t\t\t\twidth: '100%',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\tminHeight: 0, // Important for flex children to shrink\n\t\t\t}}\n\t\t>\n\t\t\t<ChatWindow\n\t\t\t\tmessages={messages}\n\t\t\t\tonSend={handleSendMessage}\n\t\t\t\theader={showHeader ? displayHeader : undefined}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tsuggestions={suggestions}\n\t\t\t\ticeBreakers={iceBreakers}\n\t\t\t\tvideoStarter={videoStarter}\n\t\t\t\tdisabled={disabled || isLoading}\n\t\t\t\tisThinking={isThinking || isApiCallInProgress}\n\t\t\t\tonIceBreakerClick={onIceBreakerClick}\n\t\t\t\tchatState={chatState}\n\t\t\t\tchatWindowHeight={chatWindowHeight || '100%'}\n\t\t\t\tinputDisabled={inputDisabled}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n"],"names":["AIChat","
|
|
1
|
+
{"version":3,"file":"AIChat.js","sources":["../../../../../src/components/bik-chatbot/components/AIChat.tsx"],"sourcesContent":["import React from 'react';\nimport { useAIContext } from '../contexts/AIContext';\nimport { AIChatProps } from '../types';\nimport ChatLoadingState from './ChatLoadingState';\nimport ChatWindow from './ChatWindow';\n\nexport const AIChat: React.FC<\n\tAIChatProps & { chatWindowHeight?: string | number }\n> = ({\n\tclassName,\n\tstyle,\n\theader,\n\tshowHeader = true,\n\tplaceholder = 'Ask me anything...',\n\tsuggestions = [\n\t\t'Top festivals for marketing',\n\t\t'Top events this week?',\n\t\t'Top August festivals near you',\n\t],\n\tdisabled = false,\n\tisThinking = false,\n\theight,\n\ticeBreakers,\n\tvideoStarter,\n\tonMessageSent,\n\tonIceBreakerClick,\n\tchatState,\n\tchatWindowHeight,\n\tinputDisabled = false,\n}) => {\n\tconst {\n\t\tisReady,\n\t\tisLoading,\n\t\tmessages,\n\t\tsendMessage,\n\t\terror,\n\t\tsystem,\n\t\tisApiCallInProgress,\n\t} = useAIContext();\n\n\t// Use system name as header if not provided\n\tconst displayHeader = header || system?.name || 'AI Assistant';\n\n\t// Handle message sending with callback\n\tconst handleSendMessage = async (content: string) => {\n\t\t// Call onMessageSent immediately when user sends message (before AI response)\n\t\tonMessageSent?.(content);\n\t\t// Then send the message to AI service\n\t\tawait sendMessage(content);\n\t};\n\n\tif (error) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={`flex items-center justify-center p-6 ${className}`}\n\t\t\t\tstyle={style}\n\t\t\t>\n\t\t\t\t<div className=\"text-red-500 text-center\">\n\t\t\t\t\t<div className=\"text-lg font-semibold mb-2\">Error</div>\n\t\t\t\t\t<div className=\"text-sm\">{error}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (!isReady) {\n\t\treturn <ChatLoadingState className={className} style={style} />;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={className}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\theight: height || '100%',\n\t\t\t\twidth: '100%',\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\tminHeight: 0, // Important for flex children to shrink\n\t\t\t}}\n\t\t>\n\t\t\t<ChatWindow\n\t\t\t\tmessages={messages}\n\t\t\t\tonSend={handleSendMessage}\n\t\t\t\theader={showHeader ? displayHeader : undefined}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tsuggestions={suggestions}\n\t\t\t\ticeBreakers={iceBreakers}\n\t\t\t\tvideoStarter={videoStarter}\n\t\t\t\tdisabled={disabled || isLoading}\n\t\t\t\tisThinking={isThinking || isApiCallInProgress}\n\t\t\t\tonIceBreakerClick={onIceBreakerClick}\n\t\t\t\tchatState={chatState}\n\t\t\t\tchatWindowHeight={chatWindowHeight || '100%'}\n\t\t\t\tinputDisabled={inputDisabled}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n"],"names":["AIChat","className","style","header","showHeader","placeholder","suggestions","disabled","isThinking","height","iceBreakers","videoStarter","onMessageSent","onIceBreakerClick","chatState","chatWindowHeight","inputDisabled","isReady","isLoading","messages","sendMessage","error","system","isApiCallInProgress","useAIContext","displayHeader","name","_jsx","Object","assign","children","_jsxs","width","display","flexDirection","minHeight","ChatWindow","onSend","content","__awaiter","undefined","ChatLoadingState"],"mappings":"sOAMO,MAAMA,EAETA,EACHC,YACAC,QACAC,SACAC,cAAa,EACbC,cAAc,qBACdC,cAAc,CACb,8BACA,wBACA,iCAEDC,YAAW,EACXC,cAAa,EACbC,SACAC,cACAC,eACAC,gBACAC,oBACAC,YACAC,mBACAC,iBAAgB,MAEhB,MAAMC,QACLA,EAAOC,UACPA,EAASC,SACTA,EAAQC,YACRA,EAAWC,MACXA,EAAKC,OACLA,EAAMC,oBACNA,GACGC,IAGEC,EAAgBtB,IAAUmB,aAAA,EAAAA,EAAQI,OAAQ,eAUhD,OAAIL,EAEFM,EAAA,MAAAC,OAAAC,OAAA,CACC5B,UAAW,wCAAwCA,IACnDC,MAAOA,GAEP,CAAA4B,SAAAC,EAAA,MAAAH,OAAAC,OAAA,CAAK5B,UAAU,4BACd,CAAA6B,SAAA,CAAAH,EAAA,MAAAC,OAAAC,OAAA,CAAK5B,UAAU,8BAA4B,CAAA6B,SAAA,WAC3CH,EAAK,MAAAC,OAAAC,OAAA,CAAA5B,UAAU,qBAAWoB,YAMzBJ,EAKJU,uBACC1B,UAAWA,EACXC,MACI0B,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAA3B,GACH,CAAAO,OAAQA,GAAU,OAClBuB,MAAO,OACPC,QAAS,OACTC,cAAe,SACfC,UAAW,KAGZ,CAAAL,SAAAH,EAACS,EAAU,CACVjB,SAAUA,EACVkB,OAvC8BC,GAAmBC,OAAA,OAAA,OAAA,GAAA,YAEnD3B,SAAAA,EAAgB0B,SAEVlB,EAAYkB,EACnB,IAmCGnC,OAAQC,EAAaqB,OAAgBe,EACrCnC,YAAaA,EACbC,YAAaA,EACbI,YAAaA,EACbC,aAAcA,EACdJ,SAAUA,GAAYW,EACtBV,WAAYA,GAAce,EAC1BV,kBAAmBA,EACnBC,UAAWA,EACXC,iBAAkBA,GAAoB,OACtCC,cAAeA,OA5BVW,EAACc,EAAgB,CAACxC,UAAWA,EAAWC,MAAOA,GA8BhD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{AIProvider as t}from"../contexts/AIContext.js";import{AIChat as s}from"./AIChat.js";const o=
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{AIProvider as t}from"../contexts/AIContext.js";import{AIChat as s}from"./AIChat.js";const o=({systemPrompt:o,systemId:r,functions:a,functionHandler:i,onMessageReceived:n,displayInUI:d,maxToolCalls:c,maxTokens:l,model:m,conversationId:h,className:p,height:u,showHeader:f=!0,placeholder:g,iceBreakers:x,videoStarter:y,onMessageSent:I,onIceBreakerClick:v,chatState:S,inputDisabled:b,requestExecutor:k,baseUrl:w,endpointPath:C,responseFormat:H,responseSchema:j,width:E,maxWidth:M,fullHeight:P,style:B,chatWindowHeight:R,tools:T,onSystemReady:U,useCase:W,storeId:q})=>{if(!o)throw new Error("systemPrompt is required for generic mode.");const D=Object.assign({width:E||void 0,maxWidth:E?void 0:M||480,height:P?"100%":u||(null==B?void 0:B.height)||void 0,display:"flex",flexDirection:"column",border:"1px solid #E0E0E0",background:"#fff"},B);return e("div",Object.assign({className:p,style:D},{children:e(t,Object.assign({systemPrompt:o,systemId:r,functions:a,functionHandler:i,responseFormat:H,responseSchema:j,onMessageReceived:n,displayInUI:d,maxToolCalls:c,maxTokens:l,customModel:m,conversationId:h,requestExecutor:k,baseUrl:w,endpointPath:C,tools:T,onSystemReady:U,useCase:W,storeId:q},{children:e(s,{height:P?"100%":u,chatWindowHeight:R,showHeader:f,placeholder:g,iceBreakers:x,videoStarter:y,onMessageSent:I,onIceBreakerClick:v,chatState:S,inputDisabled:b})}))}))};export{o as BIKChatbot,o as default};
|
|
2
2
|
//# sourceMappingURL=BIKChatbot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BIKChatbot.js","sources":["../../../../../src/components/bik-chatbot/components/BIKChatbot.tsx"],"sourcesContent":["import { CSSProperties, FC } from 'react';\nimport { AIProvider } from '../contexts/AIContext';\nimport { BIKChatbotProps, SystemConfig } from '../types';\nimport { AIChat } from './AIChat';\n\n// BIKChatbotProps is now imported from centralized types\n\n/**\n * BIKChatbot - Generic AI chatbot component\n *\n * This component provides a flexible, generic chatbot interface that can be configured\n * for any use case through custom prompts, functions, and response handling.\n *\n * Usage Examples:\n *\n * // Simple text chatbot\n * <BIKChatbot\n * systemPrompt=\"You are a helpful assistant\"\n * responseFormat=\"text\"\n * onMessageReceived={(text) => handleText(text)}\n * />\n *\n */\n/**\n * @prop chatWindowHeight - The height (px or string) for internal chat window/messages area. Default 400px.\n * @prop fullHeight - If true, makes the chatbot extend to full height (100% height)\n * @prop width - Width of the chatbot container (default: undefined, will use maxWidth constraint)\n * @prop maxWidth - Maximum width constraint (default: 480px, only applies if width is not set)\n * @prop onSystemReady - Callback fired when system is initialized, receives SystemConfig with name, id, model, etc.\n * @prop useCase - Optional use case identifier for the chatbot\n * @prop storeId - Optional store ID identifier for the chatbot\n */\nexport interface BIKChatbotWithStyleProps extends BIKChatbotProps {\n\twidth?: string | number;\n\tmaxWidth?: string | number;\n\tfullHeight?: boolean;\n\tstyle?: CSSProperties;\n\tchatWindowHeight?: string | number;\n\ttools?: string[];\n\tonSystemReady?: (system: SystemConfig) => void;\n\tuseCase?: string;\n\tstoreId?: string;\n}\n\nexport const BIKChatbot: FC<BIKChatbotWithStyleProps> = ({\n\tsystemPrompt,\n\tsystemId,\n\tfunctions,\n\tfunctionHandler,\n\tonMessageReceived,\n\tdisplayInUI,\n\tmaxToolCalls, // Generic\n\tmaxTokens, // Maximum tokens for AI response\n\tmodel,\n\tconversationId,\n\tclassName,\n\theight,\n\tshowHeader = true,\n\tplaceholder,\n\ticeBreakers,\n\tvideoStarter,\n\tonMessageSent,\n\tonIceBreakerClick,\n\tchatState, // Common\n\tinputDisabled,\n\trequestExecutor,\n\tbaseUrl,\n\tendpointPath,\n\tresponseFormat,\n\tresponseSchema,\n\twidth,\n\tmaxWidth,\n\tfullHeight,\n\tstyle,\n\tchatWindowHeight,\n\ttools,\n\tonSystemReady,\n\tuseCase,\n\tstoreId,\n}) => {\n\tif (!systemPrompt) {\n\t\tthrow new Error('systemPrompt is required for generic mode.');\n\t}\n\n\t// Calculate container styles\n\t// Width: if explicitly set, use it; otherwise apply maxWidth constraint\n\t// Height: if fullHeight is true, set to 100% and use flex layout\n\tconst containerStyle: CSSProperties = {\n\t\twidth: width || undefined,\n\t\tmaxWidth: width ? undefined : maxWidth || 480, // Only apply maxWidth if width is not explicitly set\n\t\theight: fullHeight ? '100%' : height || style?.height || undefined,\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tborder: '1px solid #E0E0E0',\n\t\tbackground: '#fff',\n\t\t...style,\n\t};\n\n\treturn (\n\t\t<div className={className} style={containerStyle}>\n\t\t\t<AIProvider\n\t\t\t\tsystemPrompt={systemPrompt}\n\t\t\t\tsystemId={systemId}\n\t\t\t\tfunctions={functions}\n\t\t\t\tfunctionHandler={functionHandler}\n\t\t\t\tresponseFormat={responseFormat}\n\t\t\t\tresponseSchema={responseSchema}\n\t\t\t\tonMessageReceived={onMessageReceived}\n\t\t\t\tdisplayInUI={displayInUI}\n\t\t\t\tmaxToolCalls={maxToolCalls}\n\t\t\t\tmaxTokens={maxTokens}\n\t\t\t\tcustomModel={model}\n\t\t\t\tconversationId={conversationId}\n\t\t\t\trequestExecutor={requestExecutor}\n\t\t\t\tbaseUrl={baseUrl}\n\t\t\t\tendpointPath={endpointPath}\n\t\t\t\ttools={tools}\n\t\t\t\tonSystemReady={onSystemReady}\n\t\t\t\tuseCase={useCase}\n\t\t\t\tstoreId={storeId}\n\t\t\t>\n\t\t\t\t<AIChat\n\t\t\t\t\theight={fullHeight ? '100%' : height}\n\t\t\t\t\tchatWindowHeight={chatWindowHeight}\n\t\t\t\t\tshowHeader={showHeader}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\ticeBreakers={iceBreakers}\n\t\t\t\t\tvideoStarter={videoStarter}\n\t\t\t\t\tonMessageSent={onMessageSent}\n\t\t\t\t\tonIceBreakerClick={onIceBreakerClick}\n\t\t\t\t\tchatState={chatState}\n\t\t\t\t\tinputDisabled={inputDisabled}\n\t\t\t\t/>\n\t\t\t</AIProvider>\n\t\t</div>\n\t);\n};\n\nexport default BIKChatbot;\n"],"names":["BIKChatbot","
|
|
1
|
+
{"version":3,"file":"BIKChatbot.js","sources":["../../../../../src/components/bik-chatbot/components/BIKChatbot.tsx"],"sourcesContent":["import { CSSProperties, FC } from 'react';\nimport { AIProvider } from '../contexts/AIContext';\nimport { BIKChatbotProps, SystemConfig } from '../types';\nimport { AIChat } from './AIChat';\n\n// BIKChatbotProps is now imported from centralized types\n\n/**\n * BIKChatbot - Generic AI chatbot component\n *\n * This component provides a flexible, generic chatbot interface that can be configured\n * for any use case through custom prompts, functions, and response handling.\n *\n * Usage Examples:\n *\n * // Simple text chatbot\n * <BIKChatbot\n * systemPrompt=\"You are a helpful assistant\"\n * responseFormat=\"text\"\n * onMessageReceived={(text) => handleText(text)}\n * />\n *\n */\n/**\n * @prop chatWindowHeight - The height (px or string) for internal chat window/messages area. Default 400px.\n * @prop fullHeight - If true, makes the chatbot extend to full height (100% height)\n * @prop width - Width of the chatbot container (default: undefined, will use maxWidth constraint)\n * @prop maxWidth - Maximum width constraint (default: 480px, only applies if width is not set)\n * @prop onSystemReady - Callback fired when system is initialized, receives SystemConfig with name, id, model, etc.\n * @prop useCase - Optional use case identifier for the chatbot\n * @prop storeId - Optional store ID identifier for the chatbot\n */\nexport interface BIKChatbotWithStyleProps extends BIKChatbotProps {\n\twidth?: string | number;\n\tmaxWidth?: string | number;\n\tfullHeight?: boolean;\n\tstyle?: CSSProperties;\n\tchatWindowHeight?: string | number;\n\ttools?: string[];\n\tonSystemReady?: (system: SystemConfig) => void;\n\tuseCase?: string;\n\tstoreId?: string;\n}\n\nexport const BIKChatbot: FC<BIKChatbotWithStyleProps> = ({\n\tsystemPrompt,\n\tsystemId,\n\tfunctions,\n\tfunctionHandler,\n\tonMessageReceived,\n\tdisplayInUI,\n\tmaxToolCalls, // Generic\n\tmaxTokens, // Maximum tokens for AI response\n\tmodel,\n\tconversationId,\n\tclassName,\n\theight,\n\tshowHeader = true,\n\tplaceholder,\n\ticeBreakers,\n\tvideoStarter,\n\tonMessageSent,\n\tonIceBreakerClick,\n\tchatState, // Common\n\tinputDisabled,\n\trequestExecutor,\n\tbaseUrl,\n\tendpointPath,\n\tresponseFormat,\n\tresponseSchema,\n\twidth,\n\tmaxWidth,\n\tfullHeight,\n\tstyle,\n\tchatWindowHeight,\n\ttools,\n\tonSystemReady,\n\tuseCase,\n\tstoreId,\n}) => {\n\tif (!systemPrompt) {\n\t\tthrow new Error('systemPrompt is required for generic mode.');\n\t}\n\n\t// Calculate container styles\n\t// Width: if explicitly set, use it; otherwise apply maxWidth constraint\n\t// Height: if fullHeight is true, set to 100% and use flex layout\n\tconst containerStyle: CSSProperties = {\n\t\twidth: width || undefined,\n\t\tmaxWidth: width ? undefined : maxWidth || 480, // Only apply maxWidth if width is not explicitly set\n\t\theight: fullHeight ? '100%' : height || style?.height || undefined,\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tborder: '1px solid #E0E0E0',\n\t\tbackground: '#fff',\n\t\t...style,\n\t};\n\n\treturn (\n\t\t<div className={className} style={containerStyle}>\n\t\t\t<AIProvider\n\t\t\t\tsystemPrompt={systemPrompt}\n\t\t\t\tsystemId={systemId}\n\t\t\t\tfunctions={functions}\n\t\t\t\tfunctionHandler={functionHandler}\n\t\t\t\tresponseFormat={responseFormat}\n\t\t\t\tresponseSchema={responseSchema}\n\t\t\t\tonMessageReceived={onMessageReceived}\n\t\t\t\tdisplayInUI={displayInUI}\n\t\t\t\tmaxToolCalls={maxToolCalls}\n\t\t\t\tmaxTokens={maxTokens}\n\t\t\t\tcustomModel={model}\n\t\t\t\tconversationId={conversationId}\n\t\t\t\trequestExecutor={requestExecutor}\n\t\t\t\tbaseUrl={baseUrl}\n\t\t\t\tendpointPath={endpointPath}\n\t\t\t\ttools={tools}\n\t\t\t\tonSystemReady={onSystemReady}\n\t\t\t\tuseCase={useCase}\n\t\t\t\tstoreId={storeId}\n\t\t\t>\n\t\t\t\t<AIChat\n\t\t\t\t\theight={fullHeight ? '100%' : height}\n\t\t\t\t\tchatWindowHeight={chatWindowHeight}\n\t\t\t\t\tshowHeader={showHeader}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\ticeBreakers={iceBreakers}\n\t\t\t\t\tvideoStarter={videoStarter}\n\t\t\t\t\tonMessageSent={onMessageSent}\n\t\t\t\t\tonIceBreakerClick={onIceBreakerClick}\n\t\t\t\t\tchatState={chatState}\n\t\t\t\t\tinputDisabled={inputDisabled}\n\t\t\t\t/>\n\t\t\t</AIProvider>\n\t\t</div>\n\t);\n};\n\nexport default BIKChatbot;\n"],"names":["BIKChatbot","systemPrompt","systemId","functions","functionHandler","onMessageReceived","displayInUI","maxToolCalls","maxTokens","model","conversationId","className","height","showHeader","placeholder","iceBreakers","videoStarter","onMessageSent","onIceBreakerClick","chatState","inputDisabled","requestExecutor","baseUrl","endpointPath","responseFormat","responseSchema","width","maxWidth","fullHeight","style","chatWindowHeight","tools","onSystemReady","useCase","storeId","Error","containerStyle","Object","assign","undefined","display","flexDirection","border","background","_jsx","children","AIProvider","customModel","AIChat"],"mappings":"mIA4CO,MAAMA,EAA2CA,EACvDC,eACAC,WACAC,YACAC,kBACAC,oBACAC,cACAC,eACAC,YACAC,QACAC,iBACAC,YACAC,SACAC,cAAa,EACbC,cACAC,cACAC,eACAC,gBACAC,oBACAC,YACAC,gBACAC,kBACAC,UACAC,eACAC,iBACAC,iBACAC,QACAC,WACAC,aACAC,QACAC,mBACAC,QACAC,gBACAC,UACAC,cAEA,IAAKjC,EACJ,MAAM,IAAIkC,MAAM,8CAMjB,MAAMC,EAAcC,OAAAC,OAAA,CACnBZ,MAAOA,QAASa,EAChBZ,SAAUD,OAAQa,EAAYZ,GAAY,IAC1Cf,OAAQgB,EAAa,OAAShB,IAAUiB,aAAA,EAAAA,EAAOjB,cAAU2B,EACzDC,QAAS,OACTC,cAAe,SACfC,OAAQ,oBACRC,WAAY,QACTd,GAGJ,OACCe,EAAA,MAAAP,OAAAC,OAAA,CAAK3B,UAAWA,EAAWkB,MAAOO,GACjC,CAAAS,SAAAD,EAACE,EAAUT,OAAAC,OAAA,CACVrC,aAAcA,EACdC,SAAUA,EACVC,UAAWA,EACXC,gBAAiBA,EACjBoB,eAAgBA,EAChBC,eAAgBA,EAChBpB,kBAAmBA,EACnBC,YAAaA,EACbC,aAAcA,EACdC,UAAWA,EACXuC,YAAatC,EACbC,eAAgBA,EAChBW,gBAAiBA,EACjBC,QAASA,EACTC,aAAcA,EACdQ,MAAOA,EACPC,cAAeA,EACfC,QAASA,EACTC,QAASA,GAAO,CAAAW,SAEhBD,EAACI,EACA,CAAApC,OAAQgB,EAAa,OAAShB,EAC9BkB,iBAAkBA,EAClBjB,WAAYA,EACZC,YAAaA,EACbC,YAAaA,EACbC,aAAcA,EACdC,cAAeA,EACfC,kBAAmBA,EACnBC,UAAWA,EACXC,cAAeA,SAGZ"}
|
|
@@ -174,5 +174,5 @@ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useState as t,useEffect
|
|
|
174
174
|
animation: ${m} 2.6s ease-in-out infinite;
|
|
175
175
|
pointer-events: none;
|
|
176
176
|
z-index: 0;
|
|
177
|
-
`,z=
|
|
177
|
+
`,z=({className:r,style:n})=>{const[d,p]=t(0);return i((()=>{const e=window.setInterval((()=>{p((e=>(e+1)%o.length))}),2e3);return()=>window.clearInterval(e)}),[]),e(c,Object.assign({className:r,style:n},{children:a(f,{children:[a(x,{children:[e($,{}),e(j,{src:"https://firebasestorage.googleapis.com/v0/b/bikayi-chat.appspot.com/o/images-uid%2Fcdf9c32d-6cf6-427f-b5c1-53cd424bfd5d?alt=media&token=740083c2-08ad-4295-a169-77c7d8ddaea9",alt:"AI thinking"})]}),e(b,{children:o[d]},d),e(h,{children:[0,1,2].map((a=>e(y,{delay:.22*a},a)))}),e(u,{children:s.map(((t,i)=>a(w,Object.assign({delay:.4+.2*i},{children:[e(v,{children:t.symbol}),e(k,{children:t.text})]}),t.text)))})]})}))};export{z as default};
|
|
178
178
|
//# sourceMappingURL=ChatLoadingState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatLoadingState.js","sources":["../../../../../src/components/bik-chatbot/components/ChatLoadingState.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport styled, { keyframes } from 'styled-components';\n\nconst LOADER_ICON_URL =\n\t'https://firebasestorage.googleapis.com/v0/b/bikayi-chat.appspot.com/o/images-uid%2Fcdf9c32d-6cf6-427f-b5c1-53cd424bfd5d?alt=media&token=740083c2-08ad-4295-a169-77c7d8ddaea9';\n\nconst thinkingMessages = [\n\t'Preparing to assist you...',\n\t'Getting ready to brainstorm...',\n];\n\nconst infoItems = [\n\t{ symbol: '✨', text: 'Get AI-powered ideas' },\n\t{ symbol: '💬', text: 'Ask me anything' },\n];\n\nconst fadeSlideUp = keyframes`\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateY(12px);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateY(0);\n\t}\n`;\n\nconst dotPulse = keyframes`\n\t0%, 100% {\n\t\ttransform: scale(1);\n\t\topacity: 0.3;\n\t}\n\t50% {\n\t\ttransform: scale(1.4);\n\t\topacity: 1;\n\t}\n`;\n\nconst cardSlide = keyframes`\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateX(-18px);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateX(0);\n\t}\n`;\n\nconst LoadingWrapper = styled.div`\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 24px;\n\tmin-height: 240px;\n`;\n\nconst LoadingCard = styled.div`\n\ttext-align: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 24px;\n\tmax-width: 280px;\n\twidth: 100%;\n`;\n\nconst IconWrapper = styled.div`\n\twidth: 76px;\n\theight: 76px;\n\tborder-radius: 50%;\n\tbackground: linear-gradient(\n\t\t135deg,\n\t\trgba(255, 22, 106, 0.28) 0%,\n\t\trgba(123, 104, 238, 0.32) 100%\n\t);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-shadow: 0 22px 44px rgba(123, 104, 238, 0.22);\n\tpadding: 12px;\n\tposition: relative;\n\toverflow: hidden;\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tinset: 6px;\n\t\tborder-radius: 50%;\n\t\tbackground: radial-gradient(\n\t\t\tcircle at 30% 30%,\n\t\t\trgba(255, 255, 255, 0.6),\n\t\t\ttransparent 70%\n\t\t);\n\t\tmix-blend-mode: screen;\n\t}\n`;\n\nconst iconPulse = keyframes`\n\t0% {\n\t\ttransform: scale(1);\n\t\tfilter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));\n\t}\n\t35% {\n\t\ttransform: scale(1.04);\n\t\tfilter: drop-shadow(0 10px 24px rgba(236, 72, 153, 0.32));\n\t}\n\t70% {\n\t\ttransform: scale(0.98);\n\t\tfilter: drop-shadow(0 4px 12px rgba(148, 163, 184, 0.18));\n\t}\n\t100% {\n\t\ttransform: scale(1);\n\t\tfilter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));\n\t}\n`;\n\nconst iconGlowSweep = keyframes`\n\t0% {\n\t\ttransform: translateX(-120%);\n\t\topacity: 0;\n\t}\n\t30% {\n\t\topacity: 0.4;\n\t}\n\t60% {\n\t\ttransform: translateX(120%);\n\t\topacity: 0;\n\t}\n\t100% {\n\t\ttransform: translateX(120%);\n\t\topacity: 0;\n\t}\n`;\n\nconst MessageText = styled.div`\n\tfont-size: 14px;\n\tcolor: #52586c;\n\tline-height: 1.5;\n\tmin-height: 21px;\n\tanimation: ${fadeSlideUp} 0.4s ease forwards;\n`;\n\nconst Dots = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\tgap: 6px;\n`;\n\nconst Dot = styled.span<{ delay: number }>`\n\twidth: 8px;\n\theight: 8px;\n\tborder-radius: 50%;\n\tbackground: linear-gradient(135deg, #f29cc9 0%, #b8a5f6 100%);\n\tanimation: ${dotPulse} 1.4s ease-in-out infinite;\n\tanimation-delay: ${(props) => props.delay}s;\n`;\n\nconst InfoList = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n\tmargin-top: 8px;\n\twidth: 100%;\n`;\n\nconst InfoCard = styled.div<{ delay: number }>`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tbackground: linear-gradient(\n\t\t135deg,\n\t\trgba(255, 255, 255, 0.92) 0%,\n\t\trgba(248, 246, 255, 0.96) 100%\n\t);\n\tborder-radius: 12px;\n\tpadding: 12px;\n\tbox-shadow: inset 0 0 0 1px rgba(199, 210, 254, 0.3);\n\tanimation: ${cardSlide} 0.5s ease forwards;\n\tanimation-delay: ${(props) => props.delay}s;\n\topacity: 0;\n`;\n\nconst InfoIcon = styled.div`\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 10px;\n\tbackground: linear-gradient(140deg, #ffffff 0%, #f7f3ff 100%);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-shadow: 0 10px 20px rgba(197, 181, 255, 0.24);\n\tfont-size: 18px;\n`;\n\nconst InfoText = styled.span`\n\tfont-size: 12px;\n\tcolor: #5f6781;\n\ttext-align: left;\n`;\n\nconst IconImage = styled.img`\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: contain;\n\tfilter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));\n\tanimation: ${iconPulse} 2.6s ease-in-out infinite;\n\tposition: relative;\n\tz-index: 1;\n`;\n\nconst IconSweep = styled.div`\n\tposition: absolute;\n\tinset: 12px;\n\tborder-radius: 999px;\n\tbackground: linear-gradient(\n\t\t140deg,\n\t\trgba(255, 255, 255, 0.65),\n\t\trgba(255, 255, 255, 0)\n\t);\n\tanimation: ${iconGlowSweep} 2.6s ease-in-out infinite;\n\tpointer-events: none;\n\tz-index: 0;\n`;\n\ninterface ChatLoadingStateProps {\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n}\n\nconst ChatLoadingState: React.FC<ChatLoadingStateProps> = ({\n\tclassName,\n\tstyle,\n}) => {\n\tconst [messageIndex, setMessageIndex] = useState(0);\n\n\tuseEffect(() => {\n\t\tconst interval = window.setInterval(() => {\n\t\t\tsetMessageIndex((prev) => (prev + 1) % thinkingMessages.length);\n\t\t}, 2000);\n\n\t\treturn () => window.clearInterval(interval);\n\t}, []);\n\n\treturn (\n\t\t<LoadingWrapper className={className} style={style}>\n\t\t\t<LoadingCard>\n\t\t\t\t<IconWrapper>\n\t\t\t\t\t<IconSweep />\n\t\t\t\t\t<IconImage src={LOADER_ICON_URL} alt=\"AI thinking\" />\n\t\t\t\t</IconWrapper>\n\n\t\t\t\t<MessageText key={messageIndex}>\n\t\t\t\t\t{thinkingMessages[messageIndex]}\n\t\t\t\t</MessageText>\n\n\t\t\t\t<Dots>\n\t\t\t\t\t{[0, 1, 2].map((dot) => (\n\t\t\t\t\t\t<Dot key={dot} delay={dot * 0.22} />\n\t\t\t\t\t))}\n\t\t\t\t</Dots>\n\n\t\t\t\t<InfoList>\n\t\t\t\t\t{infoItems.map((item, index) => (\n\t\t\t\t\t\t<InfoCard key={item.text} delay={0.4 + index * 0.2}>\n\t\t\t\t\t\t\t<InfoIcon>{item.symbol}</InfoIcon>\n\t\t\t\t\t\t\t<InfoText>{item.text}</InfoText>\n\t\t\t\t\t\t</InfoCard>\n\t\t\t\t\t))}\n\t\t\t\t</InfoList>\n\t\t\t</LoadingCard>\n\t\t</LoadingWrapper>\n\t);\n};\n\nexport default ChatLoadingState;\n"],"names":["thinkingMessages","infoItems","symbol","text","fadeSlideUp","keyframes","dotPulse","cardSlide","LoadingWrapper","styled","div","LoadingCard","IconWrapper","iconPulse","iconGlowSweep","MessageText","Dots","Dot","span","props","delay","InfoList","InfoCard","InfoIcon","InfoText","IconImage","img","IconSweep","ChatLoadingState","
|
|
1
|
+
{"version":3,"file":"ChatLoadingState.js","sources":["../../../../../src/components/bik-chatbot/components/ChatLoadingState.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport styled, { keyframes } from 'styled-components';\n\nconst LOADER_ICON_URL =\n\t'https://firebasestorage.googleapis.com/v0/b/bikayi-chat.appspot.com/o/images-uid%2Fcdf9c32d-6cf6-427f-b5c1-53cd424bfd5d?alt=media&token=740083c2-08ad-4295-a169-77c7d8ddaea9';\n\nconst thinkingMessages = [\n\t'Preparing to assist you...',\n\t'Getting ready to brainstorm...',\n];\n\nconst infoItems = [\n\t{ symbol: '✨', text: 'Get AI-powered ideas' },\n\t{ symbol: '💬', text: 'Ask me anything' },\n];\n\nconst fadeSlideUp = keyframes`\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateY(12px);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateY(0);\n\t}\n`;\n\nconst dotPulse = keyframes`\n\t0%, 100% {\n\t\ttransform: scale(1);\n\t\topacity: 0.3;\n\t}\n\t50% {\n\t\ttransform: scale(1.4);\n\t\topacity: 1;\n\t}\n`;\n\nconst cardSlide = keyframes`\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateX(-18px);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateX(0);\n\t}\n`;\n\nconst LoadingWrapper = styled.div`\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 24px;\n\tmin-height: 240px;\n`;\n\nconst LoadingCard = styled.div`\n\ttext-align: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: 24px;\n\tmax-width: 280px;\n\twidth: 100%;\n`;\n\nconst IconWrapper = styled.div`\n\twidth: 76px;\n\theight: 76px;\n\tborder-radius: 50%;\n\tbackground: linear-gradient(\n\t\t135deg,\n\t\trgba(255, 22, 106, 0.28) 0%,\n\t\trgba(123, 104, 238, 0.32) 100%\n\t);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-shadow: 0 22px 44px rgba(123, 104, 238, 0.22);\n\tpadding: 12px;\n\tposition: relative;\n\toverflow: hidden;\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tinset: 6px;\n\t\tborder-radius: 50%;\n\t\tbackground: radial-gradient(\n\t\t\tcircle at 30% 30%,\n\t\t\trgba(255, 255, 255, 0.6),\n\t\t\ttransparent 70%\n\t\t);\n\t\tmix-blend-mode: screen;\n\t}\n`;\n\nconst iconPulse = keyframes`\n\t0% {\n\t\ttransform: scale(1);\n\t\tfilter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));\n\t}\n\t35% {\n\t\ttransform: scale(1.04);\n\t\tfilter: drop-shadow(0 10px 24px rgba(236, 72, 153, 0.32));\n\t}\n\t70% {\n\t\ttransform: scale(0.98);\n\t\tfilter: drop-shadow(0 4px 12px rgba(148, 163, 184, 0.18));\n\t}\n\t100% {\n\t\ttransform: scale(1);\n\t\tfilter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));\n\t}\n`;\n\nconst iconGlowSweep = keyframes`\n\t0% {\n\t\ttransform: translateX(-120%);\n\t\topacity: 0;\n\t}\n\t30% {\n\t\topacity: 0.4;\n\t}\n\t60% {\n\t\ttransform: translateX(120%);\n\t\topacity: 0;\n\t}\n\t100% {\n\t\ttransform: translateX(120%);\n\t\topacity: 0;\n\t}\n`;\n\nconst MessageText = styled.div`\n\tfont-size: 14px;\n\tcolor: #52586c;\n\tline-height: 1.5;\n\tmin-height: 21px;\n\tanimation: ${fadeSlideUp} 0.4s ease forwards;\n`;\n\nconst Dots = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\tgap: 6px;\n`;\n\nconst Dot = styled.span<{ delay: number }>`\n\twidth: 8px;\n\theight: 8px;\n\tborder-radius: 50%;\n\tbackground: linear-gradient(135deg, #f29cc9 0%, #b8a5f6 100%);\n\tanimation: ${dotPulse} 1.4s ease-in-out infinite;\n\tanimation-delay: ${(props) => props.delay}s;\n`;\n\nconst InfoList = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n\tmargin-top: 8px;\n\twidth: 100%;\n`;\n\nconst InfoCard = styled.div<{ delay: number }>`\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tbackground: linear-gradient(\n\t\t135deg,\n\t\trgba(255, 255, 255, 0.92) 0%,\n\t\trgba(248, 246, 255, 0.96) 100%\n\t);\n\tborder-radius: 12px;\n\tpadding: 12px;\n\tbox-shadow: inset 0 0 0 1px rgba(199, 210, 254, 0.3);\n\tanimation: ${cardSlide} 0.5s ease forwards;\n\tanimation-delay: ${(props) => props.delay}s;\n\topacity: 0;\n`;\n\nconst InfoIcon = styled.div`\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 10px;\n\tbackground: linear-gradient(140deg, #ffffff 0%, #f7f3ff 100%);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-shadow: 0 10px 20px rgba(197, 181, 255, 0.24);\n\tfont-size: 18px;\n`;\n\nconst InfoText = styled.span`\n\tfont-size: 12px;\n\tcolor: #5f6781;\n\ttext-align: left;\n`;\n\nconst IconImage = styled.img`\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: contain;\n\tfilter: drop-shadow(0 6px 18px rgba(236, 72, 153, 0.22));\n\tanimation: ${iconPulse} 2.6s ease-in-out infinite;\n\tposition: relative;\n\tz-index: 1;\n`;\n\nconst IconSweep = styled.div`\n\tposition: absolute;\n\tinset: 12px;\n\tborder-radius: 999px;\n\tbackground: linear-gradient(\n\t\t140deg,\n\t\trgba(255, 255, 255, 0.65),\n\t\trgba(255, 255, 255, 0)\n\t);\n\tanimation: ${iconGlowSweep} 2.6s ease-in-out infinite;\n\tpointer-events: none;\n\tz-index: 0;\n`;\n\ninterface ChatLoadingStateProps {\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n}\n\nconst ChatLoadingState: React.FC<ChatLoadingStateProps> = ({\n\tclassName,\n\tstyle,\n}) => {\n\tconst [messageIndex, setMessageIndex] = useState(0);\n\n\tuseEffect(() => {\n\t\tconst interval = window.setInterval(() => {\n\t\t\tsetMessageIndex((prev) => (prev + 1) % thinkingMessages.length);\n\t\t}, 2000);\n\n\t\treturn () => window.clearInterval(interval);\n\t}, []);\n\n\treturn (\n\t\t<LoadingWrapper className={className} style={style}>\n\t\t\t<LoadingCard>\n\t\t\t\t<IconWrapper>\n\t\t\t\t\t<IconSweep />\n\t\t\t\t\t<IconImage src={LOADER_ICON_URL} alt=\"AI thinking\" />\n\t\t\t\t</IconWrapper>\n\n\t\t\t\t<MessageText key={messageIndex}>\n\t\t\t\t\t{thinkingMessages[messageIndex]}\n\t\t\t\t</MessageText>\n\n\t\t\t\t<Dots>\n\t\t\t\t\t{[0, 1, 2].map((dot) => (\n\t\t\t\t\t\t<Dot key={dot} delay={dot * 0.22} />\n\t\t\t\t\t))}\n\t\t\t\t</Dots>\n\n\t\t\t\t<InfoList>\n\t\t\t\t\t{infoItems.map((item, index) => (\n\t\t\t\t\t\t<InfoCard key={item.text} delay={0.4 + index * 0.2}>\n\t\t\t\t\t\t\t<InfoIcon>{item.symbol}</InfoIcon>\n\t\t\t\t\t\t\t<InfoText>{item.text}</InfoText>\n\t\t\t\t\t\t</InfoCard>\n\t\t\t\t\t))}\n\t\t\t\t</InfoList>\n\t\t\t</LoadingCard>\n\t\t</LoadingWrapper>\n\t);\n};\n\nexport default ChatLoadingState;\n"],"names":["thinkingMessages","infoItems","symbol","text","fadeSlideUp","keyframes","dotPulse","cardSlide","LoadingWrapper","styled","div","LoadingCard","IconWrapper","iconPulse","iconGlowSweep","MessageText","Dots","Dot","span","props","delay","InfoList","InfoCard","InfoIcon","InfoText","IconImage","img","IconSweep","ChatLoadingState","className","style","messageIndex","setMessageIndex","useState","useEffect","interval","window","setInterval","prev","length","clearInterval","_jsx","Object","assign","children","_jsxs","src","alt","map","dot","item","index"],"mappings":"mJAGA,MAGMA,EAAmB,CACxB,6BACA,kCAGKC,EAAY,CACjB,CAAEC,OAAQ,IAAKC,KAAM,wBACrB,CAAED,OAAQ,KAAMC,KAAM,oBAGjBC,EAAcC,CAAS;;;;;;;;;EAWvBC,EAAWD,CAAS;;;;;;;;;EAWpBE,EAAYF,CAAS;;;;;;;;;EAWrBG,EAAiBC,EAAOC,GAAG;;;;;;;EAS3BC,EAAcF,EAAOC,GAAG;;;;;;;;EAUxBE,EAAcH,EAAOC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BxBG,EAAYR,CAAS;;;;;;;;;;;;;;;;;EAmBrBS,EAAgBT,CAAS;;;;;;;;;;;;;;;;EAkBzBU,EAAcN,EAAOC,GAAG;;;;;cAKhBN;EAGRY,EAAOP,EAAOC,GAAG;;;;EAMjBO,EAAMR,EAAOS,IAAuB;;;;;cAK5BZ;oBACOa,GAAUA,EAAMC;EAG/BC,EAAWZ,EAAOC,GAAG;;;;;;EAQrBY,EAAWb,EAAOC,GAAsB;;;;;;;;;;;;cAYhCH;oBACOY,GAAUA,EAAMC;;EAI/BG,EAAWd,EAAOC,GAAG;;;;;;;;;;EAYrBc,EAAWf,EAAOS,IAAI;;;;EAMtBO,EAAYhB,EAAOiB,GAAG;;;;;cAKdb;;;EAKRc,EAAYlB,EAAOC,GAAG;;;;;;;;;cASdI;;;EAURc,EAAoDA,EACzDC,YACAC,YAEA,MAAOC,EAAcC,GAAmBC,EAAS,GAUjD,OARAC,GAAU,KACT,MAAMC,EAAWC,OAAOC,aAAY,KACnCL,GAAiBM,IAAUA,EAAO,GAAKtC,EAAiBuC,QAAO,GAC7D,KAEH,MAAO,IAAMH,OAAOI,cAAcL,EAAS,GACzC,IAGFM,EAACjC,EAAckC,OAAAC,OAAA,CAACd,UAAWA,EAAWC,MAAOA,GAAK,CAAAc,SACjDC,EAAClC,EAAW,CAAAiC,SAAA,CACXC,EAACjC,EACA,CAAAgC,SAAA,CAAAH,EAACd,EAAS,CAAA,GACVc,EAAChB,EAAS,CAACqB,IAtPf,+KAsPqCC,IAAI,mBAGtCN,EAAC1B,EAAW,CAAA6B,SACV5C,EAAiB+B,IADDA,GAIlBU,EAACzB,EAAI,CAAA4B,SACH,CAAC,EAAG,EAAG,GAAGI,KAAKC,GACfR,EAACxB,EAAG,CAAWG,MAAa,IAAN6B,GAAZA,OAIZR,EAACpB,EAAQ,CAAAuB,SACP3C,EAAU+C,KAAI,CAACE,EAAMC,IACrBN,EAACvB,iBAAyBF,MAAO,GAAc,GAAR+B,GAAW,CAAAP,SAAA,CACjDH,EAAClB,EAAU,CAAAqB,SAAAM,EAAKhD,SAChBuC,EAACjB,EAAQ,CAAAoB,SAAEM,EAAK/C,UAFF+C,EAAK/C,eAOP"}
|
|
@@ -251,5 +251,5 @@ import{jsxs as e,jsx as i}from"react/jsx-runtime";import t from"../../../assets/
|
|
|
251
251
|
-webkit-text-fill-color: transparent;
|
|
252
252
|
background-clip: text;
|
|
253
253
|
display: inline-block;
|
|
254
|
-
`,A=
|
|
254
|
+
`,A=({messages:o,onSend:A,header:B="Create with AI",placeholder:I="Discover the right event & launch campaigns for better conversions...",suggestions:M=["Top festivals for marketing","Top events this week?","Top August festivals near you"],iceBreakers:D,videoStarter:_,disabled:H=!1,isThinking:L=!1,onIceBreakerClick:W,chatState:K,chatWindowHeight:E,inputDisabled:N=!1})=>{const[P,V]=r(""),[q,G]=r(!1),[J,Q]=r(!1),R=n(null),U=n(null),X=q||L,Y=H||N,Z=K||(q||L?"thinking":J&&P.trim().length>0?"typing":0===o.length?"conversation-starter":o.length>0?"conversation":"default"),ee=()=>{!P.trim()||Y||X||(A(P),V(""),G(!0),setTimeout((()=>G(!1)),1500))},ie=P.trim().length>0,te=Y||X||!ie;a((()=>{var e;null===(e=R.current)||void 0===e||e.scrollIntoView({behavior:"smooth"})}),[o,q,L]);const re=E||"100%";return e(h,Object.assign({chatState:Z,style:{height:re}},{children:[e(g,{children:[i(t,{height:24,width:24}),i("div",Object.assign({className:"header-text"},{children:B}))]}),e(p,{children:[e(b,{children:["conversation-starter"===Z&&_&&e(x,{children:[i(f,{children:i(u,Object.assign({onClick:_.onPlay},{children:i("svg",Object.assign({viewBox:"0 0 24 24",fill:"currentColor"},{children:i("path",{d:"M8 5v14l11-7z"})}))}))}),e(m,{children:[i(d,Object.assign({style:{fontWeight:500,marginBottom:"4px"}},{children:_.title})),i(l,{children:_.description})]})]}),o.map((e=>i(k,Object.assign({role:e.role},{children:"assistant"===e.role?i("div",{dangerouslySetInnerHTML:{__html:s(e.content)}}):i("div",Object.assign({style:{whiteSpace:"pre-wrap"}},{children:e.content}))}),e.id))),(q||L)&&i(c,{}),i("div",{ref:R})]}),D&&"conversation-starter"===Z&&i(v,{children:i(w,{children:D.map((e=>i(y,Object.assign({disabled:Y,onClick:()=>{Y||(null==W||W(e),A(e.text))}},{children:i(C,{children:e.text})}),e.id)))})}),!D&&M.length>0&&"default"===Z&&i(F,{children:i(j,{children:M.map((e=>i(T,Object.assign({disabled:Y,onClick:()=>!Y&&A(e)},{children:e}),e)))})}),i($,{children:e(O,{children:[i(S,{ref:U,value:P,onChange:e=>{if(Y)return;const i=e.target.value;V(i),Q(i.trim().length>0);const t=U.current;t&&(t.style.height="auto",t.style.height=`${Math.min(t.scrollHeight,117)}px`)},placeholder:I,onKeyDown:e=>{Y||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),!X&&P.trim()&&ee())},disabled:Y,hasText:ie,chatState:Z}),i(z,Object.assign({onClick:ee,disabled:te,hasText:ie,"aria-label":"Send"},{children:e("svg",Object.assign({viewBox:"0 0 24 24",width:"20",height:"20",stroke:"white",strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"},{children:[i("path",{d:"M6 12h12"}),i("path",{d:"M12 6l6 6-6 6"})]}))}))]})})]})]}))};export{C as CustomGradientText,A as default};
|
|
255
255
|
//# sourceMappingURL=ChatWindow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatWindow.js","sources":["../../../../../src/components/bik-chatbot/components/ChatWindow.tsx"],"sourcesContent":["import AiIcon from '@src/assets/icons/Ai_event_generating.svg';\nimport React, { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { BodyCaption, BodySecondary } from '@src/components/TypographyStyle';\nimport { ChatState, ChatWindowProps } from '../types';\nimport { renderMarkdownLite } from '../utils/markdown';\nimport ThinkingIndicator from './ThinkingIndicator';\n\n// Single-column layout container\nconst ChatContainer = styled.div<{ chatState: ChatState }>`\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmin-width: 0;\n\tmin-height: 0;\n\theight: 100%;\n\tmax-height: 100%;\n\tbackground: white;\n\tborder-left: 1px solid #e5e7eb;\n\tposition: relative;\n\n\t/* State-based styling */\n\t${(props) => {\n\t\tswitch (props.chatState) {\n\t\t\tcase 'conversation-starter':\n\t\t\t\treturn `\n background: linear-gradient(180deg, #FFF6F9 0%, #FFFFFF 100%);\n `;\n\t\t\tcase 'thinking':\n\t\t\t\treturn `\n background: linear-gradient(180deg, #F8F9FA 0%, #FFFFFF 100%);\n `;\n\t\t\tdefault:\n\t\t\t\treturn `\n background: white;\n `;\n\t\t}\n\t}}\n`;\n\nconst Header = styled.div`\n\tpadding: 16px;\n\tborder-bottom: 1px solid #e5e7eb;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tbackground: white;\n\tflex-shrink: 0;\n\n\t.header-text {\n\t\tfont-size: 14px;\n\t\tfont-weight: 500;\n\t\tcolor: #374151;\n\t}\n`;\n\n// Main content area - single column\nconst MainContent = styled.div`\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tmin-height: 0;\n`;\n\nconst MessagesWrapper = styled.div`\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n\tbackground: #fafafa;\n\tscroll-behavior: smooth;\n\tmin-height: 0;\n\n\t/* Custom scrollbar */\n\t&::-webkit-scrollbar {\n\t\twidth: 6px;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground: #f1f1f1;\n\t\tborder-radius: 3px;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: #c1c1c1;\n\t\tborder-radius: 3px;\n\t}\n\n\t&::-webkit-scrollbar-thumb:hover {\n\t\tbackground: #a8a8a8;\n\t}\n`;\n\nconst VideoCard = styled.div`\n\tbackground: white;\n\tborder-radius: 12px;\n\tpadding: 16px;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n\tborder: 1px solid #e5e7eb;\n`;\n\nconst VideoContainer = styled.div`\n\twidth: 100%;\n\theight: 180px;\n\tbackground: #f3f4f6;\n\tborder-radius: 8px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: relative;\n\tmargin-bottom: 12px;\n`;\n\nconst PlayButton = styled.div`\n\twidth: 48px;\n\theight: 48px;\n\tbackground: rgba(0, 0, 0, 0.7);\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n\n\t&:hover {\n\t\tbackground: rgba(0, 0, 0, 0.8);\n\t\ttransform: scale(1.05);\n\t}\n\n\tsvg {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tfill: white;\n\t\tmargin-left: 2px;\n\t}\n`;\n\nconst VideoText = styled.div`\n\tfont-size: 14px;\n\tcolor: #374151;\n\tline-height: 1.5;\n`;\n\nconst Bubble = styled.div<{ role: 'user' | 'assistant' | 'system' }>`\n\tpadding: 12px 16px;\n\tborder-radius: 16px;\n\tfont-size: 14px;\n\tmax-width: 80%;\n\twhite-space: pre-line;\n\tword-wrap: break-word;\n\n\t${(props) =>\n\t\tprops.role === 'user'\n\t\t\t? `\n background: linear-gradient(92.69deg, rgba(255, 230, 238, 0.5) 0.37%, rgba(255, 240, 231, 0.5) 100%);\n margin-left: auto;\n border-bottom-right-radius: 4px;\n \n & > div {\n background: linear-gradient(92.69deg, #FF166A 0.37%, #FB5F08 100%);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n display: inline-block;\n }\n `\n\t\t\t: props.role === 'system'\n\t\t\t? `\n background: #f3f4f6;\n color: #6b7280;\n font-size: 12px;\n font-style: italic;\n text-align: center;\n margin: 0 auto;\n max-width: 90%;\n `\n\t\t\t: `\n background: white;\n color: #111827;\n border: 1px solid #e5e7eb;\n margin-right: auto;\n border-bottom-left-radius: 4px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n `}\n`;\n\n// Ice breakers section - at the bottom before input\nconst IceBreakersSection = styled.div`\n\tpadding: 16px;\n\tflex-shrink: 0;\n`;\n\nconst IceBreakersGrid = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n\talign-items: flex-end;\n`;\n\nconst IceBreakerChip = styled.button<{ disabled?: boolean }>`\n\tborder: 1px dotted #febad2;\n\tbackground: linear-gradient(\n\t\t92.69deg,\n\t\trgba(255, 230, 238, 0.5) 0.37%,\n\t\trgba(255, 240, 231, 0.5) 100%\n\t);\n\tpadding: 8px 16px;\n\tborder-radius: 8px;\n\tfont-size: 13px;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\ttransition: all 0.2s ease;\n\ttext-align: left;\n\tmax-width: 280px;\n\talign-self: flex-end;\n\topacity: ${(props) => (props.disabled ? 0.5 : 1)};\n\n\t&:hover:not(:disabled) {\n\t\tbackground: linear-gradient(\n\t\t\t92.69deg,\n\t\t\trgba(255, 230, 238, 0.7) 0.37%,\n\t\t\trgba(255, 240, 231, 0.7) 100%\n\t\t);\n\t\tborder-color: #f472b6;\n\t}\n\n\t&:active:not(:disabled) {\n\t\ttransform: scale(0.98);\n\t}\n`;\n\n// Suggestions section - styled like ice breakers but for regular suggestions\nconst SuggestionsSection = styled.div`\n\tpadding: 16px;\n\tbackground: white;\n`;\n\nconst SuggestionsGrid = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nconst SuggestionChip = styled.button<{ disabled?: boolean }>`\n\tbackground: #fef2f2;\n\tcolor: #dc2626;\n\tpadding: 12px 16px;\n\tborder-radius: 8px;\n\tfont-size: 13px;\n\tborder: 1px solid #fecaca;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\ttransition: all 0.2s ease;\n\ttext-align: left;\n\topacity: ${(props) => (props.disabled ? 0.5 : 1)};\n\n\t&:hover:not(:disabled) {\n\t\tbackground: #fee2e2;\n\t\tborder-color: #fca5a5;\n\t}\n\n\t&:active:not(:disabled) {\n\t\ttransform: scale(0.98);\n\t}\n`;\n\nconst InputContainer = styled.div`\n\tpadding: 16px;\n\tflex-shrink: 0;\n`;\n\nconst InputBubble = styled.div`\n\tposition: relative;\n\tdisplay: flex;\n\twidth: 100%;\n`;\n\nconst TextInput = styled.textarea<{ hasText: boolean; chatState: ChatState }>`\n\tflex: 1;\n\tborder: 1px solid ${(props) => (props.hasText ? '#3b82f6' : '#d1d5db')};\n\tborder-radius: 12px;\n\tpadding: 12px;\n\tpadding-right: 48px;\n\tfont-size: 14px;\n\toutline: none;\n\tcolor: #374151;\n\tbackground: white;\n\tbox-shadow: 0px 2px 8px 0px #0000001f;\n\ttransition: all 0.2s ease;\n\tresize: none;\n\tmin-height: 44px;\n\tmax-height: 120px;\n\tfont-family: inherit;\n\twidth: 100%;\n\n\t&:focus {\n\t\tborder-color: #3b82f6;\n\t\tbackground: white;\n\t\tbox-shadow: 0px 2px 8px 0px #0000001f, 0 0 0 3px rgba(59, 130, 246, 0.1);\n\t}\n\n\t&::placeholder {\n\t\tcolor: #9ca3af;\n\t}\n`;\n\nconst SendButton = styled.button<{ disabled?: boolean; hasText: boolean }>`\n\tposition: absolute;\n\tbottom: 10px;\n\tright: 10px;\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 50%;\n\tbackground: ${(props) =>\n\t\tprops.hasText\n\t\t\t? 'linear-gradient(135deg, #FF166A 0%, #FB5F08 100%)'\n\t\t\t: '#e5e7eb'};\n\tborder: none;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\ttransition: all 0.2s ease;\n\tbox-shadow: 0 2px 8px 0px #fa709a1c;\n\tz-index: 2;\n\n\t&:hover:not(:disabled) {\n\t\tbackground: ${(props) =>\n\t\t\tprops.hasText && !props.disabled\n\t\t\t\t? 'linear-gradient(135deg, #F857A6 0%, #FF5858 100%)'\n\t\t\t\t: '#e5e7eb'};\n\t\ttransform: scale(1.05);\n\t}\n\n\t&:active:not(:disabled) {\n\t\ttransform: scale(0.95);\n\t}\n\n\tsvg {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tfill: white;\n\t\tfont-weight: bold;\n\t}\n`;\n\n// Customizable gradient text component\nexport const CustomGradientText = styled.span<{\n\tcolors?: string;\n\tangle?: number;\n}>`\n\tbackground: linear-gradient(\n\t\t${(props) => props.angle || 92.69}deg,\n\t\t${(props) => props.colors || '#ff166a 0.37%, #fb5f08 100%'}\n\t);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\tdisplay: inline-block;\n`;\n\n// Export ChatState type for backward compatibility\nexport type { ChatState } from '../types';\n\ninterface ChatWindowWithHeightProps extends ChatWindowProps {\n\tchatWindowHeight?: string | number;\n}\n\nconst ChatWindow: React.FC<ChatWindowWithHeightProps> = ({\n\tmessages,\n\tonSend,\n\theader = 'Create with AI',\n\tplaceholder = 'Discover the right event & launch campaigns for better conversions...',\n\tsuggestions = [\n\t\t'Top festivals for marketing',\n\t\t'Top events this week?',\n\t\t'Top August festivals near you',\n\t],\n\ticeBreakers,\n\tvideoStarter,\n\tdisabled = false,\n\tisThinking = false,\n\tonIceBreakerClick,\n\tchatState,\n\tchatWindowHeight,\n\tinputDisabled = false,\n}) => {\n\tconst [input, setInput] = useState('');\n\tconst [thinking, setThinking] = useState(false);\n\tconst [isTyping, setIsTyping] = useState(false);\n\tconst bottomRef = useRef<HTMLDivElement>(null);\n\tconst textareaRef = useRef<HTMLTextAreaElement>(null);\n\tconst isThinkingState = thinking || isThinking;\n\tconst isInputDisabledState = disabled || inputDisabled;\n\n\t// Determine current chat state\n\tconst getCurrentChatState = (): ChatState => {\n\t\tif (chatState) return chatState; // Explicit state override\n\t\tif (thinking || isThinking) return 'thinking';\n\t\tif (isTyping && input.trim().length > 0) return 'typing';\n\t\tif (messages.length === 0) return 'conversation-starter';\n\t\tif (messages.length > 0) return 'conversation';\n\t\treturn 'default';\n\t};\n\n\tconst currentState = getCurrentChatState();\n\n\t// markdown renderer moved to ../utils/markdown\n\n\tconst handleSend = () => {\n\t\tif (!input.trim() || isInputDisabledState || isThinkingState) return;\n\t\tonSend(input);\n\t\tsetInput('');\n\t\tsetThinking(true);\n\t\tsetTimeout(() => setThinking(false), 1500);\n\t};\n\n\tconst handleKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (isInputDisabledState) return;\n\t\tif (e.key === 'Enter' && !e.shiftKey) {\n\t\t\te.preventDefault();\n\t\t\tif (!isThinkingState && input.trim()) {\n\t\t\t\thandleSend();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n\t\tif (isInputDisabledState) return;\n\t\tconst value = e.target.value;\n\t\tsetInput(value);\n\t\tsetIsTyping(value.trim().length > 0);\n\n\t\t// Auto-resize textarea\n\t\tconst textarea = textareaRef.current;\n\t\tif (textarea) {\n\t\t\ttextarea.style.height = 'auto';\n\t\t\ttextarea.style.height = `${Math.min(textarea.scrollHeight, 117)}px`;\n\t\t}\n\t};\n\n\tconst hasText = input.trim().length > 0;\n\tconst isSendDisabled = isInputDisabledState || isThinkingState || !hasText;\n\n\tuseEffect(() => {\n\t\tbottomRef.current?.scrollIntoView({ behavior: 'smooth' });\n\t}, [messages, thinking, isThinking]);\n\n\t// Use chatWindowHeight if provided, otherwise use 100% if fullHeight is active\n\tconst containerHeight = chatWindowHeight || '100%';\n\n\treturn (\n\t\t<ChatContainer chatState={currentState} style={{ height: containerHeight }}>\n\t\t\t{/* Header */}\n\t\t\t<Header>\n\t\t\t\t<AiIcon height={24} width={24} />\n\t\t\t\t<div className=\"header-text\">{header}</div>\n\t\t\t</Header>\n\n\t\t\t{/* Main Content - Single Column Layout */}\n\t\t\t<MainContent>\n\t\t\t\t{/* Messages Section */}\n\t\t\t\t<MessagesWrapper>\n\t\t\t\t\t{/* Video starter card - only when no messages and videoStarter provided */}\n\t\t\t\t\t{currentState === 'conversation-starter' && videoStarter && (\n\t\t\t\t\t\t<VideoCard>\n\t\t\t\t\t\t\t<VideoContainer>\n\t\t\t\t\t\t\t\t<PlayButton onClick={videoStarter.onPlay}>\n\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n\t\t\t\t\t\t\t\t\t\t<path d=\"M8 5v14l11-7z\" />\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</PlayButton>\n\t\t\t\t\t\t\t</VideoContainer>\n\t\t\t\t\t\t\t<VideoText>\n\t\t\t\t\t\t\t\t<BodySecondary style={{ fontWeight: 500, marginBottom: '4px' }}>\n\t\t\t\t\t\t\t\t\t{videoStarter.title}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<BodyCaption>{videoStarter.description}</BodyCaption>\n\t\t\t\t\t\t\t</VideoText>\n\t\t\t\t\t\t</VideoCard>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Render messages (assistant supports lite Markdown) */}\n\t\t\t\t\t{messages.map((m) => (\n\t\t\t\t\t\t<Bubble key={m.id} role={m.role}>\n\t\t\t\t\t\t\t{m.role === 'assistant' ? (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t\t\t__html: renderMarkdownLite(m.content),\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div style={{ whiteSpace: 'pre-wrap' }}>{m.content}</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t))}\n\n\t\t\t\t\t{/* Thinking bubble */}\n\t\t\t\t\t{(thinking || isThinking) && <ThinkingIndicator />}\n\n\t\t\t\t\t<div ref={bottomRef} />\n\t\t\t\t</MessagesWrapper>\n\n\t\t\t\t{/* Ice Breakers Section - At bottom when no messages and ice breakers provided */}\n\t\t\t\t{iceBreakers && currentState === 'conversation-starter' && (\n\t\t\t\t\t<IceBreakersSection>\n\t\t\t\t\t\t<IceBreakersGrid>\n\t\t\t\t\t\t\t{iceBreakers.map((iceBreaker) => (\n\t\t\t\t\t\t\t\t<IceBreakerChip\n\t\t\t\t\t\t\t\t\tkey={iceBreaker.id}\n\t\t\t\t\t\t\t\t\tdisabled={isInputDisabledState}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (!isInputDisabledState) {\n\t\t\t\t\t\t\t\t\t\t\tonIceBreakerClick?.(iceBreaker);\n\t\t\t\t\t\t\t\t\t\t\tonSend(iceBreaker.text);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CustomGradientText>{iceBreaker.text}</CustomGradientText>\n\t\t\t\t\t\t\t\t</IceBreakerChip>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</IceBreakersGrid>\n\t\t\t\t\t</IceBreakersSection>\n\t\t\t\t)}\n\n\t\t\t\t{/* Regular Suggestions - Show when no ice breakers are provided */}\n\t\t\t\t{!iceBreakers &&\n\t\t\t\t\tsuggestions.length > 0 &&\n\t\t\t\t\tcurrentState === 'default' && (\n\t\t\t\t\t\t<SuggestionsSection>\n\t\t\t\t\t\t\t<SuggestionsGrid>\n\t\t\t\t\t\t\t\t{suggestions.map((s) => (\n\t\t\t\t\t\t\t\t\t<SuggestionChip\n\t\t\t\t\t\t\t\t\t\tkey={s}\n\t\t\t\t\t\t\t\t\t\tdisabled={isInputDisabledState}\n\t\t\t\t\t\t\t\t\t\tonClick={() => !isInputDisabledState && onSend(s)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{s}\n\t\t\t\t\t\t\t\t\t</SuggestionChip>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SuggestionsGrid>\n\t\t\t\t\t\t</SuggestionsSection>\n\t\t\t\t\t)}\n\n\t\t\t\t{/* Input Container - Always at bottom */}\n\t\t\t\t<InputContainer>\n\t\t\t\t\t<InputBubble>\n\t\t\t\t\t\t<TextInput\n\t\t\t\t\t\t\tref={textareaRef}\n\t\t\t\t\t\t\tvalue={input}\n\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t\t\tdisabled={isInputDisabledState}\n\t\t\t\t\t\t\thasText={hasText}\n\t\t\t\t\t\t\tchatState={currentState}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SendButton\n\t\t\t\t\t\t\tonClick={handleSend}\n\t\t\t\t\t\t\tdisabled={isSendDisabled}\n\t\t\t\t\t\t\thasText={hasText}\n\t\t\t\t\t\t\taria-label=\"Send\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\tstroke=\"white\"\n\t\t\t\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<path d=\"M6 12h12\" />\n\t\t\t\t\t\t\t\t<path d=\"M12 6l6 6-6 6\" />\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</SendButton>\n\t\t\t\t\t</InputBubble>\n\t\t\t\t</InputContainer>\n\t\t\t</MainContent>\n\t\t</ChatContainer>\n\t);\n};\n\nexport default ChatWindow;\n"],"names":["ChatContainer","styled","div","props","chatState","Header","MainContent","MessagesWrapper","VideoCard","VideoContainer","PlayButton","VideoText","Bubble","role","IceBreakersSection","IceBreakersGrid","IceBreakerChip","button","disabled","SuggestionsSection","SuggestionsGrid","SuggestionChip","InputContainer","InputBubble","TextInput","textarea","hasText","SendButton","CustomGradientText","span","angle","colors","ChatWindow","_ref","messages","onSend","header","placeholder","suggestions","iceBreakers","videoStarter","isThinking","onIceBreakerClick","chatWindowHeight","inputDisabled","input","setInput","useState","thinking","setThinking","isTyping","setIsTyping","bottomRef","useRef","textareaRef","isThinkingState","isInputDisabledState","currentState","trim","length","handleSend","setTimeout","isSendDisabled","useEffect","_a","current","scrollIntoView","behavior","containerHeight","_jsxs","Object","assign","style","height","children","_jsx","AiIcon","width","className","onClick","onPlay","viewBox","fill","d","BodySecondary","fontWeight","marginBottom","title","BodyCaption","description","map","m","dangerouslySetInnerHTML","__html","renderMarkdownLite","content","whiteSpace","id","ThinkingIndicator","ref","iceBreaker","text","s","value","onChange","e","target","Math","min","scrollHeight","onKeyDown","key","shiftKey","preventDefault","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChatWindow.js","sources":["../../../../../src/components/bik-chatbot/components/ChatWindow.tsx"],"sourcesContent":["import AiIcon from '@src/assets/icons/Ai_event_generating.svg';\nimport React, { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport { BodyCaption, BodySecondary } from '@src/components/TypographyStyle';\nimport { ChatState, ChatWindowProps } from '../types';\nimport { renderMarkdownLite } from '../utils/markdown';\nimport ThinkingIndicator from './ThinkingIndicator';\n\n// Single-column layout container\nconst ChatContainer = styled.div<{ chatState: ChatState }>`\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmin-width: 0;\n\tmin-height: 0;\n\theight: 100%;\n\tmax-height: 100%;\n\tbackground: white;\n\tborder-left: 1px solid #e5e7eb;\n\tposition: relative;\n\n\t/* State-based styling */\n\t${(props) => {\n\t\tswitch (props.chatState) {\n\t\t\tcase 'conversation-starter':\n\t\t\t\treturn `\n background: linear-gradient(180deg, #FFF6F9 0%, #FFFFFF 100%);\n `;\n\t\t\tcase 'thinking':\n\t\t\t\treturn `\n background: linear-gradient(180deg, #F8F9FA 0%, #FFFFFF 100%);\n `;\n\t\t\tdefault:\n\t\t\t\treturn `\n background: white;\n `;\n\t\t}\n\t}}\n`;\n\nconst Header = styled.div`\n\tpadding: 16px;\n\tborder-bottom: 1px solid #e5e7eb;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tbackground: white;\n\tflex-shrink: 0;\n\n\t.header-text {\n\t\tfont-size: 14px;\n\t\tfont-weight: 500;\n\t\tcolor: #374151;\n\t}\n`;\n\n// Main content area - single column\nconst MainContent = styled.div`\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\tmin-height: 0;\n`;\n\nconst MessagesWrapper = styled.div`\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 16px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 16px;\n\tbackground: #fafafa;\n\tscroll-behavior: smooth;\n\tmin-height: 0;\n\n\t/* Custom scrollbar */\n\t&::-webkit-scrollbar {\n\t\twidth: 6px;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground: #f1f1f1;\n\t\tborder-radius: 3px;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: #c1c1c1;\n\t\tborder-radius: 3px;\n\t}\n\n\t&::-webkit-scrollbar-thumb:hover {\n\t\tbackground: #a8a8a8;\n\t}\n`;\n\nconst VideoCard = styled.div`\n\tbackground: white;\n\tborder-radius: 12px;\n\tpadding: 16px;\n\tbox-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n\tborder: 1px solid #e5e7eb;\n`;\n\nconst VideoContainer = styled.div`\n\twidth: 100%;\n\theight: 180px;\n\tbackground: #f3f4f6;\n\tborder-radius: 8px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tposition: relative;\n\tmargin-bottom: 12px;\n`;\n\nconst PlayButton = styled.div`\n\twidth: 48px;\n\theight: 48px;\n\tbackground: rgba(0, 0, 0, 0.7);\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: pointer;\n\ttransition: all 0.2s ease;\n\n\t&:hover {\n\t\tbackground: rgba(0, 0, 0, 0.8);\n\t\ttransform: scale(1.05);\n\t}\n\n\tsvg {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tfill: white;\n\t\tmargin-left: 2px;\n\t}\n`;\n\nconst VideoText = styled.div`\n\tfont-size: 14px;\n\tcolor: #374151;\n\tline-height: 1.5;\n`;\n\nconst Bubble = styled.div<{ role: 'user' | 'assistant' | 'system' }>`\n\tpadding: 12px 16px;\n\tborder-radius: 16px;\n\tfont-size: 14px;\n\tmax-width: 80%;\n\twhite-space: pre-line;\n\tword-wrap: break-word;\n\n\t${(props) =>\n\t\tprops.role === 'user'\n\t\t\t? `\n background: linear-gradient(92.69deg, rgba(255, 230, 238, 0.5) 0.37%, rgba(255, 240, 231, 0.5) 100%);\n margin-left: auto;\n border-bottom-right-radius: 4px;\n \n & > div {\n background: linear-gradient(92.69deg, #FF166A 0.37%, #FB5F08 100%);\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n background-clip: text;\n display: inline-block;\n }\n `\n\t\t\t: props.role === 'system'\n\t\t\t? `\n background: #f3f4f6;\n color: #6b7280;\n font-size: 12px;\n font-style: italic;\n text-align: center;\n margin: 0 auto;\n max-width: 90%;\n `\n\t\t\t: `\n background: white;\n color: #111827;\n border: 1px solid #e5e7eb;\n margin-right: auto;\n border-bottom-left-radius: 4px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n `}\n`;\n\n// Ice breakers section - at the bottom before input\nconst IceBreakersSection = styled.div`\n\tpadding: 16px;\n\tflex-shrink: 0;\n`;\n\nconst IceBreakersGrid = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n\talign-items: flex-end;\n`;\n\nconst IceBreakerChip = styled.button<{ disabled?: boolean }>`\n\tborder: 1px dotted #febad2;\n\tbackground: linear-gradient(\n\t\t92.69deg,\n\t\trgba(255, 230, 238, 0.5) 0.37%,\n\t\trgba(255, 240, 231, 0.5) 100%\n\t);\n\tpadding: 8px 16px;\n\tborder-radius: 8px;\n\tfont-size: 13px;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\ttransition: all 0.2s ease;\n\ttext-align: left;\n\tmax-width: 280px;\n\talign-self: flex-end;\n\topacity: ${(props) => (props.disabled ? 0.5 : 1)};\n\n\t&:hover:not(:disabled) {\n\t\tbackground: linear-gradient(\n\t\t\t92.69deg,\n\t\t\trgba(255, 230, 238, 0.7) 0.37%,\n\t\t\trgba(255, 240, 231, 0.7) 100%\n\t\t);\n\t\tborder-color: #f472b6;\n\t}\n\n\t&:active:not(:disabled) {\n\t\ttransform: scale(0.98);\n\t}\n`;\n\n// Suggestions section - styled like ice breakers but for regular suggestions\nconst SuggestionsSection = styled.div`\n\tpadding: 16px;\n\tbackground: white;\n`;\n\nconst SuggestionsGrid = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n`;\n\nconst SuggestionChip = styled.button<{ disabled?: boolean }>`\n\tbackground: #fef2f2;\n\tcolor: #dc2626;\n\tpadding: 12px 16px;\n\tborder-radius: 8px;\n\tfont-size: 13px;\n\tborder: 1px solid #fecaca;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\ttransition: all 0.2s ease;\n\ttext-align: left;\n\topacity: ${(props) => (props.disabled ? 0.5 : 1)};\n\n\t&:hover:not(:disabled) {\n\t\tbackground: #fee2e2;\n\t\tborder-color: #fca5a5;\n\t}\n\n\t&:active:not(:disabled) {\n\t\ttransform: scale(0.98);\n\t}\n`;\n\nconst InputContainer = styled.div`\n\tpadding: 16px;\n\tflex-shrink: 0;\n`;\n\nconst InputBubble = styled.div`\n\tposition: relative;\n\tdisplay: flex;\n\twidth: 100%;\n`;\n\nconst TextInput = styled.textarea<{ hasText: boolean; chatState: ChatState }>`\n\tflex: 1;\n\tborder: 1px solid ${(props) => (props.hasText ? '#3b82f6' : '#d1d5db')};\n\tborder-radius: 12px;\n\tpadding: 12px;\n\tpadding-right: 48px;\n\tfont-size: 14px;\n\toutline: none;\n\tcolor: #374151;\n\tbackground: white;\n\tbox-shadow: 0px 2px 8px 0px #0000001f;\n\ttransition: all 0.2s ease;\n\tresize: none;\n\tmin-height: 44px;\n\tmax-height: 120px;\n\tfont-family: inherit;\n\twidth: 100%;\n\n\t&:focus {\n\t\tborder-color: #3b82f6;\n\t\tbackground: white;\n\t\tbox-shadow: 0px 2px 8px 0px #0000001f, 0 0 0 3px rgba(59, 130, 246, 0.1);\n\t}\n\n\t&::placeholder {\n\t\tcolor: #9ca3af;\n\t}\n`;\n\nconst SendButton = styled.button<{ disabled?: boolean; hasText: boolean }>`\n\tposition: absolute;\n\tbottom: 10px;\n\tright: 10px;\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 50%;\n\tbackground: ${(props) =>\n\t\tprops.hasText\n\t\t\t? 'linear-gradient(135deg, #FF166A 0%, #FB5F08 100%)'\n\t\t\t: '#e5e7eb'};\n\tborder: none;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n\ttransition: all 0.2s ease;\n\tbox-shadow: 0 2px 8px 0px #fa709a1c;\n\tz-index: 2;\n\n\t&:hover:not(:disabled) {\n\t\tbackground: ${(props) =>\n\t\t\tprops.hasText && !props.disabled\n\t\t\t\t? 'linear-gradient(135deg, #F857A6 0%, #FF5858 100%)'\n\t\t\t\t: '#e5e7eb'};\n\t\ttransform: scale(1.05);\n\t}\n\n\t&:active:not(:disabled) {\n\t\ttransform: scale(0.95);\n\t}\n\n\tsvg {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tfill: white;\n\t\tfont-weight: bold;\n\t}\n`;\n\n// Customizable gradient text component\nexport const CustomGradientText = styled.span<{\n\tcolors?: string;\n\tangle?: number;\n}>`\n\tbackground: linear-gradient(\n\t\t${(props) => props.angle || 92.69}deg,\n\t\t${(props) => props.colors || '#ff166a 0.37%, #fb5f08 100%'}\n\t);\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n\tdisplay: inline-block;\n`;\n\n// Export ChatState type for backward compatibility\nexport type { ChatState } from '../types';\n\ninterface ChatWindowWithHeightProps extends ChatWindowProps {\n\tchatWindowHeight?: string | number;\n}\n\nconst ChatWindow: React.FC<ChatWindowWithHeightProps> = ({\n\tmessages,\n\tonSend,\n\theader = 'Create with AI',\n\tplaceholder = 'Discover the right event & launch campaigns for better conversions...',\n\tsuggestions = [\n\t\t'Top festivals for marketing',\n\t\t'Top events this week?',\n\t\t'Top August festivals near you',\n\t],\n\ticeBreakers,\n\tvideoStarter,\n\tdisabled = false,\n\tisThinking = false,\n\tonIceBreakerClick,\n\tchatState,\n\tchatWindowHeight,\n\tinputDisabled = false,\n}) => {\n\tconst [input, setInput] = useState('');\n\tconst [thinking, setThinking] = useState(false);\n\tconst [isTyping, setIsTyping] = useState(false);\n\tconst bottomRef = useRef<HTMLDivElement>(null);\n\tconst textareaRef = useRef<HTMLTextAreaElement>(null);\n\tconst isThinkingState = thinking || isThinking;\n\tconst isInputDisabledState = disabled || inputDisabled;\n\n\t// Determine current chat state\n\tconst getCurrentChatState = (): ChatState => {\n\t\tif (chatState) return chatState; // Explicit state override\n\t\tif (thinking || isThinking) return 'thinking';\n\t\tif (isTyping && input.trim().length > 0) return 'typing';\n\t\tif (messages.length === 0) return 'conversation-starter';\n\t\tif (messages.length > 0) return 'conversation';\n\t\treturn 'default';\n\t};\n\n\tconst currentState = getCurrentChatState();\n\n\t// markdown renderer moved to ../utils/markdown\n\n\tconst handleSend = () => {\n\t\tif (!input.trim() || isInputDisabledState || isThinkingState) return;\n\t\tonSend(input);\n\t\tsetInput('');\n\t\tsetThinking(true);\n\t\tsetTimeout(() => setThinking(false), 1500);\n\t};\n\n\tconst handleKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (isInputDisabledState) return;\n\t\tif (e.key === 'Enter' && !e.shiftKey) {\n\t\t\te.preventDefault();\n\t\t\tif (!isThinkingState && input.trim()) {\n\t\t\t\thandleSend();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n\t\tif (isInputDisabledState) return;\n\t\tconst value = e.target.value;\n\t\tsetInput(value);\n\t\tsetIsTyping(value.trim().length > 0);\n\n\t\t// Auto-resize textarea\n\t\tconst textarea = textareaRef.current;\n\t\tif (textarea) {\n\t\t\ttextarea.style.height = 'auto';\n\t\t\ttextarea.style.height = `${Math.min(textarea.scrollHeight, 117)}px`;\n\t\t}\n\t};\n\n\tconst hasText = input.trim().length > 0;\n\tconst isSendDisabled = isInputDisabledState || isThinkingState || !hasText;\n\n\tuseEffect(() => {\n\t\tbottomRef.current?.scrollIntoView({ behavior: 'smooth' });\n\t}, [messages, thinking, isThinking]);\n\n\t// Use chatWindowHeight if provided, otherwise use 100% if fullHeight is active\n\tconst containerHeight = chatWindowHeight || '100%';\n\n\treturn (\n\t\t<ChatContainer chatState={currentState} style={{ height: containerHeight }}>\n\t\t\t{/* Header */}\n\t\t\t<Header>\n\t\t\t\t<AiIcon height={24} width={24} />\n\t\t\t\t<div className=\"header-text\">{header}</div>\n\t\t\t</Header>\n\n\t\t\t{/* Main Content - Single Column Layout */}\n\t\t\t<MainContent>\n\t\t\t\t{/* Messages Section */}\n\t\t\t\t<MessagesWrapper>\n\t\t\t\t\t{/* Video starter card - only when no messages and videoStarter provided */}\n\t\t\t\t\t{currentState === 'conversation-starter' && videoStarter && (\n\t\t\t\t\t\t<VideoCard>\n\t\t\t\t\t\t\t<VideoContainer>\n\t\t\t\t\t\t\t\t<PlayButton onClick={videoStarter.onPlay}>\n\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n\t\t\t\t\t\t\t\t\t\t<path d=\"M8 5v14l11-7z\" />\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</PlayButton>\n\t\t\t\t\t\t\t</VideoContainer>\n\t\t\t\t\t\t\t<VideoText>\n\t\t\t\t\t\t\t\t<BodySecondary style={{ fontWeight: 500, marginBottom: '4px' }}>\n\t\t\t\t\t\t\t\t\t{videoStarter.title}\n\t\t\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t\t\t\t<BodyCaption>{videoStarter.description}</BodyCaption>\n\t\t\t\t\t\t\t</VideoText>\n\t\t\t\t\t\t</VideoCard>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Render messages (assistant supports lite Markdown) */}\n\t\t\t\t\t{messages.map((m) => (\n\t\t\t\t\t\t<Bubble key={m.id} role={m.role}>\n\t\t\t\t\t\t\t{m.role === 'assistant' ? (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t\t\t__html: renderMarkdownLite(m.content),\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div style={{ whiteSpace: 'pre-wrap' }}>{m.content}</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t))}\n\n\t\t\t\t\t{/* Thinking bubble */}\n\t\t\t\t\t{(thinking || isThinking) && <ThinkingIndicator />}\n\n\t\t\t\t\t<div ref={bottomRef} />\n\t\t\t\t</MessagesWrapper>\n\n\t\t\t\t{/* Ice Breakers Section - At bottom when no messages and ice breakers provided */}\n\t\t\t\t{iceBreakers && currentState === 'conversation-starter' && (\n\t\t\t\t\t<IceBreakersSection>\n\t\t\t\t\t\t<IceBreakersGrid>\n\t\t\t\t\t\t\t{iceBreakers.map((iceBreaker) => (\n\t\t\t\t\t\t\t\t<IceBreakerChip\n\t\t\t\t\t\t\t\t\tkey={iceBreaker.id}\n\t\t\t\t\t\t\t\t\tdisabled={isInputDisabledState}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tif (!isInputDisabledState) {\n\t\t\t\t\t\t\t\t\t\t\tonIceBreakerClick?.(iceBreaker);\n\t\t\t\t\t\t\t\t\t\t\tonSend(iceBreaker.text);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CustomGradientText>{iceBreaker.text}</CustomGradientText>\n\t\t\t\t\t\t\t\t</IceBreakerChip>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</IceBreakersGrid>\n\t\t\t\t\t</IceBreakersSection>\n\t\t\t\t)}\n\n\t\t\t\t{/* Regular Suggestions - Show when no ice breakers are provided */}\n\t\t\t\t{!iceBreakers &&\n\t\t\t\t\tsuggestions.length > 0 &&\n\t\t\t\t\tcurrentState === 'default' && (\n\t\t\t\t\t\t<SuggestionsSection>\n\t\t\t\t\t\t\t<SuggestionsGrid>\n\t\t\t\t\t\t\t\t{suggestions.map((s) => (\n\t\t\t\t\t\t\t\t\t<SuggestionChip\n\t\t\t\t\t\t\t\t\t\tkey={s}\n\t\t\t\t\t\t\t\t\t\tdisabled={isInputDisabledState}\n\t\t\t\t\t\t\t\t\t\tonClick={() => !isInputDisabledState && onSend(s)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{s}\n\t\t\t\t\t\t\t\t\t</SuggestionChip>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</SuggestionsGrid>\n\t\t\t\t\t\t</SuggestionsSection>\n\t\t\t\t\t)}\n\n\t\t\t\t{/* Input Container - Always at bottom */}\n\t\t\t\t<InputContainer>\n\t\t\t\t\t<InputBubble>\n\t\t\t\t\t\t<TextInput\n\t\t\t\t\t\t\tref={textareaRef}\n\t\t\t\t\t\t\tvalue={input}\n\t\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t\t\tdisabled={isInputDisabledState}\n\t\t\t\t\t\t\thasText={hasText}\n\t\t\t\t\t\t\tchatState={currentState}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SendButton\n\t\t\t\t\t\t\tonClick={handleSend}\n\t\t\t\t\t\t\tdisabled={isSendDisabled}\n\t\t\t\t\t\t\thasText={hasText}\n\t\t\t\t\t\t\taria-label=\"Send\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\tstroke=\"white\"\n\t\t\t\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<path d=\"M6 12h12\" />\n\t\t\t\t\t\t\t\t<path d=\"M12 6l6 6-6 6\" />\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</SendButton>\n\t\t\t\t\t</InputBubble>\n\t\t\t\t</InputContainer>\n\t\t\t</MainContent>\n\t\t</ChatContainer>\n\t);\n};\n\nexport default ChatWindow;\n"],"names":["ChatContainer","styled","div","props","chatState","Header","MainContent","MessagesWrapper","VideoCard","VideoContainer","PlayButton","VideoText","Bubble","role","IceBreakersSection","IceBreakersGrid","IceBreakerChip","button","disabled","SuggestionsSection","SuggestionsGrid","SuggestionChip","InputContainer","InputBubble","TextInput","textarea","hasText","SendButton","CustomGradientText","span","angle","colors","ChatWindow","messages","onSend","header","placeholder","suggestions","iceBreakers","videoStarter","isThinking","onIceBreakerClick","chatWindowHeight","inputDisabled","input","setInput","useState","thinking","setThinking","isTyping","setIsTyping","bottomRef","useRef","textareaRef","isThinkingState","isInputDisabledState","currentState","trim","length","handleSend","setTimeout","isSendDisabled","useEffect","_a","current","scrollIntoView","behavior","containerHeight","_jsxs","Object","assign","style","height","children","_jsx","AiIcon","width","className","onClick","onPlay","viewBox","fill","d","BodySecondary","fontWeight","marginBottom","title","BodyCaption","description","map","m","dangerouslySetInnerHTML","__html","renderMarkdownLite","content","whiteSpace","id","ThinkingIndicator","ref","iceBreaker","text","s","value","onChange","e","target","Math","min","scrollHeight","onKeyDown","key","shiftKey","preventDefault","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThinkingIndicator.js","sources":["../../../../../src/components/bik-chatbot/components/ThinkingIndicator.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport Idea from '@src/assets/icons/Idea.svg';\nimport AiEdit from '@src/assets/icons/AiEdit.svg';\nimport HelpIcon from '@src/assets/icons/HelpIcon.svg';\n\n\nconst ThinkingBubble = styled.div`\n background: linear-gradient(92.69deg, rgba(255, 230, 238, 0.5) 0.37%, rgba(255, 240, 231, 0.5) 100%);\n\tpadding: 24px;\n\tborder-radius: 16px;\n\tborder-bottom-left-radius: 6px;\n\twidth: clamp(260px, 70vw, 340px);\n\tmin-height: 108px;\n\tmargin-right: auto;\n\tfont-size: 14px;\n\tcolor: #1f2937;\n\tbox-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 14px;\n\tposition: relative;\n\toverflow: hidden;\n\tflex-shrink: 0;\n\n\t\n\n\t.icon-svg {\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tflex-shrink: 0;\n\t\tanimation: iconPulse 2.4s ease-in-out infinite;\n\t}\n\n\t.bubble-content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 12px;\n\t\twidth: 100%;\n\t}\n\n\t.status-text {\n\t\tfont-weight: 500;\n\t\tcolor: #1f2937;\n\t\tline-height: 1.45;\n\t\tanimation: textFade 0.35s ease forwards;\n\t\tmin-height: 20px;\n\t}\n\n\t.dots {\n\t\tdisplay: flex;\n\t\tgap: 6px;\n\t}\n\n\t.dot {\n\t\twidth: 6px;\n\t\theight: 6px;\n\t\tborder-radius: 50%;\n\t\tbackground: #EC4899;\n\t\tbox-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);\n\t\tanimation: dotBounce 1.3s ease-in-out infinite;\n\t}\n\n\t.shimmer-group {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 6px;\n\t}\n\n\t.shimmer-line {\n height: 10px;\n\t\tborder-radius: 20px;\n\t\tbackground: linear-gradient(92.69deg, #FEBAD2 0.37%, #FDD1B9 100%);\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tanimation: shimmerAppear 0.4s ease forwards;\n\t}\n\n\t.shimmer-highlight {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tbackground: linear-gradient(\n\t\t\t90deg,\n\t\t\trgba(255, 255, 255, 0) 0%,\n\t\t\trgba(255, 255, 255, 0.75) 50%,\n\t\t\trgba(255, 255, 255, 0) 100%\n\t\t);\n\t\ttransform: translateX(-100%);\n\t\tanimation: shimmerMove 1.8s linear infinite;\n\t}\n\n\t@keyframes iconPulse {\n\t\t0%,\n\t\t100% {\n\t\t\ttransform: scale(0.95) rotate(-3deg);\n\t\t}\n\t\t50% {\n\t\t\ttransform: scale(1.05) rotate(3deg);\n\t\t}\n\t}\n\n\t@keyframes dotBounce {\n\t\t0%,\n\t\t100% {\n\t\t\ttransform: translateY(0) scale(1);\n\t\t\topacity: 0.35;\n\t\t}\n\t\t50% {\n\t\t\ttransform: translateY(-6px) scale(1.2);\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t@keyframes shimmerMove {\n\t\t0% {\n\t\t\ttransform: translateX(-120%);\n\t\t}\n\t\t100% {\n\t\t\ttransform: translateX(140%);\n\t\t}\n\t}\n\n\t@keyframes shimmerAppear {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: translateY(2px);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n\n\t@keyframes glowPulse {\n\t\t0%,\n\t\t100% {\n\t\t\topacity: 0.2;\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.55;\n\t\t}\n\t}\n\n\t@keyframes textFade {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: translateY(4px);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n`;\n\nconst thinkingStates = [\n\t{\n\t\ticon: Idea,\n\t\ttext: 'Analyzing your questions...',\n\t},\n\t{\n\t\ticon: AiEdit,\n\t\ttext: 'Gathering insights...',\n\t},\n\t{\n\t\ticon: HelpIcon,\n\t\ttext: 'Crafting the perfect response...',\n\t},\n\n];\n\nconst ThinkingIndicator: React.FC = () => {\n\tconst [stateIndex, setStateIndex] = useState(0);\n\n\tuseEffect(() => {\n\t\tconst interval = window.setInterval(() => {\n\t\t\tsetStateIndex((prev) => (prev + 1) % thinkingStates.length);\n\t\t}, 1800);\n\n\t\treturn () => window.clearInterval(interval);\n\t}, []);\n\n\tconst currentState = thinkingStates[stateIndex];\n\n\treturn (\n\t\t<ThinkingBubble\n\t\t\trole=\"status\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t<currentState.icon height={24} width={24} />\n\t\t\t<div className=\"bubble-content\">\n\t\t\t\t<div className=\"status-text\">{currentState.text}</div>\n\t\t\t\t<div className=\"dots\">\n\t\t\t\t\t{[0, 1, 2, 3, 4].map((dot) => (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tkey={dot}\n\t\t\t\t\t\t\tclassName=\"dot\"\n\t\t\t\t\t\t\tstyle={{ animationDelay: `${dot * 0.15}s` }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"shimmer-group\">\n\t\t\t\t\t{[70, 85, 50].map((width, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={width}\n\t\t\t\t\t\t\tclassName=\"shimmer-line\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: `${width}%`,\n\t\t\t\t\t\t\t\tanimationDelay: `${0.25 + index * 0.12}s`,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"shimmer-highlight\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ThinkingBubble>\n\t);\n};\n\nexport default ThinkingIndicator;\n"],"names":["ThinkingBubble","styled","div","thinkingStates","icon","Idea","text","AiEdit","HelpIcon","ThinkingIndicator","stateIndex","setStateIndex","useState","useEffect","interval","window","setInterval","prev","length","clearInterval","currentState","_jsxs","Object","assign","role","children","_jsx","height","width","className","map","dot","style","animationDelay","index"],"mappings":"4RAOA,MAAMA,EAAiBC,EAAOC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoJ3BC,EAAiB,CACtB,CACCC,KAAMC,EACNC,KAAM,+BAEP,CACCF,KAAMG,EACND,KAAM,yBAEP,CACCF,KAAMI,EACNF,KAAM,qCAKFG,EAA8BA,KACnC,MAAOC,EAAYC,GAAiBC,EAAS,GAE7CC,GAAU,KACT,MAAMC,EAAWC,OAAOC,aAAY,KACnCL,GAAeM,IAAUA,EAAO,GAAKd,EAAee,QAAO,GACzD,MAEH,MAAO,IAAMH,OAAOI,cAAcL,EAAS,GACzC,IAEH,MAAMM,EAAejB,EAAeO,GAEpC,OACCW,EAACrB,EACAsB,OAAAC,OAAA,CAAAC,KAAK,SACK,YAAA,UAEV,CAAAC,SAAA,CAAAC,EAACN,EAAahB,KAAK,CAAAuB,OAAQ,GAAIC,MAAO,KACtCP,EAAK,MAAAC,OAAAC,OAAA,CAAAM,UAAU,6BACdH,EAAK,MAAAJ,OAAAC,OAAA,CAAAM,UAAU,eAAe,CAAAJ,SAAAL,EAAad,QAC3CoB,EAAK,MAAAJ,OAAAC,OAAA,CAAAM,UAAU,kBACb,CAAC,EAAG,EAAG,EAAG,EAAG,GAAGC,KAAKC,GACrBL,EAAA,OAAA,CAECG,UAAU,MACVG,MAAO,CAAEC,eAAyB,IAANF,
|
|
1
|
+
{"version":3,"file":"ThinkingIndicator.js","sources":["../../../../../src/components/bik-chatbot/components/ThinkingIndicator.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport Idea from '@src/assets/icons/Idea.svg';\nimport AiEdit from '@src/assets/icons/AiEdit.svg';\nimport HelpIcon from '@src/assets/icons/HelpIcon.svg';\n\n\nconst ThinkingBubble = styled.div`\n background: linear-gradient(92.69deg, rgba(255, 230, 238, 0.5) 0.37%, rgba(255, 240, 231, 0.5) 100%);\n\tpadding: 24px;\n\tborder-radius: 16px;\n\tborder-bottom-left-radius: 6px;\n\twidth: clamp(260px, 70vw, 340px);\n\tmin-height: 108px;\n\tmargin-right: auto;\n\tfont-size: 14px;\n\tcolor: #1f2937;\n\tbox-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);\n\tdisplay: flex;\n\talign-items: flex-start;\n\tgap: 14px;\n\tposition: relative;\n\toverflow: hidden;\n\tflex-shrink: 0;\n\n\t\n\n\t.icon-svg {\n\t\twidth: 24px;\n\t\theight: 24px;\n\t\tflex-shrink: 0;\n\t\tanimation: iconPulse 2.4s ease-in-out infinite;\n\t}\n\n\t.bubble-content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 12px;\n\t\twidth: 100%;\n\t}\n\n\t.status-text {\n\t\tfont-weight: 500;\n\t\tcolor: #1f2937;\n\t\tline-height: 1.45;\n\t\tanimation: textFade 0.35s ease forwards;\n\t\tmin-height: 20px;\n\t}\n\n\t.dots {\n\t\tdisplay: flex;\n\t\tgap: 6px;\n\t}\n\n\t.dot {\n\t\twidth: 6px;\n\t\theight: 6px;\n\t\tborder-radius: 50%;\n\t\tbackground: #EC4899;\n\t\tbox-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);\n\t\tanimation: dotBounce 1.3s ease-in-out infinite;\n\t}\n\n\t.shimmer-group {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 6px;\n\t}\n\n\t.shimmer-line {\n height: 10px;\n\t\tborder-radius: 20px;\n\t\tbackground: linear-gradient(92.69deg, #FEBAD2 0.37%, #FDD1B9 100%);\n\t\tposition: relative;\n\t\toverflow: hidden;\n\t\tanimation: shimmerAppear 0.4s ease forwards;\n\t}\n\n\t.shimmer-highlight {\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tbackground: linear-gradient(\n\t\t\t90deg,\n\t\t\trgba(255, 255, 255, 0) 0%,\n\t\t\trgba(255, 255, 255, 0.75) 50%,\n\t\t\trgba(255, 255, 255, 0) 100%\n\t\t);\n\t\ttransform: translateX(-100%);\n\t\tanimation: shimmerMove 1.8s linear infinite;\n\t}\n\n\t@keyframes iconPulse {\n\t\t0%,\n\t\t100% {\n\t\t\ttransform: scale(0.95) rotate(-3deg);\n\t\t}\n\t\t50% {\n\t\t\ttransform: scale(1.05) rotate(3deg);\n\t\t}\n\t}\n\n\t@keyframes dotBounce {\n\t\t0%,\n\t\t100% {\n\t\t\ttransform: translateY(0) scale(1);\n\t\t\topacity: 0.35;\n\t\t}\n\t\t50% {\n\t\t\ttransform: translateY(-6px) scale(1.2);\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t@keyframes shimmerMove {\n\t\t0% {\n\t\t\ttransform: translateX(-120%);\n\t\t}\n\t\t100% {\n\t\t\ttransform: translateX(140%);\n\t\t}\n\t}\n\n\t@keyframes shimmerAppear {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: translateY(2px);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n\n\t@keyframes glowPulse {\n\t\t0%,\n\t\t100% {\n\t\t\topacity: 0.2;\n\t\t}\n\t\t50% {\n\t\t\topacity: 0.55;\n\t\t}\n\t}\n\n\t@keyframes textFade {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t\ttransform: translateY(4px);\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t\ttransform: translateY(0);\n\t\t}\n\t}\n`;\n\nconst thinkingStates = [\n\t{\n\t\ticon: Idea,\n\t\ttext: 'Analyzing your questions...',\n\t},\n\t{\n\t\ticon: AiEdit,\n\t\ttext: 'Gathering insights...',\n\t},\n\t{\n\t\ticon: HelpIcon,\n\t\ttext: 'Crafting the perfect response...',\n\t},\n\n];\n\nconst ThinkingIndicator: React.FC = () => {\n\tconst [stateIndex, setStateIndex] = useState(0);\n\n\tuseEffect(() => {\n\t\tconst interval = window.setInterval(() => {\n\t\t\tsetStateIndex((prev) => (prev + 1) % thinkingStates.length);\n\t\t}, 1800);\n\n\t\treturn () => window.clearInterval(interval);\n\t}, []);\n\n\tconst currentState = thinkingStates[stateIndex];\n\n\treturn (\n\t\t<ThinkingBubble\n\t\t\trole=\"status\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t<currentState.icon height={24} width={24} />\n\t\t\t<div className=\"bubble-content\">\n\t\t\t\t<div className=\"status-text\">{currentState.text}</div>\n\t\t\t\t<div className=\"dots\">\n\t\t\t\t\t{[0, 1, 2, 3, 4].map((dot) => (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tkey={dot}\n\t\t\t\t\t\t\tclassName=\"dot\"\n\t\t\t\t\t\t\tstyle={{ animationDelay: `${dot * 0.15}s` }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"shimmer-group\">\n\t\t\t\t\t{[70, 85, 50].map((width, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={width}\n\t\t\t\t\t\t\tclassName=\"shimmer-line\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\twidth: `${width}%`,\n\t\t\t\t\t\t\t\tanimationDelay: `${0.25 + index * 0.12}s`,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"shimmer-highlight\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ThinkingBubble>\n\t);\n};\n\nexport default ThinkingIndicator;\n"],"names":["ThinkingBubble","styled","div","thinkingStates","icon","Idea","text","AiEdit","HelpIcon","ThinkingIndicator","stateIndex","setStateIndex","useState","useEffect","interval","window","setInterval","prev","length","clearInterval","currentState","_jsxs","Object","assign","role","children","_jsx","height","width","className","map","dot","style","animationDelay","index"],"mappings":"4RAOA,MAAMA,EAAiBC,EAAOC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoJ3BC,EAAiB,CACtB,CACCC,KAAMC,EACNC,KAAM,+BAEP,CACCF,KAAMG,EACND,KAAM,yBAEP,CACCF,KAAMI,EACNF,KAAM,qCAKFG,EAA8BA,KACnC,MAAOC,EAAYC,GAAiBC,EAAS,GAE7CC,GAAU,KACT,MAAMC,EAAWC,OAAOC,aAAY,KACnCL,GAAeM,IAAUA,EAAO,GAAKd,EAAee,QAAO,GACzD,MAEH,MAAO,IAAMH,OAAOI,cAAcL,EAAS,GACzC,IAEH,MAAMM,EAAejB,EAAeO,GAEpC,OACCW,EAACrB,EACAsB,OAAAC,OAAA,CAAAC,KAAK,SACK,YAAA,UAEV,CAAAC,SAAA,CAAAC,EAACN,EAAahB,KAAK,CAAAuB,OAAQ,GAAIC,MAAO,KACtCP,EAAK,MAAAC,OAAAC,OAAA,CAAAM,UAAU,6BACdH,EAAK,MAAAJ,OAAAC,OAAA,CAAAM,UAAU,eAAe,CAAAJ,SAAAL,EAAad,QAC3CoB,EAAK,MAAAJ,OAAAC,OAAA,CAAAM,UAAU,kBACb,CAAC,EAAG,EAAG,EAAG,EAAG,GAAGC,KAAKC,GACrBL,EAAA,OAAA,CAECG,UAAU,MACVG,MAAO,CAAEC,eAAyB,IAANF,EAAH,MAFpBA,QAMRL,EAAA,MAAAJ,OAAAC,OAAA,CAAKM,UAAU,iBACb,CAAAJ,SAAA,CAAC,GAAI,GAAI,IAAIK,KAAI,CAACF,EAAOM,IACzBR,EAEC,MAAAJ,OAAAC,OAAA,CAAAM,UAAU,eACVG,MAAO,CACNJ,MAAO,GAAGA,KACVK,eAAmB,IAAe,IAARC,EAAV,MAChB,CAAAT,SAEDC,EAAM,OAAA,CAAAG,UAAU,wBAPXD,eAYO"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsx as s}from"react/jsx-runtime";import{useState as o,useRef as t,useEffect as n,useCallback as r,useContext as i,createContext as a}from"react";import{createExecutorApiAdapter as
|
|
1
|
+
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{jsx as s}from"react/jsx-runtime";import{useState as o,useRef as t,useEffect as n,useCallback as r,useContext as i,createContext as a}from"react";import{createExecutorApiAdapter as d}from"../services/callToChatbot.js";import{useAIChat as l}from"../services/useAIChat.js";import{DEFAULT_MODEL as u,ALLOWED_MODELS as c}from"../types/ai.js";const m=a(null),p=({children:i,systemPrompt:a,systemId:p,functions:f,tools:v,functionHandler:g,onMessageReceived:I,displayInUI:y,maxToolCalls:h,maxTokens:C,requestExecutor:x,baseUrl:A,endpointPath:P,responseFormat:b,conversationId:w="default-session",customModel:j,onSystemReady:q,useCase:E,storeId:R})=>{const[M,T]=o(null),[U,F]=o(!0),[k,L]=o(null),$=t(null);n((()=>a?x&&A?void L(null):(L("Chatbot authentication not configured: RequestExecutor and baseUrl are required"),void F(!1)):(L("systemPrompt is required for generic mode"),void F(!1))),[a,x,A]);const H=r((()=>e(void 0,void 0,void 0,(function*(){try{F(!0),L(null);const e=j||u;if(!c.includes(e))throw new Error(`Unsupported model: ${j||"default"}. Allowed models are: ${c.join(", ")}`);T({id:p||"generic",name:p?`${p} `:"Generic AI Assistant",model:e,systemPrompt:a,functions:f,tools:v})}catch(e){const s=(null==e?void 0:e.message)||"Failed to create AI system";L(s)}finally{F(!1)}}))),[j,a,p,f]);n((()=>{a&&H()}),[H]),n((()=>{M&&q&&M.id!==$.current&&($.current=M.id,q(M)),M||($.current=null)}),[M]);const{messages:_,conversation:z,sendMessage:G,isApiCallInProgress:O}=l({system:M||{id:"loading",name:"Loading...",model:u,systemPrompt:"Loading...",functions:[]},conversationId:w,skipInitialization:!M,customFunctions:f,functionHandler:g,responseFormat:b,onMessageReceived:I,displayInUI:y,maxToolCalls:h,maxTokens:C,apiAdapter:x&&A?d(x,A,P||void 0):()=>{throw new Error("Chatbot authentication not configured: RequestExecutor is required")},useCase:E,storeId:R}),S={isReady:!!M&&!U,isLoading:U,isApiCallInProgress:O,system:M,messages:_,conversation:z,sendMessage:G,error:k};return s(m.Provider,Object.assign({value:S},{children:i}))},f=()=>{const e=i(m);if(!e)throw new Error("useAIContext must be used within an AIProvider");return e};export{p as AIProvider,f as useAIContext};
|
|
2
2
|
//# sourceMappingURL=AIContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIContext.js","sources":["../../../../../src/components/bik-chatbot/contexts/AIContext.tsx"],"sourcesContent":["import React, {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { createExecutorApiAdapter } from '../services/callToChatbot';\nimport { useAIChat } from '../services/useAIChat';\nimport {\n\tAIContextState,\n\tAIProviderProps,\n\tALLOWED_MODELS,\n\tDEFAULT_MODEL,\n\tSystemConfig,\n} from '../types';\n\nconst AIContext = createContext<AIContextState | null>(null);\n\nexport const AIProvider: React.FC<AIProviderProps> = ({\n\tchildren,\n\t// Generic mode props\n\tsystemPrompt,\n\tsystemId,\n\tfunctions,\n\ttools,\n\tfunctionHandler,\n\tonMessageReceived,\n\tdisplayInUI,\n\tmaxToolCalls,\n\tmaxTokens,\n\trequestExecutor,\n\tbaseUrl,\n\tendpointPath,\n\tresponseFormat,\n\t// Common props\n\tconversationId = 'default-session',\n\tcustomModel,\n\tonSystemReady,\n\tuseCase,\n\tstoreId,\n}) => {\n\tconst [system, setSystem] = useState<SystemConfig | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst lastNotifiedSystemId = useRef<string | null>(null);\n\n\t// Validation: systemPrompt & RequestExecutor are required\n\tuseEffect(() => {\n\t\tif (!systemPrompt) {\n\t\t\tsetError('systemPrompt is required for generic mode');\n\t\t\tsetIsLoading(false);\n\t\t\treturn;\n\t\t}\n\t\tif (!requestExecutor || !baseUrl) {\n\t\t\tsetError(\n\t\t\t\t'Chatbot authentication not configured: RequestExecutor and baseUrl are required',\n\t\t\t);\n\t\t\tsetIsLoading(false);\n\t\t\treturn;\n\t\t}\n\t\tsetError(null);\n\t}, [systemPrompt, requestExecutor, baseUrl]);\n\n\tconst createSystem = useCallback(async () => {\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\n\t\t\t// Strict model validation: only allow 4.1 nano and 4.1 mini\n\t\t\tconst modelToUse = customModel || DEFAULT_MODEL;\n\n\t\t\tif (\n\t\t\t\t!ALLOWED_MODELS.includes(modelToUse as (typeof ALLOWED_MODELS)[number])\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Unsupported model: ${\n\t\t\t\t\t\tcustomModel || 'default'\n\t\t\t\t\t}. Allowed models are: ${ALLOWED_MODELS.join(', ')}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Create generic system configuration - direct pass-through\n\t\t\tconst dynamicSystem: SystemConfig = {\n\t\t\t\tid: systemId || 'generic',\n\t\t\t\tname: systemId ? `${systemId} ` : 'Generic AI Assistant',\n\t\t\t\tmodel: modelToUse,\n\t\t\t\tsystemPrompt: systemPrompt!,\n\t\t\t\tfunctions: functions,\n\t\t\t\ttools: tools,\n\t\t\t};\n\n\t\t\tsetSystem(dynamicSystem);\n\t\t} catch (err) {\n\t\t\tconst message =\n\t\t\t\t(err as { message?: string })?.message || 'Failed to create AI system';\n\t\t\tsetError(message);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [customModel, systemPrompt, systemId, functions]);\n\n\tuseEffect(() => {\n\t\tif (systemPrompt) {\n\t\t\tcreateSystem();\n\t\t}\n\t}, [createSystem]);\n\n\t// Call onSystemReady only once per system ID (when system changes)\n\tuseEffect(() => {\n\t\tif (system && onSystemReady && system.id !== lastNotifiedSystemId.current) {\n\t\t\tlastNotifiedSystemId.current = system.id;\n\t\t\tonSystemReady(system);\n\t\t}\n\t\t// Reset if system becomes null\n\t\tif (!system) {\n\t\t\tlastNotifiedSystemId.current = null;\n\t\t}\n\t}, [system]);\n\n\tconst { messages, conversation, sendMessage, isApiCallInProgress } =\n\t\tuseAIChat({\n\t\t\tsystem: system || {\n\t\t\t\tid: 'loading',\n\t\t\t\tname: 'Loading...',\n\t\t\t\tmodel: DEFAULT_MODEL,\n\t\t\t\tsystemPrompt: 'Loading...',\n\t\t\t\tfunctions: [],\n\t\t\t},\n\t\t\tconversationId,\n\t\t\tskipInitialization: !system,\n\t\t\t// Generic mode props passed to useAIChat\n\t\t\tcustomFunctions: functions,\n\t\t\tfunctionHandler: functionHandler,\n\t\t\tresponseFormat: responseFormat,\n\t\t\tonMessageReceived: onMessageReceived,\n\t\t\tdisplayInUI: displayInUI,\n\t\t\tmaxToolCalls: maxToolCalls,\n\t\t\tmaxTokens: maxTokens,\n\t\t\tapiAdapter:\n\t\t\t\trequestExecutor && baseUrl\n\t\t\t\t\t? createExecutorApiAdapter(\n\t\t\t\t\t\t\trequestExecutor,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\tendpointPath || undefined,\n\t\t\t\t\t )\n\t\t\t\t\t: ((() => {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'Chatbot authentication not configured: RequestExecutor is required',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t }) as unknown as ReturnType<typeof createExecutorApiAdapter>),\n\t\t\tuseCase,\n\t\t\tstoreId,\n\t\t});\n\n\tconst contextValue: AIContextState = {\n\t\tisReady: !!system && !isLoading,\n\t\tisLoading,\n\t\tisApiCallInProgress,\n\t\tsystem,\n\t\tmessages,\n\t\tconversation,\n\t\tsendMessage,\n\t\terror,\n\t};\n\n\treturn (\n\t\t<AIContext.Provider value={contextValue}>{children}</AIContext.Provider>\n\t);\n};\n\nexport const useAIContext = (): AIContextState => {\n\tconst context = useContext(AIContext);\n\tif (!context) {\n\t\tthrow new Error('useAIContext must be used within an AIProvider');\n\t}\n\treturn context;\n};\n"],"names":["AIContext","createContext","AIProvider","
|
|
1
|
+
{"version":3,"file":"AIContext.js","sources":["../../../../../src/components/bik-chatbot/contexts/AIContext.tsx"],"sourcesContent":["import React, {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport { createExecutorApiAdapter } from '../services/callToChatbot';\nimport { useAIChat } from '../services/useAIChat';\nimport {\n\tAIContextState,\n\tAIProviderProps,\n\tALLOWED_MODELS,\n\tDEFAULT_MODEL,\n\tSystemConfig,\n} from '../types';\n\nconst AIContext = createContext<AIContextState | null>(null);\n\nexport const AIProvider: React.FC<AIProviderProps> = ({\n\tchildren,\n\t// Generic mode props\n\tsystemPrompt,\n\tsystemId,\n\tfunctions,\n\ttools,\n\tfunctionHandler,\n\tonMessageReceived,\n\tdisplayInUI,\n\tmaxToolCalls,\n\tmaxTokens,\n\trequestExecutor,\n\tbaseUrl,\n\tendpointPath,\n\tresponseFormat,\n\t// Common props\n\tconversationId = 'default-session',\n\tcustomModel,\n\tonSystemReady,\n\tuseCase,\n\tstoreId,\n}) => {\n\tconst [system, setSystem] = useState<SystemConfig | null>(null);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst lastNotifiedSystemId = useRef<string | null>(null);\n\n\t// Validation: systemPrompt & RequestExecutor are required\n\tuseEffect(() => {\n\t\tif (!systemPrompt) {\n\t\t\tsetError('systemPrompt is required for generic mode');\n\t\t\tsetIsLoading(false);\n\t\t\treturn;\n\t\t}\n\t\tif (!requestExecutor || !baseUrl) {\n\t\t\tsetError(\n\t\t\t\t'Chatbot authentication not configured: RequestExecutor and baseUrl are required',\n\t\t\t);\n\t\t\tsetIsLoading(false);\n\t\t\treturn;\n\t\t}\n\t\tsetError(null);\n\t}, [systemPrompt, requestExecutor, baseUrl]);\n\n\tconst createSystem = useCallback(async () => {\n\t\ttry {\n\t\t\tsetIsLoading(true);\n\t\t\tsetError(null);\n\n\t\t\t// Strict model validation: only allow 4.1 nano and 4.1 mini\n\t\t\tconst modelToUse = customModel || DEFAULT_MODEL;\n\n\t\t\tif (\n\t\t\t\t!ALLOWED_MODELS.includes(modelToUse as (typeof ALLOWED_MODELS)[number])\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Unsupported model: ${\n\t\t\t\t\t\tcustomModel || 'default'\n\t\t\t\t\t}. Allowed models are: ${ALLOWED_MODELS.join(', ')}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Create generic system configuration - direct pass-through\n\t\t\tconst dynamicSystem: SystemConfig = {\n\t\t\t\tid: systemId || 'generic',\n\t\t\t\tname: systemId ? `${systemId} ` : 'Generic AI Assistant',\n\t\t\t\tmodel: modelToUse,\n\t\t\t\tsystemPrompt: systemPrompt!,\n\t\t\t\tfunctions: functions,\n\t\t\t\ttools: tools,\n\t\t\t};\n\n\t\t\tsetSystem(dynamicSystem);\n\t\t} catch (err) {\n\t\t\tconst message =\n\t\t\t\t(err as { message?: string })?.message || 'Failed to create AI system';\n\t\t\tsetError(message);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [customModel, systemPrompt, systemId, functions]);\n\n\tuseEffect(() => {\n\t\tif (systemPrompt) {\n\t\t\tcreateSystem();\n\t\t}\n\t}, [createSystem]);\n\n\t// Call onSystemReady only once per system ID (when system changes)\n\tuseEffect(() => {\n\t\tif (system && onSystemReady && system.id !== lastNotifiedSystemId.current) {\n\t\t\tlastNotifiedSystemId.current = system.id;\n\t\t\tonSystemReady(system);\n\t\t}\n\t\t// Reset if system becomes null\n\t\tif (!system) {\n\t\t\tlastNotifiedSystemId.current = null;\n\t\t}\n\t}, [system]);\n\n\tconst { messages, conversation, sendMessage, isApiCallInProgress } =\n\t\tuseAIChat({\n\t\t\tsystem: system || {\n\t\t\t\tid: 'loading',\n\t\t\t\tname: 'Loading...',\n\t\t\t\tmodel: DEFAULT_MODEL,\n\t\t\t\tsystemPrompt: 'Loading...',\n\t\t\t\tfunctions: [],\n\t\t\t},\n\t\t\tconversationId,\n\t\t\tskipInitialization: !system,\n\t\t\t// Generic mode props passed to useAIChat\n\t\t\tcustomFunctions: functions,\n\t\t\tfunctionHandler: functionHandler,\n\t\t\tresponseFormat: responseFormat,\n\t\t\tonMessageReceived: onMessageReceived,\n\t\t\tdisplayInUI: displayInUI,\n\t\t\tmaxToolCalls: maxToolCalls,\n\t\t\tmaxTokens: maxTokens,\n\t\t\tapiAdapter:\n\t\t\t\trequestExecutor && baseUrl\n\t\t\t\t\t? createExecutorApiAdapter(\n\t\t\t\t\t\t\trequestExecutor,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\tendpointPath || undefined,\n\t\t\t\t\t )\n\t\t\t\t\t: ((() => {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'Chatbot authentication not configured: RequestExecutor is required',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t }) as unknown as ReturnType<typeof createExecutorApiAdapter>),\n\t\t\tuseCase,\n\t\t\tstoreId,\n\t\t});\n\n\tconst contextValue: AIContextState = {\n\t\tisReady: !!system && !isLoading,\n\t\tisLoading,\n\t\tisApiCallInProgress,\n\t\tsystem,\n\t\tmessages,\n\t\tconversation,\n\t\tsendMessage,\n\t\terror,\n\t};\n\n\treturn (\n\t\t<AIContext.Provider value={contextValue}>{children}</AIContext.Provider>\n\t);\n};\n\nexport const useAIContext = (): AIContextState => {\n\tconst context = useContext(AIContext);\n\tif (!context) {\n\t\tthrow new Error('useAIContext must be used within an AIProvider');\n\t}\n\treturn context;\n};\n"],"names":["AIContext","createContext","AIProvider","children","systemPrompt","systemId","functions","tools","functionHandler","onMessageReceived","displayInUI","maxToolCalls","maxTokens","requestExecutor","baseUrl","endpointPath","responseFormat","conversationId","customModel","onSystemReady","useCase","storeId","system","setSystem","useState","isLoading","setIsLoading","error","setError","lastNotifiedSystemId","useRef","useEffect","createSystem","useCallback","__awaiter","modelToUse","DEFAULT_MODEL","ALLOWED_MODELS","includes","Error","join","id","name","model","err","message","current","messages","conversation","sendMessage","isApiCallInProgress","useAIChat","skipInitialization","customFunctions","apiAdapter","createExecutorApiAdapter","undefined","contextValue","isReady","_jsx","Provider","Object","assign","value","useAIContext","context","useContext"],"mappings":"gZAkBA,MAAMA,EAAYC,EAAqC,MAE1CC,EAAwCA,EACpDC,WAEAC,eACAC,WACAC,YACAC,QACAC,kBACAC,oBACAC,cACAC,eACAC,YACAC,kBACAC,UACAC,eACAC,iBAEAC,iBAAiB,kBACjBC,cACAC,gBACAC,UACAC,cAEA,MAAOC,EAAQC,GAAaC,EAA8B,OACnDC,EAAWC,GAAgBF,GAAS,IACpCG,EAAOC,GAAYJ,EAAwB,MAC5CK,EAAuBC,EAAsB,MAGnDC,GAAU,IACJ3B,EAKAS,GAAoBC,OAOzBc,EAAS,OANRA,EACC,wFAEDF,GAAa,KARbE,EAAS,kDACTF,GAAa,KAWZ,CAACtB,EAAcS,EAAiBC,IAEnC,MAAMkB,EAAeC,GAAY,IAAWC,OAAA,OAAA,OAAA,GAAA,YAC3C,IACCR,GAAa,GACbE,EAAS,MAGT,MAAMO,EAAajB,GAAekB,EAElC,IACEC,EAAeC,SAASH,GAEzB,MAAM,IAAII,MACT,sBACCrB,GAAe,kCACSmB,EAAeG,KAAK,SAc/CjB,EAToC,CACnCkB,GAAIpC,GAAY,UAChBqC,KAAMrC,EAAW,GAAGA,KAAc,uBAClCsC,MAAOR,EACP/B,aAAcA,EACdE,UAAWA,EACXC,MAAOA,GAIR,CAAC,MAAOqC,GACR,MAAMC,GACJD,aAAA,EAAAA,EAA8BC,UAAW,6BAC3CjB,EAASiB,EACT,CAAS,QACTnB,GAAa,EACb,MACC,CAACR,EAAad,EAAcC,EAAUC,IAEzCyB,GAAU,KACL3B,GACH4B,GACA,GACC,CAACA,IAGJD,GAAU,KACLT,GAAUH,GAAiBG,EAAOmB,KAAOZ,EAAqBiB,UACjEjB,EAAqBiB,QAAUxB,EAAOmB,GACtCtB,EAAcG,IAGVA,IACJO,EAAqBiB,QAAU,KAC/B,GACC,CAACxB,IAEJ,MAAMyB,SAAEA,EAAQC,aAAEA,EAAYC,YAAEA,EAAWC,oBAAEA,GAC5CC,EAAU,CACT7B,OAAQA,GAAU,CACjBmB,GAAI,UACJC,KAAM,aACNC,MAAOP,EACPhC,aAAc,aACdE,UAAW,IAEZW,iBACAmC,oBAAqB9B,EAErB+B,gBAAiB/C,EACjBE,gBAAiBA,EACjBQ,eAAgBA,EAChBP,kBAAmBA,EACnBC,YAAaA,EACbC,aAAcA,EACdC,UAAWA,EACX0C,WACCzC,GAAmBC,EAChByC,EACA1C,EACAC,EACAC,QAAgByC,GAEd,KACF,MAAM,IAAIjB,MACT,qEACA,EAELnB,UACAC,YAGIoC,EAA+B,CACpCC,UAAWpC,IAAWG,EACtBA,YACAyB,sBACA5B,SACAyB,WACAC,eACAC,cACAtB,SAGD,OACCgC,EAAC3D,EAAU4D,SAAQC,OAAAC,OAAA,CAACC,MAAON,GAAY,CAAAtD,SAAGA,IAA8B,EAI7D6D,EAAeA,KAC3B,MAAMC,EAAUC,EAAWlE,GAC3B,IAAKiE,EACJ,MAAM,IAAI1B,MAAM,kDAEjB,OAAO0B,CAAO"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{injectSafetyPrompt as s,sanitizeUserInput as i}from"../utils/guardrails.js";import{callToChatbot as a}from"./callToChatbot.js";class o{constructor(e){if(Object.defineProperty(this,"system",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dispatchMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"customFunctions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onMessageReceived",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"displayInUI",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxToolCalls",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxTokens",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiAdapter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"responseFormat",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"useCase",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"storeId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.system=e.system,this.dispatchMessage=e.dispatchMessage,this.customFunctions=e.customFunctions,this.functionHandler=e.functionHandler,this.onMessageReceived=e.onMessageReceived,this.displayInUI=!1!==e.displayInUI,this.maxToolCalls=e.maxToolCalls||10,this.maxTokens=e.maxTokens,this.apiAdapter=e.apiAdapter,this.responseFormat=e.responseFormat,this.useCase=e.useCase,this.storeId=e.storeId,!this.apiAdapter)throw new Error("Chatbot authentication not configured: RequestExecutor is required")}sanitizeToolOutput(t,s){try{if(null!==s&&"object"==typeof s){const t=s,{success:i}=t,a=e(t,["success"]);return JSON.stringify(a)}return"string"==typeof s?s:String(s)}catch(e){return"string"==typeof s?s:String(s)}}tryParseAssistantJson(e){if(!e)return null;let t=e.trim();t=t.replace(/^```json\s*/i,"").replace(/^```\s*/i,"").replace(/\s*```$/g,"").trim();try{return JSON.parse(t)}catch(s){try{const e=`[${t.replace(/}\s*{/g,"},{")}]`;return JSON.parse(e)}catch(t){return e}}}dispatchParsedResponses(e){if(!this.displayInUI)return;const t=Date.now();e.forEach(((e,s)=>{let i="",a="assistant";if(e&&"object"==typeof e){const t=e;"string"==typeof t.response?i=t.response:"string"==typeof t.content&&(i=t.content),"system"===t.role&&(a="system")}else"string"==typeof e&&(i=e);i&&this.dispatchMessage({id:`m-${t}-${s}`,role:a,content:i,timestamp:t+s})}))}makeSystemMessage(){return{role:"system",content:s(this.system.systemPrompt)}}generate(e,s
|
|
1
|
+
import{__rest as e,__awaiter as t}from"../../../_virtual/_tslib.js";import{injectSafetyPrompt as s,sanitizeUserInput as i}from"../utils/guardrails.js";import{callToChatbot as a}from"./callToChatbot.js";class o{constructor(e){if(Object.defineProperty(this,"system",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dispatchMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"customFunctions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onMessageReceived",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"displayInUI",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxToolCalls",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxTokens",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiAdapter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"responseFormat",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"useCase",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"storeId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.system=e.system,this.dispatchMessage=e.dispatchMessage,this.customFunctions=e.customFunctions,this.functionHandler=e.functionHandler,this.onMessageReceived=e.onMessageReceived,this.displayInUI=!1!==e.displayInUI,this.maxToolCalls=e.maxToolCalls||10,this.maxTokens=e.maxTokens,this.apiAdapter=e.apiAdapter,this.responseFormat=e.responseFormat,this.useCase=e.useCase,this.storeId=e.storeId,!this.apiAdapter)throw new Error("Chatbot authentication not configured: RequestExecutor is required")}sanitizeToolOutput(t,s){try{if(null!==s&&"object"==typeof s){const t=s,{success:i}=t,a=e(t,["success"]);return JSON.stringify(a)}return"string"==typeof s?s:String(s)}catch(e){return"string"==typeof s?s:String(s)}}tryParseAssistantJson(e){if(!e)return null;let t=e.trim();t=t.replace(/^```json\s*/i,"").replace(/^```\s*/i,"").replace(/\s*```$/g,"").trim();try{return JSON.parse(t)}catch(s){try{const e=`[${t.replace(/}\s*{/g,"},{")}]`;return JSON.parse(e)}catch(t){return e}}}dispatchParsedResponses(e){if(!this.displayInUI)return;const t=Date.now();e.forEach(((e,s)=>{let i="",a="assistant";if(e&&"object"==typeof e){const t=e;"string"==typeof t.response?i=t.response:"string"==typeof t.content&&(i=t.content),"system"===t.role&&(a="system")}else"string"==typeof e&&(i=e);i&&this.dispatchMessage({id:`m-${t}-${s}`,role:a,content:i,timestamp:t+s})}))}makeSystemMessage(){return{role:"system",content:s(this.system.systemPrompt)}}generate(e,s,a="default",o){return t(this,void 0,void 0,(function*(){const t=e.map((e=>({role:e.role,text:i(e.content)}))),n=[{role:"system",text:this.makeSystemMessage().content},...t];return this.generateWithRecursiveToolCalls(n,s,a,o)}))}generateWithRecursiveToolCalls(e,s,i,o){var n,r,l,c,d,h,u,p,m,y;return t(this,void 0,void 0,(function*(){const t=e.map((e=>({role:e.role,text:e.text})));let f,g=o,v=0;for(;v<this.maxToolCalls;){let e;v++;try{if(f)e=f,f=void 0;else{let o;if(1===v&&g){const e=[...t].reverse().find((e=>"user"===e.role));e&&(o=[{role:"user",content:e.text}])}e=yield a(t,i,s,this.system.id,this.apiAdapter,g,this.system.functions,this.system.model,o,this.system.tools,this.maxTokens,this.useCase,this.storeId)}}catch(e){return this.displayInUI&&this.dispatchMessage({id:`m-${Date.now()}`,role:"system",content:`AI error: ${String((null==e?void 0:e.message)||e)}`,timestamp:Date.now()}),{}}if(g=e.responseId,!e.toolCall){if(e.assistantText)if("json"===this.responseFormat){const t=null!==(n=e.parsed)&&void 0!==n?n:this.tryParseAssistantJson(e.assistantText);if(null!=t){const e=Array.isArray(t)?t:[t];this.displayInUI&&this.dispatchParsedResponses(e),null===(r=this.onMessageReceived)||void 0===r||r.call(this,t)}else{const t=e.assistantText.trim();this.displayInUI&&t&&this.dispatchMessage({id:`m-${Date.now()}`,role:"assistant",content:t,timestamp:Date.now()}),null===(l=this.onMessageReceived)||void 0===l||l.call(this,e.assistantText)}}else this.displayInUI&&this.dispatchMessage({id:`m-${Date.now()}`,role:"assistant",content:e.assistantText,timestamp:Date.now()}),null===(c=this.onMessageReceived)||void 0===c||c.call(this,e.assistantText);return{responseId:g}}const{name:o,args:b,toolCallId:I,callId:x}=e.toolCall;I&&t.push({role:"assistant",text:"",toolCallId:I,toolName:o,toolArgs:JSON.stringify(b)});try{const e="string"==typeof b?(()=>{try{return JSON.parse(b)}catch(e){return b}})():b;null===(d=this.onMessageReceived)||void 0===d||d.call(this,{type:"TOOL_CALL",data:{name:o,args:e}});const n=yield this.functionHandler(o,e);if(I?t.push({role:"tool",text:JSON.stringify(n),toolCallId:I}):t.push({role:"tool",text:JSON.stringify(n)}),x){const e="object"==typeof n&&null!==n?n:String(n),r=this.sanitizeToolOutput(o,e);try{const t="string"==typeof e?e:JSON.stringify(e);null===(h=this.onMessageReceived)||void 0===h||h.call(this,{type:"TOOL_RESULT",data:{name:o,preview:t.slice(0,1e3)}})}catch(e){}const l=[{type:"function_call_output",call_id:x,output:r}],c=yield a(t,i,s,this.system.id,this.apiAdapter,g,this.system.functions,this.system.model,l,this.system.tools,this.maxTokens,this.useCase,this.storeId);if(g=c.responseId,!c.toolCall){if(c.assistantText)if("json"===this.responseFormat){const e=null!==(u=c.parsed)&&void 0!==u?u:this.tryParseAssistantJson(c.assistantText);if(null!=e){const t=Array.isArray(e)?e:[e];this.displayInUI&&this.dispatchParsedResponses(t),null===(p=this.onMessageReceived)||void 0===p||p.call(this,e)}else this.displayInUI&&this.dispatchMessage({id:`m-${Date.now()}`,role:"assistant",content:c.assistantText,timestamp:Date.now()}),null===(m=this.onMessageReceived)||void 0===m||m.call(this,c.assistantText)}else this.displayInUI&&this.dispatchMessage({id:`m-${Date.now()}`,role:"assistant",content:c.assistantText,timestamp:Date.now()}),null===(y=this.onMessageReceived)||void 0===y||y.call(this,c.assistantText);return{responseId:g}}f=c}else;}catch(e){return this.displayInUI&&this.dispatchMessage({id:`m-${Date.now()}`,role:"system",content:`Tool error: ${String((null==e?void 0:e.message)||e)}`,timestamp:Date.now()}),{responseId:g}}}return this.displayInUI&&this.dispatchMessage({id:`m-${Date.now()}`,role:"system",content:`Maximum tool call iterations (${this.maxToolCalls}) reached.`,timestamp:Date.now()}),{responseId:g}}))}}export{o as AIService};
|
|
2
2
|
//# sourceMappingURL=aiService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiService.js","sources":["../../../../../src/components/bik-chatbot/services/aiService.ts"],"sourcesContent":["import {\n\tAIServiceConstructorProps,\n\tChatMessage,\n\tFunctionDefinition,\n\tGenericAIResponse,\n\tSystemConfig,\n} from '../types';\nimport type { ChatMessageItem, FunctionCallOutputItem } from '../types/ai';\nimport { APIAdapter } from '../types/ai';\nimport type { ResponseFormat } from '../types/ai';\nimport { injectSafetyPrompt, sanitizeUserInput } from '../utils/guardrails';\nimport { callToChatbot } from './callToChatbot';\n\nexport class AIService {\n\tsystem: SystemConfig;\n\tdispatchMessage: (m: ChatMessage) => void;\n\n\tcustomFunctions?: FunctionDefinition[];\n\tfunctionHandler?: (name: string, args: unknown) => Promise<unknown>;\n\tonMessageReceived?: (message: string | object) => void;\n\tdisplayInUI?: boolean;\n\tmaxToolCalls?: number;\n\tmaxTokens?: number;\n\tapiAdapter: APIAdapter;\n\tresponseFormat?: ResponseFormat;\n\tuseCase?: string;\n\tstoreId?: string;\n\n\tconstructor(opts: AIServiceConstructorProps) {\n\t\tthis.system = opts.system;\n\t\tthis.dispatchMessage = opts.dispatchMessage;\n\n\t\t// Set generic mode properties\n\t\tthis.customFunctions = opts.customFunctions;\n\t\tthis.functionHandler = opts.functionHandler;\n\t\tthis.onMessageReceived = opts.onMessageReceived;\n\t\tthis.displayInUI = opts.displayInUI !== false; // Default true\n\t\tthis.maxToolCalls = opts.maxToolCalls || 10;\n\t\tthis.maxTokens = opts.maxTokens;\n\t\tthis.apiAdapter = opts.apiAdapter;\n\t\tthis.responseFormat = opts.responseFormat;\n\t\tthis.useCase = opts.useCase;\n\t\tthis.storeId = opts.storeId;\n\t\tif (!this.apiAdapter) {\n\t\t\tthrow new Error(\n\t\t\t\t'Chatbot authentication not configured: RequestExecutor is required',\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate sanitizeToolOutput(toolName: string, output: unknown): string {\n\t\t// Backend requires output to be a string - stringify objects to JSON\n\t\ttry {\n\t\t\tif (output !== null && typeof output === 'object') {\n\t\t\t\t// Remove top-level 'success' key if present, then stringify to JSON\n\t\t\t\tconst { success, ...rest } = output as Record<string, unknown>;\n\t\t\t\treturn JSON.stringify(rest);\n\t\t\t}\n\t\t\t// For strings and primitives, return as string\n\t\t\treturn typeof output === 'string' ? output : String(output);\n\t\t} catch {\n\t\t\treturn typeof output === 'string' ? output : String(output);\n\t\t}\n\t}\n\n\tprivate tryParseAssistantJson(text?: string | null): unknown | null {\n\t\tif (!text) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet cleaned = text.trim();\n\t\tcleaned = cleaned\n\t\t\t.replace(/^```json\\s*/i, '')\n\t\t\t.replace(/^```\\s*/i, '')\n\t\t\t.replace(/\\s*```$/g, '')\n\t\t\t.trim();\n\n\t\ttry {\n\t\t\treturn JSON.parse(cleaned);\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\tconst normalized = cleaned.replace(/}\\s*{/g, '},{');\n\t\t\t\tconst wrapped = `[${normalized}]`;\n\t\t\t\treturn JSON.parse(wrapped);\n\t\t\t} catch {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate dispatchParsedResponses(items: unknown[]) {\n\t\tif (!this.displayInUI) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestampBase = Date.now();\n\t\titems.forEach((item, index) => {\n\t\t\tlet bubbleContent = '';\n\t\t\tlet role: 'assistant' | 'system' = 'assistant';\n\n\t\t\tif (item && typeof item === 'object') {\n\t\t\t\tconst record = item as Record<string, unknown>;\n\t\t\t\tif (typeof record['response'] === 'string') {\n\t\t\t\t\tbubbleContent = record['response'];\n\t\t\t\t} else if (typeof record['content'] === 'string') {\n\t\t\t\t\tbubbleContent = record['content'];\n\t\t\t\t}\n\n\t\t\t\tif (record['role'] === 'system') {\n\t\t\t\t\trole = 'system';\n\t\t\t\t}\n\t\t\t} else if (typeof item === 'string') {\n\t\t\t\tbubbleContent = item;\n\t\t\t}\n\n\t\t\tif (bubbleContent) {\n\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\tid: `m-${timestampBase}-${index}`,\n\t\t\t\t\trole,\n\t\t\t\t\tcontent: bubbleContent,\n\t\t\t\t\ttimestamp: timestampBase + index,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate makeSystemMessage() {\n\t\treturn {\n\t\t\trole: 'system',\n\t\t\tcontent: injectSafetyPrompt(this.system.systemPrompt),\n\t\t};\n\t}\n\n\tasync generate(\n\t\tmessages: { role: string; content: string }[],\n\t\tconversationId: string,\n\t\tintent = 'default',\n\t\tlastResponseId?: string,\n\t): Promise<{ responseId?: string }> {\n\t\tconst sanitized = messages.map((m) => ({\n\t\t\trole: m.role,\n\t\t\ttext: sanitizeUserInput(m.content),\n\t\t}));\n\n\t\tconst history = [\n\t\t\t{ role: 'system', text: this.makeSystemMessage().content },\n\t\t\t...sanitized,\n\t\t];\n\n\t\t// Use recursive tool call engine for all cases\n\t\treturn this.generateWithRecursiveToolCalls(\n\t\t\thistory,\n\t\t\tconversationId,\n\t\t\tintent,\n\t\t\tlastResponseId,\n\t\t);\n\t}\n\n\t/**\n\t * Recursive tool call engine for all AI interactions\n\t */\n\tprivate async generateWithRecursiveToolCalls(\n\t\thistory: { role: string; text: string }[],\n\t\tconversationId: string,\n\t\tintent: string,\n\t\tlastResponseId?: string,\n\t): Promise<{ responseId?: string }> {\n\t\ttype InternalHistoryMessage = {\n\t\t\trole: string;\n\t\t\ttext: string;\n\t\t\ttoolCallId?: string;\n\t\t\ttoolName?: string;\n\t\t\ttoolArgs?: string;\n\t\t};\n\t\tconst currentHistory: InternalHistoryMessage[] = history.map((m) => ({\n\t\t\trole: m.role,\n\t\t\ttext: m.text,\n\t\t}));\n\t\tlet currentResponseId = lastResponseId;\n\t\tlet iterationCount = 0;\n\t\tconst toolCallHistory: Array<{\n\t\t\tname: string;\n\t\t\targs: unknown;\n\t\t\titeration: number;\n\t\t}> = [];\n\t\t// If we make an immediate follow-up call (after tool output), store the payload here\n\t\tlet carryOverPayload: GenericAIResponse | undefined;\n\n\t\twhile (iterationCount < this.maxToolCalls!) {\n\t\t\titerationCount++;\n\n\t\t\tlet payload: GenericAIResponse;\n\t\t\ttry {\n\t\t\t\t// Use carryOverPayload if available to avoid an extra top-of-loop API call\n\t\t\t\tif (carryOverPayload) {\n\t\t\t\t\tpayload = carryOverPayload;\n\t\t\t\t\tcarryOverPayload = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Shape input based on whether we're continuing a convo (previousResponseId) or starting fresh\n\t\t\t\t\tlet nextInput:\n\t\t\t\t\t\t| Array<ChatMessageItem | FunctionCallOutputItem>\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tif (iterationCount === 1 && currentResponseId) {\n\t\t\t\t\t\t// New user message after previous response: send only the latest user message\n\t\t\t\t\t\tconst lastUser = [...currentHistory]\n\t\t\t\t\t\t\t.reverse()\n\t\t\t\t\t\t\t.find((m) => m.role === 'user');\n\t\t\t\t\t\tif (lastUser) {\n\t\t\t\t\t\t\tnextInput = [{ role: 'user', content: lastUser.text }];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tpayload = await callToChatbot(\n\t\t\t\t\t\tcurrentHistory,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\tconversationId,\n\t\t\t\t\t\tthis.system.id,\n\t\t\t\t\t\tthis.apiAdapter,\n\t\t\t\t\t\tcurrentResponseId,\n\t\t\t\t\t\tthis.system.functions,\n\t\t\t\t\t\tthis.system.model,\n\t\t\t\t\t\tnextInput,\n\t\t\t\t\t\tthis.system.tools,\n\t\t\t\t\t\tthis.maxTokens,\n\t\t\t\t\t\tthis.useCase,\n\t\t\t\t\t\tthis.storeId,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\trole: 'system',\n\t\t\t\t\t\tcontent: `AI error: ${String(\n\t\t\t\t\t\t\t(err as unknown as { message?: string })?.message || err,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tcurrentResponseId = payload.responseId;\n\n\t\t\t// If no tool call, we're done\n\t\t\tif (!payload.toolCall) {\n\t\t\t\t// Handle text response\n\t\t\t\tif (payload.assistantText) {\n\t\t\t\t\tif (this.responseFormat === 'json') {\n\t\t\t\t\t\tconst parsedValue =\n\t\t\t\t\t\t\tpayload.parsed ??\n\t\t\t\t\t\t\tthis.tryParseAssistantJson(payload.assistantText);\n\t\t\t\t\t\tif (parsedValue !== null && parsedValue !== undefined) {\n\t\t\t\t\t\t\tconst parsedItems = Array.isArray(parsedValue)\n\t\t\t\t\t\t\t\t? parsedValue\n\t\t\t\t\t\t\t\t: [parsedValue];\n\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\tthis.dispatchParsedResponses(parsedItems);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.onMessageReceived?.(parsedValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst fallbackText = payload.assistantText.trim();\n\t\t\t\t\t\t\tif (this.displayInUI && fallbackText) {\n\t\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\t\tcontent: fallbackText,\n\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.onMessageReceived?.(payload.assistantText);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\tcontent: payload.assistantText,\n\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.onMessageReceived?.(payload.assistantText);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn { responseId: currentResponseId };\n\t\t\t}\n\n\t\t\tconst { name, args, toolCallId, callId } = payload.toolCall;\n\n\t\t\t// Log tool call\n\t\t\ttoolCallHistory.push({ name, args, iteration: iterationCount });\n\n\t\t\t// Add assistant message with tool_call to history BEFORE executing tool\n\t\t\t// This is required for Chat Completions API format\n\t\t\tif (toolCallId) {\n\t\t\t\tcurrentHistory.push({\n\t\t\t\t\trole: 'assistant',\n\t\t\t\t\ttext: '',\n\t\t\t\t\ttoolCallId: toolCallId,\n\t\t\t\t\ttoolName: name,\n\t\t\t\t\ttoolArgs: JSON.stringify(args),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Execute custom function\n\t\t\ttry {\n\t\t\t\tconst parsedArgs =\n\t\t\t\t\ttypeof args === 'string'\n\t\t\t\t\t\t? (() => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\treturn JSON.parse(args);\n\t\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\t\treturn args;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t })()\n\t\t\t\t\t\t: args;\n\t\t\t\t// Emit generic tool call event for host UI (no tool-specific handling)\n\t\t\t\tthis.onMessageReceived?.({\n\t\t\t\t\ttype: 'TOOL_CALL',\n\t\t\t\t\tdata: { name, args: parsedArgs },\n\t\t\t\t});\n\t\t\t\tconst result = await this.functionHandler!(name, parsedArgs);\n\n\t\t\t\t// Add tool result to history with the corresponding tool_call_id\n\t\t\t\tif (toolCallId) {\n\t\t\t\t\tcurrentHistory.push({\n\t\t\t\t\t\trole: 'tool',\n\t\t\t\t\t\ttext: JSON.stringify(result),\n\t\t\t\t\t\ttoolCallId: toolCallId,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Fallback: add tool result without tool_call_id (may cause issues)\n\t\t\t\t\tcurrentHistory.push({\n\t\t\t\t\t\trole: 'tool',\n\t\t\t\t\t\ttext: JSON.stringify(result),\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Prepare function_call_output for next iteration\n\t\t\t\tif (!callId) {\n\t\t\t\t\t// Missing call_id – continue without logging\n\t\t\t\t} else {\n\t\t\t\t\t// Pass whatever the handler returns - handler controls what gets sent in function_call_output\n\t\t\t\t\tconst rawOutput =\n\t\t\t\t\t\ttypeof result === 'object' && result !== null\n\t\t\t\t\t\t\t? result\n\t\t\t\t\t\t\t: String(result);\n\t\t\t\t\tconst outputPayload = this.sanitizeToolOutput(name, rawOutput);\n\t\t\t\t\t// Emit generic tool result event for host UI (truncated preview)\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst previewStr =\n\t\t\t\t\t\t\ttypeof rawOutput === 'string'\n\t\t\t\t\t\t\t\t? rawOutput\n\t\t\t\t\t\t\t\t: JSON.stringify(rawOutput);\n\t\t\t\t\t\tthis.onMessageReceived?.({\n\t\t\t\t\t\t\ttype: 'TOOL_RESULT',\n\t\t\t\t\t\t\tdata: { name, preview: previewStr.slice(0, 1000) },\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t}\n\t\t\t\t\tconst nextInput: Array<FunctionCallOutputItem> = [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'function_call_output',\n\t\t\t\t\t\t\tcall_id: callId,\n\t\t\t\t\t\t\toutput: outputPayload,\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t\t// Immediately request next step with only the function_call_output as input\n\t\t\t\t\tconst followUp = await callToChatbot(\n\t\t\t\t\t\tcurrentHistory,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\tconversationId,\n\t\t\t\t\t\tthis.system.id,\n\t\t\t\t\t\tthis.apiAdapter,\n\t\t\t\t\t\tcurrentResponseId,\n\t\t\t\t\t\tthis.system.functions,\n\t\t\t\t\t\tthis.system.model,\n\t\t\t\t\t\tnextInput,\n\t\t\t\t\t\tthis.system.tools,\n\t\t\t\t\t\tthis.maxTokens,\n\t\t\t\t\t\tthis.useCase,\n\t\t\t\t\t\tthis.storeId,\n\t\t\t\t\t);\n\t\t\t\t\tcurrentResponseId = followUp.responseId;\n\t\t\t\t\t// If the immediate follow-up produced a final answer, handle and return early\n\t\t\t\t\tif (!followUp.toolCall) {\n\t\t\t\t\t\tif (followUp.assistantText) {\n\t\t\t\t\t\t\tif (this.responseFormat === 'json') {\n\t\t\t\t\t\t\t\tconst parsedValue =\n\t\t\t\t\t\t\t\t\tfollowUp.parsed ??\n\t\t\t\t\t\t\t\t\tthis.tryParseAssistantJson(followUp.assistantText);\n\t\t\t\t\t\t\t\tif (parsedValue !== null && parsedValue !== undefined) {\n\t\t\t\t\t\t\t\t\tconst parsedItems = Array.isArray(parsedValue)\n\t\t\t\t\t\t\t\t\t\t? parsedValue\n\t\t\t\t\t\t\t\t\t\t: [parsedValue];\n\t\t\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\t\t\tthis.dispatchParsedResponses(parsedItems);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tthis.onMessageReceived?.(parsedValue);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\t\t\t\tcontent: followUp.assistantText,\n\t\t\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tthis.onMessageReceived?.(followUp.assistantText);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\t\t\tcontent: followUp.assistantText,\n\t\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.onMessageReceived?.(followUp.assistantText);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { responseId: currentResponseId };\n\t\t\t\t\t}\n\t\t\t\t\t// Otherwise, store the follow-up payload to be processed at the top of the next loop\n\t\t\t\t\tcarryOverPayload = followUp;\n\t\t\t\t}\n\n\t\t\t\t// Continue the loop to get next AI response\n\t\t\t} catch (err) {\n\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\trole: 'system',\n\t\t\t\t\t\tcontent: `Tool error: ${String(\n\t\t\t\t\t\t\t(err as unknown as { message?: string })?.message || err,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn { responseId: currentResponseId };\n\t\t\t}\n\t\t}\n\n\t\t// Max iterations reached\n\t\tif (this.displayInUI) {\n\t\t\tthis.dispatchMessage({\n\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\trole: 'system',\n\t\t\t\tcontent: `Maximum tool call iterations (${this.maxToolCalls}) reached.`,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t});\n\t\t}\n\t\treturn { responseId: currentResponseId };\n\t}\n}\n"],"names":["AIService","constructor","opts","Object","defineProperty","this","system","dispatchMessage","customFunctions","functionHandler","onMessageReceived","displayInUI","maxToolCalls","maxTokens","apiAdapter","responseFormat","useCase","storeId","Error","sanitizeToolOutput","toolName","output","_a","success","rest","__rest","JSON","stringify","String","_b","tryParseAssistantJson","text","cleaned","trim","replace","parse","wrapped","dispatchParsedResponses","items","timestampBase","Date","now","forEach","item","index","bubbleContent","role","record","id","content","timestamp","makeSystemMessage","injectSafetyPrompt","systemPrompt","generate","messages","conversationId","intent","arguments","length","undefined","lastResponseId","sanitized","map","m","sanitizeUserInput","history","generateWithRecursiveToolCalls","currentHistory","carryOverPayload","currentResponseId","iterationCount","payload","nextInput","lastUser","reverse","find","callToChatbot","functions","model","tools","err","message","responseId","toolCall","assistantText","parsedValue","parsed","parsedItems","Array","isArray","call","fallbackText","_c","_d","name","args","toolCallId","callId","push","toolArgs","parsedArgs","_e","type","data","result","rawOutput","outputPayload","previewStr","_f","preview","slice","_l","call_id","followUp","_g","_h","_j","_k"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aiService.js","sources":["../../../../../src/components/bik-chatbot/services/aiService.ts"],"sourcesContent":["import {\n\tAIServiceConstructorProps,\n\tChatMessage,\n\tFunctionDefinition,\n\tGenericAIResponse,\n\tSystemConfig,\n} from '../types';\nimport type { ChatMessageItem, FunctionCallOutputItem } from '../types/ai';\nimport { APIAdapter } from '../types/ai';\nimport type { ResponseFormat } from '../types/ai';\nimport { injectSafetyPrompt, sanitizeUserInput } from '../utils/guardrails';\nimport { callToChatbot } from './callToChatbot';\n\nexport class AIService {\n\tsystem: SystemConfig;\n\tdispatchMessage: (m: ChatMessage) => void;\n\n\tcustomFunctions?: FunctionDefinition[];\n\tfunctionHandler?: (name: string, args: unknown) => Promise<unknown>;\n\tonMessageReceived?: (message: string | object) => void;\n\tdisplayInUI?: boolean;\n\tmaxToolCalls?: number;\n\tmaxTokens?: number;\n\tapiAdapter: APIAdapter;\n\tresponseFormat?: ResponseFormat;\n\tuseCase?: string;\n\tstoreId?: string;\n\n\tconstructor(opts: AIServiceConstructorProps) {\n\t\tthis.system = opts.system;\n\t\tthis.dispatchMessage = opts.dispatchMessage;\n\n\t\t// Set generic mode properties\n\t\tthis.customFunctions = opts.customFunctions;\n\t\tthis.functionHandler = opts.functionHandler;\n\t\tthis.onMessageReceived = opts.onMessageReceived;\n\t\tthis.displayInUI = opts.displayInUI !== false; // Default true\n\t\tthis.maxToolCalls = opts.maxToolCalls || 10;\n\t\tthis.maxTokens = opts.maxTokens;\n\t\tthis.apiAdapter = opts.apiAdapter;\n\t\tthis.responseFormat = opts.responseFormat;\n\t\tthis.useCase = opts.useCase;\n\t\tthis.storeId = opts.storeId;\n\t\tif (!this.apiAdapter) {\n\t\t\tthrow new Error(\n\t\t\t\t'Chatbot authentication not configured: RequestExecutor is required',\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate sanitizeToolOutput(toolName: string, output: unknown): string {\n\t\t// Backend requires output to be a string - stringify objects to JSON\n\t\ttry {\n\t\t\tif (output !== null && typeof output === 'object') {\n\t\t\t\t// Remove top-level 'success' key if present, then stringify to JSON\n\t\t\t\tconst { success, ...rest } = output as Record<string, unknown>;\n\t\t\t\treturn JSON.stringify(rest);\n\t\t\t}\n\t\t\t// For strings and primitives, return as string\n\t\t\treturn typeof output === 'string' ? output : String(output);\n\t\t} catch {\n\t\t\treturn typeof output === 'string' ? output : String(output);\n\t\t}\n\t}\n\n\tprivate tryParseAssistantJson(text?: string | null): unknown | null {\n\t\tif (!text) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet cleaned = text.trim();\n\t\tcleaned = cleaned\n\t\t\t.replace(/^```json\\s*/i, '')\n\t\t\t.replace(/^```\\s*/i, '')\n\t\t\t.replace(/\\s*```$/g, '')\n\t\t\t.trim();\n\n\t\ttry {\n\t\t\treturn JSON.parse(cleaned);\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\tconst normalized = cleaned.replace(/}\\s*{/g, '},{');\n\t\t\t\tconst wrapped = `[${normalized}]`;\n\t\t\t\treturn JSON.parse(wrapped);\n\t\t\t} catch {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate dispatchParsedResponses(items: unknown[]) {\n\t\tif (!this.displayInUI) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestampBase = Date.now();\n\t\titems.forEach((item, index) => {\n\t\t\tlet bubbleContent = '';\n\t\t\tlet role: 'assistant' | 'system' = 'assistant';\n\n\t\t\tif (item && typeof item === 'object') {\n\t\t\t\tconst record = item as Record<string, unknown>;\n\t\t\t\tif (typeof record['response'] === 'string') {\n\t\t\t\t\tbubbleContent = record['response'];\n\t\t\t\t} else if (typeof record['content'] === 'string') {\n\t\t\t\t\tbubbleContent = record['content'];\n\t\t\t\t}\n\n\t\t\t\tif (record['role'] === 'system') {\n\t\t\t\t\trole = 'system';\n\t\t\t\t}\n\t\t\t} else if (typeof item === 'string') {\n\t\t\t\tbubbleContent = item;\n\t\t\t}\n\n\t\t\tif (bubbleContent) {\n\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\tid: `m-${timestampBase}-${index}`,\n\t\t\t\t\trole,\n\t\t\t\t\tcontent: bubbleContent,\n\t\t\t\t\ttimestamp: timestampBase + index,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate makeSystemMessage() {\n\t\treturn {\n\t\t\trole: 'system',\n\t\t\tcontent: injectSafetyPrompt(this.system.systemPrompt),\n\t\t};\n\t}\n\n\tasync generate(\n\t\tmessages: { role: string; content: string }[],\n\t\tconversationId: string,\n\t\tintent = 'default',\n\t\tlastResponseId?: string,\n\t): Promise<{ responseId?: string }> {\n\t\tconst sanitized = messages.map((m) => ({\n\t\t\trole: m.role,\n\t\t\ttext: sanitizeUserInput(m.content),\n\t\t}));\n\n\t\tconst history = [\n\t\t\t{ role: 'system', text: this.makeSystemMessage().content },\n\t\t\t...sanitized,\n\t\t];\n\n\t\t// Use recursive tool call engine for all cases\n\t\treturn this.generateWithRecursiveToolCalls(\n\t\t\thistory,\n\t\t\tconversationId,\n\t\t\tintent,\n\t\t\tlastResponseId,\n\t\t);\n\t}\n\n\t/**\n\t * Recursive tool call engine for all AI interactions\n\t */\n\tprivate async generateWithRecursiveToolCalls(\n\t\thistory: { role: string; text: string }[],\n\t\tconversationId: string,\n\t\tintent: string,\n\t\tlastResponseId?: string,\n\t): Promise<{ responseId?: string }> {\n\t\ttype InternalHistoryMessage = {\n\t\t\trole: string;\n\t\t\ttext: string;\n\t\t\ttoolCallId?: string;\n\t\t\ttoolName?: string;\n\t\t\ttoolArgs?: string;\n\t\t};\n\t\tconst currentHistory: InternalHistoryMessage[] = history.map((m) => ({\n\t\t\trole: m.role,\n\t\t\ttext: m.text,\n\t\t}));\n\t\tlet currentResponseId = lastResponseId;\n\t\tlet iterationCount = 0;\n\t\tconst toolCallHistory: Array<{\n\t\t\tname: string;\n\t\t\targs: unknown;\n\t\t\titeration: number;\n\t\t}> = [];\n\t\t// If we make an immediate follow-up call (after tool output), store the payload here\n\t\tlet carryOverPayload: GenericAIResponse | undefined;\n\n\t\twhile (iterationCount < this.maxToolCalls!) {\n\t\t\titerationCount++;\n\n\t\t\tlet payload: GenericAIResponse;\n\t\t\ttry {\n\t\t\t\t// Use carryOverPayload if available to avoid an extra top-of-loop API call\n\t\t\t\tif (carryOverPayload) {\n\t\t\t\t\tpayload = carryOverPayload;\n\t\t\t\t\tcarryOverPayload = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Shape input based on whether we're continuing a convo (previousResponseId) or starting fresh\n\t\t\t\t\tlet nextInput:\n\t\t\t\t\t\t| Array<ChatMessageItem | FunctionCallOutputItem>\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tif (iterationCount === 1 && currentResponseId) {\n\t\t\t\t\t\t// New user message after previous response: send only the latest user message\n\t\t\t\t\t\tconst lastUser = [...currentHistory]\n\t\t\t\t\t\t\t.reverse()\n\t\t\t\t\t\t\t.find((m) => m.role === 'user');\n\t\t\t\t\t\tif (lastUser) {\n\t\t\t\t\t\t\tnextInput = [{ role: 'user', content: lastUser.text }];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tpayload = await callToChatbot(\n\t\t\t\t\t\tcurrentHistory,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\tconversationId,\n\t\t\t\t\t\tthis.system.id,\n\t\t\t\t\t\tthis.apiAdapter,\n\t\t\t\t\t\tcurrentResponseId,\n\t\t\t\t\t\tthis.system.functions,\n\t\t\t\t\t\tthis.system.model,\n\t\t\t\t\t\tnextInput,\n\t\t\t\t\t\tthis.system.tools,\n\t\t\t\t\t\tthis.maxTokens,\n\t\t\t\t\t\tthis.useCase,\n\t\t\t\t\t\tthis.storeId,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\trole: 'system',\n\t\t\t\t\t\tcontent: `AI error: ${String(\n\t\t\t\t\t\t\t(err as unknown as { message?: string })?.message || err,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tcurrentResponseId = payload.responseId;\n\n\t\t\t// If no tool call, we're done\n\t\t\tif (!payload.toolCall) {\n\t\t\t\t// Handle text response\n\t\t\t\tif (payload.assistantText) {\n\t\t\t\t\tif (this.responseFormat === 'json') {\n\t\t\t\t\t\tconst parsedValue =\n\t\t\t\t\t\t\tpayload.parsed ??\n\t\t\t\t\t\t\tthis.tryParseAssistantJson(payload.assistantText);\n\t\t\t\t\t\tif (parsedValue !== null && parsedValue !== undefined) {\n\t\t\t\t\t\t\tconst parsedItems = Array.isArray(parsedValue)\n\t\t\t\t\t\t\t\t? parsedValue\n\t\t\t\t\t\t\t\t: [parsedValue];\n\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\tthis.dispatchParsedResponses(parsedItems);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.onMessageReceived?.(parsedValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst fallbackText = payload.assistantText.trim();\n\t\t\t\t\t\t\tif (this.displayInUI && fallbackText) {\n\t\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\t\tcontent: fallbackText,\n\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.onMessageReceived?.(payload.assistantText);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\tcontent: payload.assistantText,\n\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.onMessageReceived?.(payload.assistantText);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn { responseId: currentResponseId };\n\t\t\t}\n\n\t\t\tconst { name, args, toolCallId, callId } = payload.toolCall;\n\n\t\t\t// Log tool call\n\t\t\ttoolCallHistory.push({ name, args, iteration: iterationCount });\n\n\t\t\t// Add assistant message with tool_call to history BEFORE executing tool\n\t\t\t// This is required for Chat Completions API format\n\t\t\tif (toolCallId) {\n\t\t\t\tcurrentHistory.push({\n\t\t\t\t\trole: 'assistant',\n\t\t\t\t\ttext: '',\n\t\t\t\t\ttoolCallId: toolCallId,\n\t\t\t\t\ttoolName: name,\n\t\t\t\t\ttoolArgs: JSON.stringify(args),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Execute custom function\n\t\t\ttry {\n\t\t\t\tconst parsedArgs =\n\t\t\t\t\ttypeof args === 'string'\n\t\t\t\t\t\t? (() => {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\treturn JSON.parse(args);\n\t\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\t\treturn args;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t })()\n\t\t\t\t\t\t: args;\n\t\t\t\t// Emit generic tool call event for host UI (no tool-specific handling)\n\t\t\t\tthis.onMessageReceived?.({\n\t\t\t\t\ttype: 'TOOL_CALL',\n\t\t\t\t\tdata: { name, args: parsedArgs },\n\t\t\t\t});\n\t\t\t\tconst result = await this.functionHandler!(name, parsedArgs);\n\n\t\t\t\t// Add tool result to history with the corresponding tool_call_id\n\t\t\t\tif (toolCallId) {\n\t\t\t\t\tcurrentHistory.push({\n\t\t\t\t\t\trole: 'tool',\n\t\t\t\t\t\ttext: JSON.stringify(result),\n\t\t\t\t\t\ttoolCallId: toolCallId,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t// Fallback: add tool result without tool_call_id (may cause issues)\n\t\t\t\t\tcurrentHistory.push({\n\t\t\t\t\t\trole: 'tool',\n\t\t\t\t\t\ttext: JSON.stringify(result),\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Prepare function_call_output for next iteration\n\t\t\t\tif (!callId) {\n\t\t\t\t\t// Missing call_id – continue without logging\n\t\t\t\t} else {\n\t\t\t\t\t// Pass whatever the handler returns - handler controls what gets sent in function_call_output\n\t\t\t\t\tconst rawOutput =\n\t\t\t\t\t\ttypeof result === 'object' && result !== null\n\t\t\t\t\t\t\t? result\n\t\t\t\t\t\t\t: String(result);\n\t\t\t\t\tconst outputPayload = this.sanitizeToolOutput(name, rawOutput);\n\t\t\t\t\t// Emit generic tool result event for host UI (truncated preview)\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst previewStr =\n\t\t\t\t\t\t\ttypeof rawOutput === 'string'\n\t\t\t\t\t\t\t\t? rawOutput\n\t\t\t\t\t\t\t\t: JSON.stringify(rawOutput);\n\t\t\t\t\t\tthis.onMessageReceived?.({\n\t\t\t\t\t\t\ttype: 'TOOL_RESULT',\n\t\t\t\t\t\t\tdata: { name, preview: previewStr.slice(0, 1000) },\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Do nothing\n\t\t\t\t\t}\n\t\t\t\t\tconst nextInput: Array<FunctionCallOutputItem> = [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'function_call_output',\n\t\t\t\t\t\t\tcall_id: callId,\n\t\t\t\t\t\t\toutput: outputPayload,\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t\t// Immediately request next step with only the function_call_output as input\n\t\t\t\t\tconst followUp = await callToChatbot(\n\t\t\t\t\t\tcurrentHistory,\n\t\t\t\t\t\tintent,\n\t\t\t\t\t\tconversationId,\n\t\t\t\t\t\tthis.system.id,\n\t\t\t\t\t\tthis.apiAdapter,\n\t\t\t\t\t\tcurrentResponseId,\n\t\t\t\t\t\tthis.system.functions,\n\t\t\t\t\t\tthis.system.model,\n\t\t\t\t\t\tnextInput,\n\t\t\t\t\t\tthis.system.tools,\n\t\t\t\t\t\tthis.maxTokens,\n\t\t\t\t\t\tthis.useCase,\n\t\t\t\t\t\tthis.storeId,\n\t\t\t\t\t);\n\t\t\t\t\tcurrentResponseId = followUp.responseId;\n\t\t\t\t\t// If the immediate follow-up produced a final answer, handle and return early\n\t\t\t\t\tif (!followUp.toolCall) {\n\t\t\t\t\t\tif (followUp.assistantText) {\n\t\t\t\t\t\t\tif (this.responseFormat === 'json') {\n\t\t\t\t\t\t\t\tconst parsedValue =\n\t\t\t\t\t\t\t\t\tfollowUp.parsed ??\n\t\t\t\t\t\t\t\t\tthis.tryParseAssistantJson(followUp.assistantText);\n\t\t\t\t\t\t\t\tif (parsedValue !== null && parsedValue !== undefined) {\n\t\t\t\t\t\t\t\t\tconst parsedItems = Array.isArray(parsedValue)\n\t\t\t\t\t\t\t\t\t\t? parsedValue\n\t\t\t\t\t\t\t\t\t\t: [parsedValue];\n\t\t\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\t\t\tthis.dispatchParsedResponses(parsedItems);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tthis.onMessageReceived?.(parsedValue);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\t\t\t\tcontent: followUp.assistantText,\n\t\t\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tthis.onMessageReceived?.(followUp.assistantText);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\t\t\t\t\trole: 'assistant',\n\t\t\t\t\t\t\t\t\t\tcontent: followUp.assistantText,\n\t\t\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.onMessageReceived?.(followUp.assistantText);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { responseId: currentResponseId };\n\t\t\t\t\t}\n\t\t\t\t\t// Otherwise, store the follow-up payload to be processed at the top of the next loop\n\t\t\t\t\tcarryOverPayload = followUp;\n\t\t\t\t}\n\n\t\t\t\t// Continue the loop to get next AI response\n\t\t\t} catch (err) {\n\t\t\t\tif (this.displayInUI) {\n\t\t\t\t\tthis.dispatchMessage({\n\t\t\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\t\t\trole: 'system',\n\t\t\t\t\t\tcontent: `Tool error: ${String(\n\t\t\t\t\t\t\t(err as unknown as { message?: string })?.message || err,\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn { responseId: currentResponseId };\n\t\t\t}\n\t\t}\n\n\t\t// Max iterations reached\n\t\tif (this.displayInUI) {\n\t\t\tthis.dispatchMessage({\n\t\t\t\tid: `m-${Date.now()}`,\n\t\t\t\trole: 'system',\n\t\t\t\tcontent: `Maximum tool call iterations (${this.maxToolCalls}) reached.`,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t});\n\t\t}\n\t\treturn { responseId: currentResponseId };\n\t}\n}\n"],"names":["AIService","constructor","opts","Object","defineProperty","this","system","dispatchMessage","customFunctions","functionHandler","onMessageReceived","displayInUI","maxToolCalls","maxTokens","apiAdapter","responseFormat","useCase","storeId","Error","sanitizeToolOutput","toolName","output","_a","success","rest","__rest","JSON","stringify","String","_b","tryParseAssistantJson","text","cleaned","trim","replace","parse","wrapped","dispatchParsedResponses","items","timestampBase","Date","now","forEach","item","index","bubbleContent","role","record","id","content","timestamp","makeSystemMessage","injectSafetyPrompt","systemPrompt","generate","messages","conversationId","intent","lastResponseId","sanitized","map","m","sanitizeUserInput","history","generateWithRecursiveToolCalls","currentHistory","carryOverPayload","currentResponseId","iterationCount","payload","undefined","nextInput","lastUser","reverse","find","callToChatbot","functions","model","tools","err","message","responseId","toolCall","assistantText","parsedValue","parsed","parsedItems","Array","isArray","call","fallbackText","_c","_d","name","args","toolCallId","callId","push","toolArgs","parsedArgs","_e","type","data","result","rawOutput","outputPayload","previewStr","_f","preview","slice","_l","call_id","followUp","_g","_h","_j","_k"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as t}from"../../../_virtual/_tslib.js";import{DEFAULT_MODEL as e}from"../types/ai.js";function o(e,o
|
|
1
|
+
import{__awaiter as t}from"../../../_virtual/_tslib.js";import{DEFAULT_MODEL as e}from"../types/ai.js";function o(e,o,s="/bik-ai/call-chatbot"){return n=>t(this,void 0,void 0,(function*(){var t,r;const{input:a,model:i,maxTokens:l=4e3,previousResponseId:u,customFunctions:d,builtinTools:p,storeId:c}=n,m={input:a,tools:[...(p||[]).map((t=>({type:t}))),...(v=d,v&&0!==v.length?v.map((t=>({type:"function",name:t.name,description:t.description,parameters:t.parameters}))):[])],model:i,max_output_tokens:l,previous_response_id:u,output_parser:"bik_chatbot_parser",use_case:n.useCase,store_id:c};var v;const f=`${o.replace(/\/$/,"")}${s}`,{status:h,data:I,error:_}=yield e.sendData({apiPath:f,apiMethod:"POST",requestBody:m});if(200!==h||!(null==I?void 0:I.success)){const e=(null===(r=null===(t=null==I?void 0:I.errors)||void 0===t?void 0:t[0])||void 0===r?void 0:r.message)||_;throw new Error("Backend error: "+(e?` - ${String(e)}`:""))}return function(t){const e={assistantText:t.assistantText,parsed:t.parsed,lastResponseId:t.lastResponseId,responseId:t.responseId};return t.toolCall&&(e.toolCall={name:t.toolCall.name,args:t.toolCall.args,toolCallId:t.toolCall.id,callId:t.toolCall.call_id}),e}(I.data)}))}function s(o,s="default",n="default-session",r="generic",a,i,l,u=e,d,p,c,m,v){return t(this,void 0,void 0,(function*(){if(!a)throw new Error("Chatbot authentication not configured: RequestExecutor is required");const t=d&&d.length>0?d:function(t){return t.map((({role:t,text:e})=>({role:t,content:e})))}(o),e={input:t,intent:s,conversationId:n,systemId:r,previousResponseId:i,customFunctions:l,builtinTools:p,model:u,maxTokens:null!=c?c:4e3,useCase:m,storeId:v};return yield a(e)}))}export{s as callToChatbot,o as createExecutorApiAdapter};
|
|
2
2
|
//# sourceMappingURL=callToChatbot.js.map
|