@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.
Files changed (560) hide show
  1. package/41842993ec71d6628e4949e9a22b146b.svg +3 -0
  2. package/7271f3433ed82fc7f56adcd9e30275f4.svg +17 -0
  3. package/LICENSE.txt +82 -0
  4. package/components/helpers/entriesStringValidations.js +69 -0
  5. package/components/helpers/languages.js +32 -0
  6. package/components/shared/assertUnreachable.js +5 -0
  7. package/components/shared/controls/imageCropperHelpers.js +43 -0
  8. package/components/shared/meetingLoadingProgressSpec.js +116 -0
  9. package/constants.generated.js +9883 -0
  10. package/css/widget/multimodal_v2/host.split-css.css +162 -0
  11. package/css/widget/multimodal_v2/index.split-css.panda.css +5240 -0
  12. package/css/widget/widget.split-css.css +100 -0
  13. package/fonts/inter/Inter-Black.woff +0 -0
  14. package/fonts/inter/Inter-Black.woff2 +0 -0
  15. package/fonts/inter/Inter-BlackItalic.woff +0 -0
  16. package/fonts/inter/Inter-BlackItalic.woff2 +0 -0
  17. package/fonts/inter/Inter-Bold.woff +0 -0
  18. package/fonts/inter/Inter-Bold.woff2 +0 -0
  19. package/fonts/inter/Inter-BoldItalic.woff +0 -0
  20. package/fonts/inter/Inter-BoldItalic.woff2 +0 -0
  21. package/fonts/inter/Inter-ExtraBold.woff +0 -0
  22. package/fonts/inter/Inter-ExtraBold.woff2 +0 -0
  23. package/fonts/inter/Inter-ExtraBoldItalic.woff +0 -0
  24. package/fonts/inter/Inter-ExtraBoldItalic.woff2 +0 -0
  25. package/fonts/inter/Inter-ExtraLight.woff +0 -0
  26. package/fonts/inter/Inter-ExtraLight.woff2 +0 -0
  27. package/fonts/inter/Inter-ExtraLightItalic.woff +0 -0
  28. package/fonts/inter/Inter-ExtraLightItalic.woff2 +0 -0
  29. package/fonts/inter/Inter-Italic.woff +0 -0
  30. package/fonts/inter/Inter-Italic.woff2 +0 -0
  31. package/fonts/inter/Inter-Light.woff +0 -0
  32. package/fonts/inter/Inter-Light.woff2 +0 -0
  33. package/fonts/inter/Inter-LightItalic.woff +0 -0
  34. package/fonts/inter/Inter-LightItalic.woff2 +0 -0
  35. package/fonts/inter/Inter-Medium.woff +0 -0
  36. package/fonts/inter/Inter-Medium.woff2 +0 -0
  37. package/fonts/inter/Inter-MediumItalic.woff +0 -0
  38. package/fonts/inter/Inter-MediumItalic.woff2 +0 -0
  39. package/fonts/inter/Inter-Regular.woff +0 -0
  40. package/fonts/inter/Inter-Regular.woff2 +0 -0
  41. package/fonts/inter/Inter-SemiBold.woff +0 -0
  42. package/fonts/inter/Inter-SemiBold.woff2 +0 -0
  43. package/fonts/inter/Inter-SemiBoldItalic.woff +0 -0
  44. package/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
  45. package/fonts/inter/Inter-Thin.woff +0 -0
  46. package/fonts/inter/Inter-Thin.woff2 +0 -0
  47. package/fonts/inter/Inter-ThinItalic.woff +0 -0
  48. package/fonts/inter/Inter-ThinItalic.woff2 +0 -0
  49. package/fonts/inter/Inter-italic.var.woff2 +0 -0
  50. package/fonts/inter/Inter-roman.var.woff2 +0 -0
  51. package/images/close.js +63 -0
  52. package/images/logo.js +22 -0
  53. package/js/4101.js +19721 -0
  54. package/js/daily-esm.js +9948 -0
  55. package/js/date-fns.js +427 -0
  56. package/js/multimodal_v2.js +1653 -0
  57. package/js/runtime.js +109 -0
  58. package/media/Inter-Black.796be8d8bf.woff2 +0 -0
  59. package/media/Inter-Black.b254104c56.woff +0 -0
  60. package/media/Inter-BlackItalic.70306b0eae.woff +0 -0
  61. package/media/Inter-BlackItalic.752f1e0aaa.woff2 +0 -0
  62. package/media/Inter-Bold.579e0f95ca.woff2 +0 -0
  63. package/media/Inter-Bold.b1234477a5.woff +0 -0
  64. package/media/Inter-BoldItalic.3d0d804323.woff +0 -0
  65. package/media/Inter-BoldItalic.828a494e04.woff2 +0 -0
  66. package/media/Inter-ExtraBold.208a9e6c99.woff +0 -0
  67. package/media/Inter-ExtraBold.d65f028165.woff2 +0 -0
  68. package/media/Inter-ExtraBoldItalic.30429962ec.woff +0 -0
  69. package/media/Inter-ExtraBoldItalic.8c7eac5ce3.woff2 +0 -0
  70. package/media/Inter-ExtraLight.15c082a57d.woff +0 -0
  71. package/media/Inter-ExtraLight.6824177d1e.woff2 +0 -0
  72. package/media/Inter-ExtraLightItalic.05138dddf3.woff2 +0 -0
  73. package/media/Inter-ExtraLightItalic.3beee54f59.woff +0 -0
  74. package/media/Inter-Italic.9beab78452.woff +0 -0
  75. package/media/Inter-Italic.d593a8df79.woff2 +0 -0
  76. package/media/Inter-Light.27083fa637.woff2 +0 -0
  77. package/media/Inter-Light.91dfddd842.woff +0 -0
  78. package/media/Inter-LightItalic.0a783b89b3.woff2 +0 -0
  79. package/media/Inter-LightItalic.f8ccf2813f.woff +0 -0
  80. package/media/Inter-Medium.dc792b508e.woff2 +0 -0
  81. package/media/Inter-Medium.ec7dd2d9d8.woff +0 -0
  82. package/media/Inter-MediumItalic.17301e5b40.woff +0 -0
  83. package/media/Inter-MediumItalic.84d3493a9f.woff2 +0 -0
  84. package/media/Inter-Regular.f1f0c35b32.woff2 +0 -0
  85. package/media/Inter-Regular.f356e84aa0.woff +0 -0
  86. package/media/Inter-SemiBold.55027e4724.woff +0 -0
  87. package/media/Inter-SemiBold.fcb100c760.woff2 +0 -0
  88. package/media/Inter-SemiBoldItalic.ab9105ed3b.woff +0 -0
  89. package/media/Inter-SemiBoldItalic.d90f295d0c.woff2 +0 -0
  90. package/media/Inter-Thin.16325d9b0f.woff +0 -0
  91. package/media/Inter-Thin.dafaa44d99.woff2 +0 -0
  92. package/media/Inter-ThinItalic.4fc662b3cf.woff2 +0 -0
  93. package/media/Inter-ThinItalic.d3d8994788.woff +0 -0
  94. package/media/Inter-italic.var.958a0b9742.woff2 +0 -0
  95. package/media/Inter-roman.var.b2129c009c.woff2 +0 -0
  96. package/package.json +20 -0
  97. package/packs/widget/api/docking/docking_host.js +97 -0
  98. package/packs/widget/api/docking/index.js +294 -0
  99. package/packs/widget/api/docking/shared.js +164 -0
  100. package/packs/widget/api/docking/viewport_lock.js +488 -0
  101. package/packs/widget/api/docking/viewport_resize.js +1203 -0
  102. package/packs/widget/esm/fonts/Inter-Black.796be8d8bf.woff2 +0 -0
  103. package/packs/widget/esm/fonts/Inter-Black.b254104c56.woff +0 -0
  104. package/packs/widget/esm/fonts/Inter-BlackItalic.70306b0eae.woff +0 -0
  105. package/packs/widget/esm/fonts/Inter-BlackItalic.752f1e0aaa.woff2 +0 -0
  106. package/packs/widget/esm/fonts/Inter-Bold.579e0f95ca.woff2 +0 -0
  107. package/packs/widget/esm/fonts/Inter-Bold.b1234477a5.woff +0 -0
  108. package/packs/widget/esm/fonts/Inter-BoldItalic.3d0d804323.woff +0 -0
  109. package/packs/widget/esm/fonts/Inter-BoldItalic.828a494e04.woff2 +0 -0
  110. package/packs/widget/esm/fonts/Inter-ExtraBold.208a9e6c99.woff +0 -0
  111. package/packs/widget/esm/fonts/Inter-ExtraBold.d65f028165.woff2 +0 -0
  112. package/packs/widget/esm/fonts/Inter-ExtraBoldItalic.30429962ec.woff +0 -0
  113. package/packs/widget/esm/fonts/Inter-ExtraBoldItalic.8c7eac5ce3.woff2 +0 -0
  114. package/packs/widget/esm/fonts/Inter-ExtraLight.15c082a57d.woff +0 -0
  115. package/packs/widget/esm/fonts/Inter-ExtraLight.6824177d1e.woff2 +0 -0
  116. package/packs/widget/esm/fonts/Inter-ExtraLightItalic.05138dddf3.woff2 +0 -0
  117. package/packs/widget/esm/fonts/Inter-ExtraLightItalic.3beee54f59.woff +0 -0
  118. package/packs/widget/esm/fonts/Inter-Italic.9beab78452.woff +0 -0
  119. package/packs/widget/esm/fonts/Inter-Italic.d593a8df79.woff2 +0 -0
  120. package/packs/widget/esm/fonts/Inter-Light.27083fa637.woff2 +0 -0
  121. package/packs/widget/esm/fonts/Inter-Light.91dfddd842.woff +0 -0
  122. package/packs/widget/esm/fonts/Inter-LightItalic.0a783b89b3.woff2 +0 -0
  123. package/packs/widget/esm/fonts/Inter-LightItalic.f8ccf2813f.woff +0 -0
  124. package/packs/widget/esm/fonts/Inter-Medium.dc792b508e.woff2 +0 -0
  125. package/packs/widget/esm/fonts/Inter-Medium.ec7dd2d9d8.woff +0 -0
  126. package/packs/widget/esm/fonts/Inter-MediumItalic.17301e5b40.woff +0 -0
  127. package/packs/widget/esm/fonts/Inter-MediumItalic.84d3493a9f.woff2 +0 -0
  128. package/packs/widget/esm/fonts/Inter-Regular.f1f0c35b32.woff2 +0 -0
  129. package/packs/widget/esm/fonts/Inter-Regular.f356e84aa0.woff +0 -0
  130. package/packs/widget/esm/fonts/Inter-SemiBold.55027e4724.woff +0 -0
  131. package/packs/widget/esm/fonts/Inter-SemiBold.fcb100c760.woff2 +0 -0
  132. package/packs/widget/esm/fonts/Inter-SemiBoldItalic.ab9105ed3b.woff +0 -0
  133. package/packs/widget/esm/fonts/Inter-SemiBoldItalic.d90f295d0c.woff2 +0 -0
  134. package/packs/widget/esm/fonts/Inter-Thin.16325d9b0f.woff +0 -0
  135. package/packs/widget/esm/fonts/Inter-Thin.dafaa44d99.woff2 +0 -0
  136. package/packs/widget/esm/fonts/Inter-ThinItalic.4fc662b3cf.woff2 +0 -0
  137. package/packs/widget/esm/fonts/Inter-ThinItalic.d3d8994788.woff +0 -0
  138. package/packs/widget/esm/fonts/Inter-italic.var.958a0b9742.woff2 +0 -0
  139. package/packs/widget/esm/fonts/Inter-roman.var.b2129c009c.woff2 +0 -0
  140. package/packs/widget/esm/index.js +183 -0
  141. package/packs/widget/esm/qualified.css +5502 -0
  142. package/routes/app/offers/scripts/OfferMainScript.js +154 -0
  143. package/routes/app/offers/scripts/constants.js +71 -0
  144. package/routes/app/offers/scripts/main/ButtonManager.js +65 -0
  145. package/routes/app/offers/scripts/main/FormManager.js +325 -0
  146. package/routes/app/offers/scripts/main/MainContext.js +19 -0
  147. package/routes/app/offers/scripts/main/OfferManager.js +91 -0
  148. package/routes/app/offers/scripts/main/TriggerManager.js +125 -0
  149. package/routes/app/offers/scripts/rendering/ContentManager.js +53 -0
  150. package/routes/app/offers/scripts/rendering/LocationManager.js +83 -0
  151. package/routes/app/offers/scripts/rendering/RenderedOffer.js +188 -0
  152. package/routes/app/offers/scripts/rendering/Renderer.js +69 -0
  153. package/routes/app/offers/scripts/rendering/RenderingInitializer.js +62 -0
  154. package/routes/app/offers/scripts/rendering/animations/AnimationManager.js +31 -0
  155. package/routes/app/offers/scripts/rendering/animations/AnimationManagerFooter.js +81 -0
  156. package/routes/app/offers/scripts/rendering/animations/AnimationManagerHeader.js +81 -0
  157. package/routes/app/offers/scripts/rendering/animations/AnimationManagerModal.js +117 -0
  158. package/routes/app/offers/scripts/rendering/animations/AnimationManagerSidebar.js +75 -0
  159. package/routes/app/offers/scripts/rendering/animations/AnimationResult.js +43 -0
  160. package/routes/app/offers/scripts/rendering/animations/Animator.js +78 -0
  161. package/routes/app/offers/scripts/rendering/animations/BaseAnimationManager.js +25 -0
  162. package/routes/app/offers/scripts/rendering/lib/BaseComponent.js +106 -0
  163. package/routes/app/offers/scripts/rendering/lib/FormComponent.js +134 -0
  164. package/routes/app/offers/scripts/rendering/lib/OfferComponent.js +144 -0
  165. package/routes/app/offers/scripts/rendering/lib/ScrollbarWidth.js +27 -0
  166. package/routes/app/offers/scripts/rendering/lib/decorators.js +20 -0
  167. package/routes/app/offers/scripts/rendering/locations/CSSVarsManager.js +66 -0
  168. package/routes/app/offers/scripts/rendering/locations/ElementResizeObserver.js +49 -0
  169. package/routes/app/offers/scripts/rendering/locations/footer.js +53 -0
  170. package/routes/app/offers/scripts/rendering/locations/header/AsyncBatchProcessor.js +70 -0
  171. package/routes/app/offers/scripts/rendering/locations/header/CSSTransitionObserver.js +182 -0
  172. package/routes/app/offers/scripts/rendering/locations/header/ElementStyleChangeObserver.js +138 -0
  173. package/routes/app/offers/scripts/rendering/locations/header/ExternalStyleManager.js +110 -0
  174. package/routes/app/offers/scripts/rendering/locations/header/Header.js +353 -0
  175. package/routes/app/offers/scripts/rendering/locations/header/InlineStyleManager.js +105 -0
  176. package/routes/app/offers/scripts/rendering/locations/header/MatchingElementsObserver.js +107 -0
  177. package/routes/app/offers/scripts/rendering/locations/header/NewElementsObserver.js +129 -0
  178. package/routes/app/offers/scripts/rendering/locations/header/RuleWrapper.js +46 -0
  179. package/routes/app/offers/scripts/rendering/locations/header/SelectorObservable.js +23 -0
  180. package/routes/app/offers/scripts/rendering/locations/header/SelectorObserver.js +61 -0
  181. package/routes/app/offers/scripts/rendering/locations/header/ShiftedElementsManager.js +45 -0
  182. package/routes/app/offers/scripts/rendering/locations/header/StyleElementManager.js +37 -0
  183. package/routes/app/offers/scripts/rendering/locations/header/StyleElementWrapper.js +62 -0
  184. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/ObservedSelectorValue.js +45 -0
  185. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/ObservedSelectors.js +62 -0
  186. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/StyleSelectorObserver.js +294 -0
  187. package/routes/app/offers/scripts/rendering/locations/header/StyleSelectorObserver/constants.js +21 -0
  188. package/routes/app/offers/scripts/rendering/locations/header/WindowResizeObserver.js +43 -0
  189. package/routes/app/offers/scripts/rendering/locations/header/utils.js +25 -0
  190. package/routes/app/offers/scripts/rendering/locations/popup.js +66 -0
  191. package/routes/app/offers/scripts/rendering/locations/sidebar.js +21 -0
  192. package/routes/app/offers/scripts/rendering/variations/ButtonBanner.js +105 -0
  193. package/routes/app/offers/scripts/rendering/variations/ButtonModal.js +114 -0
  194. package/routes/app/offers/scripts/rendering/variations/FormBanner.js +214 -0
  195. package/routes/app/offers/scripts/rendering/variations/FormModal.js +325 -0
  196. package/routes/app/offers/scripts/rendering/variations/LinkBanner.js +105 -0
  197. package/routes/app/offers/scripts/rendering/variations/components/Body.js +29 -0
  198. package/routes/app/offers/scripts/rendering/variations/components/Button.js +128 -0
  199. package/routes/app/offers/scripts/rendering/variations/components/DismissButton.js +39 -0
  200. package/routes/app/offers/scripts/rendering/variations/components/ForegroundImageBanner.js +110 -0
  201. package/routes/app/offers/scripts/rendering/variations/components/ForegroundImageModal.js +128 -0
  202. package/routes/app/offers/scripts/rendering/variations/components/Headline.js +94 -0
  203. package/routes/app/offers/scripts/rendering/variations/components/MultiFieldForm.js +302 -0
  204. package/routes/app/offers/scripts/rendering/variations/components/Tooltip.js +74 -0
  205. package/routes/app/offers/scripts/rendering/variations/icons.js +15 -0
  206. package/routes/app/offers/scripts/utils.js +115 -0
  207. package/routes/app/offers/utils/HTMLUtils.js +10 -0
  208. package/routes/app/offers/utils/createTypeGuard.js +32 -0
  209. package/routes/app/offers/utils/promise-utils.js +22 -0
  210. package/routes/app/websiteBuilder/stores/storeHelpers.js +18 -0
  211. package/sounds/message-initial.mp3 +0 -0
  212. package/sounds/message-received.mp3 +0 -0
  213. package/sounds/message-sent.mp3 +0 -0
  214. package/src/arrays.js +15 -0
  215. package/src/audio.js +106 -0
  216. package/src/bounded-set.js +16 -0
  217. package/src/bounding_box_observer.js +129 -0
  218. package/src/decorators.js +29 -0
  219. package/src/dom.js +128 -0
  220. package/src/dom_roots.js +26 -0
  221. package/src/embedded_forms/EmbeddedForm.js +638 -0
  222. package/src/embedded_forms/QualifiedEmbeddedForm.js +51 -0
  223. package/src/embedded_forms/QualifiedFormField.js +137 -0
  224. package/src/embedded_forms/utils.js +17 -0
  225. package/src/graphql-types.js +1686 -0
  226. package/src/iframes.js +86 -0
  227. package/src/localstorage.js +43 -0
  228. package/src/mirror/Shipper.js +133 -0
  229. package/src/mirror/constants.generated.js +13 -0
  230. package/src/mirror/constants.js +238 -0
  231. package/src/mirror/shipper/ChangeQueue.js +155 -0
  232. package/src/mirror/shipper/DOMSerializer.js +392 -0
  233. package/src/mirror/shipper/observers.js +441 -0
  234. package/src/mirror/shipper/utils.js +98 -0
  235. package/src/mixins/disposable.js +125 -0
  236. package/src/mixins/injectable.js +37 -0
  237. package/src/personalizations/personalization-manager.js +110 -0
  238. package/src/personalizations/strategies/node-freezing-strategy.js +174 -0
  239. package/src/personalizations/utils.js +187 -0
  240. package/src/promises.js +107 -0
  241. package/src/proxy.js +144 -0
  242. package/src/qualified_root.js +35 -0
  243. package/src/query_params.js +55 -0
  244. package/src/shadow-dom-helper.js +63 -0
  245. package/src/singleton_host.js +39 -0
  246. package/src/smart_website/trigger.js +49 -0
  247. package/src/smart_website/utils.js +149 -0
  248. package/src/string.js +53 -0
  249. package/src/timezone.js +57 -0
  250. package/src/timing.js +49 -0
  251. package/src/type-utils.js +76 -0
  252. package/src/url-utils.js +102 -0
  253. package/src/url.js +50 -0
  254. package/src/utils.js +72 -0
  255. package/src/validation.js.js +29 -0
  256. package/src/validation_ts.js +6 -0
  257. package/vendor/actioncable/adapters.js +6 -0
  258. package/vendor/actioncable/connection.js +204 -0
  259. package/vendor/actioncable/connection_monitor.js +129 -0
  260. package/vendor/actioncable/consumer.js +91 -0
  261. package/vendor/actioncable/index.js +34 -0
  262. package/vendor/actioncable/internal.js +22 -0
  263. package/vendor/actioncable/logger.js +28 -0
  264. package/vendor/actioncable/subscription.js +93 -0
  265. package/vendor/actioncable/subscriptions.js +89 -0
  266. package/vendor/open-telemetry-idgenerator.js +43 -0
  267. package/widget/analytics/facebook_tracker.js +8 -0
  268. package/widget/analytics/google_analytics_tracker.js +83 -0
  269. package/widget/analytics/google_tag_manager_tracker.js +22 -0
  270. package/widget/analytics.js +58 -0
  271. package/widget/api_handler/api_handler.js +730 -0
  272. package/widget/api_handler/base_api_handler.js +249 -0
  273. package/widget/booker_intent_tracker.js +391 -0
  274. package/widget/booker_outcome_tracker.js +329 -0
  275. package/widget/capture_widget_exceptions.js +150 -0
  276. package/widget/channel.js +282 -0
  277. package/widget/composite_experience_adapter.js +101 -0
  278. package/widget/constants.generated.js +350 -0
  279. package/widget/constants.js +21 -0
  280. package/widget/container.js +193 -0
  281. package/widget/content_activity_emitter.js +36 -0
  282. package/widget/data360_visitor.js +67 -0
  283. package/widget/date_provider.js +11 -0
  284. package/widget/debug_mode_state.js +175 -0
  285. package/widget/dummy_module.js +9 -0
  286. package/widget/eloqua_visitor.js +17 -0
  287. package/widget/form_cta_booker_intent.js +246 -0
  288. package/widget/hubspot_visitor.js +39 -0
  289. package/widget/inline_meeting_booker_page.js +90 -0
  290. package/widget/local_state/abstract_local_state.js +38 -0
  291. package/widget/local_state/debug_state/abstract_debug_flow.js +29 -0
  292. package/widget/local_state/debug_state/custom_form_flow.js +14 -0
  293. package/widget/local_state/debug_state/hubspot_form_flow.js +19 -0
  294. package/widget/local_state/debug_state/hubspot_v4_form_flow.js +19 -0
  295. package/widget/local_state/debug_state/marketo_form_flow.js +20 -0
  296. package/widget/local_state/debug_state/pardot_form_flow.js +18 -0
  297. package/widget/local_state/debug_state.js +362 -0
  298. package/widget/local_state/trace_state.js +20 -0
  299. package/widget/location_provider.js +9 -0
  300. package/widget/marketo_visitor.js +39 -0
  301. package/widget/meetings/tracing/buttons_forms_triggering_tracer.js +124 -0
  302. package/widget/meetings/tracing/spans/button_spans.js +18 -0
  303. package/widget/meetings/tracing/spans/form_spans.js +11 -0
  304. package/widget/multimodal_v2/assets_preloader.js +97 -0
  305. package/widget/multimodal_v2/components/AppLayout.js +93 -0
  306. package/widget/multimodal_v2/components/CursorOverlay.js +93 -0
  307. package/widget/multimodal_v2/components/PointerRectOverlay.js +74 -0
  308. package/widget/multimodal_v2/components/app/Artifact.js +109 -0
  309. package/widget/multimodal_v2/components/app/Background.js +27 -0
  310. package/widget/multimodal_v2/components/app/CalendarLoadingContent.js +255 -0
  311. package/widget/multimodal_v2/components/app/Chat.js +39 -0
  312. package/widget/multimodal_v2/components/app/CookieConsentModal.js +149 -0
  313. package/widget/multimodal_v2/components/app/Foreground.js +48 -0
  314. package/widget/multimodal_v2/components/app/HiddenInput.js +41 -0
  315. package/widget/multimodal_v2/components/app/Input.js +72 -0
  316. package/widget/multimodal_v2/components/app/LightboxExperience.js +769 -0
  317. package/widget/multimodal_v2/components/app/LoadingOverlay.js +97 -0
  318. package/widget/multimodal_v2/components/app/Main.js +985 -0
  319. package/widget/multimodal_v2/components/app/MessengerButton.js +160 -0
  320. package/widget/multimodal_v2/components/app/Multimodal.js +17 -0
  321. package/widget/multimodal_v2/components/app/OverlayControls.js +79 -0
  322. package/widget/multimodal_v2/components/app/Preview.js +32 -0
  323. package/widget/multimodal_v2/components/app/PrivacyDisclosure.js +57 -0
  324. package/widget/multimodal_v2/components/app/RotateDeviceOverlay.js +70 -0
  325. package/widget/multimodal_v2/components/app/Toolbar.js +156 -0
  326. package/widget/multimodal_v2/components/chat/ChatComposer.js +129 -0
  327. package/widget/multimodal_v2/components/chat/ChatInputForm.js +398 -0
  328. package/widget/multimodal_v2/components/chat/ColdStartQuestions.js +354 -0
  329. package/widget/multimodal_v2/components/chat/ComposerErrorBanner.js +62 -0
  330. package/widget/multimodal_v2/components/chat/PostCallSurvey.js +359 -0
  331. package/widget/multimodal_v2/components/chat/preview/FieldRequestRenderer.js +41 -0
  332. package/widget/multimodal_v2/components/chat/preview/PreviewMessageRenderer.js +60 -0
  333. package/widget/multimodal_v2/components/chat/preview/SharedOfferRenderer.js +143 -0
  334. package/widget/multimodal_v2/components/chat/preview/TextRenderer.js +27 -0
  335. package/widget/multimodal_v2/components/chat/preview/TimelinePreview.js +254 -0
  336. package/widget/multimodal_v2/components/chat/timeline/CalendarEventOfferRenderer.js +103 -0
  337. package/widget/multimodal_v2/components/chat/timeline/CalendarEventPickRenderer.js +148 -0
  338. package/widget/multimodal_v2/components/chat/timeline/FieldEntryRenderer.js +84 -0
  339. package/widget/multimodal_v2/components/chat/timeline/FieldRequestRenderer.js +56 -0
  340. package/widget/multimodal_v2/components/chat/timeline/InlinePrivacyDisclosure.js +66 -0
  341. package/widget/multimodal_v2/components/chat/timeline/LinkPreviewCard.js +70 -0
  342. package/widget/multimodal_v2/components/chat/timeline/MessageEntry.js +88 -0
  343. package/widget/multimodal_v2/components/chat/timeline/PresentContentRenderer.js +30 -0
  344. package/widget/multimodal_v2/components/chat/timeline/PresentDeckRenderer.js +279 -0
  345. package/widget/multimodal_v2/components/chat/timeline/PresentVideoRenderer.js +131 -0
  346. package/widget/multimodal_v2/components/chat/timeline/ShareContentRenderer.js +59 -0
  347. package/widget/multimodal_v2/components/chat/timeline/SharedOfferRenderer.js +131 -0
  348. package/widget/multimodal_v2/components/chat/timeline/SystemRenderer.js +82 -0
  349. package/widget/multimodal_v2/components/chat/timeline/TextRenderer.js +66 -0
  350. package/widget/multimodal_v2/components/chat/timeline/Timeline.js +158 -0
  351. package/widget/multimodal_v2/components/debug/DebugMultimodalPanel.js +327 -0
  352. package/widget/multimodal_v2/components/decks/index.js +160 -0
  353. package/widget/multimodal_v2/components/field_request/BooleanField.js +77 -0
  354. package/widget/multimodal_v2/components/field_request/FieldComponents.js +69 -0
  355. package/widget/multimodal_v2/components/field_request/Form.js +87 -0
  356. package/widget/multimodal_v2/components/field_request/MultiPicklistField.js +240 -0
  357. package/widget/multimodal_v2/components/field_request/PicklistField.js +166 -0
  358. package/widget/multimodal_v2/components/field_request/SingleLineInputField.js +69 -0
  359. package/widget/multimodal_v2/components/field_request/TextField.js +37 -0
  360. package/widget/multimodal_v2/components/field_request/index.js +170 -0
  361. package/widget/multimodal_v2/components/helpers/AutoScroll.js +37 -0
  362. package/widget/multimodal_v2/components/helpers/ErrorBoundary.js +53 -0
  363. package/widget/multimodal_v2/components/helpers/FocusTrapDialog.js +26 -0
  364. package/widget/multimodal_v2/components/helpers/ImpressionTracker.js +94 -0
  365. package/widget/multimodal_v2/components/helpers/ListRenderer.js +37 -0
  366. package/widget/multimodal_v2/components/helpers/Localization.js +76 -0
  367. package/widget/multimodal_v2/components/helpers/Persisted.js +166 -0
  368. package/widget/multimodal_v2/components/helpers/RichText.js +358 -0
  369. package/widget/multimodal_v2/components/helpers/ScreenReaderHeading.js +17 -0
  370. package/widget/multimodal_v2/components/helpers/Thumbnail.js +190 -0
  371. package/widget/multimodal_v2/components/helpers/VisuallyHidden.js +41 -0
  372. package/widget/multimodal_v2/components/helpers/content_click_payloads.js +58 -0
  373. package/widget/multimodal_v2/components/helpers/useDraggable.js +103 -0
  374. package/widget/multimodal_v2/components/helpers/useTextOverflow.js +44 -0
  375. package/widget/multimodal_v2/components/lightbox_gather/index.js +741 -0
  376. package/widget/multimodal_v2/components/meetings/ArtifactEntryPoint.js +252 -0
  377. package/widget/multimodal_v2/components/meetings/MeetingAdditionalAttendees.js +325 -0
  378. package/widget/multimodal_v2/components/meetings/MeetingBookerEntry.js +100 -0
  379. package/widget/multimodal_v2/components/meetings/MeetingDetailsCard.js +99 -0
  380. package/widget/multimodal_v2/components/meetings/MeetingErrorBanner.js +62 -0
  381. package/widget/multimodal_v2/components/meetings/MeetingOfferEmailStep.js +239 -0
  382. package/widget/multimodal_v2/components/meetings/MeetingOfferFooter.js +104 -0
  383. package/widget/multimodal_v2/components/meetings/MeetingOfferSelectionStep.js +60 -0
  384. package/widget/multimodal_v2/components/meetings/MeetingRepHeader.js +222 -0
  385. package/widget/multimodal_v2/components/meetings/MeetingStepShell.js +92 -0
  386. package/widget/multimodal_v2/components/meetings/MeetingSummaryRail.js +515 -0
  387. package/widget/multimodal_v2/components/meetings/MeetingTimeSelector.js +603 -0
  388. package/widget/multimodal_v2/components/meetings/MonthDatePicker.js +422 -0
  389. package/widget/multimodal_v2/components/meetings/NavigationButtons.js +76 -0
  390. package/widget/multimodal_v2/components/meetings/TimeSlotHeader.js +357 -0
  391. package/widget/multimodal_v2/components/meetings/WeekViewHeader.js +20 -0
  392. package/widget/multimodal_v2/components/meetings/constants.js +7 -0
  393. package/widget/multimodal_v2/components/meetings/index.js +47 -0
  394. package/widget/multimodal_v2/components/meetings/utils.js +328 -0
  395. package/widget/multimodal_v2/components/multimodal/Audio.js +28 -0
  396. package/widget/multimodal_v2/components/multimodal/Controls.js +188 -0
  397. package/widget/multimodal_v2/components/multimodal/LiveVideo.js +63 -0
  398. package/widget/multimodal_v2/components/multimodal/MultiModalComponent.js +424 -0
  399. package/widget/multimodal_v2/components/multimodal/MultimodalAvatar.js +36 -0
  400. package/widget/multimodal_v2/components/multimodal/OrbAvatar.js +326 -0
  401. package/widget/multimodal_v2/components/multimodal/Status.js +220 -0
  402. package/widget/multimodal_v2/components/multimodal/VideoAvatar.js +24 -0
  403. package/widget/multimodal_v2/components/multimodal/VideoPreview.js +114 -0
  404. package/widget/multimodal_v2/components/multimodal/useAudioLevelMonitoring.js +96 -0
  405. package/widget/multimodal_v2/components/multimodal/useMultimodal.js +434 -0
  406. package/widget/multimodal_v2/components/presentations/index.js +372 -0
  407. package/widget/multimodal_v2/components/shared/Avatar.js +92 -0
  408. package/widget/multimodal_v2/components/shared/AvatarGroup.js +135 -0
  409. package/widget/multimodal_v2/components/shared/Button.js +245 -0
  410. package/widget/multimodal_v2/components/shared/ButtonGroup.js +133 -0
  411. package/widget/multimodal_v2/components/shared/ComposerForm.js +98 -0
  412. package/widget/multimodal_v2/components/shared/SpeakingIndicator.js +239 -0
  413. package/widget/multimodal_v2/components/shared/ThinkingAnimation.js +165 -0
  414. package/widget/multimodal_v2/components/shared/Tooltip.js +266 -0
  415. package/widget/multimodal_v2/components/shared/controls/Dropdown.js +79 -0
  416. package/widget/multimodal_v2/components/shared/controls/PillToggle.js +142 -0
  417. package/widget/multimodal_v2/components/shared/controls/TextArea.js +114 -0
  418. package/widget/multimodal_v2/components/shared/toolCallLabels.js +12 -0
  419. package/widget/multimodal_v2/components/slides/SlidesThumbnail.js +47 -0
  420. package/widget/multimodal_v2/components/slides/index.js +61 -0
  421. package/widget/multimodal_v2/constants.js +88 -0
  422. package/widget/multimodal_v2/host.split-css.js +2 -0
  423. package/widget/multimodal_v2/host.string.js +96 -0
  424. package/widget/multimodal_v2/images/icons.js +582 -0
  425. package/widget/multimodal_v2/images/posters/piper_low_res.jpg +0 -0
  426. package/widget/multimodal_v2/index.js +23 -0
  427. package/widget/multimodal_v2/index.panda.js +28 -0
  428. package/widget/multimodal_v2/index.split-css.panda.js +2 -0
  429. package/widget/multimodal_v2/inline_meeting_booker.js +182 -0
  430. package/widget/multimodal_v2/locales/cs.js +196 -0
  431. package/widget/multimodal_v2/locales/da.js +196 -0
  432. package/widget/multimodal_v2/locales/de.js +196 -0
  433. package/widget/multimodal_v2/locales/en.js +196 -0
  434. package/widget/multimodal_v2/locales/en_AU.js +197 -0
  435. package/widget/multimodal_v2/locales/en_GB.js +197 -0
  436. package/widget/multimodal_v2/locales/es.js +197 -0
  437. package/widget/multimodal_v2/locales/es_LA.js +196 -0
  438. package/widget/multimodal_v2/locales/fi.js +196 -0
  439. package/widget/multimodal_v2/locales/fr.js +197 -0
  440. package/widget/multimodal_v2/locales/fr_CA.js +196 -0
  441. package/widget/multimodal_v2/locales/id.js +196 -0
  442. package/widget/multimodal_v2/locales/index.js +48 -0
  443. package/widget/multimodal_v2/locales/it.js +196 -0
  444. package/widget/multimodal_v2/locales/ja.js +196 -0
  445. package/widget/multimodal_v2/locales/ko.js +196 -0
  446. package/widget/multimodal_v2/locales/nb.js +196 -0
  447. package/widget/multimodal_v2/locales/nl.js +196 -0
  448. package/widget/multimodal_v2/locales/pl.js +196 -0
  449. package/widget/multimodal_v2/locales/pt_BR.js +196 -0
  450. package/widget/multimodal_v2/locales/ru.js +196 -0
  451. package/widget/multimodal_v2/locales/sv.js +196 -0
  452. package/widget/multimodal_v2/locales/th.js +196 -0
  453. package/widget/multimodal_v2/locales/tr.js +196 -0
  454. package/widget/multimodal_v2/locales/vi.js +196 -0
  455. package/widget/multimodal_v2/locales/zh_CN.js +196 -0
  456. package/widget/multimodal_v2/locales/zh_TW.js +196 -0
  457. package/widget/multimodal_v2/multimodal.js +633 -0
  458. package/widget/multimodal_v2/multimodal_channel.js +195 -0
  459. package/widget/multimodal_v2/signals/active_conversation_signal.js +33 -0
  460. package/widget/multimodal_v2/signals/allowed_conversation_mode_signal.js +38 -0
  461. package/widget/multimodal_v2/signals/artifact_signal.js +22 -0
  462. package/widget/multimodal_v2/signals/layout_signal.js +98 -0
  463. package/widget/multimodal_v2/signals/messages_signal.js +207 -0
  464. package/widget/multimodal_v2/signals/ui_state_signal.js +128 -0
  465. package/widget/multimodal_v2/stable_bundle_src.js +44 -0
  466. package/widget/multimodal_v2/stores/ai_conversation_store.js +221 -0
  467. package/widget/multimodal_v2/stores/artifact_store.js +205 -0
  468. package/widget/multimodal_v2/stores/base_store.js +16 -0
  469. package/widget/multimodal_v2/stores/call_store.js +770 -0
  470. package/widget/multimodal_v2/stores/call_ui_adapter.js +225 -0
  471. package/widget/multimodal_v2/stores/debug_multimodal_scenario_store.js +471 -0
  472. package/widget/multimodal_v2/stores/decks_store.js +285 -0
  473. package/widget/multimodal_v2/stores/device_store.js +63 -0
  474. package/widget/multimodal_v2/stores/docking_store.js +62 -0
  475. package/widget/multimodal_v2/stores/field_request_store.js +326 -0
  476. package/widget/multimodal_v2/stores/meeting_store.js +477 -0
  477. package/widget/multimodal_v2/stores/participant_store.js +73 -0
  478. package/widget/multimodal_v2/stores/post_call_survey_store.js +160 -0
  479. package/widget/multimodal_v2/stores/pounce_tracking_store.js +163 -0
  480. package/widget/multimodal_v2/stores/pounce_tracking_store_v2.js +511 -0
  481. package/widget/multimodal_v2/stores/presentations_store.js +111 -0
  482. package/widget/multimodal_v2/stores/root_store.js +1919 -0
  483. package/widget/multimodal_v2/stores/screen_share_store.js +217 -0
  484. package/widget/multimodal_v2/stores/slides_store.js +21 -0
  485. package/widget/multimodal_v2/stores/translation_store.js +185 -0
  486. package/widget/multimodal_v2/stores/ui_store.js +496 -0
  487. package/widget/multimodal_v2/stores/waiting_store.js +159 -0
  488. package/widget/multimodal_v2/stores/website_navigation_store.js +767 -0
  489. package/widget/multimodal_v2/styled-system/css/conditions.js +34 -0
  490. package/widget/multimodal_v2/styled-system/css/css.js +48 -0
  491. package/widget/multimodal_v2/styled-system/css/cva.js +96 -0
  492. package/widget/multimodal_v2/styled-system/css/cx.js +13 -0
  493. package/widget/multimodal_v2/styled-system/css/index.js +15 -0
  494. package/widget/multimodal_v2/styled-system/css/sva.js +69 -0
  495. package/widget/multimodal_v2/styled-system/helpers.js +384 -0
  496. package/widget/multimodal_v2/styled-system/jsx/create-style-context.js +96 -0
  497. package/widget/multimodal_v2/styled-system/jsx/factory-helper.js +19 -0
  498. package/widget/multimodal_v2/styled-system/jsx/factory.js +111 -0
  499. package/widget/multimodal_v2/styled-system/jsx/index.js +12 -0
  500. package/widget/multimodal_v2/styled-system/jsx/is-valid-prop.js +22 -0
  501. package/widget/multimodal_v2/types.js +105 -0
  502. package/widget/multimodal_v2/utils/auto_scroller.js +157 -0
  503. package/widget/multimodal_v2/utils/flip_animation.js +124 -0
  504. package/widget/multimodal_v2/utils/focus_gate.js +237 -0
  505. package/widget/multimodal_v2/utils/locale.js +16 -0
  506. package/widget/multimodal_v2/utils/media_queries.js +30 -0
  507. package/widget/multimodal_v2/utils/multimodal_cache.js +19 -0
  508. package/widget/multimodal_v2/utils/mutation_effect.js +14 -0
  509. package/widget/multimodal_v2/utils/navigation_interceptor.js +205 -0
  510. package/widget/multimodal_v2/utils/navigation_strategies/dom_swap.js +393 -0
  511. package/widget/multimodal_v2/utils/navigation_strategies/index.js +12 -0
  512. package/widget/multimodal_v2/utils/navigation_strategies/lwr.js +61 -0
  513. package/widget/multimodal_v2/utils/navigation_strategies/navigation_utils.js +46 -0
  514. package/widget/multimodal_v2/utils/navigation_strategies/next_js.js +24 -0
  515. package/widget/multimodal_v2/utils/navigation_strategies/wouter_v3.js +15 -0
  516. package/widget/multimodal_v2/utils/objects_map.js +38 -0
  517. package/widget/multimodal_v2/utils/perceived_voice_turn_tracker.js +345 -0
  518. package/widget/multimodal_v2/utils/sanitize_html.js +132 -0
  519. package/widget/multimodal_v2/utils/signals.js +97 -0
  520. package/widget/multimodal_v2/utils/slide_zoom.js +114 -0
  521. package/widget/multimodal_v2/utils/theme_styles.js +137 -0
  522. package/widget/multimodal_v2/utils/url_observer.js +52 -0
  523. package/widget/multimodal_v2/utils/voice_onset_detector.js +127 -0
  524. package/widget/page_mirror.js +89 -0
  525. package/widget/page_view_activity_emitter.js +71 -0
  526. package/widget/pardot_visitor.js +137 -0
  527. package/widget/personalization_observer.js +96 -0
  528. package/widget/personalizations_config.js +160 -0
  529. package/widget/qualified_form/constants.js +23 -0
  530. package/widget/qualified_form/phone_utils.js +38 -0
  531. package/widget/qualified_form/qualified_form_action.js +91 -0
  532. package/widget/qualified_form/qualified_form_action_orchestrator.js +21 -0
  533. package/widget/qualified_form/qualified_form_api.js +471 -0
  534. package/widget/scroll_disabler.js +109 -0
  535. package/widget/server-logger.js +156 -0
  536. package/widget/smart_website_config.js +112 -0
  537. package/widget/telemetry/context.js +75 -0
  538. package/widget/telemetry/index.js +16 -0
  539. package/widget/telemetry/messenger_uptime.js +80 -0
  540. package/widget/telemetry/metrics.js +120 -0
  541. package/widget/telemetry/span.js +82 -0
  542. package/widget/telemetry/telemetry.js +180 -0
  543. package/widget/telemetry/tracer.js +41 -0
  544. package/widget/telemetry/tracing_store.js +310 -0
  545. package/widget/tracker.js +916 -0
  546. package/widget/utils/native_globals.js +129 -0
  547. package/widget/v1_adapter.js +50 -0
  548. package/widget/v2_adapter.js +368 -0
  549. package/widget/visitor/base_visitor_state.js +11 -0
  550. package/widget/visitor/cookie_visitor_state.js +128 -0
  551. package/widget/visitor/in_memory_visitor_state.js +29 -0
  552. package/widget/visitor/visitor_state.js +384 -0
  553. package/widget/visitor.js +356 -0
  554. package/widget/widget/linked_widget_v2.js +227 -0
  555. package/widget/widget/page_mirror_factory.js +22 -0
  556. package/widget/widget/sentry.js +130 -0
  557. package/widget/widget/widget.js +1698 -0
  558. package/widget/widget.split-css.js +2 -0
  559. package/widget/widget_bootstrap.js +97 -0
  560. package/widget/widget_object.js +73 -0
@@ -0,0 +1,225 @@
1
+ import { signals_core_module_w } from "../../../js/multimodal_v2.js";
2
+
3
+
4
+ /**
5
+ * Creates a real call UI adapter that uses CallStore/DeviceStore/TavusStore.
6
+ *
7
+ * All state is derived via computed signals that react to store changes.
8
+ * The callStore is lazily loaded, so computeds handle the null case with defaults.
9
+ */ function createRealCallUiAdapter(rootStore) {
10
+ // Computed signals for stores - these automatically update when callStore loads
11
+ const callStore = signals_core_module_w(()=>rootStore.callStore.value);
12
+ const deviceStore = signals_core_module_w(()=>{
13
+ var _ref;
14
+ var _callStore_value;
15
+ return (_ref = (_callStore_value = callStore.value) == null ? void 0 : _callStore_value.deviceStore) != null ? _ref : null;
16
+ });
17
+ // State signals derived from stores (with safe defaults when stores aren't loaded)
18
+ const isInCall = signals_core_module_w(()=>{
19
+ var _callStore_value;
20
+ return ((_callStore_value = callStore.value) == null ? void 0 : _callStore_value.dailyCall.value) != null;
21
+ });
22
+ const isVideoLoading = signals_core_module_w(()=>rootStore.isVideoLoading.value);
23
+ const isBlurredVideoActive = signals_core_module_w(()=>rootStore.isBlurredVideoActive.value);
24
+ const isReconnecting = signals_core_module_w(()=>{
25
+ var _ref;
26
+ var _callStore_value;
27
+ return (_ref = (_callStore_value = callStore.value) == null ? void 0 : _callStore_value.isReconnecting.value) != null ? _ref : false;
28
+ });
29
+ const isSilentRestart = signals_core_module_w(()=>{
30
+ var _ref;
31
+ var _callStore_value;
32
+ return (_ref = (_callStore_value = callStore.value) == null ? void 0 : _callStore_value.isSilentRestart.value) != null ? _ref : false;
33
+ });
34
+ const isAudioConnected = signals_core_module_w(()=>{
35
+ var _ref;
36
+ var _callStore_value;
37
+ return (_ref = (_callStore_value = callStore.value) == null ? void 0 : _callStore_value.isCoffeeAudioReady.value) != null ? _ref : false;
38
+ });
39
+ const showConnecting = signals_core_module_w(()=>isInCall.value && !isAudioConnected.value);
40
+ const showMicControls = signals_core_module_w(()=>isInCall.value ? isAudioConnected.value : true);
41
+ const isMicMuted = signals_core_module_w(()=>{
42
+ var _ref;
43
+ var _deviceStore_value;
44
+ return (_ref = (_deviceStore_value = deviceStore.value) == null ? void 0 : _deviceStore_value.isMicMuted.value) != null ? _ref : false;
45
+ });
46
+ const microphoneDevices = signals_core_module_w(()=>{
47
+ var _deviceStore_value;
48
+ const devices = (_deviceStore_value = deviceStore.value) == null ? void 0 : _deviceStore_value.microphoneDevices.value;
49
+ return devices != null ? devices : [];
50
+ });
51
+ const noMicrophonesAvailable = signals_core_module_w(()=>microphoneDevices.value.length === 0);
52
+ const selectedMicId = signals_core_module_w(()=>{
53
+ var _deviceStore_value;
54
+ const selected = (_deviceStore_value = deviceStore.value) == null ? void 0 : _deviceStore_value.selectedMicrophoneDevice.value;
55
+ return selected && "deviceId" in selected ? selected.deviceId : null;
56
+ });
57
+ const conversationMode = signals_core_module_w(()=>rootStore.conversationMode.value);
58
+ const displayMode = signals_core_module_w(()=>rootStore.displayMode.value);
59
+ const alreadyInCall = signals_core_module_w(()=>{
60
+ var _ref;
61
+ var _callStore_value;
62
+ return (_ref = (_callStore_value = callStore.value) == null ? void 0 : _callStore_value.aiConversationStore.alreadyInCall.value) != null ? _ref : false;
63
+ });
64
+ const state = {
65
+ isInCall,
66
+ isVideoLoading,
67
+ isBlurredVideoActive,
68
+ isReconnecting,
69
+ isSilentRestart,
70
+ isAudioConnected,
71
+ showConnecting,
72
+ showMicControls,
73
+ isMicMuted,
74
+ noMicrophonesAvailable,
75
+ microphoneDevices,
76
+ selectedMicId,
77
+ conversationMode,
78
+ displayMode,
79
+ alreadyInCall
80
+ };
81
+ // Actions delegate to the appropriate store (no-ops if store not loaded)
82
+ const actions = {
83
+ toggleMic: ()=>{
84
+ var _deviceStore_value;
85
+ return (_deviceStore_value = deviceStore.value) == null ? void 0 : _deviceStore_value.toggleMic();
86
+ },
87
+ endCall: ()=>{
88
+ var _callStore_value;
89
+ return (_callStore_value = callStore.value) == null ? void 0 : _callStore_value.aiConversationStore.endConversation();
90
+ },
91
+ selectMic: (deviceId)=>{
92
+ var _deviceStore_value;
93
+ return (_deviceStore_value = deviceStore.value) == null ? void 0 : _deviceStore_value.updateSelectedMic(deviceId);
94
+ },
95
+ toggleVideoMode: (mode)=>rootStore.toggleVideoMode(mode),
96
+ startCall: (startCallContext, displayState)=>{
97
+ var _rootStore_postCallSurveyStore_value;
98
+ const currentlyInCall = state.isInCall.value;
99
+ const currentlyConnecting = state.isVideoLoading.value;
100
+ if (currentlyInCall || currentlyConnecting) return;
101
+ (_rootStore_postCallSurveyStore_value = rootStore.postCallSurveyStore.value) == null ? void 0 : _rootStore_postCallSurveyStore_value.dismiss();
102
+ rootStore.startCall(startCallContext, displayState);
103
+ }
104
+ };
105
+ return {
106
+ state,
107
+ actions,
108
+ isDebugMode: false
109
+ };
110
+ }
111
+ /**
112
+ * Creates a debug call UI adapter that uses DebugMultimodalScenarioStore.
113
+ * All state comes from the scenario store - no real call/device stores involved.
114
+ */ function createDebugCallUiAdapter(rootStore, scenarioStore) {
115
+ // State signals from scenario store (already computed signals)
116
+ const isInCall = signals_core_module_w(()=>scenarioStore.inCall.value);
117
+ const isVideoLoading = signals_core_module_w(()=>scenarioStore.videoLoading.value);
118
+ const isBlurredVideoActive = signals_core_module_w(()=>scenarioStore.inCall.value && !scenarioStore.preloadedVideoReady.value);
119
+ const isReconnecting = signals_core_module_w(()=>scenarioStore.isReconnecting.value);
120
+ const isSilentRestart = signals_core_module_w(()=>scenarioStore.isSilentRestart.value);
121
+ const isAudioConnected = signals_core_module_w(()=>scenarioStore.audioConnected.value);
122
+ const isMicMuted = signals_core_module_w(()=>scenarioStore.micMuted.value);
123
+ const microphoneDevices = signals_core_module_w(()=>scenarioStore.microphoneDevices.value);
124
+ const selectedMicId = signals_core_module_w(()=>scenarioStore.selectedMicId.value);
125
+ const conversationMode = signals_core_module_w(()=>scenarioStore.conversationMode.value);
126
+ const displayMode = signals_core_module_w(()=>rootStore.displayMode.value);
127
+ const state = {
128
+ isInCall,
129
+ isVideoLoading,
130
+ isBlurredVideoActive,
131
+ isReconnecting,
132
+ isSilentRestart,
133
+ isAudioConnected,
134
+ showConnecting: scenarioStore.showConnecting,
135
+ showMicControls: scenarioStore.showMicControls,
136
+ isMicMuted,
137
+ noMicrophonesAvailable: scenarioStore.noMicrophonesAvailable,
138
+ microphoneDevices,
139
+ selectedMicId,
140
+ conversationMode,
141
+ displayMode,
142
+ alreadyInCall: signals_core_module_w(()=>false)
143
+ };
144
+ const actions = {
145
+ toggleMic: ()=>scenarioStore.toggleMic(),
146
+ endCall: ()=>scenarioStore.endCall(),
147
+ selectMic: (deviceId)=>scenarioStore.selectMic(deviceId),
148
+ // Update both scenario store (for override) and rootStore (for actual state)
149
+ toggleVideoMode: (mode)=>{
150
+ scenarioStore.setConversationMode(mode);
151
+ rootStore.toggleVideoMode(mode);
152
+ },
153
+ startCall: ()=>scenarioStore.startCall()
154
+ };
155
+ return {
156
+ state,
157
+ actions,
158
+ isDebugMode: true
159
+ };
160
+ }
161
+ /**
162
+ * Get the appropriate CallUiAdapter for the current context.
163
+ *
164
+ * Debug mode is determined once at bootstrap by the `q_debug_multimodal` URL param.
165
+ * In debug mode, returns an adapter backed by DebugMultimodalScenarioStore.
166
+ * In normal mode, returns an adapter backed by the real CallStore/DeviceStore.
167
+ */ function getCallUiAdapter(rootStore) {
168
+ const isDebug = rootStore.isDebugMultimodal.value;
169
+ const scenarioStore = rootStore.debugScenarioStore.value;
170
+ if (isDebug) {
171
+ if (scenarioStore) {
172
+ return createDebugCallUiAdapter(rootStore, scenarioStore);
173
+ }
174
+ // Debug mode is enabled but scenario store hasn't loaded yet.
175
+ // Trigger the load and return a "pending" adapter that won't start real calls.
176
+ rootStore.debugScenarioStore.load();
177
+ return createPendingDebugAdapter(rootStore);
178
+ }
179
+ return createRealCallUiAdapter(rootStore);
180
+ }
181
+ /**
182
+ * Creates a "pending" debug adapter used while the scenario store is loading.
183
+ * All actions are no-ops to prevent starting real calls before debug mode is fully initialized.
184
+ */ function createPendingDebugAdapter(rootStore) {
185
+ const falseSignal = signals_core_module_w(()=>false);
186
+ const trueSignal = signals_core_module_w(()=>true);
187
+ const emptyArraySignal = signals_core_module_w(()=>[]);
188
+ const nullStringSignal = signals_core_module_w(()=>null);
189
+ const state = {
190
+ isInCall: falseSignal,
191
+ isVideoLoading: falseSignal,
192
+ isBlurredVideoActive: falseSignal,
193
+ isReconnecting: falseSignal,
194
+ isSilentRestart: falseSignal,
195
+ isAudioConnected: trueSignal,
196
+ showConnecting: falseSignal,
197
+ showMicControls: trueSignal,
198
+ isMicMuted: falseSignal,
199
+ noMicrophonesAvailable: falseSignal,
200
+ microphoneDevices: emptyArraySignal,
201
+ selectedMicId: nullStringSignal,
202
+ conversationMode: signals_core_module_w(()=>rootStore.conversationMode.value),
203
+ displayMode: signals_core_module_w(()=>rootStore.displayMode.value),
204
+ alreadyInCall: falseSignal
205
+ };
206
+ // No-op actions - prevent any real calls while loading
207
+ const noop = ()=>{};
208
+ const noopSelect = (_deviceId)=>{};
209
+ const actions = {
210
+ toggleMic: noop,
211
+ endCall: noop,
212
+ selectMic: noopSelect,
213
+ toggleVideoMode: noop,
214
+ startCall: noop
215
+ };
216
+ return {
217
+ state,
218
+ actions,
219
+ isDebugMode: true
220
+ };
221
+ }
222
+
223
+ var call_ui_adapter_createDebugCallUiAdapter = /* unused export */ undefined;
224
+ var call_ui_adapter_createRealCallUiAdapter = /* unused export */ undefined;
225
+ export { call_ui_adapter_createDebugCallUiAdapter as createDebugCallUiAdapter, call_ui_adapter_createRealCallUiAdapter as createRealCallUiAdapter, getCallUiAdapter };
@@ -0,0 +1,471 @@
1
+ import { signals_core_module_r, signals_core_module_d, signals_core_module_w } from "../../../js/multimodal_v2.js";
2
+ import { ConversationMode as types_ConversationMode } from "../types.js";
3
+
4
+ function _extends() {
5
+ _extends = Object.assign || function(target) {
6
+ for(var i = 1; i < arguments.length; i++){
7
+ var source = arguments[i];
8
+ for(var key in source){
9
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
10
+ target[key] = source[key];
11
+ }
12
+ }
13
+ }
14
+ return target;
15
+ };
16
+ return _extends.apply(this, arguments);
17
+ }
18
+
19
+
20
+ const STORAGE_KEY = "q_debug_multimodal_scenario";
21
+ const DEFAULT_MIC_DEVICES = [
22
+ {
23
+ deviceId: "mic-1",
24
+ kind: "audioinput",
25
+ label: "Built-in Microphone",
26
+ groupId: "default",
27
+ toJSON: ()=>({
28
+ deviceId: "mic-1",
29
+ label: "Built-in Microphone",
30
+ groupId: "default"
31
+ })
32
+ },
33
+ {
34
+ deviceId: "mic-2",
35
+ kind: "audioinput",
36
+ label: "External USB Microphone",
37
+ groupId: "default",
38
+ toJSON: ()=>({
39
+ deviceId: "mic-2",
40
+ label: "External USB Microphone",
41
+ groupId: "default"
42
+ })
43
+ }
44
+ ];
45
+ const DEFAULT_CAMERA_DEVICES = [
46
+ {
47
+ deviceId: "cam-1",
48
+ kind: "videoinput",
49
+ label: "Built-in Camera",
50
+ groupId: "default",
51
+ toJSON: ()=>({
52
+ deviceId: "cam-1",
53
+ label: "Built-in Camera",
54
+ groupId: "default"
55
+ })
56
+ },
57
+ {
58
+ deviceId: "cam-2",
59
+ kind: "videoinput",
60
+ label: "External Webcam",
61
+ groupId: "default",
62
+ toJSON: ()=>({
63
+ deviceId: "cam-2",
64
+ label: "External Webcam",
65
+ groupId: "default"
66
+ })
67
+ }
68
+ ];
69
+ /**
70
+ * Returns default (idle) scenario state.
71
+ * Note: conversationMode is NOT included to preserve query param settings.
72
+ * Note: videoOff defaults to true (camera off) to match real mode behavior
73
+ * where DeviceStore.isVideoOff starts as true.
74
+ */ function getDefaultState() {
75
+ return {
76
+ inCall: false,
77
+ videoLoading: false,
78
+ preloadedVideoReady: true,
79
+ isReconnecting: false,
80
+ isSilentRestart: false,
81
+ audioConnected: true,
82
+ micMuted: false,
83
+ videoOff: true,
84
+ microphoneDevices: DEFAULT_MIC_DEVICES,
85
+ cameraDevices: DEFAULT_CAMERA_DEVICES,
86
+ selectedMicId: "mic-1",
87
+ selectedCameraId: "cam-1",
88
+ displayMode: null
89
+ };
90
+ }
91
+ /**
92
+ * Preset configurations for common scenarios.
93
+ */ const PRESETS = {
94
+ idle: getDefaultState(),
95
+ loading: {
96
+ inCall: false,
97
+ videoLoading: true,
98
+ preloadedVideoReady: false,
99
+ isReconnecting: false,
100
+ audioConnected: false
101
+ },
102
+ connectingAudio: {
103
+ inCall: true,
104
+ videoLoading: false,
105
+ preloadedVideoReady: true,
106
+ isReconnecting: false,
107
+ audioConnected: false
108
+ },
109
+ reconnecting: {
110
+ inCall: true,
111
+ videoLoading: false,
112
+ preloadedVideoReady: true,
113
+ isReconnecting: true,
114
+ audioConnected: true
115
+ },
116
+ inCall: {
117
+ inCall: true,
118
+ videoLoading: false,
119
+ preloadedVideoReady: true,
120
+ isReconnecting: false,
121
+ audioConnected: true,
122
+ micMuted: false
123
+ }
124
+ };
125
+ class DebugMultimodalScenarioStore {
126
+ /**
127
+ * Get current state as a serializable object.
128
+ */ getState() {
129
+ return {
130
+ inCall: this.inCall.value,
131
+ videoLoading: this.videoLoading.value,
132
+ preloadedVideoReady: this.preloadedVideoReady.value,
133
+ isReconnecting: this.isReconnecting.value,
134
+ isSilentRestart: this.isSilentRestart.value,
135
+ audioConnected: this.audioConnected.value,
136
+ micMuted: this.micMuted.value,
137
+ videoOff: this.videoOff.value,
138
+ microphoneDevices: this.microphoneDevices.value,
139
+ cameraDevices: this.cameraDevices.value,
140
+ selectedMicId: this.selectedMicId.value,
141
+ selectedCameraId: this.selectedCameraId.value,
142
+ conversationMode: this.conversationMode.value,
143
+ displayMode: this.displayModeOverride.value
144
+ };
145
+ }
146
+ /**
147
+ * Set state from a partial object.
148
+ */ setState(state) {
149
+ signals_core_module_r(()=>{
150
+ if (state.inCall !== undefined) this.inCall.value = state.inCall;
151
+ if (state.videoLoading !== undefined) this.videoLoading.value = state.videoLoading;
152
+ if (state.preloadedVideoReady !== undefined) this.preloadedVideoReady.value = state.preloadedVideoReady;
153
+ if (state.isReconnecting !== undefined) this.isReconnecting.value = state.isReconnecting;
154
+ if (state.isSilentRestart !== undefined) this.isSilentRestart.value = state.isSilentRestart;
155
+ if (state.audioConnected !== undefined) this.audioConnected.value = state.audioConnected;
156
+ if (state.micMuted !== undefined) this.micMuted.value = state.micMuted;
157
+ if (state.videoOff !== undefined) this.videoOff.value = state.videoOff;
158
+ if (state.microphoneDevices !== undefined) this.microphoneDevices.value = state.microphoneDevices;
159
+ if (state.cameraDevices !== undefined) this.cameraDevices.value = state.cameraDevices;
160
+ if (state.selectedMicId !== undefined) this.selectedMicId.value = state.selectedMicId;
161
+ if (state.selectedCameraId !== undefined) this.selectedCameraId.value = state.selectedCameraId;
162
+ if (state.conversationMode !== undefined) this.conversationModeOverride.value = state.conversationMode;
163
+ if (state.displayMode !== undefined) this.displayModeOverride.value = state.displayMode;
164
+ this.syncToRootStore();
165
+ this.saveToStorage();
166
+ });
167
+ }
168
+ /**
169
+ * Apply a preset scenario.
170
+ * Sets camera state based on conversation mode (matches real mode behavior).
171
+ */ applyPreset(preset) {
172
+ const presetState = PRESETS[preset];
173
+ signals_core_module_r(()=>{
174
+ // Reset to default first, then apply preset overrides
175
+ this.setState(_extends({}, getDefaultState(), presetState));
176
+ this.currentPreset.value = preset;
177
+ // Set camera state based on conversation mode (matches real mode behavior)
178
+ // In VOICE mode, camera should always be off
179
+ // In VIDEO mode, camera should be on when entering a call
180
+ const isVoiceMode = this.conversationMode.value === types_ConversationMode.VOICE;
181
+ if (preset === "inCall") {
182
+ this.videoOff.value = isVoiceMode;
183
+ }
184
+ });
185
+ }
186
+ /**
187
+ * Reset to idle state.
188
+ */ reset() {
189
+ this.applyPreset("idle");
190
+ }
191
+ /**
192
+ * Toggle microphone muted state.
193
+ */ toggleMic() {
194
+ this.setState({
195
+ micMuted: !this.micMuted.value
196
+ });
197
+ }
198
+ /**
199
+ * Toggle video off state.
200
+ */ toggleVideo() {
201
+ this.setState({
202
+ videoOff: !this.videoOff.value
203
+ });
204
+ }
205
+ /**
206
+ * Set audio connected state.
207
+ */ setAudioConnected(connected) {
208
+ this.setState({
209
+ audioConnected: connected
210
+ });
211
+ }
212
+ /**
213
+ * Set in-call state.
214
+ */ setInCall(inCall) {
215
+ this.setState({
216
+ inCall
217
+ });
218
+ }
219
+ /**
220
+ * Set video loading state.
221
+ */ setVideoLoading(loading) {
222
+ this.setState({
223
+ videoLoading: loading
224
+ });
225
+ }
226
+ /**
227
+ * Set reconnecting state.
228
+ */ setReconnecting(reconnecting) {
229
+ this.setState({
230
+ isReconnecting: reconnecting
231
+ });
232
+ }
233
+ /**
234
+ * Set conversation mode.
235
+ * Handles camera state toggle to match real mode behavior (rootStore.toggleVideoMode).
236
+ */ setConversationMode(mode) {
237
+ const previousMode = this.conversationMode.value;
238
+ const isVideoOff = this.videoOff.value;
239
+ signals_core_module_r(()=>{
240
+ this.setState({
241
+ conversationMode: mode
242
+ });
243
+ // Toggle camera based on mode (matches rootStore.toggleVideoMode behavior)
244
+ // When switching to VOICE and camera is on, turn it off
245
+ // When switching to VIDEO and camera is off, turn it on
246
+ if (mode !== previousMode) {
247
+ if (mode === types_ConversationMode.VOICE && !isVideoOff) {
248
+ this.videoOff.value = true;
249
+ } else if (mode === types_ConversationMode.VIDEO && isVideoOff) {
250
+ this.videoOff.value = false;
251
+ }
252
+ }
253
+ });
254
+ }
255
+ /**
256
+ * Set display mode override.
257
+ */ setDisplayMode(mode) {
258
+ this.setState({
259
+ displayMode: mode
260
+ });
261
+ }
262
+ /**
263
+ * Select a microphone by device ID.
264
+ */ selectMic(deviceId) {
265
+ this.setState({
266
+ selectedMicId: deviceId
267
+ });
268
+ }
269
+ /**
270
+ * Select a camera by device ID.
271
+ */ selectCamera(deviceId) {
272
+ this.setState({
273
+ selectedCameraId: deviceId
274
+ });
275
+ }
276
+ /**
277
+ * End the simulated call.
278
+ */ endCall() {
279
+ signals_core_module_r(()=>{
280
+ // Reset call state without triggering applyPreset's display mode constraints
281
+ this.setState({
282
+ inCall: false,
283
+ videoLoading: false,
284
+ isReconnecting: false,
285
+ audioConnected: true
286
+ });
287
+ this.currentPreset.value = "idle";
288
+ });
289
+ }
290
+ /**
291
+ * Start a simulated call (for "Speak now" button).
292
+ * Camera state will be set based on conversation mode when transitioning to inCall.
293
+ * Expands to opened display mode if currently minimized.
294
+ */ startCall() {
295
+ signals_core_module_r(()=>{
296
+ this.applyPreset("loading");
297
+ // Expand to opened display mode if minimized
298
+ if (this.rootStore.displayMode.minimized.value) {
299
+ this.rootStore.setOpenedDisplayMode();
300
+ }
301
+ });
302
+ }
303
+ /**
304
+ * Sync scenario state to rootStore signals where applicable.
305
+ * This ensures the UI components read the debug values.
306
+ *
307
+ * Note: conversationMode is NOT synced here because:
308
+ * 1. The debug adapter reads directly from the debug store's conversationMode
309
+ * 2. Syncing would override query params like ?conversation_mode=voice
310
+ */ syncToRootStore() {
311
+ // Sync videoLoading and preloadedVideoReady to rootStore
312
+ this.rootStore.isVideoLoading.value = this.videoLoading.value;
313
+ // Sync display mode override if set
314
+ if (this.displayModeOverride.value !== null && this.displayModeOverride.value !== this.rootStore.displayMode.value) {
315
+ this.rootStore.setDisplayMode(this.displayModeOverride.value);
316
+ }
317
+ }
318
+ /**
319
+ * Persist current state to localStorage.
320
+ */ saveToStorage() {
321
+ try {
322
+ const state = this.getState();
323
+ localStorage.setItem(STORAGE_KEY, JSON.stringify(state));
324
+ } catch (unused) {
325
+ // Silently fail if localStorage is not available
326
+ }
327
+ }
328
+ /**
329
+ * Load persisted state from localStorage.
330
+ * Note: conversationMode is only restored if there's no query param specifying it.
331
+ */ loadFromStorage() {
332
+ try {
333
+ const stored = localStorage.getItem(STORAGE_KEY);
334
+ if (stored) {
335
+ const state = JSON.parse(stored);
336
+ // Only skip restoring conversationMode if there's a query param specifying it
337
+ const urlParams = new URLSearchParams(window.location.search);
338
+ const hasConversationModeParam = urlParams.has("conversation_mode");
339
+ if (hasConversationModeParam) {
340
+ // Query param takes precedence - don't restore from localStorage
341
+ delete state.conversationMode;
342
+ }
343
+ this.setState(state);
344
+ // Detect which preset matches the restored state
345
+ this.currentPreset.value = this.detectCurrentPreset();
346
+ }
347
+ } catch (unused) {
348
+ // Silently fail if localStorage is not available or data is corrupt
349
+ }
350
+ }
351
+ /**
352
+ * Detect which preset matches the current state (if any).
353
+ */ detectCurrentPreset() {
354
+ const currentState = {
355
+ inCall: this.inCall.value,
356
+ videoLoading: this.videoLoading.value,
357
+ preloadedVideoReady: this.preloadedVideoReady.value,
358
+ isReconnecting: this.isReconnecting.value,
359
+ audioConnected: this.audioConnected.value
360
+ };
361
+ // Check each preset to see if it matches the current state
362
+ // Order matters - check more specific presets first
363
+ if (currentState.inCall && !currentState.videoLoading && currentState.isReconnecting) {
364
+ return "reconnecting";
365
+ }
366
+ if (currentState.inCall && !currentState.videoLoading && !currentState.audioConnected) {
367
+ return "connectingAudio";
368
+ }
369
+ if (currentState.inCall && !currentState.videoLoading && currentState.preloadedVideoReady && currentState.audioConnected && !currentState.isReconnecting) {
370
+ return "inCall";
371
+ }
372
+ if (!currentState.inCall && currentState.videoLoading && !currentState.preloadedVideoReady) {
373
+ return "loading";
374
+ }
375
+ if (!currentState.inCall && !currentState.videoLoading && currentState.preloadedVideoReady && !currentState.isReconnecting) {
376
+ return "idle";
377
+ }
378
+ // No matching preset
379
+ return null;
380
+ }
381
+ /**
382
+ * Clear persisted state from localStorage.
383
+ */ clearStorage() {
384
+ try {
385
+ localStorage.removeItem(STORAGE_KEY);
386
+ } catch (unused) {
387
+ // Silently fail
388
+ }
389
+ }
390
+ constructor(rootStore){
391
+ this.rootStore = rootStore;
392
+ // Individual signals for each piece of scenario state
393
+ this.inCall = signals_core_module_d(false);
394
+ this.videoLoading = signals_core_module_d(false);
395
+ this.preloadedVideoReady = signals_core_module_d(true);
396
+ this.isReconnecting = signals_core_module_d(false);
397
+ this.isSilentRestart = signals_core_module_d(false);
398
+ this.audioConnected = signals_core_module_d(true);
399
+ this.micMuted = signals_core_module_d(false);
400
+ this.videoOff = signals_core_module_d(true); // Camera off by default, matches real mode (DeviceStore.isVideoOff = true)
401
+ this.microphoneDevices = signals_core_module_d(DEFAULT_MIC_DEVICES);
402
+ this.cameraDevices = signals_core_module_d(DEFAULT_CAMERA_DEVICES);
403
+ this.selectedMicId = signals_core_module_d("mic-1");
404
+ this.selectedCameraId = signals_core_module_d("cam-1");
405
+ // Optional override for conversation mode - when null, reads from rootStore
406
+ this.conversationModeOverride = signals_core_module_d(null);
407
+ this.displayModeOverride = signals_core_module_d(null);
408
+ /**
409
+ * Conversation mode - reads from rootStore by default, uses override if explicitly set.
410
+ * This ensures query params like ?conversation_mode=voice are respected.
411
+ */ this.conversationMode = signals_core_module_w(()=>{
412
+ const override = this.conversationModeOverride.value;
413
+ if (override !== null) {
414
+ return override;
415
+ }
416
+ return this.rootStore.conversationMode.value;
417
+ });
418
+ /**
419
+ * Current preset name (if any). Computed from state.
420
+ */ this.currentPreset = signals_core_module_d(null);
421
+ /**
422
+ * Whether debug mode is enabled (derived from rootStore).
423
+ */ this.enabled = signals_core_module_w(()=>this.rootStore.isDebugMultimodal.value);
424
+ /**
425
+ * Derived: whether there are no microphones available.
426
+ */ this.noMicrophonesAvailable = signals_core_module_w(()=>this.microphoneDevices.value.length === 0);
427
+ /**
428
+ * Derived: whether there are no cameras available.
429
+ */ this.noCamerasAvailable = signals_core_module_w(()=>this.cameraDevices.value.length === 0);
430
+ /**
431
+ * Derived: show "Connecting audio..." message.
432
+ */ this.showConnecting = signals_core_module_w(()=>this.inCall.value && !this.audioConnected.value);
433
+ /**
434
+ * Derived: show mic controls (hide while connecting audio).
435
+ */ this.showMicControls = signals_core_module_w(()=>this.inCall.value ? this.audioConnected.value : true);
436
+ // Load persisted state on construction
437
+ this.loadFromStorage();
438
+ }
439
+ }
440
+ /**
441
+ * Store for managing debug multimodal scenario state.
442
+ * Only active when `?q_debug_multimodal=1` is in the URL.
443
+ * Persists state to localStorage so you can refresh while iterating.
444
+ */
445
+ /**
446
+ * List of available presets for UI dropdown.
447
+ */ const SCENARIO_PRESET_OPTIONS = [
448
+ {
449
+ value: "idle",
450
+ label: "Idle (not in call)"
451
+ },
452
+ {
453
+ value: "loading",
454
+ label: "Loading / Connecting"
455
+ },
456
+ {
457
+ value: "connectingAudio",
458
+ label: "Connecting audio"
459
+ },
460
+ {
461
+ value: "reconnecting",
462
+ label: "Weak connection / Reconnecting"
463
+ },
464
+ {
465
+ value: "inCall",
466
+ label: "In Call"
467
+ }
468
+ ];
469
+
470
+ export { SCENARIO_PRESET_OPTIONS };
471
+ export default DebugMultimodalScenarioStore;