@tiledev/sdk-apptile-live-selling 0.13.0 → 0.14.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/README.md +94 -12
- package/dist/giveawayPrizeLines.d.ts +10 -0
- package/dist/giveawayPrizeLines.d.ts.map +1 -1
- package/dist/giveawayPrizeLines.js +11 -1
- package/dist/giveawayPrizeLines.js.map +1 -1
- package/dist/hiddenShows.d.ts +10 -0
- package/dist/hiddenShows.d.ts.map +1 -1
- package/dist/hiddenShows.js +11 -0
- package/dist/hiddenShows.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -2
- package/dist/index.js.map +1 -1
- package/dist/livePages.d.ts +79 -0
- package/dist/livePages.d.ts.map +1 -0
- package/dist/livePages.js +90 -0
- package/dist/livePages.js.map +1 -0
- package/dist/liveRoom.d.ts +21 -0
- package/dist/liveRoom.d.ts.map +1 -0
- package/dist/liveRoom.js +28 -0
- package/dist/liveRoom.js.map +1 -0
- package/dist/pageOptions.d.ts +100 -0
- package/dist/pageOptions.d.ts.map +1 -0
- package/dist/pageOptions.js +82 -0
- package/dist/pageOptions.js.map +1 -0
- package/dist/pageTypes.d.ts +127 -0
- package/dist/pageTypes.d.ts.map +1 -0
- package/dist/pageTypes.js +3 -0
- package/dist/pageTypes.js.map +1 -0
- package/dist/react/LiveSellingProvider.d.ts +23 -1
- package/dist/react/LiveSellingProvider.d.ts.map +1 -1
- package/dist/react/LiveSellingProvider.js +26 -2
- package/dist/react/LiveSellingProvider.js.map +1 -1
- package/dist/react/index.d.ts +10 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +29 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.web.d.ts +11 -32
- package/dist/react/index.web.d.ts.map +1 -1
- package/dist/react/index.web.js +46 -139
- package/dist/react/index.web.js.map +1 -1
- package/dist/react/navigation.d.ts +13 -0
- package/dist/react/navigation.d.ts.map +1 -0
- package/dist/react/navigation.js +7 -0
- package/dist/react/navigation.js.map +1 -0
- package/dist/react/platformSession.d.ts +16 -0
- package/dist/react/platformSession.d.ts.map +1 -0
- package/dist/react/platformSession.js +28 -0
- package/dist/react/platformSession.js.map +1 -0
- package/dist/react/platformSession.web.d.ts +35 -0
- package/dist/react/platformSession.web.d.ts.map +1 -0
- package/dist/react/platformSession.web.js +148 -0
- package/dist/react/platformSession.web.js.map +1 -0
- package/dist/react/replayPlayer.d.ts +74 -0
- package/dist/react/replayPlayer.d.ts.map +1 -0
- package/dist/react/replayPlayer.js +279 -0
- package/dist/react/replayPlayer.js.map +1 -0
- package/dist/react/shopifyProviders.d.ts +68 -0
- package/dist/react/shopifyProviders.d.ts.map +1 -0
- package/dist/react/shopifyProviders.js +98 -0
- package/dist/react/shopifyProviders.js.map +1 -0
- package/dist/react/useKeepScreenAwake.d.ts +2 -0
- package/dist/react/useKeepScreenAwake.d.ts.map +1 -0
- package/dist/react/useKeepScreenAwake.js +34 -0
- package/dist/react/useKeepScreenAwake.js.map +1 -0
- package/dist/react/useLiveAuction.d.ts +104 -0
- package/dist/react/useLiveAuction.d.ts.map +1 -0
- package/dist/react/useLiveAuction.js +244 -0
- package/dist/react/useLiveAuction.js.map +1 -0
- package/dist/react/useLiveChat.d.ts +75 -0
- package/dist/react/useLiveChat.d.ts.map +1 -0
- package/dist/react/useLiveChat.js +131 -0
- package/dist/react/useLiveChat.js.map +1 -0
- package/dist/react/useLiveGiveawaysAndPolls.d.ts +84 -0
- package/dist/react/useLiveGiveawaysAndPolls.d.ts.map +1 -0
- package/dist/react/useLiveGiveawaysAndPolls.js +180 -0
- package/dist/react/useLiveGiveawaysAndPolls.js.map +1 -0
- package/dist/react/useLivePage.d.ts +113 -0
- package/dist/react/useLivePage.d.ts.map +1 -0
- package/dist/react/useLivePage.js +264 -0
- package/dist/react/useLivePage.js.map +1 -0
- package/dist/react/useLiveShop.d.ts +83 -0
- package/dist/react/useLiveShop.d.ts.map +1 -0
- package/dist/react/useLiveShop.js +165 -0
- package/dist/react/useLiveShop.js.map +1 -0
- package/dist/react/useReplayPage.d.ts +117 -0
- package/dist/react/useReplayPage.d.ts.map +1 -0
- package/dist/react/useReplayPage.js +504 -0
- package/dist/react/useReplayPage.js.map +1 -0
- package/dist/showCredit.d.ts +87 -0
- package/dist/showCredit.d.ts.map +1 -0
- package/dist/showCredit.js +120 -0
- package/dist/showCredit.js.map +1 -0
- package/dist/ui/BubbleFrame.d.ts +38 -0
- package/dist/ui/BubbleFrame.d.ts.map +1 -0
- package/dist/ui/BubbleFrame.js +181 -0
- package/dist/ui/BubbleFrame.js.map +1 -0
- package/dist/ui/LiveBubble.d.ts +37 -0
- package/dist/ui/LiveBubble.d.ts.map +1 -0
- package/dist/ui/LiveBubble.js +101 -0
- package/dist/ui/LiveBubble.js.map +1 -0
- package/dist/ui/ReplayBubble.d.ts +23 -0
- package/dist/ui/ReplayBubble.d.ts.map +1 -0
- package/dist/ui/ReplayBubble.js +65 -0
- package/dist/ui/ReplayBubble.js.map +1 -0
- package/dist/ui.d.ts +27 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +34 -0
- package/dist/ui.js.map +1 -0
- package/package.json +36 -5
- package/ui/package.json +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReplayPage.js","sourceRoot":"","sources":["../../src/react/useReplayPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What credits an add to a show (0.14.0, moved from amore-v2's `src/navigation/variantPage.ts` and its
|
|
3
|
+
* Live and Replay page hooks): the variant page's params, quick add's credit, and what an add that
|
|
4
|
+
* landed tells about its show. The routes stay the app's: `showQuickAddOptions` takes where the
|
|
5
|
+
* variant page is, and `VariantPageParams` is what the app's variant page reads.
|
|
6
|
+
*
|
|
7
|
+
* Free of React and React Native (sdk-analytics-core is plain functions), so it loads in plain Node for
|
|
8
|
+
* tests; sdk-shopify is read for its types alone.
|
|
9
|
+
*/
|
|
10
|
+
import { type AddedFromShow, type EventProperties } from '@tiledev/sdk-analytics-core';
|
|
11
|
+
import type { AttributionSource, CartLineAttribute, Product, ProductLike, ProductVariant, UseQuickAddOptions } from '@tiledev/sdk-shopify';
|
|
12
|
+
import { type LiveRoomAnnouncement } from './liveRoom';
|
|
13
|
+
import type { LiveStream } from './types';
|
|
14
|
+
/**
|
|
15
|
+
* What credits an add to a show: the Replay screen's (`lineAttributes`, `addedFromShow`,
|
|
16
|
+
* `attributionSource`) and the Live screen's (all four). Every field is optional; without any, an add
|
|
17
|
+
* is the app's own.
|
|
18
|
+
*/
|
|
19
|
+
export interface ShowCredit {
|
|
20
|
+
/** Put on the cart line (`_replay_id`, `_stream_id`), so the order carries the show. */
|
|
21
|
+
lineAttributes?: CartLineAttribute[];
|
|
22
|
+
/** The show each landed add is reported against (`streamAddToCart` live, `replayAddToCart` for a recording). */
|
|
23
|
+
addedFromShow?: AddedFromShow;
|
|
24
|
+
/** sdk-shopify's attribution source for the cart's `_apptile_attribution` counts. */
|
|
25
|
+
attributionSource?: AttributionSource;
|
|
26
|
+
/** Tell the live show's room once the add lands (the Live screen's products only). */
|
|
27
|
+
announceToLiveRoom?: LiveRoomAnnouncement;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The variant page's params, as the live pages open it (`routes.openVariantPage`): the product's
|
|
31
|
+
* handle, a show's credit, and `beingAuctioned` for a lot on an auction show (the product page's
|
|
32
|
+
* auction notice and no Add to Cart).
|
|
33
|
+
*/
|
|
34
|
+
export interface VariantPageParams extends ShowCredit {
|
|
35
|
+
handle: string;
|
|
36
|
+
beingAuctioned?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The variant page's params for a product, carrying a show's whole credit (the attribution source too,
|
|
40
|
+
* since amore-v2's SDK move 6, 2026-10-06). An empty part of the credit is left out.
|
|
41
|
+
*/
|
|
42
|
+
export declare function variantPageParams(product: Pick<Product, 'handle'>, credit: ShowCredit): VariantPageParams;
|
|
43
|
+
/**
|
|
44
|
+
* The variant page's params for a lot on an auction show (decided 2026-10-05, Head of Engineering:
|
|
45
|
+
* "Size sheet over show"): the product's details with the product page's auction notice and no Add to
|
|
46
|
+
* Cart. No live credit and no announcement: nothing can be added from it, as the shopper bids from the
|
|
47
|
+
* show.
|
|
48
|
+
*/
|
|
49
|
+
export declare function auctionLotPageParams(product: Pick<Product, 'handle'>): VariantPageParams;
|
|
50
|
+
/**
|
|
51
|
+
* Everything an add from a live show carries, for one product (Freckled Poppy's `performAdd`): the
|
|
52
|
+
* line's `_stream_id` (`liveCartAttributesFor`), the attribution source (`liveAttributionSourceFor`),
|
|
53
|
+
* the show for `streamAddToCart` (`streamType: "live-stream"`, old Amore's), and the room's
|
|
54
|
+
* announcement with the lot's number. **Only while the show's record says it is live**: after it ends
|
|
55
|
+
* an add is the app's own, and there is no room to tell.
|
|
56
|
+
*/
|
|
57
|
+
export declare function liveShowCredit(show: Pick<LiveStream, 'streamingId' | 'status'> | null, lotNumber: string | null): ShowCredit;
|
|
58
|
+
/**
|
|
59
|
+
* Everything an add from a recording carries: `_replay_id` on the line (`replayCartAttributesFor`),
|
|
60
|
+
* `replayAddToCart` against the recording's feed id, and the cart's attribution against the show's
|
|
61
|
+
* streaming id (`replayAttributionSourceFor`), never the feed id: attribution groups a replay with its
|
|
62
|
+
* show. Nothing without a recording.
|
|
63
|
+
*/
|
|
64
|
+
export declare function replayShowCredit(feedId: string | null, showStreamingId: string | null): ShowCredit;
|
|
65
|
+
/**
|
|
66
|
+
* What an add that landed tells about its show: the show's copy of the add (sdk-analytics-core's
|
|
67
|
+
* `showAddToCartEvent`: `streamAddToCart`, or `replayAddToCart` for a recording) for `addedFromShow`,
|
|
68
|
+
* and, with `announceToLiveRoom`, the live show's room (its cart chip). Nothing without a show. For a
|
|
69
|
+
* landed add only: the room reads the chip as "it is going".
|
|
70
|
+
*/
|
|
71
|
+
export declare function reportShowAdd(credit: ShowCredit, track: (name: string, properties: EventProperties) => void, product: ProductLike, variant: ProductVariant | null): void;
|
|
72
|
+
/** A show's credit for quick adds: one for every product, or one per product (a live show's lot numbers). */
|
|
73
|
+
export interface ShowQuickAdd {
|
|
74
|
+
credit: ShowCredit | ((product: Product) => ShowCredit);
|
|
75
|
+
/** The app's analytics `track`, for the show's copy of each add that lands. */
|
|
76
|
+
track: (name: string, properties: EventProperties) => void;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* sdk-shopify's `useQuickAdd` options for a product card's Add to Cart (decided 2026-10-04, Head of
|
|
80
|
+
* Engineering): a product with a choice to make opens the variant page (`openVariantPage`, the app's
|
|
81
|
+
* route); one size for sale is added on the spot by sdk-shopify. With a show's credit (the Replay and
|
|
82
|
+
* Live screens' products, 2026-10-05) the line carries the show, the variant page gets the same
|
|
83
|
+
* credit, and an add that lands also reports the show's copy and, with `announceToLiveRoom`, tells the
|
|
84
|
+
* live show's room (`reportShowAdd`). Without one, the variant page gets the handle alone.
|
|
85
|
+
*/
|
|
86
|
+
export declare function showQuickAddOptions(openVariantPage: (params: VariantPageParams, product: Product) => void, show?: ShowQuickAdd): UseQuickAddOptions;
|
|
87
|
+
//# sourceMappingURL=showCredit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"showCredit.d.ts","sourceRoot":"","sources":["../src/showCredit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC3G,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,cAAc,EACd,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,wFAAwF;IACxF,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACrC,gHAAgH;IAChH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,iBAAiB,CASzG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,iBAAiB,CAExF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,GAAG,QAAQ,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,CAS5H;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,CAOlG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,KAAK,IAAI,EAC1D,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,cAAc,GAAG,IAAI,GAC7B,IAAI,CAMN;AAED,6GAA6G;AAC7G,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC;IACxD,+EAA+E;IAC/E,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;CAC5D;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,EACtE,IAAI,CAAC,EAAE,YAAY,GAClB,kBAAkB,CAepB"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.variantPageParams = variantPageParams;
|
|
4
|
+
exports.auctionLotPageParams = auctionLotPageParams;
|
|
5
|
+
exports.liveShowCredit = liveShowCredit;
|
|
6
|
+
exports.replayShowCredit = replayShowCredit;
|
|
7
|
+
exports.reportShowAdd = reportShowAdd;
|
|
8
|
+
exports.showQuickAddOptions = showQuickAddOptions;
|
|
9
|
+
/**
|
|
10
|
+
* What credits an add to a show (0.14.0, moved from amore-v2's `src/navigation/variantPage.ts` and its
|
|
11
|
+
* Live and Replay page hooks): the variant page's params, quick add's credit, and what an add that
|
|
12
|
+
* landed tells about its show. The routes stay the app's: `showQuickAddOptions` takes where the
|
|
13
|
+
* variant page is, and `VariantPageParams` is what the app's variant page reads.
|
|
14
|
+
*
|
|
15
|
+
* Free of React and React Native (sdk-analytics-core is plain functions), so it loads in plain Node for
|
|
16
|
+
* tests; sdk-shopify is read for its types alone.
|
|
17
|
+
*/
|
|
18
|
+
const sdk_analytics_core_1 = require("@tiledev/sdk-analytics-core");
|
|
19
|
+
const attribution_1 = require("./attribution");
|
|
20
|
+
const cartAttributes_1 = require("./cartAttributes");
|
|
21
|
+
const liveRoom_1 = require("./liveRoom");
|
|
22
|
+
/**
|
|
23
|
+
* The variant page's params for a product, carrying a show's whole credit (the attribution source too,
|
|
24
|
+
* since amore-v2's SDK move 6, 2026-10-06). An empty part of the credit is left out.
|
|
25
|
+
*/
|
|
26
|
+
function variantPageParams(product, credit) {
|
|
27
|
+
const { lineAttributes, addedFromShow, attributionSource, announceToLiveRoom } = credit;
|
|
28
|
+
return {
|
|
29
|
+
handle: product.handle,
|
|
30
|
+
...((lineAttributes === null || lineAttributes === void 0 ? void 0 : lineAttributes.length) ? { lineAttributes } : {}),
|
|
31
|
+
...(addedFromShow ? { addedFromShow } : {}),
|
|
32
|
+
...(attributionSource ? { attributionSource } : {}),
|
|
33
|
+
...(announceToLiveRoom ? { announceToLiveRoom } : {}),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The variant page's params for a lot on an auction show (decided 2026-10-05, Head of Engineering:
|
|
38
|
+
* "Size sheet over show"): the product's details with the product page's auction notice and no Add to
|
|
39
|
+
* Cart. No live credit and no announcement: nothing can be added from it, as the shopper bids from the
|
|
40
|
+
* show.
|
|
41
|
+
*/
|
|
42
|
+
function auctionLotPageParams(product) {
|
|
43
|
+
return { handle: product.handle, beingAuctioned: true };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Everything an add from a live show carries, for one product (Freckled Poppy's `performAdd`): the
|
|
47
|
+
* line's `_stream_id` (`liveCartAttributesFor`), the attribution source (`liveAttributionSourceFor`),
|
|
48
|
+
* the show for `streamAddToCart` (`streamType: "live-stream"`, old Amore's), and the room's
|
|
49
|
+
* announcement with the lot's number. **Only while the show's record says it is live**: after it ends
|
|
50
|
+
* an add is the app's own, and there is no room to tell.
|
|
51
|
+
*/
|
|
52
|
+
function liveShowCredit(show, lotNumber) {
|
|
53
|
+
var _a;
|
|
54
|
+
const lineAttributes = (0, cartAttributes_1.liveCartAttributesFor)(show);
|
|
55
|
+
if (!show || lineAttributes.length === 0)
|
|
56
|
+
return {};
|
|
57
|
+
return {
|
|
58
|
+
lineAttributes,
|
|
59
|
+
addedFromShow: { streamType: 'live-stream', streamId: show.streamingId },
|
|
60
|
+
attributionSource: (_a = (0, attribution_1.liveAttributionSourceFor)(show)) !== null && _a !== void 0 ? _a : undefined,
|
|
61
|
+
announceToLiveRoom: { lotNumber },
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Everything an add from a recording carries: `_replay_id` on the line (`replayCartAttributesFor`),
|
|
66
|
+
* `replayAddToCart` against the recording's feed id, and the cart's attribution against the show's
|
|
67
|
+
* streaming id (`replayAttributionSourceFor`), never the feed id: attribution groups a replay with its
|
|
68
|
+
* show. Nothing without a recording.
|
|
69
|
+
*/
|
|
70
|
+
function replayShowCredit(feedId, showStreamingId) {
|
|
71
|
+
var _a;
|
|
72
|
+
if (!feedId)
|
|
73
|
+
return {};
|
|
74
|
+
return {
|
|
75
|
+
lineAttributes: (0, cartAttributes_1.replayCartAttributesFor)(feedId),
|
|
76
|
+
addedFromShow: { streamType: 'replay', streamId: feedId },
|
|
77
|
+
attributionSource: (_a = (0, attribution_1.replayAttributionSourceFor)(showStreamingId)) !== null && _a !== void 0 ? _a : undefined,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* What an add that landed tells about its show: the show's copy of the add (sdk-analytics-core's
|
|
82
|
+
* `showAddToCartEvent`: `streamAddToCart`, or `replayAddToCart` for a recording) for `addedFromShow`,
|
|
83
|
+
* and, with `announceToLiveRoom`, the live show's room (its cart chip). Nothing without a show. For a
|
|
84
|
+
* landed add only: the room reads the chip as "it is going".
|
|
85
|
+
*/
|
|
86
|
+
function reportShowAdd(credit, track, product, variant) {
|
|
87
|
+
if (credit.addedFromShow) {
|
|
88
|
+
const showAdd = (0, sdk_analytics_core_1.showAddToCartEvent)(product, variant, credit.addedFromShow);
|
|
89
|
+
track(showAdd.name, showAdd.properties);
|
|
90
|
+
}
|
|
91
|
+
if (credit.announceToLiveRoom)
|
|
92
|
+
(0, liveRoom_1.announceAddToLiveRoom)(product.title, credit.announceToLiveRoom);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* sdk-shopify's `useQuickAdd` options for a product card's Add to Cart (decided 2026-10-04, Head of
|
|
96
|
+
* Engineering): a product with a choice to make opens the variant page (`openVariantPage`, the app's
|
|
97
|
+
* route); one size for sale is added on the spot by sdk-shopify. With a show's credit (the Replay and
|
|
98
|
+
* Live screens' products, 2026-10-05) the line carries the show, the variant page gets the same
|
|
99
|
+
* credit, and an add that lands also reports the show's copy and, with `announceToLiveRoom`, tells the
|
|
100
|
+
* live show's room (`reportShowAdd`). Without one, the variant page gets the handle alone.
|
|
101
|
+
*/
|
|
102
|
+
function showQuickAddOptions(openVariantPage, show) {
|
|
103
|
+
const creditFor = (product) => {
|
|
104
|
+
if (!show)
|
|
105
|
+
return {};
|
|
106
|
+
return typeof show.credit === 'function' ? show.credit(product) : show.credit;
|
|
107
|
+
};
|
|
108
|
+
return {
|
|
109
|
+
credit: (product) => {
|
|
110
|
+
const { lineAttributes, attributionSource } = creditFor(product);
|
|
111
|
+
return { lineAttributes, source: attributionSource };
|
|
112
|
+
},
|
|
113
|
+
onChooseVariant: (product) => openVariantPage(variantPageParams(product, creditFor(product)), product),
|
|
114
|
+
onAdded: (product, variant) => {
|
|
115
|
+
if (show)
|
|
116
|
+
reportShowAdd(creditFor(product), show.track, product, variant);
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=showCredit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"showCredit.js","sourceRoot":"","sources":["../src/showCredit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
/**
|
|
4
|
+
* The ✕ and expand chips' backing when the app passes none: a dark wash. amore-v2 drew its theme's
|
|
5
|
+
* `colors.scrim` (Amore's warm `rgba(28,23,20,0.45)`; K-Marie's and Sparkl's are this one), so an app
|
|
6
|
+
* passes its own to keep its look.
|
|
7
|
+
*/
|
|
8
|
+
export declare const BUBBLE_CHIP_COLOR = "rgba(0,0,0,0.45)";
|
|
9
|
+
export interface BubbleFrameProps {
|
|
10
|
+
/** The show's poster, under the video, so the bubble isn't black while the picture arrives. */
|
|
11
|
+
posterUrl: string | null;
|
|
12
|
+
/** A tap on the bubble: back to the show's screen. */
|
|
13
|
+
onOpen: () => void;
|
|
14
|
+
/** ✕: the show stops and the bubble closes. */
|
|
15
|
+
onClose: () => void;
|
|
16
|
+
/** Screen-reader words for the tap and for ✕. */
|
|
17
|
+
openLabel: string;
|
|
18
|
+
closeLabel: string;
|
|
19
|
+
/** Behind the ✕ and the expand mark: the app's scrim colour (amore-v2's theme `colors.scrim`). Default `BUBBLE_CHIP_COLOR`. */
|
|
20
|
+
chipColor?: string;
|
|
21
|
+
/** The video. Drawn under the tap, which it must not take (it is wrapped in a view that lets touches through). */
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The floating bubble's frame. Each bubble draws its own video inside it and says what a tap and ✕
|
|
26
|
+
* do; the frame does the rest, the same for both. An app overlay beside the navigator, not a tile:
|
|
27
|
+
* mount it over the whole app (a full-screen parent), inside `SafeAreaProvider`.
|
|
28
|
+
*
|
|
29
|
+
* - **Draggable**, and on release it snaps to the nearer side, kept clear of the safe areas and the
|
|
30
|
+
* tab bar. It starts at the bottom right each time it opens: mount it only while the bubble is up.
|
|
31
|
+
* - **A tap** calls `onOpen`; **✕** calls `onClose`. An expand mark in the opposite corner says the
|
|
32
|
+
* whole bubble opens the show.
|
|
33
|
+
* - The poster sits under the video, so the bubble isn't black while it loads.
|
|
34
|
+
* - Hidden, and letting touches through, until the overlay has been measured and the bubble is in its
|
|
35
|
+
* corner.
|
|
36
|
+
*/
|
|
37
|
+
export declare function BubbleFrame({ posterUrl, onOpen, onClose, openLabel, closeLabel, chipColor, children }: BubbleFrameProps): import("react").CElement<import("react-native").ViewProps, View>;
|
|
38
|
+
//# sourceMappingURL=BubbleFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BubbleFrame.d.ts","sourceRoot":"","sources":["../../src/ui/BubbleFrame.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAiD,IAAI,EAAE,MAAM,cAAc,CAAC;AAenF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAIpD,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sDAAsD;IACtD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,+HAA+H;IAC/H,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kHAAkH;IAClH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAA6B,EAAE,QAAQ,EAAE,EAAE,gBAAgB,oEAyI3I"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BUBBLE_CHIP_COLOR = void 0;
|
|
4
|
+
exports.BubbleFrame = BubbleFrame;
|
|
5
|
+
/**
|
|
6
|
+
* The floating bubble's frame (0.14.0, moved from amore-v2's `src/core/overlays/bubbleFrame.tsx`: the
|
|
7
|
+
* old app's `PipBubbleFrame`, rebuilt), shared by `ReplayBubble` and `LiveBubble`.
|
|
8
|
+
*
|
|
9
|
+
* `createElement` rather than JSX, like the rest of the package, so this stays a plain `.ts`.
|
|
10
|
+
*/
|
|
11
|
+
const vector_icons_1 = require("@expo/vector-icons");
|
|
12
|
+
const react_native_performant_image_1 = require("@tiledev/react-native-performant-image");
|
|
13
|
+
const react_1 = require("react");
|
|
14
|
+
const react_native_1 = require("react-native");
|
|
15
|
+
const react_native_safe_area_context_1 = require("react-native-safe-area-context");
|
|
16
|
+
/** The bubble: 128 wide, portrait 9:16, the shape the hosts record in. */
|
|
17
|
+
const WIDTH = 128;
|
|
18
|
+
const HEIGHT = Math.round((WIDTH * 16) / 9);
|
|
19
|
+
/** From the screen's edges, the safe areas and the tab bar. */
|
|
20
|
+
const MARGIN = 12;
|
|
21
|
+
/** Room kept for the tab bar at the bottom (the safe area's inset doesn't include it). */
|
|
22
|
+
const TAB_BAR_ROOM = 56;
|
|
23
|
+
/** A finger that moves this far is dragging the bubble, not tapping it. */
|
|
24
|
+
const DRAG_START = 6;
|
|
25
|
+
/** White on the video, as the Replay and Live screens' buttons. */
|
|
26
|
+
const ON_VIDEO = '#FFFFFF';
|
|
27
|
+
/**
|
|
28
|
+
* The ✕ and expand chips' backing when the app passes none: a dark wash. amore-v2 drew its theme's
|
|
29
|
+
* `colors.scrim` (Amore's warm `rgba(28,23,20,0.45)`; K-Marie's and Sparkl's are this one), so an app
|
|
30
|
+
* passes its own to keep its look.
|
|
31
|
+
*/
|
|
32
|
+
exports.BUBBLE_CHIP_COLOR = 'rgba(0,0,0,0.45)';
|
|
33
|
+
const clamp = (value, low, high) => Math.min(Math.max(value, low), high);
|
|
34
|
+
/**
|
|
35
|
+
* The floating bubble's frame. Each bubble draws its own video inside it and says what a tap and ✕
|
|
36
|
+
* do; the frame does the rest, the same for both. An app overlay beside the navigator, not a tile:
|
|
37
|
+
* mount it over the whole app (a full-screen parent), inside `SafeAreaProvider`.
|
|
38
|
+
*
|
|
39
|
+
* - **Draggable**, and on release it snaps to the nearer side, kept clear of the safe areas and the
|
|
40
|
+
* tab bar. It starts at the bottom right each time it opens: mount it only while the bubble is up.
|
|
41
|
+
* - **A tap** calls `onOpen`; **✕** calls `onClose`. An expand mark in the opposite corner says the
|
|
42
|
+
* whole bubble opens the show.
|
|
43
|
+
* - The poster sits under the video, so the bubble isn't black while it loads.
|
|
44
|
+
* - Hidden, and letting touches through, until the overlay has been measured and the bubble is in its
|
|
45
|
+
* corner.
|
|
46
|
+
*/
|
|
47
|
+
function BubbleFrame({ posterUrl, onOpen, onClose, openLabel, closeLabel, chipColor = exports.BUBBLE_CHIP_COLOR, children }) {
|
|
48
|
+
const insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
|
|
49
|
+
/**
|
|
50
|
+
* The room the bubble moves in, from the overlay's own layout rather than `Dimensions` (production
|
|
51
|
+
* found `Dimensions` stale after a system picture-in-picture window on Android). None until the first
|
|
52
|
+
* layout, and the bubble stays hidden till then.
|
|
53
|
+
*/
|
|
54
|
+
const [frame, setFrame] = (0, react_1.useState)(null);
|
|
55
|
+
const edges = (0, react_1.useMemo)(() => {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
const top = insets.top + MARGIN;
|
|
58
|
+
const right = ((_a = frame === null || frame === void 0 ? void 0 : frame.width) !== null && _a !== void 0 ? _a : 0) - WIDTH - MARGIN;
|
|
59
|
+
const bottom = ((_b = frame === null || frame === void 0 ? void 0 : frame.height) !== null && _b !== void 0 ? _b : 0) - insets.bottom - TAB_BAR_ROOM - HEIGHT - MARGIN;
|
|
60
|
+
// Never inverted, so the clamps below stay sane on a window smaller than the bubble.
|
|
61
|
+
return { left: MARGIN, right: Math.max(MARGIN, right), top, bottom: Math.max(top, bottom) };
|
|
62
|
+
}, [frame === null || frame === void 0 ? void 0 : frame.width, frame === null || frame === void 0 ? void 0 : frame.height, insets.top, insets.bottom]);
|
|
63
|
+
// Where the bubble rests: held here as well as in the animated value, which can't be read back.
|
|
64
|
+
const resting = (0, react_1.useRef)({ x: edges.right, y: edges.bottom });
|
|
65
|
+
const position = (0, react_1.useRef)(new react_native_1.Animated.ValueXY(resting.current)).current;
|
|
66
|
+
// The gesture is made once; it reads the edges from here, at the moment it fires.
|
|
67
|
+
const edgesNow = (0, react_1.useRef)(edges);
|
|
68
|
+
edgesNow.current = edges;
|
|
69
|
+
/** The shopper has put it somewhere: a new layout keeps it there, pulled inside the new edges. */
|
|
70
|
+
const moved = (0, react_1.useRef)(false);
|
|
71
|
+
/**
|
|
72
|
+
* A drag is under way or has just ended. On web the mouse's release over the bubble, which followed
|
|
73
|
+
* it, is also a click on it, and opened the show at the end of every drag (seen in the preview).
|
|
74
|
+
*/
|
|
75
|
+
const dragging = (0, react_1.useRef)(false);
|
|
76
|
+
// A new layout (the first one, a rotation): the bubble goes to its corner, or stays where the shopper
|
|
77
|
+
// put it. Before paint, so it is never seen where it was.
|
|
78
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
79
|
+
const next = moved.current
|
|
80
|
+
? { x: clamp(resting.current.x, edges.left, edges.right), y: clamp(resting.current.y, edges.top, edges.bottom) }
|
|
81
|
+
: { x: edges.right, y: edges.bottom };
|
|
82
|
+
if (next.x === resting.current.x && next.y === resting.current.y)
|
|
83
|
+
return;
|
|
84
|
+
resting.current = next;
|
|
85
|
+
position.setValue(next);
|
|
86
|
+
}, [edges, position]);
|
|
87
|
+
const drag = (0, react_1.useMemo)(() => {
|
|
88
|
+
// After the click that may follow the release, which comes in the same turn.
|
|
89
|
+
const dragEnded = () => setTimeout(() => {
|
|
90
|
+
dragging.current = false;
|
|
91
|
+
}, 0);
|
|
92
|
+
return react_native_1.PanResponder.create({
|
|
93
|
+
// Only once it is clearly a drag, so a tap still reaches the bubble's button.
|
|
94
|
+
onMoveShouldSetPanResponder: (_event, gesture) => Math.abs(gesture.dx) > DRAG_START || Math.abs(gesture.dy) > DRAG_START,
|
|
95
|
+
onPanResponderGrant: () => {
|
|
96
|
+
dragging.current = true;
|
|
97
|
+
position.setOffset(resting.current);
|
|
98
|
+
position.setValue({ x: 0, y: 0 });
|
|
99
|
+
},
|
|
100
|
+
onPanResponderMove: react_native_1.Animated.event([null, { dx: position.x, dy: position.y }], { useNativeDriver: false }),
|
|
101
|
+
onPanResponderRelease: (_event, gesture) => {
|
|
102
|
+
position.flattenOffset();
|
|
103
|
+
moved.current = true;
|
|
104
|
+
const { left, right, top, bottom } = edgesNow.current;
|
|
105
|
+
const x = resting.current.x + gesture.dx;
|
|
106
|
+
const y = resting.current.y + gesture.dy;
|
|
107
|
+
// The nearer side: the bubble's middle against the middle of the room it moves in.
|
|
108
|
+
const snapped = { x: x + WIDTH / 2 < (left + right + WIDTH) / 2 ? left : right, y: clamp(y, top, bottom) };
|
|
109
|
+
resting.current = snapped;
|
|
110
|
+
react_native_1.Animated.spring(position, { toValue: snapped, useNativeDriver: false, friction: 8, tension: 70 }).start();
|
|
111
|
+
dragEnded();
|
|
112
|
+
},
|
|
113
|
+
onPanResponderTerminate: () => {
|
|
114
|
+
dragEnded();
|
|
115
|
+
position.flattenOffset();
|
|
116
|
+
react_native_1.Animated.spring(position, { toValue: resting.current, useNativeDriver: false, friction: 8, tension: 70 }).start();
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
}, [position]);
|
|
120
|
+
// The picture is clipped to the rounded corners inside; the shadow is drawn outside, where a clip would cut it off.
|
|
121
|
+
const picture = (0, react_1.createElement)(react_native_1.View, { style: styles.picture }, posterUrl ? (0, react_1.createElement)(react_native_performant_image_1.Image, { source: { uri: posterUrl }, style: react_native_1.StyleSheet.absoluteFill, resizeMode: 'cover', transition: 0 }) : null, (0, react_1.createElement)(react_native_1.Pressable, {
|
|
122
|
+
accessibilityRole: 'button',
|
|
123
|
+
accessibilityLabel: openLabel,
|
|
124
|
+
onPress: () => {
|
|
125
|
+
if (!dragging.current)
|
|
126
|
+
onOpen();
|
|
127
|
+
},
|
|
128
|
+
style: react_native_1.StyleSheet.absoluteFill,
|
|
129
|
+
},
|
|
130
|
+
// Not touchable, or the native video view keeps the tap meant for the bubble.
|
|
131
|
+
(0, react_1.createElement)(react_native_1.View, { pointerEvents: 'none', style: react_native_1.StyleSheet.absoluteFill }, children)), (0, react_1.createElement)(react_native_1.Pressable, {
|
|
132
|
+
accessibilityRole: 'button',
|
|
133
|
+
accessibilityLabel: closeLabel,
|
|
134
|
+
hitSlop: 8,
|
|
135
|
+
onPress: onClose,
|
|
136
|
+
style: ({ pressed }) => [styles.chip, styles.close, { backgroundColor: chipColor }, pressed && styles.pressed],
|
|
137
|
+
}, (0, react_1.createElement)(vector_icons_1.Ionicons, { name: 'close', size: 14, color: ON_VIDEO })),
|
|
138
|
+
// Says a tap opens it; not a button of its own, as the whole bubble is.
|
|
139
|
+
(0, react_1.createElement)(react_native_1.View, { pointerEvents: 'none', style: [styles.chip, styles.openHint, { backgroundColor: chipColor }] }, (0, react_1.createElement)(vector_icons_1.Ionicons, { name: 'expand', size: 13, color: ON_VIDEO })));
|
|
140
|
+
return (0, react_1.createElement)(react_native_1.View, {
|
|
141
|
+
pointerEvents: 'box-none',
|
|
142
|
+
style: react_native_1.StyleSheet.absoluteFill,
|
|
143
|
+
onLayout: (event) => {
|
|
144
|
+
const next = event.nativeEvent.layout;
|
|
145
|
+
setFrame((current) => ((current === null || current === void 0 ? void 0 : current.width) === next.width && (current === null || current === void 0 ? void 0 : current.height) === next.height ? current : next));
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
// Drawn from the first render, so the video view is up in the same commit as the bubble (on web the
|
|
149
|
+
// replay player seeks and plays the views it has then); hidden until the room is measured and it is
|
|
150
|
+
// in its corner.
|
|
151
|
+
(0, react_1.createElement)(react_native_1.Animated.View, {
|
|
152
|
+
...drag.panHandlers,
|
|
153
|
+
pointerEvents: frame ? 'auto' : 'none',
|
|
154
|
+
style: [styles.bubble, !frame && styles.notPlacedYet, { transform: position.getTranslateTransform() }],
|
|
155
|
+
}, picture));
|
|
156
|
+
}
|
|
157
|
+
const styles = react_native_1.StyleSheet.create({
|
|
158
|
+
bubble: {
|
|
159
|
+
position: 'absolute',
|
|
160
|
+
top: 0,
|
|
161
|
+
left: 0,
|
|
162
|
+
width: WIDTH,
|
|
163
|
+
height: HEIGHT,
|
|
164
|
+
borderRadius: 12,
|
|
165
|
+
backgroundColor: '#000000',
|
|
166
|
+
// Production's, tuned on a device: any lighter and the bubble reads as part of the screen behind it.
|
|
167
|
+
shadowColor: '#000000',
|
|
168
|
+
shadowOpacity: 0.35,
|
|
169
|
+
shadowRadius: 12,
|
|
170
|
+
shadowOffset: { width: 0, height: 4 },
|
|
171
|
+
elevation: 8,
|
|
172
|
+
},
|
|
173
|
+
picture: { ...react_native_1.StyleSheet.absoluteFillObject, borderRadius: 12, overflow: 'hidden', backgroundColor: '#000000' },
|
|
174
|
+
chip: { position: 'absolute', width: 22, height: 22, borderRadius: 11, alignItems: 'center', justifyContent: 'center' },
|
|
175
|
+
// Opposite corners, so a thumb reaching for one is nowhere near the other.
|
|
176
|
+
close: { top: 4, right: 4 },
|
|
177
|
+
openHint: { bottom: 4, right: 4 },
|
|
178
|
+
pressed: { opacity: 0.5 },
|
|
179
|
+
notPlacedYet: { opacity: 0 },
|
|
180
|
+
});
|
|
181
|
+
//# sourceMappingURL=BubbleFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BubbleFrame.js","sourceRoot":"","sources":["../../src/ui/BubbleFrame.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { View } from 'react-native';
|
|
2
|
+
export interface LiveBubbleProps {
|
|
3
|
+
/** A tap on the bubble. Default: back to the Live screen for the show (`LiveSellingProvider`'s `routes.openLive`). */
|
|
4
|
+
onOpen?: (streamId: string) => void;
|
|
5
|
+
/** Behind the ✕ and the expand mark: the app's scrim colour. Default `BUBBLE_CHIP_COLOR`. */
|
|
6
|
+
chipColor?: string;
|
|
7
|
+
/** Screen-reader words for the tap and for ✕. Default "Back to the live show", "Close the live show". */
|
|
8
|
+
openLabel?: string;
|
|
9
|
+
closeLabel?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The live show's floating bubble. An app overlay beside the navigator, not a tile, so it outlives the
|
|
13
|
+
* Live screen that shrank the show: mount it once over the whole app, inside `LiveSessionProvider`
|
|
14
|
+
* (`ShopifyLiveSessionProvider`) and `SafeAreaProvider`. Shown while the session's picture is in the
|
|
15
|
+
* app's bubble (`pipMode` `inapp`): the Live screen's back (while the show plays or waits for the
|
|
16
|
+
* host), picture-in-picture and cart buttons put it there.
|
|
17
|
+
*
|
|
18
|
+
* - **The show's own picture**: `LiveVideoTarget`, which claims the room's video while the bubble is
|
|
19
|
+
* up, at the shopper's own sound setting, over the show's poster.
|
|
20
|
+
* - **A tap** goes back to the Live screen already open, or a new one (`routes.openLive`, or `onOpen`),
|
|
21
|
+
* which ends the bubble as it arrives. **✕** stops the show and lets the session follow whatever is
|
|
22
|
+
* on air again. The show ending closes it (the session leaves `inapp` itself).
|
|
23
|
+
* - **The screen stays on** while it shows, under its own hold (`useKeepScreenAwake`'s tag).
|
|
24
|
+
* - **One shrunk show at a time**: the Live screen stops a replay's bubble as it opens, and the Replay
|
|
25
|
+
* screen this one.
|
|
26
|
+
* - **The phone's own floating window** (`pipMode` `system`). Putting the app away with the bubble up
|
|
27
|
+
* hands the show to it (the session arms it while the bubble shows a playing show), and coming back
|
|
28
|
+
* puts it in the bubble again.
|
|
29
|
+
* - **iOS** draws that window itself. When it came from the bubble, the bubble stays drawn behind it,
|
|
30
|
+
* its video view still bound, so coming back finds the same picture with no new binding and no
|
|
31
|
+
* black frame. When it came from the Live screen, nothing is drawn here.
|
|
32
|
+
* - **Android**'s window is the app, scaled down, so the picture fills it here, over the show's
|
|
33
|
+
* poster (Freckled Poppy's), whichever surface it came from.
|
|
34
|
+
* - **On the web** the session is idle, so nothing is ever drawn.
|
|
35
|
+
*/
|
|
36
|
+
export declare function LiveBubble({ onOpen, chipColor, openLabel, closeLabel }?: LiveBubbleProps): import("react").CElement<import("react-native").ViewProps, View> | import("react").FunctionComponentElement<import("./BubbleFrame").BubbleFrameProps> | null;
|
|
37
|
+
//# sourceMappingURL=LiveBubble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiveBubble.d.ts","sourceRoot":"","sources":["../../src/ui/LiveBubble.ts"],"names":[],"mappings":"AAQA,OAAO,EAAwB,IAAI,EAAE,MAAM,cAAc,CAAC;AAc1D,MAAM,WAAW,eAAe;IAC9B,sHAAsH;IACtH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAsB,EAAE,UAAwB,EAAE,GAAE,eAAoB,gKAqDvH"}
|