@gengage/assistant-fe 0.3.18 → 0.3.20

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 (309) hide show
  1. package/dist/chat/api.d.ts +3 -1
  2. package/dist/chat/assistant-mode.d.ts +19 -0
  3. package/dist/chat/attachment-utils.d.ts +0 -1
  4. package/dist/chat/catalog.d.ts +32 -1
  5. package/dist/chat/chat-presentation-state.d.ts +0 -1
  6. package/dist/chat/components/AIGroupingCards.d.ts +0 -1
  7. package/dist/chat/components/AISuggestedSearchCards.d.ts +0 -1
  8. package/dist/chat/components/AITopPicks.d.ts +0 -1
  9. package/dist/chat/components/BeautyPhotoStep.d.ts +16 -0
  10. package/dist/chat/components/CategoriesContainer.d.ts +0 -1
  11. package/dist/chat/components/ChatDrawer.d.ts +22 -2
  12. package/dist/chat/components/ChoicePrompter.d.ts +0 -1
  13. package/dist/chat/components/ComparisonTable.d.ts +0 -1
  14. package/dist/chat/components/ConsultingStylePicker.d.ts +25 -0
  15. package/dist/chat/components/FloatingComparisonButton.d.ts +0 -1
  16. package/dist/chat/components/GroundingReviewCard.d.ts +0 -1
  17. package/dist/chat/components/HandoffNotice.d.ts +0 -1
  18. package/dist/chat/components/KvkkBanner.d.ts +0 -1
  19. package/dist/chat/components/Launcher.d.ts +0 -1
  20. package/dist/chat/components/PanelTopBar.d.ts +0 -1
  21. package/dist/chat/components/PhotoAnalysisCard.d.ts +22 -0
  22. package/dist/chat/components/ProductSummaryCard.d.ts +0 -1
  23. package/dist/chat/components/ProsAndCons.d.ts +0 -1
  24. package/dist/chat/components/ReviewHighlights.d.ts +0 -1
  25. package/dist/chat/components/ThumbnailsColumn.d.ts +0 -1
  26. package/dist/chat/components/actionClassifier.d.ts +0 -1
  27. package/dist/chat/components/product-price-layout.d.ts +0 -1
  28. package/dist/chat/components/productMentionLinker.d.ts +0 -1
  29. package/dist/chat/components/renderUISpec.d.ts +2 -2
  30. package/dist/chat/components/typewriter.d.ts +0 -1
  31. package/dist/chat/extendedModeManager.d.ts +0 -1
  32. package/dist/chat/features/beauty-consulting/consulting-grid.d.ts +18 -0
  33. package/dist/chat/features/beauty-consulting/drawer-extensions.d.ts +20 -0
  34. package/dist/chat/features/beauty-consulting/mode-controller.d.ts +53 -0
  35. package/dist/chat/features/beauty-consulting/registry.d.ts +3 -0
  36. package/dist/chat/features/beauty-consulting/stream-handler.d.ts +38 -0
  37. package/dist/chat/index.d.ts +11 -1
  38. package/dist/chat/kvkk.d.ts +0 -1
  39. package/dist/chat/locales/en.d.ts +0 -1
  40. package/dist/chat/locales/index.d.ts +0 -1
  41. package/dist/chat/locales/tr.d.ts +0 -1
  42. package/dist/chat/panel-manager.d.ts +0 -1
  43. package/dist/chat/session-persistence.d.ts +0 -1
  44. package/dist/chat/stream-error-display.d.ts +0 -1
  45. package/dist/chat/types.d.ts +27 -2
  46. package/dist/chat/utils/chat-presentation-debug.d.ts +0 -1
  47. package/dist/chat/utils/get-chat-scroll-element.d.ts +0 -1
  48. package/dist/chat/utils/ui.d.ts +0 -1
  49. package/dist/chat-CuPO9t-Z.cjs +93 -0
  50. package/dist/chat-yAf9OADM.js +7111 -0
  51. package/dist/chat.cjs +1 -1
  52. package/dist/chat.iife.js +48 -49
  53. package/dist/chat.js +13 -2
  54. package/dist/common/action-router.d.ts +0 -1
  55. package/dist/common/activity-tracker.d.ts +0 -1
  56. package/dist/common/analytics-events.d.ts +0 -1
  57. package/dist/common/analytics.d.ts +0 -1
  58. package/dist/common/api-paths.d.ts +0 -1
  59. package/dist/common/client.d.ts +0 -1
  60. package/dist/common/communication-bridge.d.ts +0 -1
  61. package/dist/common/config-schema.d.ts +0 -1
  62. package/dist/common/connection-warning.d.ts +0 -1
  63. package/dist/common/consulting-sources.d.ts +9 -0
  64. package/dist/common/context.d.ts +0 -1
  65. package/dist/common/customization-factories.d.ts +0 -1
  66. package/dist/common/debug.d.ts +0 -1
  67. package/dist/common/events.d.ts +0 -1
  68. package/dist/common/ga-datalayer.d.ts +0 -1
  69. package/dist/common/global-error-toast.d.ts +0 -1
  70. package/dist/common/index.d.ts +0 -1
  71. package/dist/common/indexed-db.d.ts +0 -1
  72. package/dist/common/native-webview.d.ts +0 -1
  73. package/dist/common/overlay.d.ts +1 -1
  74. package/dist/common/page-detect.d.ts +0 -1
  75. package/dist/common/pill-launcher.d.ts +0 -1
  76. package/dist/common/preflight.d.ts +0 -1
  77. package/dist/common/price-formatter.d.ts +0 -1
  78. package/dist/common/product-utils.d.ts +0 -1
  79. package/dist/common/protocol-adapter.d.ts +0 -1
  80. package/dist/common/renderer/dom.d.ts +0 -1
  81. package/dist/common/renderer/index.d.ts +0 -1
  82. package/dist/common/renderer/overrides.d.ts +0 -1
  83. package/dist/common/renderer/registry.d.ts +0 -1
  84. package/dist/common/renderer/types.d.ts +0 -1
  85. package/dist/common/safe-html.d.ts +0 -1
  86. package/dist/common/skeleton.d.ts +0 -1
  87. package/dist/common/streaming.d.ts +0 -1
  88. package/dist/common/suggested-search-keywords.d.ts +0 -1
  89. package/dist/common/theme-utils.d.ts +0 -1
  90. package/dist/common/tts-player.d.ts +0 -1
  91. package/dist/common/types.d.ts +4 -1
  92. package/dist/common/ui-theme.d.ts +0 -1
  93. package/dist/common/uuidv7.d.ts +0 -1
  94. package/dist/common/voice-input.d.ts +0 -1
  95. package/dist/common/widget-base.d.ts +0 -1
  96. package/dist/common-BzegEdJs.cjs +1 -0
  97. package/dist/common-C8NRcP7O.js +367 -0
  98. package/dist/common.cjs +1 -1
  99. package/dist/common.js +86 -7
  100. package/dist/connection-warning-CL1CReZo.cjs +1 -0
  101. package/dist/connection-warning-CVZzlGJt.js +95 -0
  102. package/dist/ga-datalayer-CgI6Kb_i.js +1044 -0
  103. package/dist/ga-datalayer-DkfsAHf9.cjs +47 -0
  104. package/dist/index.cjs +1 -1
  105. package/dist/index.d.ts +0 -1
  106. package/dist/index.js +76 -10
  107. package/dist/native/index.d.ts +0 -1
  108. package/dist/native-webview-B8vOoxns.js +571 -0
  109. package/dist/native-webview-D2lDXTh3.cjs +1 -0
  110. package/dist/native.cjs +1 -1
  111. package/dist/native.iife.js +51 -52
  112. package/dist/native.js +8 -2
  113. package/dist/product-utils-Bm3aiAlJ.js +46 -0
  114. package/dist/product-utils-DLXQQJbh.cjs +1 -0
  115. package/dist/qna/api.d.ts +0 -1
  116. package/dist/qna/catalog.d.ts +0 -1
  117. package/dist/qna/components/ButtonRow.d.ts +0 -1
  118. package/dist/qna/components/TextInput.d.ts +0 -1
  119. package/dist/qna/components/renderUISpec.d.ts +0 -1
  120. package/dist/qna/index.d.ts +0 -1
  121. package/dist/qna/locales/en.d.ts +0 -1
  122. package/dist/qna/locales/index.d.ts +0 -1
  123. package/dist/qna/locales/tr.d.ts +0 -1
  124. package/dist/qna/normalize-ui-specs.d.ts +0 -1
  125. package/dist/qna/types.d.ts +0 -1
  126. package/dist/qna-KizG_W1J.cjs +1 -0
  127. package/dist/qna-YSaIDxjs.js +663 -0
  128. package/dist/qna.cjs +1 -1
  129. package/dist/qna.iife.js +35 -36
  130. package/dist/qna.js +9 -2
  131. package/dist/schemas-B6RjqKrg.cjs +40 -0
  132. package/dist/schemas-PkedCk_-.js +4047 -0
  133. package/dist/simbut/index.d.ts +0 -1
  134. package/dist/simbut/locales.d.ts +0 -1
  135. package/dist/simbut/types.d.ts +0 -1
  136. package/dist/simbut-B2jXtckF.cjs +1 -0
  137. package/dist/simbut-BI054QK0.js +71 -0
  138. package/dist/simbut.cjs +1 -1
  139. package/dist/simbut.iife.js +15 -16
  140. package/dist/simbut.js +5 -2
  141. package/dist/simrel/api.d.ts +0 -1
  142. package/dist/simrel/catalog.d.ts +0 -1
  143. package/dist/simrel/components/GroupTabs.d.ts +0 -1
  144. package/dist/simrel/components/ProductCard.d.ts +0 -1
  145. package/dist/simrel/components/ProductGrid.d.ts +0 -1
  146. package/dist/simrel/components/renderUISpec.d.ts +0 -1
  147. package/dist/simrel/index.d.ts +0 -1
  148. package/dist/simrel/locales/en.d.ts +0 -1
  149. package/dist/simrel/locales/index.d.ts +0 -1
  150. package/dist/simrel/locales/tr.d.ts +0 -1
  151. package/dist/simrel/types.d.ts +0 -1
  152. package/dist/simrel-C-DKpfVB.js +694 -0
  153. package/dist/simrel-vL0woDkE.cjs +1 -0
  154. package/dist/simrel.cjs +1 -1
  155. package/dist/simrel.iife.js +35 -36
  156. package/dist/simrel.js +9 -2
  157. package/package.json +1 -1
  158. package/dist/chat/api.d.ts.map +0 -1
  159. package/dist/chat/attachment-utils.d.ts.map +0 -1
  160. package/dist/chat/catalog.d.ts.map +0 -1
  161. package/dist/chat/chat-presentation-state.d.ts.map +0 -1
  162. package/dist/chat/components/AIGroupingCards.d.ts.map +0 -1
  163. package/dist/chat/components/AISuggestedSearchCards.d.ts.map +0 -1
  164. package/dist/chat/components/AITopPicks.d.ts.map +0 -1
  165. package/dist/chat/components/CategoriesContainer.d.ts.map +0 -1
  166. package/dist/chat/components/ChatDrawer.d.ts.map +0 -1
  167. package/dist/chat/components/ChoicePrompter.d.ts.map +0 -1
  168. package/dist/chat/components/ComparisonTable.d.ts.map +0 -1
  169. package/dist/chat/components/FloatingComparisonButton.d.ts.map +0 -1
  170. package/dist/chat/components/GroundingReviewCard.d.ts.map +0 -1
  171. package/dist/chat/components/HandoffNotice.d.ts.map +0 -1
  172. package/dist/chat/components/KvkkBanner.d.ts.map +0 -1
  173. package/dist/chat/components/Launcher.d.ts.map +0 -1
  174. package/dist/chat/components/PanelTopBar.d.ts.map +0 -1
  175. package/dist/chat/components/ProductSummaryCard.d.ts.map +0 -1
  176. package/dist/chat/components/ProsAndCons.d.ts.map +0 -1
  177. package/dist/chat/components/ReviewHighlights.d.ts.map +0 -1
  178. package/dist/chat/components/ThumbnailsColumn.d.ts.map +0 -1
  179. package/dist/chat/components/actionClassifier.d.ts.map +0 -1
  180. package/dist/chat/components/product-price-layout.d.ts.map +0 -1
  181. package/dist/chat/components/productMentionLinker.d.ts.map +0 -1
  182. package/dist/chat/components/renderUISpec.d.ts.map +0 -1
  183. package/dist/chat/components/typewriter.d.ts.map +0 -1
  184. package/dist/chat/extendedModeManager.d.ts.map +0 -1
  185. package/dist/chat/index.d.ts.map +0 -1
  186. package/dist/chat/kvkk.d.ts.map +0 -1
  187. package/dist/chat/locales/en.d.ts.map +0 -1
  188. package/dist/chat/locales/index.d.ts.map +0 -1
  189. package/dist/chat/locales/tr.d.ts.map +0 -1
  190. package/dist/chat/panel-manager.d.ts.map +0 -1
  191. package/dist/chat/session-persistence.d.ts.map +0 -1
  192. package/dist/chat/stream-error-display.d.ts.map +0 -1
  193. package/dist/chat/types.d.ts.map +0 -1
  194. package/dist/chat/utils/chat-presentation-debug.d.ts.map +0 -1
  195. package/dist/chat/utils/get-chat-scroll-element.d.ts.map +0 -1
  196. package/dist/chat/utils/ui.d.ts.map +0 -1
  197. package/dist/chat-Ck0cC4R_.cjs +0 -94
  198. package/dist/chat-Ck0cC4R_.cjs.map +0 -1
  199. package/dist/chat-CmKpcbQS.js +0 -6574
  200. package/dist/chat-CmKpcbQS.js.map +0 -1
  201. package/dist/chat.iife.js.map +0 -1
  202. package/dist/common/action-router.d.ts.map +0 -1
  203. package/dist/common/activity-tracker.d.ts.map +0 -1
  204. package/dist/common/analytics-events.d.ts.map +0 -1
  205. package/dist/common/analytics.d.ts.map +0 -1
  206. package/dist/common/api-paths.d.ts.map +0 -1
  207. package/dist/common/client.d.ts.map +0 -1
  208. package/dist/common/communication-bridge.d.ts.map +0 -1
  209. package/dist/common/config-schema.d.ts.map +0 -1
  210. package/dist/common/connection-warning.d.ts.map +0 -1
  211. package/dist/common/context.d.ts.map +0 -1
  212. package/dist/common/customization-factories.d.ts.map +0 -1
  213. package/dist/common/debug.d.ts.map +0 -1
  214. package/dist/common/events.d.ts.map +0 -1
  215. package/dist/common/ga-datalayer.d.ts.map +0 -1
  216. package/dist/common/global-error-toast.d.ts.map +0 -1
  217. package/dist/common/index.d.ts.map +0 -1
  218. package/dist/common/indexed-db.d.ts.map +0 -1
  219. package/dist/common/native-webview.d.ts.map +0 -1
  220. package/dist/common/overlay.d.ts.map +0 -1
  221. package/dist/common/page-detect.d.ts.map +0 -1
  222. package/dist/common/pill-launcher.d.ts.map +0 -1
  223. package/dist/common/preflight.d.ts.map +0 -1
  224. package/dist/common/price-formatter.d.ts.map +0 -1
  225. package/dist/common/product-utils.d.ts.map +0 -1
  226. package/dist/common/protocol-adapter.d.ts.map +0 -1
  227. package/dist/common/renderer/dom.d.ts.map +0 -1
  228. package/dist/common/renderer/index.d.ts.map +0 -1
  229. package/dist/common/renderer/overrides.d.ts.map +0 -1
  230. package/dist/common/renderer/registry.d.ts.map +0 -1
  231. package/dist/common/renderer/types.d.ts.map +0 -1
  232. package/dist/common/safe-html.d.ts.map +0 -1
  233. package/dist/common/skeleton.d.ts.map +0 -1
  234. package/dist/common/streaming.d.ts.map +0 -1
  235. package/dist/common/suggested-search-keywords.d.ts.map +0 -1
  236. package/dist/common/theme-utils.d.ts.map +0 -1
  237. package/dist/common/tts-player.d.ts.map +0 -1
  238. package/dist/common/types.d.ts.map +0 -1
  239. package/dist/common/ui-theme.d.ts.map +0 -1
  240. package/dist/common/uuidv7.d.ts.map +0 -1
  241. package/dist/common/voice-input.d.ts.map +0 -1
  242. package/dist/common/widget-base.d.ts.map +0 -1
  243. package/dist/common-C0CDlovf.cjs +0 -2
  244. package/dist/common-C0CDlovf.cjs.map +0 -1
  245. package/dist/common-D7J-qASM.js +0 -357
  246. package/dist/common-D7J-qASM.js.map +0 -1
  247. package/dist/connection-warning-BF8r3_5W.js +0 -96
  248. package/dist/connection-warning-BF8r3_5W.js.map +0 -1
  249. package/dist/connection-warning-Dlirb_Pi.cjs +0 -2
  250. package/dist/connection-warning-Dlirb_Pi.cjs.map +0 -1
  251. package/dist/ga-datalayer-DSVuycfp.cjs +0 -48
  252. package/dist/ga-datalayer-DSVuycfp.cjs.map +0 -1
  253. package/dist/ga-datalayer-DygUbUWr.js +0 -915
  254. package/dist/ga-datalayer-DygUbUWr.js.map +0 -1
  255. package/dist/index.d.ts.map +0 -1
  256. package/dist/native/index.d.ts.map +0 -1
  257. package/dist/native-webview-4YU7k1qK.js +0 -547
  258. package/dist/native-webview-4YU7k1qK.js.map +0 -1
  259. package/dist/native-webview-ifBEffwH.cjs +0 -2
  260. package/dist/native-webview-ifBEffwH.cjs.map +0 -1
  261. package/dist/native.iife.js.map +0 -1
  262. package/dist/product-utils-BEnINMdx.cjs +0 -2
  263. package/dist/product-utils-BEnINMdx.cjs.map +0 -1
  264. package/dist/product-utils-BUalkWz3.js +0 -45
  265. package/dist/product-utils-BUalkWz3.js.map +0 -1
  266. package/dist/qna/api.d.ts.map +0 -1
  267. package/dist/qna/catalog.d.ts.map +0 -1
  268. package/dist/qna/components/ButtonRow.d.ts.map +0 -1
  269. package/dist/qna/components/TextInput.d.ts.map +0 -1
  270. package/dist/qna/components/renderUISpec.d.ts.map +0 -1
  271. package/dist/qna/index.d.ts.map +0 -1
  272. package/dist/qna/locales/en.d.ts.map +0 -1
  273. package/dist/qna/locales/index.d.ts.map +0 -1
  274. package/dist/qna/locales/tr.d.ts.map +0 -1
  275. package/dist/qna/normalize-ui-specs.d.ts.map +0 -1
  276. package/dist/qna/types.d.ts.map +0 -1
  277. package/dist/qna-BUsDAFdn.cjs +0 -2
  278. package/dist/qna-BUsDAFdn.cjs.map +0 -1
  279. package/dist/qna-DrlUFVgh.js +0 -672
  280. package/dist/qna-DrlUFVgh.js.map +0 -1
  281. package/dist/qna.iife.js.map +0 -1
  282. package/dist/schemas-BneJIS3a.cjs +0 -41
  283. package/dist/schemas-BneJIS3a.cjs.map +0 -1
  284. package/dist/schemas-DwX3rpp6.js +0 -3871
  285. package/dist/schemas-DwX3rpp6.js.map +0 -1
  286. package/dist/simbut/index.d.ts.map +0 -1
  287. package/dist/simbut/locales.d.ts.map +0 -1
  288. package/dist/simbut/types.d.ts.map +0 -1
  289. package/dist/simbut-DG48EcoU.js +0 -68
  290. package/dist/simbut-DG48EcoU.js.map +0 -1
  291. package/dist/simbut-DHZFpGIA.cjs +0 -2
  292. package/dist/simbut-DHZFpGIA.cjs.map +0 -1
  293. package/dist/simbut.iife.js.map +0 -1
  294. package/dist/simrel/api.d.ts.map +0 -1
  295. package/dist/simrel/catalog.d.ts.map +0 -1
  296. package/dist/simrel/components/GroupTabs.d.ts.map +0 -1
  297. package/dist/simrel/components/ProductCard.d.ts.map +0 -1
  298. package/dist/simrel/components/ProductGrid.d.ts.map +0 -1
  299. package/dist/simrel/components/renderUISpec.d.ts.map +0 -1
  300. package/dist/simrel/index.d.ts.map +0 -1
  301. package/dist/simrel/locales/en.d.ts.map +0 -1
  302. package/dist/simrel/locales/index.d.ts.map +0 -1
  303. package/dist/simrel/locales/tr.d.ts.map +0 -1
  304. package/dist/simrel/types.d.ts.map +0 -1
  305. package/dist/simrel-B6PD6vfG.js +0 -699
  306. package/dist/simrel-B6PD6vfG.js.map +0 -1
  307. package/dist/simrel-BIp8IAYj.cjs +0 -2
  308. package/dist/simrel-BIp8IAYj.cjs.map +0 -1
  309. package/dist/simrel.iife.js.map +0 -1
@@ -17,6 +17,7 @@ export interface BackendRequestMeta {
17
17
  isControlGroup: boolean;
18
18
  isMobile: boolean;
19
19
  viewId?: string;
20
+ assistantMode?: string;
20
21
  }
21
22
  export interface ProcessActionRequest {
22
23
  account_id: string;
@@ -75,6 +76,8 @@ export interface StreamCallbacks {
75
76
  }> | undefined;
76
77
  skuToProductItem?: Record<string, Record<string, unknown>> | undefined;
77
78
  conversationMode?: string | undefined;
79
+ renderHint?: string | undefined;
80
+ kvkk?: boolean | undefined;
78
81
  }) => void;
79
82
  onUISpec: (spec: UISpec, widget: string, panelHint?: 'panel', clearPanel?: boolean) => void;
80
83
  onAction: (event: StreamEvent) => void;
@@ -83,4 +86,3 @@ export interface StreamCallbacks {
83
86
  onDone: () => void;
84
87
  }
85
88
  export declare function sendChatMessage(request: ProcessActionRequest, callbacks: StreamCallbacks, transport: ChatTransportConfig): AbortController;
86
- //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Assistant-mode utilities for the chat widget.
3
+ *
4
+ * The chat widget can operate in multiple modes (shopping, beauty consulting,
5
+ * watch expert, booking). This module contains the type, parsing helpers, and
6
+ * recognised mode list so the main index.ts stays focused on orchestration.
7
+ */
8
+ export type AssistantMode = 'shopping' | 'booking' | 'beauty_consulting' | 'watch_expert';
9
+ /** Return the value as an AssistantMode if it is a known mode string, otherwise null. */
10
+ export declare function toAssistantMode(value: unknown): AssistantMode | null;
11
+ /** Safely cast an unknown value to a plain Record, or null. */
12
+ export declare function asRecord(value: unknown): Record<string, unknown> | null;
13
+ /** Return the first non-empty string among the given values. */
14
+ export declare function firstString(...values: unknown[]): string | undefined;
15
+ /**
16
+ * Parse a redirect metadata payload and return the target assistant mode,
17
+ * or `null` if the payload is not a valid mode-switch redirect.
18
+ */
19
+ export declare function parseRedirectMode(redirectPayload: unknown): AssistantMode | null;
@@ -7,4 +7,3 @@ export type ValidationResult = {
7
7
  reason: 'invalid_type' | 'too_large';
8
8
  };
9
9
  export declare function validateImageFile(file: File): ValidationResult;
10
- //# sourceMappingURL=attachment-utils.d.ts.map
@@ -359,6 +359,19 @@ export declare const HandoffNoticeSchema: z.ZodObject<{
359
359
  products_discussed: z.ZodOptional<z.ZodArray<z.ZodString>>;
360
360
  user_sentiment: z.ZodOptional<z.ZodString>;
361
361
  }, z.core.$strip>;
362
+ export declare const PhotoAnalysisCardSchema: z.ZodObject<{
363
+ summary: z.ZodString;
364
+ clues: z.ZodArray<z.ZodString>;
365
+ next_question: z.ZodOptional<z.ZodString>;
366
+ style_images: z.ZodOptional<z.ZodArray<z.ZodString>>;
367
+ }, z.core.$strip>;
368
+ export declare const BeautyPhotoStepSchema: z.ZodObject<{
369
+ processing: z.ZodOptional<z.ZodBoolean>;
370
+ title: z.ZodOptional<z.ZodString>;
371
+ description: z.ZodOptional<z.ZodString>;
372
+ upload_label: z.ZodOptional<z.ZodString>;
373
+ skip_label: z.ZodOptional<z.ZodString>;
374
+ }, z.core.$strip>;
362
375
  export declare const chatCatalog: {
363
376
  readonly components: {
364
377
  readonly MessageBubble: {
@@ -741,8 +754,26 @@ export declare const chatCatalog: {
741
754
  }, z.core.$strip>;
742
755
  readonly description: "A notice shown when the conversation is escalated to a human agent.";
743
756
  };
757
+ readonly PhotoAnalysisCard: {
758
+ readonly schema: z.ZodObject<{
759
+ summary: z.ZodString;
760
+ clues: z.ZodArray<z.ZodString>;
761
+ next_question: z.ZodOptional<z.ZodString>;
762
+ style_images: z.ZodOptional<z.ZodArray<z.ZodString>>;
763
+ }, z.core.$strip>;
764
+ readonly description: "Structured photo analysis card with summary, clues, and follow-up question.";
765
+ };
766
+ readonly BeautyPhotoStep: {
767
+ readonly schema: z.ZodObject<{
768
+ processing: z.ZodOptional<z.ZodBoolean>;
769
+ title: z.ZodOptional<z.ZodString>;
770
+ description: z.ZodOptional<z.ZodString>;
771
+ upload_label: z.ZodOptional<z.ZodString>;
772
+ skip_label: z.ZodOptional<z.ZodString>;
773
+ }, z.core.$strip>;
774
+ readonly description: "Transient selfie upload prompt for beauty consulting init flow.";
775
+ };
744
776
  };
745
777
  };
746
778
  export type ChatCatalog = typeof chatCatalog;
747
779
  export type ChatComponentName = keyof ChatCatalog['components'];
748
- //# sourceMappingURL=catalog.d.ts.map
@@ -51,4 +51,3 @@ export declare class ChatPresentationState {
51
51
  * Latest assistant “group” with unread semantics (for auto-anchor).
52
52
  */
53
53
  export declare function getLatestUnreadAssistantThreadId(orderedThreadIds: string[], state: ChatPresentationState): string | null;
54
- //# sourceMappingURL=chat-presentation-state.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { UIElement } from '../../common/types.js';
2
2
  import { ChatUISpecRenderContext } from '../types.js';
3
3
  export declare function renderAIGroupingCards(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
4
- //# sourceMappingURL=AIGroupingCards.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { UIElement } from '../../common/types.js';
2
2
  import { ChatUISpecRenderContext } from '../types.js';
3
3
  export declare function renderAISuggestedSearchCards(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
4
- //# sourceMappingURL=AISuggestedSearchCards.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { UIElement } from '../../common/types.js';
2
2
  import { ChatUISpecRenderContext } from '../types.js';
3
3
  export declare function renderAITopPicks(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
4
- //# sourceMappingURL=AITopPicks.d.ts.map
@@ -0,0 +1,16 @@
1
+ import { UIElement } from '../../common/types.js';
2
+ import { ChatUISpecRenderContext } from '../types.js';
3
+ export interface BeautyPhotoStepProps {
4
+ processing: boolean;
5
+ title?: string | undefined;
6
+ description?: string | undefined;
7
+ uploadLabel?: string | undefined;
8
+ skipLabel?: string | undefined;
9
+ }
10
+ /** Extract typed props from a raw UISpec element props bag. */
11
+ export declare function parseBeautyPhotoStepProps(props: Record<string, unknown>): BeautyPhotoStepProps;
12
+ export interface BeautyPhotoStepCallbacks {
13
+ onUpload?: (() => void) | undefined;
14
+ onSkip?: (() => void) | undefined;
15
+ }
16
+ export declare function renderBeautyPhotoStep(element: UIElement, ctx: ChatUISpecRenderContext, callbacks?: BeautyPhotoStepCallbacks): HTMLElement;
@@ -1,4 +1,3 @@
1
1
  import { UIElement } from '../../common/types.js';
2
2
  import { ChatUISpecRenderContext } from '../types.js';
3
3
  export declare function renderCategoriesContainer(element: UIElement, context: ChatUISpecRenderContext): HTMLElement;
4
- //# sourceMappingURL=CategoriesContainer.d.ts.map
@@ -141,6 +141,8 @@ export declare class ChatDrawer {
141
141
  private _typingLoadingBinding;
142
142
  private _panelLoadingBinding;
143
143
  private _panelAiZoneLoadingBinding;
144
+ private _beautyPhotoStepEl;
145
+ private _renderPhotoAnalysisCard;
144
146
  constructor(container: HTMLElement, options: ChatDrawerOptions);
145
147
  addMessage(message: ChatMessage): void;
146
148
  /** Remove one transcript bubble (e.g. superseded empty assistant placeholder). */
@@ -181,6 +183,20 @@ export declare class ChatDrawer {
181
183
  /** True when the KVKK banner is mounted (user has not dismissed it yet). */
182
184
  isKvkkBannerVisible(): boolean;
183
185
  getElement(): HTMLElement;
186
+ /** Opens the hidden file picker used by the attachment flow. */
187
+ openAttachmentPicker(): void;
188
+ /** Show/hide camera attach controls in the input shell. */
189
+ setAttachmentControlsVisible(visible: boolean): void;
190
+ /** Beauty mode selfie helper card shown above the input area. */
191
+ setBeautyPhotoStepCard(options: {
192
+ visible: boolean;
193
+ processing?: boolean;
194
+ onSkip?: (() => void) | undefined;
195
+ title?: string | undefined;
196
+ description?: string | undefined;
197
+ uploadLabel?: string | undefined;
198
+ skipLabel?: string | undefined;
199
+ }): void;
184
200
  /** Stage a file attachment for sending. Shows preview. */
185
201
  stageAttachment(file: File): void;
186
202
  /** Remove the staged attachment and hide preview. */
@@ -284,7 +300,11 @@ export declare class ChatDrawer {
284
300
  /** Public method for typewriter ticks — scrolls only if user is near bottom. */
285
301
  scrollToBottomIfNeeded(): void;
286
302
  /** Update a bot message's text content in the DOM (e.g. for fallback messages). */
287
- updateBotMessage(messageId: string, html: string): void;
303
+ updateBotMessage(messageId: string, html: string, renderHint?: string, photoAnalysis?: {
304
+ summary: string;
305
+ clues: string[];
306
+ nextQuestion?: string;
307
+ }): void;
288
308
  /** Mark a message as the first bot message in its thread (for special styling). */
289
309
  markFirstBotMessage(messageId: string): void;
290
310
  /** Scroll to the first message of the last thread (for restore targeting). */
@@ -300,6 +320,7 @@ export declare class ChatDrawer {
300
320
  /** Collapse transcript to a single thread (null = show full history). */
301
321
  setPresentationFocus(threadId: string | null): void;
302
322
  setFormerMessagesButtonVisible(visible: boolean): void;
323
+ setInputPlaceholder(placeholder: string): void;
303
324
  private _applyPresentationCollapsed;
304
325
  /** Call after inline chat DOM (e.g. ProductSummaryCard) is appended — reapplies thread collapse. */
305
326
  refreshPresentationCollapsed(): void;
@@ -326,4 +347,3 @@ export declare class ChatDrawer {
326
347
  /** Clean up event listeners and child resources (VoiceInput, timers). */
327
348
  destroy(): void;
328
349
  }
329
- //# sourceMappingURL=ChatDrawer.d.ts.map
@@ -19,4 +19,3 @@ export declare function clearChoicePrompterDismissState(): void;
19
19
  export declare function isChoicePrompterDismissed(threadId: string): boolean;
20
20
  /** Toolbar “Karşılaştır” gibi dış aksiyonlarda CTA ile aynı dismiss kaydı. */
21
21
  export declare function recordChoicePrompterDismissedForThread(threadId: string): void;
22
- //# sourceMappingURL=ChoicePrompter.d.ts.map
@@ -54,4 +54,3 @@ export interface ComparisonTableOptions {
54
54
  pricing?: PriceFormatConfig | undefined;
55
55
  }
56
56
  export declare function renderComparisonTable(options: ComparisonTableOptions): HTMLElement;
57
- //# sourceMappingURL=ComparisonTable.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { ChatUISpecRenderContext } from '../types.js';
2
+ export type StyleVariationProduct = Record<string, unknown>;
3
+ export type StyleVariation = {
4
+ style_label?: string;
5
+ style_mood?: string;
6
+ image_url?: string;
7
+ product_list?: StyleVariationProduct[];
8
+ recommendation_groups?: Array<{
9
+ label?: string;
10
+ reason?: string;
11
+ skus?: string[];
12
+ }>;
13
+ };
14
+ /** Normalise a consulting image URL from the backend (absolute or relative). */
15
+ export declare function toConsultingImageUrl(input: unknown): string | undefined;
16
+ /**
17
+ * Renders the consulting style picker UI (variation buttons + grouped product grid).
18
+ *
19
+ * @param wrapper Container to append into.
20
+ * @param grid The product grid element (cleared and repopulated per variation).
21
+ * @param source Backend source tag (`beauty_consulting` | `watch_expert`).
22
+ * @param styleVariations Non-empty filtered variation list.
23
+ * @param ctx Render context (i18n, callbacks).
24
+ */
25
+ export declare function renderConsultingStylePicker(wrapper: HTMLElement, grid: HTMLElement, source: string, styleVariations: StyleVariation[], ctx?: ChatUISpecRenderContext): void;
@@ -1,3 +1,2 @@
1
1
  import { ChatUISpecRenderContext } from '../types.js';
2
2
  export declare function renderFloatingComparisonButton(selectedSkus: string[], ctx: ChatUISpecRenderContext): HTMLElement;
3
- //# sourceMappingURL=FloatingComparisonButton.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { UIElement } from '../../common/types.js';
2
2
  import { ChatUISpecRenderContext } from '../types.js';
3
3
  export declare function renderGroundingReviewCard(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
4
- //# sourceMappingURL=GroundingReviewCard.d.ts.map
@@ -2,4 +2,3 @@ import { ChatUISpecRenderContext } from '../types.js';
2
2
  export declare function renderHandoffNotice(element: {
3
3
  props?: Record<string, unknown>;
4
4
  }, context: ChatUISpecRenderContext): HTMLElement;
5
- //# sourceMappingURL=HandoffNotice.d.ts.map
@@ -4,4 +4,3 @@ export interface KvkkBannerOptions {
4
4
  closeAriaLabel?: string;
5
5
  }
6
6
  export declare function createKvkkBanner(options: KvkkBannerOptions): HTMLElement;
7
- //# sourceMappingURL=KvkkBanner.d.ts.map
@@ -24,4 +24,3 @@ export interface LauncherElements {
24
24
  contentAreaBottom: HTMLElement;
25
25
  }
26
26
  export declare function createLauncher(options: LauncherOptions): LauncherElements;
27
- //# sourceMappingURL=Launcher.d.ts.map
@@ -30,4 +30,3 @@ export declare class PanelTopBar {
30
30
  setActions(actionsEl: HTMLElement | null): void;
31
31
  getTitle(): string;
32
32
  }
33
- //# sourceMappingURL=PanelTopBar.d.ts.map
@@ -0,0 +1,22 @@
1
+ import { UIElement } from '../../common/types.js';
2
+ import { ChatUISpecRenderContext } from '../types.js';
3
+ export interface PhotoAnalysisData {
4
+ summary: string;
5
+ clues: string[];
6
+ nextQuestion?: string;
7
+ }
8
+ /** Extract structured photo-analysis data from a UISpec element's props. */
9
+ export declare function parsePhotoAnalysisProps(props: Record<string, unknown>): PhotoAnalysisData | null;
10
+ export declare function renderPhotoAnalysisCard(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
11
+ /**
12
+ * Renders a photo analysis card into a chat message bubble.
13
+ *
14
+ * When structured data is available (from a PhotoAnalysisCard UISpec), it renders
15
+ * the summary, clues, and next question directly. Otherwise, falls back to a
16
+ * sentence-splitting heuristic for old backends that don't send the UISpec.
17
+ */
18
+ export declare function renderPhotoAnalysisBubble(container: HTMLElement, content: string, badgeText: string, structured?: {
19
+ summary: string;
20
+ clues: string[];
21
+ nextQuestion?: string;
22
+ }): void;
@@ -1,4 +1,3 @@
1
1
  import { UIElement } from '../../common/types.js';
2
2
  import { ChatUISpecRenderContext } from '../types.js';
3
3
  export declare function renderProductSummaryCard(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
4
- //# sourceMappingURL=ProductSummaryCard.d.ts.map
@@ -6,4 +6,3 @@
6
6
  export declare function renderProsAndCons(element: {
7
7
  props?: Record<string, unknown>;
8
8
  }): HTMLElement;
9
- //# sourceMappingURL=ProsAndCons.d.ts.map
@@ -7,4 +7,3 @@ export declare function renderReviewHighlights(element: UIElement, options?: {
7
7
  reviewCustomersMentionPlural?: string | undefined;
8
8
  reviewSubjectsHeading?: string | undefined;
9
9
  }): HTMLElement;
10
- //# sourceMappingURL=ReviewHighlights.d.ts.map
@@ -22,4 +22,3 @@ export declare class ThumbnailsColumn {
22
22
  show(): void;
23
23
  hide(): void;
24
24
  }
25
- //# sourceMappingURL=ThumbnailsColumn.d.ts.map
@@ -10,4 +10,3 @@ export declare function isInputAreaAction(btn: {
10
10
  type?: string;
11
11
  };
12
12
  }): boolean;
13
- //# sourceMappingURL=actionClassifier.d.ts.map
@@ -16,4 +16,3 @@ export declare function createCampaignPriceBadge(options: {
16
16
  salePriceFormatted: string;
17
17
  logoUrl?: string;
18
18
  }): HTMLElement;
19
- //# sourceMappingURL=product-price-layout.d.ts.map
@@ -23,4 +23,3 @@ export interface ProductMentionLinkerOptions {
23
23
  * Only the first occurrence of each mention is linked to avoid visual clutter.
24
24
  */
25
25
  export declare function linkProductMentions(options: ProductMentionLinkerOptions): void;
26
- //# sourceMappingURL=productMentionLinker.d.ts.map
@@ -1,4 +1,4 @@
1
- import { UISpec } from '../../common/types.js';
1
+ import { UISpec, UIElement } from '../../common/types.js';
2
2
  import { UISpecDomRegistry, UISpecDomUnknownRenderer } from '../../common/renderer/index.js';
3
3
  import { ChatUISpecRenderContext } from '../types.js';
4
4
  import { PriceFormatConfig } from '../../common/price-formatter.js';
@@ -8,4 +8,4 @@ export type { PriceFormatConfig };
8
8
  export declare const defaultChatUnknownUISpecRenderer: UISpecDomUnknownRenderer<UISpecRenderContext>;
9
9
  export declare function createDefaultChatUISpecRegistry(): ChatUISpecRegistry;
10
10
  export declare function renderUISpec(spec: UISpec, ctx: UISpecRenderContext, registry?: ChatUISpecRegistry, unknownRenderer?: UISpecDomUnknownRenderer<UISpecRenderContext>): HTMLElement;
11
- //# sourceMappingURL=renderUISpec.d.ts.map
11
+ export declare function renderProductCard(element: UIElement, ctx: UISpecRenderContext): HTMLElement;
@@ -22,4 +22,3 @@ export interface TypewriterHandle {
22
22
  readonly isRunning: boolean;
23
23
  }
24
24
  export declare function typewriteHtml(options: TypewriterOptions): TypewriterHandle;
25
- //# sourceMappingURL=typewriter.d.ts.map
@@ -30,4 +30,3 @@ export declare class ExtendedModeManager {
30
30
  setPanelContentType(type: PanelContentType | null): void;
31
31
  private _checkStateChange;
32
32
  }
33
- //# sourceMappingURL=extendedModeManager.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { UIElement } from '../../../common/types.js';
2
+ import { ChatUISpecRenderContext } from '../../types.js';
3
+ import { StyleVariation } from '../../components/ConsultingStylePicker.js';
4
+ export interface ConsultingGridResult {
5
+ isConsulting: boolean;
6
+ source: string | undefined;
7
+ styleVariations: StyleVariation[];
8
+ }
9
+ /**
10
+ * Check whether a ProductGrid element should render as a consulting style picker.
11
+ * Returns the check result plus pre-parsed data for {@link renderConsultingGrid}.
12
+ */
13
+ export declare function detectConsultingGrid(element: UIElement): ConsultingGridResult;
14
+ /**
15
+ * Render a consulting style picker into the ProductGrid wrapper.
16
+ * Call only when `detectConsultingGrid` returned `isConsulting: true`.
17
+ */
18
+ export declare function renderConsultingGrid(wrapper: HTMLElement, grid: HTMLElement, detected: ConsultingGridResult, ctx?: ChatUISpecRenderContext): void;
@@ -0,0 +1,20 @@
1
+ import { ChatI18n } from '../../types.js';
2
+ export interface BeautyPhotoStepCardOptions {
3
+ visible: boolean;
4
+ processing?: boolean;
5
+ onSkip?: (() => void) | undefined;
6
+ title?: string | undefined;
7
+ description?: string | undefined;
8
+ uploadLabel?: string | undefined;
9
+ skipLabel?: string | undefined;
10
+ }
11
+ /**
12
+ * Lazily create the beauty photo step slot element and insert it before
13
+ * the input area. Returns the created or existing element.
14
+ */
15
+ export declare function ensureBeautyPhotoStepSlot(existing: HTMLElement | null, conversationEl: HTMLElement | null): HTMLElement;
16
+ /**
17
+ * Show or hide the beauty photo step card.
18
+ * Returns the slot element (possibly newly created).
19
+ */
20
+ export declare function applyBeautyPhotoStepCard(slotEl: HTMLElement | null, conversationEl: HTMLElement | null, options: BeautyPhotoStepCardOptions, i18n: ChatI18n, openAttachmentPicker: () => void): HTMLElement | null;
@@ -0,0 +1,53 @@
1
+ import { AssistantMode } from '../../assistant-mode.js';
2
+ /**
3
+ * Minimal drawer interface consumed by the mode controller.
4
+ * Keeps the controller decoupled from ChatDrawer internals.
5
+ */
6
+ export interface ModeDrawerAdapter {
7
+ setAttachmentControlsVisible(visible: boolean): void;
8
+ setInputPlaceholder(text: string): void;
9
+ setBeautyPhotoStepCard(options: {
10
+ visible: boolean;
11
+ }): void;
12
+ }
13
+ export declare class AssistantModeController {
14
+ private _mode;
15
+ private _uiHints;
16
+ get mode(): AssistantMode;
17
+ set mode(value: AssistantMode);
18
+ get uiHints(): Record<string, unknown> | null;
19
+ set uiHints(value: Record<string, unknown> | null);
20
+ get isShopping(): boolean;
21
+ get isBeautyConsulting(): boolean;
22
+ /** Whether choice prompter is hidden by backend ui_hints. */
23
+ get isChoicePrompterHidden(): boolean;
24
+ /**
25
+ * Apply backend ui_hints to the drawer.
26
+ *
27
+ * @param drawer Drawer adapter (null when drawer not yet created).
28
+ * @param defaultPlaceholder Default input placeholder for shopping mode.
29
+ * @param removePersistentChoicePrompter Callback to remove persistent choice prompter from Shadow DOM.
30
+ */
31
+ applyUiHints(drawer: ModeDrawerAdapter | null, defaultPlaceholder: string, removePersistentChoicePrompter?: () => void): void;
32
+ /**
33
+ * Handle redirect metadata from a backend metadata event.
34
+ * Returns true if the mode actually switched.
35
+ */
36
+ handleRedirect(redirectPayload: unknown): boolean;
37
+ /** Switch to a new assistant mode. */
38
+ switchMode(mode: AssistantMode): void;
39
+ /**
40
+ * Derive mode and ui_hints from a backend CONTEXT panel payload.
41
+ * Missing `assistant_mode` field preserves current mode (old backends).
42
+ * Explicit `null` resets to shopping.
43
+ */
44
+ updateFromContext(panel: Record<string, unknown>): void;
45
+ /**
46
+ * Reset to shopping mode. Returns true if mode was non-shopping before reset.
47
+ */
48
+ reset(): boolean;
49
+ /** Resolve attachment action type based on current mode. */
50
+ resolveAttachmentActionType(): 'user_message' | 'findSimilar';
51
+ /** Non-shopping modes condense thinking step lists. */
52
+ shouldCondenseThinking(): boolean;
53
+ }
@@ -0,0 +1,3 @@
1
+ import { UISpecDomRegistry } from '../../../common/renderer/index.js';
2
+ import { ChatUISpecRenderContext } from '../../types.js';
3
+ export declare const beautyConsultingRegistry: Partial<UISpecDomRegistry<ChatUISpecRenderContext>>;
@@ -0,0 +1,38 @@
1
+ import { PhotoAnalysisData } from '../../components/PhotoAnalysisCard.js';
2
+ import { ChatMessage } from '../../types.js';
3
+ /** Per-stream state for beauty consulting features. */
4
+ export interface BeautyStreamState {
5
+ streamIncludedBeautyPhotoStep: boolean;
6
+ pendingPhotoStepSkip: boolean;
7
+ }
8
+ export declare function createBeautyStreamState(): BeautyStreamState;
9
+ /** Callbacks needed by the beauty stream handler. */
10
+ export interface BeautyStreamContext {
11
+ drawer: {
12
+ updateBotMessage(messageId: string, html: string, renderHint?: string, photoAnalysis?: PhotoAnalysisData): void;
13
+ setBeautyPhotoStepCard(options: {
14
+ visible: boolean;
15
+ processing?: boolean;
16
+ onSkip?: (() => void) | undefined;
17
+ title?: string | undefined;
18
+ description?: string | undefined;
19
+ uploadLabel?: string | undefined;
20
+ skipLabel?: string | undefined;
21
+ }): void;
22
+ } | null;
23
+ ensureRendered: () => void;
24
+ cancelTypewriter: () => void;
25
+ sendSkipMessage: () => void;
26
+ streamDone: boolean;
27
+ }
28
+ /**
29
+ * Handle a beauty-specific UISpec component during stream processing.
30
+ * Returns true if the component was handled (caller should `return`).
31
+ */
32
+ export declare function handleBeautyUISpec(componentType: string, rootElementProps: Record<string, unknown>, state: BeautyStreamState, ctx: BeautyStreamContext, botMsg: ChatMessage): boolean;
33
+ /** Returns true if the bot message should render as a photo analysis card. */
34
+ export declare function isPhotoAnalysisMessage(botMsg: ChatMessage): boolean;
35
+ /** Flush pending beauty photo step state on stream complete. */
36
+ export declare function flushBeautyStreamComplete(state: BeautyStreamState, ctx: BeautyStreamContext): void;
37
+ /** Flush pending beauty photo step skip on stream error. */
38
+ export declare function flushBeautyStreamError(state: BeautyStreamState, ctx: BeautyStreamContext): void;
@@ -1,6 +1,7 @@
1
1
  import { ActionPayload, PageContext } from '../common/types.js';
2
2
  import { BaseWidget } from '../common/widget-base.js';
3
3
  import { ChatWidgetConfig } from './types.js';
4
+ import { AssistantMode } from './assistant-mode.js';
4
5
  /**
5
6
  * Floating AI chat widget with streaming NDJSON responses, product cards, and comparison tables.
6
7
  *
@@ -109,6 +110,13 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
109
110
  private _consecutiveErrorCount;
110
111
  /** Last error message text for deduplication. */
111
112
  private _lastErrorMessage;
113
+ private _modeController;
114
+ /** @deprecated Alias for backward compat in tests. Use _modeController.mode. */
115
+ get _assistantMode(): AssistantMode;
116
+ set _assistantMode(value: AssistantMode);
117
+ /** @deprecated Alias for backward compat in tests. Use _modeController.uiHints. */
118
+ get _uiHints(): Record<string, unknown> | null;
119
+ set _uiHints(value: Record<string, unknown> | null);
112
120
  protected onInit(config: ChatWidgetConfig): Promise<void>;
113
121
  protected onUpdate(context: Partial<PageContext>): void;
114
122
  protected onShow(): void;
@@ -196,6 +204,9 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
196
204
  private _handleAttachment;
197
205
  private _sendMessage;
198
206
  private _flushQueuedUserMessages;
207
+ /** Apply ui_hints from the backend CONTEXT event — delegates to mode controller. */
208
+ private _applyUiHints;
209
+ private _handleRedirectMetadata;
199
210
  private _sendAction;
200
211
  /** Return messages visible at the current thread cursor. */
201
212
  private _getVisibleMessages;
@@ -291,4 +302,3 @@ export type { ChatCatalog, ChatComponentName } from './catalog.js';
291
302
  export { getChatScrollElement, invalidateChatScrollCache, CHAT_SCROLL_ELEMENT_ID, } from './utils/get-chat-scroll-element.js';
292
303
  export { ChatPresentationState } from './chat-presentation-state.js';
293
304
  export type { GroupReadState, PresentationGroupMeta, ScrollRequest } from './chat-presentation-state.js';
294
- //# sourceMappingURL=index.d.ts.map
@@ -18,4 +18,3 @@ export declare function markKvkkShown(accountId: string): void;
18
18
  export declare function stripKvkkBlock(html: string): string;
19
19
  export declare function extractKvkkBlock(html: string): string | null;
20
20
  export declare function localeToOutputLanguage(locale?: string): string;
21
- //# sourceMappingURL=kvkk.d.ts.map
@@ -1,3 +1,2 @@
1
1
  import { ChatI18n } from '../types.js';
2
2
  export declare const CHAT_I18N_EN: ChatI18n;
3
- //# sourceMappingURL=en.d.ts.map
@@ -3,4 +3,3 @@ import { CHAT_I18N_TR } from './tr.js';
3
3
  import { CHAT_I18N_EN } from './en.js';
4
4
  export declare function resolveChatLocale(locale?: string): ChatI18n;
5
5
  export { CHAT_I18N_TR, CHAT_I18N_EN };
6
- //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,2 @@
1
1
  import { ChatI18n } from '../types.js';
2
2
  export declare const CHAT_I18N_TR: ChatI18n;
3
- //# sourceMappingURL=tr.d.ts.map
@@ -96,4 +96,3 @@ export declare function determinePanelUpdateAction(opts: {
96
96
  isPanelLoading: boolean;
97
97
  isFirstPanelContentInStream: boolean;
98
98
  }): PanelUpdateAction;
99
- //# sourceMappingURL=panel-manager.d.ts.map
@@ -62,4 +62,3 @@ export declare class SessionPersistence {
62
62
  toggleFavorite(userId: string, appId: string, sku: string, product: Record<string, unknown>): Promise<void>;
63
63
  close(): void;
64
64
  }
65
- //# sourceMappingURL=session-persistence.d.ts.map
@@ -4,4 +4,3 @@
4
4
  * (e.g. output_text with is_error) stay in the conversation as a chat message.
5
5
  */
6
6
  export declare function shouldShowStreamErrorAsRedStrip(err: Error, displayText: string): boolean;
7
- //# sourceMappingURL=stream-error-display.d.ts.map