@gengage/assistant-fe 0.4.20 → 0.5.0

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 (165) hide show
  1. package/README.md +1 -1
  2. package/dist/{api-paths-CReMDZWg.js → api-paths-y5nkfEBG.js} +1 -1
  3. package/dist/chat-runtime.js +1 -1
  4. package/dist/chat.iife.js +43 -43
  5. package/dist/chat.js +1 -1
  6. package/dist/common-BKPSOoIP.js +324 -0
  7. package/dist/common.js +64 -81
  8. package/dist/{connection-warning-C_4e7ahZ.js → connection-warning-DJiyLM46.js} +1 -1
  9. package/dist/{fastIntent-DMNzXOSI.js → fastIntent-1T2g9art.js} +2 -2
  10. package/dist/index.js +49 -52
  11. package/dist/{native-webview-Bbcvvi_5.js → native-webview-y3a9R9hH.js} +1 -1
  12. package/dist/native.iife.js +23 -23
  13. package/dist/native.js +1 -1
  14. package/dist/{overlay-O4nlUrzw.js → overlay-v3nvcGlE.js} +2 -5
  15. package/dist/overlay.js +2 -2
  16. package/dist/qna-runtime.js +1 -1
  17. package/dist/qna.iife.js +36 -36
  18. package/dist/qna.js +1 -1
  19. package/dist/{runtime-C51WykbJ.js → runtime-BMNOS2Mq.js} +176 -196
  20. package/dist/runtime-DOS9yRRx.js +650 -0
  21. package/dist/{runtime-DBh8899B.js → runtime-DsP6go8z.js} +2194 -2225
  22. package/dist/{simbut-CO1rLVM9.js → simbut-BwxzoBcY.js} +7 -7
  23. package/dist/simbut.iife.js +12 -12
  24. package/dist/simbut.js +1 -1
  25. package/dist/{simrel-zCDlCrqG.js → simrel-C07wZN8Q.js} +2 -2
  26. package/dist/simrel-runtime.js +1 -1
  27. package/dist/simrel.iife.js +35 -35
  28. package/dist/simrel.js +2 -2
  29. package/dist/widget-base-Dliq3QAf.js +362 -0
  30. package/package.json +8 -6
  31. package/dist/chat/api.d.ts +0 -88
  32. package/dist/chat/assistant-mode.d.ts +0 -19
  33. package/dist/chat/attachment-utils.d.ts +0 -9
  34. package/dist/chat/catalog.d.ts +0 -826
  35. package/dist/chat/chat-presentation-state.d.ts +0 -53
  36. package/dist/chat/components/AIGroupingCards.d.ts +0 -3
  37. package/dist/chat/components/AISuggestedSearchCards.d.ts +0 -3
  38. package/dist/chat/components/AITopPicks.d.ts +0 -3
  39. package/dist/chat/components/BeautyPhotoStep.d.ts +0 -16
  40. package/dist/chat/components/CategoriesContainer.d.ts +0 -3
  41. package/dist/chat/components/ChatDrawer.d.ts +0 -360
  42. package/dist/chat/components/ChoicePrompter.d.ts +0 -21
  43. package/dist/chat/components/ComparisonTable.d.ts +0 -57
  44. package/dist/chat/components/ConsultingStylePicker.d.ts +0 -34
  45. package/dist/chat/components/FloatingComparisonButton.d.ts +0 -2
  46. package/dist/chat/components/FloatingLauncher.d.ts +0 -79
  47. package/dist/chat/components/GroundingReviewCard.d.ts +0 -3
  48. package/dist/chat/components/HandoffNotice.d.ts +0 -4
  49. package/dist/chat/components/KvkkBanner.d.ts +0 -6
  50. package/dist/chat/components/Launcher.d.ts +0 -28
  51. package/dist/chat/components/PanelRestoreCard.d.ts +0 -4
  52. package/dist/chat/components/PanelTopBar.d.ts +0 -32
  53. package/dist/chat/components/PhotoAnalysisCard.d.ts +0 -20
  54. package/dist/chat/components/ProductSummaryCard.d.ts +0 -3
  55. package/dist/chat/components/ProsAndCons.d.ts +0 -8
  56. package/dist/chat/components/ReviewHighlights.d.ts +0 -9
  57. package/dist/chat/components/actionClassifier.d.ts +0 -12
  58. package/dist/chat/components/product-price-layout.d.ts +0 -18
  59. package/dist/chat/components/productMentionLinker.d.ts +0 -25
  60. package/dist/chat/components/renderUISpec.d.ts +0 -11
  61. package/dist/chat/components/typewriter.d.ts +0 -24
  62. package/dist/chat/extendedModeManager.d.ts +0 -32
  63. package/dist/chat/features/beauty-consulting/consulting-grid.d.ts +0 -31
  64. package/dist/chat/features/beauty-consulting/drawer-extensions.d.ts +0 -20
  65. package/dist/chat/features/beauty-consulting/mode-controller.d.ts +0 -53
  66. package/dist/chat/features/beauty-consulting/registry.d.ts +0 -3
  67. package/dist/chat/features/beauty-consulting/stream-handler.d.ts +0 -38
  68. package/dist/chat/history-storage.d.ts +0 -85
  69. package/dist/chat/index.d.ts +0 -5
  70. package/dist/chat/kvkk.d.ts +0 -20
  71. package/dist/chat/locales/en.d.ts +0 -2
  72. package/dist/chat/locales/index.d.ts +0 -5
  73. package/dist/chat/locales/tr.d.ts +0 -2
  74. package/dist/chat/panel-manager.d.ts +0 -126
  75. package/dist/chat/runtime.d.ts +0 -400
  76. package/dist/chat/session-persistence.d.ts +0 -65
  77. package/dist/chat/stream-error-display.d.ts +0 -6
  78. package/dist/chat/types.d.ts +0 -543
  79. package/dist/chat/utils/chat-presentation-debug.d.ts +0 -19
  80. package/dist/chat/utils/get-chat-scroll-element.d.ts +0 -10
  81. package/dist/chat/utils/ui.d.ts +0 -10
  82. package/dist/common/action-router.d.ts +0 -26
  83. package/dist/common/activity-tracker.d.ts +0 -37
  84. package/dist/common/analytics-events.d.ts +0 -91
  85. package/dist/common/analytics.d.ts +0 -61
  86. package/dist/common/api-paths.d.ts +0 -15
  87. package/dist/common/client.d.ts +0 -27
  88. package/dist/common/communication-bridge.d.ts +0 -51
  89. package/dist/common/config-constants.d.ts +0 -1
  90. package/dist/common/config-schema.d.ts +0 -81
  91. package/dist/common/connection-warning.d.ts +0 -8
  92. package/dist/common/consulting-sources.d.ts +0 -9
  93. package/dist/common/context.d.ts +0 -27
  94. package/dist/common/css-escape.d.ts +0 -1
  95. package/dist/common/customization-factories.d.ts +0 -62
  96. package/dist/common/debug.d.ts +0 -13
  97. package/dist/common/events.d.ts +0 -46
  98. package/dist/common/fastIntent.d.ts +0 -1
  99. package/dist/common/find-similar-payload.d.ts +0 -3
  100. package/dist/common/ga-datalayer.d.ts +0 -89
  101. package/dist/common/global-error-toast.d.ts +0 -6
  102. package/dist/common/index.d.ts +0 -50
  103. package/dist/common/indexed-db.d.ts +0 -79
  104. package/dist/common/locale.d.ts +0 -1
  105. package/dist/common/native-webview.d.ts +0 -60
  106. package/dist/common/navigation.d.ts +0 -5
  107. package/dist/common/overlay.d.ts +0 -168
  108. package/dist/common/page-detect.d.ts +0 -30
  109. package/dist/common/pill-launcher.d.ts +0 -51
  110. package/dist/common/preflight.d.ts +0 -13
  111. package/dist/common/price-formatter.d.ts +0 -35
  112. package/dist/common/product-utils.d.ts +0 -35
  113. package/dist/common/protocol-adapter.d.ts +0 -105
  114. package/dist/common/renderer/dom.d.ts +0 -3
  115. package/dist/common/renderer/index.d.ts +0 -4
  116. package/dist/common/renderer/overrides.d.ts +0 -23
  117. package/dist/common/renderer/registry.d.ts +0 -2
  118. package/dist/common/renderer/types.d.ts +0 -19
  119. package/dist/common/safe-html.d.ts +0 -22
  120. package/dist/common/sdk-version.d.ts +0 -3
  121. package/dist/common/skeleton.d.ts +0 -8
  122. package/dist/common/streaming.d.ts +0 -37
  123. package/dist/common/suggested-search-keywords.d.ts +0 -18
  124. package/dist/common/theme-utils.d.ts +0 -15
  125. package/dist/common/tts-player.d.ts +0 -13
  126. package/dist/common/types.d.ts +0 -381
  127. package/dist/common/ui-theme.d.ts +0 -9
  128. package/dist/common/uuidv7.d.ts +0 -7
  129. package/dist/common/voice-input.d.ts +0 -74
  130. package/dist/common/widget-base.d.ts +0 -97
  131. package/dist/common-BM2ZsSLI.js +0 -491
  132. package/dist/index.d.ts +0 -25
  133. package/dist/native/index.d.ts +0 -2
  134. package/dist/overlay.d.ts +0 -4
  135. package/dist/qna/api.d.ts +0 -23
  136. package/dist/qna/catalog.d.ts +0 -73
  137. package/dist/qna/components/ButtonRow.d.ts +0 -15
  138. package/dist/qna/components/TextInput.d.ts +0 -11
  139. package/dist/qna/components/renderUISpec.d.ts +0 -7
  140. package/dist/qna/index.d.ts +0 -3
  141. package/dist/qna/locales/en.d.ts +0 -2
  142. package/dist/qna/locales/index.d.ts +0 -5
  143. package/dist/qna/locales/tr.d.ts +0 -2
  144. package/dist/qna/normalize-ui-specs.d.ts +0 -15
  145. package/dist/qna/runtime.d.ts +0 -62
  146. package/dist/qna/types.d.ts +0 -98
  147. package/dist/runtime-bbMljGVG.js +0 -688
  148. package/dist/simbut/index.d.ts +0 -22
  149. package/dist/simbut/locales.d.ts +0 -3
  150. package/dist/simbut/types.d.ts +0 -43
  151. package/dist/simrel/api.d.ts +0 -25
  152. package/dist/simrel/catalog.d.ts +0 -110
  153. package/dist/simrel/components/GroupTabs.d.ts +0 -24
  154. package/dist/simrel/components/ProductCard.d.ts +0 -19
  155. package/dist/simrel/components/ProductGrid.d.ts +0 -17
  156. package/dist/simrel/components/renderUISpec.d.ts +0 -7
  157. package/dist/simrel/index.d.ts +0 -5
  158. package/dist/simrel/locales/en.d.ts +0 -2
  159. package/dist/simrel/locales/index.d.ts +0 -5
  160. package/dist/simrel/locales/tr.d.ts +0 -2
  161. package/dist/simrel/renderers/default.d.ts +0 -40
  162. package/dist/simrel/runtime.d.ts +0 -59
  163. package/dist/simrel/types.d.ts +0 -141
  164. package/dist/widget-base-Cf9ofZhh.js +0 -589
  165. /package/dist/{context-DGz5F81j.js → context-BBuSsXZ9.js} +0 -0
@@ -1,73 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const ActionButtonSchema: z.ZodObject<{
3
- label: z.ZodString;
4
- action: z.ZodObject<{
5
- title: z.ZodString;
6
- type: z.ZodString;
7
- payload: z.ZodOptional<z.ZodUnknown>;
8
- }, z.core.$strip>;
9
- variant: z.ZodOptional<z.ZodEnum<{
10
- primary: "primary";
11
- outline: "outline";
12
- ghost: "ghost";
13
- }>>;
14
- }, z.core.$strip>;
15
- export declare const ButtonRowSchema: z.ZodObject<{
16
- orientation: z.ZodOptional<z.ZodEnum<{
17
- horizontal: "horizontal";
18
- vertical: "vertical";
19
- }>>;
20
- wrap: z.ZodOptional<z.ZodBoolean>;
21
- }, z.core.$strip>;
22
- export declare const TextInputSchema: z.ZodObject<{
23
- placeholder: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
24
- ctaLabel: z.ZodOptional<z.ZodString>;
25
- }, z.core.$strip>;
26
- export declare const QuestionHeadingSchema: z.ZodObject<{
27
- text: z.ZodString;
28
- }, z.core.$strip>;
29
- export declare const qnaCatalog: {
30
- readonly components: {
31
- readonly ActionButton: {
32
- readonly schema: z.ZodObject<{
33
- label: z.ZodString;
34
- action: z.ZodObject<{
35
- title: z.ZodString;
36
- type: z.ZodString;
37
- payload: z.ZodOptional<z.ZodUnknown>;
38
- }, z.core.$strip>;
39
- variant: z.ZodOptional<z.ZodEnum<{
40
- primary: "primary";
41
- outline: "outline";
42
- ghost: "ghost";
43
- }>>;
44
- }, z.core.$strip>;
45
- readonly description: "A single clickable QNA action button.";
46
- };
47
- readonly ButtonRow: {
48
- readonly schema: z.ZodObject<{
49
- orientation: z.ZodOptional<z.ZodEnum<{
50
- horizontal: "horizontal";
51
- vertical: "vertical";
52
- }>>;
53
- wrap: z.ZodOptional<z.ZodBoolean>;
54
- }, z.core.$strip>;
55
- readonly description: "Container for a group of QNA action buttons.";
56
- };
57
- readonly TextInput: {
58
- readonly schema: z.ZodObject<{
59
- placeholder: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
60
- ctaLabel: z.ZodOptional<z.ZodString>;
61
- }, z.core.$strip>;
62
- readonly description: "Free-text input with rotating placeholder and CTA button.";
63
- };
64
- readonly QuestionHeading: {
65
- readonly schema: z.ZodObject<{
66
- text: z.ZodString;
67
- }, z.core.$strip>;
68
- readonly description: "A heading displayed above the QNA button group.";
69
- };
70
- };
71
- };
72
- export type QNACatalog = typeof qnaCatalog;
73
- export type QNAComponentName = keyof QNACatalog['components'];
@@ -1,15 +0,0 @@
1
- import { ActionPayload } from '../../common/types.js';
2
- export interface ButtonRowOptions {
3
- actions: Array<{
4
- title: string;
5
- type: string;
6
- payload?: unknown;
7
- }>;
8
- onAction: (action: ActionPayload) => void;
9
- ctaText?: string;
10
- defaultCtaText?: string;
11
- onOpenChat?: () => void;
12
- orientation?: 'horizontal' | 'vertical';
13
- quickQuestionsAriaLabel?: string;
14
- }
15
- export declare function renderButtonRow(options: ButtonRowOptions): HTMLElement;
@@ -1,11 +0,0 @@
1
- import { ActionPayload } from '../../common/types.js';
2
- export interface TextInputOptions {
3
- placeholders?: string | string[];
4
- ctaLabel?: string;
5
- defaultInputPlaceholder?: string;
6
- askQuestionAriaLabel?: string;
7
- sendButtonText?: string;
8
- sendQuestionAriaLabel?: string;
9
- onSubmit: (action: ActionPayload) => void;
10
- }
11
- export declare function renderTextInput(options: TextInputOptions): HTMLElement;
@@ -1,7 +0,0 @@
1
- import { UISpecDomRegistry, UISpecDomUnknownRenderer } from '../../common/renderer/index.js';
2
- import { UISpec } from '../../common/types.js';
3
- import { QNAUISpecRenderContext } from '../types.js';
4
- export type QNAUISpecRegistry = UISpecDomRegistry<QNAUISpecRenderContext>;
5
- export declare const defaultQnaUnknownUISpecRenderer: UISpecDomUnknownRenderer<QNAUISpecRenderContext>;
6
- export declare function createDefaultQnaUISpecRegistry(): QNAUISpecRegistry;
7
- export declare function renderQnaUISpec(spec: UISpec, context: QNAUISpecRenderContext, registry?: QNAUISpecRegistry, unknownRenderer?: UISpecDomUnknownRenderer<QNAUISpecRenderContext>): HTMLElement;
@@ -1,3 +0,0 @@
1
- export * from './runtime.js';
2
- export { qnaCatalog } from './catalog.js';
3
- export type { QNACatalog, QNAComponentName } from './catalog.js';
@@ -1,2 +0,0 @@
1
- import { QNAI18n } from '../types.js';
2
- export declare const QNA_I18N_EN: QNAI18n;
@@ -1,5 +0,0 @@
1
- import { QNAI18n } from '../types.js';
2
- import { QNA_I18N_TR } from './tr.js';
3
- import { QNA_I18N_EN } from './en.js';
4
- export declare function resolveQnaLocale(locale?: string): QNAI18n;
5
- export { QNA_I18N_TR, QNA_I18N_EN };
@@ -1,2 +0,0 @@
1
- import { QNAI18n } from '../types.js';
2
- export declare const QNA_I18N_TR: QNAI18n;
@@ -1,15 +0,0 @@
1
- import { PageContext, UISpec } from '../common/types.js';
2
- import { QNAI18n } from './types.js';
3
- /** SKUs to send with the product-context quick pill (`user_message` + sku_list). */
4
- export type MergeQuickPillsOptions = {
5
- skuList?: string[] | undefined;
6
- };
7
- /**
8
- * Resolve SKU list for QNA → chat payloads: current PDP sku, or `visible_skus` on listings.
9
- */
10
- export declare function resolveQnaSkuListForPayload(pageContext: PageContext | undefined): string[] | undefined;
11
- /**
12
- * Removes standalone hero `ActionButton` blocks for `findSimilar` (e.g. from `text_image`)
13
- * and merges a product-context quick question pill instead (same row as other questions).
14
- */
15
- export declare function mergeStandaloneFindSimilarIntoQuickPills(specs: UISpec[], i18n: QNAI18n, options?: MergeQuickPillsOptions): UISpec[];
@@ -1,62 +0,0 @@
1
- import { ActionPayload, PageContext } from '../common/types.js';
2
- import { BaseWidget } from '../common/widget-base.js';
3
- import { QNAWidgetConfig } from './types.js';
4
- /**
5
- * Contextual Q&A action buttons for product pages.
6
- * Renders quick-action buttons that open the chat widget with a pre-built query.
7
- *
8
- * @example
9
- * ```ts
10
- * import { GengageQNA, wireQNAToChat, bootstrapSession } from '@gengage/assistant-fe';
11
- *
12
- * const qna = new GengageQNA();
13
- * await qna.init({
14
- * accountId: 'mystore',
15
- * middlewareUrl: '<backend service location provided for your Gengage account>',
16
- * mountTarget: '#qna-section',
17
- * pageContext: { pageType: 'pdp', sku: '12345' },
18
- * session: { sessionId: bootstrapSession() },
19
- * });
20
- * wireQNAToChat(); // Wire button clicks to chat.openWithAction()
21
- * ```
22
- */
23
- export declare class GengageQNA extends BaseWidget<QNAWidgetConfig> {
24
- private _abortController;
25
- private _debounceTimer;
26
- private _contentEl;
27
- private _lastSku;
28
- private _i18n;
29
- protected onInit(config: QNAWidgetConfig): Promise<void>;
30
- protected onUpdate(context: Partial<PageContext>): void;
31
- protected onShow(): void;
32
- protected onHide(): void;
33
- protected onDestroy(): void;
34
- private _abort;
35
- /** `headerTitle` wins over deprecated `headingTitle`. */
36
- private _resolvedQnaHeaderTitle;
37
- /** Clean up TextInput placeholder rotation timers to prevent interval leaks. */
38
- private _cleanupTextInputTimers;
39
- private _fetchAndRender;
40
- private _createLoadingIndicator;
41
- private _resolveI18n;
42
- private _createChrome;
43
- private _resolveUISpecRegistry;
44
- private _renderUISpec;
45
- private _specIncludesType;
46
- private _buildFallbackActionsSpec;
47
- /**
48
- * Free-text field when the launcher stream has no TextInput. Sits above the pills by
49
- * default; set `inputAfterPills: true` in config to place it after.
50
- */
51
- private _insertStandaloneInputBeforePills;
52
- private _appendStandaloneInput;
53
- private _handleAction;
54
- private _handleOpenChat;
55
- private _showTransitionIndicator;
56
- _actionHandler: (action: ActionPayload) => void;
57
- _openChatHandler: () => void;
58
- }
59
- export declare function createQNAWidget(): GengageQNA;
60
- export type { QNAWidgetConfig, QNAUIComponents, QNAI18n, QNAChromeLayout, QNAChromeConfig, QNAUISpecRenderContext, QNARendererConfig, } from './types.js';
61
- export { renderQnaUISpec, createDefaultQnaUISpecRegistry, defaultQnaUnknownUISpecRenderer, } from './components/renderUISpec.js';
62
- export type { QNAUISpecRegistry } from './components/renderUISpec.js';
@@ -1,98 +0,0 @@
1
- import { BaseWidgetConfig, ActionPayload } from '../common/types.js';
2
- import { UISpecRendererOverrides } from '../common/renderer/index.js';
3
- export interface QNAWidgetConfig extends BaseWidgetConfig {
4
- /** Where to mount the QNA buttons container. Required. */
5
- mountTarget: HTMLElement | string;
6
- /** Optional SDK-owned outer chrome for merchant PDP prompts. Defaults to no chrome. */
7
- chrome?: QNAChromeConfig;
8
- /** CTA label for the "open chat" pill/button (default: 'Ask something else'). */
9
- ctaText?: string;
10
- /** Hide the CTA button inside the quick-question button row.
11
- * Useful when a TextInput is already visible and the CTA would be redundant. */
12
- hideButtonRowCta?: boolean;
13
- /** Placeholder text cycling inside the free-text input.
14
- * Set to `true` to use fetched action titles as rotating placeholders. */
15
- inputPlaceholder?: string | string[] | true;
16
- /** When true, the standalone input is placed after the question pills instead of before them. */
17
- inputAfterPills?: boolean;
18
- /** Locale key for SDK defaults (for example 'tr', 'en'). */
19
- locale?: string;
20
- i18n?: Partial<QNAI18n>;
21
- renderer?: QNARendererConfig;
22
- /** Show a static question above the rotating buttons. */
23
- showStaticQuestion?: boolean;
24
- staticQuestionText?: string;
25
- /**
26
- * Title above the Q&A module (e.g. "Koçtaş'a Sor", "Teknosa'ya Sor").
27
- * When set, overrides the stream `QuestionHeading` text from the backend.
28
- * Overlay defaults: `qna.headerTitle` → `qna.headingTitle` (deprecated) → `chat.headerTitle`.
29
- */
30
- headerTitle?: string;
31
- /**
32
- * @deprecated Use `headerTitle` — same behavior.
33
- */
34
- headingTitle?: string;
35
- /** Called when a QNA action button is clicked. */
36
- onActionSelected?: (action: ActionPayload) => void;
37
- /** Called when the open-chat CTA is clicked. */
38
- onOpenChat?: () => void;
39
- }
40
- export interface QNAI18n {
41
- quickQuestionsAriaLabel: string;
42
- askQuestionAriaLabel: string;
43
- defaultInputPlaceholder: string;
44
- sendButton: string;
45
- sendQuestionAriaLabel: string;
46
- defaultCtaText: string;
47
- redirectingToChat: string;
48
- /**
49
- * Replaces the standalone backend “similar products” hero with this quick question pill
50
- * (user_message, not findSimilar).
51
- */
52
- productContextQuickPillLabel: string;
53
- }
54
- export type QNAChromeLayout = 'default' | 'side-image';
55
- export interface QNAChromeConfig {
56
- /** Optional chrome layout. `side-image` keeps the QNA body in the content column beside the image. */
57
- layout?: QNAChromeLayout;
58
- title?: string;
59
- subtitle?: string;
60
- imageUrl?: string;
61
- imageAlt?: string;
62
- /** Optional CSS padding value applied to the chrome image. */
63
- imagePadding?: string;
64
- startButtonLabel?: string;
65
- }
66
- export interface QNAUISpecRenderContext {
67
- onAction: (action: ActionPayload) => void;
68
- onOpenChat?: () => void;
69
- ctaText?: string;
70
- inputPlaceholder?: string | string[];
71
- i18n: QNAI18n;
72
- /** When set (from `QNAWidgetConfig.headerTitle` / `headingTitle`), replaces QuestionHeading `text` from the stream. */
73
- headingTitleOverride?: string;
74
- }
75
- export type QNARendererConfig = UISpecRendererOverrides<QNAUISpecRenderContext>;
76
- export interface QNAUIComponents {
77
- /** A single QNA action button. */
78
- ActionButton: {
79
- label: string;
80
- action: ActionPayload;
81
- /** Visual variant for the button. */
82
- variant?: 'primary' | 'outline' | 'ghost';
83
- };
84
- /** The container holding all action buttons. */
85
- ButtonRow: {
86
- orientation?: 'horizontal' | 'vertical';
87
- wrap?: boolean;
88
- };
89
- /** Free-text input field with rotating placeholder text. */
90
- TextInput: {
91
- placeholder?: string | string[];
92
- ctaLabel?: string;
93
- };
94
- /** A heading or label above the buttons. */
95
- QuestionHeading: {
96
- text: string;
97
- };
98
- }