@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,66 @@
1
+ import { jsxRuntime_module_u } from "../../../../../js/multimodal_v2.js";
2
+ import "../../../styled-system/jsx/index.js";
3
+ import { RichText } from "../../helpers/RichText.js";
4
+ import { styled } from "../../../styled-system/jsx/factory.js";
5
+
6
+
7
+
8
+
9
+ const LINK_TRANSFORMERS = {
10
+ a: (node)=>{
11
+ node.target = "_blank";
12
+ node.rel = "noopener noreferrer";
13
+ }
14
+ };
15
+ const InlinePrivacyDisclosure = (param)=>{
16
+ let { disclosure } = param;
17
+ const item = disclosure.value;
18
+ if (!(item == null ? void 0 : item.markdown)) return null;
19
+ return /*#__PURE__*/ jsxRuntime_module_u(Container, {
20
+ "data-component-name": "InlinePrivacyDisclosure.Container",
21
+ children: /*#__PURE__*/ jsxRuntime_module_u(Message, {
22
+ children: /*#__PURE__*/ jsxRuntime_module_u(RichText, {
23
+ text: item.markdown,
24
+ styled: false,
25
+ elementTransformers: LINK_TRANSFORMERS
26
+ })
27
+ })
28
+ });
29
+ };
30
+ const Container = styled("div", {
31
+ base: {
32
+ display: "flex",
33
+ alignItems: "center",
34
+ justifyContent: "center",
35
+ paddingBlock: "$md",
36
+ paddingInline: "$lg",
37
+ borderRadius: "[12px]",
38
+ border: "[1px solid token($colors.border)]",
39
+ width: "[100%]"
40
+ }
41
+ });
42
+ Container.displayName = "InlinePrivacyDisclosure";
43
+ const Message = styled("span", {
44
+ base: {
45
+ fontSize: "13px",
46
+ lineHeight: "20px",
47
+ color: "$text.muted",
48
+ textAlign: "center",
49
+ "& a": {
50
+ color: "$text.muted",
51
+ textDecoration: "underline",
52
+ textDecorationSkipInk: "none",
53
+ textUnderlinePosition: "from-font",
54
+ cursor: "pointer",
55
+ "&:hover": {
56
+ color: "$text.dark"
57
+ }
58
+ },
59
+ "& p": {
60
+ margin: "[0]"
61
+ }
62
+ }
63
+ });
64
+ Message.displayName = "Message";
65
+
66
+ export { InlinePrivacyDisclosure };
@@ -0,0 +1,70 @@
1
+ import "../../../styled-system/jsx/index.js";
2
+ import { Persisted } from "../../helpers/Persisted.js";
3
+ import { styled } from "../../../styled-system/jsx/factory.js";
4
+
5
+
6
+
7
+ const LinkPreviewContainer = styled("a", {
8
+ base: {
9
+ borderRadius: "[8px]",
10
+ overflow: "hidden",
11
+ display: "flex",
12
+ outline: "1px solid token(colors.$gray.border)",
13
+ outlineOffset: "-1px",
14
+ backgroundColor: "$white.solid",
15
+ textDecoration: "none",
16
+ opacity: 1,
17
+ transition: "opacity 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease",
18
+ "&:focus": {
19
+ outline: "2px solid token(colors.$primary)",
20
+ outlineOffset: "-2px"
21
+ },
22
+ "&:hover": {
23
+ cursor: "pointer",
24
+ boxShadow: "[0 4px 12px rgba(0, 0, 0, 0.1)]",
25
+ transform: "translateY(-2px)"
26
+ }
27
+ },
28
+ variants: {
29
+ hidden: {
30
+ true: {
31
+ opacity: 0,
32
+ visibility: "hidden"
33
+ }
34
+ }
35
+ }
36
+ });
37
+ LinkPreviewContainer.displayName = "LinkPreviewContainer";
38
+ const LinkPreviewImage = styled(Persisted, {
39
+ base: {
40
+ objectFit: "cover",
41
+ width: "[160px]",
42
+ display: "none",
43
+ "&[src]:not([src=''])": {
44
+ display: "block"
45
+ }
46
+ }
47
+ });
48
+ LinkPreviewImage.displayName = "LinkPreviewImage";
49
+ const LinkPreviewBody = styled("div", {
50
+ base: {
51
+ paddingInline: "$lg",
52
+ paddingBlock: "$md"
53
+ }
54
+ });
55
+ LinkPreviewBody.displayName = "LinkPreviewBody";
56
+ const LinkPreviewTitle = styled("div", {
57
+ base: {
58
+ color: "$primary",
59
+ fontWeight: "$semibold"
60
+ }
61
+ });
62
+ LinkPreviewTitle.displayName = "LinkPreviewTitle";
63
+ const LinkPreviewUrl = styled("div", {
64
+ base: {
65
+ color: "$text.muted"
66
+ }
67
+ });
68
+ LinkPreviewUrl.displayName = "LinkPreviewUrl";
69
+
70
+ export { LinkPreviewBody, LinkPreviewContainer, LinkPreviewImage, LinkPreviewTitle, LinkPreviewUrl };
@@ -0,0 +1,88 @@
1
+ import { jsxRuntime_module_u } from "../../../../../js/multimodal_v2.js";
2
+ import "../../../styled-system/jsx/index.js";
3
+ import { styled } from "../../../styled-system/jsx/factory.js";
4
+
5
+ function _extends() {
6
+ _extends = Object.assign || function(target) {
7
+ for(var i = 1; i < arguments.length; i++){
8
+ var source = arguments[i];
9
+ for(var key in source){
10
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
11
+ target[key] = source[key];
12
+ }
13
+ }
14
+ }
15
+ return target;
16
+ };
17
+ return _extends.apply(this, arguments);
18
+ }
19
+ function _object_without_properties_loose(source, excluded) {
20
+ if (source == null) return {};
21
+ var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i;
22
+ for(i = 0; i < sourceKeys.length; i++){
23
+ key = sourceKeys[i];
24
+ if (excluded.indexOf(key) >= 0) continue;
25
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
26
+ target[key] = source[key];
27
+ }
28
+ return target;
29
+ }
30
+
31
+
32
+ const MessageEntry = (_0)=>{
33
+ let { children } = _0, props = _object_without_properties_loose(_0, [
34
+ "children"
35
+ ]);
36
+ return /*#__PURE__*/ jsxRuntime_module_u(Container, _extends({
37
+ "data-component-name": "MessageEntry.Container",
38
+ "data-is-own": props.isOwn
39
+ }, props, {
40
+ children: children
41
+ }));
42
+ };
43
+ const Container = styled("div", {
44
+ base: {
45
+ display: "flex",
46
+ width: "[fit-content]",
47
+ borderRadius: "[8px]",
48
+ wordBreak: "break-word",
49
+ fontSize: "14px",
50
+ lineHeight: "22px",
51
+ textDecoration: "none",
52
+ "&[data-is-own=true]": {
53
+ marginTop: "$sm"
54
+ },
55
+ "&:first-child": {
56
+ marginTop: "$lg"
57
+ }
58
+ },
59
+ variants: {
60
+ isOwn: {
61
+ true: {
62
+ justifyContent: "flex-end",
63
+ marginLeft: "$auto",
64
+ backgroundColor: "[#F2F2F2]",
65
+ color: "$text.dark",
66
+ maxWidth: "[90%]",
67
+ paddingBlock: "$lg",
68
+ paddingInline: "$md"
69
+ },
70
+ false: {
71
+ justifyContent: "flex-start",
72
+ backgroundColor: "$transparent",
73
+ color: "$text.dark",
74
+ borderTopLeftRadius: "4px"
75
+ }
76
+ },
77
+ fullWidth: {
78
+ true: {
79
+ width: "[100%]",
80
+ padding: "$none"
81
+ }
82
+ }
83
+ }
84
+ });
85
+ Container.displayName = "Container";
86
+
87
+ var MessageEntry_Container = /* unused export */ undefined;
88
+ export { MessageEntry, MessageEntry_Container as Container };
@@ -0,0 +1,30 @@
1
+ import { jsxRuntime_module_u } from "../../../../../js/multimodal_v2.js";
2
+ import { SlidesThumbnail } from "../../slides/SlidesThumbnail.js";
3
+ import { MessageEntry } from "./MessageEntry.js";
4
+
5
+
6
+
7
+
8
+ const PresentContentRenderer = (param)=>{
9
+ let { item, context } = param;
10
+ const { t } = context.translationStore;
11
+ const handleClick = ()=>{
12
+ // We may need to load the store here, because the user can click on a
13
+ // slide thumbnail from the conversation history instead of the LLM sharing
14
+ // it via tool call.
15
+ void context.presentArtifactMessage(item);
16
+ };
17
+ return /*#__PURE__*/ jsxRuntime_module_u(MessageEntry, {
18
+ isOwn: false,
19
+ children: /*#__PURE__*/ jsxRuntime_module_u(SlidesThumbnail, {
20
+ message: item,
21
+ onClick: handleClick,
22
+ t: t
23
+ })
24
+ });
25
+ };
26
+ /* export default */ const timeline_PresentContentRenderer = (PresentContentRenderer);
27
+
28
+ var PresentContentRenderer_PresentContentRenderer = /* unused export */ undefined;
29
+ export { PresentContentRenderer_PresentContentRenderer as PresentContentRenderer };
30
+ export default timeline_PresentContentRenderer;
@@ -0,0 +1,279 @@
1
+ import { jsxRuntime_module_u, useComputed } from "../../../../../js/multimodal_v2.js";
2
+ import { PlayIcon } from "../../../images/icons.js";
3
+ import "../../../styled-system/jsx/index.js";
4
+ import { RichText } from "../../helpers/RichText.js";
5
+ import { Button } from "../../shared/Button.js";
6
+ import { MessageEntry } from "./MessageEntry.js";
7
+ import { MaximizedState as types_MaximizedState, StartCallTrigger as types_StartCallTrigger } from "../../../types.js";
8
+ import { styled } from "../../../styled-system/jsx/factory.js";
9
+
10
+
11
+ /** @jsxImportSource preact */
12
+
13
+
14
+
15
+
16
+
17
+
18
+ /**
19
+ * Renders a `present_deck` message in the timeline. Two modes:
20
+ *
21
+ * - Presented on a call: the deck's per-slide talk tracks are available, so we
22
+ * render the presentation as a formatted record — each slide thumbnail
23
+ * followed by its narration. This replaces the realtime API's one-turn
24
+ * transcript, which would otherwise arrive as a single wall of text (the raw
25
+ * transcript is folded into this message server-side and never shown).
26
+ * - Off-call: a "join call" prompt whose button starts the presentation.
27
+ *
28
+ * The mode is a stable property of the message (talk tracks are only ever
29
+ * populated for on-call presentations), so this dispatcher never calls hooks —
30
+ * each sub-component owns its own.
31
+ */ const PresentDeckRenderer = (param)=>{
32
+ let { item, context } = param;
33
+ var _item_slides;
34
+ const presentedSlides = ((_item_slides = item.slides) != null ? _item_slides : []).filter((slide)=>!!slide.talkTrack);
35
+ if (presentedSlides.length > 0) {
36
+ return /*#__PURE__*/ jsxRuntime_module_u(PresentDeckTranscript, {
37
+ item: item,
38
+ context: context
39
+ });
40
+ }
41
+ return /*#__PURE__*/ jsxRuntime_module_u(PresentDeckJoinCard, {
42
+ item: item,
43
+ context: context
44
+ });
45
+ };
46
+ /**
47
+ * The presentation record: each slide's thumbnail followed by its talk track.
48
+ *
49
+ * A presentation can span several `present_deck` messages — the initial share
50
+ * plus any resume after an interruption, where the agent re-shares only the
51
+ * remaining slides (e.g. interrupted on slide 3 of 5 → resume carries just 3-5).
52
+ * Rendering each message on its own would show a fragment that appears to start
53
+ * mid-deck. Instead we render ONE consolidated record on the LAST message for the
54
+ * deck — the union of every slide shown across all its shares, each once, in
55
+ * slide order — and nothing on the earlier ones. When a slide was shown more than
56
+ * once (a resume re-covers the slide it picked up on), the latest share wins, so
57
+ * the talk track reflects what was actually narrated on the resumed run.
58
+ */ function PresentDeckTranscript(param) {
59
+ let { item, context } = param;
60
+ const record = useComputed(()=>{
61
+ var _forDeck_;
62
+ // All shares for this deck, oldest first. Include `item` itself in case it
63
+ // isn't in the message list yet (optimistic render / tests).
64
+ const forDeck = context.messages.value.filter((m)=>m.type === "present_deck" && m.deckId === item.deckId);
65
+ if (!forDeck.some((m)=>m.id === item.id)) forDeck.push(item);
66
+ forDeck.sort((a, b)=>new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
67
+ // Only the last share renders the consolidated record.
68
+ if (((_forDeck_ = forDeck[forDeck.length - 1]) == null ? void 0 : _forDeck_.id) !== item.id) return [];
69
+ const bySlideIndex = new Map();
70
+ for (const message of forDeck){
71
+ var _message_slides;
72
+ for (const slide of (_message_slides = message.slides) != null ? _message_slides : []){
73
+ if (slide.talkTrack) {
74
+ bySlideIndex.set(slide.slideIndex, slide);
75
+ }
76
+ }
77
+ }
78
+ return [
79
+ ...bySlideIndex.values()
80
+ ].sort((a, b)=>a.slideIndex - b.slideIndex);
81
+ });
82
+ if (record.value.length === 0) return null;
83
+ return /*#__PURE__*/ jsxRuntime_module_u(MessageEntry, {
84
+ isOwn: false,
85
+ children: /*#__PURE__*/ jsxRuntime_module_u(Transcript, {
86
+ "data-component-name": "PresentDeckRenderer.Transcript",
87
+ children: record.value.map((slide)=>{
88
+ var _ref, _slide_pageTitle;
89
+ return /*#__PURE__*/ jsxRuntime_module_u(SlideBlock, {
90
+ children: [
91
+ /*#__PURE__*/ jsxRuntime_module_u(SlidePreview, {
92
+ type: "button",
93
+ "aria-label": context.translationStore.t("slides.viewSlide", {
94
+ id: slide.slideIndex + 1
95
+ }),
96
+ onClick: ()=>context.revisitDeckSlide(item, slide.slideIndex, slide.pageTitle),
97
+ children: /*#__PURE__*/ jsxRuntime_module_u(SlidePreviewImage, {
98
+ crossOrigin: "anonymous",
99
+ src: slide.imageUrl,
100
+ alt: (_ref = (_slide_pageTitle = slide.pageTitle) != null ? _slide_pageTitle : item.deckTitle) != null ? _ref : ""
101
+ })
102
+ }),
103
+ /*#__PURE__*/ jsxRuntime_module_u(RichText, {
104
+ text: slide.talkTrack,
105
+ animated: false,
106
+ paragraphSpacing: false
107
+ })
108
+ ]
109
+ }, slide.pageId + "-" + slide.slideIndex);
110
+ })
111
+ })
112
+ });
113
+ }
114
+ /**
115
+ * Off-call "join call" prompt. Mirrors PresentVideoRenderer — decks are
116
+ * call-gated, so the deck itself only plays in the maximized overlay once a call
117
+ * is in progress.
118
+ */ function PresentDeckJoinCard(param) {
119
+ let { item, context } = param;
120
+ const { hidden, thumbnailUrl, ariaLabel, startLabel, handleStartDeck } = usePresentDeckJoinCard({
121
+ item,
122
+ context
123
+ });
124
+ if (hidden) return null;
125
+ return /*#__PURE__*/ jsxRuntime_module_u(MessageEntry, {
126
+ isOwn: false,
127
+ children: /*#__PURE__*/ jsxRuntime_module_u(Card, {
128
+ "data-component-name": "PresentDeckRenderer.Card",
129
+ children: [
130
+ /*#__PURE__*/ jsxRuntime_module_u(ThumbnailFrame, {
131
+ children: thumbnailUrl && // Every slide load must be crossorigin, here and everywhere else. The assets
132
+ // origin only sends `Access-Control-Allow-Origin` (and `Vary: Origin`) when the
133
+ // request carries an `Origin` header, so a plain <img> caches a response with
134
+ // neither, and the browser then serves that ACAO-less entry to a later
135
+ // crossorigin request for the same url, which fails the CORS check. This card
136
+ // previews the deck's FIRST slide off-call, so it was the plain load that
137
+ // poisoned slide 1 for the overlay and the perception capture that followed.
138
+ /*#__PURE__*/ jsxRuntime_module_u(ThumbnailImage, {
139
+ src: thumbnailUrl,
140
+ alt: ariaLabel,
141
+ crossOrigin: "anonymous"
142
+ })
143
+ }),
144
+ /*#__PURE__*/ jsxRuntime_module_u(Button, {
145
+ variant: "primary",
146
+ size: "md",
147
+ iconOnly: true,
148
+ "aria-label": startLabel,
149
+ onClick: handleStartDeck,
150
+ children: /*#__PURE__*/ jsxRuntime_module_u(PlayIcon, {})
151
+ })
152
+ ]
153
+ })
154
+ });
155
+ }
156
+ function usePresentDeckJoinCard(param) {
157
+ let { item, context } = param;
158
+ var _ref, _item_deckTitle;
159
+ const { t } = context.translationStore;
160
+ // The tool can fire multiple times for the same deck (navigating slides). Only
161
+ // show the card for the last message of a given deck — one "join call" prompt
162
+ // is enough. Walk backwards (no findLast — the widget runs in old browsers).
163
+ const lastPresentDeck = useComputed(()=>{
164
+ const visible = context.messages.visible.value;
165
+ for(let i = visible.length - 1; i >= 0; i--){
166
+ const m = visible[i];
167
+ if (m.type === "present_deck" && m.deckId === item.deckId) {
168
+ return m;
169
+ }
170
+ }
171
+ return undefined;
172
+ });
173
+ // Hidden when: a deck is up in the overlay (where it plays on a call); text-only
174
+ // mode has no call capability; a call is already in progress; or this isn't the
175
+ // last card for the deck.
176
+ const hidden = useComputed(()=>{
177
+ var _context_artifact_message_value;
178
+ return context.maximizedState.value === types_MaximizedState.ARTIFACT && ((_context_artifact_message_value = context.artifact.message.value) == null ? void 0 : _context_artifact_message_value.type) === "present_deck" || context.conversationMode.text.value || context.callInProgress.value || lastPresentDeck.value != null && lastPresentDeck.value.id !== item.id;
179
+ });
180
+ const handleStartDeck = ()=>{
181
+ if (context.callInProgress.peek()) return;
182
+ context.getCallUiAdapter().actions.startCall({
183
+ trigger: {
184
+ type: types_StartCallTrigger.StartDeck,
185
+ deckId: item.deckId,
186
+ slideIndex: item.slideIndex
187
+ }
188
+ });
189
+ };
190
+ return {
191
+ hidden: hidden.value,
192
+ thumbnailUrl: item.imageUrl,
193
+ ariaLabel: (_ref = (_item_deckTitle = item.deckTitle) != null ? _item_deckTitle : item.pageTitle) != null ? _ref : "",
194
+ startLabel: t("presentation.start"),
195
+ handleStartDeck
196
+ };
197
+ }
198
+ const Card = styled("div", {
199
+ base: {
200
+ display: "flex",
201
+ flexDirection: "column",
202
+ gap: "$sm",
203
+ padding: "$lg",
204
+ borderRadius: "[8px]",
205
+ outline: "1px solid token(colors.$gray.border)",
206
+ outlineOffset: "-1px",
207
+ backgroundColor: "$white.solid"
208
+ }
209
+ });
210
+ Card.displayName = "PresentDeckCard";
211
+ const Transcript = styled("div", {
212
+ base: {
213
+ display: "flex",
214
+ flexDirection: "column",
215
+ gap: "$lg"
216
+ }
217
+ });
218
+ Transcript.displayName = "PresentDeckTranscript";
219
+ const SlideBlock = styled("div", {
220
+ base: {
221
+ display: "flex",
222
+ flexDirection: "column",
223
+ gap: "$sm"
224
+ }
225
+ });
226
+ SlideBlock.displayName = "PresentDeckSlideBlock";
227
+ // Matches the slide-image preview size used elsewhere (SlidesThumbnail): a
228
+ // fixed 200px width at the slide's natural aspect ratio, not a full-width crop.
229
+ // A button so clicking re-opens the slide in the viewer.
230
+ const SlidePreview = styled("button", {
231
+ base: {
232
+ width: "[200px]",
233
+ padding: "$none",
234
+ border: "none",
235
+ borderRadius: "md",
236
+ overflow: "hidden",
237
+ cursor: "pointer",
238
+ backgroundColor: "$gray"
239
+ }
240
+ });
241
+ SlidePreview.displayName = "PresentDeckSlidePreview";
242
+ const SlidePreviewImage = styled("img", {
243
+ base: {
244
+ width: "[100%]",
245
+ height: "[auto]",
246
+ display: "block"
247
+ }
248
+ });
249
+ SlidePreviewImage.displayName = "PresentDeckSlidePreviewImage";
250
+ // Fits the slide at its natural aspect, like SlidePreview above. A fixed 16:9 frame
251
+ // with an object-fit: cover image centre-cropped a portrait slide, cutting off its
252
+ // title; a deck may contain pages of any shape, so the frame takes the slide's.
253
+ // With no image to take a shape from, keep the 16:9 placeholder the frame used to
254
+ // be so the card doesn't collapse to a bare button.
255
+ const ThumbnailFrame = styled("div", {
256
+ base: {
257
+ width: "[100%]",
258
+ overflow: "hidden",
259
+ borderRadius: "[8px]",
260
+ backgroundColor: "$gray",
261
+ "&:empty": {
262
+ aspectRatio: "[16 / 9]"
263
+ }
264
+ }
265
+ });
266
+ ThumbnailFrame.displayName = "PresentDeckThumbnailFrame";
267
+ const ThumbnailImage = styled("img", {
268
+ base: {
269
+ width: "[100%]",
270
+ height: "[auto]",
271
+ display: "block"
272
+ }
273
+ });
274
+ ThumbnailImage.displayName = "PresentDeckThumbnailImage";
275
+ /* export default */ const timeline_PresentDeckRenderer = (PresentDeckRenderer);
276
+
277
+ var PresentDeckRenderer_PresentDeckRenderer = /* unused export */ undefined;
278
+ export { PresentDeckRenderer_PresentDeckRenderer as PresentDeckRenderer };
279
+ export default timeline_PresentDeckRenderer;
@@ -0,0 +1,131 @@
1
+ import { hooks_module_T, jsxRuntime_module_u, useComputed } from "../../../../../js/multimodal_v2.js";
2
+ import { PlayIcon } from "../../../images/icons.js";
3
+ import "../../../styled-system/jsx/index.js";
4
+ import { Thumbnail } from "../../helpers/Thumbnail.js";
5
+ import { Button } from "../../shared/Button.js";
6
+ import { MessageEntry } from "./MessageEntry.js";
7
+ import { MaximizedState as types_MaximizedState, StartCallTrigger as types_StartCallTrigger } from "../../../types.js";
8
+ import { styled } from "../../../styled-system/jsx/factory.js";
9
+
10
+
11
+ /** @jsxImportSource preact */
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+ const PresentVideoRenderer = (param)=>{
20
+ let { item, context } = param;
21
+ const { hidden, ariaLabel, startLabel, timestamp, handleStartPresentation } = usePresentVideoRenderer({
22
+ item,
23
+ context
24
+ });
25
+ if (hidden) return null;
26
+ return /*#__PURE__*/ jsxRuntime_module_u(MessageEntry, {
27
+ isOwn: false,
28
+ children: /*#__PURE__*/ jsxRuntime_module_u(Card, {
29
+ "data-component-name": "PresentVideoRenderer.Card",
30
+ children: [
31
+ /*#__PURE__*/ jsxRuntime_module_u(ThumbnailFrame, {
32
+ children: /*#__PURE__*/ jsxRuntime_module_u(Thumbnail, {
33
+ videoUrl: item.videoUrl,
34
+ timestamp: timestamp,
35
+ "aria-label": ariaLabel
36
+ })
37
+ }),
38
+ /*#__PURE__*/ jsxRuntime_module_u(Button, {
39
+ variant: "primary",
40
+ size: "md",
41
+ iconOnly: true,
42
+ "aria-label": startLabel,
43
+ onClick: handleStartPresentation,
44
+ children: /*#__PURE__*/ jsxRuntime_module_u(PlayIcon, {})
45
+ })
46
+ ]
47
+ })
48
+ });
49
+ };
50
+ function usePresentVideoRenderer(param) {
51
+ let { item, context } = param;
52
+ var _item_presentationTitle;
53
+ const { t } = context.translationStore;
54
+ // The tool fires per section, so multiple present_video messages arrive.
55
+ // Only show the card for the last one — one "Join call" prompt is enough.
56
+ // Memoized so we only re-scan the timeline when the visible messages change.
57
+ // Avoid Array.prototype.findLast (ES2023) since the widget runs in arbitrary
58
+ // visitor browsers; walk backwards to find the last matching message instead.
59
+ const lastPresentVideo = useComputed(()=>{
60
+ const visible = context.messages.visible.value;
61
+ for(let i = visible.length - 1; i >= 0; i--){
62
+ const m = visible[i];
63
+ if (m.type === "present_video" && m.presentationId === item.presentationId) {
64
+ return m;
65
+ }
66
+ }
67
+ return undefined;
68
+ });
69
+ // The card is hidden when:
70
+ // - In a call, the video plays in the artifact overlay (no timeline card needed).
71
+ // - Text-only mode has no call capability.
72
+ // - A call is already in progress; read reactively so dismissing the artifact
73
+ // mid-call doesn't bring the now-inert card back.
74
+ // - This isn't the last present_video card for the presentation.
75
+ const hidden = useComputed(()=>{
76
+ var _context_artifact_message_value;
77
+ return context.maximizedState.value === types_MaximizedState.ARTIFACT && ((_context_artifact_message_value = context.artifact.message.value) == null ? void 0 : _context_artifact_message_value.type) === "present_video" || context.conversationMode.text.value || context.callInProgress.value || lastPresentVideo.value != null && lastPresentVideo.value.id !== item.id;
78
+ });
79
+ const handleStartPresentation = ()=>{
80
+ if (context.callInProgress.peek()) return;
81
+ context.getCallUiAdapter().actions.startCall({
82
+ trigger: {
83
+ type: types_StartCallTrigger.StartPresentation,
84
+ presentationId: item.presentationId,
85
+ sectionPosition: item.sectionPosition
86
+ }
87
+ });
88
+ };
89
+ // A second in, past the black or title frame many videos open on, clamped to this section:
90
+ // Thumbnail only clamps to the whole video, so a sub-second section would otherwise sample a
91
+ // frame belonging to the next one.
92
+ const timestamp = hooks_module_T(()=>Math.min(item.startTime + 1, Math.max(item.endTime - 0.001, item.startTime)), [
93
+ item.startTime,
94
+ item.endTime
95
+ ]);
96
+ return {
97
+ hidden: hidden.value,
98
+ ariaLabel: (_item_presentationTitle = item.presentationTitle) != null ? _item_presentationTitle : item.sectionTitle,
99
+ startLabel: t("presentation.start"),
100
+ handleStartPresentation,
101
+ timestamp
102
+ };
103
+ }
104
+ const Card = styled("div", {
105
+ base: {
106
+ display: "flex",
107
+ flexDirection: "column",
108
+ gap: "$sm",
109
+ padding: "$lg",
110
+ borderRadius: "[8px]",
111
+ outline: "1px solid token(colors.$gray.border)",
112
+ outlineOffset: "-1px",
113
+ backgroundColor: "$white.solid"
114
+ }
115
+ });
116
+ Card.displayName = "PresentVideoCard";
117
+ const ThumbnailFrame = styled("div", {
118
+ base: {
119
+ width: "[100%]",
120
+ aspectRatio: "[16 / 9]",
121
+ overflow: "hidden",
122
+ borderRadius: "[8px]",
123
+ backgroundColor: "$gray"
124
+ }
125
+ });
126
+ ThumbnailFrame.displayName = "ThumbnailFrame";
127
+ /* export default */ const timeline_PresentVideoRenderer = (PresentVideoRenderer);
128
+
129
+ var PresentVideoRenderer_PresentVideoRenderer = /* unused export */ undefined;
130
+ export { PresentVideoRenderer_PresentVideoRenderer as PresentVideoRenderer };
131
+ export default timeline_PresentVideoRenderer;