@active-reach/web-sdk 1.22.0 → 1.26.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.min.js +1 -1
- package/dist/aegis.min.js.map +1 -1
- package/dist/chat/AegisChat.d.ts +6 -0
- package/dist/chat/AegisChat.d.ts.map +1 -1
- package/dist/inapp/AegisInAppManager.d.ts +37 -57
- package/dist/inapp/AegisInAppManager.d.ts.map +1 -1
- package/dist/inapp/eval-throttle.d.ts +33 -0
- package/dist/inapp/eval-throttle.d.ts.map +1 -0
- package/dist/inapp/renderers/active-web-chat.d.ts.map +1 -1
- package/dist/inapp/renderers/card-template.d.ts +42 -1
- package/dist/inapp/renderers/card-template.d.ts.map +1 -1
- 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/interactive-contract.d.ts +40 -0
- package/dist/inapp/renderers/interactive-contract.d.ts.map +1 -0
- package/dist/inapp/renderers/progress-bar.d.ts.map +1 -1
- package/dist/inapp/renderers/progress-core.d.ts +80 -0
- package/dist/inapp/renderers/progress-core.d.ts.map +1 -0
- package/dist/index.js +664 -692
- package/dist/index.js.map +1 -1
- package/dist/runtime/AegisMessageRuntime.d.ts +1 -1
- package/dist/runtime/AegisMessageRuntime.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/chat/AegisChat.d.ts
CHANGED
|
@@ -43,6 +43,11 @@ export interface AegisChatConfig {
|
|
|
43
43
|
logoUrl?: string;
|
|
44
44
|
/** Corner the launcher docks to. */
|
|
45
45
|
position?: 'bottom-right' | 'bottom-left';
|
|
46
|
+
/** Surface style for the accent-filled chrome — the header AND the customer's
|
|
47
|
+
* sent message bubbles. 'solid' (default) = full accent fill + white text.
|
|
48
|
+
* 'tinted' = a soft accent wash over white + dark text (matches the
|
|
49
|
+
* storefront's tinted header band). Campaign-driven (`interactive_config.chat_theme`). */
|
|
50
|
+
surfaceStyle?: 'solid' | 'tinted';
|
|
46
51
|
/** Chat agent persona key bound to this launcher (campaign-driven). Sent to
|
|
47
52
|
* the backend on /v1/chat/message; honored server-side (Active Web Chat
|
|
48
53
|
* Phase E). Absent = the tenant's default persona. */
|
|
@@ -80,6 +85,7 @@ export declare class AegisChat {
|
|
|
80
85
|
private readonly icon;
|
|
81
86
|
private readonly logoUrl?;
|
|
82
87
|
private readonly position;
|
|
88
|
+
private readonly surfaceStyle;
|
|
83
89
|
private readonly displayMode;
|
|
84
90
|
private readonly agentPersona?;
|
|
85
91
|
private readonly quickReplies?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AegisChat.d.ts","sourceRoot":"","sources":["../../src/chat/AegisChat.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AegisChat.d.ts","sourceRoot":"","sources":["../../src/chat/AegisChat.ts"],"names":[],"mappings":"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"}
|
|
@@ -312,6 +312,15 @@ export declare class AegisInAppManager {
|
|
|
312
312
|
private processABAssignments;
|
|
313
313
|
private getVariantId;
|
|
314
314
|
private tryDisplayNextCampaign;
|
|
315
|
+
/** Persistent launchers (active_web_chat) mount AMBIENTLY on every arm — a
|
|
316
|
+
* single always-on entry point, NOT an interruption, so they must not
|
|
317
|
+
* compete in the one-at-a-time overlay queue (tryDisplayNextCampaign).
|
|
318
|
+
* Idempotent: renderActiveWebChatLauncher no-ops once a launcher is live and
|
|
319
|
+
* displayedCampaigns guards re-display. Before this, the launcher only
|
|
320
|
+
* mounted when it happened to be the single campaign tryDisplayNextCampaign
|
|
321
|
+
* picked — so aegis.chat.open() / the mobile "Ask" tab silently did nothing
|
|
322
|
+
* whenever another non-triggered campaign was armed first. */
|
|
323
|
+
private mountPersistentLaunchers;
|
|
315
324
|
private filledSlots;
|
|
316
325
|
private slotSignatures;
|
|
317
326
|
private slotTimers;
|
|
@@ -406,20 +415,27 @@ export declare class AegisInAppManager {
|
|
|
406
415
|
* skip — those types only make sense as fullscreen overlays.
|
|
407
416
|
*/
|
|
408
417
|
private renderCampaignIntoSlot;
|
|
409
|
-
/**
|
|
410
|
-
* Slot-mode wrappers. They build a small card container (no overlay
|
|
411
|
-
* positioning, no close button) and append the SHARED body element
|
|
412
|
-
* the overlay path also uses. Body construction lives in the
|
|
413
|
-
* `_buildXxxBody` helpers below so visual output stays identical
|
|
414
|
-
* between overlay and slot modes — adding a renderer feature in
|
|
415
|
-
* one place updates both.
|
|
416
|
-
*/
|
|
417
|
-
private renderStarRatingSlot;
|
|
418
|
-
private renderNPSSurveySlot;
|
|
419
418
|
/** §7.13.H — generic embedded card: image / title / body / coupon chip / CTA.
|
|
420
419
|
* The catch-all for banner + nudge sub_types (birthday, referral, app-install,
|
|
421
420
|
* win-back, etc.) so EVERY gallery nudge renders on the bill (previously only
|
|
422
421
|
* star_rating / nps_survey / form were handled → nudges never appeared). */
|
|
422
|
+
/**
|
|
423
|
+
* Whether `interactive_config` carries a composed `card_template` (non-empty
|
|
424
|
+
* `elements[]`). The ONE detector shared by all three composed-card cutover
|
|
425
|
+
* gates — inline slot, chrome overlay, and the P6 survey-overlay cutover — so
|
|
426
|
+
* they can't drift (the inline gate previously omitted the non-empty check).
|
|
427
|
+
*/
|
|
428
|
+
private _hasComposedTemplate;
|
|
429
|
+
/**
|
|
430
|
+
* P6.full — flat survey → card_template adapter. A `nps_survey` / `star_rating`
|
|
431
|
+
* / `quick_poll` authored WITHOUT a card_template gets one synthesised in place
|
|
432
|
+
* (carrying its follow-up config), so the EXISTING composed-template gates route
|
|
433
|
+
* it through the ONE card-template engine + the shared element builders (with
|
|
434
|
+
* the ported reason-capture/thank-you flows) — overlay AND slot. Back-compat:
|
|
435
|
+
* the field names + follow-up defaults match the retired bespoke renderers.
|
|
436
|
+
* No-op when a template already exists or the type isn't a single-card survey.
|
|
437
|
+
*/
|
|
438
|
+
private _ensureSurveyTemplate;
|
|
423
439
|
/**
|
|
424
440
|
* Composed single card — renders a campaign's top-level `card_template`
|
|
425
441
|
* (frame + elements: icon/text/progress/image/cta/group/…) through the generic
|
|
@@ -428,6 +444,17 @@ export declare class AegisInAppManager {
|
|
|
428
444
|
* render here from declarative JSON, on ACS / custom / third-party sites.
|
|
429
445
|
*/
|
|
430
446
|
private renderComposedCardSlot;
|
|
447
|
+
/**
|
|
448
|
+
* C2 — composed card body in an OVERLAY (modal / banner / full_screen /
|
|
449
|
+
* half_interstitial). The overlay counterpart to `renderComposedCardSlot`: it
|
|
450
|
+
* builds the same `TemplateCard` from the campaign's canonical fields and paints
|
|
451
|
+
* it with the generic `renderCardFromTemplate` engine, then wraps it in the
|
|
452
|
+
* standard overlay chrome (close button + size scaling) so a composed card looks
|
|
453
|
+
* identical whether overlaid or slotted. Only invoked when a `card_template` is
|
|
454
|
+
* present (see displayCampaign) — flat campaigns never reach here.
|
|
455
|
+
* See IN_APP_FORMAT_LOCK_AND_COMPOSABLE_CARDS_TRACKER.md (Part B / C2).
|
|
456
|
+
*/
|
|
457
|
+
private renderComposedCardOverlay;
|
|
431
458
|
private renderGenericCardSlot;
|
|
432
459
|
/**
|
|
433
460
|
* §7.13.I — embedded profile FORM. Renders one input per `form_fields` entry
|
|
@@ -457,17 +484,6 @@ export declare class AegisInAppManager {
|
|
|
457
484
|
* segments, and the wheel animates to that segment + reveals the prize/coupon.
|
|
458
485
|
*/
|
|
459
486
|
private renderSpinWheelSlot;
|
|
460
|
-
/** Built-in embedded QUICK POLL — option buttons submit the chosen index. */
|
|
461
|
-
private renderQuickPollSlot;
|
|
462
|
-
/** Pull a poll vote distribution out of the server response, if present.
|
|
463
|
-
* Accepts `results`/`distribution`/`tallies` as a number[] aligned to the
|
|
464
|
-
* option order. Returns null when the server didn't surface tallies (then
|
|
465
|
-
* we only confirm the chosen option — never fabricate percentages). */
|
|
466
|
-
private _readPollDistribution;
|
|
467
|
-
/** Animate result bars on the poll options. With a real `dist` it renders
|
|
468
|
-
* each option's share; without one it just fills the selected option 100%
|
|
469
|
-
* as a "vote locked in" confirmation. */
|
|
470
|
-
private _paintPollResult;
|
|
471
487
|
/**
|
|
472
488
|
* Built-in embedded IMAGE/VIDEO CAROUSEL — a swipeable horizontal strip of
|
|
473
489
|
* `interactive_config.cards` (image OR video + title + body + CTA), contained
|
|
@@ -492,13 +508,6 @@ export declare class AegisInAppManager {
|
|
|
492
508
|
private _extractPrizeLabel;
|
|
493
509
|
/** Extract a redeemable coupon code from a spin/scratch server response. */
|
|
494
510
|
private _extractCouponCode;
|
|
495
|
-
/**
|
|
496
|
-
* Token-bound submission helper. POSTs the structured response to
|
|
497
|
-
* the per-token submit URL the page handler embedded. Best-effort
|
|
498
|
-
* — failure is logged but doesn't throw (the customer already
|
|
499
|
-
* clicked; we can't undo their interaction).
|
|
500
|
-
*/
|
|
501
|
-
private _submitTokenResponse;
|
|
502
511
|
/**
|
|
503
512
|
* Slot styling — the operator's look-&-feel knobs (Style panel) applied to the
|
|
504
513
|
* EMBEDDED render, CLAMPED to boundary-safe ranges so an authored value can
|
|
@@ -517,32 +526,6 @@ export declare class AegisInAppManager {
|
|
|
517
526
|
* `[data-campaign-id]` card inside `container` (or the container itself).
|
|
518
527
|
*/
|
|
519
528
|
private _flattenSlotCard;
|
|
520
|
-
private _appendHeaderImage;
|
|
521
|
-
private _buildStarRatingBody;
|
|
522
|
-
/**
|
|
523
|
-
* Post-rating flow — the Reelo/Plotline "smart rating" gate. A happy rater
|
|
524
|
-
* (>= threshold) is invited to leave a PUBLIC review; an unhappy one is given
|
|
525
|
-
* a PRIVATE "what went wrong?" comment box so the complaint is captured for
|
|
526
|
-
* the operator instead of landing on a public platform. Exactly ONE response
|
|
527
|
-
* row is written per rating (deferred on the low path until Send/Skip) so the
|
|
528
|
-
* star distribution isn't double-counted.
|
|
529
|
-
*/
|
|
530
|
-
private _onStarRatingPicked;
|
|
531
|
-
/** Thank-you takeover; happy raters also get a public-review CTA when authored. */
|
|
532
|
-
private _renderRatingThankYou;
|
|
533
|
-
/** Unhappy-path private comment capture; submits {stars, comment} once. */
|
|
534
|
-
private _renderRatingLowFollowup;
|
|
535
|
-
private _buildNPSSurveyBody;
|
|
536
|
-
/**
|
|
537
|
-
* NPS reason-capture step (overlay). Wires the per-band `nps_follow_up_*`
|
|
538
|
-
* prompt (promoter / passive / detractor) as the heading and captures an
|
|
539
|
-
* open-text reason (+ optional quick-pick chips). Submits {score, comment}
|
|
540
|
-
* exactly ONCE (deferred from the pick), then shows the thank-you (promoters
|
|
541
|
-
* get an optional review/referral CTA).
|
|
542
|
-
*/
|
|
543
|
-
private _renderNpsReasonFollowup;
|
|
544
|
-
/** NPS thank-you takeover; promoters get an optional review/referral CTA. */
|
|
545
|
-
private _renderNpsThankYou;
|
|
546
529
|
/**
|
|
547
530
|
* Evaluate the currently armed campaigns against a client-side event
|
|
548
531
|
* and render any that match their `client_trigger`.
|
|
@@ -614,10 +597,7 @@ export declare class AegisInAppManager {
|
|
|
614
597
|
/** Embedded-slot custom HTML (e.g. on the bill) — the same sandboxed frame in
|
|
615
598
|
* a slot card instead of an overlay. */
|
|
616
599
|
private renderCustomHtmlSlot;
|
|
617
|
-
private renderNPSSurvey;
|
|
618
600
|
private renderCountdownOffer;
|
|
619
|
-
private renderStarRating;
|
|
620
|
-
private renderQuickPoll;
|
|
621
601
|
/**
|
|
622
602
|
* Multi-step form (SDK Demo v4 W1b) — in-app render type matching the
|
|
623
603
|
* Plotline multi-step flow pattern: a progress bar + per-step question with
|
|
@@ -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,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evaluation Throttle — the formalized layer that separates STATE UPDATES (must
|
|
3
|
+
* be immediate, for smooth UI) from RULE EVALUATION (must be bounded, to protect
|
|
4
|
+
* the main thread under high-frequency mutation bursts like a flash sale).
|
|
5
|
+
*
|
|
6
|
+
* Architecture: docs/architecture/INTERACTIVE_WIDGET_UNIFICATION.md §16.1.
|
|
7
|
+
*
|
|
8
|
+
* The SDK already debounces the network refresh (AegisInAppManager
|
|
9
|
+
* `refreshDebounceTimer`, 300ms) and budgets per-session interruptions
|
|
10
|
+
* (IntentRuleEvaluator). This primitive is the canonical, reusable throttle for
|
|
11
|
+
* any client-side re-evaluation triggered by rapid data-bound state changes
|
|
12
|
+
* (cart / loyalty mutations driving progress + the 8 earn mechanics): update the
|
|
13
|
+
* local model synchronously, then schedule the heavy evaluation through here so
|
|
14
|
+
* it runs at most once per `minIntervalMs`, preferring an idle window.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* const evalThrottle = createEvalThrottle(() => this.reEvaluateArmedCampaigns());
|
|
18
|
+
* setCartState(s) { this.cart = s; evalThrottle.schedule(); } // model now, eval bounded
|
|
19
|
+
*/
|
|
20
|
+
export interface EvalThrottle {
|
|
21
|
+
/** Request an evaluation; coalesces bursts to ≤1 run per minIntervalMs. */
|
|
22
|
+
schedule(): void;
|
|
23
|
+
/** Cancel a pending run (e.g. on teardown). */
|
|
24
|
+
cancel(): void;
|
|
25
|
+
}
|
|
26
|
+
export interface EvalThrottleOptions {
|
|
27
|
+
/** Floor between evaluations during a burst. Default 500ms (§16.1). */
|
|
28
|
+
minIntervalMs?: number;
|
|
29
|
+
/** Prefer requestIdleCallback when available (yields to input/paint). */
|
|
30
|
+
preferIdle?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare function createEvalThrottle(run: () => void, opts?: EvalThrottleOptions): EvalThrottle;
|
|
33
|
+
//# sourceMappingURL=eval-throttle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval-throttle.d.ts","sourceRoot":"","sources":["../../src/inapp/eval-throttle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,QAAQ,IAAI,IAAI,CAAC;IACjB,+CAA+C;IAC/C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAOD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,GAAE,mBAAwB,GAAG,YAAY,CA0ChG"}
|
|
@@ -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;
|
|
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;AA2BD;;;;;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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CardLook } from './card-style';
|
|
2
2
|
import type { RenderContext } from './types';
|
|
3
|
-
export type CardElementType = 'image' | 'badge' | 'price' | 'title' | 'subtitle' | 'rating' | 'category' | 'cta' | 'icon' | 'text' | 'spacer' | 'progress' | 'group';
|
|
3
|
+
export type CardElementType = 'image' | 'badge' | 'price' | 'title' | 'subtitle' | 'rating' | 'category' | 'cta' | 'icon' | 'text' | 'spacer' | 'progress' | 'countdown' | 'rating_input' | 'poll' | 'nps' | 'group';
|
|
4
4
|
export interface CardElement {
|
|
5
5
|
type: CardElementType;
|
|
6
6
|
/** Per-element telemetry/heatmap key (reserved contract field — Part I.C). */
|
|
@@ -39,6 +39,44 @@ export interface CardElement {
|
|
|
39
39
|
fill?: string;
|
|
40
40
|
show_pct?: boolean;
|
|
41
41
|
currency_symbol?: string;
|
|
42
|
+
/** progress: fire the shared celebrate reaction (Lottie + confetti) the first
|
|
43
|
+
* time the goal is reached. Defaults ON — set false to keep it quiet. */
|
|
44
|
+
celebrate_on_complete?: boolean;
|
|
45
|
+
/** ISO-8601 target the timer counts down to. Auto-hides if absent/invalid
|
|
46
|
+
* (bounded-vocabulary rule — never fabricate a fake countdown). */
|
|
47
|
+
countdown_target?: string;
|
|
48
|
+
/** Lead-in label before the time (default "Ends in"). */
|
|
49
|
+
countdown_label?: string;
|
|
50
|
+
/** rating_input: number of stars (2–10, default 5). Records 'star_rating'. */
|
|
51
|
+
rating_scale?: number;
|
|
52
|
+
/** poll: single-choice options (≥2 to render; records 'quick_poll'). The
|
|
53
|
+
* prompt/question reuses `content`. Auto-hides with fewer than 2 options. */
|
|
54
|
+
poll_options?: string[];
|
|
55
|
+
/** rating_input / poll: confirmation note shown AFTER the customer responds
|
|
56
|
+
* (the "thank-you" state). Blank → a sensible default. Operator-controlled
|
|
57
|
+
* post-response acknowledgement. */
|
|
58
|
+
thanks_text?: string;
|
|
59
|
+
/** nps: enable the band-conditional reason-capture step after the score. */
|
|
60
|
+
nps_followup_enabled?: boolean;
|
|
61
|
+
/** nps: per-band reason prompts (fallbacks applied when blank). */
|
|
62
|
+
nps_follow_up_promoter?: string;
|
|
63
|
+
nps_follow_up_passive?: string;
|
|
64
|
+
nps_follow_up_detractor?: string;
|
|
65
|
+
/** nps: quick-pick chips that fill the reason textarea. */
|
|
66
|
+
nps_reason_chips?: string[];
|
|
67
|
+
/** nps: score at/above which the contact is a promoter (default 9). */
|
|
68
|
+
nps_promoter_threshold?: number;
|
|
69
|
+
/** nps: promoter-only review/referral CTA shown on the thank-you takeover. */
|
|
70
|
+
nps_promoter_url?: string;
|
|
71
|
+
nps_promoter_cta?: string;
|
|
72
|
+
/** rating_input: enable the low-score reason-capture step. */
|
|
73
|
+
rating_followup_enabled?: boolean;
|
|
74
|
+
/** rating_input: stars at/below which the low-score follow-up fires (default ceil(80%)). */
|
|
75
|
+
rating_followup_threshold?: number;
|
|
76
|
+
rating_followup_prompt?: string;
|
|
77
|
+
/** rating_input: high-score review/referral CTA. */
|
|
78
|
+
rating_high_url?: string;
|
|
79
|
+
rating_high_cta?: string;
|
|
42
80
|
height?: number;
|
|
43
81
|
/** group: nested layout + children. */
|
|
44
82
|
layout?: 'stack' | 'row';
|
|
@@ -61,6 +99,9 @@ export interface CardFrame {
|
|
|
61
99
|
width?: number | string;
|
|
62
100
|
min_width?: number;
|
|
63
101
|
max_width?: number;
|
|
102
|
+
/** explicit height (px). Default: content-driven (fits its elements). */
|
|
103
|
+
height?: number;
|
|
104
|
+
min_height?: number;
|
|
64
105
|
}
|
|
65
106
|
export interface CardTemplate {
|
|
66
107
|
id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-template.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/card-template.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
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;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAS7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,
|
|
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,CAsN5D"}
|
|
@@ -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;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA2I7C,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,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive widget contract — Zod-FREE mirror of the canonical registry in
|
|
3
|
+
* `@aegis/shared-types/src/interactive-registry.ts` (Layer 1, SDUI unification).
|
|
4
|
+
*
|
|
5
|
+
* The web-SDK is a standalone, ZERO-dependency published package: it must NOT
|
|
6
|
+
* import `zod`. The SDK only needs the contract TYPES + the response-type / band
|
|
7
|
+
* constants to emit conforming payloads (validation runs author-time in the
|
|
8
|
+
* editor and ingest-time in the backend, both against the Zod registry).
|
|
9
|
+
*
|
|
10
|
+
* The region between the sync sentinels below is kept identical to the contract
|
|
11
|
+
* tokens of the Zod registry by `scripts/check-interactive-contract-sync.mjs`
|
|
12
|
+
* (wired into `npm run lint`). Edit the registry → edit here, or the build fails.
|
|
13
|
+
*/
|
|
14
|
+
export type InteractiveWidgetType = 'progress' | 'rating' | 'poll' | 'nps' | 'countdown';
|
|
15
|
+
export type WidgetCapability = 'followup' | 'bands' | 'data_bound' | 'celebrate' | 'thanks';
|
|
16
|
+
export type NpsBand = 'detractor' | 'passive' | 'promoter';
|
|
17
|
+
export interface RatingPayload {
|
|
18
|
+
stars: number;
|
|
19
|
+
feedback_text?: string;
|
|
20
|
+
properties?: Record<string, string | number | boolean>;
|
|
21
|
+
}
|
|
22
|
+
export interface PollPayload {
|
|
23
|
+
option_index: number;
|
|
24
|
+
option_label: string;
|
|
25
|
+
properties?: Record<string, string | number | boolean>;
|
|
26
|
+
}
|
|
27
|
+
export interface NpsPayload {
|
|
28
|
+
score: number;
|
|
29
|
+
band?: NpsBand;
|
|
30
|
+
reason_text?: string;
|
|
31
|
+
properties?: Record<string, string | number | boolean>;
|
|
32
|
+
}
|
|
33
|
+
export declare const RESPONSE_TYPE: {
|
|
34
|
+
readonly rating: "rating";
|
|
35
|
+
readonly poll: "poll";
|
|
36
|
+
readonly nps: "nps";
|
|
37
|
+
};
|
|
38
|
+
/** Derive the NPS band from a score (mirror of registry npsBandFromScore). */
|
|
39
|
+
export declare function npsBandFromScore(score: number): NpsBand;
|
|
40
|
+
//# sourceMappingURL=interactive-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-contract.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/interactive-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;AACzF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAC5F,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3D,MAAM,WAAW,aAAa;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;CAAE;AAChI,MAAM,WAAW,WAAW;IAAG,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;CAAE;AACnI,MAAM,WAAW,UAAU;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;CAAE;AAE3I,eAAO,MAAM,aAAa;;;;CAA0D,CAAC;AAGrF,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAIvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-bar.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/progress-bar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"progress-bar.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/progress-bar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoO7C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAG1D;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAKxF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress-bar mechanic — the ONE computation shared by BOTH web-SDK progress
|
|
3
|
+
* renderers: the standalone `progress_bar` widget (`progress-bar.ts`) and the
|
|
4
|
+
* `progress` card element (`card-template.ts::buildProgressElement`). Before this
|
|
5
|
+
* module each renderer re-implemented the pct / completion / remaining /
|
|
6
|
+
* milestone math independently (drift waiting to happen).
|
|
7
|
+
*
|
|
8
|
+
* This is a BYTE-FOR-BYTE MIRROR of `@aegis/shared-types/src/progress.ts` (which
|
|
9
|
+
* the dashboard compose preview imports). The SDK is a standalone published
|
|
10
|
+
* package and cannot depend on the workspace `@aegis/shared-types` without
|
|
11
|
+
* leaking it into the SDK's public `.d.ts`, so the core is duplicated here and
|
|
12
|
+
* both copies are pinned to the same golden vectors (`progress-core.test.ts` +
|
|
13
|
+
* `shared-types/src/progress.test.ts`). Change one, change both, or a test fails.
|
|
14
|
+
*
|
|
15
|
+
* Pure — no DOM, no SDK context — so it's trivially testable and identical
|
|
16
|
+
* across runtime + preview.
|
|
17
|
+
*/
|
|
18
|
+
export type ProgressGoalType = 'cart_total' | 'items_in_cart' | 'loyalty_points' | 'referrals';
|
|
19
|
+
export type ProgressMilestone = 'q25' | 'q50' | 'q75' | 'unlocked';
|
|
20
|
+
export interface ProgressComputeInput {
|
|
21
|
+
goalType: ProgressGoalType;
|
|
22
|
+
threshold: number;
|
|
23
|
+
current: number;
|
|
24
|
+
}
|
|
25
|
+
export interface ProgressState {
|
|
26
|
+
pct: number;
|
|
27
|
+
complete: boolean;
|
|
28
|
+
remaining: number;
|
|
29
|
+
milestonesReached: ProgressMilestone[];
|
|
30
|
+
}
|
|
31
|
+
export declare function computeProgress(input: ProgressComputeInput): ProgressState;
|
|
32
|
+
export interface CardProgressLabelInput extends ProgressComputeInput {
|
|
33
|
+
rewardText?: string;
|
|
34
|
+
currencySymbol?: string;
|
|
35
|
+
showPct?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export declare function cardProgressSubLabel(i: CardProgressLabelInput): {
|
|
38
|
+
text: string;
|
|
39
|
+
complete: boolean;
|
|
40
|
+
};
|
|
41
|
+
export declare function readGoalFromCart(goalType: ProgressGoalType, cart: {
|
|
42
|
+
total?: number;
|
|
43
|
+
itemCount?: number;
|
|
44
|
+
} | undefined | null): number | undefined;
|
|
45
|
+
export interface CountdownState {
|
|
46
|
+
totalMs: number;
|
|
47
|
+
expired: boolean;
|
|
48
|
+
days: number;
|
|
49
|
+
hours: number;
|
|
50
|
+
minutes: number;
|
|
51
|
+
seconds: number;
|
|
52
|
+
display: string;
|
|
53
|
+
}
|
|
54
|
+
export declare function computeCountdown(targetMs: number, nowMs: number): CountdownState;
|
|
55
|
+
export interface FlowStepRecord {
|
|
56
|
+
step_id: string;
|
|
57
|
+
response_type?: string;
|
|
58
|
+
payload?: Record<string, unknown>;
|
|
59
|
+
}
|
|
60
|
+
export interface FlowAccumulator {
|
|
61
|
+
recordStep(r: FlowStepRecord): void;
|
|
62
|
+
steps(): FlowStepRecord[];
|
|
63
|
+
consolidated(): {
|
|
64
|
+
steps: FlowStepRecord[];
|
|
65
|
+
step_count: number;
|
|
66
|
+
completed: boolean;
|
|
67
|
+
};
|
|
68
|
+
markCompleted(): void;
|
|
69
|
+
}
|
|
70
|
+
export declare function createFlowAccumulator(): FlowAccumulator;
|
|
71
|
+
export type PlaybackPhase = 'idle' | 'playing' | 'paused' | 'completed';
|
|
72
|
+
export interface PlaybackState {
|
|
73
|
+
phase: PlaybackPhase;
|
|
74
|
+
pct: number;
|
|
75
|
+
positionSec: number;
|
|
76
|
+
durationSec: number;
|
|
77
|
+
reachedComplete: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare function computePlaybackState(positionSec: number, durationSec: number, phase: PlaybackPhase): PlaybackState;
|
|
80
|
+
//# sourceMappingURL=progress-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-core.d.ts","sourceRoot":"","sources":["../../../src/inapp/renderers/progress-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,WAAW,CAAC;AAEhB,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,CAAC;AAEnE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;CACxC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,aAAa,CAgB1E;AAED,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,sBAAsB,GAAG;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB,CAWA;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,GAC9D,MAAM,GAAG,SAAS,CAKpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAahF;AAOD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,KAAK,IAAI,cAAc,EAAE,CAAC;IAC1B,YAAY,IAAI;QAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACpF,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAmBvD;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AACxE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,aAAa,GACnB,aAAa,CAMf"}
|