@active-reach/web-sdk 1.20.0 → 1.22.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.
- package/dist/aegis-sw.js +1 -1
- package/dist/aegis.min.js +1 -1
- package/dist/aegis.min.js.map +1 -1
- package/dist/{analytics-DblhjFhs.mjs → analytics-0p0p56H0.mjs} +11 -6
- package/dist/analytics-0p0p56H0.mjs.map +1 -0
- package/dist/cdn.d.ts.map +1 -1
- package/dist/chat/AegisChat.d.ts +24 -0
- package/dist/chat/AegisChat.d.ts.map +1 -1
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/core/prefetch-bundle-client.d.ts.map +1 -1
- package/dist/inapp/AegisInAppManager.d.ts +38 -1
- package/dist/inapp/AegisInAppManager.d.ts.map +1 -1
- package/dist/inapp/lucide-svg.d.ts +46 -0
- package/dist/inapp/lucide-svg.d.ts.map +1 -0
- package/dist/inapp/renderPreview.d.ts +16 -1
- package/dist/inapp/renderPreview.d.ts.map +1 -1
- package/dist/inapp/renderers/active-web-chat.d.ts +7 -0
- package/dist/inapp/renderers/active-web-chat.d.ts.map +1 -1
- package/dist/inapp/renderers/card-style.d.ts +28 -0
- package/dist/inapp/renderers/card-style.d.ts.map +1 -0
- package/dist/inapp/renderers/card-template.d.ts +107 -0
- package/dist/inapp/renderers/card-template.d.ts.map +1 -0
- package/dist/inapp/renderers/carousel-cards.d.ts.map +1 -1
- package/dist/inapp/renderers/games.d.ts.map +1 -1
- package/dist/inapp/renderers/hero.d.ts +23 -0
- package/dist/inapp/renderers/hero.d.ts.map +1 -0
- package/dist/inapp/renderers/index.d.ts +4 -1
- package/dist/inapp/renderers/index.d.ts.map +1 -1
- package/dist/inapp/renderers/product-recommendation.d.ts +19 -5
- package/dist/inapp/renderers/product-recommendation.d.ts.map +1 -1
- package/dist/inapp/renderers/progress-bar.d.ts.map +1 -1
- package/dist/inapp/renderers/sticky-bar.d.ts.map +1 -1
- package/dist/inapp/renderers/stories.d.ts.map +1 -1
- package/dist/inapp/renderers/types.d.ts +10 -0
- package/dist/inapp/renderers/types.d.ts.map +1 -1
- package/dist/inapp/renderers/video.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1726 -391
- package/dist/index.js.map +1 -1
- package/dist/push/AegisWebPush.d.ts +1 -6
- package/dist/push/AegisWebPush.d.ts.map +1 -1
- package/dist/push/AegisWebPush.js +20 -1
- package/dist/push/AegisWebPush.js.map +1 -1
- package/dist/react.js +1 -1
- package/dist/runtime/AegisMessageRuntime.d.ts +11 -1
- package/dist/runtime/AegisMessageRuntime.d.ts.map +1 -1
- package/dist/triggers/IntentRuleEvaluator.d.ts +21 -0
- package/dist/triggers/IntentRuleEvaluator.d.ts.map +1 -1
- package/dist/utils/consent.d.ts.map +1 -1
- package/dist/widgets/AegisWidgetManager.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/analytics-DblhjFhs.mjs.map +0 -1
package/dist/chat/AegisChat.d.ts
CHANGED
|
@@ -56,7 +56,18 @@ export interface AegisChatConfig {
|
|
|
56
56
|
onSessionEnd?: () => void;
|
|
57
57
|
/** Fired after a customer message is accepted by the server. */
|
|
58
58
|
onMessageSent?: () => void;
|
|
59
|
+
/** Presentation: 'bubble' (default, floating launcher) or 'nav' (headless —
|
|
60
|
+
* no bubble; the panel mounts but opens only via openPanel() / the public
|
|
61
|
+
* `aegis.chat.open()` API / a host trigger). Use 'nav' when the host owns
|
|
62
|
+
* the entry point (e.g. a mobile bottom-nav "Ask" button). */
|
|
63
|
+
displayMode?: 'bubble' | 'nav';
|
|
59
64
|
}
|
|
65
|
+
/** The single mounted launcher, or null if chat isn't active on this page. */
|
|
66
|
+
export declare function getCurrentLauncher(): AegisChat | null;
|
|
67
|
+
/** Open the chat panel (no-op if no launcher is mounted). */
|
|
68
|
+
export declare function openChat(prefill?: string): void;
|
|
69
|
+
/** Close the chat panel. */
|
|
70
|
+
export declare function closeChat(): void;
|
|
60
71
|
export declare class AegisChat {
|
|
61
72
|
private readonly writeKey;
|
|
62
73
|
private readonly apiHost;
|
|
@@ -69,6 +80,7 @@ export declare class AegisChat {
|
|
|
69
80
|
private readonly icon;
|
|
70
81
|
private readonly logoUrl?;
|
|
71
82
|
private readonly position;
|
|
83
|
+
private readonly displayMode;
|
|
72
84
|
private readonly agentPersona?;
|
|
73
85
|
private readonly quickReplies?;
|
|
74
86
|
private readonly onSessionStart?;
|
|
@@ -79,6 +91,8 @@ export declare class AegisChat {
|
|
|
79
91
|
* the SSE subscription AND the contact-scoped /history read (the server
|
|
80
92
|
* requires it — chat history is not readable by contact_id alone). */
|
|
81
93
|
private sseTicket?;
|
|
94
|
+
/** True once a resume attempt ran this page-load (one /session call max). */
|
|
95
|
+
private sessionResumed;
|
|
82
96
|
private open;
|
|
83
97
|
private initialized;
|
|
84
98
|
private root?;
|
|
@@ -107,6 +121,10 @@ export declare class AegisChat {
|
|
|
107
121
|
closePanel(): void;
|
|
108
122
|
destroy(): void;
|
|
109
123
|
private send;
|
|
124
|
+
/** Validate + upload a picked file, then send it as a media message. */
|
|
125
|
+
private handleFile;
|
|
126
|
+
/** Read a File as bare base64 (strip the `data:…;base64,` prefix). */
|
|
127
|
+
private fileToBase64;
|
|
110
128
|
private connectSSE;
|
|
111
129
|
private disconnectSSE;
|
|
112
130
|
private startPolling;
|
|
@@ -128,6 +146,12 @@ export declare class AegisChat {
|
|
|
128
146
|
private clearUnread;
|
|
129
147
|
private scrollToBottom;
|
|
130
148
|
private readAnonId;
|
|
149
|
+
private readStoredContactId;
|
|
150
|
+
private persistContactId;
|
|
151
|
+
/** Restore a returning visitor's thread on open. Resolves an existing contact
|
|
152
|
+
* + mints a per-session ticket WITHOUT sending a message (history is ticket-
|
|
153
|
+
* gated). No-ops for brand-new visitors and once a ticket is already held. */
|
|
154
|
+
private resumeSession;
|
|
131
155
|
private showTyping;
|
|
132
156
|
private hideTyping;
|
|
133
157
|
private scheduleAttention;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AegisChat.d.ts","sourceRoot":"","sources":["../../src/chat/AegisChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"AegisChat.d.ts","sourceRoot":"","sources":["../../src/chat/AegisChat.ts"],"names":[],"mappings":"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"}
|
package/dist/chat/index.d.ts
CHANGED
package/dist/chat/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefetch-bundle-client.d.ts","sourceRoot":"","sources":["../../src/core/prefetch-bundle-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prefetch-bundle-client.d.ts","sourceRoot":"","sources":["../../src/core/prefetch-bundle-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ export interface InAppCampaign {
|
|
|
49
49
|
};
|
|
50
50
|
assigned_variant_id?: string;
|
|
51
51
|
delivery_modes?: Array<'in_app_overlay' | 'embedded_card' | 'standalone_page'>;
|
|
52
|
-
widget_category?: 'feedback' | 'loyalty' | 'promo' | 'commerce' | 'support' | 'custom';
|
|
52
|
+
widget_category?: 'feedback' | 'loyalty' | 'promo' | 'commerce' | 'support' | 'custom' | 'onboarding' | 'hero' | 'announcement';
|
|
53
53
|
page_key?: 'bill' | 'rewards' | 'feedback' | 'reviews' | 'members';
|
|
54
54
|
surface?: string[];
|
|
55
55
|
target_screens?: string[];
|
|
@@ -149,6 +149,7 @@ export declare class AegisInAppManager {
|
|
|
149
149
|
private getCartState?;
|
|
150
150
|
private campaigns;
|
|
151
151
|
private displayedCampaigns;
|
|
152
|
+
private _displaySizeMul;
|
|
152
153
|
private suppressedUntil;
|
|
153
154
|
private eventSource?;
|
|
154
155
|
private isInitialized;
|
|
@@ -200,6 +201,7 @@ export declare class AegisInAppManager {
|
|
|
200
201
|
updateContactId(contactId: string): void;
|
|
201
202
|
private refreshDebounceTimer?;
|
|
202
203
|
private static readonly REFRESH_DEBOUNCE_MS;
|
|
204
|
+
private pendingPreInitRefresh;
|
|
203
205
|
private currentSurface;
|
|
204
206
|
private currentScreen;
|
|
205
207
|
private currentLocationId;
|
|
@@ -311,6 +313,10 @@ export declare class AegisInAppManager {
|
|
|
311
313
|
private getVariantId;
|
|
312
314
|
private tryDisplayNextCampaign;
|
|
313
315
|
private filledSlots;
|
|
316
|
+
private slotSignatures;
|
|
317
|
+
private slotTimers;
|
|
318
|
+
private slotObserver;
|
|
319
|
+
private slotRenderScheduled;
|
|
314
320
|
/**
|
|
315
321
|
* Scan the page for `[data-aegis-slot]` anchors and render any
|
|
316
322
|
* campaign whose `widget_category` matches the slot key AND whose
|
|
@@ -339,6 +345,7 @@ export declare class AegisInAppManager {
|
|
|
339
345
|
* strictly on `currentScreen`; a dual campaign ORs the two tiers.
|
|
340
346
|
*/
|
|
341
347
|
private matchesCurrentScreenOrSurface;
|
|
348
|
+
private ensureSlotObserver;
|
|
342
349
|
private renderIntoSlots;
|
|
343
350
|
/**
|
|
344
351
|
* Rotating slot — cycles eligible campaigns one at a time inside a single host
|
|
@@ -413,6 +420,14 @@ export declare class AegisInAppManager {
|
|
|
413
420
|
* The catch-all for banner + nudge sub_types (birthday, referral, app-install,
|
|
414
421
|
* win-back, etc.) so EVERY gallery nudge renders on the bill (previously only
|
|
415
422
|
* star_rating / nps_survey / form were handled → nudges never appeared). */
|
|
423
|
+
/**
|
|
424
|
+
* Composed single card — renders a campaign's top-level `card_template`
|
|
425
|
+
* (frame + elements: icon/text/progress/image/cta/group/…) through the generic
|
|
426
|
+
* `renderCardFromTemplate` engine. The canonical path for the rich card editor:
|
|
427
|
+
* the storefront value bar, loyalty nudges, and any operator-composed card all
|
|
428
|
+
* render here from declarative JSON, on ACS / custom / third-party sites.
|
|
429
|
+
*/
|
|
430
|
+
private renderComposedCardSlot;
|
|
416
431
|
private renderGenericCardSlot;
|
|
417
432
|
/**
|
|
418
433
|
* §7.13.I — embedded profile FORM. Renders one input per `form_fields` entry
|
|
@@ -463,6 +478,12 @@ export declare class AegisInAppManager {
|
|
|
463
478
|
/** Built-in embedded COUNTDOWN — live H:M:S digits that pulse red in the
|
|
464
479
|
* final stretch (<60s) to create urgency, plus the CTA. */
|
|
465
480
|
private renderCountdownSlot;
|
|
481
|
+
/** Foil palette — a brushed-metal gradient + a contrast "ink" (for the
|
|
482
|
+
* SCRATCH-HERE text, sparkle motif, and logo tint) derived from the operator's
|
|
483
|
+
* chosen foil colour (brand primary / custom hex). Unset / invalid → the
|
|
484
|
+
* default silver. Light foils get dark ink, dark foils get white ink, so the
|
|
485
|
+
* prompt stays legible on any colour. */
|
|
486
|
+
private _scratchFoilPalette;
|
|
466
487
|
/** Built-in embedded SCRATCH CARD — a canvas foil the customer scratches to
|
|
467
488
|
* reveal the server-picked prize, then submits (records + grants). Confetti
|
|
468
489
|
* on reveal. No AegisMessageRuntime callback dependency (works on the bill). */
|
|
@@ -489,6 +510,13 @@ export declare class AegisInAppManager {
|
|
|
489
510
|
*/
|
|
490
511
|
private _slotStyle;
|
|
491
512
|
private _wrapInSlotCard;
|
|
513
|
+
/**
|
|
514
|
+
* Flush a rendered slot card into its host card — drop the per-campaign radius
|
|
515
|
+
* + shadow so it reads as one unit with the host wrapper (used for the
|
|
516
|
+
* storefront value bar via `data-aegis-slot-flush`). Targets every
|
|
517
|
+
* `[data-campaign-id]` card inside `container` (or the container itself).
|
|
518
|
+
*/
|
|
519
|
+
private _flattenSlotCard;
|
|
492
520
|
private _appendHeaderImage;
|
|
493
521
|
private _buildStarRatingBody;
|
|
494
522
|
/**
|
|
@@ -563,6 +591,11 @@ export declare class AegisInAppManager {
|
|
|
563
591
|
* slot renderers (`renderSpinWheelSlot` / `renderScratchCardSlot`) in a modal
|
|
564
592
|
* so the gamified widget is fully playable — not a dead frame.
|
|
565
593
|
*/
|
|
594
|
+
/** Display-size multiplier — operator control over how big a bounded overlay
|
|
595
|
+
* renders (small 0.82 / medium 1 / large 1.18). Default medium = prior size.
|
|
596
|
+
* Read from interactive_config.display_size; mirrors the schema enum + the
|
|
597
|
+
* dashboard preview harness so the operator's choice is honored identically. */
|
|
598
|
+
private _sizeMul;
|
|
566
599
|
private renderGamificationOverlay;
|
|
567
600
|
/** A circular ✕ close button in the modal's top-right corner. */
|
|
568
601
|
private _addCornerClose;
|
|
@@ -616,6 +649,10 @@ export declare class AegisInAppManager {
|
|
|
616
649
|
*/
|
|
617
650
|
private _runQuizFlow;
|
|
618
651
|
private createOverlay;
|
|
652
|
+
/** Wrap a card in a display-size scaling container (no-op at medium/×1). Used
|
|
653
|
+
* by formats that build their overlay inline (renderModal) rather than via
|
|
654
|
+
* createOverlay, so size is honored identically. */
|
|
655
|
+
private _wrapScaled;
|
|
619
656
|
private createCTAButton;
|
|
620
657
|
private addCloseButton;
|
|
621
658
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AegisInAppManager.d.ts","sourceRoot":"","sources":["../../src/inapp/AegisInAppManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AegisInAppManager.d.ts","sourceRoot":"","sources":["../../src/inapp/AegisInAppManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* lucide-svg.ts — inline lucide icons for the in-app HTML-string renderers.
|
|
3
|
+
*
|
|
4
|
+
* The web-sdk renderers build raw DOM/HTML and cannot import `lucide-react`
|
|
5
|
+
* (no React, and we keep the CDN bundle lean). This helper emits the SAME
|
|
6
|
+
* lucide glyphs as inline `<svg>` strings so injected in-app surfaces use the
|
|
7
|
+
* platform icon set instead of emojis. See CLAUDE.md "Icons" +
|
|
8
|
+
* docs/architecture/EMOJI_TO_LUCIDE_MIGRATION_TRACKER.md.
|
|
9
|
+
*
|
|
10
|
+
* Path data is copied verbatim from lucide-react (ISC). To add an icon, copy
|
|
11
|
+
* its node array from `node_modules/lucide-react/dist/esm/icons/<name>.js`.
|
|
12
|
+
*/
|
|
13
|
+
type IconNode = Array<[string, Record<string, string | number>]>;
|
|
14
|
+
declare const ICONS: Record<string, IconNode>;
|
|
15
|
+
/** Stable list of pickable glyph names — the compose IconPicker offers exactly
|
|
16
|
+
* this set (the SDK can only render what's in ICONS). Adding a glyph above
|
|
17
|
+
* auto-exposes it here. */
|
|
18
|
+
export declare const ICON_NAMES: string[];
|
|
19
|
+
export type LucideIconName = keyof typeof ICONS;
|
|
20
|
+
export interface LucideSvgOptions {
|
|
21
|
+
/** Pixel size of the square icon (default 24). */
|
|
22
|
+
size?: number;
|
|
23
|
+
/** Stroke color — any CSS color (default 'currentColor'). */
|
|
24
|
+
color?: string;
|
|
25
|
+
/** Stroke width (default 2, matching the design system). */
|
|
26
|
+
strokeWidth?: number;
|
|
27
|
+
/** Extra class names on the <svg>. */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** Accessible label; when omitted the icon is aria-hidden. */
|
|
30
|
+
ariaLabel?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Builds an inline lucide icon as a real `SVGElement` via `createElementNS` —
|
|
34
|
+
* the SECURE path for DOM renderers (no `innerHTML`/string parsing). Prefer this
|
|
35
|
+
* over `lucideSvg` whenever you have a parent node to `appendChild` into.
|
|
36
|
+
* Returns null for unknown names or outside a DOM (fail-soft).
|
|
37
|
+
*/
|
|
38
|
+
export declare function lucideSvgEl(name: LucideIconName | string, opts?: LucideSvgOptions): SVGSVGElement | null;
|
|
39
|
+
/**
|
|
40
|
+
* Returns an inline lucide `<svg>` string for use in HTML-string renderers.
|
|
41
|
+
* Unknown names return an empty string (fail-soft — never break a surface).
|
|
42
|
+
* For DOM renderers prefer `lucideSvgEl` (no innerHTML).
|
|
43
|
+
*/
|
|
44
|
+
export declare function lucideSvg(name: LucideIconName | string, opts?: LucideSvgOptions): string;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=lucide-svg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucide-svg.d.ts","sourceRoot":"","sources":["../../src/inapp/lucide-svg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,KAAK,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAGjE,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAkMnC,CAAC;AAEF;;4BAE4B;AAC5B,eAAO,MAAM,UAAU,UAAqB,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,KAAK,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,GAAG,MAAM,EAC7B,IAAI,GAAE,gBAAqB,GAC1B,aAAa,GAAG,IAAI,CA0BtB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,EAAE,IAAI,GAAE,gBAAqB,GAAG,MAAM,CAuB5F"}
|
|
@@ -13,6 +13,21 @@
|
|
|
13
13
|
* production rendering — both use the same SDK code.
|
|
14
14
|
*/
|
|
15
15
|
import type { InAppCampaign } from './AegisInAppManager';
|
|
16
|
+
import type { CartState } from './renderers/types';
|
|
17
|
+
/** Optional preview inputs — e.g. a scrubbed cart so cart-reactive widgets
|
|
18
|
+
* (progress_bar) react in the in-page preview exactly as they will live. */
|
|
19
|
+
export interface RenderPreviewOptions {
|
|
20
|
+
cart?: CartState;
|
|
21
|
+
/** The OTHER campaigns already occupying the same slot (the real current
|
|
22
|
+
* occupants). When present, the inline preview renders the whole slot GROUP
|
|
23
|
+
* through the production `renderIntoSlots` engine — so the operator sees the
|
|
24
|
+
* slot as it really is: single best-match (highest priority) in personalized
|
|
25
|
+
* mode, or the full group cycling when the slot is a carousel
|
|
26
|
+
* (slot_rotate_ms / data-aegis-slot-rotate). */
|
|
27
|
+
coGroup?: Array<InAppCampaign & {
|
|
28
|
+
interactive_config?: Record<string, unknown>;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
16
31
|
/**
|
|
17
32
|
* Renders a single in-app campaign into the current document for preview.
|
|
18
33
|
*
|
|
@@ -21,5 +36,5 @@ import type { InAppCampaign } from './AegisInAppManager';
|
|
|
21
36
|
*/
|
|
22
37
|
export declare function renderPreview(config: InAppCampaign & {
|
|
23
38
|
interactive_config?: Record<string, unknown>;
|
|
24
|
-
}): void;
|
|
39
|
+
}, opts?: RenderPreviewOptions): void;
|
|
25
40
|
//# sourceMappingURL=renderPreview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderPreview.d.ts","sourceRoot":"","sources":["../../src/inapp/renderPreview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"renderPreview.d.ts","sourceRoot":"","sources":["../../src/inapp/renderPreview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;6EAC6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;qDAKiD;IACjD,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACnF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,GAAG;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EACxE,IAAI,CAAC,EAAE,oBAAoB,GAC1B,IAAI,CAwIN"}
|
|
@@ -33,6 +33,13 @@ export interface ActiveWebChatCredentials {
|
|
|
33
33
|
* SSE) is established only when the customer opens the panel.
|
|
34
34
|
*/
|
|
35
35
|
export declare function renderActiveWebChat(ctx: RenderContext, creds: ActiveWebChatCredentials): AegisChat | null;
|
|
36
|
+
/** The single live launcher on the page, if mounted (campaign or legacy path). */
|
|
37
|
+
export declare function getActiveWebChat(): AegisChat | null;
|
|
38
|
+
/** Canonical public open — used by host buttons (e.g. mobile bottom-nav "Ask")
|
|
39
|
+
* and the `window.aegis.chat.open()` facade. Targets the ONE launcher instance;
|
|
40
|
+
* no-op if no launcher is mounted (e.g. chat not enabled for this page). */
|
|
41
|
+
export declare function openActiveWebChat(prefill?: string): void;
|
|
42
|
+
export declare function closeActiveWebChat(): void;
|
|
36
43
|
/** Tear down the launcher (manager teardown / page unload). */
|
|
37
44
|
export declare function disposeActiveWebChat(): void;
|
|
38
45
|
//# sourceMappingURL=active-web-chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"active-web-chat.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/active-web-chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAwB,MAAM,sBAAsB,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAM7C;gEACgE;AAChE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC5B;AAWD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,wBAAwB,GAC9B,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"active-web-chat.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/active-web-chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAwB,MAAM,sBAAsB,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAM7C;gEACgE;AAChE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC5B;AAWD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,wBAAwB,GAC9B,SAAS,GAAG,IAAI,CAqElB;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,IAAI,SAAS,GAAG,IAAI,CAEnD;AAED;;6EAE6E;AAC7E,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `CardLook` — the per-SKU override + legacy card-style shape for content cards
|
|
3
|
+
* (`product_recommendation` + `carousel_cards`).
|
|
4
|
+
*
|
|
5
|
+
* Two roles, both consumed by the card-template interpreter (`card-template.ts`):
|
|
6
|
+
* - LEGACY GLOBAL theme: `interactive_config.card_style` on pre-template
|
|
7
|
+
* campaigns is adapted into a `CardTemplate` (`resolveGlobalTemplate`).
|
|
8
|
+
* - PER-SKU override: each card's `style` (stamped by the cell-plane hydrator
|
|
9
|
+
* from `card_overrides[sku]`, or authored on a manual card) is overlaid on
|
|
10
|
+
* the resolved template (`applyPerCardOverride`).
|
|
11
|
+
*
|
|
12
|
+
* The render LAYOUT now lives in `card_template`; `CardLook` carries only the
|
|
13
|
+
* recolour/visibility knobs. All fields optional — absent fields fall back to
|
|
14
|
+
* the template defaults, so existing campaigns render unchanged.
|
|
15
|
+
*/
|
|
16
|
+
export type CardLook = {
|
|
17
|
+
accent?: string;
|
|
18
|
+
background?: string;
|
|
19
|
+
border_color?: string;
|
|
20
|
+
radius?: string | number;
|
|
21
|
+
badge?: string;
|
|
22
|
+
badge_color?: string;
|
|
23
|
+
hide_price?: boolean;
|
|
24
|
+
hide_cta?: boolean;
|
|
25
|
+
hide_rating?: boolean;
|
|
26
|
+
cta_text?: string;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=card-style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-style.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/card-style.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { CardLook } from './card-style';
|
|
2
|
+
import type { RenderContext } from './types';
|
|
3
|
+
export type CardElementType = 'image' | 'badge' | 'price' | 'title' | 'subtitle' | 'rating' | 'category' | 'cta' | 'icon' | 'text' | 'spacer' | 'progress' | 'group';
|
|
4
|
+
export interface CardElement {
|
|
5
|
+
type: CardElementType;
|
|
6
|
+
/** Per-element telemetry/heatmap key (reserved contract field — Part I.C). */
|
|
7
|
+
id?: string;
|
|
8
|
+
/** image: aspect ratio of the media box. */
|
|
9
|
+
aspect?: '1/1' | '4/3' | '16/9';
|
|
10
|
+
/** image/frame: corner radius (px). */
|
|
11
|
+
radius?: number;
|
|
12
|
+
/** price: 'pill' (filled chip) | 'plain'. cta: 'fill' | 'outline'. */
|
|
13
|
+
variant?: string;
|
|
14
|
+
/** price pill / badge background colour. text/icon: foreground colour. */
|
|
15
|
+
color?: string;
|
|
16
|
+
/** title/subtitle/text: max lines before clamp. */
|
|
17
|
+
lines?: number;
|
|
18
|
+
/** badge / cta: static label. */
|
|
19
|
+
text?: string;
|
|
20
|
+
/** cta: render overlaid on the image's bottom-right instead of in flow. */
|
|
21
|
+
overlay?: boolean;
|
|
22
|
+
/** icon: lucide glyph name from the SDK's curated set (lucide-svg.ts). */
|
|
23
|
+
icon_name?: string;
|
|
24
|
+
/** icon/text: relative scale. */
|
|
25
|
+
size?: 'sm' | 'md' | 'lg';
|
|
26
|
+
/** icon: render inside a tinted circle. */
|
|
27
|
+
bubble?: boolean;
|
|
28
|
+
/** text: content, supports fail-soft {token} interpolation. */
|
|
29
|
+
content?: string;
|
|
30
|
+
/** text: font weight. */
|
|
31
|
+
weight?: 'regular' | 'medium' | 'semibold' | 'bold';
|
|
32
|
+
/** text: horizontal alignment. */
|
|
33
|
+
align?: 'left' | 'center' | 'right';
|
|
34
|
+
goal_type?: 'cart_total' | 'items_in_cart' | 'loyalty_points' | 'referrals';
|
|
35
|
+
threshold?: number;
|
|
36
|
+
threshold_source?: 'fixed' | 'free_delivery_setting';
|
|
37
|
+
reward_text?: string;
|
|
38
|
+
/** progress: bar fill colour (defaults to accent). */
|
|
39
|
+
fill?: string;
|
|
40
|
+
show_pct?: boolean;
|
|
41
|
+
currency_symbol?: string;
|
|
42
|
+
height?: number;
|
|
43
|
+
/** group: nested layout + children. */
|
|
44
|
+
layout?: 'stack' | 'row';
|
|
45
|
+
gap?: number;
|
|
46
|
+
elements?: CardElement[];
|
|
47
|
+
}
|
|
48
|
+
export interface CardFrame {
|
|
49
|
+
bg?: string;
|
|
50
|
+
border?: string;
|
|
51
|
+
radius?: number | string;
|
|
52
|
+
/** null/absent ⇒ fall back to --aegis-brand-accent (tenant brand). */
|
|
53
|
+
accent?: string | null;
|
|
54
|
+
/** 'stack' (default, column) | 'row' | 'grid'. */
|
|
55
|
+
layout?: 'stack' | 'row' | 'grid';
|
|
56
|
+
/** grid: column count. */
|
|
57
|
+
columns?: number;
|
|
58
|
+
/** flex/grid gap (px). */
|
|
59
|
+
gap?: number;
|
|
60
|
+
/** explicit width (px or CSS). Default: container-driven (responsive). */
|
|
61
|
+
width?: number | string;
|
|
62
|
+
min_width?: number;
|
|
63
|
+
max_width?: number;
|
|
64
|
+
}
|
|
65
|
+
export interface CardTemplate {
|
|
66
|
+
id?: string;
|
|
67
|
+
name?: string;
|
|
68
|
+
/** (Phase B) library template this spec was cloned from — usage count only. */
|
|
69
|
+
source_id?: string;
|
|
70
|
+
frame?: CardFrame;
|
|
71
|
+
elements?: CardElement[];
|
|
72
|
+
}
|
|
73
|
+
/** Card payload shape shared by both renderers (super-set). */
|
|
74
|
+
export interface TemplateCard {
|
|
75
|
+
image_url?: string;
|
|
76
|
+
video_url?: string;
|
|
77
|
+
title?: string;
|
|
78
|
+
body?: string;
|
|
79
|
+
cta_text?: string;
|
|
80
|
+
cta_url?: string;
|
|
81
|
+
metadata?: Record<string, unknown>;
|
|
82
|
+
/** Per-card CardLook override (global card_style merged with card_overrides[sku]). */
|
|
83
|
+
style?: CardLook;
|
|
84
|
+
}
|
|
85
|
+
/** The built-in "Clean" layout — the runtime default when a campaign carries no
|
|
86
|
+
* `card_template` and no legacy `card_style`. Mirrors the web gallery's Clean. */
|
|
87
|
+
export declare const DEFAULT_CARD_TEMPLATE: CardTemplate;
|
|
88
|
+
/** Resolve the campaign-global template (template → legacy card_style → default). */
|
|
89
|
+
export declare function resolveGlobalTemplate(ic: Record<string, unknown>): CardTemplate;
|
|
90
|
+
/**
|
|
91
|
+
* Render one card tile from the resolved template. Shared by every card surface.
|
|
92
|
+
*
|
|
93
|
+
* `action` decides the CTA + body-click behaviour (decoupled from sizing, which
|
|
94
|
+
* follows `layout`):
|
|
95
|
+
* 'cart' → CTA dispatches `aegis:add-to-cart`, body click dispatches
|
|
96
|
+
* `aegis:open-product` (storefront recommendation RAIL).
|
|
97
|
+
* 'navigate' → CTA + body click navigate `cta_url` (overlay sheet + the
|
|
98
|
+
* merchandising carousel).
|
|
99
|
+
*/
|
|
100
|
+
export declare function renderCardFromTemplate(card: TemplateCard, opts: {
|
|
101
|
+
template: CardTemplate;
|
|
102
|
+
ctx: RenderContext;
|
|
103
|
+
action: 'cart' | 'navigate';
|
|
104
|
+
layout?: string;
|
|
105
|
+
layoutAccent: string;
|
|
106
|
+
}): HTMLElement;
|
|
107
|
+
//# sourceMappingURL=card-template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-template.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/card-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel-cards.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/carousel-cards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"carousel-cards.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/carousel-cards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAS7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CA+M5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"games.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/games.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"games.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/games.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoI7C,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CA2BrD;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAsBxD;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAiBxD;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAwB3D;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAgB1D;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAoBtD;AAgCD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAyJxD;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAuDzD;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CA8BzD;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAsBxD;AAoFD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CA2F1D;AAiBD,eAAO,MAAM,cAAc,UAA8B,CAAC;AAE1D,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKvE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hero / banner renderer — the storefront hero, now a SELF-DESCRIBING in-app
|
|
3
|
+
* campaign instead of a per-surface native component. The SDK injects it into a
|
|
4
|
+
* plain `[data-aegis-slot="hero"]` so the SAME campaign renders identically on
|
|
5
|
+
* ACS, a 3rd-party website, the Bill page, etc. (ACS is the testbed.)
|
|
6
|
+
*
|
|
7
|
+
* Data shape (`interactive_config`):
|
|
8
|
+
* cards: Array<{ media_url|image_url, media_type, headline|title,
|
|
9
|
+
* subhead|body, cta_label|cta_text, cta_target|cta_url,
|
|
10
|
+
* image_url_mobile? }>
|
|
11
|
+
* chrome: { variant, aspect_ratio, radius, overlay, text_position,
|
|
12
|
+
* cta_style, autoplay_ms, loop, accent } // how it DRAWS
|
|
13
|
+
*
|
|
14
|
+
* `chrome` is the portable "look" so the operator authors once and it renders
|
|
15
|
+
* surface-framed everywhere. Ported from the cashier-portal <HeroBanner> visual.
|
|
16
|
+
*/
|
|
17
|
+
import type { RenderContext } from './types';
|
|
18
|
+
/**
|
|
19
|
+
* Render the hero into `target` (the slot element). Returns false (no-op) when
|
|
20
|
+
* there are no cards so the caller can keep the slot's SSR default/skeleton.
|
|
21
|
+
*/
|
|
22
|
+
export declare function renderHeroInline(ctx: RenderContext, target: HTMLElement): boolean;
|
|
23
|
+
//# sourceMappingURL=hero.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/hero.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA2D7C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CA0JjF"}
|
|
@@ -8,10 +8,13 @@ export { renderCarouselCards } from './carousel-cards';
|
|
|
8
8
|
export { renderStickyBar } from './sticky-bar';
|
|
9
9
|
export { renderProgressBar, renderProgressBarInline } from './progress-bar';
|
|
10
10
|
export { renderCoachmarkTour } from './coachmark-tour';
|
|
11
|
-
export { renderProductRecommendation } from './product-recommendation';
|
|
11
|
+
export { renderProductRecommendation, renderProductRecommendationInline, } from './product-recommendation';
|
|
12
|
+
export { type CardLook } from './card-style';
|
|
13
|
+
export { renderCardFromTemplate, resolveGlobalTemplate, DEFAULT_CARD_TEMPLATE, type CardTemplate, type CardElement, type CardFrame, type TemplateCard, } from './card-template';
|
|
12
14
|
export { renderStories, renderStoriesRings } from './stories';
|
|
13
15
|
export { renderGame, GAME_SUB_TYPES } from './games';
|
|
14
16
|
export { renderVideo, renderVideoInline } from './video';
|
|
17
|
+
export { renderHeroInline } from './hero';
|
|
15
18
|
export { renderActiveWebChat, disposeActiveWebChat } from './active-web-chat';
|
|
16
19
|
export type { ActiveWebChatCredentials } from './active-web-chat';
|
|
17
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -5,9 +5,12 @@
|
|
|
5
5
|
* time — the preload contract is that the recommended products are
|
|
6
6
|
* already in the bundle.
|
|
7
7
|
*
|
|
8
|
-
* The
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* The card TILE itself is painted by the shared card-template interpreter
|
|
9
|
+
* (`renderCardFromTemplate`) — the SAME path used by the inline rail and the
|
|
10
|
+
* carousel — so the look is authored in compose (`interactive_config.card_template`)
|
|
11
|
+
* and the SDK carries no per-surface card layout. This module owns only the
|
|
12
|
+
* SHELL: the overlay sheet vs the inline rail, the header, grid/row layout,
|
|
13
|
+
* scroll affordance and dismiss.
|
|
11
14
|
*
|
|
12
15
|
* interactive_config:
|
|
13
16
|
* rec_source?: 'similar_items' | 'also_viewed' | 'also_purchased' | 'trending'
|
|
@@ -15,9 +18,20 @@
|
|
|
15
18
|
* (metadata only — the actual product list is in `cards[]`)
|
|
16
19
|
* rec_count?: number (display hint; rendering is driven by cards.length)
|
|
17
20
|
* rec_layout?: 'grid' | 'row' default 'grid'
|
|
18
|
-
* rec_cta_text?: string default
|
|
19
|
-
*
|
|
21
|
+
* rec_cta_text?: string default CTA label (also carried per-card on cta_text)
|
|
22
|
+
* card_template?: CardTemplate (the declarative card look; legacy card_style adapted)
|
|
23
|
+
* cards: Array<{ image_url?, title?, body?, cta_url?, metadata?, style? }>
|
|
20
24
|
*/
|
|
21
25
|
import type { RenderContext } from './types';
|
|
22
26
|
export declare function renderProductRecommendation(ctx: RenderContext): void;
|
|
27
|
+
/**
|
|
28
|
+
* Inline (embedded_card) variant — renders the recommendation rail INTO a
|
|
29
|
+
* host `[data-aegis-slot]` element instead of a fixed overlay sheet. This is
|
|
30
|
+
* the "You might also like" rail on the PDP / storefront commerce slot.
|
|
31
|
+
*
|
|
32
|
+
* Returns `true` when a rail was painted, `false` when there are no products
|
|
33
|
+
* (so the caller can avoid firing an impression for an empty slot). The slot
|
|
34
|
+
* collapses to nothing when empty — no orphaned heading.
|
|
35
|
+
*/
|
|
36
|
+
export declare function renderProductRecommendationInline(ctx: RenderContext, target: HTMLElement): boolean;
|
|
23
37
|
//# sourceMappingURL=product-recommendation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-recommendation.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/product-recommendation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"product-recommendation.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/product-recommendation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAW7C,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAgHpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,WAAW,GAClB,OAAO,CA8FT"}
|