@bikdotai/bik-component-library 0.0.807-beta.2 → 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/banner/Banner.stories.d.ts +38 -8
- package/dist/cjs/src/components/bik-layout/MockMenus.d.ts +0 -1
- 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/banner/Banner.stories.d.ts +38 -8
- package/dist/esm/src/components/bik-layout/MockMenus.d.ts +0 -1
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureAnnouncementProvider.js","sources":["../../../../src/components/feature-announcements/FeatureAnnouncementProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport Joyride, { ACTIONS } from 'react-joyride';\nimport { SELECTORS } from './constants';\nimport { useFeatureAnnouncements } from './hooks';\nimport MajorUpdatePopup from './MajorUpdatePopup';\nimport MinorUpdatePopup from './MinorUpdatePopup';\nimport { FeatureAnnouncement, FeatureAnnouncementProviderProps } from './types';\nimport { VideoModal } from './VideoModal';\n\nconst FeatureAnnouncementProvider: React.FC<\n\tFeatureAnnouncementProviderProps\n> = ({\n\tchildren,\n\tfetchVisibleFeatures,\n\tgetStoreFeatureProgress,\n\tfetchFeatureById,\n\tmarkFeatureAsViewedForStore,\n\tisFeatureApplicableToCurrentPage,\n\tmodule,\n\trouter,\n\tstoreId,\n\tonAnnouncementShown,\n\tonAnnouncementInteracted,\n}) => {\n\tconst {\n\t\tmajorUpdateFeatures,\n\t\tminorUpdateFeatures,\n\t\tisLoading,\n\t\tmarkFeatureAsViewed,\n\t} = useFeatureAnnouncements({\n\t\tfetchVisibleFeatures,\n\t\tgetStoreFeatureProgress,\n\t\tfetchFeatureById,\n\t\tmarkFeatureAsViewedForStore,\n\t\tisFeatureApplicableToCurrentPage,\n\t\tmodule,\n\t\trouter,\n\t});\n\n\tconst [currentMajorFeature, setCurrentMajorFeature] =\n\t\tuseState<FeatureAnnouncement | null>(null);\n\tconst [currentMinorFeature, setCurrentMinorFeature] =\n\t\tuseState<FeatureAnnouncement | null>(null);\n\tconst [runJoyride, setRunJoyride] = useState(false);\n\tconst [joyrideSteps, setJoyrideSteps] = useState<any[]>([]);\n\tconst [runMajorJoyride, setRunMajorJoyride] = useState(false);\n\tconst [majorJoyrideSteps, setMajorJoyrideSteps] = useState<any[]>([]);\n\tconst [isProcessingMajorUpdate, setIsProcessingMajorUpdate] = useState(false);\n\tconst [isProcessingMinorUpdate, setIsProcessingMinorUpdate] = useState(false);\n\tconst [availableMinorFeatures, setAvailableMinorFeatures] = useState<\n\t\tFeatureAnnouncement[]\n\t>([]);\n\tconst [minorFeaturesSkipped, setMinorFeaturesSkipped] = useState(false);\n\tconst [showMinorUpdates, setShowMinorUpdates] = useState(false);\n\tconst [isVideoModalOpen, setIsVideoModalOpen] = useState(false);\n\tconst [videoUrl, setVideoUrl] = useState('');\n\tconst [blockPopups, setBlockPopups] = useState(false);\n\tconst [isClosingMajor, setIsClosingMajor] = useState(false);\n\tconst [isClosingMinor, setIsClosingMinor] = useState(false);\n\tconst [majorJoyrideKey, setMajorJoyrideKey] = useState(0);\n\tconst [minorJoyrideKey, setMinorJoyrideKey] = useState(0);\n\tconst [shownMinorFeatureIds, setShownMinorFeatureIds] = useState<Set<string>>(\n\t\tnew Set(),\n\t);\n\n\t// Add custom style for spotlight cutout effect\n\tuseEffect(() => {\n\t\tconst styleId = 'minor-spotlight-cutout-style';\n\t\tlet styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n\t\tif (!styleElement) {\n\t\t\tstyleElement = document.createElement('style');\n\t\t\tstyleElement.id = styleId;\n\t\t\tdocument.head.appendChild(styleElement);\n\t\t}\n\n\t\tstyleElement.textContent = `\n\t\t\t.react-joyride__spotlight {\n\t\t\t\ttransition: box-shadow 0.3s ease-in-out !important;\n\t\t\t\twill-change: box-shadow, transform;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t\t.react-joyride__tooltip {\n\t\t\t\twill-change: transform, opacity;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t\t.react-joyride__floater {\n\t\t\t\tright: 12px !important;\n\t\t\t\tleft: auto !important;\n\t\t\t}\n\t\t`;\n\n\t\treturn () => {\n\t\t\tconst el = document.getElementById(styleId);\n\t\t\tif (el) {\n\t\t\t\tel.remove();\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t// Force Joyride remount on navigation to prevent stale state\n\tuseEffect(() => {\n\t\tsetMajorJoyrideKey((prev) => prev + 1);\n\t\tsetMinorJoyrideKey((prev) => prev + 1);\n\t\tsetIsClosingMajor(false);\n\t\tsetIsClosingMinor(false);\n\t\t// Reset session tracking on navigation to allow features to show on new pages\n\t\tsetShownMinorFeatureIds(new Set());\n\t}, [router?.pathname]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tmajorUpdateFeatures.length > 0 &&\n\t\t\t!currentMajorFeature &&\n\t\t\t!isLoading &&\n\t\t\t!isProcessingMajorUpdate &&\n\t\t\t!blockPopups\n\t\t) {\n\t\t\tsetShowMinorUpdates(false);\n\t\t\tsetMinorFeaturesSkipped(false);\n\t\t\tsetRunJoyride(false);\n\t\t\tsetJoyrideSteps([]);\n\t\t\tsetCurrentMinorFeature(null);\n\t\t\tsetAvailableMinorFeatures([]);\n\n\t\t\tlet attempts = 0;\n\t\t\tconst MAX_ATTEMPTS = 10;\n\n\t\t\tconst checkWhatsNewButton = () => {\n\t\t\t\tattempts++;\n\t\t\t\tconst whatsNewButton = document.querySelector(\n\t\t\t\t\t'[data-testid=\"whats-new-button\"]',\n\t\t\t\t);\n\n\t\t\t\tif (whatsNewButton) {\n\t\t\t\t\tshowMajorUpdateJoyride(majorUpdateFeatures[0]);\n\t\t\t\t} else if (attempts < MAX_ATTEMPTS) {\n\t\t\t\t\tsetTimeout(checkWhatsNewButton, 1000);\n\t\t\t\t} else {\n\t\t\t\t\tsetShowMinorUpdates(true);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcheckWhatsNewButton();\n\t\t} else if (majorUpdateFeatures.length === 0 && !isLoading) {\n\t\t\tsetShowMinorUpdates(true);\n\t\t}\n\t}, [\n\t\tmajorUpdateFeatures,\n\t\tcurrentMajorFeature,\n\t\tisLoading,\n\t\tisProcessingMajorUpdate,\n\t\tblockPopups,\n\t]);\n\n\tuseEffect(() => {\n\t\t// Only run this special logic if a feature is being forced via URL\n\t\tconst featureIdFromQuery = router?.query?.['featureId'] as string;\n\n\t\tif (!featureIdFromQuery || isLoading || minorUpdateFeatures.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst forcedFeature = minorUpdateFeatures.find(\n\t\t\t(f) => f.id === featureIdFromQuery,\n\t\t);\n\n\t\tif (!forcedFeature || !forcedFeature.featureTag) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prevent the standard flow from interfering\n\t\tsetMinorFeaturesSkipped(true);\n\t\t// Mark that we're processing to prevent other effects from interfering\n\t\tsetIsProcessingMinorUpdate(true);\n\n\t\tlet attempts = 0;\n\t\tconst maxAttempts = 25; // 5 seconds\n\t\tconst interval = setInterval(() => {\n\t\t\tattempts++;\n\t\t\tconst targetSelector =\n\t\t\t\tforcedFeature.featureTag.startsWith('#') ||\n\t\t\t\tforcedFeature.featureTag.startsWith('.') ||\n\t\t\t\tforcedFeature.featureTag.startsWith('[')\n\t\t\t\t\t? forcedFeature.featureTag\n\t\t\t\t\t: `#${forcedFeature.featureTag}`;\n\n\t\t\tconst element = document.querySelector(targetSelector);\n\n\t\t\tif (element) {\n\t\t\t\t// In test mode, pass the feature array directly to avoid async state issues\n\t\t\t\tconst testModeFeatures = [forcedFeature];\n\t\t\t\tsetAvailableMinorFeatures(testModeFeatures);\n\t\t\t\tshowMinorUpdateJoyride(forcedFeature, testModeFeatures);\n\t\t\t\t// Don't reset processing flag here - let user interaction handle it\n\t\t\t\t// This prevents auto-closing when multiple popups exist or when scrolling\n\t\t\t\tclearInterval(interval);\n\t\t\t} else if (attempts >= maxAttempts) {\n\t\t\t\t// Fallback for safety, though user expects it to be there.\n\t\t\t\t// We could log an error here.\n\t\t\t\t// Only reset on timeout (element not found)\n\t\t\t\tsetIsProcessingMinorUpdate(false);\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\t\t}, 200);\n\n\t\treturn () => {\n\t\t\tclearInterval(interval);\n\t\t\t// Don't reset processing flag on cleanup - it causes premature popup closure\n\t\t\t// The flag will be managed by user interactions (skip/explore handlers)\n\t\t};\n\t}, [minorUpdateFeatures, router?.query?.['featureId'], isLoading]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tminorUpdateFeatures.length > 0 &&\n\t\t\t!isLoading &&\n\t\t\t!runJoyride &&\n\t\t\t!isProcessingMinorUpdate &&\n\t\t\t!currentMinorFeature &&\n\t\t\t!minorFeaturesSkipped &&\n\t\t\tshowMinorUpdates &&\n\t\t\t!blockPopups\n\t\t) {\n\t\t\tlet observer: MutationObserver | null = null;\n\t\t\tlet scrollListener: (() => void) | null = null;\n\t\t\tlet checkTimeout: ReturnType<typeof setTimeout> | null = null;\n\t\t\tlet isCleanedUp = false;\n\n\t\t\tconst checkElementsAndStartTour = () => {\n\t\t\t\tif (\n\t\t\t\t\tisCleanedUp ||\n\t\t\t\t\tisProcessingMinorUpdate ||\n\t\t\t\t\tcurrentMinorFeature ||\n\t\t\t\t\tminorFeaturesSkipped ||\n\t\t\t\t\t!showMinorUpdates\n\t\t\t\t)\n\t\t\t\t\treturn;\n\n\t\t\t\tconst availableFeatures = minorUpdateFeatures.filter((feature) => {\n\t\t\t\t\tif (!feature.featureTag || feature.featureTag.trim() === '') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Skip features already shown in this session\n\t\t\t\t\tif (shownMinorFeatureIds.has(feature.id)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\tfeature.featureTag.startsWith('#') ||\n\t\t\t\t\t\tfeature.featureTag.startsWith('.') ||\n\t\t\t\t\t\tfeature.featureTag.startsWith('[')\n\t\t\t\t\t\t\t? feature.featureTag\n\t\t\t\t\t\t\t: `#${feature.featureTag}`;\n\n\t\t\t\t\tconst element = document.querySelector(targetSelector);\n\t\t\t\t\treturn element !== null;\n\t\t\t\t});\n\n\t\t\t\tif (availableFeatures.length > 0) {\n\t\t\t\t\tsetAvailableMinorFeatures(availableFeatures);\n\t\t\t\t\t// Pass features directly to avoid async state issues\n\t\t\t\t\tshowMinorUpdateJoyride(availableFeatures[0], availableFeatures);\n\n\t\t\t\t\tif (observer) {\n\t\t\t\t\t\tobserver.disconnect();\n\t\t\t\t\t\tobserver = null;\n\t\t\t\t\t}\n\t\t\t\t\tif (scrollListener) {\n\t\t\t\t\t\twindow.removeEventListener('scroll', scrollListener);\n\t\t\t\t\t\tscrollListener = null;\n\t\t\t\t\t}\n\t\t\t\t\tif (checkTimeout) {\n\t\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t\t\tcheckTimeout = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tobserver = new MutationObserver((mutations) => {\n\t\t\t\tlet shouldCheck = false;\n\t\t\t\tfor (const mutation of mutations) {\n\t\t\t\t\tif (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n\t\t\t\t\t\tfor (let i = 0; i < mutation.addedNodes.length; i++) {\n\t\t\t\t\t\t\tconst node = mutation.addedNodes[i];\n\t\t\t\t\t\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\t\t\t\t\tconst element = node as Element;\n\t\t\t\t\t\t\t\tif (element.id || element.querySelector('[id]')) {\n\t\t\t\t\t\t\t\t\tshouldCheck = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (shouldCheck) break;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!runJoyride &&\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates &&\n\t\t\t\t\tshouldCheck\n\t\t\t\t) {\n\t\t\t\t\tif (checkTimeout) {\n\t\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t\t}\n\t\t\t\t\tcheckTimeout = setTimeout(() => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\t\t\tshowMinorUpdates\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 200);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tscrollListener = () => {\n\t\t\t\tif (\n\t\t\t\t\t!runJoyride &&\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tif (checkTimeout) {\n\t\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t\t}\n\t\t\t\t\t// Use RAF for smoother performance synced with browser paint\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tcheckTimeout = setTimeout(() => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\t\t\t\tshowMinorUpdates\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (observer) {\n\t\t\t\tobserver.observe(document.body, {\n\t\t\t\t\tchildList: true,\n\t\t\t\t\tsubtree: true,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (scrollListener) {\n\t\t\t\twindow.addEventListener('scroll', scrollListener, { passive: true });\n\t\t\t}\n\n\t\t\tcheckElementsAndStartTour();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t}\n\t\t\t}, 100);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t}\n\t\t\t}, 500);\n\n\t\t\treturn () => {\n\t\t\t\tisCleanedUp = true;\n\t\t\t\tif (observer) {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t\tif (scrollListener) {\n\t\t\t\t\twindow.removeEventListener('scroll', scrollListener);\n\t\t\t\t}\n\t\t\t\tif (checkTimeout) {\n\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t}\n\t\t\t};\n\t\t} else if (minorUpdateFeatures.length === 0 || isLoading) {\n\t\t\t// Don't clear joyride if we're in test mode with an active feature\n\t\t\tconst featureIdFromQuery = router?.query?.['featureId'] as string;\n\t\t\tconst isTestModeWithActiveFeature =\n\t\t\t\tfeatureIdFromQuery && currentMinorFeature;\n\n\t\t\tif (!isTestModeWithActiveFeature) {\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetJoyrideSteps([]);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetAvailableMinorFeatures([]);\n\t\t\t\tsetMinorFeaturesSkipped(false);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tminorUpdateFeatures,\n\t\tisLoading,\n\t\trunJoyride,\n\t\tisProcessingMinorUpdate,\n\t\tcurrentMinorFeature,\n\t\tminorFeaturesSkipped,\n\t\tshowMinorUpdates,\n\t\tmarkFeatureAsViewed,\n\t\tblockPopups,\n\t]);\n\n\tconst showMajorUpdateJoyride = (feature) => {\n\t\tsetCurrentMajorFeature(feature);\n\n\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t(f) => f.id === feature.id,\n\t\t);\n\t\tconst totalFeatures = majorUpdateFeatures.length;\n\n\t\tconst majorSteps = [\n\t\t\t{\n\t\t\t\ttarget: SELECTORS.WHATS_NEW_BUTTON,\n\t\t\t\tcontent: (\n\t\t\t\t\t<MajorUpdatePopup\n\t\t\t\t\t\tfeature={feature}\n\t\t\t\t\t\tcurrentIndex={currentIndex}\n\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\tonSkip={() => handleSkipMajorUpdate(feature)}\n\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\thandleExploreFeature(feature, triggeredAction)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPrevious={() => handlePreviousMajorUpdate(feature)}\n\t\t\t\t\t\tonNext={() => handleNextMajorUpdate(feature)}\n\t\t\t\t\t\tsetIsClosing={setIsClosingMajor}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tplacementBeacon: 'top-end',\n\t\t\t\tdisableBeacon: true,\n\t\t\t\thideCloseButton: true,\n\t\t\t\thideSkipButton: true,\n\t\t\t\thideFooter: true,\n\t\t\t\toffset: 0,\n\t\t\t\tdata: { feature, isMajor: true },\n\t\t\t\tstyles: {\n\t\t\t\t\ttooltip: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t},\n\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t},\n\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tsetMajorJoyrideSteps(majorSteps);\n\t\tsetRunMajorJoyride(true);\n\n\t\t// Fire announcement shown callback\n\t\tif (onAnnouncementShown && storeId) {\n\t\t\tonAnnouncementShown({\n\t\t\t\tstoreId,\n\t\t\t\tannouncementId: feature.id,\n\t\t\t\tannouncementTitle: feature.title,\n\t\t\t\timageUrl: feature.displayImage || feature.image,\n\t\t\t\tvideoUrl: feature.productVideo,\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleSkipMajorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMajorFeature;\n\n\t\t\tif (targetFeature) {\n\t\t\t\tsetIsProcessingMajorUpdate(true);\n\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tmajorUpdateFeatures.map((majorFeature) =>\n\t\t\t\t\t\tmarkFeatureAsViewed(majorFeature.id),\n\t\t\t\t\t),\n\t\t\t\t);\n\n\t\t\t\tsetRunMajorJoyride(false);\n\t\t\t\tsetCurrentMajorFeature(null);\n\t\t\t\tsetMajorJoyrideSteps([]);\n\n\t\t\t\tsetShowMinorUpdates(true);\n\n\t\t\t\t// Fire announcement interacted callback for Skip\n\t\t\t\tif (onAnnouncementInteracted && storeId) {\n\t\t\t\t\tonAnnouncementInteracted({\n\t\t\t\t\t\tstoreId,\n\t\t\t\t\t\tannouncementId: targetFeature.id,\n\t\t\t\t\t\tannouncementTitle: targetFeature.title,\n\t\t\t\t\t\timageUrl: targetFeature.displayImage || targetFeature.image,\n\t\t\t\t\t\tvideoUrl: targetFeature.productVideo,\n\t\t\t\t\t\tbuttonClicked: 'Skip',\n\t\t\t\t\t\tbuttonName: 'Skip',\n\t\t\t\t\t\tbuttonUrl: undefined,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t\t}, 500);\n\t\t\t} else {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst handleExploreFeature = useCallback(\n\t\tasync (feature, triggeredAction?: string) => {\n\t\t\tsetIsProcessingMajorUpdate(true);\n\t\t\t// Await so the feature is marked before any page navigation\n\t\t\tawait markFeatureAsViewed(feature.id);\n\t\t\tconst action = triggeredAction ?? feature.primaryButton?.action;\n\t\t\tif (action === 'Play Video' && feature.productVideo) {\n\t\t\t\tsetVideoUrl(feature.productVideo);\n\t\t\t\tsetIsVideoModalOpen(true);\n\t\t\t\tsetBlockPopups(true);\n\t\t\t}\n\n\t\t\tif (action === 'Open link') {\n\t\t\t\tconst url =\n\t\t\t\t\tfeature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\t\tif (url && !url.startsWith('http')) {\n\t\t\t\t\twindow.location.href = url;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetRunMajorJoyride(false);\n\t\t\tsetCurrentMajorFeature(null);\n\t\t\tsetMajorJoyrideSteps([]);\n\t\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t\t(f) => f.id === feature.id,\n\t\t\t);\n\t\t\tconst isLastMajorUpdate = currentIndex === majorUpdateFeatures.length - 1;\n\t\t\tif (isLastMajorUpdate) {\n\t\t\t\tsetShowMinorUpdates(true);\n\t\t\t}\n\n\t\t\t// Fire announcement interacted callback for Primary button\n\t\t\tif (onAnnouncementInteracted && storeId) {\n\t\t\t\tonAnnouncementInteracted({\n\t\t\t\t\tstoreId,\n\t\t\t\t\tannouncementId: feature.id,\n\t\t\t\t\tannouncementTitle: feature.title,\n\t\t\t\t\timageUrl: feature.displayImage || feature.image,\n\t\t\t\t\tvideoUrl: feature.productVideo,\n\t\t\t\t\tbuttonClicked: 'Primary',\n\t\t\t\t\tbuttonName: feature.buttonText || 'Explore',\n\t\t\t\t\tbuttonUrl: feature.redirectUrl || feature.productVideo,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t}, 500);\n\t\t},\n\t\t[majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst handlePreviousMajorUpdate = useCallback(\n\t\t(feature) => {\n\t\t\tconst targetFeature = feature || currentMajorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\tconst prevFeature = majorUpdateFeatures[currentIndex - 1];\n\t\t\t\tsetCurrentMajorFeature(prevFeature);\n\n\t\t\t\tconst prevIndex = currentIndex - 1;\n\t\t\t\tconst totalFeatures = majorUpdateFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: '[data-testid=\"whats-new-button\"]',\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MajorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={prevFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={prevIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMajorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreFeature(prevFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMajorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMajorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMajor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tplacementBeacon: 'top-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: prevFeature, isMajor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetMajorJoyrideSteps(updatedSteps);\n\t\t\t} else {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures],\n\t);\n\n\tconst handleNextMajorUpdate = useCallback(\n\t\t(feature) => {\n\t\t\tconst targetFeature = feature || currentMajorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex < majorUpdateFeatures.length - 1) {\n\t\t\t\tconst nextFeature = majorUpdateFeatures[currentIndex + 1];\n\t\t\t\tsetCurrentMajorFeature(nextFeature);\n\n\t\t\t\tconst nextIndex = currentIndex + 1;\n\t\t\t\tconst totalFeatures = majorUpdateFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: '[data-testid=\"whats-new-button\"]',\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MajorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={nextFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={nextIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMajorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreFeature(nextFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMajorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMajorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMajor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tplacementBeacon: 'top-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: nextFeature, isMajor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetMajorJoyrideSteps(updatedSteps);\n\t\t\t} else {\n\t\t\t\tsetIsProcessingMajorUpdate(true);\n\n\t\t\t\tmarkFeatureAsViewed(targetFeature.id);\n\t\t\t\tsetRunMajorJoyride(false);\n\t\t\t\tsetCurrentMajorFeature(null);\n\t\t\t\tsetMajorJoyrideSteps([]);\n\n\t\t\t\tsetShowMinorUpdates(true);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst showMajorUpdatePopup = () => {\n\t\tif (majorUpdateFeatures.length > 0 && !currentMajorFeature) {\n\t\t\tconst whatsNewButton = document.querySelector(\n\t\t\t\t'[data-testid=\"whats-new-button\"]',\n\t\t\t);\n\n\t\t\tif (whatsNewButton) {\n\t\t\t\tshowMajorUpdateJoyride(majorUpdateFeatures[0]);\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\t(window as any).showMajorUpdatePopup = showMajorUpdatePopup;\n\t\treturn () => {\n\t\t\tdelete (window as any).showMajorUpdatePopup;\n\t\t};\n\t}, [majorUpdateFeatures, currentMajorFeature]);\n\tconst handleMajorJoyrideCallback = useCallback(\n\t\t(data) => {\n\t\t\tconst { action } = data;\n\n\t\t\tif (action === ACTIONS.CLOSE) {\n\t\t\t\tif (currentMajorFeature) {\n\t\t\t\t\tsetIsProcessingMajorUpdate(true);\n\n\t\t\t\t\tmajorUpdateFeatures.forEach((majorFeature) => {\n\t\t\t\t\t\tmarkFeatureAsViewed(majorFeature.id);\n\t\t\t\t\t});\n\n\t\t\t\t\tsetShowMinorUpdates(true);\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\n\t\t\t\tsetRunMajorJoyride(false);\n\t\t\t\tsetCurrentMajorFeature(null);\n\t\t\t\tsetMajorJoyrideSteps([]);\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst handleMinorJoyrideCallback = useCallback(\n\t\t(data) => {\n\t\t\tconst { action } = data;\n\n\t\t\tif (action === ACTIONS.CLOSE) {\n\t\t\t\tif (currentMinorFeature) {\n\t\t\t\t\tsetIsProcessingMinorUpdate(true);\n\n\t\t\t\t\t// Only mark the current feature as viewed, not all features\n\t\t\t\t\tmarkFeatureAsViewed(currentMinorFeature.id);\n\n\t\t\t\t\t// Check if there are more features to show\n\t\t\t\t\tconst currentIndex = availableMinorFeatures.findIndex(\n\t\t\t\t\t\t(f) => f.id === currentMinorFeature.id,\n\t\t\t\t\t);\n\t\t\t\t\tconst isLastFeature =\n\t\t\t\t\t\tcurrentIndex === availableMinorFeatures.length - 1;\n\n\t\t\t\t\tif (isLastFeature) {\n\t\t\t\t\t\t// Only skip remaining features if this was the last one\n\t\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetIsProcessingMinorUpdate(false);\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetJoyrideSteps([]);\n\t\t\t}\n\t\t},\n\t\t[currentMinorFeature, availableMinorFeatures, markFeatureAsViewed],\n\t);\n\tconst showMinorUpdateJoyride = async (feature, featuresToUse?) => {\n\t\tsetCurrentMinorFeature(feature);\n\n\t\t// Use provided features array or fall back to state (for test mode)\n\t\tconst features = featuresToUse || availableMinorFeatures;\n\t\tconst currentIndex = features.findIndex((f) => f.id === feature.id);\n\t\tconst totalFeatures = features.length;\n\n\t\tconst targetSelector =\n\t\t\tfeature.featureTag.startsWith('#') ||\n\t\t\tfeature.featureTag.startsWith('.') ||\n\t\t\tfeature.featureTag.startsWith('[')\n\t\t\t\t? feature.featureTag\n\t\t\t\t: `#${feature.featureTag}`;\n\n\t\t// Scroll to target element smoothly before showing popup\n\t\tconst targetElement = document.querySelector(targetSelector);\n\t\tif (targetElement) {\n\t\t\ttry {\n\t\t\t\t// Dynamically import to avoid circular dependencies\n\t\t\t\tconst { scrollToElementSmooth } = await import(\n\t\t\t\t\t'./utils/elementHelpers'\n\t\t\t\t);\n\t\t\t\tawait scrollToElementSmooth(targetElement, 120);\n\t\t\t} catch (error) {\n\t\t\t\t// Scroll failed silently\n\t\t\t}\n\t\t}\n\n\t\tconst minorSteps = [\n\t\t\t{\n\t\t\t\ttarget: targetSelector,\n\t\t\t\tcontent: (\n\t\t\t\t\t<MinorUpdatePopup\n\t\t\t\t\t\tfeature={feature}\n\t\t\t\t\t\tcurrentIndex={currentIndex}\n\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\tonSkip={() => handleSkipMinorUpdate(feature)}\n\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\thandleExploreMinorFeature(feature, triggeredAction)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPrevious={() => handlePreviousMinorUpdate(feature)}\n\t\t\t\t\t\tonNext={() => handleNextMinorUpdate(feature)}\n\t\t\t\t\t\tsetIsClosing={setIsClosingMinor}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tplacement: 'bottom',\n\t\t\t\tplacementBeacon: 'bottom-end',\n\t\t\t\tdisableBeacon: true,\n\t\t\t\thideCloseButton: true,\n\t\t\t\thideSkipButton: true,\n\t\t\t\thideFooter: true,\n\t\t\t\toffset: 0,\n\t\t\t\tdata: { feature, isMinor: true },\n\t\t\t\tstyles: {\n\t\t\t\t\ttooltip: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t},\n\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t},\n\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t\tsetJoyrideSteps(minorSteps);\n\t\tsetRunJoyride(true);\n\t};\n\n\tconst handleSkipMinorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMinorFeature;\n\n\t\t\tif (targetFeature) {\n\t\t\t\tsetIsProcessingMinorUpdate(true);\n\n\t\t\t\t// Only mark the current feature as viewed, not all features\n\t\t\t\tawait markFeatureAsViewed(targetFeature.id);\n\n\t\t\t\t// Add to session tracker to prevent re-showing\n\t\t\t\tsetShownMinorFeatureIds((prev) => new Set(prev).add(targetFeature.id));\n\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetJoyrideSteps([]);\n\n\t\t\t\t// Find next unshown feature\n\t\t\t\tconst nextFeature = availableMinorFeatures.find(\n\t\t\t\t\t(f) => f.id !== targetFeature.id && !shownMinorFeatureIds.has(f.id),\n\t\t\t\t);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMinorUpdate(false);\n\n\t\t\t\t\tif (nextFeature) {\n\t\t\t\t\t\t// Auto-advance to next feature\n\t\t\t\t\t\tshowMinorUpdateJoyride(nextFeature, availableMinorFeatures);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No more features to show\n\t\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tcurrentMinorFeature,\n\t\t\tavailableMinorFeatures,\n\t\t\tmarkFeatureAsViewed,\n\t\t\tshownMinorFeatureIds,\n\t\t],\n\t);\n\n\tconst handleExploreMinorFeature = useCallback(\n\t\tasync (feature, triggeredAction?: string) => {\n\t\t\tsetIsProcessingMinorUpdate(true);\n\n\t\t\t// Only mark the current feature as viewed\n\t\t\t// Await so the feature is marked before any page navigation\n\t\t\tawait markFeatureAsViewed(feature.id);\n\n\t\t\t// Add to session tracker to prevent re-showing\n\t\t\tsetShownMinorFeatureIds((prev) => new Set(prev).add(feature.id));\n\n\t\t\tconst action = triggeredAction ?? feature.primaryButton?.action;\n\n\t\t\tif (action === 'Play Video' && feature.productVideo) {\n\t\t\t\tsetVideoUrl(feature.productVideo);\n\t\t\t\tsetIsVideoModalOpen(true);\n\t\t\t\tsetBlockPopups(true);\n\t\t\t}\n\n\t\t\tif (action === 'Open link') {\n\t\t\t\tconst url =\n\t\t\t\t\tfeature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\t\tif (url && !url.startsWith('http')) {\n\t\t\t\t\twindow.location.href = url;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetRunJoyride(false);\n\t\t\tsetCurrentMinorFeature(null);\n\t\t\tsetJoyrideSteps([]);\n\n\t\t\t// Find next unshown feature (only auto-advance if no video modal)\n\t\t\tconst nextFeature = availableMinorFeatures.find(\n\t\t\t\t(f) => f.id !== feature.id && !shownMinorFeatureIds.has(f.id),\n\t\t\t);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsProcessingMinorUpdate(false);\n\n\t\t\t\t// Only auto-advance if no video modal is opened\n\t\t\t\tif (nextFeature && action !== 'Play Video') {\n\t\t\t\t\t// Auto-advance to next feature\n\t\t\t\t\tshowMinorUpdateJoyride(nextFeature, availableMinorFeatures);\n\t\t\t\t} else if (!nextFeature) {\n\t\t\t\t\t// No more features to show\n\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t}\n\t\t\t\t// If video modal opened, wait for user to close it before advancing\n\t\t\t}, 500);\n\t\t},\n\t\t[availableMinorFeatures, markFeatureAsViewed, shownMinorFeatureIds],\n\t);\n\n\tconst handlePreviousMinorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMinorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = availableMinorFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\tconst prevFeature = availableMinorFeatures[currentIndex - 1];\n\t\t\t\tsetCurrentMinorFeature(prevFeature);\n\n\t\t\t\tconst targetSelector =\n\t\t\t\t\tprevFeature.featureTag.startsWith('#') ||\n\t\t\t\t\tprevFeature.featureTag.startsWith('.') ||\n\t\t\t\t\tprevFeature.featureTag.startsWith('[')\n\t\t\t\t\t\t? prevFeature.featureTag\n\t\t\t\t\t\t: `#${prevFeature.featureTag}`;\n\n\t\t\t\t// Scroll to the previous feature element\n\t\t\t\tconst targetElement = document.querySelector(targetSelector);\n\t\t\t\tif (targetElement) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { scrollToElementSmooth } = await import(\n\t\t\t\t\t\t\t'./utils/elementHelpers'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait scrollToElementSmooth(targetElement, 120);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// Scroll failed silently\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst prevIndex = currentIndex - 1;\n\t\t\t\tconst totalFeatures = availableMinorFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: targetSelector,\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MinorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={prevFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={prevIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMinorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreMinorFeature(prevFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMinorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMinorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMinor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\tplacementBeacon: 'bottom-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: prevFeature, isMinor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetJoyrideSteps(updatedSteps);\n\t\t\t}\n\t\t},\n\t\t[currentMinorFeature, availableMinorFeatures],\n\t);\n\n\tconst handleNextMinorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMinorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = availableMinorFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex < availableMinorFeatures.length - 1) {\n\t\t\t\tconst nextFeature = availableMinorFeatures[currentIndex + 1];\n\t\t\t\tsetCurrentMinorFeature(nextFeature);\n\n\t\t\t\tconst targetSelector =\n\t\t\t\t\tnextFeature.featureTag.startsWith('#') ||\n\t\t\t\t\tnextFeature.featureTag.startsWith('.') ||\n\t\t\t\t\tnextFeature.featureTag.startsWith('[')\n\t\t\t\t\t\t? nextFeature.featureTag\n\t\t\t\t\t\t: `#${nextFeature.featureTag}`;\n\n\t\t\t\t// Scroll to the next feature element\n\t\t\t\tconst targetElement = document.querySelector(targetSelector);\n\t\t\t\tif (targetElement) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { scrollToElementSmooth } = await import(\n\t\t\t\t\t\t\t'./utils/elementHelpers'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait scrollToElementSmooth(targetElement, 120);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// Scroll failed silently\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst nextIndex = currentIndex + 1;\n\t\t\t\tconst totalFeatures = availableMinorFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: targetSelector,\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MinorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={nextFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={nextIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMinorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreMinorFeature(nextFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMinorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMinorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMinor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\tplacementBeacon: 'bottom-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: nextFeature, isMinor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetJoyrideSteps(updatedSteps);\n\t\t\t} else {\n\t\t\t\tsetIsProcessingMinorUpdate(true);\n\t\t\t\tsetMinorFeaturesSkipped(true);\n\n\t\t\t\tmarkFeatureAsViewed(targetFeature.id);\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetJoyrideSteps([]);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMinorUpdate(false);\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t},\n\t\t[currentMinorFeature, availableMinorFeatures, markFeatureAsViewed],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{children}\n\n\t\t\t{majorJoyrideSteps.length > 0 && (\n\t\t\t\t<Joyride\n\t\t\t\t\tkey={`major-joyride-${majorJoyrideKey}`}\n\t\t\t\t\tsteps={majorJoyrideSteps}\n\t\t\t\t\trun={runMajorJoyride}\n\t\t\t\t\tcontinuous={false}\n\t\t\t\t\tshowProgress={false}\n\t\t\t\t\tshowSkipButton={false}\n\t\t\t\t\tcallback={handleMajorJoyrideCallback}\n\t\t\t\t\tdisableOverlayClose={false}\n\t\t\t\t\tdisableCloseOnEsc={false}\n\t\t\t\t\tdisableOverlay={false}\n\t\t\t\t\tspotlightClicks={false}\n\t\t\t\t\tstyles={{\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tprimaryColor: '#007bff',\n\t\t\t\t\t\t\tzIndex: 10000,\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t\tarrowColor: isClosingMajor ? 'transparent' : '#212121',\n\t\t\t\t\t\t},\n\t\t\t\t\t\toverlay: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspotlight: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tlocale={{\n\t\t\t\t\t\tback: 'Back',\n\t\t\t\t\t\tclose: 'Close',\n\t\t\t\t\t\tlast: 'Close',\n\t\t\t\t\t\tnext: 'Next',\n\t\t\t\t\t\tskip: 'Skip',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{joyrideSteps.length > 0 && (\n\t\t\t\t<Joyride\n\t\t\t\t\tkey={`minor-joyride-${minorJoyrideKey}`}\n\t\t\t\t\tsteps={joyrideSteps}\n\t\t\t\t\trun={runJoyride}\n\t\t\t\t\tcontinuous={false}\n\t\t\t\t\tshowProgress={false}\n\t\t\t\t\tshowSkipButton={false}\n\t\t\t\t\tcallback={handleMinorJoyrideCallback}\n\t\t\t\t\tdisableOverlayClose={false}\n\t\t\t\t\tdisableCloseOnEsc={false}\n\t\t\t\t\tdisableOverlay={false}\n\t\t\t\t\tscrollToFirstStep={true}\n\t\t\t\t\tscrollOffset={120}\n\t\t\t\t\tdisableScrolling={false}\n\t\t\t\t\tstyles={{\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tprimaryColor: '#007bff',\n\t\t\t\t\t\t\tzIndex: 10000,\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t\tarrowColor: isClosingMinor ? 'transparent' : '#ffffff',\n\t\t\t\t\t\t},\n\t\t\t\t\t\toverlay: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspotlight: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\tboxShadow: isClosingMinor\n\t\t\t\t\t\t\t\t? 'none'\n\t\t\t\t\t\t\t\t: '0 0 0 9999px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.8), 0 0 20px 8px rgba(255, 255, 255, 0.4)',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tlocale={{\n\t\t\t\t\t\tback: 'Back',\n\t\t\t\t\t\tclose: 'Close',\n\t\t\t\t\t\tlast: 'Close',\n\t\t\t\t\t\tnext: 'Next',\n\t\t\t\t\t\tskip: 'Skip',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<VideoModal\n\t\t\t\tisOpen={isVideoModalOpen}\n\t\t\t\tvideoUrl={videoUrl}\n\t\t\t\tonClose={() => {\n\t\t\t\t\tsetIsVideoModalOpen(false);\n\t\t\t\t\tsetVideoUrl('');\n\t\t\t\t\tsetBlockPopups(false);\n\n\t\t\t\t\t// After video modal closes, check if there are more features to show\n\t\t\t\t\tconst nextFeature = availableMinorFeatures.find(\n\t\t\t\t\t\t(f) => !shownMinorFeatureIds.has(f.id),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (nextFeature) {\n\t\t\t\t\t\t// Auto-advance to next feature after video\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tshowMinorUpdateJoyride(nextFeature, availableMinorFeatures);\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No more features to show\n\t\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default FeatureAnnouncementProvider;\n"],"names":["FeatureAnnouncementProvider","_ref","children","fetchVisibleFeatures","getStoreFeatureProgress","fetchFeatureById","markFeatureAsViewedForStore","isFeatureApplicableToCurrentPage","module","router","storeId","onAnnouncementShown","onAnnouncementInteracted","majorUpdateFeatures","minorUpdateFeatures","isLoading","markFeatureAsViewed","useFeatureAnnouncements","currentMajorFeature","setCurrentMajorFeature","useState","currentMinorFeature","setCurrentMinorFeature","runJoyride","setRunJoyride","joyrideSteps","setJoyrideSteps","runMajorJoyride","setRunMajorJoyride","majorJoyrideSteps","setMajorJoyrideSteps","isProcessingMajorUpdate","setIsProcessingMajorUpdate","isProcessingMinorUpdate","setIsProcessingMinorUpdate","availableMinorFeatures","setAvailableMinorFeatures","minorFeaturesSkipped","setMinorFeaturesSkipped","showMinorUpdates","setShowMinorUpdates","isVideoModalOpen","setIsVideoModalOpen","videoUrl","setVideoUrl","blockPopups","setBlockPopups","isClosingMajor","setIsClosingMajor","isClosingMinor","setIsClosingMinor","majorJoyrideKey","setMajorJoyrideKey","minorJoyrideKey","setMinorJoyrideKey","shownMinorFeatureIds","setShownMinorFeatureIds","Set","useEffect","styleId","styleElement","document","getElementById","createElement","id","head","appendChild","textContent","el","remove","prev","pathname","length","attempts","MAX_ATTEMPTS","checkWhatsNewButton","querySelector","showMajorUpdateJoyride","setTimeout","featureIdFromQuery","_a","query","forcedFeature","find","f","featureTag","interval","setInterval","targetSelector","startsWith","testModeFeatures","showMinorUpdateJoyride","clearInterval","observer","scrollListener","checkTimeout","isCleanedUp","checkElementsAndStartTour","availableFeatures","filter","feature","trim","has","disconnect","window","removeEventListener","clearTimeout","MutationObserver","mutations","shouldCheck","mutation","type","addedNodes","i","node","nodeType","Node","ELEMENT_NODE","element","requestAnimationFrame","observe","body","childList","subtree","addEventListener","passive","currentIndex","findIndex","totalFeatures","majorSteps","target","SELECTORS","WHATS_NEW_BUTTON","content","_jsx","MajorUpdatePopup","onSkip","handleSkipMajorUpdate","onExplore","triggeredAction","handleExploreFeature","onPrevious","handlePreviousMajorUpdate","onNext","handleNextMajorUpdate","setIsClosing","placement","placementBeacon","disableBeacon","hideCloseButton","hideSkipButton","hideFooter","offset","data","isMajor","styles","tooltip","padding","backgroundColor","borderRadius","border","boxShadow","tooltipContent","buttonNext","display","buttonBack","buttonClose","buttonSkip","announcementId","announcementTitle","title","imageUrl","displayImage","image","productVideo","useCallback","__awaiter","targetFeature","Promise","all","map","majorFeature","buttonClicked","buttonName","buttonUrl","undefined","action","_b","primaryButton","url","_c","redirectionUrl","redirectUrl","location","href","buttonText","prevFeature","prevIndex","updatedSteps","nextFeature","nextIndex","showMajorUpdatePopup","handleMajorJoyrideCallback","ACTIONS","CLOSE","forEach","handleMinorJoyrideCallback","featuresToUse","features","targetElement","scrollToElementSmooth","import","error","minorSteps","MinorUpdatePopup","handleSkipMinorUpdate","handleExploreMinorFeature","handlePreviousMinorUpdate","handleNextMinorUpdate","isMinor","add","_d","_e","_jsxs","_Fragment","Joyride","steps","run","continuous","showProgress","showSkipButton","callback","disableOverlayClose","disableCloseOnEsc","disableOverlay","spotlightClicks","options","primaryColor","zIndex","width","arrowColor","overlay","spotlight","fontSize","locale","back","close","last","next","skip","scrollToFirstStep","scrollOffset","disableScrolling","VideoModal","isOpen","onClose"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FeatureAnnouncementProvider.js","sources":["../../../../src/components/feature-announcements/FeatureAnnouncementProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport Joyride, { ACTIONS } from 'react-joyride';\nimport { SELECTORS } from './constants';\nimport { useFeatureAnnouncements } from './hooks';\nimport MajorUpdatePopup from './MajorUpdatePopup';\nimport MinorUpdatePopup from './MinorUpdatePopup';\nimport { FeatureAnnouncement, FeatureAnnouncementProviderProps } from './types';\nimport { VideoModal } from './VideoModal';\n\nconst FeatureAnnouncementProvider: React.FC<\n\tFeatureAnnouncementProviderProps\n> = ({\n\tchildren,\n\tfetchVisibleFeatures,\n\tgetStoreFeatureProgress,\n\tfetchFeatureById,\n\tmarkFeatureAsViewedForStore,\n\tisFeatureApplicableToCurrentPage,\n\tmodule,\n\trouter,\n\tstoreId,\n\tonAnnouncementShown,\n\tonAnnouncementInteracted,\n}) => {\n\tconst {\n\t\tmajorUpdateFeatures,\n\t\tminorUpdateFeatures,\n\t\tisLoading,\n\t\tmarkFeatureAsViewed,\n\t} = useFeatureAnnouncements({\n\t\tfetchVisibleFeatures,\n\t\tgetStoreFeatureProgress,\n\t\tfetchFeatureById,\n\t\tmarkFeatureAsViewedForStore,\n\t\tisFeatureApplicableToCurrentPage,\n\t\tmodule,\n\t\trouter,\n\t});\n\n\tconst [currentMajorFeature, setCurrentMajorFeature] =\n\t\tuseState<FeatureAnnouncement | null>(null);\n\tconst [currentMinorFeature, setCurrentMinorFeature] =\n\t\tuseState<FeatureAnnouncement | null>(null);\n\tconst [runJoyride, setRunJoyride] = useState(false);\n\tconst [joyrideSteps, setJoyrideSteps] = useState<any[]>([]);\n\tconst [runMajorJoyride, setRunMajorJoyride] = useState(false);\n\tconst [majorJoyrideSteps, setMajorJoyrideSteps] = useState<any[]>([]);\n\tconst [isProcessingMajorUpdate, setIsProcessingMajorUpdate] = useState(false);\n\tconst [isProcessingMinorUpdate, setIsProcessingMinorUpdate] = useState(false);\n\tconst [availableMinorFeatures, setAvailableMinorFeatures] = useState<\n\t\tFeatureAnnouncement[]\n\t>([]);\n\tconst [minorFeaturesSkipped, setMinorFeaturesSkipped] = useState(false);\n\tconst [showMinorUpdates, setShowMinorUpdates] = useState(false);\n\tconst [isVideoModalOpen, setIsVideoModalOpen] = useState(false);\n\tconst [videoUrl, setVideoUrl] = useState('');\n\tconst [blockPopups, setBlockPopups] = useState(false);\n\tconst [isClosingMajor, setIsClosingMajor] = useState(false);\n\tconst [isClosingMinor, setIsClosingMinor] = useState(false);\n\tconst [majorJoyrideKey, setMajorJoyrideKey] = useState(0);\n\tconst [minorJoyrideKey, setMinorJoyrideKey] = useState(0);\n\tconst [shownMinorFeatureIds, setShownMinorFeatureIds] = useState<Set<string>>(\n\t\tnew Set(),\n\t);\n\n\t// Add custom style for spotlight cutout effect\n\tuseEffect(() => {\n\t\tconst styleId = 'minor-spotlight-cutout-style';\n\t\tlet styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n\t\tif (!styleElement) {\n\t\t\tstyleElement = document.createElement('style');\n\t\t\tstyleElement.id = styleId;\n\t\t\tdocument.head.appendChild(styleElement);\n\t\t}\n\n\t\tstyleElement.textContent = `\n\t\t\t.react-joyride__spotlight {\n\t\t\t\ttransition: box-shadow 0.3s ease-in-out !important;\n\t\t\t\twill-change: box-shadow, transform;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t\t.react-joyride__tooltip {\n\t\t\t\twill-change: transform, opacity;\n\t\t\t\ttransform: translateZ(0);\n\t\t\t}\n\t\t\t.react-joyride__floater {\n\t\t\t\tright: 12px !important;\n\t\t\t\tleft: auto !important;\n\t\t\t}\n\t\t`;\n\n\t\treturn () => {\n\t\t\tconst el = document.getElementById(styleId);\n\t\t\tif (el) {\n\t\t\t\tel.remove();\n\t\t\t}\n\t\t};\n\t}, []);\n\n\t// Force Joyride remount on navigation to prevent stale state\n\tuseEffect(() => {\n\t\tsetMajorJoyrideKey((prev) => prev + 1);\n\t\tsetMinorJoyrideKey((prev) => prev + 1);\n\t\tsetIsClosingMajor(false);\n\t\tsetIsClosingMinor(false);\n\t\t// Reset session tracking on navigation to allow features to show on new pages\n\t\tsetShownMinorFeatureIds(new Set());\n\t}, [router?.pathname]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tmajorUpdateFeatures.length > 0 &&\n\t\t\t!currentMajorFeature &&\n\t\t\t!isLoading &&\n\t\t\t!isProcessingMajorUpdate &&\n\t\t\t!blockPopups\n\t\t) {\n\t\t\tsetShowMinorUpdates(false);\n\t\t\tsetMinorFeaturesSkipped(false);\n\t\t\tsetRunJoyride(false);\n\t\t\tsetJoyrideSteps([]);\n\t\t\tsetCurrentMinorFeature(null);\n\t\t\tsetAvailableMinorFeatures([]);\n\n\t\t\tlet attempts = 0;\n\t\t\tconst MAX_ATTEMPTS = 10;\n\n\t\t\tconst checkWhatsNewButton = () => {\n\t\t\t\tattempts++;\n\t\t\t\tconst whatsNewButton = document.querySelector(\n\t\t\t\t\t'[data-testid=\"whats-new-button\"]',\n\t\t\t\t);\n\n\t\t\t\tif (whatsNewButton) {\n\t\t\t\t\tshowMajorUpdateJoyride(majorUpdateFeatures[0]);\n\t\t\t\t} else if (attempts < MAX_ATTEMPTS) {\n\t\t\t\t\tsetTimeout(checkWhatsNewButton, 1000);\n\t\t\t\t} else {\n\t\t\t\t\tsetShowMinorUpdates(true);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcheckWhatsNewButton();\n\t\t} else if (majorUpdateFeatures.length === 0 && !isLoading) {\n\t\t\tsetShowMinorUpdates(true);\n\t\t}\n\t}, [\n\t\tmajorUpdateFeatures,\n\t\tcurrentMajorFeature,\n\t\tisLoading,\n\t\tisProcessingMajorUpdate,\n\t\tblockPopups,\n\t]);\n\n\tuseEffect(() => {\n\t\t// Only run this special logic if a feature is being forced via URL\n\t\tconst featureIdFromQuery = router?.query?.['featureId'] as string;\n\n\t\tif (!featureIdFromQuery || isLoading || minorUpdateFeatures.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst forcedFeature = minorUpdateFeatures.find(\n\t\t\t(f) => f.id === featureIdFromQuery,\n\t\t);\n\n\t\tif (!forcedFeature || !forcedFeature.featureTag) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prevent the standard flow from interfering\n\t\tsetMinorFeaturesSkipped(true);\n\t\t// Mark that we're processing to prevent other effects from interfering\n\t\tsetIsProcessingMinorUpdate(true);\n\n\t\tlet attempts = 0;\n\t\tconst maxAttempts = 25; // 5 seconds\n\t\tconst interval = setInterval(() => {\n\t\t\tattempts++;\n\t\t\tconst targetSelector =\n\t\t\t\tforcedFeature.featureTag.startsWith('#') ||\n\t\t\t\tforcedFeature.featureTag.startsWith('.') ||\n\t\t\t\tforcedFeature.featureTag.startsWith('[')\n\t\t\t\t\t? forcedFeature.featureTag\n\t\t\t\t\t: `#${forcedFeature.featureTag}`;\n\n\t\t\tconst element = document.querySelector(targetSelector);\n\n\t\t\tif (element) {\n\t\t\t\t// In test mode, pass the feature array directly to avoid async state issues\n\t\t\t\tconst testModeFeatures = [forcedFeature];\n\t\t\t\tsetAvailableMinorFeatures(testModeFeatures);\n\t\t\t\tshowMinorUpdateJoyride(forcedFeature, testModeFeatures);\n\t\t\t\t// Don't reset processing flag here - let user interaction handle it\n\t\t\t\t// This prevents auto-closing when multiple popups exist or when scrolling\n\t\t\t\tclearInterval(interval);\n\t\t\t} else if (attempts >= maxAttempts) {\n\t\t\t\t// Fallback for safety, though user expects it to be there.\n\t\t\t\t// We could log an error here.\n\t\t\t\t// Only reset on timeout (element not found)\n\t\t\t\tsetIsProcessingMinorUpdate(false);\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\t\t}, 200);\n\n\t\treturn () => {\n\t\t\tclearInterval(interval);\n\t\t\t// Don't reset processing flag on cleanup - it causes premature popup closure\n\t\t\t// The flag will be managed by user interactions (skip/explore handlers)\n\t\t};\n\t}, [minorUpdateFeatures, router?.query?.['featureId'], isLoading]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tminorUpdateFeatures.length > 0 &&\n\t\t\t!isLoading &&\n\t\t\t!runJoyride &&\n\t\t\t!isProcessingMinorUpdate &&\n\t\t\t!currentMinorFeature &&\n\t\t\t!minorFeaturesSkipped &&\n\t\t\tshowMinorUpdates &&\n\t\t\t!blockPopups\n\t\t) {\n\t\t\tlet observer: MutationObserver | null = null;\n\t\t\tlet scrollListener: (() => void) | null = null;\n\t\t\tlet checkTimeout: ReturnType<typeof setTimeout> | null = null;\n\t\t\tlet isCleanedUp = false;\n\n\t\t\tconst checkElementsAndStartTour = () => {\n\t\t\t\tif (\n\t\t\t\t\tisCleanedUp ||\n\t\t\t\t\tisProcessingMinorUpdate ||\n\t\t\t\t\tcurrentMinorFeature ||\n\t\t\t\t\tminorFeaturesSkipped ||\n\t\t\t\t\t!showMinorUpdates\n\t\t\t\t)\n\t\t\t\t\treturn;\n\n\t\t\t\tconst availableFeatures = minorUpdateFeatures.filter((feature) => {\n\t\t\t\t\tif (!feature.featureTag || feature.featureTag.trim() === '') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Skip features already shown in this session\n\t\t\t\t\tif (shownMinorFeatureIds.has(feature.id)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\tfeature.featureTag.startsWith('#') ||\n\t\t\t\t\t\tfeature.featureTag.startsWith('.') ||\n\t\t\t\t\t\tfeature.featureTag.startsWith('[')\n\t\t\t\t\t\t\t? feature.featureTag\n\t\t\t\t\t\t\t: `#${feature.featureTag}`;\n\n\t\t\t\t\tconst element = document.querySelector(targetSelector);\n\t\t\t\t\treturn element !== null;\n\t\t\t\t});\n\n\t\t\t\tif (availableFeatures.length > 0) {\n\t\t\t\t\tsetAvailableMinorFeatures(availableFeatures);\n\t\t\t\t\t// Pass features directly to avoid async state issues\n\t\t\t\t\tshowMinorUpdateJoyride(availableFeatures[0], availableFeatures);\n\n\t\t\t\t\tif (observer) {\n\t\t\t\t\t\tobserver.disconnect();\n\t\t\t\t\t\tobserver = null;\n\t\t\t\t\t}\n\t\t\t\t\tif (scrollListener) {\n\t\t\t\t\t\twindow.removeEventListener('scroll', scrollListener);\n\t\t\t\t\t\tscrollListener = null;\n\t\t\t\t\t}\n\t\t\t\t\tif (checkTimeout) {\n\t\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t\t\tcheckTimeout = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tobserver = new MutationObserver((mutations) => {\n\t\t\t\tlet shouldCheck = false;\n\t\t\t\tfor (const mutation of mutations) {\n\t\t\t\t\tif (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n\t\t\t\t\t\tfor (let i = 0; i < mutation.addedNodes.length; i++) {\n\t\t\t\t\t\t\tconst node = mutation.addedNodes[i];\n\t\t\t\t\t\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\t\t\t\t\tconst element = node as Element;\n\t\t\t\t\t\t\t\tif (element.id || element.querySelector('[id]')) {\n\t\t\t\t\t\t\t\t\tshouldCheck = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (shouldCheck) break;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!runJoyride &&\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates &&\n\t\t\t\t\tshouldCheck\n\t\t\t\t) {\n\t\t\t\t\tif (checkTimeout) {\n\t\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t\t}\n\t\t\t\t\tcheckTimeout = setTimeout(() => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\t\t\tshowMinorUpdates\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 200);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tscrollListener = () => {\n\t\t\t\tif (\n\t\t\t\t\t!runJoyride &&\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tif (checkTimeout) {\n\t\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t\t}\n\t\t\t\t\t// Use RAF for smoother performance synced with browser paint\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tcheckTimeout = setTimeout(() => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\t\t\t\tshowMinorUpdates\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (observer) {\n\t\t\t\tobserver.observe(document.body, {\n\t\t\t\t\tchildList: true,\n\t\t\t\t\tsubtree: true,\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (scrollListener) {\n\t\t\t\twindow.addEventListener('scroll', scrollListener, { passive: true });\n\t\t\t}\n\n\t\t\tcheckElementsAndStartTour();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t}\n\t\t\t}, 100);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (\n\t\t\t\t\t!isCleanedUp &&\n\t\t\t\t\t!isProcessingMinorUpdate &&\n\t\t\t\t\t!currentMinorFeature &&\n\t\t\t\t\t!minorFeaturesSkipped &&\n\t\t\t\t\tshowMinorUpdates\n\t\t\t\t) {\n\t\t\t\t\tcheckElementsAndStartTour();\n\t\t\t\t}\n\t\t\t}, 500);\n\n\t\t\treturn () => {\n\t\t\t\tisCleanedUp = true;\n\t\t\t\tif (observer) {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t\tif (scrollListener) {\n\t\t\t\t\twindow.removeEventListener('scroll', scrollListener);\n\t\t\t\t}\n\t\t\t\tif (checkTimeout) {\n\t\t\t\t\tclearTimeout(checkTimeout);\n\t\t\t\t}\n\t\t\t};\n\t\t} else if (minorUpdateFeatures.length === 0 || isLoading) {\n\t\t\t// Don't clear joyride if we're in test mode with an active feature\n\t\t\tconst featureIdFromQuery = router?.query?.['featureId'] as string;\n\t\t\tconst isTestModeWithActiveFeature =\n\t\t\t\tfeatureIdFromQuery && currentMinorFeature;\n\n\t\t\tif (!isTestModeWithActiveFeature) {\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetJoyrideSteps([]);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetAvailableMinorFeatures([]);\n\t\t\t\tsetMinorFeaturesSkipped(false);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tminorUpdateFeatures,\n\t\tisLoading,\n\t\trunJoyride,\n\t\tisProcessingMinorUpdate,\n\t\tcurrentMinorFeature,\n\t\tminorFeaturesSkipped,\n\t\tshowMinorUpdates,\n\t\tmarkFeatureAsViewed,\n\t\tblockPopups,\n\t]);\n\n\tconst showMajorUpdateJoyride = (feature) => {\n\t\tsetCurrentMajorFeature(feature);\n\n\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t(f) => f.id === feature.id,\n\t\t);\n\t\tconst totalFeatures = majorUpdateFeatures.length;\n\n\t\tconst majorSteps = [\n\t\t\t{\n\t\t\t\ttarget: SELECTORS.WHATS_NEW_BUTTON,\n\t\t\t\tcontent: (\n\t\t\t\t\t<MajorUpdatePopup\n\t\t\t\t\t\tfeature={feature}\n\t\t\t\t\t\tcurrentIndex={currentIndex}\n\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\tonSkip={() => handleSkipMajorUpdate(feature)}\n\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\thandleExploreFeature(feature, triggeredAction)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPrevious={() => handlePreviousMajorUpdate(feature)}\n\t\t\t\t\t\tonNext={() => handleNextMajorUpdate(feature)}\n\t\t\t\t\t\tsetIsClosing={setIsClosingMajor}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tplacementBeacon: 'top-end',\n\t\t\t\tdisableBeacon: true,\n\t\t\t\thideCloseButton: true,\n\t\t\t\thideSkipButton: true,\n\t\t\t\thideFooter: true,\n\t\t\t\toffset: 0,\n\t\t\t\tdata: { feature, isMajor: true },\n\t\t\t\tstyles: {\n\t\t\t\t\ttooltip: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t},\n\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t},\n\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\n\t\tsetMajorJoyrideSteps(majorSteps);\n\t\tsetRunMajorJoyride(true);\n\n\t\t// Fire announcement shown callback\n\t\tif (onAnnouncementShown && storeId) {\n\t\t\tonAnnouncementShown({\n\t\t\t\tstoreId,\n\t\t\t\tannouncementId: feature.id,\n\t\t\t\tannouncementTitle: feature.title,\n\t\t\t\timageUrl: feature.displayImage || feature.image,\n\t\t\t\tvideoUrl: feature.productVideo,\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleSkipMajorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMajorFeature;\n\n\t\t\tif (targetFeature) {\n\t\t\t\tsetIsProcessingMajorUpdate(true);\n\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tmajorUpdateFeatures.map((majorFeature) =>\n\t\t\t\t\t\tmarkFeatureAsViewed(majorFeature.id),\n\t\t\t\t\t),\n\t\t\t\t);\n\n\t\t\t\tsetRunMajorJoyride(false);\n\t\t\t\tsetCurrentMajorFeature(null);\n\t\t\t\tsetMajorJoyrideSteps([]);\n\n\t\t\t\tsetShowMinorUpdates(true);\n\n\t\t\t\t// Fire announcement interacted callback for Skip\n\t\t\t\tif (onAnnouncementInteracted && storeId) {\n\t\t\t\t\tonAnnouncementInteracted({\n\t\t\t\t\t\tstoreId,\n\t\t\t\t\t\tannouncementId: targetFeature.id,\n\t\t\t\t\t\tannouncementTitle: targetFeature.title,\n\t\t\t\t\t\timageUrl: targetFeature.displayImage || targetFeature.image,\n\t\t\t\t\t\tvideoUrl: targetFeature.productVideo,\n\t\t\t\t\t\tbuttonClicked: 'Skip',\n\t\t\t\t\t\tbuttonName: 'Skip',\n\t\t\t\t\t\tbuttonUrl: undefined,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t\t}, 500);\n\t\t\t} else {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst handleExploreFeature = useCallback(\n\t\tasync (feature, triggeredAction?: string) => {\n\t\t\tsetIsProcessingMajorUpdate(true);\n\t\t\t// Await so the feature is marked before any page navigation\n\t\t\tawait markFeatureAsViewed(feature.id);\n\t\t\tconst action = triggeredAction ?? feature.primaryButton?.action;\n\t\t\tif (action === 'Play Video' && feature.productVideo) {\n\t\t\t\tsetVideoUrl(feature.productVideo);\n\t\t\t\tsetIsVideoModalOpen(true);\n\t\t\t\tsetBlockPopups(true);\n\t\t\t}\n\n\t\t\tif (action === 'Open link') {\n\t\t\t\tconst url =\n\t\t\t\t\tfeature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\t\tif (url && !url.startsWith('http')) {\n\t\t\t\t\twindow.location.href = url;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetRunMajorJoyride(false);\n\t\t\tsetCurrentMajorFeature(null);\n\t\t\tsetMajorJoyrideSteps([]);\n\t\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t\t(f) => f.id === feature.id,\n\t\t\t);\n\t\t\tconst isLastMajorUpdate = currentIndex === majorUpdateFeatures.length - 1;\n\t\t\tif (isLastMajorUpdate) {\n\t\t\t\tsetShowMinorUpdates(true);\n\t\t\t}\n\n\t\t\t// Fire announcement interacted callback for Primary button\n\t\t\tif (onAnnouncementInteracted && storeId) {\n\t\t\t\tonAnnouncementInteracted({\n\t\t\t\t\tstoreId,\n\t\t\t\t\tannouncementId: feature.id,\n\t\t\t\t\tannouncementTitle: feature.title,\n\t\t\t\t\timageUrl: feature.displayImage || feature.image,\n\t\t\t\t\tvideoUrl: feature.productVideo,\n\t\t\t\t\tbuttonClicked: 'Primary',\n\t\t\t\t\tbuttonName: feature.buttonText || 'Explore',\n\t\t\t\t\tbuttonUrl: feature.redirectUrl || feature.productVideo,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t}, 500);\n\t\t},\n\t\t[majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst handlePreviousMajorUpdate = useCallback(\n\t\t(feature) => {\n\t\t\tconst targetFeature = feature || currentMajorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\tconst prevFeature = majorUpdateFeatures[currentIndex - 1];\n\t\t\t\tsetCurrentMajorFeature(prevFeature);\n\n\t\t\t\tconst prevIndex = currentIndex - 1;\n\t\t\t\tconst totalFeatures = majorUpdateFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: '[data-testid=\"whats-new-button\"]',\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MajorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={prevFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={prevIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMajorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreFeature(prevFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMajorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMajorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMajor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tplacementBeacon: 'top-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: prevFeature, isMajor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetMajorJoyrideSteps(updatedSteps);\n\t\t\t} else {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures],\n\t);\n\n\tconst handleNextMajorUpdate = useCallback(\n\t\t(feature) => {\n\t\t\tconst targetFeature = feature || currentMajorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = majorUpdateFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex < majorUpdateFeatures.length - 1) {\n\t\t\t\tconst nextFeature = majorUpdateFeatures[currentIndex + 1];\n\t\t\t\tsetCurrentMajorFeature(nextFeature);\n\n\t\t\t\tconst nextIndex = currentIndex + 1;\n\t\t\t\tconst totalFeatures = majorUpdateFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: '[data-testid=\"whats-new-button\"]',\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MajorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={nextFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={nextIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMajorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreFeature(nextFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMajorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMajorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMajor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom-start',\n\t\t\t\t\t\tplacementBeacon: 'top-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: nextFeature, isMajor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetMajorJoyrideSteps(updatedSteps);\n\t\t\t} else {\n\t\t\t\tsetIsProcessingMajorUpdate(true);\n\n\t\t\t\tmarkFeatureAsViewed(targetFeature.id);\n\t\t\t\tsetRunMajorJoyride(false);\n\t\t\t\tsetCurrentMajorFeature(null);\n\t\t\t\tsetMajorJoyrideSteps([]);\n\n\t\t\t\tsetShowMinorUpdates(true);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst showMajorUpdatePopup = () => {\n\t\tif (majorUpdateFeatures.length > 0 && !currentMajorFeature) {\n\t\t\tconst whatsNewButton = document.querySelector(\n\t\t\t\t'[data-testid=\"whats-new-button\"]',\n\t\t\t);\n\n\t\t\tif (whatsNewButton) {\n\t\t\t\tshowMajorUpdateJoyride(majorUpdateFeatures[0]);\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\t(window as any).showMajorUpdatePopup = showMajorUpdatePopup;\n\t\treturn () => {\n\t\t\tdelete (window as any).showMajorUpdatePopup;\n\t\t};\n\t}, [majorUpdateFeatures, currentMajorFeature]);\n\tconst handleMajorJoyrideCallback = useCallback(\n\t\t(data) => {\n\t\t\tconst { action } = data;\n\n\t\t\tif (action === ACTIONS.CLOSE) {\n\t\t\t\tif (currentMajorFeature) {\n\t\t\t\t\tsetIsProcessingMajorUpdate(true);\n\n\t\t\t\t\tmajorUpdateFeatures.forEach((majorFeature) => {\n\t\t\t\t\t\tmarkFeatureAsViewed(majorFeature.id);\n\t\t\t\t\t});\n\n\t\t\t\t\tsetShowMinorUpdates(true);\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetIsProcessingMajorUpdate(false);\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\n\t\t\t\tsetRunMajorJoyride(false);\n\t\t\t\tsetCurrentMajorFeature(null);\n\t\t\t\tsetMajorJoyrideSteps([]);\n\t\t\t}\n\t\t},\n\t\t[currentMajorFeature, majorUpdateFeatures, markFeatureAsViewed],\n\t);\n\n\tconst handleMinorJoyrideCallback = useCallback(\n\t\t(data) => {\n\t\t\tconst { action } = data;\n\n\t\t\tif (action === ACTIONS.CLOSE) {\n\t\t\t\tif (currentMinorFeature) {\n\t\t\t\t\tsetIsProcessingMinorUpdate(true);\n\n\t\t\t\t\t// Only mark the current feature as viewed, not all features\n\t\t\t\t\tmarkFeatureAsViewed(currentMinorFeature.id);\n\n\t\t\t\t\t// Check if there are more features to show\n\t\t\t\t\tconst currentIndex = availableMinorFeatures.findIndex(\n\t\t\t\t\t\t(f) => f.id === currentMinorFeature.id,\n\t\t\t\t\t);\n\t\t\t\t\tconst isLastFeature =\n\t\t\t\t\t\tcurrentIndex === availableMinorFeatures.length - 1;\n\n\t\t\t\t\tif (isLastFeature) {\n\t\t\t\t\t\t// Only skip remaining features if this was the last one\n\t\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetIsProcessingMinorUpdate(false);\n\t\t\t\t\t}, 500);\n\t\t\t\t}\n\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetJoyrideSteps([]);\n\t\t\t}\n\t\t},\n\t\t[currentMinorFeature, availableMinorFeatures, markFeatureAsViewed],\n\t);\n\tconst showMinorUpdateJoyride = async (feature, featuresToUse?) => {\n\t\tsetCurrentMinorFeature(feature);\n\n\t\t// Use provided features array or fall back to state (for test mode)\n\t\tconst features = featuresToUse || availableMinorFeatures;\n\t\tconst currentIndex = features.findIndex((f) => f.id === feature.id);\n\t\tconst totalFeatures = features.length;\n\n\t\tconst targetSelector =\n\t\t\tfeature.featureTag.startsWith('#') ||\n\t\t\tfeature.featureTag.startsWith('.') ||\n\t\t\tfeature.featureTag.startsWith('[')\n\t\t\t\t? feature.featureTag\n\t\t\t\t: `#${feature.featureTag}`;\n\n\t\t// Scroll to target element smoothly before showing popup\n\t\tconst targetElement = document.querySelector(targetSelector);\n\t\tif (targetElement) {\n\t\t\ttry {\n\t\t\t\t// Dynamically import to avoid circular dependencies\n\t\t\t\tconst { scrollToElementSmooth } = await import(\n\t\t\t\t\t'./utils/elementHelpers'\n\t\t\t\t);\n\t\t\t\tawait scrollToElementSmooth(targetElement, 120);\n\t\t\t} catch (error) {\n\t\t\t\t// Scroll failed silently\n\t\t\t}\n\t\t}\n\n\t\tconst minorSteps = [\n\t\t\t{\n\t\t\t\ttarget: targetSelector,\n\t\t\t\tcontent: (\n\t\t\t\t\t<MinorUpdatePopup\n\t\t\t\t\t\tfeature={feature}\n\t\t\t\t\t\tcurrentIndex={currentIndex}\n\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\tonSkip={() => handleSkipMinorUpdate(feature)}\n\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\thandleExploreMinorFeature(feature, triggeredAction)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPrevious={() => handlePreviousMinorUpdate(feature)}\n\t\t\t\t\t\tonNext={() => handleNextMinorUpdate(feature)}\n\t\t\t\t\t\tsetIsClosing={setIsClosingMinor}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tplacement: 'bottom',\n\t\t\t\tplacementBeacon: 'bottom-end',\n\t\t\t\tdisableBeacon: true,\n\t\t\t\thideCloseButton: true,\n\t\t\t\thideSkipButton: true,\n\t\t\t\thideFooter: true,\n\t\t\t\toffset: 0,\n\t\t\t\tdata: { feature, isMinor: true },\n\t\t\t\tstyles: {\n\t\t\t\t\ttooltip: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t},\n\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t},\n\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t\tsetJoyrideSteps(minorSteps);\n\t\tsetRunJoyride(true);\n\t};\n\n\tconst handleSkipMinorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMinorFeature;\n\n\t\t\tif (targetFeature) {\n\t\t\t\tsetIsProcessingMinorUpdate(true);\n\n\t\t\t\t// Only mark the current feature as viewed, not all features\n\t\t\t\tawait markFeatureAsViewed(targetFeature.id);\n\n\t\t\t\t// Add to session tracker to prevent re-showing\n\t\t\t\tsetShownMinorFeatureIds((prev) => new Set(prev).add(targetFeature.id));\n\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetJoyrideSteps([]);\n\n\t\t\t\t// Find next unshown feature\n\t\t\t\tconst nextFeature = availableMinorFeatures.find(\n\t\t\t\t\t(f) => f.id !== targetFeature.id && !shownMinorFeatureIds.has(f.id),\n\t\t\t\t);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMinorUpdate(false);\n\n\t\t\t\t\tif (nextFeature) {\n\t\t\t\t\t\t// Auto-advance to next feature\n\t\t\t\t\t\tshowMinorUpdateJoyride(nextFeature, availableMinorFeatures);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No more features to show\n\t\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tcurrentMinorFeature,\n\t\t\tavailableMinorFeatures,\n\t\t\tmarkFeatureAsViewed,\n\t\t\tshownMinorFeatureIds,\n\t\t],\n\t);\n\n\tconst handleExploreMinorFeature = useCallback(\n\t\tasync (feature, triggeredAction?: string) => {\n\t\t\tsetIsProcessingMinorUpdate(true);\n\n\t\t\t// Only mark the current feature as viewed\n\t\t\t// Await so the feature is marked before any page navigation\n\t\t\tawait markFeatureAsViewed(feature.id);\n\n\t\t\t// Add to session tracker to prevent re-showing\n\t\t\tsetShownMinorFeatureIds((prev) => new Set(prev).add(feature.id));\n\n\t\t\tconst action = triggeredAction ?? feature.primaryButton?.action;\n\n\t\t\tif (action === 'Play Video' && feature.productVideo) {\n\t\t\t\tsetVideoUrl(feature.productVideo);\n\t\t\t\tsetIsVideoModalOpen(true);\n\t\t\t\tsetBlockPopups(true);\n\t\t\t}\n\n\t\t\tif (action === 'Open link') {\n\t\t\t\tconst url =\n\t\t\t\t\tfeature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\t\tif (url && !url.startsWith('http')) {\n\t\t\t\t\twindow.location.href = url;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetRunJoyride(false);\n\t\t\tsetCurrentMinorFeature(null);\n\t\t\tsetJoyrideSteps([]);\n\n\t\t\t// Find next unshown feature (only auto-advance if no video modal)\n\t\t\tconst nextFeature = availableMinorFeatures.find(\n\t\t\t\t(f) => f.id !== feature.id && !shownMinorFeatureIds.has(f.id),\n\t\t\t);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsProcessingMinorUpdate(false);\n\n\t\t\t\t// Only auto-advance if no video modal is opened\n\t\t\t\tif (nextFeature && action !== 'Play Video') {\n\t\t\t\t\t// Auto-advance to next feature\n\t\t\t\t\tshowMinorUpdateJoyride(nextFeature, availableMinorFeatures);\n\t\t\t\t} else if (!nextFeature) {\n\t\t\t\t\t// No more features to show\n\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t}\n\t\t\t\t// If video modal opened, wait for user to close it before advancing\n\t\t\t}, 500);\n\t\t},\n\t\t[availableMinorFeatures, markFeatureAsViewed, shownMinorFeatureIds],\n\t);\n\n\tconst handlePreviousMinorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMinorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = availableMinorFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex > 0) {\n\t\t\t\tconst prevFeature = availableMinorFeatures[currentIndex - 1];\n\t\t\t\tsetCurrentMinorFeature(prevFeature);\n\n\t\t\t\tconst targetSelector =\n\t\t\t\t\tprevFeature.featureTag.startsWith('#') ||\n\t\t\t\t\tprevFeature.featureTag.startsWith('.') ||\n\t\t\t\t\tprevFeature.featureTag.startsWith('[')\n\t\t\t\t\t\t? prevFeature.featureTag\n\t\t\t\t\t\t: `#${prevFeature.featureTag}`;\n\n\t\t\t\t// Scroll to the previous feature element\n\t\t\t\tconst targetElement = document.querySelector(targetSelector);\n\t\t\t\tif (targetElement) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { scrollToElementSmooth } = await import(\n\t\t\t\t\t\t\t'./utils/elementHelpers'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait scrollToElementSmooth(targetElement, 120);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// Scroll failed silently\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst prevIndex = currentIndex - 1;\n\t\t\t\tconst totalFeatures = availableMinorFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: targetSelector,\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MinorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={prevFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={prevIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMinorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreMinorFeature(prevFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMinorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMinorUpdate(prevFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMinor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\tplacementBeacon: 'bottom-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: prevFeature, isMinor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetJoyrideSteps(updatedSteps);\n\t\t\t}\n\t\t},\n\t\t[currentMinorFeature, availableMinorFeatures],\n\t);\n\n\tconst handleNextMinorUpdate = useCallback(\n\t\tasync (feature) => {\n\t\t\tconst targetFeature = feature || currentMinorFeature;\n\n\t\t\tif (!targetFeature) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst currentIndex = availableMinorFeatures.findIndex(\n\t\t\t\t(f) => f.id === targetFeature.id,\n\t\t\t);\n\n\t\t\tif (currentIndex < availableMinorFeatures.length - 1) {\n\t\t\t\tconst nextFeature = availableMinorFeatures[currentIndex + 1];\n\t\t\t\tsetCurrentMinorFeature(nextFeature);\n\n\t\t\t\tconst targetSelector =\n\t\t\t\t\tnextFeature.featureTag.startsWith('#') ||\n\t\t\t\t\tnextFeature.featureTag.startsWith('.') ||\n\t\t\t\t\tnextFeature.featureTag.startsWith('[')\n\t\t\t\t\t\t? nextFeature.featureTag\n\t\t\t\t\t\t: `#${nextFeature.featureTag}`;\n\n\t\t\t\t// Scroll to the next feature element\n\t\t\t\tconst targetElement = document.querySelector(targetSelector);\n\t\t\t\tif (targetElement) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { scrollToElementSmooth } = await import(\n\t\t\t\t\t\t\t'./utils/elementHelpers'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait scrollToElementSmooth(targetElement, 120);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// Scroll failed silently\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst nextIndex = currentIndex + 1;\n\t\t\t\tconst totalFeatures = availableMinorFeatures.length;\n\n\t\t\t\tconst updatedSteps = [\n\t\t\t\t\t{\n\t\t\t\t\t\ttarget: targetSelector,\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<MinorUpdatePopup\n\t\t\t\t\t\t\t\tfeature={nextFeature}\n\t\t\t\t\t\t\t\tcurrentIndex={nextIndex}\n\t\t\t\t\t\t\t\ttotalFeatures={totalFeatures}\n\t\t\t\t\t\t\t\tonSkip={() => handleSkipMinorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonExplore={(triggeredAction) =>\n\t\t\t\t\t\t\t\t\thandleExploreMinorFeature(nextFeature, triggeredAction)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPrevious={() => handlePreviousMinorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tonNext={() => handleNextMinorUpdate(nextFeature)}\n\t\t\t\t\t\t\t\tsetIsClosing={setIsClosingMinor}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\tplacementBeacon: 'bottom-end',\n\t\t\t\t\t\tdisableBeacon: true,\n\t\t\t\t\t\thideCloseButton: true,\n\t\t\t\t\t\thideSkipButton: true,\n\t\t\t\t\t\thideFooter: true,\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\tdata: { feature: nextFeature, isMinor: true },\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t];\n\n\t\t\t\tsetJoyrideSteps(updatedSteps);\n\t\t\t} else {\n\t\t\t\tsetIsProcessingMinorUpdate(true);\n\t\t\t\tsetMinorFeaturesSkipped(true);\n\n\t\t\t\tmarkFeatureAsViewed(targetFeature.id);\n\t\t\t\tsetRunJoyride(false);\n\t\t\t\tsetCurrentMinorFeature(null);\n\t\t\t\tsetJoyrideSteps([]);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetIsProcessingMinorUpdate(false);\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t},\n\t\t[currentMinorFeature, availableMinorFeatures, markFeatureAsViewed],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{children}\n\n\t\t\t{majorJoyrideSteps.length > 0 && (\n\t\t\t\t<Joyride\n\t\t\t\t\tkey={`major-joyride-${majorJoyrideKey}`}\n\t\t\t\t\tsteps={majorJoyrideSteps}\n\t\t\t\t\trun={runMajorJoyride}\n\t\t\t\t\tcontinuous={false}\n\t\t\t\t\tshowProgress={false}\n\t\t\t\t\tshowSkipButton={false}\n\t\t\t\t\tcallback={handleMajorJoyrideCallback}\n\t\t\t\t\tdisableOverlayClose={false}\n\t\t\t\t\tdisableCloseOnEsc={false}\n\t\t\t\t\tdisableOverlay={false}\n\t\t\t\t\tspotlightClicks={false}\n\t\t\t\t\tstyles={{\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tprimaryColor: '#007bff',\n\t\t\t\t\t\t\tzIndex: 10000,\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t\tarrowColor: isClosingMajor ? 'transparent' : '#212121',\n\t\t\t\t\t\t},\n\t\t\t\t\t\toverlay: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspotlight: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\tborderRadius: '16px',\n\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tlocale={{\n\t\t\t\t\t\tback: 'Back',\n\t\t\t\t\t\tclose: 'Close',\n\t\t\t\t\t\tlast: 'Close',\n\t\t\t\t\t\tnext: 'Next',\n\t\t\t\t\t\tskip: 'Skip',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{joyrideSteps.length > 0 && (\n\t\t\t\t<Joyride\n\t\t\t\t\tkey={`minor-joyride-${minorJoyrideKey}`}\n\t\t\t\t\tsteps={joyrideSteps}\n\t\t\t\t\trun={runJoyride}\n\t\t\t\t\tcontinuous={false}\n\t\t\t\t\tshowProgress={false}\n\t\t\t\t\tshowSkipButton={false}\n\t\t\t\t\tcallback={handleMinorJoyrideCallback}\n\t\t\t\t\tdisableOverlayClose={false}\n\t\t\t\t\tdisableCloseOnEsc={false}\n\t\t\t\t\tdisableOverlay={false}\n\t\t\t\t\tscrollToFirstStep={true}\n\t\t\t\t\tscrollOffset={120}\n\t\t\t\t\tdisableScrolling={false}\n\t\t\t\t\tstyles={{\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tprimaryColor: '#007bff',\n\t\t\t\t\t\t\tzIndex: 10000,\n\t\t\t\t\t\t\twidth: 'auto',\n\t\t\t\t\t\t\tarrowColor: isClosingMinor ? 'transparent' : '#ffffff',\n\t\t\t\t\t\t},\n\t\t\t\t\t\toverlay: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tspotlight: {\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborderRadius: '8px',\n\t\t\t\t\t\t\tboxShadow: isClosingMinor\n\t\t\t\t\t\t\t\t? 'none'\n\t\t\t\t\t\t\t\t: '0 0 0 9999px rgba(0, 0, 0, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.8), 0 0 20px 8px rgba(255, 255, 255, 0.4)',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltip: {\n\t\t\t\t\t\t\tborderRadius: '4px',\n\t\t\t\t\t\t\tfontSize: '14px',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t\t\t\t\tborder: 'none',\n\t\t\t\t\t\t\tfilter: 'none',\n\t\t\t\t\t\t\tboxShadow: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttooltipContent: {\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonNext: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonBack: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonSkip: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbuttonClose: {\n\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\tlocale={{\n\t\t\t\t\t\tback: 'Back',\n\t\t\t\t\t\tclose: 'Close',\n\t\t\t\t\t\tlast: 'Close',\n\t\t\t\t\t\tnext: 'Next',\n\t\t\t\t\t\tskip: 'Skip',\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<VideoModal\n\t\t\t\tisOpen={isVideoModalOpen}\n\t\t\t\tvideoUrl={videoUrl}\n\t\t\t\tonClose={() => {\n\t\t\t\t\tsetIsVideoModalOpen(false);\n\t\t\t\t\tsetVideoUrl('');\n\t\t\t\t\tsetBlockPopups(false);\n\n\t\t\t\t\t// After video modal closes, check if there are more features to show\n\t\t\t\t\tconst nextFeature = availableMinorFeatures.find(\n\t\t\t\t\t\t(f) => !shownMinorFeatureIds.has(f.id),\n\t\t\t\t\t);\n\n\t\t\t\t\tif (nextFeature) {\n\t\t\t\t\t\t// Auto-advance to next feature after video\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tshowMinorUpdateJoyride(nextFeature, availableMinorFeatures);\n\t\t\t\t\t\t}, 300);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No more features to show\n\t\t\t\t\t\tsetMinorFeaturesSkipped(true);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default FeatureAnnouncementProvider;\n"],"names":["FeatureAnnouncementProvider","children","fetchVisibleFeatures","getStoreFeatureProgress","fetchFeatureById","markFeatureAsViewedForStore","isFeatureApplicableToCurrentPage","module","router","storeId","onAnnouncementShown","onAnnouncementInteracted","majorUpdateFeatures","minorUpdateFeatures","isLoading","markFeatureAsViewed","useFeatureAnnouncements","currentMajorFeature","setCurrentMajorFeature","useState","currentMinorFeature","setCurrentMinorFeature","runJoyride","setRunJoyride","joyrideSteps","setJoyrideSteps","runMajorJoyride","setRunMajorJoyride","majorJoyrideSteps","setMajorJoyrideSteps","isProcessingMajorUpdate","setIsProcessingMajorUpdate","isProcessingMinorUpdate","setIsProcessingMinorUpdate","availableMinorFeatures","setAvailableMinorFeatures","minorFeaturesSkipped","setMinorFeaturesSkipped","showMinorUpdates","setShowMinorUpdates","isVideoModalOpen","setIsVideoModalOpen","videoUrl","setVideoUrl","blockPopups","setBlockPopups","isClosingMajor","setIsClosingMajor","isClosingMinor","setIsClosingMinor","majorJoyrideKey","setMajorJoyrideKey","minorJoyrideKey","setMinorJoyrideKey","shownMinorFeatureIds","setShownMinorFeatureIds","Set","useEffect","styleId","styleElement","document","getElementById","createElement","id","head","appendChild","textContent","el","remove","prev","pathname","length","attempts","MAX_ATTEMPTS","checkWhatsNewButton","querySelector","showMajorUpdateJoyride","setTimeout","featureIdFromQuery","_a","query","forcedFeature","find","f","featureTag","interval","setInterval","targetSelector","startsWith","testModeFeatures","showMinorUpdateJoyride","clearInterval","observer","scrollListener","checkTimeout","isCleanedUp","checkElementsAndStartTour","availableFeatures","filter","feature","trim","has","disconnect","window","removeEventListener","clearTimeout","MutationObserver","mutations","shouldCheck","mutation","type","addedNodes","i","node","nodeType","Node","ELEMENT_NODE","element","requestAnimationFrame","observe","body","childList","subtree","addEventListener","passive","currentIndex","findIndex","totalFeatures","majorSteps","target","SELECTORS","WHATS_NEW_BUTTON","content","_jsx","MajorUpdatePopup","onSkip","handleSkipMajorUpdate","onExplore","triggeredAction","handleExploreFeature","onPrevious","handlePreviousMajorUpdate","onNext","handleNextMajorUpdate","setIsClosing","placement","placementBeacon","disableBeacon","hideCloseButton","hideSkipButton","hideFooter","offset","data","isMajor","styles","tooltip","padding","backgroundColor","borderRadius","border","boxShadow","tooltipContent","buttonNext","display","buttonBack","buttonClose","buttonSkip","announcementId","announcementTitle","title","imageUrl","displayImage","image","productVideo","useCallback","__awaiter","targetFeature","Promise","all","map","majorFeature","buttonClicked","buttonName","buttonUrl","undefined","action","_b","primaryButton","url","_c","redirectionUrl","redirectUrl","location","href","buttonText","prevFeature","prevIndex","updatedSteps","nextFeature","nextIndex","showMajorUpdatePopup","handleMajorJoyrideCallback","ACTIONS","CLOSE","forEach","handleMinorJoyrideCallback","featuresToUse","features","targetElement","scrollToElementSmooth","import","error","minorSteps","MinorUpdatePopup","handleSkipMinorUpdate","handleExploreMinorFeature","handlePreviousMinorUpdate","handleNextMinorUpdate","isMinor","add","_d","_e","_jsxs","_Fragment","Joyride","steps","run","continuous","showProgress","showSkipButton","callback","disableOverlayClose","disableCloseOnEsc","disableOverlay","spotlightClicks","options","primaryColor","zIndex","width","arrowColor","overlay","spotlight","fontSize","locale","back","close","last","next","skip","scrollToFirstStep","scrollOffset","disableScrolling","VideoModal","isOpen","onClose"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as t}from"../../_virtual/_tslib.js";import{jsx as e,jsxs as n,Fragment as o}from"react/jsx-runtime";import{useState as r,useRef as s,useEffect as a}from"react";import i from"../../assets/icons/chevronRight2.svg.js";import l from"../../assets/icons/play.svg.js";import{TEXT as c}from"./constants/index.js";import{getMajorPopupStyles as u}from"./styles/majorPopup.styles.js";import"../../constants/Theme.js";import"./constants/animations.js";import{decodeHTMLEntities as d}from"./utils/htmlHelpers.js";import{hideJoyrideArrow as p,calculateCloseTransform as g,executeAfterAnimation as y}from"./utils/animationHelpers.js";import{findWhatsNewButton as v}from"./utils/elementHelpers.js";const b=
|
|
1
|
+
import{__awaiter as t}from"../../_virtual/_tslib.js";import{jsx as e,jsxs as n,Fragment as o}from"react/jsx-runtime";import{useState as r,useRef as s,useEffect as a}from"react";import i from"../../assets/icons/chevronRight2.svg.js";import l from"../../assets/icons/play.svg.js";import{TEXT as c}from"./constants/index.js";import{getMajorPopupStyles as u}from"./styles/majorPopup.styles.js";import"../../constants/Theme.js";import"./constants/animations.js";import{decodeHTMLEntities as d}from"./utils/htmlHelpers.js";import{hideJoyrideArrow as p,calculateCloseTransform as g,executeAfterAnimation as y}from"./utils/animationHelpers.js";import{findWhatsNewButton as v}from"./utils/elementHelpers.js";const b=({feature:b,currentIndex:h,totalFeatures:m,onSkip:f,onExplore:j,onPrevious:O,onNext:B,setIsClosing:T,onSecondaryAction:k,ratio:x="16:9",padding:M})=>{var P,E,C,L,_,U;const[W,I]=r(!1),[w,D]=r(!1),[H,V]=r(""),S=s(null),[A,R]=r(!1),[F,N]=r(!0),z=s(null),[G,K]=r(x),X=s(null);a((()=>{W&&D(!0)}),[W]);const $=e=>{var n,o;e.preventDefault(),e.stopPropagation();const r=null===(n=b.secondaryButton)||void 0===n?void 0:n.action,s=k||f;let a=null;if("Play Video"===r)j("Play Video");else if("Open link"===r){const t=null===(o=b.secondaryButton)||void 0===o?void 0:o.redirectionUrl;if(t){t.startsWith("http")?window.open(t,"_blank","noopener,noreferrer"):a=t}}p(S.current);const i=v();if(i&&S.current){const t=g(S.current,i);V(t)}else V("scale(0)");null==T||T(!0),I(!0),y((()=>t(void 0,void 0,void 0,(function*(){yield s(),a&&(window.location.href=a)}))))},q=u(w,H,G,M||b.padding,null===(P=b.primaryButton)||void 0===P?void 0:P.style,null===(E=b.secondaryButton)||void 0===E?void 0:E.style);return e("div",Object.assign({style:q.outerWrapper},{children:n("div",Object.assign({ref:S,style:Object.assign(Object.assign({},q.container),{opacity:w?0:1,transition:"opacity 0.2s ease-in-out, transform 0.3s ease"})},{children:[e("style",{children:"\n\t\t\t\t[data-popup-content] ul {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding-left: 20px;\n\t\t\t\t\tlist-style-type: disc;\n\t\t\t\t}\n\t\t\t\t[data-popup-content] ul li {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\tcolor: rgba(255, 255, 255, 0.8);\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tline-height: 16px;\n\t\t\t\t\tfont-family: Inter, sans-serif;\n\t\t\t\t}\n\t\t\t"}),n("div",Object.assign({style:q.contentWrapper},{children:[e("div",Object.assign({style:q.imageContainer},{children:b.productVideo?n(o,{children:[e("video",{ref:z,src:b.productVideo,style:q.image,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,controls:!0,"aria-label":`Product video for ${b.title}`,onLoadedMetadata:t=>{const e=t.currentTarget,n=e.videoWidth,o=e.videoHeight;if(n&&o){const t=n/o;Math.abs(t-16/9)<.1?K("16:9"):Math.abs(t-1)<.1?K("1:1"):Math.abs(t-4/3)<.1?K("4:3"):K(t>1.5?"16:9":t<.9?"4:3":"1:1")}}}),(A||F)&&e("div",Object.assign({style:q.videoOverlay,onClick:t=>{t.stopPropagation(),z.current&&(z.current.paused?(z.current.play(),R(!1),N(!1)):(z.current.pause(),R(!0),N(!0)))},role:"button",tabIndex:0,"aria-label":A?"Play video":"Pause video",onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),t.stopPropagation(),z.current&&(z.current.paused?(z.current.play(),R(!1),N(!1)):(z.current.pause(),R(!0),N(!0))))}},{children:e(l,{width:20,height:20})}))]}):b.displayImage?e("img",{ref:X,src:b.displayImage,alt:b.title,style:q.image,onLoad:t=>{const e=t.currentTarget,n=e.naturalWidth,o=e.naturalHeight;if(n&&o){const t=n/o;Math.abs(t-16/9)<.1?K("16:9"):Math.abs(t-1)<.1?K("1:1"):Math.abs(t-4/3)<.1?K("4:3"):K(t>1.5?"16:9":t<.9?"4:3":"1:1")}},onError:t=>{b.image&&(t.target.src=b.image)}}):e("div",Object.assign({style:q.imagePlaceholder},{children:c.FEATURE_PREVIEW_PLACEHOLDER}))})),n("div",Object.assign({style:q.contentContainer},{children:[e("div",Object.assign({style:q.skipButtonContainer},{children:e("button",Object.assign({onClick:t=>{t.preventDefault(),t.stopPropagation(),(t=>{p(S.current);const e=v();if(e&&S.current){const t=g(S.current,e);V(t)}else V("scale(0)");null==T||T(!0),I(!0),y(t)})(f)},style:q.skipButton.base,onMouseEnter:t=>Object.assign(t.currentTarget.style,q.skipButton.hover),onMouseLeave:t=>Object.assign(t.currentTarget.style,q.skipButton.base),"aria-label":"Skip feature announcement"},{children:"Skip"}))})),e("h3",Object.assign({style:q.title},{children:b.title})),e("div",{"data-popup-content":!0,style:q.content,dangerouslySetInnerHTML:{__html:d(b.content||b.body||"")}}),n("div",Object.assign({style:q.actionsWrapper},{children:[n("div",Object.assign({style:q.buttonsGroup},{children:[e("button",Object.assign({onClick:()=>{var t,e;const n=null===(t=b.primaryButton)||void 0===t?void 0:t.action;if("Open link"===n){const t=(null===(e=b.primaryButton)||void 0===e?void 0:e.redirectionUrl)||b.redirectUrl;if(t){t.startsWith("http")&&window.open(t,"_blank","noopener,noreferrer")}}j(n),p(S.current);const o=v();if(o&&S.current){const t=g(S.current,o);V(t)}else V("scale(0)");null==T||T(!0),I(!0)},style:q.exploreButton.base,onMouseEnter:t=>Object.assign(t.currentTarget.style,q.exploreButton.hover),onMouseLeave:t=>Object.assign(t.currentTarget.style,q.exploreButton.base)},{children:(null===(C=b.primaryButton)||void 0===C?void 0:C.text)||b.buttonText||c.DEFAULT_BUTTON_TEXT})),(null===(L=b.secondaryButton)||void 0===L?void 0:L.text)&&((null===(_=b.secondaryButton)||void 0===_?void 0:_.redirectionUrl)&&"Play Video"!==(null===(U=b.secondaryButton)||void 0===U?void 0:U.action)?e("a",Object.assign({href:b.secondaryButton.redirectionUrl,target:b.secondaryButton.redirectionUrl.startsWith("http")?"_blank":"_self",rel:b.secondaryButton.redirectionUrl.startsWith("http")?"noopener noreferrer":void 0,onClick:$,style:q.secondaryButton.base,onMouseEnter:t=>Object.assign(t.currentTarget.style,q.secondaryButton.hover),onMouseLeave:t=>Object.assign(t.currentTarget.style,q.secondaryButton.base)},{children:b.secondaryButton.text})):e("button",Object.assign({onClick:$,style:q.secondaryButton.base,onMouseEnter:t=>Object.assign(t.currentTarget.style,q.secondaryButton.hover),onMouseLeave:t=>Object.assign(t.currentTarget.style,q.secondaryButton.base)},{children:b.secondaryButton.text})))]})),m>1&&n("div",Object.assign({style:q.navigationContainer},{children:[e("button",Object.assign({onClick:t=>{t.preventDefault(),t.stopPropagation(),O()},disabled:0===h,style:q.navigationButton(0===h).base,onMouseEnter:t=>{0!==h&&Object.assign(t.currentTarget.style,q.navigationButton(!1).hover)},onMouseLeave:t=>{0!==h&&Object.assign(t.currentTarget.style,q.navigationButton(!1).base)},"aria-label":"Previous feature"},{children:e(i,{style:{transform:"rotate(180deg)"}})})),e("button",Object.assign({onClick:t=>{t.preventDefault(),t.stopPropagation(),B()},disabled:h===m-1,style:q.navigationButton(h===m-1).base,onMouseEnter:t=>{h!==m-1&&Object.assign(t.currentTarget.style,q.navigationButton(!1).hover)},onMouseLeave:t=>{h!==m-1&&Object.assign(t.currentTarget.style,q.navigationButton(h===m-1).base)},"aria-label":"Next feature"},{children:e(i,{})}))]}))]}))]}))]}))]}))}))};export{b as default};
|
|
2
2
|
//# sourceMappingURL=MajorUpdatePopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MajorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MajorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport Arrow from '../../assets/icons/chevronRight2.svg';\nimport PlayIcon from '../../assets/icons/play.svg';\nimport { TEXT } from './constants';\nimport { getMajorPopupStyles } from './styles';\nimport { MajorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindWhatsNewButton,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MajorUpdatePopup: React.FC<MajorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n\tonSecondaryAction,\n\tratio = '16:9',\n\tpadding,\n}) => {\n\tconst [isClosing, setIsClosing] = useState(false);\n\tconst [startAnimation, setStartAnimation] = useState(false);\n\tconst [transform, setTransform] = useState('');\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\tconst [isVideoPaused, setIsVideoPaused] = useState(false);\n\tconst [showPlayIcon, setShowPlayIcon] = useState(true);\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst [imageAspectRatio, setImageAspectRatio] = useState<\n\t\t'16:9' | '1:1' | '4:3'\n\t>(ratio);\n\n\tconst imageRef = useRef<HTMLImageElement>(null);\n\n\tuseEffect(() => {\n\t\tif (isClosing) {\n\t\t\t// Start the shrink animation immediately\n\t\t\tsetStartAnimation(true);\n\t\t}\n\t}, [isClosing]);\n\n\tconst handleClose = (callback: () => Promise<void> | void): void => {\n\t\thideJoyrideArrow(popupRef.current);\n\n\t\tconst targetButton = findWhatsNewButton();\n\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(callback);\n\t};\n\n\tconst handleImageLoad = (e: React.SyntheticEvent<HTMLImageElement>) => {\n\t\tconst img = e.currentTarget;\n\t\tconst width = img.naturalWidth;\n\t\tconst height = img.naturalHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\t// Determine closest predefined ratio\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide images default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall images default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoLoadedMetadata = (\n\t\te: React.SyntheticEvent<HTMLVideoElement>,\n\t) => {\n\t\tconst video = e.currentTarget;\n\t\tconst width = video.videoWidth;\n\t\tconst height = video.videoHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide videos default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall videos default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleExplore = (): void => {\n\t\tconst action = feature.primaryButton?.action;\n\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonExplore(action);\n\n\t\t// Run closing animation in background\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t};\n\n\tconst handleSkipClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\thandleClose(onSkip);\n\t};\n\n\tconst handlePreviousClick = (\n\t\te: React.MouseEvent<HTMLButtonElement>,\n\t): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonPrevious();\n\t};\n\n\tconst handleNextClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonNext();\n\t};\n\n\tconst handleSecondaryAction = (e: React.MouseEvent): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst action = feature.secondaryButton?.action;\n\t\tconst closeCallback = onSecondaryAction || onSkip;\n\t\tlet internalUrl: string | null = null;\n\n\t\t// Handle based on action type\n\t\tif (action === 'Play Video') {\n\t\t\tonExplore('Play Video');\n\t\t} else if (action === 'Open link') {\n\t\t\tconst url = feature.secondaryButton?.redirectionUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t} else {\n\t\t\t\t\tinternalUrl = url;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (action === 'Close popup' || action === '') {\n\t\t\t// Just close the popup (empty action also closes)\n\t\t\t// callback is executed after closing animation completes\n\t\t}\n\n\t\t// Always close popup after secondary action\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(async () => {\n\t\t\tawait closeCallback();\n\t\t\tif (internalUrl) {\n\t\t\t\twindow.location.href = internalUrl;\n\t\t\t}\n\t\t});\n\t};\n\n\tconst styles = getMajorPopupStyles(\n\t\tstartAnimation,\n\t\ttransform,\n\t\timageAspectRatio,\n\t\tpadding || feature.padding,\n\t\tfeature.primaryButton?.style,\n\t\tfeature.secondaryButton?.style,\n\t);\n\n\tconst handleVideoClick = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (videoRef.current) {\n\t\t\tif (videoRef.current.paused) {\n\t\t\t\tvideoRef.current.play();\n\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\tsetShowPlayIcon(false);\n\t\t\t} else {\n\t\t\t\tvideoRef.current.pause();\n\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\tsetShowPlayIcon(true);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tif (videoRef.current) {\n\t\t\t\tif (videoRef.current.paused) {\n\t\t\t\t\tvideoRef.current.play();\n\t\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\t\tsetShowPlayIcon(false);\n\t\t\t\t} else {\n\t\t\t\t\tvideoRef.current.pause();\n\t\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\t\tsetShowPlayIcon(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<div style={styles.outerWrapper}>\n\t\t\t<div\n\t\t\t\tref={popupRef}\n\t\t\t\tstyle={{\n\t\t\t\t\t...styles.container,\n\t\t\t\t\topacity: startAnimation ? 0 : 1,\n\t\t\t\t\ttransition: 'opacity 0.2s ease-in-out, transform 0.3s ease',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<style>{`\n\t\t\t\t[data-popup-content] ul {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding-left: 20px;\n\t\t\t\t\tlist-style-type: disc;\n\t\t\t\t}\n\t\t\t\t[data-popup-content] ul li {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\tcolor: rgba(255, 255, 255, 0.8);\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tline-height: 16px;\n\t\t\t\t\tfont-family: Inter, sans-serif;\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t\t{/* Content Wrapper - contains image and text side by side */}\n\t\t\t\t<div style={styles.contentWrapper}>\n\t\t\t\t\t{/* Image/Video section */}\n\t\t\t\t\t<div style={styles.imageContainer}>\n\t\t\t\t\t\t{feature.productVideo ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<video\n\t\t\t\t\t\t\t\t\tref={videoRef}\n\t\t\t\t\t\t\t\t\tsrc={feature.productVideo}\n\t\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\t\t\t\tcontrols\n\t\t\t\t\t\t\t\t\taria-label={`Product video for ${feature.title}`}\n\t\t\t\t\t\t\t\t\tonLoadedMetadata={handleVideoLoadedMetadata}\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{(isVideoPaused || showPlayIcon) && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={styles.videoOverlay}\n\t\t\t\t\t\t\t\t\t\tonClick={handleVideoClick}\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\t\t\taria-label={isVideoPaused ? 'Play video' : 'Pause video'}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleVideoKeyDown}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlayIcon width={20} height={20} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : feature.displayImage ? (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tref={imageRef}\n\t\t\t\t\t\t\t\tsrc={feature.displayImage}\n\t\t\t\t\t\t\t\talt={feature.title}\n\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\tonLoad={handleImageLoad}\n\t\t\t\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\t\t\t\tif (feature.image) {\n\t\t\t\t\t\t\t\t\t\t(e.target as HTMLImageElement).src = feature.image;\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) : (\n\t\t\t\t\t\t\t<div style={styles.imagePlaceholder}>\n\t\t\t\t\t\t\t\t{TEXT.FEATURE_PREVIEW_PLACEHOLDER}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Content section */}\n\t\t\t\t\t<div style={styles.contentContainer}>\n\t\t\t\t\t\t{/* Skip Button at top-right */}\n\t\t\t\t\t\t<div style={styles.skipButtonContainer}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={handleSkipClick}\n\t\t\t\t\t\t\t\tstyle={styles.skipButton.base}\n\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.hover)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.base)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label=\"Skip feature announcement\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSkip\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Title */}\n\t\t\t\t\t\t<h3 style={styles.title}>{feature.title}</h3>\n\n\t\t\t\t\t\t{/* Content/Description */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-popup-content\n\t\t\t\t\t\t\tstyle={styles.content}\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t__html: decodeHTMLEntities(\n\t\t\t\t\t\t\t\t\tfeature.content || feature.body || '',\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Actions - Buttons and Navigation */}\n\t\t\t\t\t\t<div style={styles.actionsWrapper}>\n\t\t\t\t\t\t\t<div style={styles.buttonsGroup}>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tonClick={handleExplore}\n\t\t\t\t\t\t\t\t\tstyle={styles.exploreButton.base}\n\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.hover,\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\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.base,\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{feature.primaryButton?.text ||\n\t\t\t\t\t\t\t\t\t\tfeature.buttonText ||\n\t\t\t\t\t\t\t\t\t\tTEXT.DEFAULT_BUTTON_TEXT}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t{/* Secondary Button (Optional) */}\n\t\t\t\t\t\t\t\t{feature.secondaryButton?.text &&\n\t\t\t\t\t\t\t\t\t(feature.secondaryButton?.redirectionUrl &&\n\t\t\t\t\t\t\t\t\tfeature.secondaryButton?.action !== 'Play Video' ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={feature.secondaryButton.redirectionUrl}\n\t\t\t\t\t\t\t\t\t\t\ttarget={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '_self'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'noopener noreferrer'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Navigation arrows */}\n\t\t\t\t\t\t\t{totalFeatures > 1 && (\n\t\t\t\t\t\t\t\t<div style={styles.navigationContainer}>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handlePreviousClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === 0}\n\t\t\t\t\t\t\t\t\t\tstyle={styles.navigationButton(currentIndex === 0).base}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Previous feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow style={{ transform: 'rotate(180deg)' }} />\n\t\t\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handleNextClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === totalFeatures - 1}\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t).base\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Next feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t{/* Close contentWrapper */}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MajorUpdatePopup;\n"],"names":["MajorUpdatePopup","_ref","feature","currentIndex","totalFeatures","onSkip","onExplore","onPrevious","onNext","setIsClosing","setIsClosingParent","onSecondaryAction","ratio","padding","isClosing","useState","startAnimation","setStartAnimation","transform","setTransform","popupRef","useRef","isVideoPaused","setIsVideoPaused","showPlayIcon","setShowPlayIcon","videoRef","imageAspectRatio","setImageAspectRatio","imageRef","useEffect","handleSecondaryAction","e","preventDefault","stopPropagation","action","_a","secondaryButton","closeCallback","internalUrl","url","_b","redirectionUrl","startsWith","window","open","hideJoyrideArrow","current","targetButton","findWhatsNewButton","transformValue","calculateCloseTransform","executeAfterAnimation","__awaiter","location","href","styles","getMajorPopupStyles","primaryButton","style","_jsx","Object","assign","outerWrapper","children","_jsxs","ref","container","opacity","transition","contentWrapper","imageContainer","productVideo","_Fragment","src","image","autoPlay","muted","loop","playsInline","controls","title","onLoadedMetadata","video","currentTarget","width","videoWidth","height","videoHeight","aspectRatio","Math","abs","videoOverlay","onClick","paused","play","pause","role","tabIndex","onKeyDown","key","PlayIcon","displayImage","alt","onLoad","img","naturalWidth","naturalHeight","onError","target","imagePlaceholder","TEXT","FEATURE_PREVIEW_PLACEHOLDER","contentContainer","skipButtonContainer","callback","handleClose","skipButton","base","onMouseEnter","hover","onMouseLeave","content","dangerouslySetInnerHTML","__html","decodeHTMLEntities","body","actionsWrapper","buttonsGroup","handleExplore","redirectUrl","exploreButton","_c","text","buttonText","DEFAULT_BUTTON_TEXT","_d","_e","_f","rel","undefined","navigationContainer","disabled","navigationButton","Arrow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MajorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MajorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport Arrow from '../../assets/icons/chevronRight2.svg';\nimport PlayIcon from '../../assets/icons/play.svg';\nimport { TEXT } from './constants';\nimport { getMajorPopupStyles } from './styles';\nimport { MajorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindWhatsNewButton,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MajorUpdatePopup: React.FC<MajorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n\tonSecondaryAction,\n\tratio = '16:9',\n\tpadding,\n}) => {\n\tconst [isClosing, setIsClosing] = useState(false);\n\tconst [startAnimation, setStartAnimation] = useState(false);\n\tconst [transform, setTransform] = useState('');\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\tconst [isVideoPaused, setIsVideoPaused] = useState(false);\n\tconst [showPlayIcon, setShowPlayIcon] = useState(true);\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst [imageAspectRatio, setImageAspectRatio] = useState<\n\t\t'16:9' | '1:1' | '4:3'\n\t>(ratio);\n\n\tconst imageRef = useRef<HTMLImageElement>(null);\n\n\tuseEffect(() => {\n\t\tif (isClosing) {\n\t\t\t// Start the shrink animation immediately\n\t\t\tsetStartAnimation(true);\n\t\t}\n\t}, [isClosing]);\n\n\tconst handleClose = (callback: () => Promise<void> | void): void => {\n\t\thideJoyrideArrow(popupRef.current);\n\n\t\tconst targetButton = findWhatsNewButton();\n\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(callback);\n\t};\n\n\tconst handleImageLoad = (e: React.SyntheticEvent<HTMLImageElement>) => {\n\t\tconst img = e.currentTarget;\n\t\tconst width = img.naturalWidth;\n\t\tconst height = img.naturalHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\t// Determine closest predefined ratio\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide images default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall images default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoLoadedMetadata = (\n\t\te: React.SyntheticEvent<HTMLVideoElement>,\n\t) => {\n\t\tconst video = e.currentTarget;\n\t\tconst width = video.videoWidth;\n\t\tconst height = video.videoHeight;\n\n\t\tif (width && height) {\n\t\t\tconst aspectRatio = width / height;\n\n\t\t\tif (Math.abs(aspectRatio - 16 / 9) < 0.1) {\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (Math.abs(aspectRatio - 1) < 0.1) {\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t} else if (Math.abs(aspectRatio - 4 / 3) < 0.1) {\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else if (aspectRatio > 1.5) {\n\t\t\t\t// Wide videos default to 16:9\n\t\t\t\tsetImageAspectRatio('16:9');\n\t\t\t} else if (aspectRatio < 0.9) {\n\t\t\t\t// Tall videos default to 4:3\n\t\t\t\tsetImageAspectRatio('4:3');\n\t\t\t} else {\n\t\t\t\t// Close to square, use 1:1\n\t\t\t\tsetImageAspectRatio('1:1');\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleExplore = (): void => {\n\t\tconst action = feature.primaryButton?.action;\n\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonExplore(action);\n\n\t\t// Run closing animation in background\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t};\n\n\tconst handleSkipClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\thandleClose(onSkip);\n\t};\n\n\tconst handlePreviousClick = (\n\t\te: React.MouseEvent<HTMLButtonElement>,\n\t): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonPrevious();\n\t};\n\n\tconst handleNextClick = (e: React.MouseEvent<HTMLButtonElement>): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tonNext();\n\t};\n\n\tconst handleSecondaryAction = (e: React.MouseEvent): void => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst action = feature.secondaryButton?.action;\n\t\tconst closeCallback = onSecondaryAction || onSkip;\n\t\tlet internalUrl: string | null = null;\n\n\t\t// Handle based on action type\n\t\tif (action === 'Play Video') {\n\t\t\tonExplore('Play Video');\n\t\t} else if (action === 'Open link') {\n\t\t\tconst url = feature.secondaryButton?.redirectionUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t} else {\n\t\t\t\t\tinternalUrl = url;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (action === 'Close popup' || action === '') {\n\t\t\t// Just close the popup (empty action also closes)\n\t\t\t// callback is executed after closing animation completes\n\t\t}\n\n\t\t// Always close popup after secondary action\n\t\thideJoyrideArrow(popupRef.current);\n\t\tconst targetButton = findWhatsNewButton();\n\t\tif (targetButton && popupRef.current) {\n\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\tpopupRef.current,\n\t\t\t\ttargetButton,\n\t\t\t);\n\t\t\tsetTransform(transformValue);\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(async () => {\n\t\t\tawait closeCallback();\n\t\t\tif (internalUrl) {\n\t\t\t\twindow.location.href = internalUrl;\n\t\t\t}\n\t\t});\n\t};\n\n\tconst styles = getMajorPopupStyles(\n\t\tstartAnimation,\n\t\ttransform,\n\t\timageAspectRatio,\n\t\tpadding || feature.padding,\n\t\tfeature.primaryButton?.style,\n\t\tfeature.secondaryButton?.style,\n\t);\n\n\tconst handleVideoClick = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tif (videoRef.current) {\n\t\t\tif (videoRef.current.paused) {\n\t\t\t\tvideoRef.current.play();\n\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\tsetShowPlayIcon(false);\n\t\t\t} else {\n\t\t\t\tvideoRef.current.pause();\n\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\tsetShowPlayIcon(true);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleVideoKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tif (videoRef.current) {\n\t\t\t\tif (videoRef.current.paused) {\n\t\t\t\t\tvideoRef.current.play();\n\t\t\t\t\tsetIsVideoPaused(false);\n\t\t\t\t\tsetShowPlayIcon(false);\n\t\t\t\t} else {\n\t\t\t\t\tvideoRef.current.pause();\n\t\t\t\t\tsetIsVideoPaused(true);\n\t\t\t\t\tsetShowPlayIcon(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<div style={styles.outerWrapper}>\n\t\t\t<div\n\t\t\t\tref={popupRef}\n\t\t\t\tstyle={{\n\t\t\t\t\t...styles.container,\n\t\t\t\t\topacity: startAnimation ? 0 : 1,\n\t\t\t\t\ttransition: 'opacity 0.2s ease-in-out, transform 0.3s ease',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<style>{`\n\t\t\t\t[data-popup-content] ul {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding-left: 20px;\n\t\t\t\t\tlist-style-type: disc;\n\t\t\t\t}\n\t\t\t\t[data-popup-content] ul li {\n\t\t\t\t\tmargin-bottom: 8px;\n\t\t\t\t\tcolor: rgba(255, 255, 255, 0.8);\n\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\tline-height: 16px;\n\t\t\t\t\tfont-family: Inter, sans-serif;\n\t\t\t\t}\n\t\t\t`}</style>\n\t\t\t\t{/* Content Wrapper - contains image and text side by side */}\n\t\t\t\t<div style={styles.contentWrapper}>\n\t\t\t\t\t{/* Image/Video section */}\n\t\t\t\t\t<div style={styles.imageContainer}>\n\t\t\t\t\t\t{feature.productVideo ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<video\n\t\t\t\t\t\t\t\t\tref={videoRef}\n\t\t\t\t\t\t\t\t\tsrc={feature.productVideo}\n\t\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\t\t\t\tcontrols\n\t\t\t\t\t\t\t\t\taria-label={`Product video for ${feature.title}`}\n\t\t\t\t\t\t\t\t\tonLoadedMetadata={handleVideoLoadedMetadata}\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{(isVideoPaused || showPlayIcon) && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={styles.videoOverlay}\n\t\t\t\t\t\t\t\t\t\tonClick={handleVideoClick}\n\t\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\t\ttabIndex={0}\n\t\t\t\t\t\t\t\t\t\taria-label={isVideoPaused ? 'Play video' : 'Pause video'}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleVideoKeyDown}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlayIcon width={20} height={20} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : feature.displayImage ? (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tref={imageRef}\n\t\t\t\t\t\t\t\tsrc={feature.displayImage}\n\t\t\t\t\t\t\t\talt={feature.title}\n\t\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\t\tonLoad={handleImageLoad}\n\t\t\t\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\t\t\t\tif (feature.image) {\n\t\t\t\t\t\t\t\t\t\t(e.target as HTMLImageElement).src = feature.image;\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) : (\n\t\t\t\t\t\t\t<div style={styles.imagePlaceholder}>\n\t\t\t\t\t\t\t\t{TEXT.FEATURE_PREVIEW_PLACEHOLDER}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Content section */}\n\t\t\t\t\t<div style={styles.contentContainer}>\n\t\t\t\t\t\t{/* Skip Button at top-right */}\n\t\t\t\t\t\t<div style={styles.skipButtonContainer}>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={handleSkipClick}\n\t\t\t\t\t\t\t\tstyle={styles.skipButton.base}\n\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.hover)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\tObject.assign(e.currentTarget.style, styles.skipButton.base)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label=\"Skip feature announcement\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSkip\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{/* Title */}\n\t\t\t\t\t\t<h3 style={styles.title}>{feature.title}</h3>\n\n\t\t\t\t\t\t{/* Content/Description */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-popup-content\n\t\t\t\t\t\t\tstyle={styles.content}\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t\t__html: decodeHTMLEntities(\n\t\t\t\t\t\t\t\t\tfeature.content || feature.body || '',\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Actions - Buttons and Navigation */}\n\t\t\t\t\t\t<div style={styles.actionsWrapper}>\n\t\t\t\t\t\t\t<div style={styles.buttonsGroup}>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tonClick={handleExplore}\n\t\t\t\t\t\t\t\t\tstyle={styles.exploreButton.base}\n\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.hover,\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\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\tstyles.exploreButton.base,\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{feature.primaryButton?.text ||\n\t\t\t\t\t\t\t\t\t\tfeature.buttonText ||\n\t\t\t\t\t\t\t\t\t\tTEXT.DEFAULT_BUTTON_TEXT}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t{/* Secondary Button (Optional) */}\n\t\t\t\t\t\t\t\t{feature.secondaryButton?.text &&\n\t\t\t\t\t\t\t\t\t(feature.secondaryButton?.redirectionUrl &&\n\t\t\t\t\t\t\t\t\tfeature.secondaryButton?.action !== 'Play Video' ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={feature.secondaryButton.redirectionUrl}\n\t\t\t\t\t\t\t\t\t\t\ttarget={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: '_self'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\t\t\t\t\tfeature.secondaryButton.redirectionUrl.startsWith(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'http',\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 'noopener noreferrer'\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tonClick={handleSecondaryAction}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styles.secondaryButton.base}\n\t\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.hover,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) =>\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.secondaryButton.base,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{/* Navigation arrows */}\n\t\t\t\t\t\t\t{totalFeatures > 1 && (\n\t\t\t\t\t\t\t\t<div style={styles.navigationContainer}>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handlePreviousClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === 0}\n\t\t\t\t\t\t\t\t\t\tstyle={styles.navigationButton(currentIndex === 0).base}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Previous feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow style={{ transform: 'rotate(180deg)' }} />\n\t\t\t\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tonClick={handleNextClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={currentIndex === totalFeatures - 1}\n\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t).base\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(false).hover,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonMouseLeave={(e) => {\n\t\t\t\t\t\t\t\t\t\t\tif (currentIndex !== totalFeatures - 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\t\t\t\t\t\te.currentTarget.style,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.navigationButton(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === totalFeatures - 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t).base,\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Next feature\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Arrow />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t{/* Close contentWrapper */}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MajorUpdatePopup;\n"],"names":["MajorUpdatePopup","feature","currentIndex","totalFeatures","onSkip","onExplore","onPrevious","onNext","setIsClosing","setIsClosingParent","onSecondaryAction","ratio","padding","isClosing","useState","startAnimation","setStartAnimation","transform","setTransform","popupRef","useRef","isVideoPaused","setIsVideoPaused","showPlayIcon","setShowPlayIcon","videoRef","imageAspectRatio","setImageAspectRatio","imageRef","useEffect","handleSecondaryAction","e","preventDefault","stopPropagation","action","_a","secondaryButton","closeCallback","internalUrl","url","_b","redirectionUrl","startsWith","window","open","hideJoyrideArrow","current","targetButton","findWhatsNewButton","transformValue","calculateCloseTransform","executeAfterAnimation","__awaiter","location","href","styles","getMajorPopupStyles","primaryButton","style","_jsx","Object","assign","outerWrapper","children","_jsxs","ref","container","opacity","transition","contentWrapper","imageContainer","productVideo","_Fragment","src","image","autoPlay","muted","loop","playsInline","controls","title","onLoadedMetadata","video","currentTarget","width","videoWidth","height","videoHeight","aspectRatio","Math","abs","videoOverlay","onClick","paused","play","pause","role","tabIndex","onKeyDown","key","PlayIcon","displayImage","alt","onLoad","img","naturalWidth","naturalHeight","onError","target","imagePlaceholder","TEXT","FEATURE_PREVIEW_PLACEHOLDER","contentContainer","skipButtonContainer","callback","handleClose","skipButton","base","onMouseEnter","hover","onMouseLeave","content","dangerouslySetInnerHTML","__html","decodeHTMLEntities","body","actionsWrapper","buttonsGroup","handleExplore","redirectUrl","exploreButton","_c","text","buttonText","DEFAULT_BUTTON_TEXT","_d","_e","_f","rel","undefined","navigationContainer","disabled","navigationButton","Arrow"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as t}from"../../_virtual/_tslib.js";import{jsxs as e,jsx as n}from"react/jsx-runtime";import{useState as r,useRef as i,useEffect as o}from"react";import{TEXT as s}from"./constants/index.js";import"../../constants/Theme.js";import"./constants/animations.js";import{getMinorPopupStyles as l}from"./styles/minorPopup.styles.js";import{decodeHTMLEntities as a}from"./utils/htmlHelpers.js";import{hideJoyrideArrow as c,calculateCloseTransform as d,executeAfterAnimation as u}from"./utils/animationHelpers.js";import{findFeatureTagElement as m}from"./utils/elementHelpers.js";const p=
|
|
1
|
+
import{__awaiter as t}from"../../_virtual/_tslib.js";import{jsxs as e,jsx as n}from"react/jsx-runtime";import{useState as r,useRef as i,useEffect as o}from"react";import{TEXT as s}from"./constants/index.js";import"../../constants/Theme.js";import"./constants/animations.js";import{getMinorPopupStyles as l}from"./styles/minorPopup.styles.js";import{decodeHTMLEntities as a}from"./utils/htmlHelpers.js";import{hideJoyrideArrow as c,calculateCloseTransform as d,executeAfterAnimation as u}from"./utils/animationHelpers.js";import{findFeatureTagElement as m}from"./utils/elementHelpers.js";const p=({feature:p,currentIndex:f,totalFeatures:g,onSkip:v,onExplore:y,onPrevious:h,onNext:j,setIsClosing:T})=>{var b,O;const[x,E]=r(!1),[_,B]=r(!1),[k,C]=r(""),P=i(null);o((()=>{x&&B(!0)}),[x]);const W=l(_,k);return e("div",Object.assign({ref:P,style:W.container},{children:[n("div",Object.assign({style:W.imageContainer},{children:p.displayImage?n("div",Object.assign({style:W.imageWrapper},{children:n("img",{src:p.displayImage,alt:p.title,style:W.image,onError:t=>{p.image&&(t.target.src=p.image)}})})):n("div",Object.assign({style:W.imagePlaceholder},{children:s.FEATURE_PREVIEW_PLACEHOLDER}))})),e("div",Object.assign({style:W.contentContainer},{children:[e("div",{children:[n("h3",Object.assign({style:W.title},{children:p.title})),n("div",{style:W.content,dangerouslySetInnerHTML:{__html:a(p.content||p.body||"")}})]}),e("div",Object.assign({style:W.actionsContainer},{children:[(null===(b=p.secondaryButton)||void 0===b?void 0:b.text)&&n("span",Object.assign({onClick:()=>{var e,n;const r=null===(e=p.secondaryButton)||void 0===e?void 0:e.action,i=v;let o=null;if("Play Video"===r)y("Play Video");else if("Open link"===r){const t=null===(n=p.secondaryButton)||void 0===n?void 0:n.redirectionUrl;if(t){t.startsWith("http")?window.open(t,"_blank","noopener,noreferrer"):o=t}}if(c(P.current),P.current&&p.featureTag){const t=m(p.featureTag);if(t){const e=d(P.current,t);C(e)}else C("scale(0)")}else C("scale(0)");null==T||T(!0),E(!0),u((()=>t(void 0,void 0,void 0,(function*(){yield i(),o&&(window.location.href=o)}))))},style:W.understoodText},{children:p.secondaryButton.text})),n("button",Object.assign({onClick:()=>{var t,e;const n=null===(t=p.primaryButton)||void 0===t?void 0:t.action;if("Open link"===n){const t=(null===(e=p.primaryButton)||void 0===e?void 0:e.redirectionUrl)||p.redirectUrl;if(t){t.startsWith("http")&&window.open(t,"_blank","noopener,noreferrer")}}if(y(n),c(P.current),P.current&&p.featureTag){const t=p.featureTag.startsWith("#")||p.featureTag.startsWith(".")||p.featureTag.startsWith("[")?p.featureTag:`#${p.featureTag}`,e=document.querySelector(t);if(e){const t=d(P.current,e);C(t)}else C("scale(0)")}else C("scale(0)");null==T||T(!0),E(!0)},style:W.exploreButton},{children:(null===(O=p.primaryButton)||void 0===O?void 0:O.text)||p.buttonText||s.DEFAULT_BUTTON_TEXT}))]}))]}))]}))};export{p as default};
|
|
2
2
|
//# sourceMappingURL=MinorUpdatePopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MinorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { TEXT } from './constants';\nimport { getMinorPopupStyles } from './styles';\nimport { MinorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindFeatureTagElement,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MinorUpdatePopup: React.FC<MinorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n}) => {\n\tconst [isClosing, setIsClosing] = useState(false);\n\tconst [startAnimation, setStartAnimation] = useState(false);\n\tconst [transform, setTransform] = useState('');\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\n\t// Hide Joyride arrow when closing starts, then trigger animation immediately\n\tuseEffect(() => {\n\t\tif (isClosing) {\n\t\t\t// Start the shrink animation immediately\n\t\t\tsetStartAnimation(true);\n\t\t}\n\t}, [isClosing]);\n\n\tconst handleExplore = (): void => {\n\t\tconst action = feature.primaryButton?.action;\n\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonExplore(action);\n\n\t\t// Run closing animation in background\n\t\thideJoyrideArrow(popupRef.current);\n\t\tif (popupRef.current && feature.featureTag) {\n\t\t\tconst targetSelector =\n\t\t\t\tfeature.featureTag.startsWith('#') ||\n\t\t\t\tfeature.featureTag.startsWith('.') ||\n\t\t\t\tfeature.featureTag.startsWith('[')\n\t\t\t\t\t? feature.featureTag\n\t\t\t\t\t: `#${feature.featureTag}`;\n\t\t\tconst targetElement = document.querySelector(targetSelector);\n\t\t\tif (targetElement) {\n\t\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\t\tpopupRef.current,\n\t\t\t\t\ttargetElement,\n\t\t\t\t);\n\t\t\t\tsetTransform(transformValue);\n\t\t\t} else {\n\t\t\t\tsetTransform('scale(0)');\n\t\t\t}\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t};\n\n\tconst handleSecondaryAction = (): void => {\n\t\tconst action = feature.secondaryButton?.action;\n\t\tconst closeCallback = onSkip;\n\t\tlet internalUrl: string | null = null;\n\n\t\t// Handle based on action type\n\t\tif (action === 'Play Video') {\n\t\t\tonExplore('Play Video');\n\t\t} else if (action === 'Open link') {\n\t\t\tconst url = feature.secondaryButton?.redirectionUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t} else {\n\t\t\t\t\tinternalUrl = url;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (action === 'Close popup' || action === '') {\n\t\t\t// Just close the popup\n\t\t}\n\n\t\t// Always close popup after secondary action\n\t\thideJoyrideArrow(popupRef.current);\n\t\tif (popupRef.current && feature.featureTag) {\n\t\t\tconst targetElement = findFeatureTagElement(feature.featureTag);\n\t\t\tif (targetElement) {\n\t\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\t\tpopupRef.current,\n\t\t\t\t\ttargetElement,\n\t\t\t\t);\n\t\t\t\tsetTransform(transformValue);\n\t\t\t} else {\n\t\t\t\tsetTransform('scale(0)');\n\t\t\t}\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(async () => {\n\t\t\tawait closeCallback();\n\t\t\tif (internalUrl) {\n\t\t\t\twindow.location.href = internalUrl;\n\t\t\t}\n\t\t});\n\t};\n\n\tconst styles = getMinorPopupStyles(startAnimation, transform);\n\n\treturn (\n\t\t<div ref={popupRef} style={styles.container}>\n\t\t\t{/* Image section */}\n\t\t\t<div style={styles.imageContainer}>\n\t\t\t\t{feature.displayImage ? (\n\t\t\t\t\t<div style={styles.imageWrapper}>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={feature.displayImage}\n\t\t\t\t\t\t\talt={feature.title}\n\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\t\t\tif (feature.image) {\n\t\t\t\t\t\t\t\t\t(e.target as HTMLImageElement).src = feature.image;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div style={styles.imagePlaceholder}>\n\t\t\t\t\t\t{TEXT.FEATURE_PREVIEW_PLACEHOLDER}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Content section */}\n\t\t\t<div style={styles.contentContainer}>\n\t\t\t\t<div>\n\t\t\t\t\t<h3 style={styles.title}>{feature.title}</h3>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={styles.content}\n\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t__html: decodeHTMLEntities(feature.content || feature.body || ''),\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Action buttons */}\n\t\t\t\t<div style={styles.actionsContainer}>\n\t\t\t\t\t{/* Secondary Button (if configured, shows as text link on left) */}\n\t\t\t\t\t{feature.secondaryButton?.text && (\n\t\t\t\t\t\t<span onClick={handleSecondaryAction} style={styles.understoodText}>\n\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Primary Button (always shows) */}\n\t\t\t\t\t<button onClick={handleExplore} style={styles.exploreButton}>\n\t\t\t\t\t\t{feature.primaryButton?.text ||\n\t\t\t\t\t\t\tfeature.buttonText ||\n\t\t\t\t\t\t\tTEXT.DEFAULT_BUTTON_TEXT}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MinorUpdatePopup;\n"],"names":["MinorUpdatePopup","
|
|
1
|
+
{"version":3,"file":"MinorUpdatePopup.js","sources":["../../../../src/components/feature-announcements/MinorUpdatePopup.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { TEXT } from './constants';\nimport { getMinorPopupStyles } from './styles';\nimport { MinorUpdatePopupProps } from './types';\nimport {\n\tcalculateCloseTransform,\n\tdecodeHTMLEntities,\n\texecuteAfterAnimation,\n\tfindFeatureTagElement,\n\thideJoyrideArrow,\n} from './utils';\n\nconst MinorUpdatePopup: React.FC<MinorUpdatePopupProps> = ({\n\tfeature,\n\tcurrentIndex,\n\ttotalFeatures,\n\tonSkip,\n\tonExplore,\n\tonPrevious,\n\tonNext,\n\tsetIsClosing: setIsClosingParent,\n}) => {\n\tconst [isClosing, setIsClosing] = useState(false);\n\tconst [startAnimation, setStartAnimation] = useState(false);\n\tconst [transform, setTransform] = useState('');\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\n\t// Hide Joyride arrow when closing starts, then trigger animation immediately\n\tuseEffect(() => {\n\t\tif (isClosing) {\n\t\t\t// Start the shrink animation immediately\n\t\t\tsetStartAnimation(true);\n\t\t}\n\t}, [isClosing]);\n\n\tconst handleExplore = (): void => {\n\t\tconst action = feature.primaryButton?.action;\n\n\t\tif (action === 'Open link') {\n\t\t\tconst url = feature.primaryButton?.redirectionUrl || feature.redirectUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonExplore(action);\n\n\t\t// Run closing animation in background\n\t\thideJoyrideArrow(popupRef.current);\n\t\tif (popupRef.current && feature.featureTag) {\n\t\t\tconst targetSelector =\n\t\t\t\tfeature.featureTag.startsWith('#') ||\n\t\t\t\tfeature.featureTag.startsWith('.') ||\n\t\t\t\tfeature.featureTag.startsWith('[')\n\t\t\t\t\t? feature.featureTag\n\t\t\t\t\t: `#${feature.featureTag}`;\n\t\t\tconst targetElement = document.querySelector(targetSelector);\n\t\t\tif (targetElement) {\n\t\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\t\tpopupRef.current,\n\t\t\t\t\ttargetElement,\n\t\t\t\t);\n\t\t\t\tsetTransform(transformValue);\n\t\t\t} else {\n\t\t\t\tsetTransform('scale(0)');\n\t\t\t}\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t};\n\n\tconst handleSecondaryAction = (): void => {\n\t\tconst action = feature.secondaryButton?.action;\n\t\tconst closeCallback = onSkip;\n\t\tlet internalUrl: string | null = null;\n\n\t\t// Handle based on action type\n\t\tif (action === 'Play Video') {\n\t\t\tonExplore('Play Video');\n\t\t} else if (action === 'Open link') {\n\t\t\tconst url = feature.secondaryButton?.redirectionUrl;\n\t\t\tif (url) {\n\t\t\t\tconst isExternal = url.startsWith('http');\n\t\t\t\tif (isExternal) {\n\t\t\t\t\twindow.open(url, '_blank', 'noopener,noreferrer');\n\t\t\t\t} else {\n\t\t\t\t\tinternalUrl = url;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (action === 'Close popup' || action === '') {\n\t\t\t// Just close the popup\n\t\t}\n\n\t\t// Always close popup after secondary action\n\t\thideJoyrideArrow(popupRef.current);\n\t\tif (popupRef.current && feature.featureTag) {\n\t\t\tconst targetElement = findFeatureTagElement(feature.featureTag);\n\t\t\tif (targetElement) {\n\t\t\t\tconst transformValue = calculateCloseTransform(\n\t\t\t\t\tpopupRef.current,\n\t\t\t\t\ttargetElement,\n\t\t\t\t);\n\t\t\t\tsetTransform(transformValue);\n\t\t\t} else {\n\t\t\t\tsetTransform('scale(0)');\n\t\t\t}\n\t\t} else {\n\t\t\tsetTransform('scale(0)');\n\t\t}\n\t\tsetIsClosingParent?.(true);\n\t\tsetIsClosing(true);\n\t\texecuteAfterAnimation(async () => {\n\t\t\tawait closeCallback();\n\t\t\tif (internalUrl) {\n\t\t\t\twindow.location.href = internalUrl;\n\t\t\t}\n\t\t});\n\t};\n\n\tconst styles = getMinorPopupStyles(startAnimation, transform);\n\n\treturn (\n\t\t<div ref={popupRef} style={styles.container}>\n\t\t\t{/* Image section */}\n\t\t\t<div style={styles.imageContainer}>\n\t\t\t\t{feature.displayImage ? (\n\t\t\t\t\t<div style={styles.imageWrapper}>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={feature.displayImage}\n\t\t\t\t\t\t\talt={feature.title}\n\t\t\t\t\t\t\tstyle={styles.image}\n\t\t\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\t\t\tif (feature.image) {\n\t\t\t\t\t\t\t\t\t(e.target as HTMLImageElement).src = feature.image;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div style={styles.imagePlaceholder}>\n\t\t\t\t\t\t{TEXT.FEATURE_PREVIEW_PLACEHOLDER}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Content section */}\n\t\t\t<div style={styles.contentContainer}>\n\t\t\t\t<div>\n\t\t\t\t\t<h3 style={styles.title}>{feature.title}</h3>\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={styles.content}\n\t\t\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t\t\t__html: decodeHTMLEntities(feature.content || feature.body || ''),\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{/* Action buttons */}\n\t\t\t\t<div style={styles.actionsContainer}>\n\t\t\t\t\t{/* Secondary Button (if configured, shows as text link on left) */}\n\t\t\t\t\t{feature.secondaryButton?.text && (\n\t\t\t\t\t\t<span onClick={handleSecondaryAction} style={styles.understoodText}>\n\t\t\t\t\t\t\t{feature.secondaryButton.text}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Primary Button (always shows) */}\n\t\t\t\t\t<button onClick={handleExplore} style={styles.exploreButton}>\n\t\t\t\t\t\t{feature.primaryButton?.text ||\n\t\t\t\t\t\t\tfeature.buttonText ||\n\t\t\t\t\t\t\tTEXT.DEFAULT_BUTTON_TEXT}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MinorUpdatePopup;\n"],"names":["MinorUpdatePopup","feature","currentIndex","totalFeatures","onSkip","onExplore","onPrevious","onNext","setIsClosing","setIsClosingParent","isClosing","useState","startAnimation","setStartAnimation","transform","setTransform","popupRef","useRef","useEffect","styles","getMinorPopupStyles","_jsxs","Object","assign","ref","style","container","children","_jsx","imageContainer","displayImage","imageWrapper","src","alt","title","image","onError","e","target","imagePlaceholder","TEXT","FEATURE_PREVIEW_PLACEHOLDER","contentContainer","content","dangerouslySetInnerHTML","__html","decodeHTMLEntities","body","actionsContainer","_a","secondaryButton","text","onClick","handleSecondaryAction","action","closeCallback","internalUrl","url","_b","redirectionUrl","startsWith","window","open","hideJoyrideArrow","current","featureTag","targetElement","findFeatureTagElement","transformValue","calculateCloseTransform","executeAfterAnimation","__awaiter","location","href","understoodText","handleExplore","primaryButton","redirectUrl","targetSelector","document","querySelector","exploreButton","buttonText","DEFAULT_BUTTON_TEXT"],"mappings":"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"}
|