@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,170 @@
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 { Form } from "./Form.js";
5
+ import { styled } from "../../styled-system/jsx/factory.js";
6
+
7
+ /** @jsxImportSource preact */
8
+
9
+
10
+
11
+ const FieldRequest = (param)=>{
12
+ let { rootStore } = param;
13
+ const { fieldRequestStore, displayMode } = rootStore;
14
+ const store = fieldRequestStore.value;
15
+ if (!(store == null ? void 0 : store.activeFieldRequestMessage.value)) {
16
+ return null;
17
+ }
18
+ const message = store.activeFieldRequestMessage.value;
19
+ const isCollapsed = displayMode.collapsedCenter.value || displayMode.collapsedRight.value;
20
+ const barebone = message.fieldType === "picklist" || message.fieldType === "multi_picklist";
21
+ const shouldShowMessage = !message.hideText && message.text && isCollapsed;
22
+ // Full variant: render form with ChatComposer-like styling
23
+ return /*#__PURE__*/ jsxRuntime_module_u(Container, {
24
+ "data-component-name": "FieldRequest.Container",
25
+ displayMode: displayMode,
26
+ children: /*#__PURE__*/ jsxRuntime_module_u(ContentsWrapper, {
27
+ "data-component-name": "FieldRequest.ContentsWrapper",
28
+ displayMode: displayMode,
29
+ barebone: barebone,
30
+ children: [
31
+ shouldShowMessage && /*#__PURE__*/ jsxRuntime_module_u(MessageText, {
32
+ children: /*#__PURE__*/ jsxRuntime_module_u(RichText, {
33
+ text: message.text
34
+ })
35
+ }),
36
+ !rootStore.input.isAnchored.value && /*#__PURE__*/ jsxRuntime_module_u(Form, {
37
+ message: message,
38
+ rootStore: rootStore
39
+ })
40
+ ]
41
+ })
42
+ });
43
+ };
44
+ // Container matches ChatComposer's Container styling
45
+ const Container = styled("div", {
46
+ base: {
47
+ width: "[100%]",
48
+ display: "flex",
49
+ flexDirection: "column",
50
+ transition: "[margin-inline 200ms ease-out]"
51
+ },
52
+ variants: {
53
+ displayMode: {
54
+ collapsed_center: {
55
+ borderRadius: "[8px]",
56
+ boxShadow: "[0 0 24px rgba(0, 0, 0, 0.12)]",
57
+ position: "relative",
58
+ "& > [data-chat-controls]": {
59
+ opacity: 0,
60
+ pointerEvents: "none"
61
+ },
62
+ "&:hover > [data-chat-controls]": {
63
+ opacity: 1,
64
+ pointerEvents: "auto"
65
+ },
66
+ _touchDevice: {
67
+ "& > [data-chat-controls]": {
68
+ opacity: 1,
69
+ pointerEvents: "auto"
70
+ }
71
+ }
72
+ },
73
+ collapsed_right: {
74
+ borderRadius: "[8px]",
75
+ boxShadow: "[0 0 24px rgba(0, 0, 0, 0.12)]",
76
+ position: "relative",
77
+ "& > [data-chat-controls]": {
78
+ opacity: 0,
79
+ pointerEvents: "none"
80
+ },
81
+ "&:hover > [data-chat-controls]": {
82
+ opacity: 1,
83
+ pointerEvents: "auto"
84
+ },
85
+ _touchDevice: {
86
+ "& > [data-chat-controls]": {
87
+ opacity: 1,
88
+ pointerEvents: "auto"
89
+ }
90
+ }
91
+ },
92
+ closed: {
93
+ backgroundColor: "$transparent",
94
+ borderRadius: "[0px]",
95
+ border: "none",
96
+ boxShadow: "$none",
97
+ gap: "$sm",
98
+ paddingBottom: "$none"
99
+ },
100
+ sidebar: {
101
+ border: "none",
102
+ boxShadow: "$none",
103
+ gap: "$sm",
104
+ paddingBottom: "$md",
105
+ marginInline: "$xl"
106
+ },
107
+ docked: {
108
+ border: "none",
109
+ boxShadow: "$none",
110
+ gap: "$sm",
111
+ paddingBottom: "$md"
112
+ }
113
+ }
114
+ }
115
+ });
116
+ Container.displayName = "Container";
117
+ // ContentsWrapper matches ChatComposer's ContentsWrapper styling
118
+ const ContentsWrapper = styled("div", {
119
+ base: {
120
+ width: "[100%]"
121
+ },
122
+ variants: {
123
+ displayMode: {
124
+ collapsed_center: {
125
+ backgroundColor: "$white.solid",
126
+ borderRadius: "[6px 6px 0 0]",
127
+ overflow: "hidden"
128
+ },
129
+ collapsed_right: {
130
+ backgroundColor: "$white.solid",
131
+ borderRadius: "[6px 6px 0 0]",
132
+ overflow: "hidden"
133
+ },
134
+ closed: {
135
+ backgroundColor: "[#FAFAFA]",
136
+ borderRadius: "[8px]"
137
+ },
138
+ sidebar: {
139
+ backgroundColor: "[#FAFAFA]",
140
+ borderRadius: "[8px]",
141
+ boxShadow: "[0px 1px 3px 0px rgba(0, 0, 0, 0.06)]"
142
+ },
143
+ docked: {
144
+ backgroundColor: "[#FAFAFA]",
145
+ borderRadius: "[8px]",
146
+ boxShadow: "[0px 1px 3px 0px rgba(0, 0, 0, 0.06)]"
147
+ }
148
+ },
149
+ barebone: {
150
+ true: {
151
+ boxShadow: "$none"
152
+ }
153
+ }
154
+ }
155
+ });
156
+ ContentsWrapper.displayName = "ContentsWrapper";
157
+ const MessageText = styled("div", {
158
+ base: {
159
+ wordBreak: "break-word",
160
+ fontSize: "14px",
161
+ lineHeight: "22px",
162
+ color: "$text.dark",
163
+ paddingInline: "$lg",
164
+ paddingTop: "$lg"
165
+ }
166
+ });
167
+ MessageText.displayName = "MessageText";
168
+ /* export default */ const field_request = (FieldRequest);
169
+
170
+ export default field_request;
@@ -0,0 +1,37 @@
1
+ import { useComputed, jsxRuntime_module_u, utils_module_o, useSignalEffect } from "../../../../js/multimodal_v2.js";
2
+ import { AutoScroller } from "../../utils/auto_scroller.js";
3
+
4
+ /** @jsxImportSource preact */
5
+
6
+
7
+
8
+ const AutoScroll = (param)=>{
9
+ let { children, className } = param;
10
+ const containerRef = utils_module_o(null);
11
+ const scrollerRef = utils_module_o(null);
12
+ // Use useComputed to memoize children while reacting to signal changes
13
+ const childrenComponent = useComputed(()=>{
14
+ if (!scrollerRef.value) return null;
15
+ return children({
16
+ isUserScrolling: scrollerRef.value.isUserScrolling,
17
+ scrollToBottom: scrollerRef.value.scrollToBottom
18
+ });
19
+ });
20
+ useSignalEffect(()=>{
21
+ if (containerRef.value) {
22
+ scrollerRef.value = new AutoScroller(containerRef.value);
23
+ }
24
+ return ()=>{
25
+ if (scrollerRef.value) {
26
+ scrollerRef.value.dispose();
27
+ }
28
+ };
29
+ });
30
+ return /*#__PURE__*/ jsxRuntime_module_u("div", {
31
+ ref: containerRef,
32
+ className: className,
33
+ children: childrenComponent
34
+ });
35
+ };
36
+
37
+ export { AutoScroll };
@@ -0,0 +1,53 @@
1
+ import { preact_module_x } from "../../../../js/multimodal_v2.js";
2
+ import { isDebugMode } from "../../../../src/smart_website/utils.js";
3
+ import { serverLogger } from "../../../server-logger.js";
4
+ import { getSentryClient } from "../../../widget/sentry.js";
5
+
6
+ /** @jsxImportSource preact */
7
+
8
+
9
+
10
+ /**
11
+ * ErrorBoundary catches JavaScript errors in child components and reports them to Sentry.
12
+ *
13
+ * Note: Error boundaries require class components in Preact/React - this is an exception
14
+ * to the "avoid class components" rule as there is no functional equivalent.
15
+ */ class ErrorBoundary extends preact_module_x {
16
+ static getDerivedStateFromError() {
17
+ return {
18
+ hasError: true
19
+ };
20
+ }
21
+ componentDidCatch(error) {
22
+ var _getSentryClient, _this_props_rootStore;
23
+ (_getSentryClient = getSentryClient({
24
+ project: "multimodal"
25
+ })) == null ? void 0 : _getSentryClient.captureException(error);
26
+ if ((_this_props_rootStore = this.props.rootStore) == null ? void 0 : _this_props_rootStore.featureFlags.piperXAgent) {
27
+ serverLogger.serverLog({
28
+ message: "multimodal_client_error",
29
+ extra: {
30
+ method: "inc"
31
+ }
32
+ });
33
+ }
34
+ if (isDebugMode()) {
35
+ // eslint-disable-next-line no-console
36
+ console.error("[Multimodal - ErrorBoundary] " + error.message, error.stack);
37
+ }
38
+ }
39
+ render() {
40
+ if (this.state.hasError) {
41
+ var _this_props_fallback;
42
+ return (_this_props_fallback = this.props.fallback) != null ? _this_props_fallback : null;
43
+ }
44
+ return this.props.children;
45
+ }
46
+ constructor(...args){
47
+ super(...args), this.state = {
48
+ hasError: false
49
+ };
50
+ }
51
+ }
52
+
53
+ export { ErrorBoundary };
@@ -0,0 +1,26 @@
1
+ import { jsxRuntime_module_u } from "../../../../js/multimodal_v2.js";
2
+
3
+ /** @jsxImportSource preact */
4
+ /**
5
+ * Semantic dialog wrapper — provides `role="dialog"`, `aria-modal`, and
6
+ * Escape-key handling. All focus management is handled externally by FocusGate.
7
+ */ const FocusTrapDialog = (param)=>{
8
+ let { active, onClose, ariaLabel, children } = param;
9
+ const onKeyDown = (e)=>{
10
+ if (!active.value) return;
11
+ if (e.key === "Escape") {
12
+ // Prevent the event from bubbling to outer dialogs or the page.
13
+ e.stopPropagation();
14
+ onClose();
15
+ }
16
+ };
17
+ return /*#__PURE__*/ jsxRuntime_module_u("div", {
18
+ role: active.value ? "dialog" : undefined,
19
+ "aria-modal": active.value ? "true" : undefined,
20
+ "aria-label": active.value ? (ariaLabel == null ? void 0 : ariaLabel.value) || "Dialog" : undefined,
21
+ onKeyDown: onKeyDown,
22
+ children: children
23
+ });
24
+ };
25
+
26
+ export { FocusTrapDialog };
@@ -0,0 +1,94 @@
1
+ import { jsxRuntime_module_u, hooks_module_y, hooks_module_A } from "../../../../js/multimodal_v2.js";
2
+
3
+ /** @jsxImportSource preact */
4
+
5
+ const LINK_TAG_PATTERN = /<a[^>]*\shref\s*=/i;
6
+ /** Returns true if the HTML string contains at least one anchor element with an href attribute. */ function hasLinks(html) {
7
+ if (!html) return false;
8
+ return LINK_TAG_PATTERN.test(html);
9
+ }
10
+ /**
11
+ * Extracts link modules from a rendered DOM element by querying for `<a href>` elements.
12
+ * Falls back to the element's full text content with an empty URL if no links are found.
13
+ */ function extractModulesFromElement(el) {
14
+ var _ref;
15
+ var _el_textContent;
16
+ const links = el.querySelectorAll("a[href]");
17
+ if (links.length > 0) {
18
+ return Array.from(links).filter(isElementVisible).map((link)=>{
19
+ var _ref, _link_getAttribute;
20
+ var _link_textContent;
21
+ return {
22
+ name: (_ref = (_link_textContent = link.textContent) == null ? void 0 : _link_textContent.trim()) != null ? _ref : "",
23
+ url: (_link_getAttribute = link.getAttribute("href")) != null ? _link_getAttribute : ""
24
+ };
25
+ }).filter((module)=>module.name.length > 0 || module.url.length > 0);
26
+ }
27
+ const fallbackName = (_ref = (_el_textContent = el.textContent) == null ? void 0 : _el_textContent.trim()) != null ? _ref : "";
28
+ return fallbackName ? [
29
+ {
30
+ name: fallbackName,
31
+ url: ""
32
+ }
33
+ ] : [];
34
+ }
35
+ /**
36
+ * Wraps content and fires a content impression event when the element
37
+ * enters the viewport. Each message ID is tracked so impressions fire only once.
38
+ */ const ImpressionTracker = (param)=>{
39
+ let { messageId, impressedIds, onImpression, modules: explicitModules, children } = param;
40
+ const ref = hooks_module_A(null);
41
+ const impressedIdsRef = hooks_module_A(impressedIds);
42
+ const onImpressionRef = hooks_module_A(onImpression);
43
+ const explicitModulesRef = hooks_module_A(explicitModules);
44
+ hooks_module_y(()=>{
45
+ impressedIdsRef.current = impressedIds;
46
+ onImpressionRef.current = onImpression;
47
+ explicitModulesRef.current = explicitModules;
48
+ }, [
49
+ impressedIds,
50
+ onImpression,
51
+ explicitModules
52
+ ]);
53
+ hooks_module_y(()=>{
54
+ const el = ref.current;
55
+ if (!el || impressedIdsRef.current.has(messageId)) return;
56
+ const observer = new IntersectionObserver((entries)=>{
57
+ var _explicitModulesRef_current;
58
+ const entry = entries[0];
59
+ if (!(entry == null ? void 0 : entry.isIntersecting)) return;
60
+ const modules = (_explicitModulesRef_current = explicitModulesRef.current) != null ? _explicitModulesRef_current : extractModulesFromElement(el);
61
+ if (modules.length === 0) return;
62
+ impressedIdsRef.current.add(messageId);
63
+ observer.disconnect();
64
+ onImpressionRef.current(modules);
65
+ }, {
66
+ threshold: 0.5
67
+ });
68
+ observer.observe(el);
69
+ return ()=>observer.disconnect();
70
+ }, [
71
+ messageId
72
+ ]);
73
+ return /*#__PURE__*/ jsxRuntime_module_u("div", {
74
+ ref: ref,
75
+ "data-qualified-content-impression-region": "",
76
+ children: children
77
+ });
78
+ };
79
+ /**
80
+ * Returns false if the element or any ancestor has `display:none` or `visibility:hidden`
81
+ * applied via inline styles. Note: `getComputedStyle` returns empty strings for CSS-class-applied
82
+ * properties in JSDOM, so class-based hiding is not detectable in tests.
83
+ */ function isElementVisible(el) {
84
+ let current = el;
85
+ while(current){
86
+ const style = window.getComputedStyle(current);
87
+ if (style.display === "none" || style.visibility === "hidden") return false;
88
+ current = current.parentElement;
89
+ }
90
+ return true;
91
+ }
92
+
93
+ var ImpressionTracker_extractModulesFromElement = /* unused export */ undefined;
94
+ export { ImpressionTracker, ImpressionTracker_extractModulesFromElement as extractModulesFromElement, hasLinks };
@@ -0,0 +1,37 @@
1
+ import { compat_module_P, preact_module_k, jsxRuntime_module_u, utils_module_e } from "../../../../js/multimodal_v2.js";
2
+
3
+ /** @jsxImportSource preact */
4
+
5
+
6
+
7
+ /**
8
+ * Renders a list of items using a set of renderers.
9
+ * The items are expected to have a `type` property that is used to index the renderers.
10
+ *
11
+ * @param context - The context to pass to the renderers.
12
+ * @param items - The items to render.
13
+ * @param renderers - The renderers to use indexed by the item type.
14
+ * @param noItemsFallback - The fallback to use if there are no items.
15
+ * @returns The rendered list.
16
+ */ const ListRenderer = (param)=>{
17
+ let { context, items, renderers, noItemsFallback } = param;
18
+ return /*#__PURE__*/ jsxRuntime_module_u(utils_module_e, {
19
+ each: items,
20
+ fallback: noItemsFallback,
21
+ children: (item)=>{
22
+ const Component = renderers[item.type];
23
+ if (!Component) {
24
+ return /*#__PURE__*/ jsxRuntime_module_u(preact_module_k, {}, item.id);
25
+ }
26
+ return /*#__PURE__*/ jsxRuntime_module_u(compat_module_P, {
27
+ fallback: null,
28
+ children: /*#__PURE__*/ jsxRuntime_module_u(Component, {
29
+ item: item,
30
+ context: context
31
+ })
32
+ }, item.id);
33
+ }
34
+ });
35
+ };
36
+
37
+ export { ListRenderer };
@@ -0,0 +1,76 @@
1
+ import { preact_module_k, signals_core_module_w, jsxRuntime_module_u, hooks_module_T } from "../../../../js/multimodal_v2.js";
2
+ import { useTranslationStore } from "../../stores/translation_store.js";
3
+ import { isSignalike } from "../../utils/signals.js";
4
+
5
+
6
+
7
+
8
+
9
+
10
+ /**
11
+ * A simple wrapper component that resolves a Localization to a reactive string.
12
+ * Useful for rendering localized text directly in JSX.
13
+ *
14
+ * @param loc - The localization object or string to resolve
15
+ * @returns A fragment containing the translated string
16
+ *
17
+ * @example
18
+ * <span><Text id="hello.world" /></span>
19
+ */ const Text = (props)=>{
20
+ const text = useLocalization("loc" in props ? props.loc : props);
21
+ return /*#__PURE__*/ jsxRuntime_module_u(preact_module_k, {
22
+ children: text.value
23
+ });
24
+ };
25
+ /**
26
+ * Hook that resolves a Localization (or signal containing one) to a translated string.
27
+ * Handles three cases:
28
+ * 1. Undefined/empty input → returns empty string
29
+ * 2. Plain string → returns the string as-is (no translation)
30
+ * 3. Localization object → looks up the translation key and interpolates fields
31
+ *
32
+ * This is more useful for shared components that can be localized
33
+ *
34
+ * @param loc - A Localization value or a signal containing one
35
+ * @returns A computed signal that reactively updates when the localization or translations change
36
+ */ function useLocalization(loc) {
37
+ const store = useTranslationStore();
38
+ // Setup dual reactivity so that we react to plain state change across re-renders and also signal changes
39
+ // Basically if loc is not a signal but it's value changes then the useMemo will create a new computed signal
40
+ // If loc is in fact a signal, useMemo will never re-render and computed will just change automatically when the loc signal changes
41
+ return hooks_module_T(()=>signals_core_module_w(()=>localize(store, loc)), [
42
+ store,
43
+ loc
44
+ ]);
45
+ }
46
+ function t(id, fields) {
47
+ if (typeof id === "function") {
48
+ return {
49
+ getId: id,
50
+ fields
51
+ };
52
+ }
53
+ return {
54
+ id,
55
+ fields
56
+ };
57
+ }
58
+ function localize(store, loc) {
59
+ var _ref, _localization_fields;
60
+ const localization = isSignalike(loc) ? loc.value : loc;
61
+ if (!localization) return "";
62
+ if (typeof localization === "string" || typeof localization === "number") return localization.toString();
63
+ const id = (_ref = localization.getId == null ? void 0 : localization.getId.call(localization)) != null ? _ref : localization.id;
64
+ if (!id) return "";
65
+ const fields = Object.fromEntries(Object.entries((_localization_fields = localization.fields) != null ? _localization_fields : {}).map((param)=>{
66
+ let [key, value] = param;
67
+ return [
68
+ key,
69
+ localize(store, value)
70
+ ];
71
+ }));
72
+ return (store == null ? void 0 : store.t(id, fields)) || "";
73
+ }
74
+
75
+ var Localization_localize = /* unused export */ undefined;
76
+ export { Localization_localize as localize, Text, t, useLocalization };
@@ -0,0 +1,166 @@
1
+ import { jsxRuntime_module_u, hooks_module_y, hooks_module_A } from "../../../../js/multimodal_v2.js";
2
+ import { AssetsPreloader } from "../../assets_preloader.js";
3
+ import "../../styled-system/jsx/index.js";
4
+ import { getCache } from "../../utils/multimodal_cache.js";
5
+ import { styled } from "../../styled-system/jsx/factory.js";
6
+
7
+ /* eslint-disable no-continue */ function _object_without_properties_loose(source, excluded) {
8
+ if (source == null) return {};
9
+ var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i;
10
+ for(i = 0; i < sourceKeys.length; i++){
11
+ key = sourceKeys[i];
12
+ if (excluded.indexOf(key) >= 0) continue;
13
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
14
+ target[key] = source[key];
15
+ }
16
+ return target;
17
+ }
18
+
19
+
20
+
21
+
22
+
23
+ const CACHE_KEY = "components.helpers.Persisted";
24
+ /**
25
+ * A component that creates and persists DOM elements across re-renders using a cache.
26
+ * This is useful for elements like video or audio where you want to maintain state
27
+ * (e.g., playback position, loaded data) even when the component unmounts and remounts.
28
+ *
29
+ * Elements are cached by their `id` prop and reused across renders, preventing
30
+ * recreation of the DOM element and loss of state.
31
+ *
32
+ * @template T - The type of HTML element to create (e.g., "video", "audio", "iframe")
33
+ * @param props - Component props
34
+ * @param props.id - Unique identifier for caching this specific element
35
+ * @param props.elementType - The HTML element type to create
36
+ * @param props.attributes - Additional HTML attributes to apply to the element
37
+ * @returns A container component that manages the persisted element
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <Persisted
42
+ * id="video-player"
43
+ * elementType="video"
44
+ * src={videoUrl}
45
+ * controls={true}
46
+ * />
47
+ * ```
48
+ */ const Persisted = (props)=>{
49
+ const cache = getCache(CACHE_KEY, ()=>new Map(AssetsPreloader.preloadedAssets));
50
+ const { elementType, innerRef, children } = props, attributes = _object_without_properties_loose(props, [
51
+ "elementType",
52
+ "innerRef",
53
+ "children"
54
+ ]);
55
+ const { id } = attributes;
56
+ const containerRef = hooks_module_A(null);
57
+ const elementRef = hooks_module_A(null);
58
+ const stableAttributes = useAttributes(attributes);
59
+ // Effect for creating/mounting the element (runs once per id/as)
60
+ hooks_module_y(()=>{
61
+ if (!containerRef.current) return;
62
+ // Get or create the specific element
63
+ let element = cache.get(id);
64
+ if (!element) {
65
+ element = document.createElement(elementType);
66
+ cache.set(id, element);
67
+ } else if (element.isConnected) {
68
+ // We are trying to mount two elements with the same id, so we need to clone the element
69
+ // this element will be garbage collected by the browser when the component unmounts
70
+ element = element.cloneNode(true);
71
+ }
72
+ elementRef.current = element;
73
+ containerRef.current.appendChild(element);
74
+ return ()=>{
75
+ var _element_parentNode;
76
+ element == null ? void 0 : (_element_parentNode = element.parentNode) == null ? void 0 : _element_parentNode.removeChild(element);
77
+ };
78
+ }, [
79
+ id,
80
+ elementType,
81
+ cache
82
+ ]);
83
+ // Effect for updating the innerRef
84
+ hooks_module_y(()=>{
85
+ if (innerRef) {
86
+ innerRef.current = elementRef.current;
87
+ }
88
+ }, [
89
+ innerRef
90
+ ]);
91
+ // Effect for updating attributes
92
+ hooks_module_y(()=>{
93
+ if (!elementRef.current) return;
94
+ applyAttributes(elementRef.current, stableAttributes);
95
+ }, [
96
+ stableAttributes
97
+ ]);
98
+ return /*#__PURE__*/ jsxRuntime_module_u(Container, {
99
+ ref: containerRef
100
+ });
101
+ };
102
+ function useAttributes(current) {
103
+ const stableRef = hooks_module_A(current);
104
+ const keysRef = hooks_module_A(Object.keys(current));
105
+ const prev = stableRef.current;
106
+ const prevKeys = keysRef.current;
107
+ const currentKeys = Object.keys(current);
108
+ // Fast path: same number of keys and all values match
109
+ if (currentKeys.length === prevKeys.length && currentKeys.every((key)=>current[key] === prev[key])) {
110
+ return stableRef.current;
111
+ }
112
+ // Values changed, update references
113
+ stableRef.current = current;
114
+ keysRef.current = currentKeys;
115
+ return stableRef.current;
116
+ }
117
+ const ATTRIBUTES_CONFIG = {
118
+ className: {
119
+ attributeName: "class",
120
+ forceAttribute: true
121
+ }
122
+ };
123
+ function applyAttributes(element, attributes) {
124
+ const propertiesToAssign = {};
125
+ for (const [key, value] of Object.entries(attributes)){
126
+ var _ATTRIBUTES_CONFIG_key, _config_attributeName;
127
+ const config = (_ATTRIBUTES_CONFIG_key = ATTRIBUTES_CONFIG[key]) != null ? _ATTRIBUTES_CONFIG_key : {};
128
+ if (config.skip) continue;
129
+ const attributeName = (_config_attributeName = config.attributeName) != null ? _config_attributeName : key;
130
+ // Some attributes like 'class' must use setAttribute
131
+ if (config.forceAttribute) {
132
+ if (value == null) {
133
+ element.removeAttribute(attributeName);
134
+ } else {
135
+ element.setAttribute(attributeName, String(value));
136
+ }
137
+ continue;
138
+ }
139
+ // Use the original key for property assignment (e.g., 'className' not 'class')
140
+ const propertyName = key;
141
+ // Handle null/undefined - reset to default value
142
+ if (value == null) {
143
+ // Check if it's a boolean property to reset to false instead of empty string
144
+ if (typeof element[propertyName] === "boolean") {
145
+ propertiesToAssign[propertyName] = false;
146
+ } else {
147
+ propertiesToAssign[propertyName] = "";
148
+ }
149
+ continue;
150
+ }
151
+ const stringValue = String(value);
152
+ if (element.getAttribute(propertyName) !== stringValue) {
153
+ propertiesToAssign[propertyName] = value;
154
+ }
155
+ }
156
+ // Apply all properties at once
157
+ Object.assign(element, propertiesToAssign);
158
+ }
159
+ const Container = styled("div", {
160
+ base: {
161
+ display: "contents"
162
+ }
163
+ });
164
+ Container.displayName = "Container";
165
+
166
+ export { Persisted };