@openreceive/browser 0.2.4 → 0.3.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.
@@ -102,6 +102,7 @@ declare const OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS: 3000;
102
102
  */
103
103
  declare const OPENRECEIVE_DEFAULT_PREFIX: "/openreceive";
104
104
  declare const OPENRECEIVE_COPY_FEEDBACK_MS: 1800;
105
+ declare const OPENRECEIVE_PROVIDER_PREVIEW_LIMIT: 4;
105
106
  declare const OPENRECEIVE_CHECKOUT_ELEMENT_TAG_NAME: "openreceive-checkout";
106
107
  declare const OPENRECEIVE_THEME_TOGGLE_ELEMENT_TAG_NAME: "openreceive-theme-toggle";
107
108
  declare const OPENRECEIVE_CHECKOUT_ELEMENT_EVENTS: {
@@ -174,6 +175,8 @@ declare const OPENRECEIVE_CHECKOUT_DATA_ATTRIBUTES: {
174
175
  readonly meta: "data-openreceive-meta";
175
176
  readonly state: "data-openreceive-state";
176
177
  readonly actions: "data-openreceive-actions";
178
+ /** What the payer is buying, when the host's amount hook named it. */
179
+ readonly orderDescription: "data-openreceive-order-description";
177
180
  readonly theme: "data-openreceive-theme";
178
181
  readonly themeToggle: "data-openreceive-theme-toggle";
179
182
  };
@@ -183,6 +186,7 @@ declare const OPENRECEIVE_CHECKOUT_DATA_SELECTORS: {
183
186
  readonly meta: "[data-openreceive-meta]";
184
187
  readonly state: "[data-openreceive-state]";
185
188
  readonly actions: "[data-openreceive-actions]";
189
+ readonly orderDescription: "[data-openreceive-order-description]";
186
190
  readonly theme: "[data-openreceive-theme]";
187
191
  readonly themeToggle: "[data-openreceive-theme-toggle]";
188
192
  };
@@ -190,6 +194,17 @@ declare const OPENRECEIVE_CHECKOUT_ELEMENT_PARTS: {
190
194
  readonly copy: "copy";
191
195
  readonly startOver: "start-over";
192
196
  };
197
+ /**
198
+ * Named slots the checkout element projects host light-DOM children into.
199
+ *
200
+ * `order` is the element's answer to React's render-prop `children`: a line-item
201
+ * strip, a thumbnail, a "you are buying" summary, drawn from the order
202
+ * OpenReceive does not own. It is projected through a `<slot>` in the shadow
203
+ * root, so it survives every re-render of the shell's `innerHTML` untouched.
204
+ */
205
+ declare const OPENRECEIVE_CHECKOUT_ELEMENT_SLOTS: {
206
+ readonly order: "order";
207
+ };
193
208
  declare const OPENRECEIVE_CHECKOUT_ELEMENT_PART_SELECTORS: {
194
209
  readonly copy: "[part=\"copy\"]";
195
210
  readonly startOver: "[part=\"start-over\"]";
@@ -253,12 +268,31 @@ declare const OPENRECEIVE_CHECKOUT_ELEMENT_ATTRIBUTES: {
253
268
  * push/replace the URL via the History API.
254
269
  */
255
270
  readonly routeReference: "route-reference";
271
+ /**
272
+ * Does a payer who closes this tab have a URL that brings them back to this
273
+ * checkout? Only the refund screen's copy depends on it — see
274
+ * `SwapDisplayModel.refundReturnLabel`. Unset, the element infers it from
275
+ * `sync-url` / `route-reference`; set it when the host owns a per-order route
276
+ * of its own, which the element cannot see.
277
+ */
278
+ readonly resumable: "resumable";
256
279
  /**
257
280
  * Base URL of an external bolt11 decoder. When set, the checkout shows a
258
281
  * "Decode" link to `{decode-link-url}?invoice={bolt11}`. Omitted (the
259
282
  * default), no decode link is rendered and the invoice never leaves the page.
260
283
  */
261
284
  readonly decodeLinkUrl: "decode-link-url";
285
+ /**
286
+ * Where this app serves the packages' `dist/assets` trees, as one base URL —
287
+ * the string form of the `resolveAssetUrl` seam, so plain markup and the
288
+ * Vue/Svelte/Angular wrappers can reach it (a function cannot cross an HTML
289
+ * attribute). Every packaged key is a relative path under one `assets/` root,
290
+ * so the value is joined to it directly: `asset-base-url="/openreceive-assets"`
291
+ * makes `assets/icons/btc.svg` load from
292
+ * `/openreceive-assets/assets/icons/btc.svg`. A `resolveAssetUrl` passed to
293
+ * `defineElements` wins over it.
294
+ */
295
+ readonly assetBaseUrl: "asset-base-url";
262
296
  /** `polling="false"` renders the snapshot without status polling (no POST /payments/check). */
263
297
  readonly polling: "polling";
264
298
  /** Status poll cadence in milliseconds; defaults to OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS. */
@@ -390,6 +424,15 @@ interface SwapFeeBreakdown {
390
424
  /** The fee as a percentage of the cart total, e.g. "5.9%", when computable. */
391
425
  readonly feePercent?: string;
392
426
  }
427
+ /** One value the payer has to reproduce, with the affordance that lets them. */
428
+ interface SwapCopyRow {
429
+ readonly label: string;
430
+ readonly value: string;
431
+ /** The untruncated string a copy button writes, when it differs from `value`. */
432
+ readonly copyValue?: string;
433
+ /** Render the value in a selectable field rather than a code block. */
434
+ readonly selectable: boolean;
435
+ }
393
436
  /**
394
437
  * How a deposit on this rail can actually go missing, which is what decides how
395
438
  * loud the deposit panel should be.
@@ -448,7 +491,22 @@ interface SwapDisplayModel {
448
491
  readonly networkWarning: string;
449
492
  readonly depositAddress: string;
450
493
  readonly depositMemo?: string;
494
+ /**
495
+ * BARE, with no asset symbol appended: it pastes into a wallet's amount field,
496
+ * where "0.032664 SOL" is not a number. Join the symbol at the point of
497
+ * display if a sentence needs it.
498
+ */
451
499
  readonly depositAmount: string;
500
+ /**
501
+ * Every value the payer must reproduce, as labelled rows: the deposit address,
502
+ * the memo where the rail has one, and the amount. The amount is the one that
503
+ * gets left out and the one that costs money — on token rails (USDT_TRON,
504
+ * USDT_ETH, USDC_ETH) the QR encodes the bare address and carries NO amount,
505
+ * so the payer types it off the screen, and a short send against a fixed-rate
506
+ * swap order is an underpayment: `refund_required`, a refund form, and a payer
507
+ * who has to come back.
508
+ */
509
+ readonly copyRows: readonly SwapCopyRow[];
452
510
  readonly providerStateLabel: string;
453
511
  readonly providerStateDetail: string;
454
512
  readonly state: "creating" | "deposit" | "progress" | "settled" | "expired" | "refund_required" | "refund_pending" | "refunded" | "attention" | "failed";
@@ -467,6 +525,18 @@ interface SwapDisplayModel {
467
525
  * refund_address.
468
526
  */
469
527
  readonly refundAllowed: boolean;
528
+ /**
529
+ * What to tell the payer about getting BACK to this refund screen, already
530
+ * decided from whether the host said the checkout is resumable.
531
+ *
532
+ * `checkoutLabels.refundReturnWarning` — "Bookmark this page…" — is only true
533
+ * if the checkout HAS a URL. A swap checkout that lives at one route with no
534
+ * per-order path (a single-page shop, a modal) sends that payer back to an
535
+ * empty checkout and their deposit is unreachable through the UI. So the
536
+ * choice is made here, from one declared fact, rather than left to every host
537
+ * to notice: render this string, never either label directly.
538
+ */
539
+ readonly refundReturnLabel: string;
470
540
  readonly refundTxId?: string;
471
541
  readonly refundReason?: string;
472
542
  readonly depositReceivedAmount?: string;
@@ -490,6 +560,11 @@ interface CheckoutInvoiceSnapshot {
490
560
  readonly expires_at?: number;
491
561
  readonly settled_at?: number;
492
562
  readonly swap?: CheckoutInvoiceSwapSnapshot;
563
+ /**
564
+ * What the payer is buying, carried through from the snapshot. Data, not a
565
+ * derived label, so it survives `normalizeCheckoutState`.
566
+ */
567
+ readonly description?: string;
493
568
  }
494
569
  interface CheckoutPaymentMethod {
495
570
  readonly pay_in_asset: string;
@@ -524,6 +599,13 @@ interface CheckoutSnapshot {
524
599
  readonly active?: CheckoutInvoiceSnapshot;
525
600
  readonly invoices: readonly CheckoutInvoiceSnapshot[];
526
601
  readonly payment_methods?: readonly CheckoutPaymentMethod[];
602
+ /**
603
+ * What the payer is buying, in the host's own words — one display string the
604
+ * host returned from `amountFor` / `amount_for`. OpenReceive owns no line
605
+ * items, so this is the whole of what it carries; a richer summary is the
606
+ * host's own markup (React `children`, the element's `order` slot).
607
+ */
608
+ readonly description?: string;
527
609
  }
528
610
  interface CheckoutElementAttributeOptions {
529
611
  /**
@@ -558,11 +640,24 @@ interface CheckoutElementAttributeOptions {
558
640
  * Order id from the app router (e.g. Next.js). When set, skip History API URL sync.
559
641
  */
560
642
  readonly routeReference?: string;
643
+ /**
644
+ * Does a payer who closes this tab have a URL that brings them back? Emitted
645
+ * in every mode, because the refund screen it governs shows in every mode.
646
+ */
647
+ readonly resumable?: boolean;
561
648
  /**
562
649
  * Base URL of an external bolt11 decoder. Omitted (the default), the element
563
650
  * renders no "Decode" link and the invoice is never sent to a third party.
564
651
  */
565
652
  readonly decodeLinkUrl?: string;
653
+ /**
654
+ * Where this app serves the packages' `dist/assets` trees, as one base URL.
655
+ * The string form of the `resolveAssetUrl` seam: every packaged asset key is a
656
+ * relative path under one `assets/` root, so the value is joined to it
657
+ * directly. Emitted as the element's `asset-base-url` attribute, which is how
658
+ * the Vue/Svelte/Angular wrappers reach a seam a function cannot cross.
659
+ */
660
+ readonly assetBaseUrl?: string;
566
661
  /** False renders the snapshot without status polling (no POST /payments/check). */
567
662
  readonly polling?: boolean;
568
663
  /** Status poll cadence in milliseconds; defaults to OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS. */
@@ -737,12 +832,49 @@ interface CheckoutControllerOptions extends Omit<CheckoutWatcherOptions, "onStat
737
832
  * to render a snapshot without polling.
738
833
  */
739
834
  readonly prefix?: string;
835
+ /**
836
+ * False renders the snapshot without a status fetcher of its own. `prefix`
837
+ * still names the mount, so the swap-refund calls keep working — polling and
838
+ * "where the routes live" are two questions.
839
+ */
840
+ readonly polling?: boolean;
740
841
  readonly fetch?: typeof globalThis.fetch;
741
842
  readonly statusHeaders?: Readonly<Record<string, string>>;
742
843
  readonly clipboard?: Pick<Clipboard, "writeText">;
743
844
  readonly open?: (uri: string) => void;
744
845
  }
745
- interface CheckoutController {
846
+ /**
847
+ * The two-step swap refund, and the staging that makes it survive polling. The
848
+ * controller implements it; a renderer that is handed one (React's
849
+ * `PaymentWizard`) takes exactly this much of it.
850
+ */
851
+ interface SwapRefundStaging {
852
+ /**
853
+ * Step one: post `/swaps/status` and hold the address the payer typed so the
854
+ * panel can show it back for confirmation. It touches no refund route —
855
+ * nothing is submitted until {@link confirmSwapRefund}.
856
+ *
857
+ * The staged address is folded into every later snapshot, so polling cannot
858
+ * wipe what the payer is reviewing. `attemptId` is
859
+ * `SwapDisplayModel.attemptId`; the payment hash is resolved from the
860
+ * snapshot already in hand.
861
+ */
862
+ stageSwapRefund(options: {
863
+ readonly attemptId: string;
864
+ readonly refundAddress: string;
865
+ }): Promise<CheckoutInvoiceSnapshot>;
866
+ /** Step two: the only call that posts `/swaps/refunds`. */
867
+ confirmSwapRefund(options: {
868
+ readonly attemptId: string;
869
+ readonly refundAddress: string;
870
+ }): Promise<CheckoutInvoiceSnapshot>;
871
+ /**
872
+ * Drop the staged address. The payer leaving the swap for Lightning is the one
873
+ * exit that is not a submitted refund.
874
+ */
875
+ clearSwapRefundStaging(): void;
876
+ }
877
+ interface CheckoutController extends SwapRefundStaging {
746
878
  start(): CheckoutState;
747
879
  stop(): void;
748
880
  getState(): CheckoutState | undefined;
@@ -863,6 +995,8 @@ interface WizardRouteAssetDisplay {
863
995
  readonly label: string;
864
996
  readonly subtitle: string;
865
997
  readonly icon: string;
998
+ /** The packaged key behind `icon`, for a host serving the files itself. */
999
+ readonly iconPath: string;
866
1000
  readonly selected: boolean;
867
1001
  }
868
1002
  interface WizardProviderTutorialDisplay {
@@ -893,7 +1027,18 @@ interface WizardRouteDisplay {
893
1027
  readonly key: string;
894
1028
  readonly title: string;
895
1029
  readonly subtitle: string;
1030
+ /**
1031
+ * The providers to draw — every one the route has, or the first
1032
+ * `providerPreviewLimit` of them.
1033
+ */
896
1034
  readonly providers: readonly WizardProviderDisplay[];
1035
+ /**
1036
+ * How many the route has in total, before any preview limit. The registry
1037
+ * carries ~37 wallets for Lightning, so a host that renders them beside a QR
1038
+ * needs a limit and a "show all N" affordance; this is the N, and
1039
+ * {@link WizardRouteDisplay.providers}.length is what it is showing.
1040
+ */
1041
+ readonly providerCount: number;
897
1042
  }
898
1043
  /**
899
1044
  * One display row for post-settlement transaction details. Values are already
@@ -975,6 +1120,42 @@ declare function copyInvoice(options: CopyInvoiceOptions): Promise<void>;
975
1120
  * that decision — see docs/guides/headless-checkout.md.
976
1121
  */
977
1122
  declare function openWallet(options: OpenWalletOptions): string;
1123
+ /**
1124
+ * A QR that follows a changing payload, without every host rewriting the same
1125
+ * effect.
1126
+ *
1127
+ * {@link createQrSvg} and {@link createQrPayloadSvg} are ASYNC, and that is the
1128
+ * trap: `dangerouslySetInnerHTML={{ __html: createQrSvg(invoice) }}` type-checks
1129
+ * (React types `__html` as `string | TrustedHTML`, and `TrustedHTML` is an empty
1130
+ * interface every object satisfies) and paints the literal text
1131
+ * "[object Promise]" inside the QR box. Resolving it by hand then needs the
1132
+ * other half nobody writes the first time: a slow encode that lands AFTER the
1133
+ * payload changed must not paint the old QR over the new one.
1134
+ *
1135
+ * So: call `show`/`showPayload` whenever the payload changes and render what
1136
+ * `onValue` last handed you. Only the newest call can publish — an earlier
1137
+ * encode still in flight is dropped, resolved or rejected. `stop()` drops the
1138
+ * one in flight, for a host going away. Same shape as
1139
+ * {@link createTickingValueController}: DOM-free, framework-free, one
1140
+ * implementation instead of one per renderer.
1141
+ */
1142
+ interface QrSvgControllerOptions {
1143
+ /** The newest encoded SVG. Not called for a superseded or stopped encode. */
1144
+ onValue(svg: string): void;
1145
+ /** Encode failures, on the same terms. */
1146
+ onError?(error: unknown): void;
1147
+ readonly encoder?: QrEncoder;
1148
+ readonly width?: number;
1149
+ }
1150
+ interface QrSvgController {
1151
+ /** Encode a bolt11, as the `lightning:` URI a wallet expects. */
1152
+ show(invoice: string): void;
1153
+ /** Encode a payload verbatim — a swap deposit URI, say. */
1154
+ showPayload(payload: string): void;
1155
+ /** Publish nothing further; the encode in flight is abandoned. */
1156
+ stop(): void;
1157
+ }
1158
+ declare function createQrSvgController(options: QrSvgControllerOptions): QrSvgController;
978
1159
 
979
1160
  declare function createCheckoutController(options: CheckoutControllerOptions): CheckoutController;
980
1161
 
@@ -1071,4 +1252,4 @@ declare function deriveStatus(invoice: StatusInvoiceLike, options?: {
1071
1252
  readonly now?: UnixSeconds;
1072
1253
  }): Status;
1073
1254
 
1074
- export { type CheckoutPhase as $, type ThemeToggleElementAttributeOptions as A, type BrowserLoggerOption as B, type CheckoutInvoiceSnapshot as C, type ThemeToggleElementAttributes as D, type StoredThemeModelOptions as E, type ThemeModel as F, type ThemeModelOptions as G, type ReadThemePreferenceOptions as H, type ThemeControlTargets as I, type ThemeStorageOptions as J, type PaymentWizardControllerOptions as K, type PaymentWizardController as L, type PaymentWizardSelection as M, type PaymentWizardModel as N, type WizardRouteDisplay as O, type ParseOpenReceiveOptionalIntegerOptions as P, type PaymentWizardSelectionAction as Q, type ResolvedTheme as R, type SwapDisplayModel as S, type ThemePreference as T, type UnixSeconds as U, type BrowserLogContext as V, type WizardRouteAssetDisplay as W, type BrowserLogger as X, BrowserRequestError as Y, type CheckoutController as Z, type CheckoutControllerOptions as _, type PaymentMethod as a, type CheckoutStatusRefresh as a0, OPENRECEIVE_CHECKOUT_DATA_ATTRIBUTES as a1, OPENRECEIVE_CHECKOUT_DATA_SELECTORS as a2, OPENRECEIVE_CHECKOUT_ELEMENT_ATTRIBUTES as a3, OPENRECEIVE_CHECKOUT_ELEMENT_EVENTS as a4, OPENRECEIVE_CHECKOUT_ELEMENT_PARTS as a5, OPENRECEIVE_CHECKOUT_ELEMENT_PART_SELECTORS as a6, OPENRECEIVE_CHECKOUT_ELEMENT_TAG_NAME as a7, OPENRECEIVE_COPY_FEEDBACK_MS as a8, OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS as a9, escapeHtml as aA, formatAmountCaption as aB, formatDepositAmount as aC, formatFiatAmount as aD, formatMsats as aE, formatSwapLimit as aF, formatUnixTime as aG, openWallet as aH, prepareCheckout as aI, requestCheckout as aJ, type BrowserLogLevel as aK, type BrowserLogEntry as aL, type CopyInvoiceOptions as aM, type GuestCheckoutResumeController as aN, type GuestCheckoutResumeOptions as aO, type OpenWalletOptions as aP, type PrepareCheckoutOptions as aQ, type QrOptions as aR, type RequestCheckoutOptions as aS, type StatusInvoiceLike as aT, createGuestCheckoutResume as aU, createGuestOrderFetcher as aV, createLightningUri as aW, createQrPngDataUrl as aX, OPENRECEIVE_DEFAULT_PREFIX as aa, OPENRECEIVE_PAYMENT_WIZARD_ATTRIBUTES as ab, OPENRECEIVE_PAYMENT_WIZARD_SELECTORS as ac, OPENRECEIVE_THEME_STORAGE_KEY as ad, OPENRECEIVE_THEME_TOGGLE_ELEMENT_ATTRIBUTES as ae, OPENRECEIVE_THEME_TOGGLE_ELEMENT_EVENTS as af, OPENRECEIVE_THEME_TOGGLE_ELEMENT_PARTS as ag, OPENRECEIVE_THEME_TOGGLE_ELEMENT_PART_SELECTORS as ah, OPENRECEIVE_THEME_TOGGLE_ELEMENT_TAG_NAME as ai, type QrEncoder as aj, type Status as ak, type WizardProviderDisplay as al, assertDisplayInvoice as am, copyInvoice as an, createCheckoutActionEvent as ao, createCheckoutController as ap, createCheckoutErrorEvent as aq, createCheckoutProviderCopyEvent as ar, createCheckoutStateEvent as as, createQrPayloadSvg as at, createQrSvg as au, createStatusFetcher as av, createThemeChangeEvent as aw, deriveCheckoutStateLabels as ax, deriveStatus as ay, enterCheckoutResumePath as az, type PaymentMethodOption as b, type TickingValueOptions as c, type TickingValueController as d, type TransientFeedbackOptions as e, type TransientFeedbackController as f, type SwapDepositRisk as g, type CheckoutInvoiceSwapSnapshot as h, type CheckoutState as i, type TransactionDetailsInput as j, type TransactionDetailRow as k, type CheckoutSnapshot as l, type CreateCheckoutStateOptions as m, type CheckoutStatusModelInput as n, type CheckoutStatusModel as o, type CheckoutPaymentMethod as p, type ThemeAttributeTarget as q, type CheckoutElementAttributes as r, type CheckoutElementAttributeOptions as s, type CheckoutElementEventHandlers as t, type CheckoutElementListeners as u, type CreateCheckoutShellOptions as v, type CheckoutShellElements as w, type CheckoutShellOptions as x, type CheckoutShellModel as y, type CreateOpenReceiveThemeToggleElementOptions as z };
1255
+ export { type CheckoutStatusRefresh as $, type ThemeToggleElementAttributes as A, type BrowserLoggerOption as B, type CheckoutInvoiceSnapshot as C, type StoredThemeModelOptions as D, type ThemeModel as E, type ThemeModelOptions as F, type ReadThemePreferenceOptions as G, type ThemeControlTargets as H, type ThemeStorageOptions as I, type PaymentWizardControllerOptions as J, type PaymentWizardController as K, type PaymentWizardSelection as L, type PaymentWizardModel as M, type WizardRouteDisplay as N, type PaymentWizardSelectionAction as O, type ParseOpenReceiveOptionalIntegerOptions as P, type BrowserLogContext as Q, type ResolvedTheme as R, type SwapDisplayModel as S, type ThemePreference as T, type UnixSeconds as U, type BrowserLogger as V, type WizardRouteAssetDisplay as W, BrowserRequestError as X, type CheckoutController as Y, type CheckoutControllerOptions as Z, type CheckoutPhase as _, type PaymentMethod as a, createGuestOrderFetcher as a$, OPENRECEIVE_CHECKOUT_DATA_ATTRIBUTES as a0, OPENRECEIVE_CHECKOUT_DATA_SELECTORS as a1, OPENRECEIVE_CHECKOUT_ELEMENT_ATTRIBUTES as a2, OPENRECEIVE_CHECKOUT_ELEMENT_EVENTS as a3, OPENRECEIVE_CHECKOUT_ELEMENT_PARTS as a4, OPENRECEIVE_CHECKOUT_ELEMENT_PART_SELECTORS as a5, OPENRECEIVE_CHECKOUT_ELEMENT_SLOTS as a6, OPENRECEIVE_CHECKOUT_ELEMENT_TAG_NAME as a7, OPENRECEIVE_COPY_FEEDBACK_MS as a8, OPENRECEIVE_DEFAULT_POLL_INTERVAL_MS as a9, createQrSvgController as aA, createStatusFetcher as aB, createThemeChangeEvent as aC, deriveCheckoutStateLabels as aD, deriveStatus as aE, enterCheckoutResumePath as aF, escapeHtml as aG, formatAmountCaption as aH, formatDepositAmount as aI, formatFiatAmount as aJ, formatMsats as aK, formatSwapLimit as aL, formatUnixTime as aM, openWallet as aN, prepareCheckout as aO, requestCheckout as aP, type BrowserLogLevel as aQ, type BrowserLogEntry as aR, type CopyInvoiceOptions as aS, type GuestCheckoutResumeController as aT, type GuestCheckoutResumeOptions as aU, type OpenWalletOptions as aV, type PrepareCheckoutOptions as aW, type QrOptions as aX, type RequestCheckoutOptions as aY, type StatusInvoiceLike as aZ, createGuestCheckoutResume as a_, OPENRECEIVE_DEFAULT_PREFIX as aa, OPENRECEIVE_PAYMENT_WIZARD_ATTRIBUTES as ab, OPENRECEIVE_PAYMENT_WIZARD_SELECTORS as ac, OPENRECEIVE_PROVIDER_PREVIEW_LIMIT as ad, OPENRECEIVE_THEME_STORAGE_KEY as ae, OPENRECEIVE_THEME_TOGGLE_ELEMENT_ATTRIBUTES as af, OPENRECEIVE_THEME_TOGGLE_ELEMENT_EVENTS as ag, OPENRECEIVE_THEME_TOGGLE_ELEMENT_PARTS as ah, OPENRECEIVE_THEME_TOGGLE_ELEMENT_PART_SELECTORS as ai, OPENRECEIVE_THEME_TOGGLE_ELEMENT_TAG_NAME as aj, type QrEncoder as ak, type QrSvgController as al, type QrSvgControllerOptions as am, type Status as an, type SwapCopyRow as ao, type SwapRefundStaging as ap, type WizardProviderDisplay as aq, assertDisplayInvoice as ar, copyInvoice as as, createCheckoutActionEvent as at, createCheckoutController as au, createCheckoutErrorEvent as av, createCheckoutProviderCopyEvent as aw, createCheckoutStateEvent as ax, createQrPayloadSvg as ay, createQrSvg as az, type PaymentMethodOption as b, createLightningUri as b0, createQrPngDataUrl as b1, type TickingValueOptions as c, type TickingValueController as d, type TransientFeedbackOptions as e, type TransientFeedbackController as f, type CheckoutSnapshot as g, type SwapDepositRisk as h, type CheckoutState as i, type TransactionDetailsInput as j, type TransactionDetailRow as k, type CreateCheckoutStateOptions as l, type CheckoutStatusModelInput as m, type CheckoutStatusModel as n, type CheckoutPaymentMethod as o, type ThemeAttributeTarget as p, type CheckoutElementAttributes as q, type CheckoutElementAttributeOptions as r, type CheckoutElementEventHandlers as s, type CheckoutElementListeners as t, type CreateCheckoutShellOptions as u, type CheckoutShellElements as v, type CheckoutShellOptions as w, type CheckoutShellModel as x, type CreateOpenReceiveThemeToggleElementOptions as y, type ThemeToggleElementAttributeOptions as z };