@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,252 @@
1
+ import { jsxRuntime_module_u } from "../../../../js/multimodal_v2.js";
2
+ import { CrossIcon } from "../../images/icons.js";
3
+ import "../../styled-system/jsx/index.js";
4
+ import { lightboxCardStyle, lightboxMeetingLayoutStyle, lightboxMeetingCalendarStyle } from "../app/LightboxExperience.js";
5
+ import { Button } from "../shared/Button.js";
6
+ import { MeetingSummaryRail } from "./MeetingSummaryRail.js";
7
+ import { default as meetings } from "./index.js";
8
+ import { styled } from "../../styled-system/jsx/factory.js";
9
+
10
+
11
+ /** @jsxImportSource preact */
12
+
13
+
14
+
15
+
16
+
17
+ /**
18
+ * The meeting booker as an artifact: the booker's only surface in the messenger,
19
+ * on the white content card and two-column layout the element-conversation overlay
20
+ * uses. The card and the layout's shape are imported from LightboxExperience
21
+ * rather than re-declared, so the two surfaces cannot drift apart on the things
22
+ * they agree about.
23
+ *
24
+ * What they no longer agree about is the left column. The lightbox floats a block
25
+ * of meeting info in a wide overlay; this card is a booking dialog in a panel, so
26
+ * the column is a full-height rail with a border down it (MeetingSummaryRail) and
27
+ * the layout runs edge to edge to let it reach the card's sides.
28
+ *
29
+ * What the lightbox chrome cannot express is how much room this surface has. It
30
+ * sizes against the viewport, while the artifact panel is only a slice of the
31
+ * viewport — `calc(100% - messenger width)` wide in DOCKED/SIDEBAR, and a fraction
32
+ * of it tall on mobile. Each imported class is therefore passed to a local styled
33
+ * component that re-sizes it against the panel instead; see Panel below.
34
+ *
35
+ * One card serves every width. Where the panel is too narrow to stand two columns up
36
+ * the container queries below lay that column down across the top of the card and the
37
+ * card scrolls inside the panel, so the narrow treatment is this same card restyled
38
+ * rather than a second component. What the column puts in the space it is given is its
39
+ * own business, and on a phone that is something else entirely — see
40
+ * MeetingSummaryRail.
41
+ *
42
+ * The X below is therefore the only one the booker has, on every viewport — which
43
+ * is why the shared Artifact frame stands its own down for meetings entirely (see
44
+ * Artifact.tsx), leaving the visitor exactly one. Cancel in the step footer and
45
+ * Escape are the others.
46
+ */ const ArtifactEntryPoint = (param)=>{
47
+ let { rootStore } = param;
48
+ const message = rootStore.artifact.message.value;
49
+ if ((message == null ? void 0 : message.type) !== "calendar_event_offer") return null;
50
+ const { t } = rootStore.translationStore;
51
+ const meetingStore = rootStore.meetingStore.value;
52
+ return /*#__PURE__*/ jsxRuntime_module_u(Panel, {
53
+ "data-component-name": "ArtifactEntryPoint.Panel",
54
+ children: /*#__PURE__*/ jsxRuntime_module_u(CardFrame, {
55
+ "data-component-name": "ArtifactEntryPoint.CardFrame",
56
+ children: [
57
+ /*#__PURE__*/ jsxRuntime_module_u(Button, {
58
+ variant: "tertiary",
59
+ size: "sm",
60
+ iconOnly: true,
61
+ onClick: ()=>rootStore.clearArtifact(),
62
+ "aria-label": t("meetings.closeMeetingBooker"),
63
+ css: {
64
+ position: "absolute",
65
+ top: "[20px]",
66
+ right: "[20px]",
67
+ zIndex: "[1]"
68
+ },
69
+ children: /*#__PURE__*/ jsxRuntime_module_u(CrossIcon, {})
70
+ }),
71
+ /*#__PURE__*/ jsxRuntime_module_u(Card, {
72
+ className: lightboxCardStyle,
73
+ "data-component-name": "ArtifactEntryPoint.Card",
74
+ children: /*#__PURE__*/ jsxRuntime_module_u(MeetingLayout, {
75
+ className: lightboxMeetingLayoutStyle,
76
+ "data-component-name": "ArtifactEntryPoint.MeetingLayout",
77
+ children: [
78
+ meetingStore && /*#__PURE__*/ jsxRuntime_module_u(MeetingSummaryRail, {
79
+ offer: message,
80
+ meetingStore: meetingStore,
81
+ t: t
82
+ }),
83
+ /*#__PURE__*/ jsxRuntime_module_u(Column, {
84
+ className: lightboxMeetingCalendarStyle,
85
+ "data-component-name": "ArtifactEntryPoint.MeetingCalendar",
86
+ children: /*#__PURE__*/ jsxRuntime_module_u(meetings, {
87
+ rootStore: rootStore,
88
+ context: "artifact"
89
+ })
90
+ })
91
+ ]
92
+ })
93
+ })
94
+ ]
95
+ })
96
+ });
97
+ };
98
+ /**
99
+ * Positioning context for the close button, sized to hug the card it wraps so the
100
+ * button lands on the card's corner rather than the panel's. Owns the 860px cap for
101
+ * both: Card fills this, so the two share a right edge at every panel width.
102
+ */ const CardFrame = styled("div", {
103
+ base: {
104
+ position: "relative",
105
+ display: "flex",
106
+ flexDirection: "column",
107
+ width: "[min(860px,100%)]",
108
+ maxHeight: "[100%]",
109
+ minHeight: "[0]"
110
+ }
111
+ });
112
+ CardFrame.displayName = "CardFrame";
113
+ /**
114
+ * Registers the `bookerPanel` container the styles below query, and centres the
115
+ * card in the panel the way the Artifact frame centres its other bodies.
116
+ *
117
+ * Container queries rather than viewport media queries because panel width is what
118
+ * actually varies here: a 1024px window with the messenger open leaves the panel
119
+ * under 600px wide, which the 860px two-column desktop layout overflows even
120
+ * though the viewport is nowhere near the `_mobile` breakpoint. Containment is
121
+ * scoped to this wrapper rather than put on the Artifact frame so the slide,
122
+ * presentation and deck bodies are unaffected by it.
123
+ *
124
+ * `minHeight: 0` lets the panel shrink to the frame, giving the card's
125
+ * `maxHeight: 100%` a definite height to resolve against.
126
+ */ const Panel = styled("div", {
127
+ base: {
128
+ containerType: "inline-size",
129
+ containerName: "bookerPanel",
130
+ display: "flex",
131
+ alignItems: "center",
132
+ justifyContent: "center",
133
+ width: "[100%]",
134
+ height: "[100%]",
135
+ minHeight: "[0]"
136
+ }
137
+ });
138
+ Panel.displayName = "Panel";
139
+ /**
140
+ * Each of the two styled components below takes its appearance from the
141
+ * LightboxExperience class handed to it in `className` and contributes only the
142
+ * panel-relative sizing.
143
+ *
144
+ * Declarations that override the imported class sit under `&&`, which Panda
145
+ * compiles to a doubled class selector. Class names alone would not settle it:
146
+ * Panda's `styled` concatenates `className` onto its own classes without merging
147
+ * them, so an override of equal specificity would be decided by stylesheet source
148
+ * order. The container-query breakpoints are spelled out at each use because Panda
149
+ * extracts styles statically — a shared `const` used as a key produces no CSS.
150
+ *
151
+ * 720px is where the two columns (a 264px rail and a calendar that wants ~380px
152
+ * plus its gutters) stop fitting side by side. MeetingTimeSelector queries the same
153
+ * container at 480px for the calendar's own density, and MeetingSummaryRail queries
154
+ * it at 720px to turn itself into a band.
155
+ */ const Card = styled("div", {
156
+ base: {
157
+ // The lightbox asks for 860px and falls back to 96vw; here the panel is the
158
+ // constraint, and it can be far narrower than the viewport. CardFrame already
159
+ // caps that at 860px, so filling it is what keeps the two edge-to-edge — and
160
+ // with them the close button, which is pinned to the frame but has to land on
161
+ // the card. Repeating the cap here instead would leave the button's alignment
162
+ // resting on two declarations that nothing forces to agree.
163
+ width: "[100%]",
164
+ "&&": {
165
+ // Bounded by the panel rather than the viewport, and allowed to shrink below
166
+ // its content height so the shared card's `overflowY: auto` scrolls the
167
+ // booker inside the card instead of letting it spill out of a short panel.
168
+ maxHeight: "[100%]",
169
+ minHeight: "[0]",
170
+ // Rounder and lifted higher than the lightbox card this borrows from. The
171
+ // lightbox floats over a dimmed viewport, which does the separating for it;
172
+ // the panel sits against live page content, so the card has to say where its
173
+ // own edge is. The rail's 12px top-left corner is cut from this radius.
174
+ borderRadius: "[12px]",
175
+ boxShadow: "[0 24px 48px -12px rgba(0, 0, 0, 0.28), 0 2px 8px rgba(0, 0, 0, 0.06)]"
176
+ }
177
+ }
178
+ });
179
+ Card.displayName = "Card";
180
+ const MeetingLayout = styled("div", {
181
+ base: {
182
+ "&&": {
183
+ // The shared class aligns its columns to `flex-start`, so each is as tall as
184
+ // its own content. That leaves the step with no height to lay itself out
185
+ // against, and a step whose footer is supposed to sit on the card's bottom
186
+ // edge needs one. Stretching the columns hands the step the layout's full
187
+ // height: the shared 500px min-height at panel widths above the breakpoint
188
+ // below, and the stacked layout's content height under it.
189
+ alignItems: "stretch",
190
+ // Edge to edge. The shared class insets its columns by 40px/48px, which suits
191
+ // a block of meeting info floating in a wide overlay; here the left column is
192
+ // a rail with a border down it and the right one a dialog with a bar across
193
+ // its foot, and both have to reach the card's edges to read as panes. Their
194
+ // own padding replaces this.
195
+ padding: "[0]",
196
+ gap: "[0]",
197
+ // The stacked treatment the shared layout applies at `_mobile`, driven by the
198
+ // panel running out of room rather than the viewport doing so.
199
+ //
200
+ // The floor is restated rather than dropped, for the same reason the shared
201
+ // 500px exists: a height that clears the taller step is what stops the card
202
+ // resizing when the visitor moves between them. It takes a different number
203
+ // here because stacking changes the arithmetic -- side by side the rail and the
204
+ // step overlap, so the layout is as tall as the taller of the two, while
205
+ // stacked the rail is a band above the step and the two heights add up.
206
+ "@container bookerPanel (max-width: 720px)": {
207
+ flexDirection: "column",
208
+ alignItems: "stretch",
209
+ minHeight: "[640px]",
210
+ // Except on a phone, where the panel is a fraction of the viewport tall and
211
+ // 640px does not fit in it however the card is packed. The card scrolls
212
+ // there whatever this says, so a floor taller than the panel buys no
213
+ // stability between steps and only guarantees a scrollbar on the shorter of
214
+ // the two. Sizing to content lets the select step fit outright.
215
+ _mobile: {
216
+ minHeight: "[auto]"
217
+ }
218
+ }
219
+ }
220
+ }
221
+ });
222
+ MeetingLayout.displayName = "MeetingLayout";
223
+ /**
224
+ * The step's column. The shared class gives it `flex: 1`, which in the stacked layout
225
+ * grows it down the card and so hands it the slack the floor above creates. What the
226
+ * class cannot say is that the step inside should take that height rather than sit at
227
+ * the top of it: the step is `height: 100%` and needs a flex column with a definite
228
+ * height to resolve against, or it measures its content instead and leaves the footer
229
+ * bar wherever the calendar happens to end.
230
+ */ const Column = styled("div", {
231
+ base: {
232
+ "&&": {
233
+ "@container bookerPanel (max-width: 720px)": {
234
+ display: "flex",
235
+ flexDirection: "column",
236
+ minHeight: "[0]",
237
+ // The step grows to fill rather than measuring its content. `flex` rather than
238
+ // the step's own `height: 100%`, which resolves against a parent height this
239
+ // column only has once it has grown -- late enough that the step has already
240
+ // sized itself and left the footer bar under the fields.
241
+ "& > *": {
242
+ flex: "[1]",
243
+ minHeight: "[0]"
244
+ }
245
+ }
246
+ }
247
+ }
248
+ });
249
+ Column.displayName = "Column";
250
+ /* export default */ const meetings_ArtifactEntryPoint = (ArtifactEntryPoint);
251
+
252
+ export default meetings_ArtifactEntryPoint;
@@ -0,0 +1,325 @@
1
+ import { jsxRuntime_module_u, signals_module_useSignal } from "../../../../js/multimodal_v2.js";
2
+ import { ChevronDownIcon, CrossIcon } from "../../images/icons.js";
3
+ import "../../styled-system/jsx/index.js";
4
+ import { styled } from "../../styled-system/jsx/factory.js";
5
+
6
+ /** @jsxImportSource preact */
7
+
8
+
9
+
10
+ const MeetingAdditionalAttendees = (props)=>{
11
+ const { state, handlers, t } = useMeetingAdditionalAttendees(props);
12
+ return /*#__PURE__*/ jsxRuntime_module_u(Container, {
13
+ "data-component-name": "MeetingAdditionalAttendees.Container",
14
+ children: [
15
+ /*#__PURE__*/ jsxRuntime_module_u(ToggleButton, {
16
+ "data-component-name": "MeetingAdditionalAttendees.ToggleButton",
17
+ type: "button",
18
+ onClick: handlers.handleToggle,
19
+ "aria-expanded": state.isExpanded,
20
+ "aria-controls": "additional-attendees-input",
21
+ children: [
22
+ /*#__PURE__*/ jsxRuntime_module_u(ToggleText, {
23
+ "data-component-name": "MeetingAdditionalAttendees.ToggleText",
24
+ children: t("meetings.inviteMoreAttendees")
25
+ }),
26
+ /*#__PURE__*/ jsxRuntime_module_u(ToggleIcon, {
27
+ "data-component-name": "MeetingAdditionalAttendees.ToggleIcon",
28
+ rotated: state.isExpanded,
29
+ children: /*#__PURE__*/ jsxRuntime_module_u(ChevronDownIcon, {})
30
+ })
31
+ ]
32
+ }),
33
+ /*#__PURE__*/ jsxRuntime_module_u(CollapsibleContent, {
34
+ "data-component-name": "MeetingAdditionalAttendees.CollapsibleContent",
35
+ id: "additional-attendees-input",
36
+ expanded: state.isExpanded,
37
+ children: [
38
+ /*#__PURE__*/ jsxRuntime_module_u(InputContainer, {
39
+ "data-component-name": "MeetingAdditionalAttendees.InputContainer",
40
+ hasError: !!state.error,
41
+ children: [
42
+ /*#__PURE__*/ jsxRuntime_module_u(ChipsContainer, {
43
+ "data-component-name": "MeetingAdditionalAttendees.ChipsContainer",
44
+ children: state.attendees.map((email)=>/*#__PURE__*/ jsxRuntime_module_u(Chip, {
45
+ "data-component-name": "MeetingAdditionalAttendees.Chip",
46
+ children: [
47
+ /*#__PURE__*/ jsxRuntime_module_u(ChipText, {
48
+ "data-component-name": "MeetingAdditionalAttendees.ChipText",
49
+ children: email
50
+ }),
51
+ /*#__PURE__*/ jsxRuntime_module_u(ChipRemoveButton, {
52
+ "data-component-name": "MeetingAdditionalAttendees.ChipRemoveButton",
53
+ type: "button",
54
+ onClick: ()=>handlers.handleRemoveEmail(email),
55
+ "aria-label": t("meetings.removeEmail", {
56
+ email
57
+ }),
58
+ children: /*#__PURE__*/ jsxRuntime_module_u(CrossIcon, {})
59
+ })
60
+ ]
61
+ }, email))
62
+ }),
63
+ /*#__PURE__*/ jsxRuntime_module_u(EmailInput, {
64
+ "data-component-name": "MeetingAdditionalAttendees.EmailInput",
65
+ type: "email",
66
+ value: state.inputValue.value,
67
+ onInput: handlers.handleInputChange,
68
+ onKeyDown: handlers.handleKeyDown,
69
+ onBlur: handlers.handleBlur,
70
+ placeholder: t("meetings.enterAttendeeEmails"),
71
+ "aria-label": t("meetings.additionalAttendeeEmail"),
72
+ "aria-invalid": !!state.error
73
+ })
74
+ ]
75
+ }),
76
+ state.error && /*#__PURE__*/ jsxRuntime_module_u(ErrorMessage, {
77
+ "data-component-name": "MeetingAdditionalAttendees.ErrorMessage",
78
+ role: "alert",
79
+ children: state.error
80
+ })
81
+ ]
82
+ })
83
+ ]
84
+ });
85
+ };
86
+ function useMeetingAdditionalAttendees(param) {
87
+ let { meetingStore, t } = param;
88
+ // Local state
89
+ const inputValue = signals_module_useSignal("");
90
+ // Derived state from store
91
+ const isExpanded = meetingStore.showAdditionalAttendeesInput.value;
92
+ const attendees = meetingStore.additionalAttendees.value;
93
+ const error = meetingStore.additionalAttendeesError.value;
94
+ // Handlers
95
+ const handleToggle = ()=>{
96
+ meetingStore.toggleAdditionalAttendeesInput();
97
+ };
98
+ const handleInputChange = (e)=>{
99
+ inputValue.value = e.currentTarget.value;
100
+ meetingStore.clearAdditionalAttendeesError();
101
+ };
102
+ const handleAddEmail = ()=>{
103
+ const email = inputValue.value.trim();
104
+ if (email && meetingStore.addAttendeeEmail(email)) {
105
+ inputValue.value = "";
106
+ }
107
+ };
108
+ const handleKeyDown = (e)=>{
109
+ if (e.key === "Enter" || e.key === "," || e.key === " ") {
110
+ // Prevent default behavior to avoid form submission or inserting literal space
111
+ e.preventDefault();
112
+ handleAddEmail();
113
+ }
114
+ };
115
+ const handleRemoveEmail = (email)=>{
116
+ meetingStore.removeAttendeeEmail(email);
117
+ };
118
+ const handleBlur = ()=>{
119
+ handleAddEmail();
120
+ };
121
+ return {
122
+ state: {
123
+ inputValue,
124
+ isExpanded,
125
+ attendees,
126
+ error
127
+ },
128
+ handlers: {
129
+ handleToggle,
130
+ handleInputChange,
131
+ handleKeyDown,
132
+ handleRemoveEmail,
133
+ handleBlur
134
+ },
135
+ t
136
+ };
137
+ }
138
+ const Container = styled("div", {
139
+ base: {
140
+ display: "flex",
141
+ flexDirection: "column",
142
+ width: "[100%]",
143
+ gap: "$sm"
144
+ }
145
+ });
146
+ Container.displayName = "Container";
147
+ const ToggleButton = styled("button", {
148
+ base: {
149
+ display: "flex",
150
+ alignItems: "center",
151
+ gap: "$xs",
152
+ padding: "$none",
153
+ border: "none",
154
+ background: "$transparent",
155
+ cursor: "pointer",
156
+ color: "$text.secondary",
157
+ fontFamily: "$inter",
158
+ fontSize: "12px",
159
+ fontWeight: "$medium",
160
+ lineHeight: "18px",
161
+ "&:hover": {
162
+ color: "$text.dark"
163
+ },
164
+ "&:focus": {
165
+ outline: "none",
166
+ color: "$text.dark"
167
+ }
168
+ }
169
+ });
170
+ ToggleButton.displayName = "ToggleButton";
171
+ const ToggleIcon = styled("span", {
172
+ base: {
173
+ display: "flex",
174
+ alignItems: "center",
175
+ justifyContent: "center",
176
+ transition: "transform 0.2s ease"
177
+ },
178
+ variants: {
179
+ rotated: {
180
+ true: {
181
+ transform: "rotate(180deg)"
182
+ }
183
+ }
184
+ }
185
+ });
186
+ ToggleIcon.displayName = "ToggleIcon";
187
+ const ToggleText = styled("span", {
188
+ base: {}
189
+ });
190
+ ToggleText.displayName = "ToggleText";
191
+ const CollapsibleContent = styled("div", {
192
+ base: {
193
+ display: "none",
194
+ flexDirection: "column",
195
+ gap: "$xs",
196
+ overflow: "hidden",
197
+ transition: "all 0.2s ease"
198
+ },
199
+ variants: {
200
+ expanded: {
201
+ true: {
202
+ display: "flex"
203
+ }
204
+ }
205
+ }
206
+ });
207
+ CollapsibleContent.displayName = "CollapsibleContent";
208
+ const InputContainer = styled("div", {
209
+ base: {
210
+ display: "flex",
211
+ flexWrap: "wrap",
212
+ alignItems: "center",
213
+ gap: "$xs",
214
+ paddingBlock: "$xs",
215
+ paddingInline: "$lg",
216
+ minHeight: "[40px]",
217
+ borderRadius: "[4px]",
218
+ backgroundColor: "$white.solid",
219
+ border: "[1px solid rgba(200, 206, 208, 0.93)]",
220
+ "&:focus-within": {
221
+ border: "[2px solid token(colors.$primary)]"
222
+ }
223
+ },
224
+ variants: {
225
+ hasError: {
226
+ true: {
227
+ border: "[1px solid #E4251B]",
228
+ "&:focus-within": {
229
+ border: "[2px solid #E4251B]"
230
+ }
231
+ }
232
+ }
233
+ }
234
+ });
235
+ InputContainer.displayName = "InputContainer";
236
+ const ChipsContainer = styled("div", {
237
+ base: {
238
+ display: "flex",
239
+ flexWrap: "wrap",
240
+ gap: "$xs"
241
+ }
242
+ });
243
+ ChipsContainer.displayName = "ChipsContainer";
244
+ const Chip = styled("span", {
245
+ base: {
246
+ display: "inline-flex",
247
+ alignItems: "center",
248
+ gap: "$2xs",
249
+ paddingBlock: "$2xs",
250
+ paddingInline: "$xs",
251
+ backgroundColor: "$gray",
252
+ borderRadius: "[4px]",
253
+ fontSize: "12px",
254
+ lineHeight: "18px",
255
+ color: "$text.dark"
256
+ }
257
+ });
258
+ Chip.displayName = "Chip";
259
+ const ChipText = styled("span", {
260
+ base: {
261
+ maxWidth: "[150px]",
262
+ overflow: "hidden",
263
+ textOverflow: "ellipsis",
264
+ whiteSpace: "nowrap"
265
+ }
266
+ });
267
+ ChipText.displayName = "ChipText";
268
+ const ChipRemoveButton = styled("button", {
269
+ base: {
270
+ display: "flex",
271
+ alignItems: "center",
272
+ justifyContent: "center",
273
+ width: "[14px]",
274
+ height: "[14px]",
275
+ padding: "$none",
276
+ border: "none",
277
+ background: "$transparent",
278
+ cursor: "pointer",
279
+ color: "$text.secondary",
280
+ borderRadius: "[2px]",
281
+ "& svg": {
282
+ width: "[12px]",
283
+ height: "[12px]"
284
+ },
285
+ "&:hover": {
286
+ color: "$text.dark",
287
+ backgroundColor: "[rgba(0, 0, 0, 0.08)]"
288
+ },
289
+ "&:focus": {
290
+ outline: "none",
291
+ backgroundColor: "[rgba(0, 0, 0, 0.08)]"
292
+ }
293
+ }
294
+ });
295
+ ChipRemoveButton.displayName = "ChipRemoveButton";
296
+ const EmailInput = styled("input", {
297
+ base: {
298
+ flex: 1,
299
+ minWidth: "[120px]",
300
+ paddingBlock: "$2xs",
301
+ paddingInline: "$none",
302
+ border: "none",
303
+ outline: "none",
304
+ backgroundColor: "$transparent",
305
+ fontSize: "14px",
306
+ lineHeight: "22px",
307
+ color: "$text.dark",
308
+ fontFamily: "$inter",
309
+ "&::placeholder": {
310
+ color: "$text.muted"
311
+ }
312
+ }
313
+ });
314
+ EmailInput.displayName = "EmailInput";
315
+ const ErrorMessage = styled("span", {
316
+ base: {
317
+ fontSize: "12px",
318
+ lineHeight: "18px",
319
+ color: "[#E4251B]",
320
+ fontWeight: "$normal"
321
+ }
322
+ });
323
+ ErrorMessage.displayName = "ErrorMessage";
324
+
325
+ export { MeetingAdditionalAttendees };
@@ -0,0 +1,100 @@
1
+ import { jsxRuntime_module_u } from "../../../../js/multimodal_v2.js";
2
+ import { CalendarResumeIcon } from "../../images/icons.js";
3
+ import "../../styled-system/jsx/index.js";
4
+ import { styled } from "../../styled-system/jsx/factory.js";
5
+
6
+
7
+ /** @jsxImportSource preact */
8
+
9
+ /**
10
+ * The meeting booker's presence in the chat timeline: a placeholder card that
11
+ * opens the booker in the artifact overlay, which is the only surface the booker
12
+ * has in the messenger.
13
+ *
14
+ * A fresh offer opens the overlay on arrival, so the visitor normally meets this
15
+ * card only on the way back — after closing a booker they were not finished with.
16
+ * Until then CalendarEventOfferRenderer withholds the slot entirely, both while
17
+ * the overlay is up and while it is on its way up; leaving this component to
18
+ * render nothing instead would still cost a gap in the transcript.
19
+ */ const MeetingBookerEntry = (param)=>{
20
+ let { rootStore, message } = param;
21
+ const { t } = rootStore.translationStore;
22
+ const handleClick = ()=>{
23
+ void rootStore.toggleMeetingBookerArtifact(message);
24
+ };
25
+ return /*#__PURE__*/ jsxRuntime_module_u(CardButton, {
26
+ "data-component-name": "MeetingBookerEntry.CardButton",
27
+ onClick: handleClick,
28
+ "aria-label": t("meetings.bookMeeting"),
29
+ children: /*#__PURE__*/ jsxRuntime_module_u(PreviewContent, {
30
+ "data-component-name": "MeetingBookerEntry.PreviewContent",
31
+ children: [
32
+ /*#__PURE__*/ jsxRuntime_module_u(PreviewText, {
33
+ "data-component-name": "MeetingBookerEntry.PreviewText",
34
+ children: t("meetings.continueBooking")
35
+ }),
36
+ /*#__PURE__*/ jsxRuntime_module_u(IconWrapper, {
37
+ "data-component-name": "MeetingBookerEntry.IconWrapper",
38
+ children: /*#__PURE__*/ jsxRuntime_module_u(CalendarResumeIcon, {})
39
+ })
40
+ ]
41
+ })
42
+ });
43
+ };
44
+ const PreviewContent = styled("span", {
45
+ base: {
46
+ display: "flex",
47
+ alignItems: "center",
48
+ justifyContent: "space-between",
49
+ width: "[100%]",
50
+ gap: "$sm"
51
+ }
52
+ });
53
+ PreviewContent.displayName = "PreviewContent";
54
+ const PreviewText = styled("span", {
55
+ base: {
56
+ fontSize: "14px",
57
+ lineHeight: "20px",
58
+ color: "$text.dark"
59
+ }
60
+ });
61
+ PreviewText.displayName = "PreviewText";
62
+ const IconWrapper = styled("span", {
63
+ base: {
64
+ display: "contents",
65
+ color: "$primary"
66
+ }
67
+ });
68
+ IconWrapper.displayName = "IconWrapper";
69
+ const CardButton = styled("button", {
70
+ base: {
71
+ display: "flex",
72
+ width: "[100%]",
73
+ paddingInline: "$md",
74
+ paddingBlock: "$lg",
75
+ borderRadius: "[8px]",
76
+ fontSize: "14px",
77
+ lineHeight: "22px",
78
+ backgroundColor: "$white.solid",
79
+ border: "none",
80
+ outline: "1px solid token(colors.$gray.border)",
81
+ outlineOffset: "-1px",
82
+ cursor: "pointer",
83
+ textAlign: "left",
84
+ transition: "box-shadow 0.2s ease, transform 0.2s ease",
85
+ "&:hover": {
86
+ boxShadow: "[0 4px 12px rgba(0, 0, 0, 0.1)]",
87
+ transform: "translateY(-2px)"
88
+ },
89
+ "&:focus": {
90
+ outline: "2px solid token(colors.$primary)",
91
+ outlineOffset: "-2px"
92
+ }
93
+ }
94
+ });
95
+ CardButton.displayName = "CardButton";
96
+ /* export default */ const meetings_MeetingBookerEntry = ((/* unused pure expression or super */ null && (MeetingBookerEntry)));
97
+
98
+ var MeetingBookerEntry_default = /* unused export */ undefined;
99
+ export { MeetingBookerEntry };
100
+ export default MeetingBookerEntry_default;