@1money/component-ui 0.0.66 → 0.0.67
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/es/business/Dialog/ResultDialog/ResultDialog.d.ts +3 -0
- package/es/business/Dialog/ResultDialog/ResultDialog.js +126 -0
- package/es/business/Dialog/ResultDialog/constants.d.ts +27 -0
- package/es/business/Dialog/ResultDialog/constants.js +24 -0
- package/es/business/Dialog/ResultDialog/index.d.ts +3 -0
- package/es/business/Dialog/ResultDialog/index.js +4 -0
- package/es/business/Dialog/ResultDialog/interface.d.ts +95 -0
- package/es/business/Dialog/ResultDialog/interface.js +2 -0
- package/es/business/Dialog/ResultDialog/presets.d.ts +178 -0
- package/es/business/Dialog/ResultDialog/presets.js +139 -0
- package/es/business/Dialog/ResultDialog/style/ResultDialog.css +29 -0
- package/es/business/Dialog/ResultDialog/style/css.js +2 -0
- package/es/business/Dialog/ResultDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/ResultDialog/style/index.js +2 -0
- package/es/business/Dialog/TransactionDialog/TransactionDialog.d.ts +3 -0
- package/es/business/Dialog/TransactionDialog/TransactionDialog.js +174 -0
- package/es/business/Dialog/TransactionDialog/constants.d.ts +34 -0
- package/es/business/Dialog/TransactionDialog/constants.js +33 -0
- package/es/business/Dialog/TransactionDialog/index.d.ts +3 -0
- package/es/business/Dialog/TransactionDialog/index.js +4 -0
- package/es/business/Dialog/TransactionDialog/interface.d.ts +116 -0
- package/es/business/Dialog/TransactionDialog/interface.js +2 -0
- package/es/business/Dialog/TransactionDialog/presets.d.ts +89 -0
- package/es/business/Dialog/TransactionDialog/presets.js +62 -0
- package/es/business/Dialog/TransactionDialog/style/TransactionDialog.css +36 -0
- package/es/business/Dialog/TransactionDialog/style/css.js +2 -0
- package/es/business/Dialog/TransactionDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/TransactionDialog/style/index.js +2 -0
- package/es/business/Dialog/VerificationDialog/ResendRow.d.ts +14 -0
- package/es/business/Dialog/VerificationDialog/ResendRow.js +65 -0
- package/es/business/Dialog/VerificationDialog/VerificationDialog.d.ts +3 -0
- package/es/business/Dialog/VerificationDialog/VerificationDialog.js +116 -0
- package/es/business/Dialog/VerificationDialog/constants.d.ts +35 -0
- package/es/business/Dialog/VerificationDialog/constants.js +31 -0
- package/es/business/Dialog/VerificationDialog/hooks/index.d.ts +4 -0
- package/es/business/Dialog/VerificationDialog/hooks/index.js +3 -0
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +50 -0
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +137 -0
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +26 -0
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +103 -0
- package/es/business/Dialog/VerificationDialog/index.d.ts +3 -0
- package/es/business/Dialog/VerificationDialog/index.js +4 -0
- package/es/business/Dialog/VerificationDialog/interface.d.ts +124 -0
- package/es/business/Dialog/VerificationDialog/interface.js +2 -0
- package/es/business/Dialog/VerificationDialog/style/VerificationDialog.css +30 -0
- package/es/business/Dialog/VerificationDialog/style/css.js +2 -0
- package/es/business/Dialog/VerificationDialog/style/index.d.ts +1 -0
- package/es/business/Dialog/VerificationDialog/style/index.js +2 -0
- package/es/business/Dialog/index.d.ts +3 -0
- package/es/business/Dialog/index.js +4 -0
- package/es/business/index.d.ts +1 -0
- package/es/business/index.js +2 -1
- package/es/components/Button/Button.js +7 -3
- package/es/components/Button/constants.d.ts +1 -0
- package/es/components/Button/constants.js +2 -1
- package/es/components/Button/interface.d.ts +2 -0
- package/es/components/Button/style/Button.css +4 -0
- package/es/components/Dialog/Dialog.js +16 -7
- package/es/components/Dialog/constants.d.ts +1 -0
- package/es/components/Dialog/constants.js +3 -2
- package/es/components/Dialog/interface.d.ts +1 -0
- package/es/components/Dialog/style/Dialog.css +29 -0
- package/es/index.css +1 -1
- package/lib/business/Dialog/ResultDialog/ResultDialog.d.ts +3 -0
- package/lib/business/Dialog/ResultDialog/ResultDialog.js +132 -0
- package/lib/business/Dialog/ResultDialog/constants.d.ts +27 -0
- package/lib/business/Dialog/ResultDialog/constants.js +30 -0
- package/lib/business/Dialog/ResultDialog/index.d.ts +3 -0
- package/lib/business/Dialog/ResultDialog/index.js +40 -0
- package/lib/business/Dialog/ResultDialog/interface.d.ts +95 -0
- package/lib/business/Dialog/ResultDialog/interface.js +6 -0
- package/lib/business/Dialog/ResultDialog/presets.d.ts +178 -0
- package/lib/business/Dialog/ResultDialog/presets.js +145 -0
- package/lib/business/Dialog/ResultDialog/style/ResultDialog.css +29 -0
- package/lib/business/Dialog/ResultDialog/style/css.js +4 -0
- package/lib/business/Dialog/ResultDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/ResultDialog/style/index.js +4 -0
- package/lib/business/Dialog/TransactionDialog/TransactionDialog.d.ts +3 -0
- package/lib/business/Dialog/TransactionDialog/TransactionDialog.js +180 -0
- package/lib/business/Dialog/TransactionDialog/constants.d.ts +34 -0
- package/lib/business/Dialog/TransactionDialog/constants.js +39 -0
- package/lib/business/Dialog/TransactionDialog/index.d.ts +3 -0
- package/lib/business/Dialog/TransactionDialog/index.js +40 -0
- package/lib/business/Dialog/TransactionDialog/interface.d.ts +116 -0
- package/lib/business/Dialog/TransactionDialog/interface.js +6 -0
- package/lib/business/Dialog/TransactionDialog/presets.d.ts +89 -0
- package/lib/business/Dialog/TransactionDialog/presets.js +68 -0
- package/lib/business/Dialog/TransactionDialog/style/TransactionDialog.css +36 -0
- package/lib/business/Dialog/TransactionDialog/style/css.js +4 -0
- package/lib/business/Dialog/TransactionDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/TransactionDialog/style/index.js +4 -0
- package/lib/business/Dialog/VerificationDialog/ResendRow.d.ts +14 -0
- package/lib/business/Dialog/VerificationDialog/ResendRow.js +71 -0
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.d.ts +3 -0
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +122 -0
- package/lib/business/Dialog/VerificationDialog/constants.d.ts +35 -0
- package/lib/business/Dialog/VerificationDialog/constants.js +37 -0
- package/lib/business/Dialog/VerificationDialog/hooks/index.d.ts +4 -0
- package/lib/business/Dialog/VerificationDialog/hooks/index.js +20 -0
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.d.ts +50 -0
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +144 -0
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.d.ts +26 -0
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +110 -0
- package/lib/business/Dialog/VerificationDialog/index.d.ts +3 -0
- package/lib/business/Dialog/VerificationDialog/index.js +43 -0
- package/lib/business/Dialog/VerificationDialog/interface.d.ts +124 -0
- package/lib/business/Dialog/VerificationDialog/interface.js +6 -0
- package/lib/business/Dialog/VerificationDialog/style/VerificationDialog.css +30 -0
- package/lib/business/Dialog/VerificationDialog/style/css.js +4 -0
- package/lib/business/Dialog/VerificationDialog/style/index.d.ts +1 -0
- package/lib/business/Dialog/VerificationDialog/style/index.js +4 -0
- package/lib/business/Dialog/index.d.ts +3 -0
- package/lib/business/Dialog/index.js +39 -0
- package/lib/business/index.d.ts +1 -0
- package/lib/business/index.js +12 -1
- package/lib/components/Button/Button.js +7 -3
- package/lib/components/Button/constants.d.ts +1 -0
- package/lib/components/Button/constants.js +2 -1
- package/lib/components/Button/interface.d.ts +2 -0
- package/lib/components/Button/style/Button.css +4 -0
- package/lib/components/Dialog/Dialog.js +16 -7
- package/lib/components/Dialog/constants.d.ts +1 -0
- package/lib/components/Dialog/constants.js +3 -2
- package/lib/components/Dialog/interface.d.ts +1 -0
- package/lib/components/Dialog/style/Dialog.css +29 -0
- package/lib/index.css +1 -1
- package/package.json +21 -1
- package/scripts/mcp-server/examples.generated.json +18 -6
- package/scripts/mcp-server/index.generated.json +25 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ButtonColor } from "../../../components/Button";
|
|
3
|
+
import type { DialogProps } from "../../../components/Dialog";
|
|
4
|
+
import type { IconName } from "../../../components/Icons";
|
|
5
|
+
import type { TransactionDialogPresetCopy } from './presets';
|
|
6
|
+
/** Value color tone for a detail row. */
|
|
7
|
+
export type TransactionDetailTone = 'default' | 'success';
|
|
8
|
+
/**
|
|
9
|
+
* One key/value row in the transaction detail list. The row layout (label left,
|
|
10
|
+
* value right, hairline separator, padding) is locked; only the content and a
|
|
11
|
+
* couple of value-styling toggles are configurable.
|
|
12
|
+
*/
|
|
13
|
+
export interface TransactionDetailRow {
|
|
14
|
+
/** Left-column label, e.g. `"Network"`, `"Transaction Fees"`. */
|
|
15
|
+
label: ReactNode;
|
|
16
|
+
/**
|
|
17
|
+
* Right-column value. Plain text, or a node for richer values — an icon +
|
|
18
|
+
* text (e.g. a network chip) or a multi-line wallet address.
|
|
19
|
+
*/
|
|
20
|
+
value: ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Value color tone. `'success'` renders the value in positive green — use it
|
|
23
|
+
* for values like `"Free"`.
|
|
24
|
+
* @default 'default'
|
|
25
|
+
*/
|
|
26
|
+
valueTone?: TransactionDetailTone;
|
|
27
|
+
/**
|
|
28
|
+
* Emphasize the value as the summary total — larger and bold (e.g. the final
|
|
29
|
+
* "Recipient get" amount).
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
emphasis?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Show a copy-to-clipboard icon next to the value — for a wallet address,
|
|
35
|
+
* transaction id, etc. `true` copies the rendered text; pass `{ text }` to
|
|
36
|
+
* copy an exact string. Backed by the library's `Typography` copyable (with
|
|
37
|
+
* its default success toast).
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
40
|
+
copyable?: boolean | {
|
|
41
|
+
text: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A footer action button. `primaryAction` is the highlighted button (light-blue
|
|
46
|
+
* by default); `secondaryAction` is the dismiss button (grey by default).
|
|
47
|
+
*/
|
|
48
|
+
export interface TransactionDialogAction {
|
|
49
|
+
/**
|
|
50
|
+
* Button label. Optional on `primaryAction` when a `preset` supplies one
|
|
51
|
+
* (its `primaryLabel`); required on `secondaryAction`.
|
|
52
|
+
*/
|
|
53
|
+
label?: ReactNode;
|
|
54
|
+
/** Click handler. */
|
|
55
|
+
onClick?: () => void;
|
|
56
|
+
/** Disable the button. */
|
|
57
|
+
disabled?: boolean;
|
|
58
|
+
/** Show a spinner and block clicks while an async action is in flight. */
|
|
59
|
+
loading?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Color tone override. Defaults to `'secondary'` (light blue) for
|
|
62
|
+
* `primaryAction` and `'grey'` for `secondaryAction`.
|
|
63
|
+
*/
|
|
64
|
+
color?: ButtonColor;
|
|
65
|
+
}
|
|
66
|
+
/** The centered "Trouble with your transaction? Let us help!" footer prompt. */
|
|
67
|
+
export interface TransactionDialogHelp {
|
|
68
|
+
/** Muted prompt text. Falls back to the preset's help prompt. */
|
|
69
|
+
promptText?: ReactNode;
|
|
70
|
+
/** Trailing brand-colored action text. Falls back to the preset's help action. */
|
|
71
|
+
actionText?: ReactNode;
|
|
72
|
+
/** Fires when the action text is clicked or activated via keyboard. */
|
|
73
|
+
onClick?: () => void;
|
|
74
|
+
}
|
|
75
|
+
export interface TransactionDialogProps extends Pick<DialogProps, 'open' | 'size' | 'maskClosable' | 'showCloseIcon' | 'showBackIcon' | 'onBack' | 'className'> {
|
|
76
|
+
/**
|
|
77
|
+
* Pre-canned status object (e.g. `TRANSACTION_DIALOG_PRESETS.failed`) that
|
|
78
|
+
* fills `illustration`, `title`, `description`, the close icon, the primary
|
|
79
|
+
* action label, and the help row. Any explicit prop below overrides it.
|
|
80
|
+
*/
|
|
81
|
+
preset?: TransactionDialogPresetCopy;
|
|
82
|
+
/** Dialog heading, e.g. `"Transaction completed"`. Optional when a `preset` supplies one. */
|
|
83
|
+
title?: ReactNode;
|
|
84
|
+
/** Supporting copy under the title, e.g. `"Your funds have been sent..."`. */
|
|
85
|
+
description?: ReactNode;
|
|
86
|
+
/**
|
|
87
|
+
* Illustration above the title (left-aligned, 74px). Pass an `IconName` (e.g.
|
|
88
|
+
* `'illusChecked'`, `'illusPending'`, `'illusError'`) or any node.
|
|
89
|
+
*/
|
|
90
|
+
illustration?: ReactNode | IconName;
|
|
91
|
+
/**
|
|
92
|
+
* The key/value detail rows, separated by hairlines.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```tsx
|
|
96
|
+
* const details: TransactionDetailRow[] = [
|
|
97
|
+
* { label: 'Destination Wallet', value: "Jack's wallet" },
|
|
98
|
+
* { label: 'Transaction Fees', value: 'Free', valueTone: 'success' },
|
|
99
|
+
* { label: 'Recipient get', value: '454,650.00 USD1', emphasis: true },
|
|
100
|
+
* ];
|
|
101
|
+
* <TransactionDialog open title="Transaction completed" details={details} />
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
details: TransactionDetailRow[];
|
|
105
|
+
/** Highlighted (light-blue) action, e.g. "View in transaction history". */
|
|
106
|
+
primaryAction?: TransactionDialogAction;
|
|
107
|
+
/** Optional dismiss (grey) action beside the primary, e.g. "Done" / "Close". */
|
|
108
|
+
secondaryAction?: TransactionDialogAction;
|
|
109
|
+
/** Centered help prompt below the actions. */
|
|
110
|
+
help?: TransactionDialogHelp;
|
|
111
|
+
/**
|
|
112
|
+
* Fires from the close icon, mask click, and Escape key. Set your `open`
|
|
113
|
+
* state to `false` here.
|
|
114
|
+
*/
|
|
115
|
+
onClose?: () => void;
|
|
116
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nL2ludGVyZmFjZS5qcyIsIm5hbWVzIjpbXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyIsInNvdXJjZXMiOlsiYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nL2ludGVyZmFjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge307Il0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IconName } from "../../../components/Icons";
|
|
3
|
+
/** Default copy for the optional help row. */
|
|
4
|
+
export interface TransactionDialogPresetHelp {
|
|
5
|
+
/** Muted prompt text. */
|
|
6
|
+
promptText?: ReactNode;
|
|
7
|
+
/** Trailing brand-colored action text. */
|
|
8
|
+
actionText?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Pre-canned config for a transaction-status scenario. A preset fills the
|
|
12
|
+
* dialog's illustration, title, description, close icon, the primary action
|
|
13
|
+
* label, and the help row; the consumer wires the handlers and supplies the
|
|
14
|
+
* dynamic `details` rows. Any explicit prop overrides the preset.
|
|
15
|
+
*/
|
|
16
|
+
export interface TransactionDialogPresetCopy {
|
|
17
|
+
/** Left-aligned 74px illustration. */
|
|
18
|
+
illustration: IconName;
|
|
19
|
+
/** Dialog heading. */
|
|
20
|
+
title: ReactNode;
|
|
21
|
+
/** Supporting copy under the title. */
|
|
22
|
+
description: ReactNode;
|
|
23
|
+
/** Default label for the primary action, when one is rendered. */
|
|
24
|
+
primaryLabel?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the close (X) icon shows by default.
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
showCloseIcon?: boolean;
|
|
30
|
+
/** Default help-row copy below the actions. */
|
|
31
|
+
help?: TransactionDialogPresetHelp;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Canonical transaction-status scenarios. Pass a leaf straight to
|
|
35
|
+
* `TransactionDialog`'s `preset` prop — there is no string key to remember; the
|
|
36
|
+
* IDE navigates and type-checks it.
|
|
37
|
+
*
|
|
38
|
+
* Copy is taken from the Figma "Transaction completed" frame and the scp-ui Send
|
|
39
|
+
* result statuses (`INIT` → `initiated`, `FAILURE` → `failed`, `PENDING` →
|
|
40
|
+
* `pending`).
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```tsx
|
|
44
|
+
* import { TRANSACTION_DIALOG_PRESETS } from '@1money/component-ui/business/Dialog/TransactionDialog';
|
|
45
|
+
*
|
|
46
|
+
* <TransactionDialog
|
|
47
|
+
* open={open}
|
|
48
|
+
* preset={TRANSACTION_DIALOG_PRESETS.failed}
|
|
49
|
+
* details={details}
|
|
50
|
+
* primaryAction={{ onClick: retry }}
|
|
51
|
+
* secondaryAction={{ label: 'Close', onClick: close }}
|
|
52
|
+
* help={{ onClick: openSupport }}
|
|
53
|
+
* onClose={close}
|
|
54
|
+
* />;
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare const TRANSACTION_DIALOG_PRESETS: {
|
|
58
|
+
readonly completed: {
|
|
59
|
+
readonly illustration: "illusChecked";
|
|
60
|
+
readonly title: "Transaction completed";
|
|
61
|
+
readonly description: "Your funds have been sent successfully.";
|
|
62
|
+
readonly primaryLabel: "View in transaction history";
|
|
63
|
+
readonly showCloseIcon: true;
|
|
64
|
+
readonly help: TransactionDialogPresetHelp;
|
|
65
|
+
};
|
|
66
|
+
readonly initiated: {
|
|
67
|
+
readonly illustration: "illusChecked";
|
|
68
|
+
readonly title: "Your transaction initiated";
|
|
69
|
+
readonly description: "We will send you an email when the transaction is completed.";
|
|
70
|
+
readonly primaryLabel: "View in transaction history";
|
|
71
|
+
readonly showCloseIcon: true;
|
|
72
|
+
};
|
|
73
|
+
readonly failed: {
|
|
74
|
+
readonly illustration: "illusError";
|
|
75
|
+
readonly title: "Your transaction failed";
|
|
76
|
+
readonly description: "Please try again or contact support for assistance.";
|
|
77
|
+
readonly primaryLabel: "Try again";
|
|
78
|
+
readonly showCloseIcon: true;
|
|
79
|
+
readonly help: TransactionDialogPresetHelp;
|
|
80
|
+
};
|
|
81
|
+
readonly pending: {
|
|
82
|
+
readonly illustration: "illusPending";
|
|
83
|
+
readonly title: "Your Transaction is Under Review";
|
|
84
|
+
readonly description: "Please wait for the transaction to be completed.";
|
|
85
|
+
readonly primaryLabel: "View in transaction history";
|
|
86
|
+
readonly showCloseIcon: true;
|
|
87
|
+
readonly help: TransactionDialogPresetHelp;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TRANSACTION_DIALOG_PRESETS = void 0;
|
|
7
|
+
var SUPPORT_HELP = {
|
|
8
|
+
promptText: 'Trouble with your transaction?',
|
|
9
|
+
actionText: 'Let us help!'
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Canonical transaction-status scenarios. Pass a leaf straight to
|
|
13
|
+
* `TransactionDialog`'s `preset` prop — there is no string key to remember; the
|
|
14
|
+
* IDE navigates and type-checks it.
|
|
15
|
+
*
|
|
16
|
+
* Copy is taken from the Figma "Transaction completed" frame and the scp-ui Send
|
|
17
|
+
* result statuses (`INIT` → `initiated`, `FAILURE` → `failed`, `PENDING` →
|
|
18
|
+
* `pending`).
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* import { TRANSACTION_DIALOG_PRESETS } from '@1money/component-ui/business/Dialog/TransactionDialog';
|
|
23
|
+
*
|
|
24
|
+
* <TransactionDialog
|
|
25
|
+
* open={open}
|
|
26
|
+
* preset={TRANSACTION_DIALOG_PRESETS.failed}
|
|
27
|
+
* details={details}
|
|
28
|
+
* primaryAction={{ onClick: retry }}
|
|
29
|
+
* secondaryAction={{ label: 'Close', onClick: close }}
|
|
30
|
+
* help={{ onClick: openSupport }}
|
|
31
|
+
* onClose={close}
|
|
32
|
+
* />;
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
var TRANSACTION_DIALOG_PRESETS = exports.TRANSACTION_DIALOG_PRESETS = {
|
|
36
|
+
completed: {
|
|
37
|
+
illustration: 'illusChecked',
|
|
38
|
+
title: 'Transaction completed',
|
|
39
|
+
description: 'Your funds have been sent successfully.',
|
|
40
|
+
primaryLabel: 'View in transaction history',
|
|
41
|
+
showCloseIcon: true,
|
|
42
|
+
help: SUPPORT_HELP
|
|
43
|
+
},
|
|
44
|
+
initiated: {
|
|
45
|
+
illustration: 'illusChecked',
|
|
46
|
+
title: 'Your transaction initiated',
|
|
47
|
+
description: 'We will send you an email when the transaction is completed.',
|
|
48
|
+
primaryLabel: 'View in transaction history',
|
|
49
|
+
showCloseIcon: true
|
|
50
|
+
},
|
|
51
|
+
failed: {
|
|
52
|
+
illustration: 'illusError',
|
|
53
|
+
title: 'Your transaction failed',
|
|
54
|
+
description: 'Please try again or contact support for assistance.',
|
|
55
|
+
primaryLabel: 'Try again',
|
|
56
|
+
showCloseIcon: true,
|
|
57
|
+
help: SUPPORT_HELP
|
|
58
|
+
},
|
|
59
|
+
pending: {
|
|
60
|
+
illustration: 'illusPending',
|
|
61
|
+
title: 'Your Transaction is Under Review',
|
|
62
|
+
description: 'Please wait for the transaction to be completed.',
|
|
63
|
+
primaryLabel: 'View in transaction history',
|
|
64
|
+
showCloseIcon: true,
|
|
65
|
+
help: SUPPORT_HELP
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9zcmMvYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nL3ByZXNldHMudHMiLCJidXNpbmVzcy9EaWFsb2cvVHJhbnNhY3Rpb25EaWFsb2cvcHJlc2V0cy5qcyJdLCJuYW1lcyI6WyJTVVBQT1JUX0hFTFAiLCJwcm9tcHRUZXh0IiwiYWN0aW9uVGV4dCIsIlRSQU5TQUNUSU9OX0RJQUxPR19QUkVTRVRTIiwiZXhwb3J0cyIsImNvbXBsZXRlZCIsImlsbHVzdHJhdGlvbiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJwcmltYXJ5TGFiZWwiLCJzaG93Q2xvc2VJY29uIiwiaGVscCIsImluaXRpYXRlZCIsImZhaWxlZCIsInBlbmRpbmciXSwibWFwcGluZ3MiOiI7Ozs7OztBQW1DQSxJQUFNQSxZQUFZLEdBQWdDO0VBQ2hEQyxVQUFVLEVBQUUsZ0NBQWdDO0VBQzVDQyxVQUFVLEVBQUU7QUNsQ2QsQ0RtQ0M7QUFFRDtBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEcUNPLElBQU1DLDBCQUEwQixHQUFBQyxPQUFBLENBQUFELDBCQUFBLEdBQUc7RUFDeENFLFNBQVMsRUFBRTtJQUNUQyxZQUFZLEVBQUUsY0FBYztJQUM1QkMsS0FBSyxFQUFFLHVCQUF1QjtJQUM5QkMsV0FBVyxFQUFFLHlDQUF5QztJQUN0REMsWUFBWSxFQUFFLDZCQUE2QjtJQUMzQ0MsYUFBYSxFQUFFLElBQUk7SUFDbkJDLElBQUksRUFBRVg7RUNuQ04sQ0RvQ0Q7RUFDRFksU0FBUyxFQUFFO0lBQ1ROLFlBQVksRUFBRSxjQUFjO0lBQzVCQyxLQUFLLEVBQUUsNEJBQTRCO0lBQ25DQyxXQUFXLEVBQUUsOERBQThEO0lBQzNFQyxZQUFZLEVBQUUsNkJBQTZCO0lBQzNDQyxhQUFhLEVBQUU7RUNuQ2YsQ0RvQ0Q7RUFDREcsTUFBTSxFQUFFO0lBQ05QLFlBQVksRUFBRSxZQUFZO0lBQzFCQyxLQUFLLEVBQUUseUJBQXlCO0lBQ2hDQyxXQUFXLEVBQUUscURBQXFEO0lBQ2xFQyxZQUFZLEVBQUUsV0FBVztJQUN6QkMsYUFBYSxFQUFFLElBQUk7SUFDbkJDLElBQUksRUFBRVg7RUNuQ04sQ0RvQ0Q7RUFDRGMsT0FBTyxFQUFFO0lBQ1BSLFlBQVksRUFBRSxjQUFjO0lBQzVCQyxLQUFLLEVBQUUsa0NBQWtDO0lBQ3pDQyxXQUFXLEVBQUUsa0RBQWtEO0lBQy9EQyxZQUFZLEVBQUUsNkJBQTZCO0lBQzNDQyxhQUFhLEVBQUUsSUFBSTtJQUNuQkMsSUFBSSxFQUFFWDtFQ25DTjtBQUNKLENEb0NnRSIsImZpbGUiOiJidXNpbmVzcy9EaWFsb2cvVHJhbnNhY3Rpb25EaWFsb2cvcHJlc2V0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiY29uc3QgU1VQUE9SVF9IRUxQID0ge1xuICAgIHByb21wdFRleHQ6ICdUcm91YmxlIHdpdGggeW91ciB0cmFuc2FjdGlvbj8nLFxuICAgIGFjdGlvblRleHQ6ICdMZXQgdXMgaGVscCEnLFxufTtcbi8qKlxuICogQ2Fub25pY2FsIHRyYW5zYWN0aW9uLXN0YXR1cyBzY2VuYXJpb3MuIFBhc3MgYSBsZWFmIHN0cmFpZ2h0IHRvXG4gKiBgVHJhbnNhY3Rpb25EaWFsb2dgJ3MgYHByZXNldGAgcHJvcCDigJQgdGhlcmUgaXMgbm8gc3RyaW5nIGtleSB0byByZW1lbWJlcjsgdGhlXG4gKiBJREUgbmF2aWdhdGVzIGFuZCB0eXBlLWNoZWNrcyBpdC5cbiAqXG4gKiBDb3B5IGlzIHRha2VuIGZyb20gdGhlIEZpZ21hIFwiVHJhbnNhY3Rpb24gY29tcGxldGVkXCIgZnJhbWUgYW5kIHRoZSBzY3AtdWkgU2VuZFxuICogcmVzdWx0IHN0YXR1c2VzIChgSU5JVGAg4oaSIGBpbml0aWF0ZWRgLCBgRkFJTFVSRWAg4oaSIGBmYWlsZWRgLCBgUEVORElOR2Ag4oaSXG4gKiBgcGVuZGluZ2ApLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGltcG9ydCB7IFRSQU5TQUNUSU9OX0RJQUxPR19QUkVTRVRTIH0gZnJvbSAnQDFtb25leS9jb21wb25lbnQtdWkvYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nJztcbiAqXG4gKiA8VHJhbnNhY3Rpb25EaWFsb2dcbiAqICAgb3Blbj17b3Blbn1cbiAqICAgcHJlc2V0PXtUUkFOU0FDVElPTl9ESUFMT0dfUFJFU0VUUy5mYWlsZWR9XG4gKiAgIGRldGFpbHM9e2RldGFpbHN9XG4gKiAgIHByaW1hcnlBY3Rpb249e3sgb25DbGljazogcmV0cnkgfX1cbiAqICAgc2Vjb25kYXJ5QWN0aW9uPXt7IGxhYmVsOiAnQ2xvc2UnLCBvbkNsaWNrOiBjbG9zZSB9fVxuICogICBoZWxwPXt7IG9uQ2xpY2s6IG9wZW5TdXBwb3J0IH19XG4gKiAgIG9uQ2xvc2U9e2Nsb3NlfVxuICogLz47XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IFRSQU5TQUNUSU9OX0RJQUxPR19QUkVTRVRTID0ge1xuICAgIGNvbXBsZXRlZDoge1xuICAgICAgICBpbGx1c3RyYXRpb246ICdpbGx1c0NoZWNrZWQnLFxuICAgICAgICB0aXRsZTogJ1RyYW5zYWN0aW9uIGNvbXBsZXRlZCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnWW91ciBmdW5kcyBoYXZlIGJlZW4gc2VudCBzdWNjZXNzZnVsbHkuJyxcbiAgICAgICAgcHJpbWFyeUxhYmVsOiAnVmlldyBpbiB0cmFuc2FjdGlvbiBoaXN0b3J5JyxcbiAgICAgICAgc2hvd0Nsb3NlSWNvbjogdHJ1ZSxcbiAgICAgICAgaGVscDogU1VQUE9SVF9IRUxQLFxuICAgIH0sXG4gICAgaW5pdGlhdGVkOiB7XG4gICAgICAgIGlsbHVzdHJhdGlvbjogJ2lsbHVzQ2hlY2tlZCcsXG4gICAgICAgIHRpdGxlOiAnWW91ciB0cmFuc2FjdGlvbiBpbml0aWF0ZWQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1dlIHdpbGwgc2VuZCB5b3UgYW4gZW1haWwgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgY29tcGxldGVkLicsXG4gICAgICAgIHByaW1hcnlMYWJlbDogJ1ZpZXcgaW4gdHJhbnNhY3Rpb24gaGlzdG9yeScsXG4gICAgICAgIHNob3dDbG9zZUljb246IHRydWUsXG4gICAgfSxcbiAgICBmYWlsZWQ6IHtcbiAgICAgICAgaWxsdXN0cmF0aW9uOiAnaWxsdXNFcnJvcicsXG4gICAgICAgIHRpdGxlOiAnWW91ciB0cmFuc2FjdGlvbiBmYWlsZWQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1BsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0IGZvciBhc3Npc3RhbmNlLicsXG4gICAgICAgIHByaW1hcnlMYWJlbDogJ1RyeSBhZ2FpbicsXG4gICAgICAgIHNob3dDbG9zZUljb246IHRydWUsXG4gICAgICAgIGhlbHA6IFNVUFBPUlRfSEVMUCxcbiAgICB9LFxuICAgIHBlbmRpbmc6IHtcbiAgICAgICAgaWxsdXN0cmF0aW9uOiAnaWxsdXNQZW5kaW5nJyxcbiAgICAgICAgdGl0bGU6ICdZb3VyIFRyYW5zYWN0aW9uIGlzIFVuZGVyIFJldmlldycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUGxlYXNlIHdhaXQgZm9yIHRoZSB0cmFuc2FjdGlvbiB0byBiZSBjb21wbGV0ZWQuJyxcbiAgICAgICAgcHJpbWFyeUxhYmVsOiAnVmlldyBpbiB0cmFuc2FjdGlvbiBoaXN0b3J5JyxcbiAgICAgICAgc2hvd0Nsb3NlSWNvbjogdHJ1ZSxcbiAgICAgICAgaGVscDogU1VQUE9SVF9IRUxQLFxuICAgIH0sXG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves the spacing value for a given token key.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} $key - The spacing token key (e.g., '100', '200').
|
|
5
|
+
* @return {length|null} The computed spacing value or null if the key is invalid.
|
|
6
|
+
* @example
|
|
7
|
+
* .element {
|
|
8
|
+
* padding: om-spacing-token('200'); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
9
|
+
* }
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Computes the spacing value based on a token key or a direct length value.
|
|
13
|
+
*
|
|
14
|
+
* @param {string|length} $value - The spacing token key (e.g., '100') or a direct length value (e.g., '16px').
|
|
15
|
+
* @return {length} The computed spacing value.
|
|
16
|
+
* @example
|
|
17
|
+
* .element {
|
|
18
|
+
* margin: om-spacing-value('300'); // Returns 12px if $om-sys-spacing-unit is 4px
|
|
19
|
+
* padding: om-spacing-value(16px); // Returns 16px
|
|
20
|
+
* gap: om-spacing-value(2); // Returns 8px if $om-sys-spacing-unit is 4px
|
|
21
|
+
* }
|
|
22
|
+
*/
|
|
23
|
+
.om-transaction-dialog-row {
|
|
24
|
+
padding: var(--om-spacing-300, 12px) 0;
|
|
25
|
+
border-top: 1px solid var(--om-border-default, #d1d2d2);
|
|
26
|
+
}
|
|
27
|
+
.om-transaction-dialog-value {
|
|
28
|
+
text-align: right;
|
|
29
|
+
}
|
|
30
|
+
.om-transaction-dialog-actions > button {
|
|
31
|
+
width: 100%;
|
|
32
|
+
white-space: nowrap;
|
|
33
|
+
}
|
|
34
|
+
.om-transaction-dialog-help a {
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("./TransactionDialog.css");
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9UcmFuc2FjdGlvbkRpYWxvZy9zcmMvYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQUEiLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nL3N0eWxlL2Nzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './TransactionDialog.css';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("./TransactionDialog.css");
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9UcmFuc2FjdGlvbkRpYWxvZy9zcmMvYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nL3N0eWxlL2luZGV4LnRzIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQUEiLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL1RyYW5zYWN0aW9uRGlhbG9nL3N0eWxlL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { VerificationDialogResend } from './interface';
|
|
3
|
+
export interface ResendRowProps {
|
|
4
|
+
resend: VerificationDialogResend;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The "Haven't received the code? Resend" row below the footer divider. Owns its
|
|
8
|
+
* own cooldown: while counting down (or while a resend is in flight) the row is
|
|
9
|
+
* inert — muted, non-clickable, default cursor — and shows the remaining time.
|
|
10
|
+
* When resending is allowed, both the prompt text and the link trigger it and
|
|
11
|
+
* show a pointer cursor. Rendered only when a `resend` config is provided, so
|
|
12
|
+
* the countdown hook never runs for dialogs without resend.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ResendRow: FC<ResendRowProps>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ResendRow = void 0;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
var _Divider = require("../../../components/Divider");
|
|
9
|
+
var _Flex = require("../../../components/Flex");
|
|
10
|
+
var _Typography = require("../../../components/Typography");
|
|
11
|
+
var _classnames = require("../../../utils/classnames");
|
|
12
|
+
var _constants = require("./constants");
|
|
13
|
+
var _hooks = require("./hooks");
|
|
14
|
+
/**
|
|
15
|
+
* The "Haven't received the code? Resend" row below the footer divider. Owns its
|
|
16
|
+
* own cooldown: while counting down (or while a resend is in flight) the row is
|
|
17
|
+
* inert — muted, non-clickable, default cursor — and shows the remaining time.
|
|
18
|
+
* When resending is allowed, both the prompt text and the link trigger it and
|
|
19
|
+
* show a pointer cursor. Rendered only when a `resend` config is provided, so
|
|
20
|
+
* the countdown hook never runs for dialogs without resend.
|
|
21
|
+
*/
|
|
22
|
+
var ResendRow = exports.ResendRow = function ResendRow(_ref) {
|
|
23
|
+
var resend = _ref.resend;
|
|
24
|
+
var promptText = resend.promptText,
|
|
25
|
+
_resend$actionText = resend.actionText,
|
|
26
|
+
actionText = _resend$actionText === void 0 ? _constants.VERIFICATION_DIALOG.defaults.resendLabel : _resend$actionText,
|
|
27
|
+
onResend = resend.onResend,
|
|
28
|
+
cooldown = resend.cooldown;
|
|
29
|
+
var _useResendCountdown = (0, _hooks.useResendCountdown)({
|
|
30
|
+
onResend: onResend,
|
|
31
|
+
cooldown: cooldown
|
|
32
|
+
}),
|
|
33
|
+
canResend = _useResendCountdown.canResend,
|
|
34
|
+
remaining = _useResendCountdown.remaining,
|
|
35
|
+
formatted = _useResendCountdown.formatted,
|
|
36
|
+
triggerResend = _useResendCountdown.resend;
|
|
37
|
+
var handleClick = function handleClick() {
|
|
38
|
+
if (canResend) triggerResend();
|
|
39
|
+
};
|
|
40
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
41
|
+
if (!canResend || !_constants.VERIFICATION_DIALOG.activationKeys.includes(event.key)) return;
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
triggerResend();
|
|
44
|
+
};
|
|
45
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
46
|
+
children: [(0, _jsxRuntime.jsx)(_Divider.Divider, {}), (0, _jsxRuntime.jsxs)(_Flex.Flex, {
|
|
47
|
+
align: 'center',
|
|
48
|
+
justify: 'space-between',
|
|
49
|
+
className: _constants.VERIFICATION_DIALOG.cls.recovery,
|
|
50
|
+
children: [promptText && (0, _jsxRuntime.jsx)(_Typography.Typography.Body, {
|
|
51
|
+
size: 'md',
|
|
52
|
+
strong: true,
|
|
53
|
+
color: 'default-tertiary',
|
|
54
|
+
className: (0, _classnames.joinCls)(_constants.VERIFICATION_DIALOG.cls.recoveryText, canResend && _constants.VERIFICATION_DIALOG.mod.clickable),
|
|
55
|
+
onClick: canResend ? handleClick : undefined,
|
|
56
|
+
children: promptText
|
|
57
|
+
}), (0, _jsxRuntime.jsxs)(_Typography.Typography.Link, {
|
|
58
|
+
size: 'md',
|
|
59
|
+
role: 'button',
|
|
60
|
+
tabIndex: 0,
|
|
61
|
+
disabled: !canResend,
|
|
62
|
+
color: canResend ? 'brand' : 'default-tertiary',
|
|
63
|
+
className: (0, _classnames.joinCls)(_constants.VERIFICATION_DIALOG.cls.resend, canResend && _constants.VERIFICATION_DIALOG.mod.clickable),
|
|
64
|
+
onClick: handleClick,
|
|
65
|
+
onKeyDown: handleKeyDown,
|
|
66
|
+
children: [actionText, remaining > 0 ? " (".concat(formatted, ")") : '']
|
|
67
|
+
})]
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvUmVzZW5kUm93LmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1Jlc2VuZFJvdy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX0RpdmlkZXIiLCJfRmxleCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfY29uc3RhbnRzIiwiX2hvb2tzIiwiUmVzZW5kUm93IiwiZXhwb3J0cyIsIl9yZWYiLCJyZXNlbmQiLCJwcm9tcHRUZXh0IiwiX3Jlc2VuZCRhY3Rpb25UZXh0IiwiYWN0aW9uVGV4dCIsIlZFUklGSUNBVElPTl9ESUFMT0ciLCJkZWZhdWx0cyIsInJlc2VuZExhYmVsIiwib25SZXNlbmQiLCJjb29sZG93biIsIl91c2VSZXNlbmRDb3VudGRvd24iLCJ1c2VSZXNlbmRDb3VudGRvd24iLCJjYW5SZXNlbmQiLCJyZW1haW5pbmciLCJmb3JtYXR0ZWQiLCJ0cmlnZ2VyUmVzZW5kIiwiaGFuZGxlQ2xpY2siLCJoYW5kbGVLZXlEb3duIiwiZXZlbnQiLCJhY3RpdmF0aW9uS2V5cyIsImluY2x1ZGVzIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJfanN4cyIsIl9GcmFnbWVudCIsImNoaWxkcmVuIiwiX2pzeCIsIkRpdmlkZXIiLCJGbGV4IiwiYWxpZ24iLCJqdXN0aWZ5IiwiY2xhc3NOYW1lIiwiY2xzIiwicmVjb3ZlcnkiLCJUeXBvZ3JhcGh5IiwiQm9keSIsInNpemUiLCJzdHJvbmciLCJjb2xvciIsImpvaW5DbHMiLCJyZWNvdmVyeVRleHQiLCJtb2QiLCJjbGlja2FibGUiLCJvbkNsaWNrIiwidW5kZWZpbmVkIiwiTGluayIsInJvbGUiLCJ0YWJJbmRleCIsImRpc2FibGVkIiwib25LZXlEb3duIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7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LEdBQUcsa0JBQWtCO1FBQy9DbUIsU0FBUyxFQUFFLElBQUFRLG1CQUFPLEVBQ2hCbEMsOEJBQW1CLENBQUMyQixHQUFHLENBQUMvQixNQUFNLEVBQzlCVyxTQUFTLElBQUlQLDhCQUFtQixDQUFDb0MsR0FBRyxDQUFDQyxTQUFTLENBQy9DO1FBQ0RDLE9BQU8sRUFBRTNCLFdBQVc7UUFDcEJpQyxTQUFTLEVBQUVoQyxhQUFhO1FBQUFRLFFBQUEsRUFBQSxDQUV2QnJCLFVBQVUsRUFDVlMsU0FBUyxHQUFHLENBQUMsUUFBQXFDLE1BQUEsQ0FBUXBDLFNBQVMsU0FBTSxFQUFFO01BQUEsQ0FBQSxDQUN2QjtJQUFBLENBQUEsQ0FDYjtFQUFBLENBQUEsQ0FDTjtBQUVQLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy9SZXNlbmRSb3cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cywgRnJhZ21lbnQgYXMgX0ZyYWdtZW50IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBEaXZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9EaXZpZGVyJztcbmltcG9ydCB7IEZsZXggfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0ZsZXgnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBWRVJJRklDQVRJT05fRElBTE9HIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlUmVzZW5kQ291bnRkb3duIH0gZnJvbSAnLi9ob29rcyc7XG4vKipcbiAqIFRoZSBcIkhhdmVuJ3QgcmVjZWl2ZWQgdGhlIGNvZGU/IFJlc2VuZFwiIHJvdyBiZWxvdyB0aGUgZm9vdGVyIGRpdmlkZXIuIE93bnMgaXRzXG4gKiBvd24gY29vbGRvd246IHdoaWxlIGNvdW50aW5nIGRvd24gKG9yIHdoaWxlIGEgcmVzZW5kIGlzIGluIGZsaWdodCkgdGhlIHJvdyBpc1xuICogaW5lcnQg4oCUIG11dGVkLCBub24tY2xpY2thYmxlLCBkZWZhdWx0IGN1cnNvciDigJQgYW5kIHNob3dzIHRoZSByZW1haW5pbmcgdGltZS5cbiAqIFdoZW4gcmVzZW5kaW5nIGlzIGFsbG93ZWQsIGJvdGggdGhlIHByb21wdCB0ZXh0IGFuZCB0aGUgbGluayB0cmlnZ2VyIGl0IGFuZFxuICogc2hvdyBhIHBvaW50ZXIgY3Vyc29yLiBSZW5kZXJlZCBvbmx5IHdoZW4gYSBgcmVzZW5kYCBjb25maWcgaXMgcHJvdmlkZWQsIHNvXG4gKiB0aGUgY291bnRkb3duIGhvb2sgbmV2ZXIgcnVucyBmb3IgZGlhbG9ncyB3aXRob3V0IHJlc2VuZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlc2VuZFJvdyA9ICh7IHJlc2VuZCB9KSA9PiB7XG4gICAgY29uc3QgeyBwcm9tcHRUZXh0LCBhY3Rpb25UZXh0ID0gVkVSSUZJQ0FUSU9OX0RJQUxPRy5kZWZhdWx0cy5yZXNlbmRMYWJlbCwgb25SZXNlbmQsIGNvb2xkb3duLCB9ID0gcmVzZW5kO1xuICAgIGNvbnN0IHsgY2FuUmVzZW5kLCByZW1haW5pbmcsIGZvcm1hdHRlZCwgcmVzZW5kOiB0cmlnZ2VyUmVzZW5kIH0gPSB1c2VSZXNlbmRDb3VudGRvd24oe1xuICAgICAgICBvblJlc2VuZCxcbiAgICAgICAgY29vbGRvd24sXG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgIGlmIChjYW5SZXNlbmQpXG4gICAgICAgICAgICB0cmlnZ2VyUmVzZW5kKCk7XG4gICAgfTtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghY2FuUmVzZW5kIHx8ICFWRVJJRklDQVRJT05fRElBTE9HLmFjdGl2YXRpb25LZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRyaWdnZXJSZXNlbmQoKTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbX2pzeChEaXZpZGVyLCB7fSksIF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBqdXN0aWZ5OiAnc3BhY2UtYmV0d2VlbicsIGNsYXNzTmFtZTogVkVSSUZJQ0FUSU9OX0RJQUxPRy5jbHMucmVjb3ZlcnksIGNoaWxkcmVuOiBbcHJvbXB0VGV4dCAmJiAoX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogJ21kJywgc3Ryb25nOiB0cnVlLCBjb2xvcjogJ2RlZmF1bHQtdGVydGlhcnknLCBjbGFzc05hbWU6IGpvaW5DbHMoVkVSSUZJQ0FUSU9OX0RJQUxPRy5jbHMucmVjb3ZlcnlUZXh0LCBjYW5SZXNlbmQgJiYgVkVSSUZJQ0FUSU9OX0RJQUxPRy5tb2QuY2xpY2thYmxlKSwgb25DbGljazogY2FuUmVzZW5kID8gaGFuZGxlQ2xpY2sgOiB1bmRlZmluZWQsIGNoaWxkcmVuOiBwcm9tcHRUZXh0IH0pKSwgX2pzeHMoVHlwb2dyYXBoeS5MaW5rLCB7IHNpemU6ICdtZCcsIHJvbGU6ICdidXR0b24nLCB0YWJJbmRleDogMCwgZGlzYWJsZWQ6ICFjYW5SZXNlbmQsIGNvbG9yOiBjYW5SZXNlbmQgPyAnYnJhbmQnIDogJ2RlZmF1bHQtdGVydGlhcnknLCBjbGFzc05hbWU6IGpvaW5DbHMoVkVSSUZJQ0FUSU9OX0RJQUxPRy5jbHMucmVzZW5kLCBjYW5SZXNlbmQgJiYgVkVSSUZJQ0FUSU9OX0RJQUxPRy5tb2QuY2xpY2thYmxlKSwgb25DbGljazogaGFuZGxlQ2xpY2ssIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biwgY2hpbGRyZW46IFthY3Rpb25UZXh0LCByZW1haW5pbmcgPiAwID8gYCAoJHtmb3JtYXR0ZWR9KWAgOiAnJ10gfSldIH0pXSB9KSk7XG59OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VerificationDialog = void 0;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _Button = require("../../../components/Button");
|
|
10
|
+
var _Dialog = require("../../../components/Dialog");
|
|
11
|
+
var _Flex = require("../../../components/Flex");
|
|
12
|
+
var _Input = require("../../../components/Input");
|
|
13
|
+
var _Typography = require("../../../components/Typography");
|
|
14
|
+
var _classnames = require("../../../utils/classnames");
|
|
15
|
+
var _constants = require("./constants");
|
|
16
|
+
var _ResendRow = require("./ResendRow");
|
|
17
|
+
var _hooks = require("./hooks");
|
|
18
|
+
require("./style");
|
|
19
|
+
var VerificationDialogBase = function VerificationDialogBase(_ref) {
|
|
20
|
+
var open = _ref.open,
|
|
21
|
+
_ref$size = _ref.size,
|
|
22
|
+
size = _ref$size === void 0 ? _constants.VERIFICATION_DIALOG.defaults.size : _ref$size,
|
|
23
|
+
maskClosable = _ref.maskClosable,
|
|
24
|
+
_ref$showCloseIcon = _ref.showCloseIcon,
|
|
25
|
+
showCloseIcon = _ref$showCloseIcon === void 0 ? false : _ref$showCloseIcon,
|
|
26
|
+
showBackIcon = _ref.showBackIcon,
|
|
27
|
+
onBack = _ref.onBack,
|
|
28
|
+
className = _ref.className,
|
|
29
|
+
title = _ref.title,
|
|
30
|
+
description = _ref.description,
|
|
31
|
+
value = _ref.value,
|
|
32
|
+
defaultValue = _ref.defaultValue,
|
|
33
|
+
otpHint = _ref.otpHint,
|
|
34
|
+
_ref$autoFocus = _ref.autoFocus,
|
|
35
|
+
autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus,
|
|
36
|
+
_ref$mask = _ref.mask,
|
|
37
|
+
mask = _ref$mask === void 0 ? false : _ref$mask,
|
|
38
|
+
_ref$disabled = _ref.disabled,
|
|
39
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
40
|
+
_ref$autoSubmit = _ref.autoSubmit,
|
|
41
|
+
autoSubmit = _ref$autoSubmit === void 0 ? true : _ref$autoSubmit,
|
|
42
|
+
onVerify = _ref.onVerify,
|
|
43
|
+
onChange = _ref.onChange,
|
|
44
|
+
_ref$submitText = _ref.submitText,
|
|
45
|
+
submitText = _ref$submitText === void 0 ? _constants.VERIFICATION_DIALOG.defaults.submitText : _ref$submitText,
|
|
46
|
+
secondaryAction = _ref.secondaryAction,
|
|
47
|
+
resend = _ref.resend,
|
|
48
|
+
onClose = _ref.onClose;
|
|
49
|
+
var _a, _b;
|
|
50
|
+
var otp = (0, _hooks.useOtpVerification)({
|
|
51
|
+
onVerify: onVerify,
|
|
52
|
+
value: value,
|
|
53
|
+
defaultValue: defaultValue,
|
|
54
|
+
autoSubmit: autoSubmit,
|
|
55
|
+
onChange: onChange
|
|
56
|
+
});
|
|
57
|
+
// Drop a stale error when the dialog is re-opened, without clobbering a
|
|
58
|
+
// controlled/prefilled value. `clearError` is stable, so this only runs on an
|
|
59
|
+
// open/close transition — not on every keystroke.
|
|
60
|
+
var clearError = otp.clearError;
|
|
61
|
+
(0, _react.useEffect)(function () {
|
|
62
|
+
if (open) clearError();
|
|
63
|
+
}, [open, clearError]);
|
|
64
|
+
var body = (0, _jsxRuntime.jsxs)(_Flex.Flex, {
|
|
65
|
+
vertical: true,
|
|
66
|
+
gap: _constants.VERIFICATION_DIALOG.gap.body,
|
|
67
|
+
className: _constants.VERIFICATION_DIALOG.cls.body,
|
|
68
|
+
children: [description && (0, _jsxRuntime.jsx)(_Typography.Typography.Body, {
|
|
69
|
+
as: 'p',
|
|
70
|
+
size: 'md',
|
|
71
|
+
strong: true,
|
|
72
|
+
color: 'default-secondary',
|
|
73
|
+
children: description
|
|
74
|
+
}), (0, _jsxRuntime.jsx)(_Input.Input.OTP, {
|
|
75
|
+
value: otp.value,
|
|
76
|
+
status: otp.status,
|
|
77
|
+
feedback: (_a = otp.feedback) !== null && _a !== void 0 ? _a : otpHint,
|
|
78
|
+
autoFocus: autoFocus,
|
|
79
|
+
mask: mask,
|
|
80
|
+
disabled: disabled,
|
|
81
|
+
onChange: otp.onChange
|
|
82
|
+
})]
|
|
83
|
+
});
|
|
84
|
+
var footerNode = (0, _jsxRuntime.jsxs)(_Flex.Flex, {
|
|
85
|
+
vertical: true,
|
|
86
|
+
gap: _constants.VERIFICATION_DIALOG.gap.footer,
|
|
87
|
+
className: _constants.VERIFICATION_DIALOG.cls.footer,
|
|
88
|
+
children: [(0, _jsxRuntime.jsxs)(_Flex.Flex, {
|
|
89
|
+
gap: _constants.VERIFICATION_DIALOG.gap.actions,
|
|
90
|
+
className: _constants.VERIFICATION_DIALOG.cls.actions,
|
|
91
|
+
children: [secondaryAction && (0, _jsxRuntime.jsx)(_Button.Button, {
|
|
92
|
+
color: (_b = secondaryAction.color) !== null && _b !== void 0 ? _b : _constants.VERIFICATION_DIALOG.defaults.secondaryColor,
|
|
93
|
+
disabled: secondaryAction.disabled,
|
|
94
|
+
onClick: secondaryAction.onClick,
|
|
95
|
+
children: secondaryAction.label
|
|
96
|
+
}), (0, _jsxRuntime.jsx)(_Button.Button, {
|
|
97
|
+
color: 'primary',
|
|
98
|
+
loading: otp.submitting,
|
|
99
|
+
disabled: !otp.valid || otp.submitting || disabled,
|
|
100
|
+
onClick: otp.submit,
|
|
101
|
+
children: submitText
|
|
102
|
+
})]
|
|
103
|
+
}), resend && (0, _jsxRuntime.jsx)(_ResendRow.ResendRow, {
|
|
104
|
+
resend: resend
|
|
105
|
+
})]
|
|
106
|
+
});
|
|
107
|
+
return (0, _jsxRuntime.jsx)(_Dialog.Dialog, {
|
|
108
|
+
open: open,
|
|
109
|
+
size: size,
|
|
110
|
+
maskClosable: maskClosable,
|
|
111
|
+
showCloseIcon: showCloseIcon,
|
|
112
|
+
showBackIcon: showBackIcon,
|
|
113
|
+
onBack: onBack,
|
|
114
|
+
className: (0, _classnames.joinCls)(_constants.VERIFICATION_DIALOG.cls.wrap, className),
|
|
115
|
+
title: title,
|
|
116
|
+
footer: footerNode,
|
|
117
|
+
onCancel: onClose,
|
|
118
|
+
children: body
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
var VerificationDialog = exports.VerificationDialog = /*#__PURE__*/(0, _react.memo)(VerificationDialogBase);
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvVmVyaWZpY2F0aW9uRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX0J1dHRvbiIsIl9EaWFsb2ciLCJfRmxleCIsIl9JbnB1dCIsIl9UeXBvZ3JhcGh5IiwiX2NsYXNzbmFtZXMiLCJfY29uc3RhbnRzIiwiX1Jlc2VuZFJvdyIsIl9ob29rcyIsIlZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UiLCJfcmVmIiwib3BlbiIsIl9yZWYkc2l6ZSIsInNpemUiLCJWRVJJRklDQVRJT05fRElBTE9HIiwiZGVmYXVsdHMiLCJtYXNrQ2xvc2FibGUiLCJfcmVmJHNob3dDbG9zZUljb24iLCJzaG93Q2xvc2VJY29uIiwic2hvd0JhY2tJY29uIiwib25CYWNrIiwiY2xhc3NOYW1lIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwib3RwSGludCIsIl9yZWYkYXV0b0ZvY3VzIiwiYXV0b0ZvY3VzIiwiX3JlZiRtYXNrIiwibWFzayIsIl9yZWYkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9yZWYkYXV0b1N1Ym1pdCIsImF1dG9TdWJtaXQiLCJvblZlcmlmeSIsIm9uQ2hhbmdlIiwiX3JlZiRzdWJtaXRUZXh0Iiwic3VibWl0VGV4dCIsInNlY29uZGFyeUFjdGlvbiIsInJlc2VuZCIsIm9uQ2xvc2UiLCJfYSIsIl9iIiwib3RwIiwidXNlT3RwVmVyaWZpY2F0aW9uIiwiY2xlYXJFcnJvciIsInVzZUVmZmVjdCIsImJvZHkiLCJfanN4cyIsIkZsZXgiLCJ2ZXJ0aWNhbCIsImdhcCIsImNscyIsImNoaWxkcmVuIiwiX2pzeCIsIlR5cG9ncmFwaHkiLCJCb2R5IiwiYXMiLCJzdHJvbmciLCJjb2xvciIsIklucHV0IiwiT1RQIiwic3RhdHVzIiwiZmVlZGJhY2siLCJmb290ZXJOb2RlIiwiZm9vdGVyIiwiYWN0aW9ucyIsIkJ1dHRvbiIsInNlY29uZGFyeUNvbG9yIiwib25DbGljayIsImxhYmVsIiwibG9hZGluZyIsInN1Ym1pdHRpbmciLCJ2YWxpZCIsInN1Ym1pdCIsIlJlc2VuZFJvdyIsIkRpYWxvZyIsImpvaW5DbHMiLCJ3cmFwIiwib25DYW5jZWwiLCJWZXJpZmljYXRpb25EaWFsb2ciLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBR0FBLE9BQUE7QUFFQSxJQUFNVyxzQkFBc0IsR0FBZ0MsU0FBdERBLHNCQUFzQkEsQ0FBQUMsSUFBQSxFQXVCdkI7RUFBQSxJQXRCSEMsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7SUFBQUMsU0FBQSxHQUFBRixJQUFBLENBQ0pHLElBQUk7SUFBSkEsSUFBSSxHQUFBRCxTQUFBLGNBQUdFLDhCQUFtQixDQUFDQyxRQUFRLENBQUNGLElBQUksR0FBQUQsU0FBQTtJQUN4Q0ksWUFBWSxHQUFBTixJQUFBLENBQVpNLFlBQVk7SUFBQUMsa0JBQUEsR0FBQVAsSUFBQSxDQUNaUSxhQUFhO0lBQWJBLGFBQWEsR0FBQUQsa0JBQUEsY0FBRyxLQUFLLEdBQUFBLGtCQUFBO0lBQ3JCRSxZQUFZLEdBQUFULElBQUEs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LFVBQVUsSUFBSXpDLFFBQVE7UUFDbERzQyxPQUFPLEVBQUUxQixHQUFHLENBQUMrQixNQUFNO1FBQUFyQixRQUFBLEVBRWxCaEI7TUFBVSxDQUFBLENBQ0o7SUFBQSxDQUFBLENBQ0osRUFDTkUsTUFBTSxJQUFJLElBQUFlLGVBQUEsRUFBQ3FCLG9CQUFTLEVBQUE7TUFBQ3BDLE1BQU0sRUFBRUE7SUFBTSxDQUFBLENBQUk7RUFBQSxDQUFBLENBRTNDO0VBRUQsT0FDRSxJQUFBZSxlQUFBLEVBQUNzQixjQUFNLEVBQUE7SUFDTGxFLElBQUksRUFBRUEsSUFBSTtJQUNWRSxJQUFJLEVBQUVBLElBQUk7SUFDVkcsWUFBWSxFQUFFQSxZQUFZO0lBQzFCRSxhQUFhLEVBQUVBLGFBQWE7SUFDNUJDLFlBQVksRUFBRUEsWUFBWTtJQUMxQkMsTUFBTSxFQUFFQSxNQUFNO0lBQ2RDLFNBQVMsRUFBRSxJQUFBeUQsbUJBQU8sRUFBQ2hFLDhCQUFtQixDQUFDdUMsR0FBRyxDQUFDMEIsSUFBSSxFQUFFMUQsU0FBUyxDQUFDO0lBQzNEQyxLQUFLLEVBQUVBLEtBQUs7SUFDWjRDLE1BQU0sRUFBRUQsVUFBVTtJQUNsQmUsUUFBUSxFQUFFdkMsT0FBTztJQUFBYSxRQUFBLEVBRWhCTjtFQUFJLENBQUEsQ0FDRTtBQUViLENBQUM7QUFFTSxJQUFNaUMsa0JBQWtCLEdBQUFDLE9BQUEsQ0FBQUQsa0JBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDMUUsc0JBQXNCLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL1ZlcmlmaWNhdGlvbkRpYWxvZy9WZXJpZmljYXRpb25EaWFsb2cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9CdXR0b24nO1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9EaWFsb2cnO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvSW5wdXQnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBWRVJJRklDQVRJT05fRElBTE9HIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUmVzZW5kUm93IH0gZnJvbSAnLi9SZXNlbmRSb3cnO1xuaW1wb3J0IHsgdXNlT3RwVmVyaWZpY2F0aW9uIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgVmVyaWZpY2F0aW9uRGlhbG9nQmFzZSA9ICh7IG9wZW4sIHNpemUgPSBWRVJJRklDQVRJT05fRElBTE9HLmRlZmF1bHRzLnNpemUsIG1hc2tDbG9zYWJsZSwgc2hvd0Nsb3NlSWNvbiA9IGZhbHNlLCBzaG93QmFja0ljb24sIG9uQmFjaywgY2xhc3NOYW1lLCB0aXRsZSwgZGVzY3JpcHRpb24sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIG90cEhpbnQsIGF1dG9Gb2N1cyA9IGZhbHNlLCBtYXNrID0gZmFsc2UsIGRpc2FibGVkID0gZmFsc2UsIGF1dG9TdWJtaXQgPSB0cnVlLCBvblZlcmlmeSwgb25DaGFuZ2UsIHN1Ym1pdFRleHQgPSBWRVJJRklDQVRJT05fRElBTE9HLmRlZmF1bHRzLnN1Ym1pdFRleHQsIHNlY29uZGFyeUFjdGlvbiwgcmVzZW5kLCBvbkNsb3NlLCB9KSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCBvdHAgPSB1c2VPdHBWZXJpZmljYXRpb24oe1xuICAgICAgICBvblZlcmlmeSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgYXV0b1N1Ym1pdCxcbiAgICAgICAgb25DaGFuZ2UsXG4gICAgfSk7XG4gICAgLy8gRHJvcCBhIHN0YWxlIGVycm9yIHdoZW4gdGhlIGRpYWxvZyBpcyByZS1vcGVuZWQsIHdpdGhvdXQgY2xvYmJlcmluZyBhXG4gICAgLy8gY29udHJvbGxlZC9wcmVmaWxsZWQgdmFsdWUuIGBjbGVhckVycm9yYCBpcyBzdGFibGUsIHNvIHRoaXMgb25seSBydW5zIG9uIGFuXG4gICAgLy8gb3Blbi9jbG9zZSB0cmFuc2l0aW9uIOKAlCBub3Qgb24gZXZlcnkga2V5c3Ryb2tlLlxuICAgIGNvbnN0IHsgY2xlYXJFcnJvciB9ID0gb3RwO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChvcGVuKVxuICAgICAgICAgICAgY2xlYXJFcnJvcigpO1xuICAgIH0sIFtvcGVuLCBjbGVhckVycm9yXSk7XG4gICAgY29uc3QgYm9keSA9IChfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBnYXA6IFZFUklGSUNBVElPTl9ESUFMT0cuZ2FwLmJvZHksIGNsYXNzTmFtZTogVkVSSUZJQ0FUSU9OX0RJQUxPRy5jbHMuYm9keSwgY2hpbGRyZW46IFtkZXNjcmlwdGlvbiAmJiAoX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgYXM6ICdwJywgc2l6ZTogJ21kJywgc3Ryb25nOiB0cnVlLCBjb2xvcjogJ2RlZmF1bHQtc2Vjb25kYXJ5JywgY2hpbGRyZW46IGRlc2NyaXB0aW9uIH0pKSwgX2pzeChJbnB1dC5PVFAsIHsgdmFsdWU6IG90cC52YWx1ZSwgc3RhdHVzOiBvdHAuc3RhdHVzLCBmZWVkYmFjazogKF9hID0gb3RwLmZlZWRiYWNrKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBvdHBIaW50LCBhdXRvRm9jdXM6IGF1dG9Gb2N1cywgbWFzazogbWFzaywgZGlzYWJsZWQ6IGRpc2FibGVkLCBvbkNoYW5nZTogb3RwLm9uQ2hhbmdlIH0pXSB9KSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IChfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBnYXA6IFZFUklGSUNBVElPTl9ESUFMT0cuZ2FwLmZvb3RlciwgY2xhc3NOYW1lOiBWRVJJRklDQVRJT05fRElBTE9HLmNscy5mb290ZXIsIGNoaWxkcmVuOiBbX2pzeHMoRmxleCwgeyBnYXA6IFZFUklGSUNBVElPTl9ESUFMT0cuZ2FwLmFjdGlvbnMsIGNsYXNzTmFtZTogVkVSSUZJQ0FUSU9OX0RJQUxPRy5jbHMuYWN0aW9ucywgY2hpbGRyZW46IFtzZWNvbmRhcnlBY3Rpb24gJiYgKF9qc3goQnV0dG9uLCB7IGNvbG9yOiAoX2IgPSBzZWNvbmRhcnlBY3Rpb24uY29sb3IpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFZFUklGSUNBVElPTl9ESUFMT0cuZGVmYXVsdHMuc2Vjb25kYXJ5Q29sb3IsIGRpc2FibGVkOiBzZWNvbmRhcnlBY3Rpb24uZGlzYWJsZWQsIG9uQ2xpY2s6IHNlY29uZGFyeUFjdGlvbi5vbkNsaWNrLCBjaGlsZHJlbjogc2Vjb25kYXJ5QWN0aW9uLmxhYmVsIH0pKSwgX2pzeChCdXR0b24sIHsgY29sb3I6ICdwcmltYXJ5JywgbG9hZGluZzogb3RwLnN1Ym1pdHRpbmcsIGRpc2FibGVkOiAhb3RwLnZhbGlkIHx8IG90cC5zdWJtaXR0aW5nIHx8IGRpc2FibGVkLCBvbkNsaWNrOiBvdHAuc3VibWl0LCBjaGlsZHJlbjogc3VibWl0VGV4dCB9KV0gfSksIHJlc2VuZCAmJiBfanN4KFJlc2VuZFJvdywgeyByZXNlbmQ6IHJlc2VuZCB9KV0gfSkpO1xuICAgIHJldHVybiAoX2pzeChEaWFsb2csIHsgb3Blbjogb3Blbiwgc2l6ZTogc2l6ZSwgbWFza0Nsb3NhYmxlOiBtYXNrQ2xvc2FibGUsIHNob3dDbG9zZUljb246IHNob3dDbG9zZUljb24sIHNob3dCYWNrSWNvbjogc2hvd0JhY2tJY29uLCBvbkJhY2s6IG9uQmFjaywgY2xhc3NOYW1lOiBqb2luQ2xzKFZFUklGSUNBVElPTl9ESUFMT0cuY2xzLndyYXAsIGNsYXNzTmFtZSksIHRpdGxlOiB0aXRsZSwgZm9vdGVyOiBmb290ZXJOb2RlLCBvbkNhbmNlbDogb25DbG9zZSwgY2hpbGRyZW46IGJvZHkgfSkpO1xufTtcbmV4cG9ydCBjb25zdCBWZXJpZmljYXRpb25EaWFsb2cgPSBtZW1vKFZlcmlmaWNhdGlvbkRpYWxvZ0Jhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ButtonColor } from "../../../components/Button";
|
|
2
|
+
import type { DialogSize } from "../../../components/Dialog";
|
|
3
|
+
interface VerificationDialogConstants {
|
|
4
|
+
/** BEM class names, all derived from the wrapper prefix. */
|
|
5
|
+
cls: {
|
|
6
|
+
wrap: string;
|
|
7
|
+
body: string;
|
|
8
|
+
footer: string;
|
|
9
|
+
actions: string;
|
|
10
|
+
recovery: string;
|
|
11
|
+
recoveryText: string;
|
|
12
|
+
resend: string;
|
|
13
|
+
};
|
|
14
|
+
/** BEM modifiers. */
|
|
15
|
+
mod: {
|
|
16
|
+
clickable: string;
|
|
17
|
+
};
|
|
18
|
+
/** Spacing in px, matching the 1money dialog rhythm. */
|
|
19
|
+
gap: {
|
|
20
|
+
body: number;
|
|
21
|
+
footer: number;
|
|
22
|
+
actions: number;
|
|
23
|
+
};
|
|
24
|
+
/** Fallback values when a prop is omitted. */
|
|
25
|
+
defaults: {
|
|
26
|
+
size: DialogSize;
|
|
27
|
+
secondaryColor: ButtonColor;
|
|
28
|
+
submitText: string;
|
|
29
|
+
resendLabel: string;
|
|
30
|
+
};
|
|
31
|
+
/** Keys that activate the resend link (an <a> with no href, like a button). */
|
|
32
|
+
activationKeys: readonly string[];
|
|
33
|
+
}
|
|
34
|
+
export declare const VERIFICATION_DIALOG: VerificationDialogConstants;
|
|
35
|
+
export {};
|