@flopay/react 0.1.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 +378 -0
- package/dist/index.cjs +1828 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +402 -0
- package/dist/index.d.ts +402 -0
- package/dist/index.mjs +1783 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +56 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FloPay, FloPayElements } from '@flopay/js';
|
|
3
|
+
import { FloPayAppearance, FloPayError, PaymentResult, CheckoutMode, CheckoutSession, ElementOptions, ElementChangeEvent, TokenizedBody } from '@flopay/shared';
|
|
4
|
+
|
|
5
|
+
/** Props for the `FloPayProvider` component. */
|
|
6
|
+
interface FloPayProviderProps {
|
|
7
|
+
/** A `FloPay` instance or a promise that resolves to one (from `loadFloPay()`). */
|
|
8
|
+
flopay: Promise<FloPay> | FloPay;
|
|
9
|
+
/** Optional configuration applied when creating the elements group. */
|
|
10
|
+
options?: {
|
|
11
|
+
locale?: string;
|
|
12
|
+
appearance?: FloPayAppearance;
|
|
13
|
+
clientSecret?: string;
|
|
14
|
+
/** Total amount in smallest currency unit (cents). Used when no clientSecret. */
|
|
15
|
+
amount?: number;
|
|
16
|
+
/** ISO 4217 currency code (lowercase). Used when no clientSecret. */
|
|
17
|
+
currency?: string;
|
|
18
|
+
/** How payment methods are created. 'manual' (default for cards) or 'auto' (needed for PayPal). */
|
|
19
|
+
paymentMethodCreation?: 'manual' | 'auto';
|
|
20
|
+
/** Billing API base URL. Set once here so child components don't need to repeat it. */
|
|
21
|
+
billingApiUrl?: string;
|
|
22
|
+
};
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Provides FloPay SDK context to the component tree.
|
|
27
|
+
*
|
|
28
|
+
* Wrap your checkout page (or your entire app) with this provider:
|
|
29
|
+
*
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <FloPayProvider flopay={loadFloPay('pk_test_...')}>
|
|
32
|
+
* <CheckoutForm />
|
|
33
|
+
* </FloPayProvider>
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
declare function FloPayProvider({ flopay: floPayProp, options, children, }: FloPayProviderProps): React.ReactElement;
|
|
37
|
+
|
|
38
|
+
/** Props for the all-in-one `FloPayCheckout` wrapper. */
|
|
39
|
+
interface FloPayCheckoutProps {
|
|
40
|
+
/** The checkout session ID (UUID from billing API). */
|
|
41
|
+
sessionId: string;
|
|
42
|
+
/** Billing API base URL. Defaults to the shared `BILLING_API_URL` constant. */
|
|
43
|
+
billingApiUrl?: string;
|
|
44
|
+
/** Visual appearance for payment elements. */
|
|
45
|
+
appearance?: FloPayAppearance;
|
|
46
|
+
/** Locale for payment elements (default: 'auto'). */
|
|
47
|
+
locale?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Fallback publishable key, used only if the session response
|
|
50
|
+
* doesn't include `gatewayData.publishableKey`.
|
|
51
|
+
*/
|
|
52
|
+
fallbackPublishableKey?: string;
|
|
53
|
+
/** Custom loading UI. Defaults to a simple centered spinner. */
|
|
54
|
+
loading?: React.ReactNode;
|
|
55
|
+
/** Custom error UI. Receives the error. Defaults to showing the error message. */
|
|
56
|
+
error?: (error: FloPayError) => React.ReactNode;
|
|
57
|
+
/** Called when the full payment flow completes successfully. */
|
|
58
|
+
onComplete?: (result: PaymentResult) => void;
|
|
59
|
+
/** Called when a payment error occurs. */
|
|
60
|
+
onError?: (error: FloPayError) => void;
|
|
61
|
+
/** Whether to show the PayPal button (default: true). */
|
|
62
|
+
showPayPal?: boolean;
|
|
63
|
+
/** Whether to show Apple Pay button (default: true). Only renders on supported devices. */
|
|
64
|
+
showApplePay?: boolean;
|
|
65
|
+
/** Whether to show Google Pay button (default: true). Only renders on supported devices. */
|
|
66
|
+
showGooglePay?: boolean;
|
|
67
|
+
/** Label for the submit button. */
|
|
68
|
+
submitLabel?: string;
|
|
69
|
+
/** Additional CSS class for the wrapper. */
|
|
70
|
+
className?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Override the default `SplitCardForm`. When provided, children are rendered
|
|
73
|
+
* inside the initialized `FloPayProvider` with session props auto-injected.
|
|
74
|
+
*/
|
|
75
|
+
children?: React.ReactNode;
|
|
76
|
+
/**
|
|
77
|
+
* Override the session's checkoutMode.
|
|
78
|
+
* - `'full'` — show payment form (default)
|
|
79
|
+
* - `'confirm'` — show confirm button, uses saved payment method
|
|
80
|
+
* - `'auto'` — auto-submit with saved PM, falls back to `'full'` on failure
|
|
81
|
+
*/
|
|
82
|
+
checkoutMode?: CheckoutMode;
|
|
83
|
+
/** Label for the confirm button in `confirm` mode. Default: `'Confirm Purchase'`. */
|
|
84
|
+
confirmLabel?: string;
|
|
85
|
+
/** Custom confirm button renderer for `confirm` mode. */
|
|
86
|
+
renderConfirmButton?: (props: {
|
|
87
|
+
onConfirm: () => void;
|
|
88
|
+
isProcessing: boolean;
|
|
89
|
+
}) => React.ReactNode;
|
|
90
|
+
/** Called when the session has already been completed. Receives the successUrl. */
|
|
91
|
+
onSessionCompleted?: (successUrl: string) => void;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* All-in-one checkout component. Fetches the session, initializes the
|
|
95
|
+
* payment provider, and renders the appropriate UI based on checkout mode.
|
|
96
|
+
*
|
|
97
|
+
* **Modes:**
|
|
98
|
+
* - `full` (default) — renders `SplitCardForm` with card fields + wallet buttons
|
|
99
|
+
* - `confirm` — renders a "Confirm Purchase" button, uses saved payment method
|
|
100
|
+
* - `auto` — auto-submits with saved PM, falls back to `full` on failure
|
|
101
|
+
*
|
|
102
|
+
* ```tsx
|
|
103
|
+
* <FloPayCheckout
|
|
104
|
+
* sessionId="sess_abc123"
|
|
105
|
+
* onComplete={(result) => router.push('/success')}
|
|
106
|
+
* onError={(err) => console.error(err)}
|
|
107
|
+
* />
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
declare function FloPayCheckout({ sessionId, billingApiUrl, appearance, locale, fallbackPublishableKey, loading: loadingNode, error: errorNode, onComplete, onError, showPayPal, showApplePay, showGooglePay, submitLabel, className, children, checkoutMode: checkoutModeProp, confirmLabel, renderConfirmButton, onSessionCompleted, }: FloPayCheckoutProps): React.ReactElement;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Returns the current `FloPay` instance, or `null` if the provider
|
|
114
|
+
* is still loading (i.e. the `loadFloPay()` promise has not resolved yet).
|
|
115
|
+
*
|
|
116
|
+
* Must be called within a `<FloPayProvider>`.
|
|
117
|
+
*/
|
|
118
|
+
declare function useFloPay(): FloPay | null;
|
|
119
|
+
/**
|
|
120
|
+
* Returns the current `FloPayElements` instance, or `null` if the
|
|
121
|
+
* provider is still loading.
|
|
122
|
+
*
|
|
123
|
+
* Must be called within a `<FloPayProvider>`.
|
|
124
|
+
*/
|
|
125
|
+
declare function useElements(): FloPayElements | null;
|
|
126
|
+
/** Checkout state exposed by `useCheckout()`. */
|
|
127
|
+
interface CheckoutState {
|
|
128
|
+
session: CheckoutSession | null;
|
|
129
|
+
loading: boolean;
|
|
130
|
+
error: FloPayError | null;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Returns the current checkout session state.
|
|
134
|
+
*
|
|
135
|
+
* Must be called within a `<CheckoutProvider>` (typically rendered
|
|
136
|
+
* internally by `<CheckoutForm>`).
|
|
137
|
+
*/
|
|
138
|
+
declare function useCheckout(): CheckoutState;
|
|
139
|
+
|
|
140
|
+
/** Common props shared by all element components. */
|
|
141
|
+
interface ElementComponentProps {
|
|
142
|
+
/** Additional CSS class for the wrapper div. */
|
|
143
|
+
className?: string;
|
|
144
|
+
/** Element id attribute for the wrapper div. */
|
|
145
|
+
id?: string;
|
|
146
|
+
/** Inline styles for the wrapper div. */
|
|
147
|
+
style?: React.CSSProperties;
|
|
148
|
+
/** Options forwarded to the underlying element. */
|
|
149
|
+
options?: Partial<ElementOptions>;
|
|
150
|
+
/** Fired when the element's value changes. */
|
|
151
|
+
onChange?: (event: ElementChangeEvent) => void;
|
|
152
|
+
/** Fired when the element is fully rendered and ready. */
|
|
153
|
+
onReady?: () => void;
|
|
154
|
+
/** Fired when the element gains focus. */
|
|
155
|
+
onFocus?: () => void;
|
|
156
|
+
/** Fired when the element loses focus. */
|
|
157
|
+
onBlur?: () => void;
|
|
158
|
+
/** Fired when the Escape key is pressed inside the element. */
|
|
159
|
+
onEscape?: () => void;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Renders the unified Payment Element — a single component that accepts
|
|
163
|
+
* cards, wallets, and other payment methods.
|
|
164
|
+
*
|
|
165
|
+
* TODO: Will render inside an iframe for PCI compliance in a future phase.
|
|
166
|
+
*/
|
|
167
|
+
declare const PaymentElement: React.FC<ElementComponentProps>;
|
|
168
|
+
/**
|
|
169
|
+
* Renders a combined card input (number + expiry + CVC).
|
|
170
|
+
*
|
|
171
|
+
* TODO: Will render inside an iframe for PCI compliance in a future phase.
|
|
172
|
+
*/
|
|
173
|
+
declare const CardElement: React.FC<ElementComponentProps>;
|
|
174
|
+
/**
|
|
175
|
+
* Renders a card number input field.
|
|
176
|
+
*
|
|
177
|
+
* TODO: Will render inside an iframe for PCI compliance in a future phase.
|
|
178
|
+
*/
|
|
179
|
+
declare const CardNumberElement: React.FC<ElementComponentProps>;
|
|
180
|
+
/**
|
|
181
|
+
* Renders a card expiry input field.
|
|
182
|
+
*
|
|
183
|
+
* TODO: Will render inside an iframe for PCI compliance in a future phase.
|
|
184
|
+
*/
|
|
185
|
+
declare const CardExpiryElement: React.FC<ElementComponentProps>;
|
|
186
|
+
/**
|
|
187
|
+
* Renders a card CVC input field.
|
|
188
|
+
*
|
|
189
|
+
* TODO: Will render inside an iframe for PCI compliance in a future phase.
|
|
190
|
+
*/
|
|
191
|
+
declare const CardCvcElement: React.FC<ElementComponentProps>;
|
|
192
|
+
/**
|
|
193
|
+
* Renders an address input element.
|
|
194
|
+
*/
|
|
195
|
+
declare const AddressElement: React.FC<ElementComponentProps>;
|
|
196
|
+
|
|
197
|
+
/** Methods exposed via ref for external 3DS handling. */
|
|
198
|
+
interface CheckoutFormRef {
|
|
199
|
+
handleNextAction: (clientSecret: string) => Promise<void>;
|
|
200
|
+
}
|
|
201
|
+
/** Props for the drop-in `CheckoutForm` component. */
|
|
202
|
+
interface CheckoutFormProps {
|
|
203
|
+
/** The checkout session ID (UUID from billing API). */
|
|
204
|
+
sessionId: string;
|
|
205
|
+
/** Billing API base URL. Optional — defaults to the value from FloPayProvider or the shared constant. */
|
|
206
|
+
billingApiUrl?: string;
|
|
207
|
+
/** User's email (required for creating payment intents). */
|
|
208
|
+
email?: string;
|
|
209
|
+
/** User ID (required for processing payments). */
|
|
210
|
+
userId?: string;
|
|
211
|
+
/**
|
|
212
|
+
* Called when the full payment flow completes successfully.
|
|
213
|
+
* By default the form handles everything: tokenize → create intent →
|
|
214
|
+
* confirm → processPayment → 3DS retry. You just handle the success.
|
|
215
|
+
*/
|
|
216
|
+
onComplete?: (result: PaymentResult) => void;
|
|
217
|
+
/** Called when a payment error occurs. */
|
|
218
|
+
onError?: (error: FloPayError) => void;
|
|
219
|
+
/**
|
|
220
|
+
* **Override**: If provided, the form tokenizes the card and confirms
|
|
221
|
+
* the payment, but delegates backend submission to the caller.
|
|
222
|
+
* When omitted, the form calls `processPayment` internally.
|
|
223
|
+
*/
|
|
224
|
+
onTokenizedBody?: (tokenizedBody: TokenizedBody) => void;
|
|
225
|
+
/** Layout style for the PaymentElement. */
|
|
226
|
+
layout?: 'tabs' | 'accordion' | 'auto';
|
|
227
|
+
/** Label for the submit button. */
|
|
228
|
+
submitLabel?: string;
|
|
229
|
+
/** Whether to show an address element. */
|
|
230
|
+
showAddress?: boolean | 'billing' | 'shipping';
|
|
231
|
+
/** Additional CSS class for the form wrapper. */
|
|
232
|
+
className?: string;
|
|
233
|
+
/** Custom children (e.g. a custom submit button). Overrides the default button. */
|
|
234
|
+
children?: React.ReactNode;
|
|
235
|
+
/** First name for billing. */
|
|
236
|
+
firstName?: string;
|
|
237
|
+
/** Last name for billing. */
|
|
238
|
+
lastName?: string;
|
|
239
|
+
/** Checkout version for A/B tracking. */
|
|
240
|
+
chv?: string;
|
|
241
|
+
/** External processing state (used when onTokenizedBody is provided). */
|
|
242
|
+
isProcessing?: boolean;
|
|
243
|
+
/** External error message (used when onTokenizedBody is provided). */
|
|
244
|
+
error?: string | null;
|
|
245
|
+
/** Called when internal error state changes. */
|
|
246
|
+
onErrorChange?: (error: string | null) => void;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Drop-in checkout form that handles the full payment lifecycle by default.
|
|
250
|
+
*
|
|
251
|
+
* **Default (self-contained) mode** — just provide config + onComplete:
|
|
252
|
+
* ```tsx
|
|
253
|
+
* <CheckoutForm
|
|
254
|
+
* sessionId="uuid"
|
|
255
|
+
* billingApiUrl="https://api.example.com"
|
|
256
|
+
* email="user@example.com"
|
|
257
|
+
* userId="user_1"
|
|
258
|
+
* onComplete={(result) => router.push('/success')}
|
|
259
|
+
* />
|
|
260
|
+
* ```
|
|
261
|
+
*
|
|
262
|
+
* The form handles internally:
|
|
263
|
+
* 1. Validate → tokenize card → create PaymentIntent → confirm (3DS)
|
|
264
|
+
* 2. Submit token to `POST /v1/checkouts/sessions/process`
|
|
265
|
+
* 3. If backend returns `3ds_required` → re-confirm with new client secret
|
|
266
|
+
* 4. Wallet resume after redirect (PayPal, etc.)
|
|
267
|
+
*
|
|
268
|
+
* **Override mode** — provide `onTokenizedBody` to handle backend submission yourself:
|
|
269
|
+
* ```tsx
|
|
270
|
+
* <CheckoutForm
|
|
271
|
+
* ...
|
|
272
|
+
* onTokenizedBody={(body) => myCustomProcessPayment(body)}
|
|
273
|
+
* />
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
declare const CheckoutForm: React.ForwardRefExoticComponent<CheckoutFormProps & React.RefAttributes<CheckoutFormRef>>;
|
|
277
|
+
|
|
278
|
+
/** Methods exposed via ref for external 3DS handling. */
|
|
279
|
+
interface SplitCardFormRef {
|
|
280
|
+
handleNextAction: (clientSecret: string) => Promise<void>;
|
|
281
|
+
}
|
|
282
|
+
/** Props for the `SplitCardForm` component. */
|
|
283
|
+
interface SplitCardFormProps {
|
|
284
|
+
/** The checkout session ID (UUID from billing API). */
|
|
285
|
+
sessionId: string;
|
|
286
|
+
/** Billing API base URL. Optional — defaults to the value from FloPayProvider or the shared constant. */
|
|
287
|
+
billingApiUrl?: string;
|
|
288
|
+
/** User's email (required for creating payment intents). */
|
|
289
|
+
email?: string;
|
|
290
|
+
/** User ID (required for processing payments). */
|
|
291
|
+
userId?: string;
|
|
292
|
+
/** Called when the full payment flow completes successfully. */
|
|
293
|
+
onComplete?: (result: PaymentResult) => void;
|
|
294
|
+
/** Called when a payment error occurs. */
|
|
295
|
+
onError?: (error: FloPayError) => void;
|
|
296
|
+
/**
|
|
297
|
+
* **Override**: If provided, delegates backend submission to the caller.
|
|
298
|
+
* When omitted, processes internally (calls processPayment + handles 3DS).
|
|
299
|
+
*/
|
|
300
|
+
onTokenizedBody?: (tokenizedBody: TokenizedBody) => void;
|
|
301
|
+
/** First name for billing. */
|
|
302
|
+
firstName?: string;
|
|
303
|
+
/** Last name for billing. */
|
|
304
|
+
lastName?: string;
|
|
305
|
+
/** Checkout version for A/B tracking. */
|
|
306
|
+
chv?: string;
|
|
307
|
+
/** Label for the submit button. */
|
|
308
|
+
submitLabel?: string;
|
|
309
|
+
/** Additional CSS class for the form wrapper. */
|
|
310
|
+
className?: string;
|
|
311
|
+
/** Custom children (overrides default submit button). */
|
|
312
|
+
children?: React.ReactNode;
|
|
313
|
+
/** External processing state. */
|
|
314
|
+
isProcessing?: boolean;
|
|
315
|
+
/** External error message. */
|
|
316
|
+
error?: string | null;
|
|
317
|
+
/** Called when internal error state changes. */
|
|
318
|
+
onErrorChange?: (error: string | null) => void;
|
|
319
|
+
/** Callback when first name changes (from the name input). */
|
|
320
|
+
onFirstNameChange?: (value: string) => void;
|
|
321
|
+
/** Callback when last name changes (from the name input). */
|
|
322
|
+
onLastNameChange?: (value: string) => void;
|
|
323
|
+
/**
|
|
324
|
+
* Show PayPal button above card fields. Defaults to `true`.
|
|
325
|
+
* Uses Stripe's ExpressCheckoutElement in a separate Elements instance,
|
|
326
|
+
* matching checkout/StripeCardForm architecture.
|
|
327
|
+
*/
|
|
328
|
+
showPayPal?: boolean;
|
|
329
|
+
/** Show Apple Pay button. Defaults to `true`. Only renders on supported devices. */
|
|
330
|
+
showApplePay?: boolean;
|
|
331
|
+
/** Show Google Pay button. Defaults to `true`. Only renders on supported devices. */
|
|
332
|
+
showGooglePay?: boolean;
|
|
333
|
+
/** Total amount in cents (smallest currency unit). Used for wallet/PayPal Elements config. */
|
|
334
|
+
totalAmount?: number;
|
|
335
|
+
/** Currency code (used for PayPal Elements config). */
|
|
336
|
+
currency?: string;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Split card checkout form matching `checkout/StripeCardForm`:
|
|
340
|
+
* PayPal button → divider → CardNumber → CardExpiry + CardCVC → Full Name → Submit.
|
|
341
|
+
*
|
|
342
|
+
* PayPal uses its own Stripe Elements instance (no `paymentMethodCreation`)
|
|
343
|
+
* exactly like checkout does with two separate `<Elements>` wrappers.
|
|
344
|
+
*/
|
|
345
|
+
declare const SplitCardForm: React.ForwardRefExoticComponent<SplitCardFormProps & React.RefAttributes<SplitCardFormRef>>;
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* Props for the `PayPalButton` component.
|
|
349
|
+
*
|
|
350
|
+
* Must be rendered inside its own `FloPayProvider` with `paymentMethodCreation: undefined`
|
|
351
|
+
* (not 'manual') — PayPal cannot share the same Elements instance as card fields.
|
|
352
|
+
*/
|
|
353
|
+
interface PayPalButtonProps {
|
|
354
|
+
/** The checkout session ID (UUID from billing API). */
|
|
355
|
+
sessionId: string;
|
|
356
|
+
/** Billing API base URL. Optional — defaults to the value from FloPayProvider or the shared constant. */
|
|
357
|
+
billingApiUrl?: string;
|
|
358
|
+
/** User's email. */
|
|
359
|
+
email?: string;
|
|
360
|
+
/** User ID for processing payments. */
|
|
361
|
+
userId?: string;
|
|
362
|
+
/** First name for billing. */
|
|
363
|
+
firstName?: string;
|
|
364
|
+
/** Last name for billing. */
|
|
365
|
+
lastName?: string;
|
|
366
|
+
/** Checkout version for tracking. */
|
|
367
|
+
chv?: string;
|
|
368
|
+
/**
|
|
369
|
+
* Called with tokenized data after PayPal authorization.
|
|
370
|
+
* If omitted, the component calls processPayment internally.
|
|
371
|
+
*/
|
|
372
|
+
onTokenizedBody?: (body: TokenizedBody) => void;
|
|
373
|
+
/** Called on successful payment (self-contained mode). */
|
|
374
|
+
onComplete?: () => void;
|
|
375
|
+
/** Called when an error occurs. */
|
|
376
|
+
onErrorChange?: (error: string | null) => void;
|
|
377
|
+
/** External processing state. */
|
|
378
|
+
isProcessing?: boolean;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* PayPal button that handles the full PayPal payment flow.
|
|
382
|
+
*
|
|
383
|
+
* **Important**: PayPal requires its own `FloPayProvider` — it cannot share
|
|
384
|
+
* the same Stripe Elements instance as card fields when they use
|
|
385
|
+
* `paymentMethodCreation: 'manual'`. This matches `checkout/StripeCardForm`
|
|
386
|
+
* which renders PayPal in a separate `<Elements>` wrapper.
|
|
387
|
+
*
|
|
388
|
+
* ```tsx
|
|
389
|
+
* {/* Card fields provider (paymentMethodCreation: 'manual') *\/}
|
|
390
|
+
* <FloPayProvider flopay={flopay} options={{ amount, currency }}>
|
|
391
|
+
* <SplitCardForm ... />
|
|
392
|
+
* </FloPayProvider>
|
|
393
|
+
*
|
|
394
|
+
* {/* PayPal provider (no paymentMethodCreation) *\/}
|
|
395
|
+
* <FloPayProvider flopay={flopay} options={{ amount, currency, paymentMethodCreation: 'auto' }}>
|
|
396
|
+
* <PayPalButton ... />
|
|
397
|
+
* </FloPayProvider>
|
|
398
|
+
* ```
|
|
399
|
+
*/
|
|
400
|
+
declare function PayPalButton({ sessionId, billingApiUrl, email, userId, firstName, lastName, chv, onTokenizedBody, onComplete, onErrorChange, isProcessing, }: PayPalButtonProps): React.ReactElement;
|
|
401
|
+
|
|
402
|
+
export { AddressElement, CardCvcElement, CardElement, CardExpiryElement, CardNumberElement, CheckoutForm, type CheckoutFormProps, type CheckoutFormRef, type CheckoutState, type ElementComponentProps, FloPayCheckout, type FloPayCheckoutProps, FloPayProvider, type FloPayProviderProps, PayPalButton, type PayPalButtonProps, PaymentElement, SplitCardForm, type SplitCardFormProps, type SplitCardFormRef, useCheckout, useElements, useFloPay };
|