@qualified-salesforce/web 0.0.1-oidc-bootstrap
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/41842993ec71d6628e4949e9a22b146b.svg +3 -0
- package/7271f3433ed82fc7f56adcd9e30275f4.svg +17 -0
- package/LICENSE.txt +82 -0
- package/components/helpers/entriesStringValidations.js +69 -0
- package/components/helpers/languages.js +32 -0
- package/components/shared/assertUnreachable.js +5 -0
- package/components/shared/controls/imageCropperHelpers.js +43 -0
- package/components/shared/meetingLoadingProgressSpec.js +116 -0
- package/constants.generated.js +9883 -0
- package/css/widget/multimodal_v2/host.split-css.css +162 -0
- package/css/widget/multimodal_v2/index.split-css.panda.css +5240 -0
- package/css/widget/widget.split-css.css +100 -0
- package/fonts/inter/Inter-Black.woff +0 -0
- package/fonts/inter/Inter-Black.woff2 +0 -0
- package/fonts/inter/Inter-BlackItalic.woff +0 -0
- package/fonts/inter/Inter-BlackItalic.woff2 +0 -0
- package/fonts/inter/Inter-Bold.woff +0 -0
- package/fonts/inter/Inter-Bold.woff2 +0 -0
- package/fonts/inter/Inter-BoldItalic.woff +0 -0
- package/fonts/inter/Inter-BoldItalic.woff2 +0 -0
- package/fonts/inter/Inter-ExtraBold.woff +0 -0
- package/fonts/inter/Inter-ExtraBold.woff2 +0 -0
- package/fonts/inter/Inter-ExtraBoldItalic.woff +0 -0
- package/fonts/inter/Inter-ExtraBoldItalic.woff2 +0 -0
- package/fonts/inter/Inter-ExtraLight.woff +0 -0
- package/fonts/inter/Inter-ExtraLight.woff2 +0 -0
- package/fonts/inter/Inter-ExtraLightItalic.woff +0 -0
- package/fonts/inter/Inter-ExtraLightItalic.woff2 +0 -0
- package/fonts/inter/Inter-Italic.woff +0 -0
- package/fonts/inter/Inter-Italic.woff2 +0 -0
- package/fonts/inter/Inter-Light.woff +0 -0
- package/fonts/inter/Inter-Light.woff2 +0 -0
- package/fonts/inter/Inter-LightItalic.woff +0 -0
- package/fonts/inter/Inter-LightItalic.woff2 +0 -0
- package/fonts/inter/Inter-Medium.woff +0 -0
- package/fonts/inter/Inter-Medium.woff2 +0 -0
- package/fonts/inter/Inter-MediumItalic.woff +0 -0
- package/fonts/inter/Inter-MediumItalic.woff2 +0 -0
- package/fonts/inter/Inter-Regular.woff +0 -0
- package/fonts/inter/Inter-Regular.woff2 +0 -0
- package/fonts/inter/Inter-SemiBold.woff +0 -0
- package/fonts/inter/Inter-SemiBold.woff2 +0 -0
- package/fonts/inter/Inter-SemiBoldItalic.woff +0 -0
- package/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
- package/fonts/inter/Inter-Thin.woff +0 -0
- package/fonts/inter/Inter-Thin.woff2 +0 -0
- package/fonts/inter/Inter-ThinItalic.woff +0 -0
- package/fonts/inter/Inter-ThinItalic.woff2 +0 -0
- package/fonts/inter/Inter-italic.var.woff2 +0 -0
- package/fonts/inter/Inter-roman.var.woff2 +0 -0
- package/images/close.js +63 -0
- package/images/logo.js +22 -0
- package/js/4101.js +19721 -0
- package/js/daily-esm.js +9948 -0
- package/js/date-fns.js +427 -0
- package/js/multimodal_v2.js +1653 -0
- package/js/runtime.js +109 -0
- package/media/Inter-Black.796be8d8bf.woff2 +0 -0
- package/media/Inter-Black.b254104c56.woff +0 -0
- package/media/Inter-BlackItalic.70306b0eae.woff +0 -0
- package/media/Inter-BlackItalic.752f1e0aaa.woff2 +0 -0
- package/media/Inter-Bold.579e0f95ca.woff2 +0 -0
- package/media/Inter-Bold.b1234477a5.woff +0 -0
- package/media/Inter-BoldItalic.3d0d804323.woff +0 -0
- package/media/Inter-BoldItalic.828a494e04.woff2 +0 -0
- package/media/Inter-ExtraBold.208a9e6c99.woff +0 -0
- package/media/Inter-ExtraBold.d65f028165.woff2 +0 -0
- package/media/Inter-ExtraBoldItalic.30429962ec.woff +0 -0
- package/media/Inter-ExtraBoldItalic.8c7eac5ce3.woff2 +0 -0
- package/media/Inter-ExtraLight.15c082a57d.woff +0 -0
- package/media/Inter-ExtraLight.6824177d1e.woff2 +0 -0
- package/media/Inter-ExtraLightItalic.05138dddf3.woff2 +0 -0
- package/media/Inter-ExtraLightItalic.3beee54f59.woff +0 -0
- package/media/Inter-Italic.9beab78452.woff +0 -0
- package/media/Inter-Italic.d593a8df79.woff2 +0 -0
- package/media/Inter-Light.27083fa637.woff2 +0 -0
- package/media/Inter-Light.91dfddd842.woff +0 -0
- package/media/Inter-LightItalic.0a783b89b3.woff2 +0 -0
- package/media/Inter-LightItalic.f8ccf2813f.woff +0 -0
- package/media/Inter-Medium.dc792b508e.woff2 +0 -0
- package/media/Inter-Medium.ec7dd2d9d8.woff +0 -0
- package/media/Inter-MediumItalic.17301e5b40.woff +0 -0
- package/media/Inter-MediumItalic.84d3493a9f.woff2 +0 -0
- package/media/Inter-Regular.f1f0c35b32.woff2 +0 -0
- package/media/Inter-Regular.f356e84aa0.woff +0 -0
- package/media/Inter-SemiBold.55027e4724.woff +0 -0
- package/media/Inter-SemiBold.fcb100c760.woff2 +0 -0
- package/media/Inter-SemiBoldItalic.ab9105ed3b.woff +0 -0
- package/media/Inter-SemiBoldItalic.d90f295d0c.woff2 +0 -0
- package/media/Inter-Thin.16325d9b0f.woff +0 -0
- package/media/Inter-Thin.dafaa44d99.woff2 +0 -0
- package/media/Inter-ThinItalic.4fc662b3cf.woff2 +0 -0
- package/media/Inter-ThinItalic.d3d8994788.woff +0 -0
- package/media/Inter-italic.var.958a0b9742.woff2 +0 -0
- package/media/Inter-roman.var.b2129c009c.woff2 +0 -0
- package/package.json +20 -0
- package/packs/widget/api/docking/docking_host.js +97 -0
- package/packs/widget/api/docking/index.js +294 -0
- package/packs/widget/api/docking/shared.js +164 -0
- package/packs/widget/api/docking/viewport_lock.js +488 -0
- package/packs/widget/api/docking/viewport_resize.js +1203 -0
- package/packs/widget/esm/fonts/Inter-Black.796be8d8bf.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Black.b254104c56.woff +0 -0
- package/packs/widget/esm/fonts/Inter-BlackItalic.70306b0eae.woff +0 -0
- package/packs/widget/esm/fonts/Inter-BlackItalic.752f1e0aaa.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Bold.579e0f95ca.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Bold.b1234477a5.woff +0 -0
- package/packs/widget/esm/fonts/Inter-BoldItalic.3d0d804323.woff +0 -0
- package/packs/widget/esm/fonts/Inter-BoldItalic.828a494e04.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraBold.208a9e6c99.woff +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraBold.d65f028165.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraBoldItalic.30429962ec.woff +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraBoldItalic.8c7eac5ce3.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraLight.15c082a57d.woff +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraLight.6824177d1e.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraLightItalic.05138dddf3.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-ExtraLightItalic.3beee54f59.woff +0 -0
- package/packs/widget/esm/fonts/Inter-Italic.9beab78452.woff +0 -0
- package/packs/widget/esm/fonts/Inter-Italic.d593a8df79.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Light.27083fa637.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Light.91dfddd842.woff +0 -0
- package/packs/widget/esm/fonts/Inter-LightItalic.0a783b89b3.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-LightItalic.f8ccf2813f.woff +0 -0
- package/packs/widget/esm/fonts/Inter-Medium.dc792b508e.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Medium.ec7dd2d9d8.woff +0 -0
- package/packs/widget/esm/fonts/Inter-MediumItalic.17301e5b40.woff +0 -0
- package/packs/widget/esm/fonts/Inter-MediumItalic.84d3493a9f.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Regular.f1f0c35b32.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Regular.f356e84aa0.woff +0 -0
- package/packs/widget/esm/fonts/Inter-SemiBold.55027e4724.woff +0 -0
- package/packs/widget/esm/fonts/Inter-SemiBold.fcb100c760.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-SemiBoldItalic.ab9105ed3b.woff +0 -0
- package/packs/widget/esm/fonts/Inter-SemiBoldItalic.d90f295d0c.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-Thin.16325d9b0f.woff +0 -0
- package/packs/widget/esm/fonts/Inter-Thin.dafaa44d99.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-ThinItalic.4fc662b3cf.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-ThinItalic.d3d8994788.woff +0 -0
- package/packs/widget/esm/fonts/Inter-italic.var.958a0b9742.woff2 +0 -0
- package/packs/widget/esm/fonts/Inter-roman.var.b2129c009c.woff2 +0 -0
- package/packs/widget/esm/index.js +183 -0
- package/packs/widget/esm/qualified.css +5502 -0
- package/routes/app/offers/scripts/OfferMainScript.js +154 -0
- package/routes/app/offers/scripts/constants.js +71 -0
- package/routes/app/offers/scripts/main/ButtonManager.js +65 -0
- package/routes/app/offers/scripts/main/FormManager.js +325 -0
- package/routes/app/offers/scripts/main/MainContext.js +19 -0
- package/routes/app/offers/scripts/main/OfferManager.js +91 -0
- package/routes/app/offers/scripts/main/TriggerManager.js +125 -0
- package/routes/app/offers/scripts/rendering/ContentManager.js +53 -0
- package/routes/app/offers/scripts/rendering/LocationManager.js +83 -0
- package/routes/app/offers/scripts/rendering/RenderedOffer.js +188 -0
- package/routes/app/offers/scripts/rendering/Renderer.js +69 -0
- package/routes/app/offers/scripts/rendering/RenderingInitializer.js +62 -0
- package/routes/app/offers/scripts/rendering/animations/AnimationManager.js +31 -0
- package/routes/app/offers/scripts/rendering/animations/AnimationManagerFooter.js +81 -0
- package/routes/app/offers/scripts/rendering/animations/AnimationManagerHeader.js +81 -0
- package/routes/app/offers/scripts/rendering/animations/AnimationManagerModal.js +117 -0
- package/routes/app/offers/scripts/rendering/animations/AnimationManagerSidebar.js +75 -0
- package/routes/app/offers/scripts/rendering/animations/AnimationResult.js +43 -0
- package/routes/app/offers/scripts/rendering/animations/Animator.js +78 -0
- package/routes/app/offers/scripts/rendering/animations/BaseAnimationManager.js +25 -0
- package/routes/app/offers/scripts/rendering/lib/BaseComponent.js +106 -0
- package/routes/app/offers/scripts/rendering/lib/FormComponent.js +134 -0
- package/routes/app/offers/scripts/rendering/lib/OfferComponent.js +144 -0
- package/routes/app/offers/scripts/rendering/lib/ScrollbarWidth.js +27 -0
- package/routes/app/offers/scripts/rendering/lib/decorators.js +20 -0
- package/routes/app/offers/scripts/rendering/locations/CSSVarsManager.js +66 -0
- package/routes/app/offers/scripts/rendering/locations/ElementResizeObserver.js +49 -0
- package/routes/app/offers/scripts/rendering/locations/footer.js +53 -0
- package/routes/app/offers/scripts/rendering/locations/header/AsyncBatchProcessor.js +70 -0
- package/routes/app/offers/scripts/rendering/locations/header/CSSTransitionObserver.js +182 -0
- package/routes/app/offers/scripts/rendering/locations/header/ElementStyleChangeObserver.js +138 -0
- package/routes/app/offers/scripts/rendering/locations/header/ExternalStyleManager.js +110 -0
- package/routes/app/offers/scripts/rendering/locations/header/Header.js +353 -0
- package/routes/app/offers/scripts/rendering/locations/header/InlineStyleManager.js +105 -0
- package/routes/app/offers/scripts/rendering/locations/header/MatchingElementsObserver.js +107 -0
- package/routes/app/offers/scripts/rendering/locations/header/NewElementsObserver.js +129 -0
- package/routes/app/offers/scripts/rendering/locations/header/RuleWrapper.js +46 -0
- package/routes/app/offers/scripts/rendering/locations/header/SelectorObservable.js +23 -0
- package/routes/app/offers/scripts/rendering/locations/header/SelectorObserver.js +61 -0
- package/routes/app/offers/scripts/rendering/locations/header/ShiftedElementsManager.js +45 -0
- package/routes/app/offers/scripts/rendering/locations/header/StyleElementManager.js +37 -0
- package/routes/app/offers/scripts/rendering/locations/header/StyleElementWrapper.js +62 -0
- package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/ObservedSelectorValue.js +45 -0
- package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/ObservedSelectors.js +62 -0
- package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/StyleSelectorObserver.js +294 -0
- package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/constants.js +21 -0
- package/routes/app/offers/scripts/rendering/locations/header/WindowResizeObserver.js +43 -0
- package/routes/app/offers/scripts/rendering/locations/header/utils.js +25 -0
- package/routes/app/offers/scripts/rendering/locations/popup.js +66 -0
- package/routes/app/offers/scripts/rendering/locations/sidebar.js +21 -0
- package/routes/app/offers/scripts/rendering/variations/ButtonBanner.js +105 -0
- package/routes/app/offers/scripts/rendering/variations/ButtonModal.js +114 -0
- package/routes/app/offers/scripts/rendering/variations/FormBanner.js +214 -0
- package/routes/app/offers/scripts/rendering/variations/FormModal.js +325 -0
- package/routes/app/offers/scripts/rendering/variations/LinkBanner.js +105 -0
- package/routes/app/offers/scripts/rendering/variations/components/Body.js +29 -0
- package/routes/app/offers/scripts/rendering/variations/components/Button.js +128 -0
- package/routes/app/offers/scripts/rendering/variations/components/DismissButton.js +39 -0
- package/routes/app/offers/scripts/rendering/variations/components/ForegroundImageBanner.js +110 -0
- package/routes/app/offers/scripts/rendering/variations/components/ForegroundImageModal.js +128 -0
- package/routes/app/offers/scripts/rendering/variations/components/Headline.js +94 -0
- package/routes/app/offers/scripts/rendering/variations/components/MultiFieldForm.js +302 -0
- package/routes/app/offers/scripts/rendering/variations/components/Tooltip.js +74 -0
- package/routes/app/offers/scripts/rendering/variations/icons.js +15 -0
- package/routes/app/offers/scripts/utils.js +115 -0
- package/routes/app/offers/utils/HTMLUtils.js +10 -0
- package/routes/app/offers/utils/createTypeGuard.js +32 -0
- package/routes/app/offers/utils/promise-utils.js +22 -0
- package/routes/app/websiteBuilder/stores/storeHelpers.js +18 -0
- package/sounds/message-initial.mp3 +0 -0
- package/sounds/message-received.mp3 +0 -0
- package/sounds/message-sent.mp3 +0 -0
- package/src/arrays.js +15 -0
- package/src/audio.js +106 -0
- package/src/bounded-set.js +16 -0
- package/src/bounding_box_observer.js +129 -0
- package/src/decorators.js +29 -0
- package/src/dom.js +128 -0
- package/src/dom_roots.js +26 -0
- package/src/embedded_forms/EmbeddedForm.js +638 -0
- package/src/embedded_forms/QualifiedEmbeddedForm.js +51 -0
- package/src/embedded_forms/QualifiedFormField.js +137 -0
- package/src/embedded_forms/utils.js +17 -0
- package/src/graphql-types.js +1686 -0
- package/src/iframes.js +86 -0
- package/src/localstorage.js +43 -0
- package/src/mirror/Shipper.js +133 -0
- package/src/mirror/constants.generated.js +13 -0
- package/src/mirror/constants.js +238 -0
- package/src/mirror/shipper/ChangeQueue.js +155 -0
- package/src/mirror/shipper/DOMSerializer.js +392 -0
- package/src/mirror/shipper/observers.js +441 -0
- package/src/mirror/shipper/utils.js +98 -0
- package/src/mixins/disposable.js +125 -0
- package/src/mixins/injectable.js +37 -0
- package/src/personalizations/personalization-manager.js +110 -0
- package/src/personalizations/strategies/node-freezing-strategy.js +174 -0
- package/src/personalizations/utils.js +187 -0
- package/src/promises.js +107 -0
- package/src/proxy.js +144 -0
- package/src/qualified_root.js +35 -0
- package/src/query_params.js +55 -0
- package/src/shadow-dom-helper.js +63 -0
- package/src/singleton_host.js +39 -0
- package/src/smart_website/trigger.js +49 -0
- package/src/smart_website/utils.js +149 -0
- package/src/string.js +53 -0
- package/src/timezone.js +57 -0
- package/src/timing.js +49 -0
- package/src/type-utils.js +76 -0
- package/src/url-utils.js +102 -0
- package/src/url.js +50 -0
- package/src/utils.js +72 -0
- package/src/validation.js.js +29 -0
- package/src/validation_ts.js +6 -0
- package/vendor/actioncable/adapters.js +6 -0
- package/vendor/actioncable/connection.js +204 -0
- package/vendor/actioncable/connection_monitor.js +129 -0
- package/vendor/actioncable/consumer.js +91 -0
- package/vendor/actioncable/index.js +34 -0
- package/vendor/actioncable/internal.js +22 -0
- package/vendor/actioncable/logger.js +28 -0
- package/vendor/actioncable/subscription.js +93 -0
- package/vendor/actioncable/subscriptions.js +89 -0
- package/vendor/open-telemetry-idgenerator.js +43 -0
- package/widget/analytics/facebook_tracker.js +8 -0
- package/widget/analytics/google_analytics_tracker.js +83 -0
- package/widget/analytics/google_tag_manager_tracker.js +22 -0
- package/widget/analytics.js +58 -0
- package/widget/api_handler/api_handler.js +730 -0
- package/widget/api_handler/base_api_handler.js +249 -0
- package/widget/booker_intent_tracker.js +391 -0
- package/widget/booker_outcome_tracker.js +329 -0
- package/widget/capture_widget_exceptions.js +150 -0
- package/widget/channel.js +282 -0
- package/widget/composite_experience_adapter.js +101 -0
- package/widget/constants.generated.js +350 -0
- package/widget/constants.js +21 -0
- package/widget/container.js +193 -0
- package/widget/content_activity_emitter.js +36 -0
- package/widget/data360_visitor.js +67 -0
- package/widget/date_provider.js +11 -0
- package/widget/debug_mode_state.js +175 -0
- package/widget/dummy_module.js +9 -0
- package/widget/eloqua_visitor.js +17 -0
- package/widget/form_cta_booker_intent.js +246 -0
- package/widget/hubspot_visitor.js +39 -0
- package/widget/inline_meeting_booker_page.js +90 -0
- package/widget/local_state/abstract_local_state.js +38 -0
- package/widget/local_state/debug_state/abstract_debug_flow.js +29 -0
- package/widget/local_state/debug_state/custom_form_flow.js +14 -0
- package/widget/local_state/debug_state/hubspot_form_flow.js +19 -0
- package/widget/local_state/debug_state/hubspot_v4_form_flow.js +19 -0
- package/widget/local_state/debug_state/marketo_form_flow.js +20 -0
- package/widget/local_state/debug_state/pardot_form_flow.js +18 -0
- package/widget/local_state/debug_state.js +362 -0
- package/widget/local_state/trace_state.js +20 -0
- package/widget/location_provider.js +9 -0
- package/widget/marketo_visitor.js +39 -0
- package/widget/meetings/tracing/buttons_forms_triggering_tracer.js +124 -0
- package/widget/meetings/tracing/spans/button_spans.js +18 -0
- package/widget/meetings/tracing/spans/form_spans.js +11 -0
- package/widget/multimodal_v2/assets_preloader.js +97 -0
- package/widget/multimodal_v2/components/AppLayout.js +93 -0
- package/widget/multimodal_v2/components/CursorOverlay.js +93 -0
- package/widget/multimodal_v2/components/PointerRectOverlay.js +74 -0
- package/widget/multimodal_v2/components/app/Artifact.js +109 -0
- package/widget/multimodal_v2/components/app/Background.js +27 -0
- package/widget/multimodal_v2/components/app/CalendarLoadingContent.js +255 -0
- package/widget/multimodal_v2/components/app/Chat.js +39 -0
- package/widget/multimodal_v2/components/app/CookieConsentModal.js +149 -0
- package/widget/multimodal_v2/components/app/Foreground.js +48 -0
- package/widget/multimodal_v2/components/app/HiddenInput.js +41 -0
- package/widget/multimodal_v2/components/app/Input.js +72 -0
- package/widget/multimodal_v2/components/app/LightboxExperience.js +769 -0
- package/widget/multimodal_v2/components/app/LoadingOverlay.js +97 -0
- package/widget/multimodal_v2/components/app/Main.js +985 -0
- package/widget/multimodal_v2/components/app/MessengerButton.js +160 -0
- package/widget/multimodal_v2/components/app/Multimodal.js +17 -0
- package/widget/multimodal_v2/components/app/OverlayControls.js +79 -0
- package/widget/multimodal_v2/components/app/Preview.js +32 -0
- package/widget/multimodal_v2/components/app/PrivacyDisclosure.js +57 -0
- package/widget/multimodal_v2/components/app/RotateDeviceOverlay.js +70 -0
- package/widget/multimodal_v2/components/app/Toolbar.js +156 -0
- package/widget/multimodal_v2/components/chat/ChatComposer.js +129 -0
- package/widget/multimodal_v2/components/chat/ChatInputForm.js +398 -0
- package/widget/multimodal_v2/components/chat/ColdStartQuestions.js +354 -0
- package/widget/multimodal_v2/components/chat/ComposerErrorBanner.js +62 -0
- package/widget/multimodal_v2/components/chat/PostCallSurvey.js +359 -0
- package/widget/multimodal_v2/components/chat/preview/FieldRequestRenderer.js +41 -0
- package/widget/multimodal_v2/components/chat/preview/PreviewMessageRenderer.js +60 -0
- package/widget/multimodal_v2/components/chat/preview/SharedOfferRenderer.js +143 -0
- package/widget/multimodal_v2/components/chat/preview/TextRenderer.js +27 -0
- package/widget/multimodal_v2/components/chat/preview/TimelinePreview.js +254 -0
- package/widget/multimodal_v2/components/chat/timeline/CalendarEventOfferRenderer.js +103 -0
- package/widget/multimodal_v2/components/chat/timeline/CalendarEventPickRenderer.js +148 -0
- package/widget/multimodal_v2/components/chat/timeline/FieldEntryRenderer.js +84 -0
- package/widget/multimodal_v2/components/chat/timeline/FieldRequestRenderer.js +56 -0
- package/widget/multimodal_v2/components/chat/timeline/InlinePrivacyDisclosure.js +66 -0
- package/widget/multimodal_v2/components/chat/timeline/LinkPreviewCard.js +70 -0
- package/widget/multimodal_v2/components/chat/timeline/MessageEntry.js +88 -0
- package/widget/multimodal_v2/components/chat/timeline/PresentContentRenderer.js +30 -0
- package/widget/multimodal_v2/components/chat/timeline/PresentDeckRenderer.js +279 -0
- package/widget/multimodal_v2/components/chat/timeline/PresentVideoRenderer.js +131 -0
- package/widget/multimodal_v2/components/chat/timeline/ShareContentRenderer.js +59 -0
- package/widget/multimodal_v2/components/chat/timeline/SharedOfferRenderer.js +131 -0
- package/widget/multimodal_v2/components/chat/timeline/SystemRenderer.js +82 -0
- package/widget/multimodal_v2/components/chat/timeline/TextRenderer.js +66 -0
- package/widget/multimodal_v2/components/chat/timeline/Timeline.js +158 -0
- package/widget/multimodal_v2/components/debug/DebugMultimodalPanel.js +327 -0
- package/widget/multimodal_v2/components/decks/index.js +160 -0
- package/widget/multimodal_v2/components/field_request/BooleanField.js +77 -0
- package/widget/multimodal_v2/components/field_request/FieldComponents.js +69 -0
- package/widget/multimodal_v2/components/field_request/Form.js +87 -0
- package/widget/multimodal_v2/components/field_request/MultiPicklistField.js +240 -0
- package/widget/multimodal_v2/components/field_request/PicklistField.js +166 -0
- package/widget/multimodal_v2/components/field_request/SingleLineInputField.js +69 -0
- package/widget/multimodal_v2/components/field_request/TextField.js +37 -0
- package/widget/multimodal_v2/components/field_request/index.js +170 -0
- package/widget/multimodal_v2/components/helpers/AutoScroll.js +37 -0
- package/widget/multimodal_v2/components/helpers/ErrorBoundary.js +53 -0
- package/widget/multimodal_v2/components/helpers/FocusTrapDialog.js +26 -0
- package/widget/multimodal_v2/components/helpers/ImpressionTracker.js +94 -0
- package/widget/multimodal_v2/components/helpers/ListRenderer.js +37 -0
- package/widget/multimodal_v2/components/helpers/Localization.js +76 -0
- package/widget/multimodal_v2/components/helpers/Persisted.js +166 -0
- package/widget/multimodal_v2/components/helpers/RichText.js +358 -0
- package/widget/multimodal_v2/components/helpers/ScreenReaderHeading.js +17 -0
- package/widget/multimodal_v2/components/helpers/Thumbnail.js +190 -0
- package/widget/multimodal_v2/components/helpers/VisuallyHidden.js +41 -0
- package/widget/multimodal_v2/components/helpers/content_click_payloads.js +58 -0
- package/widget/multimodal_v2/components/helpers/useDraggable.js +103 -0
- package/widget/multimodal_v2/components/helpers/useTextOverflow.js +44 -0
- package/widget/multimodal_v2/components/lightbox_gather/index.js +741 -0
- package/widget/multimodal_v2/components/meetings/ArtifactEntryPoint.js +252 -0
- package/widget/multimodal_v2/components/meetings/MeetingAdditionalAttendees.js +325 -0
- package/widget/multimodal_v2/components/meetings/MeetingBookerEntry.js +100 -0
- package/widget/multimodal_v2/components/meetings/MeetingDetailsCard.js +99 -0
- package/widget/multimodal_v2/components/meetings/MeetingErrorBanner.js +62 -0
- package/widget/multimodal_v2/components/meetings/MeetingOfferEmailStep.js +239 -0
- package/widget/multimodal_v2/components/meetings/MeetingOfferFooter.js +104 -0
- package/widget/multimodal_v2/components/meetings/MeetingOfferSelectionStep.js +60 -0
- package/widget/multimodal_v2/components/meetings/MeetingRepHeader.js +222 -0
- package/widget/multimodal_v2/components/meetings/MeetingStepShell.js +92 -0
- package/widget/multimodal_v2/components/meetings/MeetingSummaryRail.js +515 -0
- package/widget/multimodal_v2/components/meetings/MeetingTimeSelector.js +603 -0
- package/widget/multimodal_v2/components/meetings/MonthDatePicker.js +422 -0
- package/widget/multimodal_v2/components/meetings/NavigationButtons.js +76 -0
- package/widget/multimodal_v2/components/meetings/TimeSlotHeader.js +357 -0
- package/widget/multimodal_v2/components/meetings/WeekViewHeader.js +20 -0
- package/widget/multimodal_v2/components/meetings/constants.js +7 -0
- package/widget/multimodal_v2/components/meetings/index.js +47 -0
- package/widget/multimodal_v2/components/meetings/utils.js +328 -0
- package/widget/multimodal_v2/components/multimodal/Audio.js +28 -0
- package/widget/multimodal_v2/components/multimodal/Controls.js +188 -0
- package/widget/multimodal_v2/components/multimodal/LiveVideo.js +63 -0
- package/widget/multimodal_v2/components/multimodal/MultiModalComponent.js +424 -0
- package/widget/multimodal_v2/components/multimodal/MultimodalAvatar.js +36 -0
- package/widget/multimodal_v2/components/multimodal/OrbAvatar.js +326 -0
- package/widget/multimodal_v2/components/multimodal/Status.js +220 -0
- package/widget/multimodal_v2/components/multimodal/VideoAvatar.js +24 -0
- package/widget/multimodal_v2/components/multimodal/VideoPreview.js +114 -0
- package/widget/multimodal_v2/components/multimodal/useAudioLevelMonitoring.js +96 -0
- package/widget/multimodal_v2/components/multimodal/useMultimodal.js +434 -0
- package/widget/multimodal_v2/components/presentations/index.js +372 -0
- package/widget/multimodal_v2/components/shared/Avatar.js +92 -0
- package/widget/multimodal_v2/components/shared/AvatarGroup.js +135 -0
- package/widget/multimodal_v2/components/shared/Button.js +245 -0
- package/widget/multimodal_v2/components/shared/ButtonGroup.js +133 -0
- package/widget/multimodal_v2/components/shared/ComposerForm.js +98 -0
- package/widget/multimodal_v2/components/shared/SpeakingIndicator.js +239 -0
- package/widget/multimodal_v2/components/shared/ThinkingAnimation.js +165 -0
- package/widget/multimodal_v2/components/shared/Tooltip.js +266 -0
- package/widget/multimodal_v2/components/shared/controls/Dropdown.js +79 -0
- package/widget/multimodal_v2/components/shared/controls/PillToggle.js +142 -0
- package/widget/multimodal_v2/components/shared/controls/TextArea.js +114 -0
- package/widget/multimodal_v2/components/shared/toolCallLabels.js +12 -0
- package/widget/multimodal_v2/components/slides/SlidesThumbnail.js +47 -0
- package/widget/multimodal_v2/components/slides/index.js +61 -0
- package/widget/multimodal_v2/constants.js +88 -0
- package/widget/multimodal_v2/host.split-css.js +2 -0
- package/widget/multimodal_v2/host.string.js +96 -0
- package/widget/multimodal_v2/images/icons.js +582 -0
- package/widget/multimodal_v2/images/posters/piper_low_res.jpg +0 -0
- package/widget/multimodal_v2/index.js +23 -0
- package/widget/multimodal_v2/index.panda.js +28 -0
- package/widget/multimodal_v2/index.split-css.panda.js +2 -0
- package/widget/multimodal_v2/inline_meeting_booker.js +182 -0
- package/widget/multimodal_v2/locales/cs.js +196 -0
- package/widget/multimodal_v2/locales/da.js +196 -0
- package/widget/multimodal_v2/locales/de.js +196 -0
- package/widget/multimodal_v2/locales/en.js +196 -0
- package/widget/multimodal_v2/locales/en_AU.js +197 -0
- package/widget/multimodal_v2/locales/en_GB.js +197 -0
- package/widget/multimodal_v2/locales/es.js +197 -0
- package/widget/multimodal_v2/locales/es_LA.js +196 -0
- package/widget/multimodal_v2/locales/fi.js +196 -0
- package/widget/multimodal_v2/locales/fr.js +197 -0
- package/widget/multimodal_v2/locales/fr_CA.js +196 -0
- package/widget/multimodal_v2/locales/id.js +196 -0
- package/widget/multimodal_v2/locales/index.js +48 -0
- package/widget/multimodal_v2/locales/it.js +196 -0
- package/widget/multimodal_v2/locales/ja.js +196 -0
- package/widget/multimodal_v2/locales/ko.js +196 -0
- package/widget/multimodal_v2/locales/nb.js +196 -0
- package/widget/multimodal_v2/locales/nl.js +196 -0
- package/widget/multimodal_v2/locales/pl.js +196 -0
- package/widget/multimodal_v2/locales/pt_BR.js +196 -0
- package/widget/multimodal_v2/locales/ru.js +196 -0
- package/widget/multimodal_v2/locales/sv.js +196 -0
- package/widget/multimodal_v2/locales/th.js +196 -0
- package/widget/multimodal_v2/locales/tr.js +196 -0
- package/widget/multimodal_v2/locales/vi.js +196 -0
- package/widget/multimodal_v2/locales/zh_CN.js +196 -0
- package/widget/multimodal_v2/locales/zh_TW.js +196 -0
- package/widget/multimodal_v2/multimodal.js +633 -0
- package/widget/multimodal_v2/multimodal_channel.js +195 -0
- package/widget/multimodal_v2/signals/active_conversation_signal.js +33 -0
- package/widget/multimodal_v2/signals/allowed_conversation_mode_signal.js +38 -0
- package/widget/multimodal_v2/signals/artifact_signal.js +22 -0
- package/widget/multimodal_v2/signals/layout_signal.js +98 -0
- package/widget/multimodal_v2/signals/messages_signal.js +207 -0
- package/widget/multimodal_v2/signals/ui_state_signal.js +128 -0
- package/widget/multimodal_v2/stable_bundle_src.js +44 -0
- package/widget/multimodal_v2/stores/ai_conversation_store.js +221 -0
- package/widget/multimodal_v2/stores/artifact_store.js +205 -0
- package/widget/multimodal_v2/stores/base_store.js +16 -0
- package/widget/multimodal_v2/stores/call_store.js +770 -0
- package/widget/multimodal_v2/stores/call_ui_adapter.js +225 -0
- package/widget/multimodal_v2/stores/debug_multimodal_scenario_store.js +471 -0
- package/widget/multimodal_v2/stores/decks_store.js +285 -0
- package/widget/multimodal_v2/stores/device_store.js +63 -0
- package/widget/multimodal_v2/stores/docking_store.js +62 -0
- package/widget/multimodal_v2/stores/field_request_store.js +326 -0
- package/widget/multimodal_v2/stores/meeting_store.js +477 -0
- package/widget/multimodal_v2/stores/participant_store.js +73 -0
- package/widget/multimodal_v2/stores/post_call_survey_store.js +160 -0
- package/widget/multimodal_v2/stores/pounce_tracking_store.js +163 -0
- package/widget/multimodal_v2/stores/pounce_tracking_store_v2.js +511 -0
- package/widget/multimodal_v2/stores/presentations_store.js +111 -0
- package/widget/multimodal_v2/stores/root_store.js +1919 -0
- package/widget/multimodal_v2/stores/screen_share_store.js +217 -0
- package/widget/multimodal_v2/stores/slides_store.js +21 -0
- package/widget/multimodal_v2/stores/translation_store.js +185 -0
- package/widget/multimodal_v2/stores/ui_store.js +496 -0
- package/widget/multimodal_v2/stores/waiting_store.js +159 -0
- package/widget/multimodal_v2/stores/website_navigation_store.js +767 -0
- package/widget/multimodal_v2/styled-system/css/conditions.js +34 -0
- package/widget/multimodal_v2/styled-system/css/css.js +48 -0
- package/widget/multimodal_v2/styled-system/css/cva.js +96 -0
- package/widget/multimodal_v2/styled-system/css/cx.js +13 -0
- package/widget/multimodal_v2/styled-system/css/index.js +15 -0
- package/widget/multimodal_v2/styled-system/css/sva.js +69 -0
- package/widget/multimodal_v2/styled-system/helpers.js +384 -0
- package/widget/multimodal_v2/styled-system/jsx/create-style-context.js +96 -0
- package/widget/multimodal_v2/styled-system/jsx/factory-helper.js +19 -0
- package/widget/multimodal_v2/styled-system/jsx/factory.js +111 -0
- package/widget/multimodal_v2/styled-system/jsx/index.js +12 -0
- package/widget/multimodal_v2/styled-system/jsx/is-valid-prop.js +22 -0
- package/widget/multimodal_v2/types.js +105 -0
- package/widget/multimodal_v2/utils/auto_scroller.js +157 -0
- package/widget/multimodal_v2/utils/flip_animation.js +124 -0
- package/widget/multimodal_v2/utils/focus_gate.js +237 -0
- package/widget/multimodal_v2/utils/locale.js +16 -0
- package/widget/multimodal_v2/utils/media_queries.js +30 -0
- package/widget/multimodal_v2/utils/multimodal_cache.js +19 -0
- package/widget/multimodal_v2/utils/mutation_effect.js +14 -0
- package/widget/multimodal_v2/utils/navigation_interceptor.js +205 -0
- package/widget/multimodal_v2/utils/navigation_strategies/dom_swap.js +393 -0
- package/widget/multimodal_v2/utils/navigation_strategies/index.js +12 -0
- package/widget/multimodal_v2/utils/navigation_strategies/lwr.js +61 -0
- package/widget/multimodal_v2/utils/navigation_strategies/navigation_utils.js +46 -0
- package/widget/multimodal_v2/utils/navigation_strategies/next_js.js +24 -0
- package/widget/multimodal_v2/utils/navigation_strategies/wouter_v3.js +15 -0
- package/widget/multimodal_v2/utils/objects_map.js +38 -0
- package/widget/multimodal_v2/utils/perceived_voice_turn_tracker.js +345 -0
- package/widget/multimodal_v2/utils/sanitize_html.js +132 -0
- package/widget/multimodal_v2/utils/signals.js +97 -0
- package/widget/multimodal_v2/utils/slide_zoom.js +114 -0
- package/widget/multimodal_v2/utils/theme_styles.js +137 -0
- package/widget/multimodal_v2/utils/url_observer.js +52 -0
- package/widget/multimodal_v2/utils/voice_onset_detector.js +127 -0
- package/widget/page_mirror.js +89 -0
- package/widget/page_view_activity_emitter.js +71 -0
- package/widget/pardot_visitor.js +137 -0
- package/widget/personalization_observer.js +96 -0
- package/widget/personalizations_config.js +160 -0
- package/widget/qualified_form/constants.js +23 -0
- package/widget/qualified_form/phone_utils.js +38 -0
- package/widget/qualified_form/qualified_form_action.js +91 -0
- package/widget/qualified_form/qualified_form_action_orchestrator.js +21 -0
- package/widget/qualified_form/qualified_form_api.js +471 -0
- package/widget/scroll_disabler.js +109 -0
- package/widget/server-logger.js +156 -0
- package/widget/smart_website_config.js +112 -0
- package/widget/telemetry/context.js +75 -0
- package/widget/telemetry/index.js +16 -0
- package/widget/telemetry/messenger_uptime.js +80 -0
- package/widget/telemetry/metrics.js +120 -0
- package/widget/telemetry/span.js +82 -0
- package/widget/telemetry/telemetry.js +180 -0
- package/widget/telemetry/tracer.js +41 -0
- package/widget/telemetry/tracing_store.js +310 -0
- package/widget/tracker.js +916 -0
- package/widget/utils/native_globals.js +129 -0
- package/widget/v1_adapter.js +50 -0
- package/widget/v2_adapter.js +368 -0
- package/widget/visitor/base_visitor_state.js +11 -0
- package/widget/visitor/cookie_visitor_state.js +128 -0
- package/widget/visitor/in_memory_visitor_state.js +29 -0
- package/widget/visitor/visitor_state.js +384 -0
- package/widget/visitor.js +356 -0
- package/widget/widget/linked_widget_v2.js +227 -0
- package/widget/widget/page_mirror_factory.js +22 -0
- package/widget/widget/sentry.js +130 -0
- package/widget/widget/widget.js +1698 -0
- package/widget/widget.split-css.js +2 -0
- package/widget/widget_bootstrap.js +97 -0
- package/widget/widget_object.js +73 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import "../css/index.js";
|
|
2
|
+
import "./factory.js";
|
|
3
|
+
import "./factory-helper.js";
|
|
4
|
+
import "../../../../js/multimodal_v2.js";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
function createStyleContext(recipe) {
|
|
13
|
+
const StyleContext = createContext({});
|
|
14
|
+
const isConfigRecipe = '__recipe__' in recipe;
|
|
15
|
+
const svaFn = isConfigRecipe ? recipe : sva(recipe.config);
|
|
16
|
+
const getResolvedProps = (props, slotStyles)=>{
|
|
17
|
+
const { unstyled } = props, restProps = _object_without_properties_loose(props, [
|
|
18
|
+
"unstyled"
|
|
19
|
+
]);
|
|
20
|
+
if (unstyled) return restProps;
|
|
21
|
+
if (isConfigRecipe) {
|
|
22
|
+
return _extends({}, restProps, {
|
|
23
|
+
className: cx(slotStyles, restProps.className)
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return _extends({}, restProps, {
|
|
27
|
+
css: css.raw(slotStyles, restProps.css)
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const withRootProvider = (Component, options)=>{
|
|
31
|
+
const WithRootProvider = (props)=>{
|
|
32
|
+
const [variantProps, otherProps] = svaFn.splitVariantProps(props);
|
|
33
|
+
const slotStyles = isConfigRecipe ? svaFn(variantProps) : svaFn.raw(variantProps);
|
|
34
|
+
slotStyles._classNameMap = svaFn.classNameMap;
|
|
35
|
+
const mergedProps = (options == null ? void 0 : options.defaultProps) ? _extends({}, options.defaultProps, otherProps) : otherProps;
|
|
36
|
+
return createElement(StyleContext.Provider, {
|
|
37
|
+
value: slotStyles,
|
|
38
|
+
children: createElement(Component, mergedProps)
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const componentName = getDisplayName(Component);
|
|
42
|
+
WithRootProvider.displayName = "withRootProvider(" + componentName + ")";
|
|
43
|
+
return WithRootProvider;
|
|
44
|
+
};
|
|
45
|
+
const withProvider = (Component, slot, options)=>{
|
|
46
|
+
const StyledComponent = styled(Component, {}, options);
|
|
47
|
+
const WithProvider = forwardRef((props, ref)=>{
|
|
48
|
+
var _restProps_className;
|
|
49
|
+
var _options_defaultProps;
|
|
50
|
+
const [variantProps, restProps] = svaFn.splitVariantProps(props);
|
|
51
|
+
const slotStyles = isConfigRecipe ? svaFn(variantProps) : svaFn.raw(variantProps);
|
|
52
|
+
slotStyles._classNameMap = svaFn.classNameMap;
|
|
53
|
+
const propsWithClass = _extends({}, restProps, {
|
|
54
|
+
className: (_restProps_className = restProps.className) != null ? _restProps_className : options == null ? void 0 : (_options_defaultProps = options.defaultProps) == null ? void 0 : _options_defaultProps.className
|
|
55
|
+
});
|
|
56
|
+
const resolvedProps = getResolvedProps(propsWithClass, slotStyles[slot]);
|
|
57
|
+
return createElement(StyleContext.Provider, {
|
|
58
|
+
value: slotStyles,
|
|
59
|
+
children: createElement(StyledComponent, _extends({}, resolvedProps, {
|
|
60
|
+
className: cx(resolvedProps.className, slotStyles._classNameMap[slot]),
|
|
61
|
+
ref
|
|
62
|
+
}))
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
const componentName = getDisplayName(Component);
|
|
66
|
+
WithProvider.displayName = "withProvider(" + componentName + ")";
|
|
67
|
+
return WithProvider;
|
|
68
|
+
};
|
|
69
|
+
const withContext = (Component, slot, options)=>{
|
|
70
|
+
const StyledComponent = styled(Component, {}, options);
|
|
71
|
+
const WithContext = forwardRef((props, ref)=>{
|
|
72
|
+
var _props_className;
|
|
73
|
+
var _options_defaultProps;
|
|
74
|
+
const slotStyles = useContext(StyleContext);
|
|
75
|
+
const propsWithClass = _extends({}, props, {
|
|
76
|
+
className: (_props_className = props.className) != null ? _props_className : options == null ? void 0 : (_options_defaultProps = options.defaultProps) == null ? void 0 : _options_defaultProps.className
|
|
77
|
+
});
|
|
78
|
+
const resolvedProps = getResolvedProps(propsWithClass, slotStyles[slot]);
|
|
79
|
+
return createElement(StyledComponent, _extends({}, resolvedProps, {
|
|
80
|
+
className: cx(resolvedProps.className, slotStyles._classNameMap[slot]),
|
|
81
|
+
ref
|
|
82
|
+
}));
|
|
83
|
+
});
|
|
84
|
+
const componentName = getDisplayName(Component);
|
|
85
|
+
WithContext.displayName = "withContext(" + componentName + ")";
|
|
86
|
+
return WithContext;
|
|
87
|
+
};
|
|
88
|
+
return {
|
|
89
|
+
withRootProvider,
|
|
90
|
+
withProvider,
|
|
91
|
+
withContext
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
var create_style_context_createStyleContext = /* unused export */ undefined;
|
|
96
|
+
export { create_style_context_createStyleContext as createStyleContext };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { isCssProperty } from "./is-valid-prop.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
const defaultShouldForwardProp = (prop, variantKeys)=>!variantKeys.includes(prop) && !isCssProperty(prop);
|
|
5
|
+
const composeShouldForwardProps = (tag, shouldForwardProp)=>tag.__shouldForwardProps__ && shouldForwardProp ? (propName)=>tag.__shouldForwardProps__(propName) && shouldForwardProp(propName) : shouldForwardProp;
|
|
6
|
+
const composeCvaFn = (cvaA, cvaB)=>{
|
|
7
|
+
if (cvaA && !cvaB) return cvaA;
|
|
8
|
+
if (!cvaA && cvaB) return cvaB;
|
|
9
|
+
if (cvaA.__cva__ && cvaB.__cva__ || cvaA.__recipe__ && cvaB.__recipe__) return cvaA.merge(cvaB);
|
|
10
|
+
const error = new TypeError('Cannot merge cva with recipe. Please use either cva or recipe.');
|
|
11
|
+
TypeError.captureStackTrace == null ? void 0 : TypeError.captureStackTrace.call(TypeError, error);
|
|
12
|
+
throw error;
|
|
13
|
+
};
|
|
14
|
+
const getDisplayName = (Component)=>{
|
|
15
|
+
if (typeof Component === 'string') return Component;
|
|
16
|
+
return (Component == null ? void 0 : Component.displayName) || (Component == null ? void 0 : Component.name) || 'Component';
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { composeCvaFn, composeShouldForwardProps, defaultShouldForwardProp, getDisplayName };
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { preact_module_, compat_module_D, hooks_module_T } from "../../../../js/multimodal_v2.js";
|
|
2
|
+
import { composeShouldForwardProps, getDisplayName, composeCvaFn, defaultShouldForwardProp } from "./factory-helper.js";
|
|
3
|
+
import { isCssProperty } from "./is-valid-prop.js";
|
|
4
|
+
import "../css/index.js";
|
|
5
|
+
import { splitProps, normalizeHTMLProps } from "../helpers.js";
|
|
6
|
+
import { _extends, _object_without_properties_loose } from "../../../../js/4101.js";
|
|
7
|
+
import { cva } from "../css/cva.js";
|
|
8
|
+
import { cx } from "../css/cx.js";
|
|
9
|
+
import { css as css_css } from "../css/css.js";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
function styledFn(Dynamic, configOrCva, options) {
|
|
21
|
+
if (configOrCva === void 0) configOrCva = {};
|
|
22
|
+
if (options === void 0) options = {};
|
|
23
|
+
const cvaFn = configOrCva.__cva__ || configOrCva.__recipe__ ? configOrCva : cva(configOrCva);
|
|
24
|
+
const forwardFn = options.shouldForwardProp || defaultShouldForwardProp;
|
|
25
|
+
const shouldForwardProp = (prop)=>{
|
|
26
|
+
var _options_forwardProps;
|
|
27
|
+
if ((_options_forwardProps = options.forwardProps) == null ? void 0 : _options_forwardProps.includes(prop)) return true;
|
|
28
|
+
return forwardFn(prop, cvaFn.variantKeys);
|
|
29
|
+
};
|
|
30
|
+
const defaultProps = Object.assign(options.dataAttr && configOrCva.__name__ ? {
|
|
31
|
+
'data-recipe': configOrCva.__name__
|
|
32
|
+
} : {}, options.defaultProps);
|
|
33
|
+
const __cvaFn__ = composeCvaFn(Dynamic.__cva__, cvaFn);
|
|
34
|
+
const __shouldForwardProps__ = composeShouldForwardProps(Dynamic, shouldForwardProp);
|
|
35
|
+
const __base__ = Dynamic.__base__ || Dynamic;
|
|
36
|
+
const StyledComponent = /* @__PURE__ */ compat_module_D(function StyledComponent(props, ref) {
|
|
37
|
+
const { as: Element = __base__, unstyled, children } = props, restProps = _object_without_properties_loose(props, [
|
|
38
|
+
"as",
|
|
39
|
+
"unstyled",
|
|
40
|
+
"children"
|
|
41
|
+
]);
|
|
42
|
+
const combinedProps = hooks_module_T(()=>Object.assign({}, defaultProps, restProps), [
|
|
43
|
+
restProps
|
|
44
|
+
]);
|
|
45
|
+
const [htmlProps, forwardedProps, variantProps, styleProps, elementProps] = hooks_module_T(()=>{
|
|
46
|
+
return splitProps(combinedProps, normalizeHTMLProps.keys, __shouldForwardProps__, __cvaFn__.variantKeys, isCssProperty);
|
|
47
|
+
}, [
|
|
48
|
+
combinedProps
|
|
49
|
+
]);
|
|
50
|
+
function getUnwrappedVariants() {
|
|
51
|
+
const result = {};
|
|
52
|
+
for(const key in variantProps){
|
|
53
|
+
const value = variantProps[key];
|
|
54
|
+
result[key] = value !== null && typeof value === 'object' && typeof value.valueOf === 'function' ? value.valueOf() : value;
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
function recipeClass() {
|
|
59
|
+
const { css: cssStyles } = styleProps, propStyles = _object_without_properties_loose(styleProps, [
|
|
60
|
+
"css"
|
|
61
|
+
]);
|
|
62
|
+
const unwrappedVariants = getUnwrappedVariants();
|
|
63
|
+
const compoundVariantStyles = __cvaFn__.__getCompoundVariantCss__ == null ? void 0 : __cvaFn__.__getCompoundVariantCss__.call(__cvaFn__, unwrappedVariants);
|
|
64
|
+
return cx(__cvaFn__(unwrappedVariants, false), css_css(compoundVariantStyles, propStyles, cssStyles), combinedProps.class, combinedProps.className);
|
|
65
|
+
}
|
|
66
|
+
function cvaClass() {
|
|
67
|
+
const { css: cssStyles } = styleProps, propStyles = _object_without_properties_loose(styleProps, [
|
|
68
|
+
"css"
|
|
69
|
+
]);
|
|
70
|
+
const unwrappedVariants = getUnwrappedVariants();
|
|
71
|
+
const cvaStyles = __cvaFn__.raw(unwrappedVariants);
|
|
72
|
+
return cx(css_css(cvaStyles, propStyles, cssStyles), combinedProps.class, combinedProps.className);
|
|
73
|
+
}
|
|
74
|
+
const classes = ()=>{
|
|
75
|
+
if (unstyled) {
|
|
76
|
+
const { css: cssStyles } = styleProps, propStyles = _object_without_properties_loose(styleProps, [
|
|
77
|
+
"css"
|
|
78
|
+
]);
|
|
79
|
+
return cx(css_css(propStyles, cssStyles), combinedProps.class, combinedProps.className);
|
|
80
|
+
}
|
|
81
|
+
return configOrCva.__recipe__ ? recipeClass() : cvaClass();
|
|
82
|
+
};
|
|
83
|
+
return preact_module_(Element, _extends({}, forwardedProps, elementProps, normalizeHTMLProps(htmlProps), {
|
|
84
|
+
ref,
|
|
85
|
+
className: classes()
|
|
86
|
+
}), children != null ? children : combinedProps.children);
|
|
87
|
+
});
|
|
88
|
+
const name = getDisplayName(__base__);
|
|
89
|
+
StyledComponent.displayName = "styled." + name;
|
|
90
|
+
StyledComponent.__cva__ = __cvaFn__;
|
|
91
|
+
StyledComponent.__base__ = __base__;
|
|
92
|
+
StyledComponent.__shouldForwardProps__ = shouldForwardProp;
|
|
93
|
+
return StyledComponent;
|
|
94
|
+
}
|
|
95
|
+
function createJsxFactory() {
|
|
96
|
+
const cache = new Map();
|
|
97
|
+
return new Proxy(styledFn, {
|
|
98
|
+
apply (_, __, args) {
|
|
99
|
+
return styledFn(...args);
|
|
100
|
+
},
|
|
101
|
+
get (_, el) {
|
|
102
|
+
if (!cache.has(el)) {
|
|
103
|
+
cache.set(el, styledFn(el));
|
|
104
|
+
}
|
|
105
|
+
return cache.get(el);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
const styled = /* @__PURE__ */ createJsxFactory();
|
|
110
|
+
|
|
111
|
+
export { styled };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import "./create-style-context.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var jsx_allCssProperties = /* unused export */ undefined;
|
|
8
|
+
var jsx_createStyleContext = /* unused export */ undefined;
|
|
9
|
+
var jsx_splitCssProps = /* unused export */ undefined;
|
|
10
|
+
export { jsx_allCssProperties as allCssProperties, jsx_createStyleContext as createStyleContext, jsx_splitCssProps as splitCssProps };
|
|
11
|
+
export { isCssProperty } from "./is-valid-prop.js";
|
|
12
|
+
export { styled } from "./factory.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import "../helpers.js";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// src/index.ts
|
|
5
|
+
var userGeneratedStr = "css";
|
|
6
|
+
var userGenerated = userGeneratedStr.split(",");
|
|
7
|
+
var cssPropertiesStr = "";
|
|
8
|
+
var allCssProperties = cssPropertiesStr.split(",").concat(userGenerated);
|
|
9
|
+
var properties = new Map(allCssProperties.map((prop)=>[
|
|
10
|
+
prop,
|
|
11
|
+
true
|
|
12
|
+
]));
|
|
13
|
+
var cssPropertySelectorRegex = /&|@/;
|
|
14
|
+
var isCssProperty = /* @__PURE__ */ (prop)=>{
|
|
15
|
+
return properties.has(prop) || prop.startsWith("--") || cssPropertySelectorRegex.test(prop);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const splitCssProps = (props)=>splitProps(props, isCssProperty);
|
|
19
|
+
|
|
20
|
+
var is_valid_prop_allCssProperties = /* unused export */ undefined;
|
|
21
|
+
var is_valid_prop_splitCssProps = /* unused export */ undefined;
|
|
22
|
+
export { isCssProperty, is_valid_prop_allCssProperties as allCssProperties, is_valid_prop_splitCssProps as splitCssProps };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// DO NOT CHANGE THE VALUES OF THE ENUMS
|
|
2
|
+
var types_DisplayMode = /*#__PURE__*/ function(DisplayMode) {
|
|
3
|
+
DisplayMode["SIDEBAR"] = "sidebar";
|
|
4
|
+
DisplayMode["DOCKED"] = "docked";
|
|
5
|
+
DisplayMode["COLLAPSED_CENTER"] = "collapsed_center";
|
|
6
|
+
DisplayMode["COLLAPSED_RIGHT"] = "collapsed_right";
|
|
7
|
+
DisplayMode["CLOSED"] = "closed";
|
|
8
|
+
return DisplayMode;
|
|
9
|
+
}({});
|
|
10
|
+
/**
|
|
11
|
+
* "Opened position" theme setting - determines which expanded mode to use.
|
|
12
|
+
* Maps to UI options: Pinned, Floating
|
|
13
|
+
*/ var types_OpenedDisplayMode = /*#__PURE__*/ function(OpenedDisplayMode) {
|
|
14
|
+
OpenedDisplayMode["DOCKED"] = "docked";
|
|
15
|
+
OpenedDisplayMode["SIDEBAR"] = "sidebar";
|
|
16
|
+
return OpenedDisplayMode;
|
|
17
|
+
}({});
|
|
18
|
+
var types_ConversationMode = /*#__PURE__*/ function(ConversationMode) {
|
|
19
|
+
ConversationMode["TEXT"] = "text";
|
|
20
|
+
ConversationMode["VOICE"] = "voice";
|
|
21
|
+
ConversationMode["VIDEO"] = "video";
|
|
22
|
+
return ConversationMode;
|
|
23
|
+
}({});
|
|
24
|
+
var types_CallMode = /*#__PURE__*/ (/* unused pure expression or super */ null && (function(CallMode) {
|
|
25
|
+
CallMode["VOICE"] = "voice";
|
|
26
|
+
CallMode["VIDEO"] = "video";
|
|
27
|
+
return CallMode;
|
|
28
|
+
}({})));
|
|
29
|
+
var types_InputState = /*#__PURE__*/ function(InputState) {
|
|
30
|
+
InputState["CHAT"] = "chat";
|
|
31
|
+
InputState["FIELD_REQUEST"] = "field_request";
|
|
32
|
+
InputState["HIDDEN"] = "hidden";
|
|
33
|
+
return InputState;
|
|
34
|
+
}({});
|
|
35
|
+
var types_InputHiddenReason = /*#__PURE__*/ function(InputHiddenReason) {
|
|
36
|
+
InputHiddenReason["VISITOR_BLOCKED"] = "visitor_blocked";
|
|
37
|
+
InputHiddenReason["REPS_OFFLINE"] = "reps_offline";
|
|
38
|
+
InputHiddenReason["CONVERSATION_NOT_STARTED"] = "conversation_not_started";
|
|
39
|
+
return InputHiddenReason;
|
|
40
|
+
}({});
|
|
41
|
+
var types_MaximizedState = /*#__PURE__*/ function(MaximizedState) {
|
|
42
|
+
MaximizedState["NONE"] = "none";
|
|
43
|
+
MaximizedState["MULTIMODAL"] = "multimodal";
|
|
44
|
+
MaximizedState["ARTIFACT"] = "artifact";
|
|
45
|
+
return MaximizedState;
|
|
46
|
+
}({});
|
|
47
|
+
var types_ButtonStyle = /*#__PURE__*/ function(ButtonStyle) {
|
|
48
|
+
ButtonStyle["Solid"] = "solid";
|
|
49
|
+
ButtonStyle["Outline"] = "outline";
|
|
50
|
+
ButtonStyle["Shade"] = "shade";
|
|
51
|
+
return ButtonStyle;
|
|
52
|
+
}({});
|
|
53
|
+
var types_ButtonShape = /*#__PURE__*/ function(ButtonShape) {
|
|
54
|
+
ButtonShape["Rectangle"] = "rectangle";
|
|
55
|
+
ButtonShape["Pill"] = "pill";
|
|
56
|
+
return ButtonShape;
|
|
57
|
+
}({});
|
|
58
|
+
/**
|
|
59
|
+
* LoadingState tracks which loading overlay (if any) is currently active.
|
|
60
|
+
* Used by RootStore signals and consumed by LoadingOverlay.
|
|
61
|
+
*
|
|
62
|
+
* NONE - no overlay shown
|
|
63
|
+
* LIGHTBOX - full-screen lightbox loading overlay
|
|
64
|
+
* MESSENGER - messenger-panel loading overlay
|
|
65
|
+
* INLINE - inline spinner (managed by PersonalizationManager; no overlay)
|
|
66
|
+
*/ var types_LoadingState = /*#__PURE__*/ function(LoadingState) {
|
|
67
|
+
LoadingState["NONE"] = "none";
|
|
68
|
+
LoadingState["LIGHTBOX"] = "lightbox";
|
|
69
|
+
LoadingState["MESSENGER"] = "messenger";
|
|
70
|
+
LoadingState["INLINE"] = "inline";
|
|
71
|
+
return LoadingState;
|
|
72
|
+
}({});
|
|
73
|
+
/**
|
|
74
|
+
* "Starting position" theme setting - determines the initial display mode when widget loads.
|
|
75
|
+
* Maps to UI options: Center, Right, Opened, Minimal
|
|
76
|
+
*/ var types_InitialDisplayMode = /*#__PURE__*/ function(InitialDisplayMode) {
|
|
77
|
+
InitialDisplayMode["COLLAPSED_CENTER"] = "collapsed_center";
|
|
78
|
+
InitialDisplayMode["COLLAPSED_RIGHT"] = "collapsed_right";
|
|
79
|
+
InitialDisplayMode["OPENED"] = "opened";
|
|
80
|
+
InitialDisplayMode["CLOSED"] = "closed";
|
|
81
|
+
return InitialDisplayMode;
|
|
82
|
+
}({});
|
|
83
|
+
/**
|
|
84
|
+
* Identifies what triggered a call start so the agent can open the call with the
|
|
85
|
+
* right intent (e.g. begin a presentation) instead of a generic greeting.
|
|
86
|
+
*/ var types_StartCallTrigger = /*#__PURE__*/ function(StartCallTrigger) {
|
|
87
|
+
StartCallTrigger["StartPresentation"] = "start_presentation";
|
|
88
|
+
StartCallTrigger["StartDeck"] = "start_deck";
|
|
89
|
+
return StartCallTrigger;
|
|
90
|
+
}({});
|
|
91
|
+
/**
|
|
92
|
+
* Which provider's video track is the authoritative avatar for the current call.
|
|
93
|
+
*
|
|
94
|
+
* Reported by Coffee via `coffeeStateUpdate`. On a Tavus call with failovers armed there are two
|
|
95
|
+
* candidate tracks -- the Tavus replica's, and the bot's own track that a committed Anam failover
|
|
96
|
+
* publishes to -- and the bot's exists from join but stays empty until cutover. Track presence
|
|
97
|
+
* therefore can't be used to pick between them; this can.
|
|
98
|
+
*/ var types_AvatarProvider = /*#__PURE__*/ function(AvatarProvider) {
|
|
99
|
+
AvatarProvider["TAVUS"] = "tavus";
|
|
100
|
+
AvatarProvider["ANAM"] = "anam";
|
|
101
|
+
return AvatarProvider;
|
|
102
|
+
}({});
|
|
103
|
+
|
|
104
|
+
var multimodal_v2_types_CallMode = /* unused export */ undefined;
|
|
105
|
+
export { multimodal_v2_types_CallMode as CallMode, types_AvatarProvider as AvatarProvider, types_ButtonShape as ButtonShape, types_ButtonStyle as ButtonStyle, types_ConversationMode as ConversationMode, types_DisplayMode as DisplayMode, types_InitialDisplayMode as InitialDisplayMode, types_InputHiddenReason as InputHiddenReason, types_InputState as InputState, types_LoadingState as LoadingState, types_MaximizedState as MaximizedState, types_OpenedDisplayMode as OpenedDisplayMode, types_StartCallTrigger as StartCallTrigger };
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { __webpack_require__ } from "../../../js/runtime.js";
|
|
2
|
+
import { signals_core_module_d } from "../../../js/multimodal_v2.js";
|
|
3
|
+
import { Disposable } from "../../../src/mixins/disposable.js";
|
|
4
|
+
import "../../utils/native_globals.js";
|
|
5
|
+
|
|
6
|
+
/* provided dependency */ var auto_scroller_clearTimeout = __webpack_require__(68034).Kj;
|
|
7
|
+
/* provided dependency */ var auto_scroller_setTimeout = __webpack_require__(68034).pS;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AutoScroller extends Disposable(class {
|
|
11
|
+
}) {
|
|
12
|
+
cleanup() {
|
|
13
|
+
this.mutationObserver.disconnect();
|
|
14
|
+
this.resizeObserver.disconnect();
|
|
15
|
+
this.container.removeEventListener("scroll", this.handleScroll);
|
|
16
|
+
this.container.removeEventListener("scrollend", this.handleScrollEnd);
|
|
17
|
+
this.container.removeEventListener("wheel", this.handleUserInteraction);
|
|
18
|
+
this.container.removeEventListener("touchmove", this.handleUserInteraction);
|
|
19
|
+
auto_scroller_clearTimeout(this.timeout);
|
|
20
|
+
}
|
|
21
|
+
queueScrollToBottom() {
|
|
22
|
+
if (this.isScrollLocked) return;
|
|
23
|
+
if (this.isUserScrolling.peek()) return;
|
|
24
|
+
if (this.timeout) return;
|
|
25
|
+
this.timeout = auto_scroller_setTimeout(()=>{
|
|
26
|
+
if (!this.isScrollLocked && !this.isUserScrolling.peek()) {
|
|
27
|
+
this.scrollToBottom(false);
|
|
28
|
+
}
|
|
29
|
+
this.timeout = undefined;
|
|
30
|
+
}, this.SCROLL_TO_BOTTOM_TIMEOUT_MS);
|
|
31
|
+
}
|
|
32
|
+
constructor(container){
|
|
33
|
+
super(), this.container = container, this.SCROLL_TO_BOTTOM_TIMEOUT_MS = 100, this.SCROLL_THRESHOLD = 50, this.isAutoScrolling = false, this.isUserInteracting = false, // Set after a clamped scroll, cleared when new content arrives (MutationObserver).
|
|
34
|
+
this.isScrollLocked = false, // away from the bottom (true) or at the bottom (false).
|
|
35
|
+
this.isUserScrolling = signals_core_module_d(false), this.scrollToBottom = (userInitiated)=>{
|
|
36
|
+
if (userInitiated === void 0) userInitiated = true;
|
|
37
|
+
const distanceFromBottom = this.container.scrollHeight - this.container.scrollTop - this.container.clientHeight;
|
|
38
|
+
if (distanceFromBottom === 0) return;
|
|
39
|
+
let targetScroll = this.container.scrollHeight;
|
|
40
|
+
// For auto-scrolling, clamp so the last child's top stays at the viewport top.
|
|
41
|
+
// Only clamp when all three conditions are met:
|
|
42
|
+
// 1. The message is taller than the viewport (short messages scroll to bottom)
|
|
43
|
+
// 2. The message has animated content (page reload renders without animation)
|
|
44
|
+
// 3. The message top is below the current scroll position
|
|
45
|
+
if (!userInitiated) {
|
|
46
|
+
const lastChild = this.container.lastElementChild;
|
|
47
|
+
if (lastChild && lastChild.offsetTop > this.container.scrollTop) {
|
|
48
|
+
const messageHeight = this.container.scrollHeight - lastChild.offsetTop;
|
|
49
|
+
const hasAnimation = !!lastChild.querySelector("[data-animated-word]");
|
|
50
|
+
if (messageHeight > this.container.clientHeight && hasAnimation) {
|
|
51
|
+
targetScroll = Math.min(targetScroll, lastChild.offsetTop);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const scrollDistance = targetScroll - this.container.scrollTop;
|
|
56
|
+
if (scrollDistance <= 0) return;
|
|
57
|
+
const behavior = scrollDistance < this.container.clientHeight ? "smooth" : "instant";
|
|
58
|
+
if (!userInitiated) {
|
|
59
|
+
this.isAutoScrolling = true;
|
|
60
|
+
}
|
|
61
|
+
if (userInitiated) {
|
|
62
|
+
this.isUserScrolling.value = false;
|
|
63
|
+
this.isScrollLocked = false;
|
|
64
|
+
}
|
|
65
|
+
this.container.scrollTo({
|
|
66
|
+
top: targetScroll,
|
|
67
|
+
behavior
|
|
68
|
+
});
|
|
69
|
+
// After a clamped auto-scroll, lock further auto-scrolling so the viewport
|
|
70
|
+
// doesn't chase growing content. The button only shows when there's enough
|
|
71
|
+
// content below to warrant it — for short messages/picklists, the lock
|
|
72
|
+
// prevents stickiness silently while updateScrollIndicator handles the button.
|
|
73
|
+
if (!userInitiated && targetScroll < this.container.scrollHeight) {
|
|
74
|
+
this.isScrollLocked = true;
|
|
75
|
+
const remainingDistance = this.container.scrollHeight - targetScroll - this.container.clientHeight;
|
|
76
|
+
if (remainingDistance > this.SCROLL_THRESHOLD) {
|
|
77
|
+
this.isUserScrolling.value = true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}, this.updateScrollIndicator = ()=>{
|
|
81
|
+
const distanceFromBottom = this.container.scrollHeight - this.container.scrollTop - this.container.clientHeight;
|
|
82
|
+
this.isUserScrolling.value = distanceFromBottom > this.SCROLL_THRESHOLD;
|
|
83
|
+
}, this.handleScroll = ()=>{
|
|
84
|
+
if (this.isAutoScrolling) return;
|
|
85
|
+
if (!this.isUserInteracting) return;
|
|
86
|
+
const distanceFromBottom = this.container.scrollHeight - this.container.scrollTop - this.container.clientHeight;
|
|
87
|
+
this.isUserScrolling.value = distanceFromBottom > this.SCROLL_THRESHOLD;
|
|
88
|
+
// User manually scrolling away from the bottom takes over from any
|
|
89
|
+
// auto-scroller lock — they're in control now.
|
|
90
|
+
if (distanceFromBottom > this.SCROLL_THRESHOLD) {
|
|
91
|
+
this.isScrollLocked = false;
|
|
92
|
+
}
|
|
93
|
+
}, this.handleScrollEnd = ()=>{
|
|
94
|
+
this.isAutoScrolling = false;
|
|
95
|
+
this.isUserInteracting = false;
|
|
96
|
+
}, this.handleUserInteraction = ()=>{
|
|
97
|
+
this.isUserInteracting = true;
|
|
98
|
+
if (this.isAutoScrolling) {
|
|
99
|
+
this.isAutoScrolling = false;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
this.container.addEventListener("scroll", this.handleScroll, {
|
|
103
|
+
passive: true
|
|
104
|
+
});
|
|
105
|
+
this.container.addEventListener("scrollend", this.handleScrollEnd, {
|
|
106
|
+
passive: true
|
|
107
|
+
});
|
|
108
|
+
this.container.addEventListener("wheel", this.handleUserInteraction, {
|
|
109
|
+
passive: true
|
|
110
|
+
});
|
|
111
|
+
this.container.addEventListener("touchmove", this.handleUserInteraction, {
|
|
112
|
+
passive: true
|
|
113
|
+
});
|
|
114
|
+
this.resizeObserver = new ResizeObserver(()=>{
|
|
115
|
+
if (this.isScrollLocked) {
|
|
116
|
+
this.updateScrollIndicator();
|
|
117
|
+
}
|
|
118
|
+
this.queueScrollToBottom();
|
|
119
|
+
});
|
|
120
|
+
this.mutationObserver = new MutationObserver((mutations)=>{
|
|
121
|
+
// Clear the scroll lock when actual content changes (new messages, thinking
|
|
122
|
+
// indicator) but not when the ScrollButtonWrapper toggles — that would loop.
|
|
123
|
+
const isOnlyScrollButton = mutations.every((m)=>[
|
|
124
|
+
...m.addedNodes,
|
|
125
|
+
...m.removedNodes
|
|
126
|
+
].every((node)=>node instanceof HTMLElement && node.dataset.componentName === "Timeline.ScrollButtonWrapper"));
|
|
127
|
+
if (!isOnlyScrollButton) {
|
|
128
|
+
const wasLocked = this.isScrollLocked;
|
|
129
|
+
this.isScrollLocked = false;
|
|
130
|
+
// Clear isUserScrolling if the user is at the bottom OR if the lock was
|
|
131
|
+
// set by a clamped auto-scroll (not by the user manually scrolling up).
|
|
132
|
+
// This ensures auto-scroll resumes after animation without yanking users
|
|
133
|
+
// who have genuinely scrolled up to read previous messages.
|
|
134
|
+
const distanceFromBottom = this.container.scrollHeight - this.container.scrollTop - this.container.clientHeight;
|
|
135
|
+
if (distanceFromBottom <= this.SCROLL_THRESHOLD || wasLocked) {
|
|
136
|
+
this.isUserScrolling.value = false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
this.queueScrollToBottom();
|
|
140
|
+
this.resizeObserver.disconnect();
|
|
141
|
+
this.resizeObserver.observe(this.container);
|
|
142
|
+
for (const child of this.container.children){
|
|
143
|
+
this.resizeObserver.observe(child);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
this.resizeObserver.observe(this.container);
|
|
147
|
+
for (const child of this.container.children){
|
|
148
|
+
this.resizeObserver.observe(child);
|
|
149
|
+
}
|
|
150
|
+
this.mutationObserver.observe(this.container, {
|
|
151
|
+
childList: true
|
|
152
|
+
});
|
|
153
|
+
this.queueScrollToBottom();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export { AutoScroller };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { __webpack_require__ } from "../../../js/runtime.js";
|
|
2
|
+
import { MULTIMODAL_HOST_ID } from "../constants.js";
|
|
3
|
+
import "../../utils/native_globals.js";
|
|
4
|
+
|
|
5
|
+
/* provided dependency */ var requestAnimationFrame = __webpack_require__(68034).gj;
|
|
6
|
+
|
|
7
|
+
let isWithinFlipAnimation = false;
|
|
8
|
+
/**
|
|
9
|
+
* Wraps a signal to trigger FLIP animations when its value changes.
|
|
10
|
+
* When the wrapped signal's value is set, it captures the state of all [data-flip]
|
|
11
|
+
* elements, applies the change, and animates the elements to their new positions.
|
|
12
|
+
*
|
|
13
|
+
* @param signal - The signal to wrap with FLIP animation behavior
|
|
14
|
+
* @returns A proxied signal that triggers animations on value changes
|
|
15
|
+
*/ function withFlipAnimation(signal) {
|
|
16
|
+
return new Proxy(signal, {
|
|
17
|
+
get (target, prop, receiver) {
|
|
18
|
+
return Reflect.get(target, prop, receiver);
|
|
19
|
+
},
|
|
20
|
+
set (target, prop, value, receiver) {
|
|
21
|
+
if (prop === "value" && value !== target.peek()) {
|
|
22
|
+
withinFlipAnimation(()=>{
|
|
23
|
+
Reflect.set(target, prop, value, receiver);
|
|
24
|
+
});
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
return Reflect.set(target, prop, value, receiver);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* FLIP animation utility for smooth position/size transitions.
|
|
33
|
+
*
|
|
34
|
+
* Animates elements marked with [data-flip] when their position changes
|
|
35
|
+
* (e.g., static <-> fixed).
|
|
36
|
+
*
|
|
37
|
+
* Limitation: Elements using [data-flip] should not have CSS `transform` applied.
|
|
38
|
+
* Use the separate `translate` CSS property instead for positioning, as it won't
|
|
39
|
+
* conflict with the animation's transform.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* // Instead of:
|
|
43
|
+
* transform: translateY(-50%);
|
|
44
|
+
*
|
|
45
|
+
* // Use:
|
|
46
|
+
* translate: 0 -50%;
|
|
47
|
+
*/ async function withinFlipAnimation(fn) {
|
|
48
|
+
var _document_getElementById;
|
|
49
|
+
if (isWithinFlipAnimation) {
|
|
50
|
+
fn();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const root = (_document_getElementById = document.getElementById(MULTIMODAL_HOST_ID)) == null ? void 0 : _document_getElementById.shadowRoot;
|
|
54
|
+
if (!root) {
|
|
55
|
+
fn();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const elements = root.querySelectorAll("[data-flip]");
|
|
59
|
+
if (elements.length === 0) {
|
|
60
|
+
fn();
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const initialState = new WeakMap();
|
|
64
|
+
elements.forEach((el)=>{
|
|
65
|
+
initialState.set(el, captureFlipState(el));
|
|
66
|
+
});
|
|
67
|
+
isWithinFlipAnimation = true;
|
|
68
|
+
try {
|
|
69
|
+
fn();
|
|
70
|
+
await new Promise((r)=>queueMicrotask(r));
|
|
71
|
+
} finally{
|
|
72
|
+
isWithinFlipAnimation = false;
|
|
73
|
+
}
|
|
74
|
+
requestAnimationFrame(()=>{
|
|
75
|
+
const finalState = new WeakMap();
|
|
76
|
+
elements.forEach((el)=>{
|
|
77
|
+
finalState.set(el, captureFlipState(el));
|
|
78
|
+
});
|
|
79
|
+
elements.forEach((el)=>{
|
|
80
|
+
const first = initialState.get(el);
|
|
81
|
+
const last = finalState.get(el);
|
|
82
|
+
if (!first || !last || first.position === last.position) return;
|
|
83
|
+
const delta = calculateFlipDelta(first, last);
|
|
84
|
+
if (!delta) return;
|
|
85
|
+
el.animate([
|
|
86
|
+
{
|
|
87
|
+
transform: "translate(" + delta.x + "px, " + delta.y + "px) scale(" + delta.scaleX + ", " + delta.scaleY + ")",
|
|
88
|
+
transformOrigin: "top left"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
transform: "none",
|
|
92
|
+
transformOrigin: "top left"
|
|
93
|
+
}
|
|
94
|
+
], {
|
|
95
|
+
duration: 300,
|
|
96
|
+
easing: "ease-out"
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
function captureFlipState(el) {
|
|
102
|
+
return {
|
|
103
|
+
rect: el.getBoundingClientRect(),
|
|
104
|
+
position: getComputedStyle(el).position
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function calculateFlipDelta(first, last) {
|
|
108
|
+
const x = first.rect.left - last.rect.left;
|
|
109
|
+
const y = first.rect.top - last.rect.top;
|
|
110
|
+
const scaleX = first.rect.width / last.rect.width || 1;
|
|
111
|
+
const scaleY = first.rect.height / last.rect.height || 1;
|
|
112
|
+
const hasMovement = Math.abs(x) >= 1 || Math.abs(y) >= 1;
|
|
113
|
+
const hasScale = Math.abs(scaleX - 1) >= 0.01 || Math.abs(scaleY - 1) >= 0.01;
|
|
114
|
+
if (!hasMovement && !hasScale) return null;
|
|
115
|
+
return {
|
|
116
|
+
x,
|
|
117
|
+
y,
|
|
118
|
+
scaleX,
|
|
119
|
+
scaleY
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var flip_animation_withinFlipAnimation = /* unused export */ undefined;
|
|
124
|
+
export { flip_animation_withinFlipAnimation as withinFlipAnimation, withFlipAnimation };
|