@thoughtspot/visual-embed-sdk 1.50.1 → 1.51.0-test

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 (238) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/config.d.ts +1 -0
  3. package/cjs/src/config.d.ts.map +1 -1
  4. package/cjs/src/config.js +2 -1
  5. package/cjs/src/config.js.map +1 -1
  6. package/cjs/src/css-variables.d.ts +63 -0
  7. package/cjs/src/css-variables.d.ts.map +1 -1
  8. package/cjs/src/embed/app.d.ts +148 -25
  9. package/cjs/src/embed/app.d.ts.map +1 -1
  10. package/cjs/src/embed/app.js +74 -37
  11. package/cjs/src/embed/app.js.map +1 -1
  12. package/cjs/src/embed/app.spec.js +571 -150
  13. package/cjs/src/embed/app.spec.js.map +1 -1
  14. package/cjs/src/embed/base.d.ts +1 -1
  15. package/cjs/src/embed/base.js +1 -1
  16. package/cjs/src/embed/conversation.d.ts +375 -2
  17. package/cjs/src/embed/conversation.d.ts.map +1 -1
  18. package/cjs/src/embed/conversation.js +21 -15
  19. package/cjs/src/embed/conversation.js.map +1 -1
  20. package/cjs/src/embed/conversation.spec.js +323 -17
  21. package/cjs/src/embed/conversation.spec.js.map +1 -1
  22. package/cjs/src/embed/events.spec.js +45 -0
  23. package/cjs/src/embed/events.spec.js.map +1 -1
  24. package/cjs/src/embed/host-events.spec.js +81 -0
  25. package/cjs/src/embed/host-events.spec.js.map +1 -1
  26. package/cjs/src/embed/hostEventClient/contracts.d.ts +15 -0
  27. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  28. package/cjs/src/embed/hostEventClient/contracts.js +1 -0
  29. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  30. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  31. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  32. package/cjs/src/embed/hostEventClient/host-event-client.js +1 -0
  33. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  34. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  35. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  36. package/cjs/src/embed/liveboard.d.ts +76 -14
  37. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  38. package/cjs/src/embed/liveboard.js +50 -9
  39. package/cjs/src/embed/liveboard.js.map +1 -1
  40. package/cjs/src/embed/liveboard.spec.js +432 -4
  41. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  42. package/cjs/src/embed/spotter-utils.d.ts +15 -1
  43. package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
  44. package/cjs/src/embed/spotter-utils.js +28 -1
  45. package/cjs/src/embed/spotter-utils.js.map +1 -1
  46. package/cjs/src/embed/spotter-utils.spec.js +129 -0
  47. package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
  48. package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
  49. package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
  50. package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
  51. package/cjs/src/embed/ts-embed.d.ts +16 -8
  52. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  53. package/cjs/src/embed/ts-embed.js +82 -30
  54. package/cjs/src/embed/ts-embed.js.map +1 -1
  55. package/cjs/src/embed/ts-embed.spec.js +537 -3
  56. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  57. package/cjs/src/index.d.ts +3 -3
  58. package/cjs/src/index.d.ts.map +1 -1
  59. package/cjs/src/index.js +3 -2
  60. package/cjs/src/index.js.map +1 -1
  61. package/cjs/src/mixpanel-service.d.ts +4 -0
  62. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  63. package/cjs/src/mixpanel-service.js +4 -0
  64. package/cjs/src/mixpanel-service.js.map +1 -1
  65. package/cjs/src/react/all-types-export.d.ts +1 -1
  66. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  67. package/cjs/src/react/all-types-export.js +2 -1
  68. package/cjs/src/react/all-types-export.js.map +1 -1
  69. package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
  70. package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  71. package/cjs/src/react/all-types-export.parity.spec.js +194 -0
  72. package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
  73. package/cjs/src/react/index.d.ts +66 -32
  74. package/cjs/src/react/index.d.ts.map +1 -1
  75. package/cjs/src/react/index.js +5 -3
  76. package/cjs/src/react/index.js.map +1 -1
  77. package/cjs/src/react/index.spec.js +101 -0
  78. package/cjs/src/react/index.spec.js.map +1 -1
  79. package/cjs/src/types.d.ts +789 -32
  80. package/cjs/src/types.d.ts.map +1 -1
  81. package/cjs/src/types.js +610 -20
  82. package/cjs/src/types.js.map +1 -1
  83. package/cjs/src/utils.spec.js +4 -0
  84. package/cjs/src/utils.spec.js.map +1 -1
  85. package/dist/{index-fCne7kmU.js → index-Bivg-mDx.js} +1 -1
  86. package/dist/src/config.d.ts +1 -0
  87. package/dist/src/config.d.ts.map +1 -1
  88. package/dist/src/css-variables.d.ts +63 -0
  89. package/dist/src/css-variables.d.ts.map +1 -1
  90. package/dist/src/embed/app.d.ts +148 -25
  91. package/dist/src/embed/app.d.ts.map +1 -1
  92. package/dist/src/embed/base.d.ts +1 -1
  93. package/dist/src/embed/conversation.d.ts +375 -2
  94. package/dist/src/embed/conversation.d.ts.map +1 -1
  95. package/dist/src/embed/hostEventClient/contracts.d.ts +15 -0
  96. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  97. package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  98. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  99. package/dist/src/embed/liveboard.d.ts +76 -14
  100. package/dist/src/embed/liveboard.d.ts.map +1 -1
  101. package/dist/src/embed/spotter-utils.d.ts +15 -1
  102. package/dist/src/embed/spotter-utils.d.ts.map +1 -1
  103. package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
  104. package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
  105. package/dist/src/embed/ts-embed.d.ts +16 -8
  106. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  107. package/dist/src/index.d.ts +3 -3
  108. package/dist/src/index.d.ts.map +1 -1
  109. package/dist/src/mixpanel-service.d.ts +4 -0
  110. package/dist/src/mixpanel-service.d.ts.map +1 -1
  111. package/dist/src/react/all-types-export.d.ts +1 -1
  112. package/dist/src/react/all-types-export.d.ts.map +1 -1
  113. package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
  114. package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  115. package/dist/src/react/index.d.ts +66 -32
  116. package/dist/src/react/index.d.ts.map +1 -1
  117. package/dist/src/types.d.ts +789 -32
  118. package/dist/src/types.d.ts.map +1 -1
  119. package/dist/tsembed-react.es.js +878 -120
  120. package/dist/tsembed-react.js +877 -119
  121. package/dist/tsembed.es.js +936 -181
  122. package/dist/tsembed.js +938 -183
  123. package/dist/visual-embed-sdk-react-full.d.ts +1553 -128
  124. package/dist/visual-embed-sdk-react.d.ts +1555 -129
  125. package/dist/visual-embed-sdk.d.ts +1499 -100
  126. package/lib/package.json +1 -1
  127. package/lib/src/config.d.ts +1 -0
  128. package/lib/src/config.d.ts.map +1 -1
  129. package/lib/src/config.js +1 -0
  130. package/lib/src/config.js.map +1 -1
  131. package/lib/src/css-variables.d.ts +63 -0
  132. package/lib/src/css-variables.d.ts.map +1 -1
  133. package/lib/src/embed/app.d.ts +148 -25
  134. package/lib/src/embed/app.d.ts.map +1 -1
  135. package/lib/src/embed/app.js +75 -38
  136. package/lib/src/embed/app.js.map +1 -1
  137. package/lib/src/embed/app.spec.js +572 -151
  138. package/lib/src/embed/app.spec.js.map +1 -1
  139. package/lib/src/embed/base.d.ts +1 -1
  140. package/lib/src/embed/base.js +1 -1
  141. package/lib/src/embed/conversation.d.ts +375 -2
  142. package/lib/src/embed/conversation.d.ts.map +1 -1
  143. package/lib/src/embed/conversation.js +23 -17
  144. package/lib/src/embed/conversation.js.map +1 -1
  145. package/lib/src/embed/conversation.spec.js +323 -17
  146. package/lib/src/embed/conversation.spec.js.map +1 -1
  147. package/lib/src/embed/events.spec.js +45 -0
  148. package/lib/src/embed/events.spec.js.map +1 -1
  149. package/lib/src/embed/host-events.spec.js +81 -0
  150. package/lib/src/embed/host-events.spec.js.map +1 -1
  151. package/lib/src/embed/hostEventClient/contracts.d.ts +15 -0
  152. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  153. package/lib/src/embed/hostEventClient/contracts.js +1 -0
  154. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  155. package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
  156. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  157. package/lib/src/embed/hostEventClient/host-event-client.js +1 -0
  158. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  159. package/lib/src/embed/hostEventClient/host-event-client.spec.js +27 -0
  160. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  161. package/lib/src/embed/liveboard.d.ts +76 -14
  162. package/lib/src/embed/liveboard.d.ts.map +1 -1
  163. package/lib/src/embed/liveboard.js +50 -9
  164. package/lib/src/embed/liveboard.js.map +1 -1
  165. package/lib/src/embed/liveboard.spec.js +432 -4
  166. package/lib/src/embed/liveboard.spec.js.map +1 -1
  167. package/lib/src/embed/spotter-utils.d.ts +15 -1
  168. package/lib/src/embed/spotter-utils.d.ts.map +1 -1
  169. package/lib/src/embed/spotter-utils.js +25 -0
  170. package/lib/src/embed/spotter-utils.js.map +1 -1
  171. package/lib/src/embed/spotter-utils.spec.js +130 -1
  172. package/lib/src/embed/spotter-utils.spec.js.map +1 -1
  173. package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
  174. package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
  175. package/lib/src/embed/spotter-viz-utils.js.map +1 -1
  176. package/lib/src/embed/ts-embed.d.ts +16 -8
  177. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  178. package/lib/src/embed/ts-embed.js +82 -30
  179. package/lib/src/embed/ts-embed.js.map +1 -1
  180. package/lib/src/embed/ts-embed.spec.js +537 -3
  181. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  182. package/lib/src/index.d.ts +3 -3
  183. package/lib/src/index.d.ts.map +1 -1
  184. package/lib/src/index.js +2 -2
  185. package/lib/src/index.js.map +1 -1
  186. package/lib/src/mixpanel-service.d.ts +4 -0
  187. package/lib/src/mixpanel-service.d.ts.map +1 -1
  188. package/lib/src/mixpanel-service.js +4 -0
  189. package/lib/src/mixpanel-service.js.map +1 -1
  190. package/lib/src/react/all-types-export.d.ts +1 -1
  191. package/lib/src/react/all-types-export.d.ts.map +1 -1
  192. package/lib/src/react/all-types-export.js +1 -1
  193. package/lib/src/react/all-types-export.js.map +1 -1
  194. package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
  195. package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
  196. package/lib/src/react/all-types-export.parity.spec.js +191 -0
  197. package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
  198. package/lib/src/react/index.d.ts +66 -32
  199. package/lib/src/react/index.d.ts.map +1 -1
  200. package/lib/src/react/index.js +5 -3
  201. package/lib/src/react/index.js.map +1 -1
  202. package/lib/src/react/index.spec.js +102 -1
  203. package/lib/src/react/index.spec.js.map +1 -1
  204. package/lib/src/types.d.ts +789 -32
  205. package/lib/src/types.d.ts.map +1 -1
  206. package/lib/src/types.js +610 -20
  207. package/lib/src/types.js.map +1 -1
  208. package/lib/src/utils.spec.js +4 -0
  209. package/lib/src/utils.spec.js.map +1 -1
  210. package/lib/src/visual-embed-sdk.d.ts +1499 -100
  211. package/package.json +1 -1
  212. package/src/config.ts +1 -0
  213. package/src/css-variables.ts +77 -0
  214. package/src/embed/app.spec.ts +729 -188
  215. package/src/embed/app.ts +240 -75
  216. package/src/embed/base.ts +1 -1
  217. package/src/embed/conversation.spec.ts +379 -20
  218. package/src/embed/conversation.ts +412 -18
  219. package/src/embed/events.spec.ts +56 -0
  220. package/src/embed/host-events.spec.ts +118 -0
  221. package/src/embed/hostEventClient/contracts.ts +16 -0
  222. package/src/embed/hostEventClient/host-event-client.spec.ts +46 -0
  223. package/src/embed/hostEventClient/host-event-client.ts +3 -2
  224. package/src/embed/liveboard.spec.ts +565 -4
  225. package/src/embed/liveboard.ts +150 -29
  226. package/src/embed/spotter-utils.spec.ts +140 -1
  227. package/src/embed/spotter-utils.ts +36 -1
  228. package/src/embed/spotter-viz-utils.ts +9 -10
  229. package/src/embed/ts-embed.spec.ts +699 -3
  230. package/src/embed/ts-embed.ts +99 -35
  231. package/src/index.ts +44 -2
  232. package/src/mixpanel-service.ts +4 -0
  233. package/src/react/all-types-export.parity.spec.ts +208 -0
  234. package/src/react/all-types-export.ts +22 -0
  235. package/src/react/index.spec.tsx +158 -0
  236. package/src/react/index.tsx +70 -33
  237. package/src/types.ts +791 -30
  238. package/src/utils.spec.ts +5 -0
@@ -41,6 +41,42 @@ export interface CustomCssVariables {
41
41
  * Font color of the top navigation panel.
42
42
  */
43
43
  "--ts-var-nav-color"?: string;
44
+ /**
45
+ * Background color of the left navigation panel.
46
+ */
47
+ "--ts-var-left-nav-background"?: string;
48
+ /**
49
+ * Background color of the active tab in the left navigation panel.
50
+ */
51
+ "--ts-var-left-nav-active-tab-background"?: string;
52
+ /**
53
+ * Border color of the active tab in the left navigation panel.
54
+ */
55
+ "--ts-var-left-nav-active-tab-border-color"?: string;
56
+ /**
57
+ * Font color of the section title in the left navigation panel.
58
+ */
59
+ "--ts-var-left-nav-section-title-color"?: string;
60
+ /**
61
+ * Font color of the items in the left navigation panel.
62
+ */
63
+ "--ts-var-left-nav-item-color"?: string;
64
+ /**
65
+ * Font color of the selected item in the left navigation panel.
66
+ */
67
+ "--ts-var-left-nav-item-selection-color"?: string;
68
+ /**
69
+ * Background color of the selected item in the left navigation panel.
70
+ */
71
+ "--ts-var-left-nav-item-selection-background"?: string;
72
+ /**
73
+ * Color of the active tab icon in the left navigation panel.
74
+ */
75
+ "--ts-var-left-nav-tab-icon-active-color"?: string;
76
+ /**
77
+ * Color of the inactive tab icon in the left navigation panel.
78
+ */
79
+ "--ts-var-left-nav-tab-icon-inactive-color"?: string;
44
80
  /**
45
81
  * Background color of the *Search data* button.
46
82
  */
@@ -405,6 +441,13 @@ export interface CustomCssVariables {
405
441
  * Font color of the header in the Liveboard.
406
442
  */
407
443
  "--ts-var-liveboard-header-font-color"?: string;
444
+ /**
445
+ * Left and right margin of the header and the tab/filter section of an
446
+ * embedded Liveboard. Use alongside the `liveboardGutter` view config to
447
+ * keep the header aligned with a custom tile-grid gutter.
448
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
449
+ */
450
+ "--ts-var-liveboard-header-horizontal-margin"?: string;
408
451
  /**
409
452
  * Border color of the tiles in the Liveboard.
410
453
  */
@@ -421,6 +464,18 @@ export interface CustomCssVariables {
421
464
  * Background color of the insight tiles in the Liveboard.
422
465
  */
423
466
  "--ts-var-liveboard-insight-tile-background"?: string;
467
+ /**
468
+ * Icon color of the insight tiles in the Liveboard.
469
+ */
470
+ "--ts-var-liveboard-insight-tile-icon-color"?: string;
471
+ /**
472
+ * Font color of the success text in the insight tiles in the Liveboard.
473
+ */
474
+ "--ts-var-liveboard-insight-tile-success-color"?: string;
475
+ /**
476
+ * Font color of the failure text in the insight tiles in the Liveboard.
477
+ */
478
+ "--ts-var-liveboard-insight-tile-failure-color"?: string;
424
479
  /**
425
480
  * Border radius of the tiles in the Liveboard.
426
481
  */
@@ -641,6 +696,14 @@ export interface CustomCssVariables {
641
696
  * Font color of the parameter chips in the Liveboard on active.
642
697
  */
643
698
  "--ts-var-parameter-chip-active-text-color"?: string;
699
+ /**
700
+ * Color of the dot indicator shown on a filter or parameter chip in the
701
+ * centralized filter modal on a Liveboard. The dot appears when the
702
+ * filter or parameter value has been modified but the changes are not
703
+ * yet applied to the Liveboard.
704
+ * @version SDK: 1.52.0 | ThoughtSpot: 26.10.0.cl
705
+ */
706
+ "--ts-var-unsaved-filter-indicator-color"?: string;
644
707
  /**
645
708
  * Background color of the action button in the Liveboard header.
646
709
  */
@@ -1344,7 +1407,9 @@ declare enum AuthType {
1344
1407
  }
1345
1408
  /**
1346
1409
  *
1347
- * **Note**: This attribute is not supported in the classic (V1) homepage experience.
1410
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
1411
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
1412
+ * V4 (Focused) home page experiences.
1348
1413
  *
1349
1414
  */
1350
1415
  export declare enum HomeLeftNavItem {
@@ -2033,6 +2098,85 @@ export interface FrameParams {
2033
2098
  */
2034
2099
  [key: string]: string | number | boolean | undefined;
2035
2100
  }
2101
+ /**
2102
+ * Configuration for the pre-render wrapper element.
2103
+ * All properties here mirror the top-level preRender properties on
2104
+ * {@link BaseViewConfig} and take precedence over them when both are set,
2105
+ * so existing top-level usage continues to work without any changes.
2106
+ *
2107
+ * @version SDK: 1.52.0
2108
+ * @example
2109
+ * ```js
2110
+ * init({ thoughtSpotHost: '...', authType: AuthType.None });
2111
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2112
+ * preRenderConfig: {
2113
+ * preRenderId: 'my-liveboard',
2114
+ * preRenderContainer: '#my-scroll-container',
2115
+ * doNotTrackPreRenderSize: false,
2116
+ * zIndex: -10,
2117
+ * },
2118
+ * });
2119
+ * embed.preRender();
2120
+ * embed.showPreRender();
2121
+ * ```
2122
+ */
2123
+ export interface PreRenderConfig {
2124
+ /**
2125
+ * Pre-render ID to identify the pre-render instance.
2126
+ * Takes precedence over the top-level `preRenderId` when both are set.
2127
+ *
2128
+ * Matches the embed warmed by `preRender()` to the one revealed by
2129
+ * `showPreRender()`. Embeds sharing an ID share one loaded frame: reuse the ID for
2130
+ * the same view, and give unrelated views their own or they will collide.
2131
+ * Required by `preRender()`, `showPreRender()`, and `hidePreRender()`, which log
2132
+ * and do nothing without it.
2133
+ *
2134
+ * @default undefined
2135
+ */
2136
+ preRenderId?: string;
2137
+ /**
2138
+ * The DOM element or CSS selector string specifying the container into
2139
+ * which the pre-rendered wrapper is inserted.
2140
+ * Takes precedence over the top-level `preRenderContainer` when both are set.
2141
+ *
2142
+ * Set this when your app scrolls inside an element rather than the page (for
2143
+ * example `<body>` has `overflow: hidden`). Point it at the element that actually
2144
+ * scrolls, keep that element mounted while the embed is warm, and prefer a
2145
+ * selector string — it is re-resolved on reposition and so survives a remount,
2146
+ * while a detached element reference cannot be recovered. An invalid selector is
2147
+ * logged and falls back to `document.body`.
2148
+ * See {@link BaseViewConfig.preRenderContainer} for details, including Shadow DOM.
2149
+ *
2150
+ * @default document.body
2151
+ */
2152
+ preRenderContainer?: string | HTMLElement;
2153
+ /**
2154
+ * Disables the `ResizeObserver` that keeps the wrapper sized to the
2155
+ * placeholder element.
2156
+ * Takes precedence over the top-level `doNotTrackPreRenderSize` when both are set.
2157
+ *
2158
+ * Set this only when you size the embed yourself; you then own alignment and must
2159
+ * call `syncPreRenderStyle()` after any change that moves or resizes it. Tracking
2160
+ * already pauses while hidden, so this is not needed to avoid work then.
2161
+ *
2162
+ * @default false
2163
+ */
2164
+ doNotTrackPreRenderSize?: boolean;
2165
+ /**
2166
+ * CSS `z-index` value applied to the pre-render wrapper when hidden.
2167
+ * Override this when the host page's stacking context does not reach `-1000`
2168
+ * and the hidden wrapper still appears above other elements.
2169
+ *
2170
+ * A page that creates its own stacking context — a positioned app shell, a
2171
+ * transformed wrapper, a modal layer — can clamp `-1000`, and the hidden wrapper
2172
+ * then shows through or swallows clicks meant for your UI. Reach for this when you
2173
+ * see a faint panel behind your content, or clicks landing on nothing in the
2174
+ * region where the embed will eventually appear.
2175
+ *
2176
+ * @default -1000
2177
+ */
2178
+ zIndex?: number;
2179
+ }
2036
2180
  /**
2037
2181
  * The common configuration object for an embedded view.
2038
2182
  */
@@ -2117,7 +2261,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2117
2261
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2118
2262
  * const embed = new <EmbedComponent>('#tsEmbed', {
2119
2263
  * ... // other embed view config
2120
- * hiddenActions: [Action.Download, Action.Export],
2264
+ * hiddenActions: [Action.Download, Action.ExportTML],
2121
2265
  * });
2122
2266
  * ```
2123
2267
  * @important
@@ -2139,7 +2283,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2139
2283
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
2140
2284
  * const embed = new <EmbedComponent>('#tsEmbed', {
2141
2285
  * ... // other embed view config
2142
- * visibleActions: [Action.Download, Action.Export],
2286
+ * visibleActions: [Action.Download, Action.ExportTML],
2143
2287
  * });
2144
2288
  * ```
2145
2289
  */
@@ -2224,6 +2368,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2224
2368
  *
2225
2369
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`, `SearchEmbed`, `SpotterAgentEmbed`, `SpotterEmbed`, `SearchBarEmbed`
2226
2370
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl, 9.8.0.sw
2371
+ * @deprecated Use {@link PreRenderConfig.preRenderId} via `preRenderConfig` instead.
2227
2372
  * @example
2228
2373
  * ```js
2229
2374
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed, SearchEmbed, or LiveboardEmbed
@@ -2243,6 +2388,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2243
2388
  * @type {boolean}
2244
2389
  * @default false
2245
2390
  * @version SDK: 1.24.0 | ThoughtSpot: 9.4.0.cl, 9.4.0.sw
2391
+ * @deprecated Use {@link PreRenderConfig.doNotTrackPreRenderSize} via `preRenderConfig` instead.
2246
2392
  * @example
2247
2393
  * ```js
2248
2394
  * // Disable tracking PreRender size in the configuration
@@ -2284,6 +2430,7 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2284
2430
  *
2285
2431
  * @type {string | HTMLElement}
2286
2432
  * @version SDK: 1.49.2 | ThoughtSpot: *
2433
+ * @deprecated Use {@link PreRenderConfig.preRenderContainer} via `preRenderConfig` instead.
2287
2434
  * @example
2288
2435
  * ```js
2289
2436
  * const embed = new LiveboardEmbed('#tsEmbed', {
@@ -2294,6 +2441,27 @@ export interface BaseViewConfig extends ApiInterceptFlags {
2294
2441
  * ```
2295
2442
  */
2296
2443
  preRenderContainer?: string | HTMLElement;
2444
+ /**
2445
+ * Configuration for the pre-render wrapper element.
2446
+ * All properties here mirror the top-level preRender properties on
2447
+ * `BaseViewConfig` and take precedence over them when both are set,
2448
+ * so existing top-level usage continues to work without any changes.
2449
+ * See {@link PreRenderConfig} for available options.
2450
+ *
2451
+ * @version SDK: 1.52.0
2452
+ * @example
2453
+ * ```js
2454
+ * const embed = new LiveboardEmbed('#tsEmbed', {
2455
+ * preRenderConfig: {
2456
+ * preRenderId: 'my-liveboard',
2457
+ * zIndex: -10,
2458
+ * },
2459
+ * });
2460
+ * embed.preRender();
2461
+ * embed.showPreRender();
2462
+ * ```
2463
+ */
2464
+ preRenderConfig?: PreRenderConfig;
2297
2465
  /**
2298
2466
  * Enable the V2 shell. This can provide performance benefits
2299
2467
  * due to a lighter-weight shell.
@@ -2717,7 +2885,7 @@ export interface HomePageConfig {
2717
2885
  *
2718
2886
  * const embed = new AppEmbed('#tsEmbed', {
2719
2887
  * ... //other embed view config
2720
- * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
2888
+ * hiddenListColumns : [ListPageColumns.Favorites,ListPageColumns.Author],
2721
2889
  * })
2722
2890
  * ```
2723
2891
  */
@@ -2727,7 +2895,9 @@ export interface HomePageConfig {
2727
2895
  * To specify the modules, import the `HomepageModule` enum.
2728
2896
  * For example: `hiddenHomepageModules = [HomepageModule.MyLibrary]`
2729
2897
  *
2730
- * **Note**: This attribute is not supported in the classic (v1) experience.
2898
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2899
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2900
+ * and V4 (Focused) home page experiences.
2731
2901
  *
2732
2902
  * Supported embed types: `AppEmbed`
2733
2903
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2736,7 +2906,7 @@ export interface HomePageConfig {
2736
2906
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2737
2907
  *
2738
2908
  * const embed = new AppEmbed('#tsEmbed', {
2739
- * ... // V2/V3 navigation and home page experience attributes
2909
+ * ... // V3 navigation and home page experience attributes
2740
2910
  * hiddenHomepageModules : [HomepageModule.Favorite,HomepageModule.Learning],
2741
2911
  * //...other embed view configuration attributes
2742
2912
  * })
@@ -2747,8 +2917,11 @@ export interface HomePageConfig {
2747
2917
  * Reorder home page modules.
2748
2918
  * To specify the modules, import the `HomepageModule` enum.
2749
2919
  * For example: `reorderedHomepageModules = [HomepageModule.MyLibrary,
2750
- * HomepageModule.Watchlist]` **Note**: This attribute is not supported in the
2751
- * classic (v1) homepage.
2920
+ * HomepageModule.Watchlist]`
2921
+ *
2922
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2923
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2924
+ * and V4 (Focused) home page experiences.
2752
2925
  *
2753
2926
  * Supported embed types: `AppEmbed`
2754
2927
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -2757,7 +2930,7 @@ export interface HomePageConfig {
2757
2930
  * import { HomepageModule } from '@thoughtspot/visual-embed-sdk';
2758
2931
  *
2759
2932
  * const embed = new AppEmbed('#tsEmbed', {
2760
- * ...//V2/V3 navigation and home page experience attributes
2933
+ * ...//V3 navigation and home page experience attributes
2761
2934
  * reorderedHomepageModules:[HomepageModule.Favorite,HomepageModule.MyLibrary],
2762
2935
  * //... other embed view configuration attributes
2763
2936
  * })
@@ -2769,7 +2942,9 @@ export interface HomePageConfig {
2769
2942
  * on the home page left navigation panel.
2770
2943
  * To specify the menu items, import the `HomeLeftNavItem` enum.
2771
2944
  *
2772
- * **Note**: This attribute is not supported in the classic (v1) homepage.
2945
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
2946
+ * deprecated. This attribute applies to V3 (ModularWithStylingChanges)
2947
+ * and V4 (Focused) home page experiences.
2773
2948
  *
2774
2949
  * Supported embed types: `AppEmbed`
2775
2950
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
@@ -3023,6 +3198,25 @@ export interface LiveboardAppEmbedViewConfig {
3023
3198
  * ```
3024
3199
  */
3025
3200
  enable2ColumnLayout?: boolean;
3201
+ /**
3202
+ * This attribute keeps an embedded Liveboard on the 12-column layout at
3203
+ * every width, instead of switching to the two-column or single-column
3204
+ * layout as the container narrows.
3205
+ *
3206
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3207
+ * @type {boolean}
3208
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3209
+ * @default false
3210
+ * @example
3211
+ * ```js
3212
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3213
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3214
+ * ... // other embed view config
3215
+ * isLiveboardAlwaysOn12ColLayout: true,
3216
+ * })
3217
+ * ```
3218
+ */
3219
+ isLiveboardAlwaysOn12ColLayout?: boolean;
3026
3220
  /**
3027
3221
  * This flag can be used to enable the compact header in Liveboard
3028
3222
  *
@@ -3127,6 +3321,26 @@ export interface LiveboardAppEmbedViewConfig {
3127
3321
  * ```
3128
3322
  */
3129
3323
  coverAndFilterOptionInPDF?: boolean;
3324
+ /**
3325
+ * Sets the gutter space (in pixels) between the visualization tiles of
3326
+ * an embedded Liveboard grid layout and its outer layout padding.
3327
+ * Accepts a non-negative integer; `0` renders the tiles without any gap
3328
+ * and removes the outer padding. When omitted, the gutter saved in the
3329
+ * Liveboard's styling settings (or the ThoughtSpot default) applies.
3330
+ *
3331
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3332
+ * @type {number}
3333
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
3334
+ * @example
3335
+ * ```js
3336
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3337
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3338
+ * ... // other embed view config
3339
+ * liveboardGutter: 8,
3340
+ * })
3341
+ * ```
3342
+ */
3343
+ liveboardGutter?: number;
3130
3344
  /**
3131
3345
  * This flag is used to enable or disable the new centralized Liveboard filter UX
3132
3346
  * (v2). When enabled, a unified modal is used to manage and update multiple filters
@@ -3145,6 +3359,24 @@ export interface LiveboardAppEmbedViewConfig {
3145
3359
  * ```
3146
3360
  */
3147
3361
  isCentralizedLiveboardFilterUXEnabled?: boolean;
3362
+ /**
3363
+ * This flag is used to enable or disable scoped Liveboard filtering.
3364
+ * When enabled, filters and parameters can be scoped to a group of
3365
+ * visualizations on a Liveboard, in addition to the Liveboard and
3366
+ * tab levels.
3367
+ *
3368
+ * Supported embed types: `AppEmbed`, `LiveboardEmbed`
3369
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
3370
+ * @example
3371
+ * ```js
3372
+ * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
3373
+ * const embed = new <EmbedComponent>('#tsEmbed', {
3374
+ * ... // other embed view config
3375
+ * isScopedLiveboardFilteringEnabled: true,
3376
+ * })
3377
+ * ```
3378
+ */
3379
+ isScopedLiveboardFilteringEnabled?: boolean;
3148
3380
  /**
3149
3381
  * This flag is used to enable or disable the link parameters in liveboard.
3150
3382
  *
@@ -3328,7 +3560,9 @@ export declare enum RuntimeFilterOp {
3328
3560
  * via `hiddenHomepageModules` and reordered via
3329
3561
  * `reorderedHomepageModules`.
3330
3562
  *
3331
- * **Note**: This option is not supported in the classic (v1) experience.
3563
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
3564
+ * deprecated. These modules apply to V3 (ModularWithStylingChanges) and
3565
+ * V4 (Focused) home page experiences.
3332
3566
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
3333
3567
  */
3334
3568
  export declare enum HomepageModule {
@@ -3537,7 +3771,7 @@ export declare enum EmbedEvent {
3537
3771
  * @returns nonFilteredColumns - The columns that were not filtered
3538
3772
  * @example
3539
3773
  * ```js
3540
- * searchEmbed.on(EmbedEvent.DrillDown, {
3774
+ * searchEmbed.on(EmbedEvent.Drilldown, {
3541
3775
  * points: {
3542
3776
  * clickedPoint,
3543
3777
  * selectedPoints: selectedPoint
@@ -3598,7 +3832,7 @@ export declare enum EmbedEvent {
3598
3832
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
3599
3833
  * @example
3600
3834
  * ```js
3601
- * appEmbed.on(EmbedEvent.customAction, payload => {
3835
+ * appEmbed.on(EmbedEvent.CustomAction, payload => {
3602
3836
  * const data = payload.data;
3603
3837
  * if (data.id === 'insert Custom Action ID here') {
3604
3838
  * console.log('Custom Action event:', data.embedAnswerData);
@@ -3864,8 +4098,8 @@ export declare enum EmbedEvent {
3864
4098
  *
3865
4099
  * **Note**: This event is deprecated in v1.21.0.
3866
4100
  * To fire an event when a download action is initiated on a chart or table,
3867
- * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
3868
- * `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
4101
+ * use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
4102
+ * `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
3869
4103
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
3870
4104
  * @example
3871
4105
  * ```js
@@ -3915,10 +4149,10 @@ export declare enum EmbedEvent {
3915
4149
  * @example
3916
4150
  * ```js
3917
4151
  * //emit when action starts
3918
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4152
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3919
4153
  * console.log('download CSV', payload)}, {start: true })
3920
4154
  * //emit when action ends
3921
- * searchEmbed.on(EmbedEvent.DownloadAsCSV, payload => {
4155
+ * searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
3922
4156
  * console.log('download CSV', payload)})
3923
4157
  * ```
3924
4158
  */
@@ -4317,11 +4551,19 @@ export declare enum EmbedEvent {
4317
4551
  * Emitted when a user changes any filter on a Liveboard.
4318
4552
  * Returns filter type and name, column name and ID, and runtime
4319
4553
  * filter details.
4554
+ * The payload includes an optional `applicability` attribute indicating the
4555
+ * scope of the changed filter. It contains a `level` (`LIVEBOARD`,
4556
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4557
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4558
+ * is no `targetId`, since the filter applies to the whole Liveboard.
4559
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4560
+ * ThoughtSpot: 26.10.0.cl.
4320
4561
  * @example
4321
4562
  *
4322
4563
  * ```js
4323
4564
  * LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
4324
4565
  * console.log('payload', payload);
4566
+ * // payload.data optionally includes applicability: { level, targetId }
4325
4567
  * })
4326
4568
  * ```
4327
4569
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
@@ -4513,9 +4755,17 @@ export declare enum EmbedEvent {
4513
4755
  /**
4514
4756
  * Emitted when parameter changes in an Answer
4515
4757
  * or Liveboard.
4758
+ * The payload includes an optional `applicability` attribute indicating the
4759
+ * scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
4760
+ * `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
4761
+ * `targetId` with the GUID of the target. At `LIVEBOARD` level there
4762
+ * is no `targetId`, since the parameter applies to the whole Liveboard.
4763
+ * The `applicability` attribute is available from SDK: 1.53.0 |
4764
+ * ThoughtSpot: 26.10.0.cl.
4516
4765
  * ```js
4517
4766
  * liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
4518
4767
  * console.log('payload', payload);
4768
+ * // payload.data optionally includes applicability: { level, targetId }
4519
4769
  * })
4520
4770
  * ```
4521
4771
  * @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
@@ -4817,6 +5067,158 @@ export declare enum EmbedEvent {
4817
5067
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
4818
5068
  */
4819
5069
  SpotterConversationDeleted = "spotterConversationDeleted",
5070
+ /**
5071
+ * Emitted when the header Share button is clicked. Fires `Start` then `End`
5072
+ * to bracket the interaction. App→host counterpart of the
5073
+ * `ShareSpotterConversation` host event (user-driven vs programmatic open).
5074
+ * @example
5075
+ * ```js
5076
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
5077
+ * // payload: { convId: string }
5078
+ * })
5079
+ * ```
5080
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5081
+ */
5082
+ SpotterShareConversationButtonHeaderClicked = "spotterShareConversationButtonHeaderClicked",
5083
+ /**
5084
+ * Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
5085
+ * to bracket the interaction.
5086
+ * @example
5087
+ * ```js
5088
+ * spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
5089
+ * // payload: { convId: string }
5090
+ * })
5091
+ * ```
5092
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5093
+ */
5094
+ SpotterShareConversationMenuItemSidebarClicked = "spotterShareConversationMenuItemSidebarClicked",
5095
+ /**
5096
+ * Emitted when a Spotter conversation is shared (recipients added, or a new
5097
+ * share created). The host builds its own link from shareId/convId + its
5098
+ * configured CONVERSATION_URL — no link string is sent. Distinct from
5099
+ * `SpotterShareModalConfirmButtonClicked`, which fires at click time before
5100
+ * the save resolves.
5101
+ * @example
5102
+ * ```js
5103
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
5104
+ * // payload: { convId: string, shareId: string,
5105
+ * // recipientsAdded: string[], recipientsRemoved: string[] }
5106
+ * })
5107
+ * ```
5108
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5109
+ */
5110
+ SpotterConversationShared = "spotterConversationShared",
5111
+ /**
5112
+ * Emitted when access to a shared Spotter conversation is revoked
5113
+ * (recipients removed). `fullyRevoked` is true when the last sharee is removed
5114
+ * and the share is deleted entirely.
5115
+ * @example
5116
+ * ```js
5117
+ * spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
5118
+ * // payload: { convId: string, shareId: string,
5119
+ * // recipientsRemoved: string[], fullyRevoked: boolean }
5120
+ * })
5121
+ * ```
5122
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5123
+ */
5124
+ SpotterConversationShareRevoked = "spotterConversationShareRevoked",
5125
+ /**
5126
+ * Emitted when a recipient opens a shared Spotter conversation (read-only
5127
+ * view). No shareId available viewer-side.
5128
+ * @example
5129
+ * ```js
5130
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
5131
+ * // payload: { convId: string, sourceConvId: string }
5132
+ * // convId = resolved snapshot conv id; sourceConvId = the shared URL id
5133
+ * })
5134
+ * ```
5135
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5136
+ */
5137
+ SpotterSharedConversationViewed = "spotterSharedConversationViewed",
5138
+ /**
5139
+ * Emitted when the user toggles the share-modal "include new messages since
5140
+ * last shared version" checkbox.
5141
+ * @example
5142
+ * ```js
5143
+ * spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
5144
+ * // payload: { convId: string, includeNewMessages: boolean }
5145
+ * })
5146
+ * ```
5147
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5148
+ */
5149
+ SpotterShareIncludeNewMessagesCheckboxToggled = "spotterShareIncludeNewMessagesCheckboxToggled",
5150
+ /**
5151
+ * Emitted when the user dismisses the stale-snapshot info banner via its
5152
+ * cross (distinct from the include-new-messages checkbox toggle).
5153
+ * @example
5154
+ * ```js
5155
+ * spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
5156
+ * // payload: { convId: string }
5157
+ * })
5158
+ * ```
5159
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5160
+ */
5161
+ SpotterShareStaleInfoBannerDismissed = "spotterShareStaleInfoBannerDismissed",
5162
+ /**
5163
+ * Emitted when the modal Share (confirm) button is clicked — fires at click
5164
+ * time, before the save resolves. Distinct from the `SpotterConversationShared`
5165
+ * / `SpotterConversationShareRevoked` result events.
5166
+ * @example
5167
+ * ```js
5168
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
5169
+ * // payload: { convId: string }
5170
+ * })
5171
+ * ```
5172
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5173
+ */
5174
+ SpotterShareModalConfirmButtonClicked = "spotterShareModalConfirmButtonClicked",
5175
+ /**
5176
+ * Emitted when the share modal is dismissed via the Cancel button.
5177
+ * @example
5178
+ * ```js
5179
+ * spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
5180
+ * // payload: { convId: string }
5181
+ * })
5182
+ * ```
5183
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5184
+ */
5185
+ SpotterShareModalCancelButtonClicked = "spotterShareModalCancelButtonClicked",
5186
+ /**
5187
+ * Emitted when a recipient leaves the read-only shared view via the Exit
5188
+ * button.
5189
+ * @example
5190
+ * ```js
5191
+ * spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
5192
+ * // payload: { convId: string }
5193
+ * })
5194
+ * ```
5195
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
5196
+ */
5197
+ SpotterSharedConversationExitButtonClicked = "spotterSharedConversationExitButtonClicked",
5198
+ /**
5199
+ * Emitted when a Spotter conversation is pinned.
5200
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5201
+ * @example
5202
+ * ```js
5203
+ * spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
5204
+ * console.log('Conversation pinned', payload);
5205
+ * // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
5206
+ * })
5207
+ * ```
5208
+ */
5209
+ SpotterConversationPinned = "spotterConversationPinned",
5210
+ /**
5211
+ * Emitted when a Spotter conversation is unpinned.
5212
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5213
+ * @example
5214
+ * ```js
5215
+ * spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
5216
+ * console.log('Conversation unpinned', payload);
5217
+ * // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
5218
+ * })
5219
+ * ```
5220
+ */
5221
+ SpotterConversationUnpinned = "spotterConversationUnpinned",
4820
5222
  /**
4821
5223
  * Emitted when a Spotter conversation is selected/clicked.
4822
5224
  * @example
@@ -5206,6 +5608,7 @@ export declare enum HostEvent {
5206
5608
  * const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
5207
5609
  * console.log("iFrameURL", url);
5208
5610
  * ```
5611
+ * @returns iframeUrl - The URL currently loaded in the embedded iframe.
5209
5612
  * @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
5210
5613
  */
5211
5614
  GetIframeUrl = "GetIframeUrl",
@@ -5332,6 +5735,17 @@ export declare enum HostEvent {
5332
5735
  * name: string,
5333
5736
  * type: ATTRIBUTE/MEASURE,
5334
5737
  * dataType: INT64/CHAR/DATE }
5738
+ *
5739
+ * `applicability` - Optional. Scopes the filter to a specific target,
5740
+ * for example, a single Liveboard tab, so the panel for the correct
5741
+ * scoped filter is opened. Available from SDK: 1.53.0 |
5742
+ * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
5743
+ *
5744
+ * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
5745
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5746
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5747
+ * `level` is `LIVEBOARD`, since the filter applies to the whole
5748
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5335
5749
  * @example
5336
5750
  * ```js
5337
5751
  * searchEmbed.trigger(HostEvent.OpenFilter,
@@ -5344,6 +5758,14 @@ export declare enum HostEvent {
5344
5758
  * ```
5345
5759
  * @example
5346
5760
  * ```js
5761
+ * // Open a filter scoped to a specific Liveboard tab
5762
+ * liveboardEmbed.trigger(HostEvent.OpenFilter, {
5763
+ * column: { columnId: '<column-GUID>' },
5764
+ * applicability: { level: 'TAB', targetId: '<tab-GUID>' }
5765
+ * });
5766
+ * ```
5767
+ * @example
5768
+ * ```js
5347
5769
  * // Open filter from search context
5348
5770
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5349
5771
  * searchEmbed.trigger(HostEvent.OpenFilter, {
@@ -5353,6 +5775,73 @@ export declare enum HostEvent {
5353
5775
  * @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
5354
5776
  */
5355
5777
  OpenFilter = "openFilter",
5778
+ /**
5779
+ * Open the add-filter modal of a Liveboard, the same dialog that the
5780
+ * *Add filter* button in the Liveboard edit header opens, so the host
5781
+ * app can start the add-filter flow from its own UI.
5782
+ *
5783
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5784
+ * Hiding the *Add filter* button with `hiddenActions:
5785
+ * [Action.AddFilter]` does not block this event, but disabling it with
5786
+ * `disabledActions` does.
5787
+ *
5788
+ * Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
5789
+ * existing filter, this event starts the creation of a new filter.
5790
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5791
+ * @example
5792
+ * ```js
5793
+ * liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
5794
+ * ```
5795
+ */
5796
+ OpenAddFilterModal = "openAddFilterModal",
5797
+ /**
5798
+ * Open the add-parameter panel of a Liveboard, the same panel that the
5799
+ * *Add parameter* button in the Liveboard edit header opens.
5800
+ * Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
5801
+ *
5802
+ * The Liveboard must be in edit mode; the event is ignored otherwise.
5803
+ * Hiding the *Add parameter* button with `hiddenActions:
5804
+ * [Action.AddParameter]` does not block this event, but disabling it
5805
+ * with `disabledActions` does.
5806
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
5807
+ * @example
5808
+ * ```js
5809
+ * liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
5810
+ * ```
5811
+ */
5812
+ OpenAddParameterModal = "openAddParameterModal",
5813
+ /**
5814
+ * Open the parameter panel for a particular parameter on a Liveboard.
5815
+ * Mirrors {@link HostEvent.OpenFilter} for parameters.
5816
+ * @param - Includes the following keys:
5817
+ * - `parameter`: An object identifying the parameter to open, for
5818
+ * example, `{ parameterId: '<parameter-GUID>' }`.
5819
+ * - `applicability`: Optional. Scopes the parameter to a specific target,
5820
+ * for example, a single Liveboard tab, so the panel for the correct
5821
+ * scoped parameter is opened. Includes the following attributes:
5822
+ *
5823
+ * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
5824
+ * - `targetId`: The GUID of the target, for example, the tab GUID.
5825
+ * Required when `level` is `TAB` or `GROUP`. Do not pass it when
5826
+ * `level` is `LIVEBOARD`, since the parameter applies to the whole
5827
+ * Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
5828
+ * @example
5829
+ * ```js
5830
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5831
+ * parameter: { parameterId: '<parameter-GUID>' }
5832
+ * });
5833
+ * ```
5834
+ * @example
5835
+ * ```js
5836
+ * // Open a parameter scoped to a specific group
5837
+ * liveboardEmbed.trigger(HostEvent.OpenParameter, {
5838
+ * parameter: { parameterId: '<parameter-GUID>' },
5839
+ * applicability: { level: 'GROUP', targetId: '<group-GUID>' }
5840
+ * });
5841
+ * ```
5842
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
5843
+ */
5844
+ OpenParameter = "openParameter",
5356
5845
  /**
5357
5846
  * Add columns to the current search query.
5358
5847
  * @param - { columnIds: string[] }
@@ -5402,6 +5891,10 @@ export declare enum HostEvent {
5402
5891
  * liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
5403
5892
  * data=>console.log(data))
5404
5893
  * ```
5894
+ * @returns data - Object with a `v2Content` string: the export request
5895
+ * payload for the current Liveboard.
5896
+ * @returns type - The passthrough event name,
5897
+ * `getExportRequestForCurrentPinboard`.
5405
5898
  * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
5406
5899
  */
5407
5900
  getExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard",
@@ -5504,6 +5997,9 @@ export declare enum HostEvent {
5504
5997
  * }, ContextType.Spotter);
5505
5998
  * ```
5506
5999
  *
6000
+ * @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
6001
+ * @returns tabId - GUID of the tab within that Liveboard.
6002
+ * @returns vizId - GUID of the newly created visualization.
5507
6003
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5508
6004
  */
5509
6005
  Pin = "pin",
@@ -5542,13 +6038,13 @@ export declare enum HostEvent {
5542
6038
  * Trigger the **Manage schedule** action on an embedded Liveboard
5543
6039
  * @example
5544
6040
  * ```js
5545
- * liveboardEmbed.trigger(HostEvent.ScheduleList)
6041
+ * liveboardEmbed.trigger(HostEvent.SchedulesList)
5546
6042
  * ```
5547
6043
  * @example
5548
6044
  * ```js
5549
6045
  * // Manage schedules from liveboard context
5550
6046
  * import { ContextType } from '@thoughtspot/visual-embed-sdk';
5551
- * liveboardEmbed.trigger(HostEvent.ScheduleList, {}, ContextType.Liveboard);
6047
+ * liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
5552
6048
  * ```
5553
6049
  * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
5554
6050
  */
@@ -5993,6 +6489,7 @@ export declare enum HostEvent {
5993
6489
  * console.log(tml.answer);
5994
6490
  * });
5995
6491
  * ```
6492
+ * @returns The TML representation of the current Answer, as an object.
5996
6493
  * @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
5997
6494
  * @important
5998
6495
  */
@@ -6416,13 +6913,13 @@ export declare enum HostEvent {
6416
6913
  /**
6417
6914
  * Get details of filters applied on the Liveboard.
6418
6915
  * Returns arrays containing Liveboard filter and runtime filter elements.
6419
- * Each Liveboard filter may include an `applicability` attribute
6916
+ * Each Liveboard filter includes an optional `applicability` attribute
6420
6917
  * indicating the scope of the filter. It contains a `level`
6421
6918
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6422
6919
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6423
6920
  * level there is no `targetId`, since the filter applies to the
6424
6921
  * whole Liveboard.
6425
- * The `applicability` attribute is available from SDK: 1.51.0 |
6922
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6426
6923
  * ThoughtSpot: 26.10.0.cl.
6427
6924
  * @example
6428
6925
  * ```js
@@ -6436,6 +6933,8 @@ export declare enum HostEvent {
6436
6933
  * const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
6437
6934
  * console.log('filters', data);
6438
6935
  * ```
6936
+ * @returns liveboardFilters - Filters applied on the Liveboard.
6937
+ * @returns runtimeFilters - Runtime filters applied on the Liveboard.
6439
6938
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
6440
6939
  */
6441
6940
  GetFilters = "getFilters",
@@ -6465,7 +6964,7 @@ export declare enum HostEvent {
6465
6964
  * For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
6466
6965
  *
6467
6966
  * `applicability` - Optional. Scopes the filter to a specific target,
6468
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
6967
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
6469
6968
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
6470
6969
  *
6471
6970
  * - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -6585,9 +7084,37 @@ export declare enum HostEvent {
6585
7084
  * console.log('tabs', tabDetails);
6586
7085
  * });
6587
7086
  * ```
7087
+ * @returns orderedTabIds - Tab GUIDs in the order they appear.
7088
+ * @returns numberOfTabs - Total number of tabs on the Liveboard.
7089
+ * @returns Tabs - Tab details, each with at least `id` and `name`.
6588
7090
  * @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
6589
7091
  */
6590
7092
  GetTabs = "getTabs",
7093
+ /**
7094
+ * Get group details for the current Liveboard.
7095
+ * Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
7096
+ * @example
7097
+ * ```js
7098
+ * liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
7099
+ * console.log(
7100
+ * groupDetails // GroupDetails of current Liveboard
7101
+ * );
7102
+ * })
7103
+ * ```
7104
+ * @example
7105
+ * ```js
7106
+ * // Get groups from liveboard context
7107
+ * import { ContextType } from '@thoughtspot/visual-embed-sdk';
7108
+ * liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
7109
+ * console.log('groups', groupDetails);
7110
+ * });
7111
+ * ```
7112
+ * @returns orderedGroupIds - Group GUIDs in the order they appear.
7113
+ * @returns numberOfGroups - Total number of groups on the Liveboard.
7114
+ * @returns Groups - Group details, each with at least `id` and `name`.
7115
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
7116
+ */
7117
+ GetGroups = "getGroups",
6591
7118
  /**
6592
7119
  * Set the visible tabs on a Liveboard.
6593
7120
  * @param - an array of ids of tabs to show, the IDs not passed
@@ -6659,6 +7186,9 @@ export declare enum HostEvent {
6659
7186
  * // Alternative direct usage (not recommended)
6660
7187
  * const {session} = await embed.trigger( HostEvent.GetAnswerSession )
6661
7188
  * ```
7189
+ * @returns session - Session identifier for the Answer, for use with the
7190
+ * `AnswerService`.
7191
+ * @returns embedAnswerData - Data backing the Answer, when available.
6662
7192
  * @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
6663
7193
  */
6664
7194
  GetAnswerSession = "getAnswerSession",
@@ -6716,7 +7246,7 @@ export declare enum HostEvent {
6716
7246
  * - `value`: The value to set for the parameter.
6717
7247
  * - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
6718
7248
  * - `applicability`: Optional. Scopes the parameter to a specific target,
6719
- * for example, a single Liveboard tab. Available from SDK: 1.51.0 |
7249
+ * for example, a single Liveboard tab. Available from SDK: 1.53.0 |
6720
7250
  * ThoughtSpot: 26.10.0.cl. Includes the following attributes:
6721
7251
  *
6722
7252
  * - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
@@ -6760,13 +7290,13 @@ export declare enum HostEvent {
6760
7290
  UpdateParameters = "UpdateParameters",
6761
7291
  /**
6762
7292
  * Triggers GetParameters to fetch the runtime Parameters.
6763
- * Each parameter may include an `applicability` attribute
7293
+ * Each parameter includes an optional `applicability` attribute
6764
7294
  * indicating the scope of the parameter. It contains a `level`
6765
7295
  * (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
6766
7296
  * `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
6767
7297
  * level there is no `targetId`, since the parameter applies to the
6768
7298
  * whole Liveboard.
6769
- * The `applicability` attribute is available from SDK: 1.51.0 |
7299
+ * The `applicability` attribute is available from SDK: 1.53.0 |
6770
7300
  * ThoughtSpot: 26.10.0.cl.
6771
7301
  * @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
6772
7302
  * ```js
@@ -6792,12 +7322,16 @@ export declare enum HostEvent {
6792
7322
  * console.log('parameters', parameters);
6793
7323
  * });
6794
7324
  * ```
7325
+ * @returns parameters - Parameters currently applied on the Liveboard.
6795
7326
  * @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
6796
7327
  */
6797
7328
  GetParameters = "GetParameters",
6798
7329
  /**
6799
7330
  * Triggers an event to update a personalized view of a Liveboard.
6800
- * This event is deprecated. Use {@link HostEvent.UpdatePersonalizedView} instead.
7331
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7332
+ * which additionally accepts a `viewName`, resets to the original view when
7333
+ * called with an empty payload, and reports an error when a named view
7334
+ * cannot be found.
6801
7335
  * ```js
6802
7336
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6803
7337
  * ```
@@ -6815,10 +7349,15 @@ export declare enum HostEvent {
6815
7349
  UpdatePersonalisedView = "UpdatePersonalisedView",
6816
7350
  /**
6817
7351
  * Triggers an event to update a personalized view of a Liveboard.
7352
+ * This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
7353
+ * which additionally accepts a `viewName`, resets to the original view when
7354
+ * called with an empty payload, and reports an error when a named view
7355
+ * cannot be found.
6818
7356
  * ```js
6819
7357
  * liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
6820
7358
  * ```
6821
7359
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
7360
+ * @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
6822
7361
  */
6823
7362
  UpdatePersonalizedView = "UpdatePersonalisedView",
6824
7363
  /**
@@ -6921,6 +7460,10 @@ export declare enum HostEvent {
6921
7460
  * description: "Generated from Spotter"
6922
7461
  * }, ContextType.Spotter);
6923
7462
  * ```
7463
+ * @returns answerId - GUID of the saved Answer.
7464
+ * @returns saveResponse - Raw response from the save operation.
7465
+ * @returns shareResponse - Raw response from the share operation, when the
7466
+ * Answer was also made discoverable.
6924
7467
  * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
6925
7468
  */
6926
7469
  SaveAnswer = "saveAnswer",
@@ -7035,25 +7578,55 @@ export declare enum HostEvent {
7035
7578
  */
7036
7579
  ResetSpotterConversation = "ResetSpotterConversation",
7037
7580
  /**
7038
- * Deletes the last prompt in spotter embed.
7581
+ * Opens the Spotter share-conversation modal for the given conversation.
7582
+ * `conversationId` is **mandatory** — you must pass the id of the
7583
+ * conversation to share. Also no-op when sharing is disabled
7584
+ * (enableShareConversation off) or when already in the read-only shared view.
7039
7585
  * @example
7040
7586
  * ```js
7041
- * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
7587
+ * spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
7042
7588
  * ```
7043
- * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7589
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7044
7590
  */
7045
- DeleteLastPrompt = "DeleteLastPrompt",
7591
+ ShareSpotterConversation = "ShareSpotterConversation",
7046
7592
  /**
7047
- * Toggle the visualization to chart or table view.
7048
- * @param - `vizId ` refers to the Visualization ID in Spotter embed and is required.
7593
+ * Closes the Spotter share-conversation modal. No-op if none is open.
7049
7594
  * @example
7050
7595
  * ```js
7051
- * let latestSpotterVizId = '';
7052
- * spotterEmbed.on(EmbedEvent.Data, (payload) => {
7053
- * latestSpotterVizId = payload.data.id;
7054
- * });
7055
- *
7056
- * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
7596
+ * spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
7597
+ * ```
7598
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7599
+ */
7600
+ CloseSpotterShareConversation = "CloseSpotterShareConversation",
7601
+ /**
7602
+ * Exits the read-only shared-conversation view.
7603
+ * @example
7604
+ * ```js
7605
+ * spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
7606
+ * ```
7607
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
7608
+ */
7609
+ ExitSpotterSharedConversation = "ExitSpotterSharedConversation",
7610
+ /**
7611
+ * Deletes the last prompt in spotter embed.
7612
+ * @example
7613
+ * ```js
7614
+ * spotterEmbed.trigger(HostEvent.DeleteLastPrompt);
7615
+ * ```
7616
+ * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7617
+ */
7618
+ DeleteLastPrompt = "DeleteLastPrompt",
7619
+ /**
7620
+ * Toggle the visualization to chart or table view.
7621
+ * @param - `vizId ` refers to the Visualization ID in Spotter embed and is required.
7622
+ * @example
7623
+ * ```js
7624
+ * let latestSpotterVizId = '';
7625
+ * spotterEmbed.on(EmbedEvent.Data, (payload) => {
7626
+ * latestSpotterVizId = payload.data.id;
7627
+ * });
7628
+ *
7629
+ * spotterEmbed.trigger(HostEvent.AnswerChartSwitcher, { vizId: latestSpotterVizId });
7057
7630
  * ```
7058
7631
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
7059
7632
  */
@@ -7129,6 +7702,41 @@ export declare enum HostEvent {
7129
7702
  * @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
7130
7703
  */
7131
7704
  StartNewSpotterConversation = "StartNewSpotterConversation",
7705
+ /**
7706
+ * Pins a saved Spotter conversation so it floats to the top of the past
7707
+ * conversations sidebar. The `conversationId` of the conversation to pin is
7708
+ * required.
7709
+ *
7710
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7711
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7712
+ * instance.
7713
+ *
7714
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7715
+ * @example
7716
+ * ```js
7717
+ * spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
7718
+ * conversationId: '<conversation-id>',
7719
+ * });
7720
+ * ```
7721
+ */
7722
+ PinSpotterConversation = "PinSpotterConversation",
7723
+ /**
7724
+ * Unpins a previously pinned Spotter conversation. The `conversationId` of the
7725
+ * conversation to unpin is required.
7726
+ *
7727
+ * This feature is available only when chat history is enabled on your ThoughtSpot
7728
+ * instance. Contact your admin or ThoughtSpot Support to enable chat history on your
7729
+ * instance.
7730
+ *
7731
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7732
+ * @example
7733
+ * ```js
7734
+ * spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
7735
+ * conversationId: '<conversation-id>',
7736
+ * });
7737
+ * ```
7738
+ */
7739
+ UnpinSpotterConversation = "UnpinSpotterConversation",
7132
7740
  /**
7133
7741
  * @hidden
7134
7742
  * Get the current context of the embedded page.
@@ -7221,9 +7829,10 @@ export type SpotterFileUploadFileTypes = {
7221
7829
  * ThoughtSpot application pages include actions and menu commands
7222
7830
  * for various user-initiated operations. These actions are represented
7223
7831
  * as enumeration members in the SDK. To control actions in the embedded view:
7224
- * - disabledActions — the action is grayed out and still visible, but non-interactive (user can see but not click).
7225
- * - hiddenActions — the action is completely removed from the UI (user cannot see it at all).
7226
- * - visibleActions — allowlist, only these actions are shown; all others are hidden.
7832
+ * - disabledActions — the action is grayed out and still visible, but non-interactive
7833
+ * (user can see but not click). - hiddenActions — the action is completely removed from
7834
+ * the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
7835
+ * are shown; all others are hidden.
7227
7836
  *
7228
7837
  * Use disabledActions to disable (gray out) an action.
7229
7838
  * Use hiddenActions to hide (fully remove) an action.
@@ -7276,6 +7885,17 @@ export declare enum Action {
7276
7885
  * ```
7277
7886
  */
7278
7887
  SaveAsView = "saveAsView",
7888
+ /**
7889
+ * The **EditInputTable** action on a Liveboard
7890
+ * page. Allows users to edit an input table used in an Answer directly from
7891
+ * a Liveboard.
7892
+ * @example
7893
+ * ```js
7894
+ * disabledActions: [Action.EditInputTable]
7895
+ * ```
7896
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
7897
+ */
7898
+ EditInputTable = "editInputTable",
7279
7899
  /**
7280
7900
  * The **Make a copy** action on a Liveboard or Answer
7281
7901
  * page. Creates a copy of the Liveboard.
@@ -8477,6 +9097,19 @@ export declare enum Action {
8477
9097
  * @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
8478
9098
  */
8479
9099
  ChangeFilterVisibilityInTab = "changeFilterVisibilityInTab",
9100
+ /**
9101
+ * Action ID to show, hide, or disable all filter surfaces on a Liveboard,
9102
+ * including filter, parameter, and cross-filter chips at the liveboard,
9103
+ * tab, and group levels. Parameter and cross-filter chips are hide-only.
9104
+ *
9105
+ * @example
9106
+ * ```js
9107
+ * hiddenActions: [Action.AllLiveboardFilters]
9108
+ * disabledActions: [Action.AllLiveboardFilters]
9109
+ * ```
9110
+ * @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
9111
+ */
9112
+ AllLiveboardFilters = "allLiveboardFilters",
8480
9113
  /**
8481
9114
  * The **Data model instructions** button on the Spotter interface.
8482
9115
  * Allows opening the data model instructions modal.
@@ -8578,6 +9211,10 @@ export declare enum Action {
8578
9211
  * The **Add to Coaching** feature allows adding reference questions and
8579
9212
  * business terms to improve Spotter’s responses. This feature is generally available
8580
9213
  * (GA) from version 26.2.0.cl and enabled by default on embed deployments.
9214
+ *
9215
+ * This action governs both the answer-card **Add to memory** CTA and its
9216
+ * Spotter 3 successor, the response-footer **Remember this** CTA
9217
+ * (they are mutually exclusive).
8581
9218
  * @example
8582
9219
  * ```js
8583
9220
  * hiddenAction: [Action.InConversationTraining]
@@ -8812,6 +9449,89 @@ export declare enum Action {
8812
9449
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8813
9450
  */
8814
9451
  SpotterChatRename = "spotterChatRename",
9452
+ /**
9453
+ * Controls visibility and disable state of the Spotter conversation Share
9454
+ * button in the chat header. Only takes effect once sharing is enabled
9455
+ * (enableShareConversation on).
9456
+ * @example
9457
+ * ```js
9458
+ * disabledActions: [Action.SpotterShareConversationButtonHeader]
9459
+ * ```
9460
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9461
+ */
9462
+ SpotterShareConversationButtonHeader = "spotterShareConversationButtonHeader",
9463
+ /**
9464
+ * Controls visibility and disable state of the Share item in the Spotter
9465
+ * conversation history (sidebar) edit menu. Independent of the header button
9466
+ * above, so a host can show Share in one entry point and hide it in the other.
9467
+ * @example
9468
+ * ```js
9469
+ * disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
9470
+ * ```
9471
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9472
+ */
9473
+ SpotterShareConversationMenuItemSidebar = "spotterShareConversationMenuItemSidebar",
9474
+ /**
9475
+ * Controls visibility of the entire read-only shared-conversation data-access
9476
+ * banner shown when a recipient opens a shared view. Hide-only.
9477
+ * @example
9478
+ * ```js
9479
+ * hiddenActions: [Action.SpotterSharedConversationBanner]
9480
+ * ```
9481
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9482
+ */
9483
+ SpotterSharedConversationBanner = "spotterSharedConversationBanner",
9484
+ /**
9485
+ * Controls visibility and disable state of the cross/close button on the
9486
+ * read-only shared-conversation data-access banner (keeps the banner itself).
9487
+ * @example
9488
+ * ```js
9489
+ * hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
9490
+ * ```
9491
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9492
+ */
9493
+ SpotterSharedConversationBannerDismissButton = "spotterSharedConversationBannerDismissButton",
9494
+ /**
9495
+ * Controls visibility and disable state of the Exit button in the read-only
9496
+ * shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
9497
+ * host event.
9498
+ * @example
9499
+ * ```js
9500
+ * hiddenActions: [Action.SpotterSharedConversationExitButton]
9501
+ * ```
9502
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9503
+ */
9504
+ SpotterSharedConversationExitButton = "spotterSharedConversationExitButton",
9505
+ /**
9506
+ * Controls visibility of the share-modal footer note ("Chat will be shared up
9507
+ * to the current moment…"). Hide-only.
9508
+ * @example
9509
+ * ```js
9510
+ * hiddenActions: [Action.SpotterShareUpToCurrentInfo]
9511
+ * ```
9512
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9513
+ */
9514
+ SpotterShareUpToCurrentInfo = "spotterShareUpToCurrentInfo",
9515
+ /**
9516
+ * Controls visibility and disable state of the share-modal "include new
9517
+ * messages since last shared version" checkbox.
9518
+ * @example
9519
+ * ```js
9520
+ * disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
9521
+ * ```
9522
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9523
+ */
9524
+ SpotterShareIncludeNewMessagesCheckbox = "spotterShareIncludeNewMessagesCheckbox",
9525
+ /**
9526
+ * Controls visibility and disable state of the cross on the share-modal
9527
+ * stale-snapshot info banner.
9528
+ * @example
9529
+ * ```js
9530
+ * hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
9531
+ * ```
9532
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9533
+ */
9534
+ SpotterShareStaleInfoBannerDismissButton = "spotterShareStaleInfoBannerDismissButton",
8815
9535
  /**
8816
9536
  * Controls visibility and disable state of the delete action
8817
9537
  * in the Spotter conversation edit menu.
@@ -8822,6 +9542,16 @@ export declare enum Action {
8822
9542
  * @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
8823
9543
  */
8824
9544
  SpotterChatDelete = "spotterChatDelete",
9545
+ /**
9546
+ * Controls visibility and disable state of the pin/unpin action
9547
+ * in the Spotter conversation edit menu.
9548
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9549
+ * @example
9550
+ * ```js
9551
+ * disabledActions: [Action.SpotterChatPin]
9552
+ * ```
9553
+ */
9554
+ SpotterChatPin = "spotterChatPin",
8825
9555
  /**
8826
9556
  * Controls visibility and disable state of the documentation/best practices
8827
9557
  * link in the Spotter sidebar footer.
@@ -8865,6 +9595,56 @@ export declare enum Action {
8865
9595
  * @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
8866
9596
  */
8867
9597
  SpotterChatModeSwitcher = "spotterChatModeSwitcher",
9598
+ /**
9599
+ * The **Basic Search** starter prompt pill.
9600
+ *
9601
+ * Starter prompt pills are the row of category buttons shown above the
9602
+ * Spotter chat input before a conversation starts. They give a new user
9603
+ * ready-made questions to click instead of typing one from scratch, and
9604
+ * disappear once the conversation begins. There are three, one per action
9605
+ * below.
9606
+ *
9607
+ * Clicking this pill opens a card of suggested simple questions; picking one
9608
+ * submits it to Spotter right away. Visible by default, and hidden along
9609
+ * with the other pills when the surface itself is off (see
9610
+ * {@link SpotterChatViewConfig.starterPrompts}).
9611
+ * @example
9612
+ * ```js
9613
+ * hiddenActions: [Action.QuickSearchPill]
9614
+ * ```
9615
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9616
+ */
9617
+ QuickSearchPill = "quickSearchPill",
9618
+ /**
9619
+ * The **Deep Analysis** starter prompt pill, next to
9620
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9621
+ *
9622
+ * Clicking it opens a card of suggested investigative questions ("why did
9623
+ * revenue drop?"). Picking one fills the chat input in Deep Analysis mode
9624
+ * rather than submitting immediately, so the user can edit it first.
9625
+ * Visible by default.
9626
+ * @example
9627
+ * ```js
9628
+ * hiddenActions: [Action.DeepAnalysisPill]
9629
+ * ```
9630
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9631
+ */
9632
+ DeepAnalysisPill = "deepAnalysisPill",
9633
+ /**
9634
+ * The **Data Literacy** starter prompt pill, next to
9635
+ * {@link Action.QuickSearchPill} above the Spotter chat input.
9636
+ *
9637
+ * Unlike the other two pills it opens no card: clicking it submits a prompt
9638
+ * that describes the data the model can answer over, helping a user who does
9639
+ * not yet know what is in the data source. The prompt text always comes from
9640
+ * ThoughtSpot, so only its label is customizable. Visible by default.
9641
+ * @example
9642
+ * ```js
9643
+ * hiddenActions: [Action.DataLiteracyPill]
9644
+ * ```
9645
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
9646
+ */
9647
+ DataLiteracyPill = "dataLiteracyPill",
8868
9648
  /**
8869
9649
  * The **Include current period** checkbox for date filters.
8870
9650
  * Controls the visibility and availability of the option to include
@@ -9012,7 +9792,39 @@ export declare enum Action {
9012
9792
  * disabledActions: [Action.SpotterAnalystSidebar]
9013
9793
  * ```
9014
9794
  */
9015
- SpotterAnalystSidebar = "spotterAnalystSidebar"
9795
+ SpotterAnalystSidebar = "spotterAnalystSidebar",
9796
+ /**
9797
+ * Controls visibility and disable state of the analyst list
9798
+ * ("Show all") in the Spotter Analyst interface.
9799
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9800
+ * @example
9801
+ * ```js
9802
+ * hiddenActions: [Action.SpotterAnalystList]
9803
+ * disabledActions: [Action.SpotterAnalystList]
9804
+ * ```
9805
+ */
9806
+ SpotterAnalystList = "spotterAnalystList",
9807
+ /**
9808
+ * Controls visibility and disable state of the default Spotter analyst
9809
+ * entry in the Spotter Analyst interface.
9810
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9811
+ * @example
9812
+ * ```js
9813
+ * hiddenActions: [Action.SpotterDefaultAnalyst]
9814
+ * disabledActions: [Action.SpotterDefaultAnalyst]
9815
+ * ```
9816
+ */
9817
+ SpotterDefaultAnalyst = "spotterDefaultAnalyst",
9818
+ /**
9819
+ * The **Spotter** button in the Liveboard header.
9820
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
9821
+ * @example
9822
+ * ```js
9823
+ * hiddenActions: [Action.SpotterOnLiveboard]
9824
+ * disabledActions: [Action.SpotterOnLiveboard]
9825
+ * ```
9826
+ */
9827
+ SpotterOnLiveboard = "spotterOnLiveboard"
9016
9828
  }
9017
9829
  declare enum ContextMenuTriggerOptions {
9018
9830
  LEFT_CLICK = "left-click",
@@ -9387,7 +10199,7 @@ export type ApiInterceptFlags = {
9387
10199
  * const embed = new LiveboardEmbed('#embed', {
9388
10200
  * ...viewConfig,
9389
10201
  * enableApiIntercept: true,
9390
- * interceptUrls: [InterceptedApiType.DATA],
10202
+ * interceptUrls: [InterceptedApiType.LiveboardData],
9391
10203
  * })
9392
10204
  * ```
9393
10205
  *
@@ -10000,6 +10812,11 @@ export interface LiveboardTab {
10000
10812
  name: string;
10001
10813
  [key: string]: any;
10002
10814
  }
10815
+ export interface LiveboardGroup {
10816
+ id: string;
10817
+ name: string;
10818
+ [key: string]: any;
10819
+ }
10003
10820
  declare enum ApplicabilityLevel {
10004
10821
  Liveboard = "LIVEBOARD",
10005
10822
  Tab = "TAB",
@@ -10045,6 +10862,7 @@ declare enum UIPassthroughEvent {
10045
10862
  GetParameters = "getParameters",
10046
10863
  GetTML = "getTML",
10047
10864
  GetTabs = "getTabs",
10865
+ GetGroups = "getGroups",
10048
10866
  GetExportRequestForCurrentPinboard = "getExportRequestForCurrentPinboard"
10049
10867
  }
10050
10868
  export type UIPassthroughContractBase = {
@@ -10154,6 +10972,14 @@ export type UIPassthroughContractBase = {
10154
10972
  Tabs: LiveboardTab[];
10155
10973
  };
10156
10974
  };
10975
+ [UIPassthroughEvent.GetGroups]: {
10976
+ request: Record<string, never>;
10977
+ response: {
10978
+ orderedGroupIds: string[];
10979
+ numberOfGroups: number;
10980
+ Groups: LiveboardGroup[];
10981
+ };
10982
+ };
10157
10983
  [UIPassthroughEvent.GetExportRequestForCurrentPinboard]: {
10158
10984
  request: Record<string, never>;
10159
10985
  response: {
@@ -10199,6 +11025,7 @@ export type EmbedApiHostEventMapping = {
10199
11025
  [HostEvent.GetParameters]: UIPassthroughEvent.GetParameters;
10200
11026
  [HostEvent.GetTML]: UIPassthroughEvent.GetTML;
10201
11027
  [HostEvent.GetTabs]: UIPassthroughEvent.GetTabs;
11028
+ [HostEvent.GetGroups]: UIPassthroughEvent.GetGroups;
10202
11029
  [HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard;
10203
11030
  };
10204
11031
  export type HostEventRequest<HostEventT extends HostEvent> = HostEventT extends keyof EmbedApiHostEventMapping ? UIPassthroughRequest<EmbedApiHostEventMapping[HostEventT]> : any;
@@ -10254,7 +11081,7 @@ declare class HostEventClient {
10254
11081
  * @param payload - Optional payload for the event
10255
11082
  * @param context - Optional context (e.g. vizId) for scoped operations
10256
11083
  */
10257
- triggerHostEvent<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
11084
+ triggerHostEvent<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(hostEvent: HostEventT, payload?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextType>>;
10258
11085
  }
10259
11086
  declare class TsEmbed {
10260
11087
  /**
@@ -10459,6 +11286,12 @@ declare class TsEmbed {
10459
11286
  protected getEmbedParamsObject(): Record<any, any>;
10460
11287
  protected getRootIframeSrc(): string;
10461
11288
  protected createIframeEl(frameSrc: string): HTMLIFrameElement;
11289
+ /**
11290
+ * Returns a merged {@link PreRenderConfig} object where each shared key
11291
+ * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
11292
+ * backward compatibility.
11293
+ */
11294
+ protected getPreRenderConfig(): PreRenderConfig;
10462
11295
  /**
10463
11296
  * Returns true if this embed instance is configured for pre-rendering.
10464
11297
  */
@@ -10497,12 +11330,14 @@ declare class TsEmbed {
10497
11330
  * fresh element; an element passed directly cannot be re-resolved.
10498
11331
  */
10499
11332
  private resolvePreRenderContainerTarget;
11333
+ private inheritPreRenderContainer;
11334
+ private getCustomPreRenderContainer;
10500
11335
  /**
10501
- * Makes the container a positioning context for the absolutely positioned
10502
- * wrapper, stashing the original inline `position` on the element (once) so
10503
- * destroy() can restore it exactly, leaving no trace. Recording it on the
10504
- * element rather than per-instance lets the override be reverted even when
10505
- * embeds share the same container.
11336
+ * Makes the resolved container a positioning context for the absolutely
11337
+ * positioned wrapper, stashing the original inline `position` on the element
11338
+ * (once) so destroy() can restore it exactly, leaving no trace. Recording it
11339
+ * on the element rather than per-instance lets the override be reverted even
11340
+ * when embeds share the same container.
10506
11341
  */
10507
11342
  private applyPreRenderContainerPositioning;
10508
11343
  /**
@@ -10650,7 +11485,7 @@ declare class TsEmbed {
10650
11485
  * ```
10651
11486
  * @version SDK: 1.45.2 | ThoughtSpot: 26.3.0.cl (for context parameter)
10652
11487
  */
10653
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
11488
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
10654
11489
  /**
10655
11490
  * Triggers an event to the embedded app, skipping the UI flow.
10656
11491
  * @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
@@ -11304,6 +12139,37 @@ declare enum SpotterQueryMode {
11304
12139
  FAST_SEARCH = "fastSearch",
11305
12140
  RESEARCH = "research"
11306
12141
  }
12142
+ /**
12143
+ * Configuration for the pin/unpin conversation feature in the Spotter sidebar.
12144
+ * Grouped into one object because pin exposes several related settings
12145
+ * (enable + label overrides), unlike single-item actions like rename or
12146
+ * delete.
12147
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12148
+ */
12149
+ export interface SpotterChatPinConfig {
12150
+ /**
12151
+ * Enables the pin/unpin conversation feature in embedded Spotter. Disabled
12152
+ * by default — hosts must opt in. When off, the Pin/Unpin menu entry and
12153
+ * the pin glyph are hidden and the PinSpotterConversation /
12154
+ * UnpinSpotterConversation host events are no-ops. Native (non-embedded)
12155
+ * Spotter is unaffected and ships pin enabled.
12156
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12157
+ * @default false
12158
+ */
12159
+ enabled?: boolean;
12160
+ /**
12161
+ * Custom label text for the pin action in the conversation edit menu.
12162
+ * Defaults to translated "Pin" text.
12163
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12164
+ */
12165
+ pinLabel?: string;
12166
+ /**
12167
+ * Custom label text for the unpin action in the conversation edit menu.
12168
+ * Defaults to translated "Unpin" text.
12169
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12170
+ */
12171
+ unpinLabel?: string;
12172
+ }
11307
12173
  /**
11308
12174
  * Configuration for the Spotter sidebar.
11309
12175
  * Can be used in SpotterEmbed and AppEmbed.
@@ -11341,6 +12207,12 @@ export interface SpotterSidebarViewConfig {
11341
12207
  * @version SDK: 1.47.0 | ThoughtSpot: 26.4.0.cl
11342
12208
  */
11343
12209
  spotterChatDeleteLabel?: string;
12210
+ /**
12211
+ * Pin/unpin conversation feature config (enable + label overrides).
12212
+ * Off by default in embed — hosts opt in via `enabled`.
12213
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12214
+ */
12215
+ spotterChatPinConfig?: SpotterChatPinConfig;
11344
12216
  /**
11345
12217
  * Custom title text for the delete conversation confirmation modal.
11346
12218
  * Defaults to translated "Delete chat" text.
@@ -11391,6 +12263,165 @@ export interface SpotterSidebarViewConfig {
11391
12263
  */
11392
12264
  spotterAnalystsLabel?: string;
11393
12265
  }
12266
+ /**
12267
+ * Configuration for the Spotter conversation sharing feature.
12268
+ * Can be used in SpotterEmbed and AppEmbed.
12269
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12270
+ * @group Embed components
12271
+ */
12272
+ export interface SpotterShareConversationConfig {
12273
+ /**
12274
+ * Enables sharing of the conversation.
12275
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12276
+ * @default false
12277
+ */
12278
+ enableShareConversation?: boolean;
12279
+ /**
12280
+ * Header Share button + sidebar Share item label.
12281
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12282
+ * @default "Share"
12283
+ */
12284
+ spotterShareLabel?: string;
12285
+ /**
12286
+ * Share modal title.
12287
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12288
+ */
12289
+ spotterShareModalTitle?: string;
12290
+ /**
12291
+ * Modal confirm button label.
12292
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12293
+ * @default "Share"
12294
+ */
12295
+ spotterShareConfirmLabel?: string;
12296
+ /**
12297
+ * Modal cancel button label.
12298
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12299
+ * @default "Cancel"
12300
+ */
12301
+ spotterShareCancelLabel?: string;
12302
+ /**
12303
+ * "Add users or groups" label.
12304
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12305
+ */
12306
+ spotterShareAddUsersLabel?: string;
12307
+ /**
12308
+ * Empty-state title ("No users added yet").
12309
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12310
+ */
12311
+ spotterShareEmptyTitle?: string;
12312
+ /**
12313
+ * Empty-state subtitle ("Not shared with any user").
12314
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12315
+ */
12316
+ spotterShareEmptySubtitle?: string;
12317
+ /**
12318
+ * "Include new messages since last shared version" checkbox label.
12319
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12320
+ */
12321
+ spotterShareIncludeNewMessagesLabel?: string;
12322
+ /**
12323
+ * Footer note when the snapshot is current ("…up to the current moment…").
12324
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12325
+ */
12326
+ spotterShareUpToCurrentLabel?: string;
12327
+ /**
12328
+ * Stale-snapshot info banner text ("All added users and groups will receive…").
12329
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12330
+ */
12331
+ spotterShareStaleInfoLabel?: string;
12332
+ /**
12333
+ * Read-only shared-view data-access banner message.
12334
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12335
+ */
12336
+ spotterSharedConversationBannerMessage?: string;
12337
+ /**
12338
+ * Read-only shared-view Exit button label.
12339
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12340
+ * @default "Exit"
12341
+ */
12342
+ spotterSharedConversationExitLabel?: string;
12343
+ }
12344
+ /**
12345
+ * A single starter prompt question shown under a category pill.
12346
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12347
+ * @group Embed components
12348
+ */
12349
+ export interface StarterPromptQuestion {
12350
+ /**
12351
+ * Short label shown as a clickable suggestion. Falls back to `prompt` when
12352
+ * omitted. ThoughtSpot truncates it beyond 80 characters.
12353
+ */
12354
+ label?: string;
12355
+ /**
12356
+ * Prompt text sent to Spotter on click. ThoughtSpot truncates it beyond
12357
+ * 300 characters.
12358
+ */
12359
+ prompt: string;
12360
+ }
12361
+ /**
12362
+ * Configuration for a starter prompt category with questions
12363
+ * (`quick` and `research`).
12364
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12365
+ * @group Embed components
12366
+ */
12367
+ export interface StarterPromptCategory {
12368
+ /**
12369
+ * Overrides the default category pill label. ThoughtSpot truncates it
12370
+ * beyond 30 characters.
12371
+ */
12372
+ label?: string;
12373
+ /**
12374
+ * Replaces the backend-generated prompts. ThoughtSpot renders the first 4
12375
+ * and drops any entry without a `prompt`.
12376
+ */
12377
+ questions?: StarterPromptQuestion[];
12378
+ }
12379
+ /**
12380
+ * Configuration for the Data Literacy starter prompt category.
12381
+ * Only the label is customizable; the prompt text comes from the backend.
12382
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12383
+ * @group Embed components
12384
+ */
12385
+ export interface StarterPreviewDataCategory {
12386
+ /**
12387
+ * Overrides the default category pill label. ThoughtSpot truncates it
12388
+ * beyond 30 characters.
12389
+ */
12390
+ label?: string;
12391
+ }
12392
+ /**
12393
+ * Content configuration for the Spotter starter prompts.
12394
+ * Keys are fixed: `quick` (Basic Search), `research` (Deep Analysis),
12395
+ * `previewData` (Data Literacy) and `liveboard` (Liveboard chat panel).
12396
+ *
12397
+ * Note: this controls the Spotter chat interface only. The starter prompts on
12398
+ * the Liveboard SpotterViz surface are configured separately through
12399
+ * {@link SpotterVizConfig.customStarterPrompts}.
12400
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12401
+ * @group Embed components
12402
+ */
12403
+ export interface StarterPromptsConfig {
12404
+ /**
12405
+ * Turns the starter prompts surface on. Must be set explicitly, an
12406
+ * unset flag leaves the surface off.
12407
+ *
12408
+ * Either this or `enableStarterPrompts` turns the surface on, so `false`
12409
+ * here does not switch it off while `enableStarterPrompts` is `true`.
12410
+ * @default false
12411
+ */
12412
+ enable?: boolean;
12413
+ /** Basic Search category configuration. */
12414
+ quick?: StarterPromptCategory;
12415
+ /** Deep Analysis category configuration. */
12416
+ research?: StarterPromptCategory;
12417
+ /** Data Literacy category configuration. */
12418
+ previewData?: StarterPreviewDataCategory;
12419
+ /**
12420
+ * Starter prompts for the Spotter chat panel on a Liveboard.
12421
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12422
+ */
12423
+ liveboard?: StarterPromptQuestion[];
12424
+ }
11394
12425
  /**
11395
12426
  * Configuration for customizing Spotter chat UI branding.
11396
12427
  * @version SDK: 1.46.0 | ThoughtSpot: 26.4.0.cl
@@ -11431,11 +12462,83 @@ export interface SpotterChatViewConfig {
11431
12462
  /**
11432
12463
  * Enables starter prompts in the Spotter chat interface.
11433
12464
  *
11434
- * Supported embed types: SpotterEmbed, LiveboardEmbed, AppEmbed
12465
+ * Either this or `starterPrompts.enable` turns the surface on, so it stays
12466
+ * on while this is `true` even if `starterPrompts.enable` is `false`.
12467
+ *
12468
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
11435
12469
  * @version SDK: 1.51.0 | ThoughtSpot: 26.8.0.cl
11436
12470
  * @default false
11437
12471
  */
11438
12472
  enableStarterPrompts?: boolean;
12473
+ /**
12474
+ * Customizes the labels and questions of the Spotter starter prompts.
12475
+ * Individual pills are hidden or shown with `hiddenActions` /
12476
+ * `visibleActions` using `Action.QuickSearchPill`,
12477
+ * `Action.DeepAnalysisPill` and `Action.DataLiteracyPill`.
12478
+ *
12479
+ * Supported embed types: `SpotterEmbed`, `LiveboardEmbed`, `AppEmbed`
12480
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12481
+ * @example
12482
+ * ```js
12483
+ * const embed = new SpotterEmbed('#tsEmbed', {
12484
+ * worksheetId: 'worksheet-id',
12485
+ * hiddenActions: [Action.DeepAnalysisPill],
12486
+ * spotterChatConfig: {
12487
+ * starterPrompts: {
12488
+ * enable: true,
12489
+ * quick: {
12490
+ * label: 'Quick questions',
12491
+ * questions: [
12492
+ * { label: 'Top products', prompt: 'What are the top products by revenue?' },
12493
+ * ],
12494
+ * },
12495
+ * previewData: { label: 'Explore your data' },
12496
+ * },
12497
+ * },
12498
+ * })
12499
+ * ```
12500
+ */
12501
+ starterPrompts?: StarterPromptsConfig;
12502
+ /**
12503
+ * Opens the Spotter chat panel when the Liveboard loads.
12504
+ *
12505
+ * Supported embed types: `LiveboardEmbed`, `AppEmbed`
12506
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12507
+ * @default true
12508
+ * @example
12509
+ * ```js
12510
+ * const embed = new LiveboardEmbed('#tsEmbed', {
12511
+ * liveboardId: 'liveboard-id',
12512
+ * spotterChatConfig: {
12513
+ * openSpotterOnLiveboardByDefault: false,
12514
+ * },
12515
+ * })
12516
+ * ```
12517
+ */
12518
+ openSpotterOnLiveboardByDefault?: boolean;
12519
+ }
12520
+ /**
12521
+ * Configuration for the Spotter Analyst experience.
12522
+ * Can be used in SpotterEmbed.
12523
+ * @group Embed components
12524
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12525
+ * @example
12526
+ * ```js
12527
+ * const embed = new SpotterEmbed('#tsEmbed', {
12528
+ * ... //other embed view config
12529
+ * spotterAnalystConfig: {
12530
+ * analystId: 'analyst-id-1234',
12531
+ * },
12532
+ * })
12533
+ * ```
12534
+ */
12535
+ export interface SpotterAnalystConfig {
12536
+ /**
12537
+ * Pins the embed to a single spotter analyst. Implies no default Spotter
12538
+ * and no "Show all".
12539
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12540
+ */
12541
+ analystId?: string;
11439
12542
  }
11440
12543
  /**
11441
12544
  * The configuration for the embedded spotterEmbed options.
@@ -11445,8 +12548,43 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11445
12548
  /**
11446
12549
  * The ID of the data source object. For example, Model, View, or Table. Spotter uses
11447
12550
  * this object to query data and generate Answers.
12551
+ * This field is optional. If not provided, Spotter loads using the
12552
+ * previously selected user data source.
11448
12553
  */
11449
- worksheetId: string;
12554
+ worksheetId?: string;
12555
+ /**
12556
+ * The array of data source GUIDs to set on load. Spotter uses
12557
+ * these GUIDs to query data and generate Answers.
12558
+ * dataSources is preferred over worksheetId if both are provided.
12559
+ * The feature is currently behind a feature flag.
12560
+ *
12561
+ * Supported embed types: `SpotterEmbed`
12562
+ * @example
12563
+ * ```js
12564
+ * const embed = new SpotterEmbed('#tsEmbed', {
12565
+ * // ...other embed view config
12566
+ * dataSources: ['id-2345', 'id-2345'],
12567
+ * });
12568
+ * ```
12569
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12570
+ */
12571
+ dataSources?: string[];
12572
+ /**
12573
+ * Configuration for the Spotter Analyst experience.
12574
+ *
12575
+ * Supported embed types: `SpotterEmbed`
12576
+ * @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
12577
+ * @example
12578
+ * ```js
12579
+ * const embed = new SpotterEmbed('#tsEmbed', {
12580
+ * ... //other embed view config
12581
+ * spotterAnalystConfig: {
12582
+ * analystId: 'analyst-id-1234',
12583
+ * },
12584
+ * })
12585
+ * ```
12586
+ */
12587
+ spotterAnalystConfig?: SpotterAnalystConfig;
11450
12588
  /**
11451
12589
  * Ability to pass a starting search query to the conversation.
11452
12590
  */
@@ -11606,6 +12744,21 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11606
12744
  * ```
11607
12745
  */
11608
12746
  updatedSpotterChatPrompt?: boolean;
12747
+ /**
12748
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
12749
+ *
12750
+ * Supported embed types: `SpotterEmbed`
12751
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12752
+ * @default false
12753
+ * @example
12754
+ * ```js
12755
+ * const embed = new SpotterEmbed('#tsEmbed', {
12756
+ * ... //other embed view config
12757
+ * showSpotterRadiance : true,
12758
+ * })
12759
+ * ```
12760
+ */
12761
+ showSpotterRadiance?: boolean;
11609
12762
  /**
11610
12763
  * Sets the default query mode when Spotter loads — Fast Search or
11611
12764
  * Research Mode. Applies fresh on every new session for this embed
@@ -11682,6 +12835,59 @@ export interface SpotterEmbedViewConfig extends Omit<BaseViewConfig, "primaryAct
11682
12835
  * ```
11683
12836
  */
11684
12837
  spotterChatConfig?: SpotterChatViewConfig;
12838
+ /**
12839
+ * Configuration for the Spotter conversation sharing feature.
12840
+ *
12841
+ * Supported embed types: `SpotterEmbed`, `AppEmbed`
12842
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12843
+ * @example
12844
+ * ```js
12845
+ * const embed = new SpotterEmbed('#tsEmbed', {
12846
+ * ... //other embed view config
12847
+ * spotterShareConversationConfig: {
12848
+ * enableShareConversation: true,
12849
+ * },
12850
+ * })
12851
+ * ```
12852
+ */
12853
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
12854
+ /**
12855
+ * The ID of a shared Spotter conversation to open directly in the read-only
12856
+ * reader view. Use this to land a share recipient in the shared conversation
12857
+ * when they open a host-configured `CONVERSATION_URL` share link: read the
12858
+ * `{conversation-id}` from your page URL and pass it here.
12859
+ *
12860
+ * Requires the Spotter conversation-sharing feature to be enabled
12861
+ * (`spotterShareConversationConfig.enableShareConversation`). The recipient
12862
+ * must be an authorized sharee — the server returns access-denied otherwise.
12863
+ *
12864
+ * Supported embed types: `SpotterEmbed`
12865
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12866
+ * @example
12867
+ * ```js
12868
+ * const convId = new URLSearchParams(window.location.search).get('conversation-id');
12869
+ * const embed = new SpotterEmbed('#tsEmbed', {
12870
+ * ... //other embed view config
12871
+ * sharedConversationId: convId,
12872
+ * })
12873
+ * ```
12874
+ */
12875
+ sharedConversationId?: string;
12876
+ /**
12877
+ * updatedSpotterExperience : Controls the updated Spotter experience.
12878
+ *
12879
+ * Supported embed types: `SpotterEmbed`
12880
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12881
+ * @default false
12882
+ * @example
12883
+ * ```js
12884
+ * const embed = new SpotterEmbed('#tsEmbed', {
12885
+ * ... //other embed view config
12886
+ * updatedSpotterExperience : true,
12887
+ * })
12888
+ * ```
12889
+ */
12890
+ updatedSpotterExperience?: boolean;
11685
12891
  }
11686
12892
  /**
11687
12893
  * The configuration for the embedded spotterEmbed options.
@@ -11698,7 +12904,9 @@ export interface ConversationViewConfig extends SpotterEmbedViewConfig {
11698
12904
  export interface SpotterAppInitData extends DefaultAppInitData {
11699
12905
  embedParams?: {
11700
12906
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12907
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
11701
12908
  visualOverridesParams?: VisualizationOverrides | null;
12909
+ starterPrompts?: StarterPromptsConfig;
11702
12910
  };
11703
12911
  }
11704
12912
  declare class SpotterEmbed extends TsEmbed {
@@ -11756,13 +12964,12 @@ export interface SpotterVizStarterPrompt {
11756
12964
  * customStarterPrompts: [
11757
12965
  * { id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }
11758
12966
  * ],
11759
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
12967
+ * // The options below require SDK: 1.51.0
11760
12968
  * loaderHeadline: 'Crunching the numbers...',
11761
12969
  * loaderTips: [
11762
12970
  * { label: 'Tip', text: 'try asking about revenue by region' },
11763
12971
  * { label: 'Tip', text: 'use natural language' },
11764
12972
  * ],
11765
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
11766
12973
  * liveboardBrandName: 'Reports',
11767
12974
  * spotterBrandName: 'Analyst',
11768
12975
  * insightTileBrandName: 'Insight card',
@@ -11815,47 +13022,47 @@ export interface SpotterVizConfig {
11815
13022
  /**
11816
13023
  * Custom headline text shown in the SpotterViz loading state.
11817
13024
  * Replaces the default loading headline.
11818
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13025
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11819
13026
  */
11820
13027
  loaderHeadline?: string;
11821
13028
  /**
11822
13029
  * Custom tips shown in the SpotterViz loading state.
11823
13030
  * Replaces the default loading tips with the provided list.
11824
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13031
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11825
13032
  */
11826
13033
  loaderTips?: SpotterVizLoaderTip[];
11827
13034
  /**
11828
13035
  * Custom term used to replace "Liveboard" in the agent's responses.
11829
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13036
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11830
13037
  * @default ''
11831
13038
  */
11832
13039
  liveboardBrandName?: string;
11833
13040
  /**
11834
13041
  * Custom term used to replace "Spotter" in the agent's responses.
11835
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13042
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11836
13043
  * @default ''
11837
13044
  */
11838
13045
  spotterBrandName?: string;
11839
13046
  /**
11840
13047
  * Custom term used to replace "Insight tile" in the UI and in the agent's responses.
11841
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13048
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11842
13049
  * @default ''
11843
13050
  */
11844
13051
  insightTileBrandName?: string;
11845
13052
  /**
11846
13053
  * Custom term used to replace "View plan" in the insight tile menu.
11847
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13054
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11848
13055
  */
11849
13056
  insightTileViewPlanLabel?: string;
11850
13057
  /**
11851
13058
  * Custom loader text shown on the insight tile.
11852
- * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13059
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11853
13060
  */
11854
13061
  insightTileLoaderText?: string;
11855
13062
  }
11856
13063
  /**
11857
13064
  * A single tip shown in the SpotterViz loading state.
11858
- * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13065
+ * @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.7.0.cl
11859
13066
  * @group Embed components
11860
13067
  */
11861
13068
  export interface SpotterVizLoaderTip {
@@ -11903,7 +13110,11 @@ export declare enum Page {
11903
13110
  /**
11904
13111
  * Collections listing page
11905
13112
  */
11906
- Collections = "collections"
13113
+ Collections = "collections",
13114
+ /**
13115
+ * Liveboard schedules listing page
13116
+ */
13117
+ LiveboardSchedules = "liveboard-schedules"
11907
13118
  }
11908
13119
  declare enum DataPanelCustomColumnGroupsAccordionState$1 {
11909
13120
  /**
@@ -11936,6 +13147,9 @@ declare enum HomePage {
11936
13147
  /**
11937
13148
  * Modular (v2) introduces the updated Modular Home Experience.
11938
13149
  * It serves as the foundational version of the home page.
13150
+ * Use {@link HomePage.ModularWithStylingChanges} (V3) or
13151
+ * {@link HomePage.Focused} (V4) instead.
13152
+ * @deprecated V1 and V2 home page experiences are deprecated.
11939
13153
  */
11940
13154
  Modular = "v2",
11941
13155
  /**
@@ -12005,13 +13219,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12005
13219
  showPrimaryNavbar?: boolean;
12006
13220
  /**
12007
13221
  * Control the visibility of the left navigation panel on the home page
12008
- * in the V2 and V3 navigation and home page experience.
13222
+ * in the V3 and V4 navigation and home page experience.
12009
13223
  * If `showPrimaryNavbar` is true, that is, if the Global and Homepage
12010
13224
  * navigation bars are visible, this flag will only hide the left navigation bar
12011
13225
  * on the home page.
12012
13226
  * The `showPrimaryNavbar` flag takes precedence over the `hideHomepageLeftNav`.
12013
13227
  *
12014
- * **Note**: This attribute is not supported in the classic (V1) experience.
13228
+ * **Note**: The classic (V1) and Modular (V2) home page experiences are
13229
+ * deprecated. This attribute applies to V3 and V4 home page experiences.
12015
13230
  *
12016
13231
  * Supported embed types: `AppEmbed`
12017
13232
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -12077,11 +13292,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12077
13292
  hideHamburger?: boolean;
12078
13293
  /**
12079
13294
  * Control the visibility of the object search
12080
- * on the top navigation bar in the
12081
- * V2 and V3 navigation experience.
13295
+ * on the top navigation bar in the V3 navigation experience.
12082
13296
  *
12083
- * **Note**: This attribute is not supported
12084
- * in the classic (V1) experience.
13297
+ * **Note**: The classic (V1) and V2 navigation experiences are
13298
+ * deprecated. This attribute applies to the V3 navigation experience.
12085
13299
  *
12086
13300
  * Supported embed types: `AppEmbed`
12087
13301
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -12099,8 +13313,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12099
13313
  * Control the visibility of the notification icon
12100
13314
  * on the top navigation bar in V3 navigation experience.
12101
13315
  *
12102
- * **Note**: This attribute is not supported
12103
- * in the classic (V1) and V2 experience modes.
13316
+ * **Note**: The classic (V1) and V2 experience modes are deprecated.
13317
+ * This attribute applies to the V3 experience.
12104
13318
  *
12105
13319
  * Supported embed types: `AppEmbed`
12106
13320
  * @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
@@ -12115,14 +13329,14 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12115
13329
  */
12116
13330
  hideNotification?: boolean;
12117
13331
  /**
12118
- * Control the visibility of the application selection menu
12119
- * in the top navigation bar in the V2 experience.
13332
+ * Control the visibility of the application selection menu.
12120
13333
  * In the V3 experience, it shows or hides application selection
12121
13334
  * icons on the left navigation panel.
12122
13335
  * By default, the application selection menu and icons are
12123
13336
  * shown in the UI.
12124
13337
  *
12125
- * **Note**: This attribute is not supported in the classic (V1) experience.
13338
+ * **Note**: The classic (V1) and V2 experiences are deprecated.
13339
+ * This attribute applies to the V3 experience.
12126
13340
  *
12127
13341
  * Supported embed types: `AppEmbed`
12128
13342
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -12140,7 +13354,8 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12140
13354
  * Control the visibility of the Org switcher button on the nav-bar.
12141
13355
  * By default, the Org switcher button is shown.
12142
13356
  *
12143
- * **Note**: This attribute is not supported in the classic (V1) experience.
13357
+ * **Note**: The classic (V1) experience is deprecated. This attribute
13358
+ * applies to V2 (deprecated), V3 and V4 experiences.
12144
13359
  *
12145
13360
  * Supported embed types: `AppEmbed`
12146
13361
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
@@ -12281,6 +13496,11 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12281
13496
  * `false` fetches visualizations incrementally as
12282
13497
  * users scroll the page to view the charts and tables.
12283
13498
  *
13499
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
13500
+ * {@link lazyLoadingForFullHeight} and
13501
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
13502
+ * they scroll into view. Set either flag to `false` to opt out.
13503
+ *
12284
13504
  * Supported embed types: `AppEmbed`
12285
13505
  * @version SDK: 1.21.0 | ThoughtSpot: 9.4.0.cl, 9.4.0-sw
12286
13506
  * @example
@@ -12299,6 +13519,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12299
13519
  * Supported embed types: `AppEmbed`
12300
13520
  * @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl
12301
13521
  * @default false
13522
+ * Use the discoveryExperience.homePage option with
13523
+ * {@link HomePage.ModularWithStylingChanges} (V3) or
13524
+ * {@link HomePage.Focused} (V4) instead.
13525
+ * @deprecated The V1 and V2 home page experiences are deprecated.
12302
13526
  * @example
12303
13527
  * ```js
12304
13528
  * const embed = new AppEmbed('#tsEmbed', {
@@ -12430,11 +13654,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12430
13654
  /**
12431
13655
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
12432
13656
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
12433
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
13657
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
12434
13658
  *
12435
13659
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12436
13660
  * @type {boolean}
12437
13661
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
13662
+ * @default true
12438
13663
  * @example
12439
13664
  * ```js
12440
13665
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12447,10 +13672,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12447
13672
  isContinuousLiveboardPDFEnabled?: boolean;
12448
13673
  /**
12449
13674
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
13675
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
12450
13676
  *
12451
13677
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12452
13678
  * @type {boolean}
12453
13679
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13680
+ * @default true
12454
13681
  * @example
12455
13682
  * ```js
12456
13683
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12463,10 +13690,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12463
13690
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
12464
13691
  /**
12465
13692
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
13693
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl
12466
13694
  *
12467
13695
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
12468
13696
  * @type {boolean}
12469
13697
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
13698
+ * @default true
12470
13699
  * @example
12471
13700
  * ```js
12472
13701
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -12478,11 +13707,17 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12478
13707
  */
12479
13708
  isGranularXLSXCSVSchedulesEnabled?: boolean;
12480
13709
  /**
12481
- * This flag is used to enable the full height lazy load data.
13710
+ * Loads visualizations only as they scroll into the viewport, instead of
13711
+ * loading the whole full-height Liveboard at once.
13712
+ *
13713
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13714
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13715
+ * set explicitly. Set it to `false` to load every visualization upfront.
13716
+ * The flag has no effect unless `fullHeight` is enabled.
12482
13717
  *
12483
13718
  * @type {boolean}
12484
13719
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
12485
- * @default false
13720
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12486
13721
  * @example
12487
13722
  * ```js
12488
13723
  * const embed = new AppEmbed('#embed-container', {
@@ -12494,27 +13729,43 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12494
13729
  */
12495
13730
  lazyLoadingForFullHeight?: boolean;
12496
13731
  /**
12497
- * This flag is used to enable container-aware full height lazy loading.
13732
+ * Computes the visible region of the embed against its scrollable and
13733
+ * clipping ancestors, instead of treating the browser window as the only
13734
+ * viewport, and tracks scroll and resize on those ancestors.
12498
13735
  *
12499
- * Use this when the embed is rendered inside a scrollable or clipping
12500
- * container instead of relying on the browser window as the only viewport.
13736
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
13737
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
13738
+ * set explicitly. Set it to `false` when the page scrolls with the window
13739
+ * and the embed has no clipping ancestor, to skip the extra ancestor
13740
+ * tracking.
12501
13741
  *
12502
13742
  * @type {boolean}
12503
- * @default false
13743
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
12504
13744
  * @hidden
12505
13745
  */
12506
13746
  enableScrollableContainerLazyLoading?: boolean;
12507
13747
  /**
12508
- * The margin to be used for lazy loading.
13748
+ * How far outside the viewport a visualization starts loading, when
13749
+ * {@link lazyLoadingForFullHeight} is enabled.
12509
13750
  *
12510
13751
  * For example, if the margin is set to '10px',
12511
13752
  * the visualization will be loaded 10px before its top edge is visible in the
12512
13753
  * viewport.
12513
13754
  *
12514
- * The format is similar to CSS margin.
13755
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
13756
+ * prefetch 500px above and below the viewport and not sideways. Accepted
13757
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
13758
+ * `auto`; an invalid value is logged and ignored.
13759
+ *
13760
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
13761
+ * visualization ahead of the scroll position, so a chart has usually
13762
+ * finished loading by the time it scrolls into view. Use a smaller margin
13763
+ * to cut warehouse queries further, or `'0px'` to load a visualization
13764
+ * only once it is actually visible.
12515
13765
  *
12516
13766
  * @type {string}
12517
13767
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13768
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
12518
13769
  * @example
12519
13770
  * ```js
12520
13771
  * const embed = new AppEmbed('#embed-container', {
@@ -12542,6 +13793,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12542
13793
  * ```
12543
13794
  */
12544
13795
  updatedSpotterChatPrompt?: boolean;
13796
+ /**
13797
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
13798
+ *
13799
+ * Supported embed types: `AppEmbed`
13800
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13801
+ * @default false
13802
+ * @example
13803
+ * ```js
13804
+ * const embed = new AppEmbed('#tsEmbed', {
13805
+ * ... //other embed view config
13806
+ * showSpotterRadiance : true,
13807
+ * })
13808
+ * ```
13809
+ */
13810
+ showSpotterRadiance?: boolean;
12545
13811
  /**
12546
13812
  * Sets the default query mode when Spotter loads — Fast Search or
12547
13813
  * Research Mode. Applies fresh on every new session for this embed
@@ -12586,6 +13852,10 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12586
13852
  * spotterSidebarConfig: {
12587
13853
  * enablePastConversationsSidebar: true,
12588
13854
  * spotterSidebarTitle: 'My Conversations',
13855
+ * // Opt in to pin/unpin conversations in embedded Spotter
13856
+ * spotterChatPinConfig: {
13857
+ * enabled: true,
13858
+ * },
12589
13859
  * },
12590
13860
  * })
12591
13861
  * ```
@@ -12609,6 +13879,49 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12609
13879
  * ```
12610
13880
  */
12611
13881
  spotterChatConfig?: SpotterChatViewConfig;
13882
+ /**
13883
+ * Configuration for the Spotter conversation sharing feature.
13884
+ *
13885
+ * Supported embed types: `AppEmbed`
13886
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13887
+ * @example
13888
+ * ```js
13889
+ * const embed = new AppEmbed('#tsEmbed', {
13890
+ * ... //other embed view config
13891
+ * spotterShareConversationConfig: {
13892
+ * enableShareConversation: true,
13893
+ * },
13894
+ * })
13895
+ * ```
13896
+ */
13897
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
13898
+ /**
13899
+ * Sets the default data sources (Models) for the Spotter experience shown on
13900
+ * the home page of the full app embed. Accepts a list of Model GUIDs to
13901
+ * preselect the data sources available to Spotter, or the literal
13902
+ * `'auto_mode'` sentinel to load Spotter with the "Auto" model selected by
13903
+ * default. This is consistent with how `worksheetId: 'auto_mode'` enables
13904
+ * Auto mode in `SpotterEmbed`.
13905
+ *
13906
+ * **Note**: If `'auto_mode'` is included alongside one or more Model GUIDs,
13907
+ * `'auto_mode'` takes precedence and is selected by default.
13908
+ *
13909
+ * **Note**: `'auto_mode'` requires the Spotter 3 experience with data source
13910
+ * discovery enabled on your instance, and a Spotter-enabled home page (for
13911
+ * example, `discoveryExperience.homePage: HomePage.Focused`).
13912
+ *
13913
+ * Supported embed types: `AppEmbed`
13914
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.10.0.cl
13915
+ * @example
13916
+ * ```js
13917
+ * const embed = new AppEmbed('#tsEmbed', {
13918
+ * ... // other embed view config
13919
+ * discoveryExperience: { homePage: HomePage.Focused },
13920
+ * spotterDataSources: ['model-guid-1', 'model-guid-2'], // or ['auto_mode']
13921
+ * })
13922
+ * ```
13923
+ */
13924
+ spotterDataSources?: string[];
12612
13925
  /**
12613
13926
  * Configuration for the SpotterViz interface shown on the Liveboard.
12614
13927
  * Customize the brand name, description, chat input placeholder,
@@ -12627,13 +13940,12 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12627
13940
  * inputChatPlaceholder: 'Ask a question...',
12628
13941
  * hideStarterPrompts: false,
12629
13942
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
12630
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
13943
+ * // The options below require SDK: 1.51.0
12631
13944
  * loaderHeadline: 'Crunching the numbers...',
12632
13945
  * loaderTips: [
12633
13946
  * { label: 'Tip', text: 'try asking about revenue by region' },
12634
13947
  * { label: 'Tip', text: 'use natural language' },
12635
13948
  * ],
12636
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
12637
13949
  * liveboardBrandName: 'Reports',
12638
13950
  * spotterBrandName: 'Analyst',
12639
13951
  * insightTileBrandName: 'Insight card',
@@ -12704,6 +14016,21 @@ export interface AppViewConfig extends AllEmbedViewConfig {
12704
14016
  * @version SDK: 1.49.0 | ThoughtSpot: 26.6.0.cl
12705
14017
  */
12706
14018
  visualOverrides?: VisualizationOverrides;
14019
+ /**
14020
+ * updatedSpotterExperience : Controls the updated Spotter experience.
14021
+ *
14022
+ * Supported embed types: `AppEmbed`
14023
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14024
+ * @default false
14025
+ * @example
14026
+ * ```js
14027
+ * const embed = new AppEmbed('#tsEmbed', {
14028
+ * ... //other embed view config
14029
+ * updatedSpotterExperience : true,
14030
+ * })
14031
+ * ```
14032
+ */
14033
+ updatedSpotterExperience?: boolean;
12707
14034
  }
12708
14035
  /**
12709
14036
  * APP_INIT data shape for AppEmbed.
@@ -12713,6 +14040,8 @@ export interface AppEmbedAppInitData extends DefaultAppInitData {
12713
14040
  embedParams?: {
12714
14041
  spotterSidebarConfig?: SpotterSidebarViewConfig;
12715
14042
  spotterVizConfig?: SpotterVizConfig;
14043
+ spotterShareConversationConfig?: SpotterShareConversationConfig;
14044
+ starterPrompts?: StarterPromptsConfig;
12716
14045
  };
12717
14046
  }
12718
14047
  declare class AppEmbed extends V1Embed {
@@ -12739,6 +14068,7 @@ declare class AppEmbed extends V1Embed {
12739
14068
  * embedded Liveboard or visualization.
12740
14069
  */
12741
14070
  protected getEmbedParams(): string;
14071
+ protected getEmbedParamsObject(): any;
12742
14072
  private sendFullHeightLazyLoadData;
12743
14073
  /**
12744
14074
  * This is a handler for the RequestVisibleEmbedCoordinates event.
@@ -12806,6 +14136,7 @@ declare class AppEmbed extends V1Embed {
12806
14136
  export interface LiveboardEmbedAppInitData extends DefaultAppInitData {
12807
14137
  embedParams?: {
12808
14138
  spotterVizConfig?: SpotterVizConfig;
14139
+ starterPrompts?: StarterPromptsConfig;
12809
14140
  };
12810
14141
  }
12811
14142
  /**
@@ -12824,6 +14155,11 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
12824
14155
  * Setting `fullHeight` to `false` fetches visualizations
12825
14156
  * incrementally as users scroll the page to view the charts and tables.
12826
14157
  *
14158
+ * From SDK 1.52.0, enabling `fullHeight` also turns on
14159
+ * {@link lazyLoadingForFullHeight} and
14160
+ * {@link enableScrollableContainerLazyLoading}, so visualizations load as
14161
+ * they scroll into view. Set either flag to `false` to opt out.
14162
+ *
12827
14163
  *
12828
14164
  * Supported embed types: `LiveboardEmbed`
12829
14165
  * @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 7.2.1
@@ -13163,11 +14499,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13163
14499
  /**
13164
14500
  * Enables the 'what you see is what you get' PDF export for Liveboards. Each tab is rendered on a single page
13165
14501
  * following the exact UI layout, instead of splitting visualizations across multiple A4 pages.
13166
- * This feature is GA from version 26.5.0.cl. It is disabled by default in embed deployments.
14502
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.8.0.cl.
13167
14503
  *
13168
14504
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13169
14505
  * @type {boolean}
13170
14506
  * @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
14507
+ * @default true
13171
14508
  * @example
13172
14509
  * ```js
13173
14510
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13180,10 +14517,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13180
14517
  isContinuousLiveboardPDFEnabled?: boolean;
13181
14518
  /**
13182
14519
  * This flag is used to enable/disable the XLSX/CSV download option for Liveboards
14520
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
13183
14521
  *
13184
14522
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13185
14523
  * @type {boolean}
13186
14524
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14525
+ * @default true
13187
14526
  * @example
13188
14527
  * ```js
13189
14528
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13196,10 +14535,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13196
14535
  isLiveboardXLSXCSVDownloadEnabled?: boolean;
13197
14536
  /**
13198
14537
  * This flag is used to enable/disable the granular XLSX/CSV schedules feature
14538
+ * This feature is GA from SDK version 1.51.0 and ThoughtSpot version 26.6.0.cl.
13199
14539
  *
13200
14540
  * Supported embed types: `AppEmbed`, `LiveboardEmbed`
13201
14541
  * @type {boolean}
13202
14542
  * @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
14543
+ * @default true
13203
14544
  * @example
13204
14545
  * ```js
13205
14546
  * // Replace <EmbedComponent> with embed component name. For example, AppEmbed or LiveboardEmbed
@@ -13211,11 +14552,17 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13211
14552
  */
13212
14553
  isGranularXLSXCSVSchedulesEnabled?: boolean;
13213
14554
  /**
13214
- * This flag is used to enable the full height lazy load data.
14555
+ * Loads visualizations only as they scroll into the viewport, instead of
14556
+ * loading the whole full-height Liveboard at once.
14557
+ *
14558
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14559
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14560
+ * set explicitly. Set it to `false` to load every visualization upfront.
14561
+ * The flag has no effect unless `fullHeight` is enabled.
13215
14562
  *
13216
14563
  * @type {boolean}
13217
14564
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
13218
- * @default false
14565
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13219
14566
  * @example
13220
14567
  * ```js
13221
14568
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13227,26 +14574,42 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13227
14574
  */
13228
14575
  lazyLoadingForFullHeight?: boolean;
13229
14576
  /**
13230
- * This flag is used to enable container-aware full height lazy loading.
14577
+ * Computes the visible region of the embed against its scrollable and
14578
+ * clipping ancestors, instead of treating the browser window as the only
14579
+ * viewport, and tracks scroll and resize on those ancestors.
13231
14580
  *
13232
- * Use this when the embed is rendered inside a scrollable or clipping
13233
- * container instead of relying on the browser window as the only viewport.
14581
+ * From SDK 1.52.0 this is enabled automatically whenever `fullHeight` is
14582
+ * `true`. On SDK 1.51.0 and earlier it defaulted to `false` and had to be
14583
+ * set explicitly. Set it to `false` when the page scrolls with the window
14584
+ * and the embed has no clipping ancestor, to skip the extra ancestor
14585
+ * tracking.
13234
14586
  *
13235
14587
  * @type {boolean}
13236
- * @default false
14588
+ * @default true when `fullHeight` is enabled, from SDK 1.52.0
13237
14589
  */
13238
14590
  enableScrollableContainerLazyLoading?: boolean;
13239
14591
  /**
13240
- * The margin to be used for lazy loading.
14592
+ * How far outside the viewport a visualization starts loading, when
14593
+ * {@link lazyLoadingForFullHeight} is enabled.
13241
14594
  *
13242
14595
  * For example, if the margin is set to '10px',
13243
14596
  * the visualization will be loaded 10px before its top edge is visible in the
13244
14597
  * viewport.
13245
14598
  *
13246
- * The format is similar to CSS margin.
14599
+ * The format is similar to CSS margin, so `'500px 0px'` extends the
14600
+ * prefetch 500px above and below the viewport and not sideways. Accepted
14601
+ * units are `px`, `em`, `rem`, `%`, `vh` and `vw`, plus bare `0` and
14602
+ * `auto`; an invalid value is logged and ignored.
14603
+ *
14604
+ * From SDK 1.52.0 this defaults to `'500px 0px'` — roughly one
14605
+ * visualization ahead of the scroll position, so a chart has usually
14606
+ * finished loading by the time it scrolls into view. Use a smaller margin
14607
+ * to cut warehouse queries further, or `'0px'` to load a visualization
14608
+ * only once it is actually visible.
13247
14609
  *
13248
14610
  * @type {string}
13249
14611
  * @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
14612
+ * @default '500px 0px' when `fullHeight` is enabled, from SDK 1.52.0
13250
14613
  * @example
13251
14614
  * ```js
13252
14615
  * const embed = new LiveboardEmbed('#embed-container', {
@@ -13290,6 +14653,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13290
14653
  * ```
13291
14654
  */
13292
14655
  updatedSpotterChatPrompt?: boolean;
14656
+ /**
14657
+ * showSpotterRadiance : Controls the radiance on the Spotter page.
14658
+ *
14659
+ * Supported embed types: `LiveboardEmbed`
14660
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14661
+ * @default false
14662
+ * @example
14663
+ * ```js
14664
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14665
+ * ... //other embed view config
14666
+ * showSpotterRadiance : true,
14667
+ * })
14668
+ * ```
14669
+ */
14670
+ showSpotterRadiance?: boolean;
13293
14671
  /**
13294
14672
  * Enables the stop answer generation button in the Spotter embed UI,
13295
14673
  * allowing users to interrupt an ongoing answer generation.
@@ -13335,13 +14713,12 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13335
14713
  * inputChatPlaceholder: 'Ask a question...',
13336
14714
  * hideStarterPrompts: false,
13337
14715
  * customStarterPrompts: [{ id: '1', displayText: 'Top products', fullPrompt: 'What are the top products by revenue?' }],
13338
- * // loaderHeadline and loaderTips require SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
14716
+ * // The options below require SDK: 1.51.0
13339
14717
  * loaderHeadline: 'Crunching the numbers...',
13340
14718
  * loaderTips: [
13341
14719
  * { label: 'Tip', text: 'try asking about revenue by region' },
13342
14720
  * { label: 'Tip', text: 'use natural language' },
13343
14721
  * ],
13344
- * // liveboardBrandName, spotterBrandName, insightTileBrandName, insightTileViewPlanLabel and insightTileLoaderText require SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
13345
14722
  * liveboardBrandName: 'Reports',
13346
14723
  * spotterBrandName: 'Analyst',
13347
14724
  * insightTileBrandName: 'Insight card',
@@ -13365,6 +14742,21 @@ export interface LiveboardViewConfig extends BaseViewConfig, SearchLiveboardComm
13365
14742
  * ```
13366
14743
  */
13367
14744
  enableLiveboardDataCache?: boolean;
14745
+ /**
14746
+ * updatedSpotterExperience : Controls the updated Spotter experience.
14747
+ *
14748
+ * Supported embed types: `LiveboardEmbed`
14749
+ * @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
14750
+ * @default false
14751
+ * @example
14752
+ * ```js
14753
+ * const embed = new LiveboardEmbed('#tsEmbed', {
14754
+ * ... //other embed view config
14755
+ * updatedSpotterExperience : true,
14756
+ * })
14757
+ * ```
14758
+ */
14759
+ updatedSpotterExperience?: boolean;
13368
14760
  }
13369
14761
  declare class LiveboardEmbed extends V1Embed {
13370
14762
  protected viewConfig: LiveboardViewConfig;
@@ -13422,7 +14814,7 @@ declare class LiveboardEmbed extends V1Embed {
13422
14814
  * @param {any} data The payload to send with the message
13423
14815
  * @returns A promise that resolves with the response from the embedded app
13424
14816
  */
13425
- trigger<HostEventT extends HostEvent, PayloadT, ContextT extends ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
14817
+ trigger<HostEventT extends HostEvent, PayloadT = HostEventRequest<HostEventT>, ContextT extends ContextType = ContextType>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>, context?: ContextT): Promise<TriggerResponse<PayloadT, HostEventT, ContextT>>;
13426
14818
  /**
13427
14819
  * Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
13428
14820
  * @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
@@ -13505,35 +14897,69 @@ export type SessionInfo = {
13505
14897
  export declare function getSessionInfo(): Promise<SessionInfo>;
13506
14898
  export interface SearchProps extends EmbedProps, SearchViewConfig {
13507
14899
  }
13508
- export interface PreRenderProps {
14900
+ /**
14901
+ * The PreRendered components require a preRender id. It can be supplied either
14902
+ * through `preRenderConfig.preRenderId` (SDK: 1.52.0 and later) or through the
14903
+ * top-level `preRenderId` prop (SDK: 1.25.0 and later, now deprecated).
14904
+ * `preRenderConfig.preRenderId` takes precedence when both are set.
14905
+ *
14906
+ * Use PreRender to render the embed in the background and then
14907
+ * show or hide the rendered embed using showPreRender or hidePreRender respectively.
14908
+ * @example
14909
+ * ```tsx
14910
+ * // Preferred, SDK: 1.52.0 and later.
14911
+ * function LandingPageComponent() {
14912
+ * return <PreRenderedLiveboardEmbed
14913
+ * preRenderConfig={{ preRenderId: "someId" }}
14914
+ * liveboardId="libId"
14915
+ * />
14916
+ * }
14917
+ *
14918
+ * function MyComponent() {
14919
+ * return <LiveboardEmbed
14920
+ * preRenderConfig={{ preRenderId: "someId" }}
14921
+ * liveboardId="libId"
14922
+ * />
14923
+ * }
14924
+ * ```
14925
+ * @example
14926
+ * ```tsx
14927
+ * // Deprecated top-level preRenderId, still supported.
14928
+ * function LandingPageComponent() {
14929
+ * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
14930
+ * }
14931
+ * ```
14932
+ */
14933
+ export type PreRenderProps = {
13509
14934
  /**
13510
14935
  * PreRender id to be used for PreRendering the embed.
13511
- * Use PreRender to render the embed in the background and then
13512
- * show or hide the rendered embed using showPreRender or hidePreRender respectively.
13513
- *
13514
- * Use PreRendered react component for pre rendering embed components.
13515
14936
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
13516
- * @example
13517
- * ```js
13518
- * const embed = new LiveboardEmbed('#embed', {
13519
- * ... // other liveboard view config
13520
- * preRenderId: "preRenderId-123"
13521
- * });
13522
- * embed.showPreRender();
13523
- * ```
13524
- * @example
13525
- * ```tsx
13526
- * function LandingPageComponent() {
13527
- * return <PreRenderedLiveboardEmbed preRenderId="someId" liveboardId="libId" />
13528
- * }
13529
- * ```
13530
- * function MyComponent() {
13531
- * return <LiveboardEmbed preRenderId="someId" liveboardId="libId" />
13532
- * }
13533
- * ```
14937
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
13534
14938
  */
13535
14939
  preRenderId: string;
13536
- }
14940
+ /**
14941
+ * Configuration for the pre-render wrapper element.
14942
+ * See {@link PreRenderConfig} for available options.
14943
+ * @version SDK: 1.52.0
14944
+ */
14945
+ preRenderConfig?: PreRenderConfig;
14946
+ } | {
14947
+ /**
14948
+ * PreRender id to be used for PreRendering the embed.
14949
+ * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
14950
+ * @deprecated Use `preRenderConfig.preRenderId` instead.
14951
+ */
14952
+ preRenderId?: string;
14953
+ /**
14954
+ * Configuration for the pre-render wrapper element. `preRenderId` is
14955
+ * required here when the top-level `preRenderId` prop is not passed.
14956
+ * See {@link PreRenderConfig} for available options.
14957
+ * @version SDK: 1.52.0
14958
+ */
14959
+ preRenderConfig: PreRenderConfig & {
14960
+ preRenderId: string;
14961
+ };
14962
+ };
13537
14963
  /**
13538
14964
  * React component for Search Embed.
13539
14965
  * @example
@@ -13547,7 +14973,7 @@ export interface PreRenderProps {
13547
14973
  * ```
13548
14974
  */
13549
14975
  declare const SearchEmbed$1: React$1.ForwardRefExoticComponent<SearchProps & React$1.RefAttributes<SearchEmbed>>;
13550
- export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<SearchProps & PreRenderProps & React$1.RefAttributes<SearchEmbed>>;
14976
+ export declare const PreRenderedSearchEmbed: React$1.ForwardRefExoticComponent<(SearchProps & PreRenderProps) & React$1.RefAttributes<SearchEmbed>>;
13551
14977
  export interface AppProps extends EmbedProps, AppViewConfig {
13552
14978
  }
13553
14979
  /**
@@ -13582,7 +15008,7 @@ declare const AppEmbed$1: React$1.ForwardRefExoticComponent<AppProps & React$1.R
13582
15008
  * }
13583
15009
  * ```
13584
15010
  */
13585
- export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<AppProps & PreRenderProps & React$1.RefAttributes<AppEmbed>>;
15011
+ export declare const PreRenderedAppEmbed: React$1.ForwardRefExoticComponent<(AppProps & PreRenderProps) & React$1.RefAttributes<AppEmbed>>;
13586
15012
  export interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
13587
15013
  }
13588
15014
  /**
@@ -13622,8 +15048,8 @@ export declare const PinboardEmbed: React$1.ForwardRefExoticComponent<LiveboardP
13622
15048
  * }
13623
15049
  * ```
13624
15050
  */
13625
- export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React$1.RefAttributes<LiveboardEmbed>>;
13626
- export declare const PreRenderedPinboardEmbed: React$1.ForwardRefExoticComponent<LiveboardProps & PreRenderProps & React$1.RefAttributes<LiveboardEmbed>>;
15051
+ export declare const PreRenderedLiveboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
15052
+ export declare const PreRenderedPinboardEmbed: React$1.ForwardRefExoticComponent<(LiveboardProps & PreRenderProps) & React$1.RefAttributes<LiveboardEmbed>>;
13627
15053
  export interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
13628
15054
  }
13629
15055
  /**
@@ -13657,7 +15083,7 @@ declare const SearchBarEmbed$1: React$1.ForwardRefExoticComponent<SearchBarEmbed
13657
15083
  * }
13658
15084
  * ```
13659
15085
  */
13660
- export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<SearchBarEmbedProps & PreRenderProps & React$1.RefAttributes<SearchBarEmbed>>;
15086
+ export declare const PreRenderedSearchBarEmbed: React$1.ForwardRefExoticComponent<(SearchBarEmbedProps & PreRenderProps) & React$1.RefAttributes<SearchBarEmbed>>;
13661
15087
  export interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {
13662
15088
  }
13663
15089
  export interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {
@@ -13750,7 +15176,7 @@ export declare const SpotterMessage: React$1.ForwardRefExoticComponent<{
13750
15176
  * }
13751
15177
  * ```
13752
15178
  */
13753
- export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<SpotterEmbedProps & PreRenderProps & React$1.RefAttributes<SpotterEmbed>>;
15179
+ export declare const PreRenderedConversationEmbed: React$1.ForwardRefExoticComponent<(SpotterEmbedProps & PreRenderProps) & React$1.RefAttributes<SpotterEmbed>>;
13754
15180
  export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof LiveboardEmbed$1 | typeof SearchBarEmbed$1 | typeof ConversationMessage$1 | typeof SpotterMessage | typeof SpotterEmbed$1 | typeof ConversationEmbed$1;
13755
15181
  /**
13756
15182
  * Get a reference to the embed component to trigger events on the component.
@@ -13760,7 +15186,7 @@ export type EmbedComponent = typeof SearchEmbed$1 | typeof AppEmbed$1 | typeof L
13760
15186
  * const ref = useEmbedRef();
13761
15187
  * useEffect(() => {
13762
15188
  * ref.current.trigger(
13763
- * EmbedEvent.UpdateRuntimeFilter,
15189
+ * HostEvent.UpdateRuntimeFilters,
13764
15190
  * [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
13765
15191
  * }, [])
13766
15192
  * return <LiveboardEmbed ref={ref} liveboardId={<id>} />