@encorekit/web-sdk 2.2.0 → 2.2.1

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 (37) hide show
  1. package/README.md +20 -0
  2. package/dist/cjs/index.cjs +1 -1
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/esm/index.js +1 -1
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/umd/encore.min.js +1 -1
  7. package/dist/umd/encore.min.js.map +1 -1
  8. package/package.json +1 -1
  9. package/types/analytics/events.d.ts +54 -2
  10. package/types/analytics/events.d.ts.map +1 -1
  11. package/types/api/APIClient.d.ts +15 -1
  12. package/types/api/APIClient.d.ts.map +1 -1
  13. package/types/api/generated/types.d.ts +39 -1
  14. package/types/api/generated/types.d.ts.map +1 -1
  15. package/types/api/models.d.ts +7 -0
  16. package/types/api/models.d.ts.map +1 -1
  17. package/types/core/Configuration.d.ts +2 -0
  18. package/types/core/Configuration.d.ts.map +1 -1
  19. package/types/core/Encore.d.ts.map +1 -1
  20. package/types/core/giftVariant.d.ts +11 -8
  21. package/types/core/giftVariant.d.ts.map +1 -1
  22. package/types/core/share.d.ts +58 -0
  23. package/types/core/share.d.ts.map +1 -0
  24. package/types/core/version.d.ts +1 -1
  25. package/types/types.d.ts +29 -0
  26. package/types/types.d.ts.map +1 -1
  27. package/types/ui/GiftSheet.d.ts +47 -3
  28. package/types/ui/GiftSheet.d.ts.map +1 -1
  29. package/types/ui/GiftUnwrap.d.ts +70 -0
  30. package/types/ui/GiftUnwrap.d.ts.map +1 -1
  31. package/types/ui/OfferModal.d.ts +24 -0
  32. package/types/ui/OfferModal.d.ts.map +1 -1
  33. package/types/ui/giftUnwrapArt.d.ts +6 -0
  34. package/types/ui/giftUnwrapArt.d.ts.map +1 -1
  35. package/types/ui/giftUnwrapCopy.d.ts +20 -0
  36. package/types/ui/giftUnwrapCopy.d.ts.map +1 -1
  37. package/types/ui/styles.d.ts.map +1 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The `share` action: hand the link the backend minted for an offer to the user.
3
+ *
4
+ * THE LINK IS THE SERVER'S, NEVER THIS SDK'S. It arrives as `OfferModel.shareUrl` and
5
+ * is shared exactly as served. An offer without one shares nothing and reports
6
+ * `missing_share_link`; there is no fallback to the advertiser URL or to any link this
7
+ * SDK could assemble, because a client-built link is forgeable and unattributed. Same
8
+ * rule as iOS (swift#156) and Android (android#93).
9
+ *
10
+ * TWO ROUTES, in order:
11
+ * 1. `navigator.share`, the system share sheet. It resolves when the user sent the
12
+ * link and rejects when they backed out, so web, like iOS, can tell a completed
13
+ * share from a cancel. A cancel is reported as `completed=false`, never as a
14
+ * failure, and it is not always spelled `AbortError`: `NotAllowedError` and
15
+ * `InvalidStateError` count too (see `CANCEL_NAMES`).
16
+ * 2. The clipboard, where there is no share sheet (most desktop browsers) or the
17
+ * sheet rejected the data itself. The caller shows a visible confirmation; the
18
+ * completed event says `clipboard`.
19
+ * When neither takes the link the tap fails with `share_unavailable`.
20
+ *
21
+ * 🔴 CALLED INSIDE THE CLICK. `navigator.share` and, on Safari, the clipboard need
22
+ * transient user activation, so nothing may be awaited before the first call. An
23
+ * `async` function runs synchronously up to its first `await`, which is what keeps
24
+ * the `navigator.share` call inside the gesture.
25
+ *
26
+ * NEVER THROWS. Every browser call is guarded; the worst outcome is a reported failure.
27
+ */
28
+ import { type ShareDestinationValue, type ShareFailureReasonValue } from '../analytics/events';
29
+ export type ShareOutcome = {
30
+ status: 'shared';
31
+ destination: ShareDestinationValue;
32
+ } | {
33
+ status: 'cancelled';
34
+ } | {
35
+ status: 'failed';
36
+ reason: ShareFailureReasonValue;
37
+ };
38
+ /** Send `url` through the share sheet, else the clipboard. Resolves; never rejects. */
39
+ export declare function sendShareLink(url: string): Promise<ShareOutcome>;
40
+ /** Receives the three share events. Thrown errors are contained, never surfaced. */
41
+ export interface ShareReporter<C> {
42
+ tapped(ctx: C): void;
43
+ failed(ctx: C, reason: ShareFailureReasonValue): void;
44
+ completed(ctx: C, destination: ShareDestinationValue | undefined, completed: boolean): void;
45
+ }
46
+ export interface ShareAction<C> {
47
+ /**
48
+ * Share `link` for the offer `ctx` describes. Returns null, reporting nothing, when a
49
+ * share is already in flight or the action is locked: a double tap must not stack two
50
+ * share sheets or count one tap twice. Otherwise every call reports `tapped` and then
51
+ * exactly one of `completed` or `failed`, before the returned promise settles.
52
+ */
53
+ run(link: string | undefined, ctx: C): Promise<ShareOutcome> | null;
54
+ /** Refuse every later call. For a presentation that is closing after a share. */
55
+ lock(): void;
56
+ }
57
+ export declare function createShareAction<C>(reporter: ShareReporter<C>, send?: (url: string) => Promise<ShareOutcome>): ShareAction<C>;
58
+ //# sourceMappingURL=share.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/core/share.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,YAAY,GACpB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,qBAAqB,CAAA;CAAE,GACxD;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAW1D,uFAAuF;AACvF,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBtE;AAwDD,oFAAoF;AACpF,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACtD,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,qBAAqB,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7F;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IACpE,iFAAiF;IACjF,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAiB,GAC3D,WAAW,CAAC,CAAC,CAAC,CA6ChB"}
@@ -1,3 +1,3 @@
1
1
  /** SDK version — single source of truth (also kept in sync with package.json via scripts/update-version.sh) */
2
- export declare const SDK_VERSION = "2.2.0";
2
+ export declare const SDK_VERSION = "2.2.1";
3
3
  //# sourceMappingURL=version.d.ts.map
package/types/types.d.ts CHANGED
@@ -482,6 +482,35 @@ export interface EncoreConfig {
482
482
  * was honoured. Absent for everyone else.
483
483
  */
484
484
  demoVariant?: string;
485
+ /**
486
+ * Let a labelled reward placement resolve its own variant. Defaults to `false`.
487
+ *
488
+ * Encore can serve a different reward variant per placement label (for example
489
+ * one flow for `'email_code'` and another for `'email'`). The variant the SDK
490
+ * prefetches at `configure()` is chosen before any placement is known, so it
491
+ * cannot carry that choice. With this on, a `rewardUsers` presentation that has a
492
+ * placement label — `Encore.placement('email_code', { useCase: 'rewardUsers' })`,
493
+ * or `show(options, { useCase: 'rewardUsers' }, 'email_code')` — makes one
494
+ * `GET /config?useCase=post-action-reward&placementId=<label>` before the sheet
495
+ * renders and presents the variant that response names. Analytics for that
496
+ * presentation carry that variant's id.
497
+ *
498
+ * - The label is trimmed and capped at 64 characters, exactly as it is on the
499
+ * offers request and on analytics.
500
+ * - A settled answer is reused for every presentation of that label for the rest
501
+ * of the session (until `reset()`), while a failed or discarded request is
502
+ * retried on the next presentation.
503
+ * - It never blocks or breaks a presentation. If the request fails, is slow, or
504
+ * resolves nothing, the surface resolves exactly as it would with this off:
505
+ * the prefetched variant when there is one, otherwise the SDK's usual
506
+ * on-demand `/config?useCase=` fetch.
507
+ * - Paywall (`reduceChurn`) presentations and unlabelled ones are unaffected.
508
+ *
509
+ * Off, the SDK's requests are exactly what they were before the option existed.
510
+ * Only a literal `true` turns it on. Like the other options it is read from the
511
+ * first `configure()` call.
512
+ */
513
+ resolveVariantsByPlacement?: boolean;
485
514
  }
486
515
  /** Result of `show()` / `present()`. */
487
516
  export type ShowResult =
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -63,10 +63,16 @@ export interface GiftSheetOptions {
63
63
  onCommit: (index: number) => void;
64
64
  /** The pick changed: the picked offer, or null once cleared. The footer follows it. */
65
65
  onPick?: (offer: Offer | null) => void;
66
- /** The surface's impression gate. Cards are registered only while the sheet is open. */
67
- impressions: ImpressionGate;
66
+ /**
67
+ * The surface's impression gate. Cards are registered only while the sheet is open.
68
+ * Omitted, the sheet reports no impressions at all: `giftUnwrap`'s keep-for-later
69
+ * panel lists gifts the rows already reported, and the variant marks it
70
+ * `impressionProbe: none`. Registering there would spend the gate's once-per-offer
71
+ * budget on a card that must not count.
72
+ */
73
+ impressions?: ImpressionGate;
68
74
  /** The gate judged the card for `index` shown. The surface emits the impression. */
69
- onShown: (index: number) => void;
75
+ onShown?: (index: number) => void;
70
76
  /** The surface's listener lifetime; aborting it detaches every sheet listener. */
71
77
  signal: AbortSignal;
72
78
  /** The sheet's heading and group name. Defaults to `GIFT_COPY.sheetTitle` ("Other gifts"). */
@@ -92,6 +98,30 @@ export interface GiftSheetOptions {
92
98
  * passes a label that does not promise a claim.
93
99
  */
94
100
  ctaLabel?: (offer: Offer) => string;
101
+ /** A line under the heading. Newlines are kept. Absent by default. */
102
+ subtitle?: string;
103
+ /**
104
+ * What the close control AND Escape do. Defaults to closing the sheet. The
105
+ * keep-for-later panel's close is the presentation's real close, so it passes one
106
+ * that dismisses. The scrim always just closes the sheet.
107
+ */
108
+ onClose?: () => void;
109
+ /** An extra class on the layer, for a sheet styled as something else (the panel). */
110
+ layerClass?: string;
111
+ /**
112
+ * `false` never draws the category tab strip. The keep-for-later panel lists a
113
+ * handful of gifts in one row, as the native panel does, and a strip would hide the
114
+ * selection it opens on behind another tab. Defaults to the data-driven strip.
115
+ */
116
+ tabs?: boolean;
117
+ /**
118
+ * Whether the CTA is drawn for this pick. Defaults to always. The keep-for-later
119
+ * panel draws it only for a gift with a share link, as the native CTA's
120
+ * `hasOfferAttribute: shareUrl` gate does.
121
+ */
122
+ ctaFor?: (offer: Offer) => boolean;
123
+ /** Called once the sheet has closed, whatever closed it: the scrim or `close()`. */
124
+ onClosed?: () => void;
95
125
  }
96
126
  export declare class GiftSheet {
97
127
  #private;
@@ -119,7 +149,21 @@ export declare class GiftSheet {
119
149
  * categories the sheet holds; the selected tab survives when it still exists.
120
150
  */
121
151
  renderList(): void;
152
+ /**
153
+ * Pick the card for `index` from outside, as the keep-for-later panel does with the
154
+ * surface's selection so its CTA can act at once. Ignored when that card is not
155
+ * listed: the CTA must never name an offer the sheet does not show.
156
+ */
157
+ pick(index: number): void;
122
158
  open(opener?: HTMLElement): void;
159
+ /**
160
+ * Freeze the sheet while something it started finishes (the keep-for-later panel's
161
+ * wait before it closes): every card and the CTA are disabled and the scrim does
162
+ * nothing. The close control and Escape still work, as ways out. `true` restores.
163
+ */
164
+ setInteractive(interactive: boolean): void;
165
+ /** True from `open()` until `close()`: whether the sheet is up, or on its way up. */
166
+ isOpen(): boolean;
123
167
  close(): void;
124
168
  destroy(): void;
125
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GiftSheet.d.ts","sourceRoot":"","sources":["../../src/ui/GiftSheet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AAKzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAqB1E;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,GAAG,iBAAiB,EAAE,CAU3F;AAKD,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,yEAAyE;IACzE,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IAChC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACjC,uFAAuF;IACvF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,uFAAuF;IACvF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,wFAAwF;IACxF,WAAW,EAAE,cAAc,CAAC;IAC5B,oFAAoF;IACpF,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kFAAkF;IAClF,MAAM,EAAE,WAAW,CAAC;IACpB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACrD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;CACrC;AAED,qBAAa,SAAS;;gBAiCR,OAAO,EAAE,gBAAgB;IAKrC;;;;;;;;;;;;OAYG;IACH,MAAM,IAAI,WAAW;IAyHrB;;;;;;;OAOG;IACH,UAAU,IAAI,IAAI;IAsTlB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAuChC,KAAK,IAAI,IAAI;IAqDb,OAAO,IAAI,IAAI;CAahB"}
1
+ {"version":3,"file":"GiftSheet.d.ts","sourceRoot":"","sources":["../../src/ui/GiftSheet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AAKzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAqB1E;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,GAAG,iBAAiB,EAAE,CAU3F;AAKD,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IACzB,yEAAyE;IACzE,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,CAAC;IAChC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACjC,uFAAuF;IACvF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,uFAAuF;IACvF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kFAAkF;IAClF,MAAM,EAAE,WAAW,CAAC;IACpB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACrD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IACpC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACnC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,qBAAa,SAAS;;gBAmCR,OAAO,EAAE,gBAAgB;IAKrC;;;;;;;;;;;;OAYG;IACH,MAAM,IAAI,WAAW;IAoIrB;;;;;;;OAOG;IACH,UAAU,IAAI,IAAI;IA+QlB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAwDzB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAuChC;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAe1C,qFAAqF;IACrF,MAAM,IAAI,OAAO;IAIjB,KAAK,IAAI,IAAI;IA0Db,OAAO,IAAI,IAAI;CAahB"}
@@ -47,6 +47,23 @@
47
47
  * neither (see `api/models.ts`). Inventing either from list order or brand names would
48
48
  * be a guess that looks like data, so both wait on a real field.
49
49
  *
50
+ * ## Share designs (backend#659)
51
+ *
52
+ * `shareFromHeader` and `shareForLater` derive from the same `threeLightSteps` file this
53
+ * surface renders, so they are this surface plus a `share` design, not new surfaces:
54
+ *
55
+ * - `'header'`: a share control at the top right of screen 1, sharing the selection.
56
+ * `Encore` moves the × to the top left. A share leaves the user on the sheet.
57
+ * - `'forLater'`: the "Keep your gift for later" panel, a second `GiftSheet` over a
58
+ * scrim with the first {@link KEEP_PANEL_LIMIT} gifts and a "Share {gift}" CTA.
59
+ * `Encore` opens it from the ×, Escape and the backdrop; its own close (and Escape
60
+ * inside it) is the presentation's real close; the scrim returns to the sheet.
61
+ *
62
+ * Both emit `offerShare` (subscribe with `onShareEvent`) for the SELECTED offer, synchronously inside the click. The
63
+ * surface shares nothing itself: the link, the events and what a completed share does
64
+ * are `Encore`'s. The panel's cards report no impressions (the variant's
65
+ * `impressionProbe: none`); the rows already did.
66
+ *
50
67
  * ## The reveal (see giftUnwrapStyles in styles.ts)
51
68
  *
52
69
  * Four elements, four tracks, one 1752ms timeline with the design's keyframe stops on
@@ -58,6 +75,19 @@ import type { OfferModel as Offer } from '../api/models';
58
75
  import { type ButtonSlot } from './appearance';
59
76
  import type { RewardSurface, RewardSurfaceEventMap } from './rewardSurface';
60
77
  import { ImpressionGate } from './impressionGate';
78
+ /**
79
+ * The shared surface events plus the two only the share designs emit. Kept off
80
+ * `RewardSurfaceEventMap`, which the carousel implements too.
81
+ */
82
+ export type GiftUnwrapEventMap = RewardSurfaceEventMap & {
83
+ /** Share this offer's link. Emitted synchronously inside the click. */
84
+ offerShare: {
85
+ offer: Offer;
86
+ index: number;
87
+ };
88
+ /** The keep-for-later panel's close, which is the presentation's real close. */
89
+ closeRequest: undefined;
90
+ };
61
91
  /** How many gifts screen 1 shows as rows. The rest go behind "Show more gifts". */
62
92
  export declare const UNWRAP_ROW_LIMIT = 3;
63
93
  /**
@@ -66,6 +96,12 @@ export declare const UNWRAP_ROW_LIMIT = 3;
66
96
  */
67
97
  export declare const UNWRAP_REVEAL_MS = 1752;
68
98
  export type UnwrapScreen = 'pick' | 'ready';
99
+ /** Which "share for later" design this surface carries, if any. See the header. */
100
+ export type ShareDesign = 'header' | 'forLater';
101
+ /** How many gifts the keep-for-later panel lists: the variant's `limit: 5`. */
102
+ export declare const KEEP_PANEL_LIMIT = 5;
103
+ /** How long "Link copied" stays up. `Encore` closes `forLater` after the same wait. */
104
+ export declare const SHARE_NOTICE_MS = 1500;
69
105
  /** The id on "Your gift is ready", which names the dialog while screen 2 is showing. */
70
106
  export declare const UNWRAP_READY_TITLE_ID: string;
71
107
  export interface GiftUnwrapComposeOptions {
@@ -76,6 +112,11 @@ export interface GiftUnwrapComposeOptions {
76
112
  * screen the user is no longer on. A callback because the modal is Encore's.
77
113
  */
78
114
  setLabelledBy?: (id: string) => void;
115
+ /**
116
+ * Called with the screen on every switch. The share designs hide the modal's × on the
117
+ * ready screen, whose Back takes the corner the × would otherwise share.
118
+ */
119
+ onScreenChange?: (screen: UnwrapScreen) => void;
79
120
  }
80
121
  export interface GiftUnwrapOptions {
81
122
  /**
@@ -97,11 +138,18 @@ export interface GiftUnwrapOptions {
97
138
  * unarmed gate, which never fires.
98
139
  */
99
140
  impressions?: ImpressionGate;
141
+ /** The "share for later" design to add, from the served variant. Absent: none. */
142
+ share?: ShareDesign;
100
143
  }
101
144
  export declare class GiftUnwrap implements RewardSurface {
102
145
  #private;
103
146
  constructor(offers: readonly Offer[], options?: GiftUnwrapOptions);
104
147
  on<E extends keyof RewardSurfaceEventMap>(event: E, handler: (payload: RewardSurfaceEventMap[E]) => void): () => void;
148
+ /**
149
+ * The share designs' own events, off `on()` so its signature stays the one every
150
+ * `RewardSurface` shares (a union of surfaces must stay callable).
151
+ */
152
+ onShareEvent<E extends 'offerShare' | 'closeRequest'>(event: E, handler: (payload: GiftUnwrapEventMap[E]) => void): () => void;
105
153
  getTotalOffers(): number;
106
154
  getCurrentIndex(): number;
107
155
  getSelectedOffer(): Offer | undefined;
@@ -125,6 +173,28 @@ export declare class GiftUnwrap implements RewardSurface {
125
173
  * {@link render} and the action block.
126
174
  */
127
175
  compose(pickScreen: HTMLElement, options?: GiftUnwrapComposeOptions): HTMLElement;
176
+ /**
177
+ * Open the keep-for-later panel with the selection picked, so its CTA can share at
178
+ * once. Focus returns to `opener` when the scrim closes it.
179
+ *
180
+ * Returns false, opening nothing, on a surface without one, once the surface has left
181
+ * the page (a deferred claim swaps in the primer), and on the ready screen. That last
182
+ * one matters: the panel commits a SELECTION, and the ready screen is filled once on
183
+ * entry, so a pick made over it would leave the screen naming one gift while its CTA
184
+ * claims another. The variant's panel is only reachable from the list, too.
185
+ */
186
+ openKeepForLater(opener?: HTMLElement): boolean;
187
+ isKeepForLaterOpen(): boolean;
188
+ /**
189
+ * Freeze the panel while a completed share waits to close the presentation, so a
190
+ * second gift cannot be picked or shared in that window. Its close still works.
191
+ */
192
+ lockKeepForLater(): void;
193
+ /**
194
+ * Say `text` in the surface's status line, then clear it after {@link SHARE_NOTICE_MS}.
195
+ * A live region, so a screen reader announces it too.
196
+ */
197
+ showShareNotice(text: string): void;
128
198
  /**
129
199
  * Select the offer at `index` into the full array. Out of range is IGNORED rather
130
200
  * than clamped: claiming a neighbouring advertiser would hide a caller's bug behind a
@@ -1 +1 @@
1
- {"version":3,"file":"GiftUnwrap.d.ts","sourceRoot":"","sources":["../../src/ui/GiftUnwrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AASzD,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAUlF,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AAEnE,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AASrC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,wFAAwF;AACxF,eAAO,MAAM,qBAAqB,QAA4B,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B;AAED,qBAAa,UAAW,YAAW,aAAa;;gBAyClC,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,GAAE,iBAAsB;IASrE,EAAE,CAAC,CAAC,SAAS,MAAM,qBAAqB,EACtC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,IAAI,GACnD,MAAM,IAAI;IAIb,cAAc,IAAI,MAAM;IAIxB,eAAe,IAAI,MAAM;IAIzB,gBAAgB,IAAI,KAAK,GAAG,SAAS;IAIrC,mDAAmD;IACnD,YAAY,IAAI,OAAO;IAIvB,SAAS,IAAI,YAAY;IAMzB;;;OAGG;IACH,UAAU,IAAI,WAAW;IAazB;;;OAGG;IACH,MAAM,IAAI,WAAW;IA2BrB;;;;;OAKG;IACH,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,GAAE,wBAA6B,GAAG,WAAW;IAgErF;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAahC,IAAI,IAAI,IAAI;IA4CZ;;;;OAIG;IACH,aAAa,IAAI,IAAI;IAerB;;;;;;OAMG;IACH,SAAS,IAAI,IAAI;IA8BjB,wEAAwE;IACxE,QAAQ,IAAI,IAAI;IAuLhB,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAKrC,UAAU,IAAI,IAAI;IAyDlB,OAAO,IAAI,IAAI;CA8BhB"}
1
+ {"version":3,"file":"GiftUnwrap.d.ts","sourceRoot":"","sources":["../../src/ui/GiftUnwrap.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,21 @@ export interface OfferModalOptions {
53
53
  * every surface derived from it. Sanitized — an unrecognised value is ignored.
54
54
  */
55
55
  backgroundColor?: string;
56
+ /**
57
+ * Which top corner the × sits in. `'start'` puts it top left, for a composition that
58
+ * gives the top right to another control (the `shareFromHeader` share button).
59
+ * Defaults to `'end'`, where every other composition has it.
60
+ */
61
+ closePosition?: 'start' | 'end';
62
+ /**
63
+ * Asked before the ×, Escape or a backdrop click dismisses. Return `true` to take the
64
+ * gesture over, and the modal then neither emits `close`/`backdropClick` nor hides.
65
+ * `shareForLater` uses it: every dismissal gesture opens the "keep your gift for
66
+ * later" panel until the panel is open, and the panel's own close is the real one. Absent, or returning `false`, every
67
+ * gesture dismisses as it always has. A throwing interceptor counts as `false`, so a
68
+ * bug in it can never trap the user on the sheet.
69
+ */
70
+ interceptDismiss?: (gesture: 'close' | 'escape' | 'backdrop') => boolean;
56
71
  }
57
72
  export declare class OfferModal {
58
73
  #private;
@@ -81,6 +96,15 @@ export declare class OfferModal {
81
96
  * screen readers announce the dialog by what the user actually sees.
82
97
  */
83
98
  setLabelledBy(id: string): void;
99
+ /**
100
+ * Hide or show the × while the sheet is up, for a screen that puts another control
101
+ * in its corner (`giftUnwrap`'s ready screen, whose Back sits top left). `hidden`
102
+ * rather than a style, so the focus trap skips it too. If it held focus, focus moves
103
+ * to the first control still in the dialog.
104
+ */
105
+ setCloseButtonHidden(hidden: boolean): void;
106
+ /** The ×, while the sheet is up and has one. For returning focus to it. */
107
+ getCloseButton(): HTMLButtonElement | null;
84
108
  /**
85
109
  * Take the ×, backdrop-click and Escape away from a sheet built dismissible. One way
86
110
  * only: a gate that must keep an exit opens dismissible, and applies the caller's
@@ -1 +1 @@
1
- {"version":3,"file":"OfferModal.d.ts","sourceRoot":"","sources":["../../src/ui/OfferModal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,UAAU,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrD,KAAK,EAAE,IAAI,CAAC;IACZ,aAAa,EAAE,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,UAAU;;gBAyBT,KAAK,GAAE,cAAmB,EAAE,OAAO,GAAE,iBAAsB;IAavE;;OAEG;IACH,IAAI,IAAI,IAAI;IAwCZ;;OAEG;IACH,IAAI,IAAI,IAAI;IA8CZ;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAYnE;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACH,gBAAgB,IAAI,IAAI;IAiBxB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IA4BtC;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAC9B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,GAC3C,MAAM,IAAI;IAyKb;;OAEG;IACH,OAAO,IAAI,IAAI;CAoBhB"}
1
+ {"version":3,"file":"OfferModal.d.ts","sourceRoot":"","sources":["../../src/ui/OfferModal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,UAAU,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrD,KAAK,EAAE,IAAI,CAAC;IACZ,aAAa,EAAE,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;OAcG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAChC;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,KAAK,OAAO,CAAC;CAC1E;AAED,qBAAa,UAAU;;gBA4BT,KAAK,GAAE,cAAmB,EAAE,OAAO,GAAE,iBAAsB;IAevE;;OAEG;IACH,IAAI,IAAI,IAAI;IAwCZ;;OAEG;IACH,IAAI,IAAI,IAAI;IA8CZ;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAYnE;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAS3C,2EAA2E;IAC3E,cAAc,IAAI,iBAAiB,GAAG,IAAI;IAe1C;;;;OAIG;IACH,gBAAgB,IAAI,IAAI;IAiBxB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IA4BtC;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,aAAa,EAC9B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,GAC3C,MAAM,IAAI;IA8Kb;;OAEG;IACH,OAAO,IAAI,IAAI;CAoBhB"}
@@ -52,4 +52,10 @@ export declare const CHECK_CIRCLE_SVG: string;
52
52
  export declare const RADIO_SELECTED_SVG: string;
53
53
  /** `icon-back-chevron.svg`, 20×20. */
54
54
  export declare const BACK_CHEVRON_SVG: string;
55
+ /**
56
+ * The share glyph, SF Symbols' `arrowshape.turn.up.right` (the name `shareFromHeader`
57
+ * uses): the unsuffixed, hollow variant, so stroked rather than filled, as Android
58
+ * draws it.
59
+ */
60
+ export declare const SHARE_ARROW_SVG: string;
55
61
  //# sourceMappingURL=giftUnwrapArt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"giftUnwrapArt.d.ts","sourceRoot":"","sources":["../../src/ui/giftUnwrapArt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAaH;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAyCrC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CA8BvC;AAED,oFAAoF;AACpF,wBAAgB,eAAe,IAAI,MAAM,CAoBxC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAWrC;AAED,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,QAGnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAIrB,CAAC;AAEX,sCAAsC;AACtC,eAAO,MAAM,gBAAgB,QAGnB,CAAC"}
1
+ {"version":3,"file":"giftUnwrapArt.d.ts","sourceRoot":"","sources":["../../src/ui/giftUnwrapArt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAaH;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAyCrC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CA8BvC;AAED,oFAAoF;AACpF,wBAAgB,eAAe,IAAI,MAAM,CAoBxC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAWrC;AAED,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,QAGnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAIrB,CAAC;AAEX,sCAAsC;AACtC,eAAO,MAAM,gBAAgB,QAGnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAIlB,CAAC"}
@@ -54,4 +54,24 @@ export declare function unwrapClaimLabel(offer: Offer): string;
54
54
  * language keeps its own words.
55
55
  */
56
56
  export declare function unwrapReadyBullets(offer: Offer): string[];
57
+ /**
58
+ * The "share for later" designs' own words (backend#659: `shareFromHeader`,
59
+ * `shareForLater`). The panel's title and line are the variant file's, verbatim, the
60
+ * newline included.
61
+ */
62
+ export declare const SHARE_COPY: {
63
+ readonly panelTitle: "Keep your gift for later";
64
+ readonly panelSubtitle: "Choose any offer below.\nShare the link to pick it later.";
65
+ /** The panel's close control. It closes the whole presentation, so it says so. */
66
+ readonly panelCloseLabel: "Close";
67
+ /** Shown once the link is on the clipboard, the web route where no sheet confirms it. */
68
+ readonly copied: "Link copied";
69
+ /** Shown when neither the share sheet nor the clipboard would take the link. */
70
+ readonly unavailable: "Couldn’t share the link";
71
+ };
72
+ /**
73
+ * "Share {advertiser}": the panel's CTA (the variant's `Share ${selectedAdvertiserName}`)
74
+ * and the header control's accessible name. Unnamed, it shares "this gift".
75
+ */
76
+ export declare function shareLabel(offer: Offer | undefined): string;
57
77
  //# sourceMappingURL=giftUnwrapCopy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"giftUnwrapCopy.d.ts","sourceRoot":"","sources":["../../src/ui/giftUnwrapCopy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AAIzD,eAAO,MAAM,WAAW;IACtB,0DAA0D;;IAE1D,uEAAuE;;IAEvE;yDACqD;;IAErD,kEAAkE;;;CAG1D,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAKvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAGrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAiBzD"}
1
+ {"version":3,"file":"giftUnwrapCopy.d.ts","sourceRoot":"","sources":["../../src/ui/giftUnwrapCopy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,eAAe,CAAC;AAIzD,eAAO,MAAM,WAAW;IACtB,0DAA0D;;IAE1D,uEAAuE;;IAEvE;yDACqD;;IAErD,kEAAkE;;;CAG1D,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAKvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAGrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAiBzD;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;IAGrB,kFAAkF;;IAElF,yFAAyF;;IAEzF,gFAAgF;;CAExE,CAAC;AAEX;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAG3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,eAAO,MAAM,OAAO;;;CAGV,CAAC;AAGX,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmOG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;IAI/B,0FAA0F;;CAElF,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA4jKD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,cAAmB,GAAG,IAAI,CAgB7D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAe1D;AAED;;GAEG;AACH,wBAAgB,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7C"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/ui/styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,eAAO,MAAM,OAAO;;;CAGV,CAAC;AAGX,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmOG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;IAI/B,0FAA0F;;CAElF,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA00KD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,cAAmB,GAAG,IAAI,CAgB7D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAe1D;AAED;;GAEG;AACH,wBAAgB,EAAE,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7C"}