@wise/dynamic-flow-client-internal 4.27.0-experimental-330f0c5 → 4.27.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.
@@ -1,1262 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
- var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
- var __getProtoOf = Object.getPrototypeOf;
10
- var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
- var __objRest = (source, exclude) => {
26
- var target = {};
27
- for (var prop in source)
28
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
- target[prop] = source[prop];
30
- if (source != null && __getOwnPropSymbols)
31
- for (var prop of __getOwnPropSymbols(source)) {
32
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
- target[prop] = source[prop];
34
- }
35
- return target;
36
- };
37
- var __export = (target, all) => {
38
- for (var name in all)
39
- __defProp(target, name, { get: all[name], enumerable: true });
40
- };
41
- var __copyProps = (to, from, except, desc) => {
42
- if (from && typeof from === "object" || typeof from === "function") {
43
- for (let key of __getOwnPropNames(from))
44
- if (!__hasOwnProp.call(to, key) && key !== except)
45
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
- }
47
- return to;
48
- };
49
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
50
- // If the importer is in node compatibility mode or this is not an ESM
51
- // file that has been converted to a CommonJS file using a Babel-
52
- // compatible transform (i.e. "__esModule" has not been set), then set
53
- // "default" to the CommonJS "module.exports" for node compatibility.
54
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
55
- mod
56
- ));
57
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
-
59
- // src/dynamicFlow/renderers.ts
60
- var renderers_exports = {};
61
- __export(renderers_exports, {
62
- Header: () => Header11,
63
- Media: () => Media2,
64
- getButtonV2Renderers: () => getButtonV2Renderers2,
65
- getListItemRenderers: () => getListItemRenderers2,
66
- getMargin: () => getMargin2
67
- });
68
- module.exports = __toCommonJS(renderers_exports);
69
-
70
- // ../renderers/src/AlertRenderer.tsx
71
- var import_components = require("@transferwise/components");
72
-
73
- // ../renderers/src/utils/layout-utils.ts
74
- var getMargin = (size) => {
75
- switch (size) {
76
- case "xs":
77
- return "m-b-0";
78
- case "sm":
79
- return "m-b-1";
80
- case "md":
81
- return "m-b-2";
82
- case "lg":
83
- return "m-b-3";
84
- case "xl":
85
- return "m-b-5";
86
- default:
87
- return "";
88
- }
89
- };
90
-
91
- // ../renderers/src/AlertRenderer.tsx
92
- var import_jsx_runtime = require("react/jsx-runtime");
93
-
94
- // ../renderers/src/BoxRenderer.tsx
95
- var import_classnames = __toESM(require("classnames"));
96
- var import_jsx_runtime2 = require("react/jsx-runtime");
97
-
98
- // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
99
- var import_components2 = require("@transferwise/components");
100
- var import_react_intl2 = require("react-intl");
101
-
102
- // ../renderers/src/messages/loading-button.messages.ts
103
- var import_react_intl = require("react-intl");
104
- var loading_button_messages_default = (0, import_react_intl.defineMessages)({
105
- buttonLoadingMessage: {
106
- id: "df.wise.ButtonLayout.buttonLoadingMessage",
107
- defaultMessage: "This might take a few seconds",
108
- description: "Message displayed below a button when it is in a loading state."
109
- }
110
- });
111
-
112
- // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
113
- var import_react = require("react");
114
- var import_jsx_runtime3 = require("react/jsx-runtime");
115
-
116
- // ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
117
- var import_components3 = require("@transferwise/components");
118
- var import_react2 = require("react");
119
-
120
- // ../renderers/src/ButtonRenderer/mapButtonSize.tsx
121
- var mapButtonSize = (size) => {
122
- if (!size) {
123
- return void 0;
124
- }
125
- switch (size) {
126
- case "xs":
127
- case "sm":
128
- return "sm";
129
- case "lg":
130
- case "xl":
131
- return "lg";
132
- case "md":
133
- default:
134
- return "md";
135
- }
136
- };
137
-
138
- // ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
139
- var import_jsx_runtime4 = require("react/jsx-runtime");
140
-
141
- // ../renderers/src/components/FieldInput.tsx
142
- var import_components5 = require("@transferwise/components");
143
-
144
- // ../renderers/src/components/Help.tsx
145
- var import_components4 = require("@transferwise/components");
146
- var import_react_intl4 = require("react-intl");
147
-
148
- // ../renderers/src/messages/help.messages.ts
149
- var import_react_intl3 = require("react-intl");
150
- var help_messages_default = (0, import_react_intl3.defineMessages)({
151
- helpAria: {
152
- id: "df.wise.Help.ariaLabel",
153
- defaultMessage: "Click here for more info.",
154
- description: "Aria label for help."
155
- }
156
- });
157
-
158
- // ../renderers/src/components/Help.tsx
159
- var import_jsx_runtime5 = require("react/jsx-runtime");
160
-
161
- // ../renderers/src/components/LabelContentWithHelp.tsx
162
- var import_jsx_runtime6 = require("react/jsx-runtime");
163
-
164
- // ../renderers/src/components/FieldInput.tsx
165
- var import_jsx_runtime7 = require("react/jsx-runtime");
166
-
167
- // ../renderers/src/CheckboxInputRenderer.tsx
168
- var import_components9 = require("@transferwise/components");
169
-
170
- // ../renderers/src/utils/UrnFlag.tsx
171
- var import_art = require("@wise/art");
172
- var import_jsx_runtime8 = require("react/jsx-runtime");
173
- var countryUrnPrefix = "urn:wise:countries:";
174
- var currencyUrnPrefix = "urn:wise:currencies:";
175
- var isUrnFlag = (uri) => uri.startsWith(countryUrnPrefix) || uri.startsWith(currencyUrnPrefix);
176
- function UrnFlag({ size, urn }) {
177
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_art.Flag, { code: getCode(urn), intrinsicSize: size });
178
- }
179
- var getCode = (urn) => {
180
- return urn.replace(countryUrnPrefix, "").replace(currencyUrnPrefix, "").replace(":image", "").split("?")[0];
181
- };
182
-
183
- // ../renderers/src/components/icon/FlagIcon.tsx
184
- var import_art2 = require("@wise/art");
185
- var import_jsx_runtime9 = require("react/jsx-runtime");
186
- var isFlagIcon = (name) => name.startsWith("flag-");
187
- function FlagIcon({ name }) {
188
- if (!isFlagIcon(name)) {
189
- return null;
190
- }
191
- const code = name.substring(5);
192
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_art2.Flag, { code, intrinsicSize: 24 });
193
- }
194
-
195
- // ../renderers/src/components/icon/NamedIcon.tsx
196
- var icons = __toESM(require("@transferwise/icons"));
197
- var import_jsx_runtime10 = require("react/jsx-runtime");
198
- var isNamedIcon = (name) => {
199
- const iconName = toCapitalisedCamelCase(name);
200
- return Object.keys(icons).includes(iconName);
201
- };
202
- function NamedIcon({ name }) {
203
- if (!isNamedIcon(name)) {
204
- return null;
205
- }
206
- const iconName = toCapitalisedCamelCase(name);
207
- const Icon = icons[iconName];
208
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Icon, { size: 24 });
209
- }
210
- var toCapitalisedCamelCase = (value) => value.split("-").map(capitaliseFirstChar).join("");
211
- var capitaliseFirstChar = (value) => `${value[0].toUpperCase()}${value.slice(1)}`;
212
-
213
- // ../renderers/src/components/icon/DynamicIcon.tsx
214
- var import_jsx_runtime11 = require("react/jsx-runtime");
215
- function DynamicIcon({ name }) {
216
- if (isFlagIcon(name)) {
217
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(FlagIcon, { name });
218
- }
219
- if (isNamedIcon(name)) {
220
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(NamedIcon, { name });
221
- }
222
- return null;
223
- }
224
- function isValidIconName(name) {
225
- return isNamedIcon(name) || isFlagIcon(name);
226
- }
227
- function isValidIconUrn(uri) {
228
- if (!uri.startsWith("urn:wise:icons:")) {
229
- return false;
230
- }
231
- const name = uri.replace("urn:wise:icons:", "").split("?")[0];
232
- return isValidIconName(name);
233
- }
234
- var DynamicIcon_default = DynamicIcon;
235
-
236
- // ../renderers/src/components/Media/stringToURN.ts
237
- var stringToURN = (uri) => {
238
- var _a, _b, _c;
239
- const [nameWithRQComponents, _] = uri.split("#");
240
- const [nameWithRComponent, qComponent] = nameWithRQComponents.split("?=");
241
- const [name, rComponent] = (_a = nameWithRComponent == null ? void 0 : nameWithRComponent.split("?+")) != null ? _a : ["", ""];
242
- const rComponents = rComponent ? (_b = decodeURIComponent(rComponent)) == null ? void 0 : _b.split("&").map((c) => c.split("=")).map(([a, b]) => [a, b]) : void 0;
243
- const qComponents = qComponent ? (_c = decodeURIComponent(qComponent)) == null ? void 0 : _c.split("&").map((c) => c.split("=")).map(([a, b]) => [a, b]) : void 0;
244
- return {
245
- name,
246
- rComponents,
247
- qComponents
248
- };
249
- };
250
-
251
- // ../renderers/src/components/Media/resolveMediaFromUri.tsx
252
- var import_jsx_runtime12 = require("react/jsx-runtime");
253
- var resolveMediaFromUri = (uri, size) => {
254
- var _a, _b;
255
- const { name, qComponents = [] } = stringToURN(uri);
256
- if (isValidIconUrn(name)) {
257
- const icon = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DynamicIcon_default, { name: name.replace("urn:wise:icons:", "") });
258
- return {
259
- icon,
260
- backgroundColor: formatColor((_a = qComponents.find(([key]) => key === "background-color")) == null ? void 0 : _a[1])
261
- };
262
- }
263
- if (isUrnFlag(name)) {
264
- return {
265
- asset: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(UrnFlag, { urn: name, size })
266
- };
267
- }
268
- if (name.startsWith("data:text/plain,")) {
269
- const text = decodeURI(name.replace("data:text/plain,", ""));
270
- return {
271
- asset: text,
272
- backgroundColor: formatColor((_b = qComponents.find(([key]) => key === "background-color")) == null ? void 0 : _b[1])
273
- };
274
- }
275
- if (!uri.startsWith("urn:")) {
276
- return { asset: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { src: uri, alt: "", width: `${size}px` }) };
277
- }
278
- return { asset: void 0 };
279
- };
280
- var formatColor = (color) => {
281
- if (!color) {
282
- return void 0;
283
- }
284
- if (color.startsWith("#")) {
285
- return color;
286
- }
287
- return `var(--color-${color.replace(/^base-|brand-/, "")})`;
288
- };
289
-
290
- // ../renderers/src/components/Media/AvatarMedia.tsx
291
- var import_components6 = require("@transferwise/components");
292
- var import_jsx_runtime13 = require("react/jsx-runtime");
293
- var AvatarMedia = ({
294
- accessibilityDescription,
295
- content,
296
- size
297
- }) => {
298
- const getRenderableAvatar = (avatar) => {
299
- if (avatar.type === "text") {
300
- return { asset: avatar.text };
301
- }
302
- return __spreadProps(__spreadValues({}, resolveMediaFromUri(avatar.uri, size)), {
303
- badge: avatar.badgeUri ? resolveMediaFromUri(avatar.badgeUri, 16) : void 0
304
- });
305
- };
306
- const avatars = content.map(getRenderableAvatar);
307
- if (avatars.length === 1) {
308
- const { badge, backgroundColor, asset, icon } = avatars[0];
309
- if (!asset && !icon) {
310
- return null;
311
- }
312
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
313
- import_components6.AvatarView,
314
- {
315
- "aria-label": accessibilityDescription,
316
- size,
317
- badge: badge ? __spreadProps(__spreadValues({}, badge), {
318
- type: "reference"
319
- }) : void 0,
320
- style: { backgroundColor },
321
- children: icon != null ? icon : asset
322
- }
323
- );
324
- }
325
- const avatarsWithoutBadges = avatars.filter(({ asset }) => asset).slice(0, 2).map((_a) => {
326
- var _b = _a, { badge } = _b, rest = __objRest(_b, ["badge"]);
327
- return __spreadValues({}, rest);
328
- });
329
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
330
- import_components6.AvatarLayout,
331
- {
332
- "aria-label": accessibilityDescription,
333
- size,
334
- orientation: "diagonal",
335
- avatars: avatarsWithoutBadges
336
- }
337
- );
338
- };
339
-
340
- // ../renderers/src/utils/image-utils.tsx
341
- var import_components7 = require("@transferwise/components");
342
- var import_jsx_runtime14 = require("react/jsx-runtime");
343
- var getBadgedMedia = (iconNode, imageNode, size) => {
344
- if (iconNode && imageNode) {
345
- if (imageNode && iconNode) {
346
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_components7.AvatarView, { size, badge: { asset: iconNode, type: "reference" }, children: imageNode });
347
- }
348
- }
349
- return null;
350
- };
351
- var getIconNode = (icon) => {
352
- if (icon) {
353
- if ("name" in icon) {
354
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DynamicIcon_default, { name: icon.name });
355
- }
356
- if (icon.text) {
357
- return icon.text;
358
- }
359
- }
360
- return null;
361
- };
362
- var getImageNode = (image, size) => {
363
- if (image) {
364
- const { accessibilityDescription, uri } = image;
365
- if (!uri.startsWith("urn:")) {
366
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("img", { src: uri, alt: accessibilityDescription, width: `${size}px` });
367
- }
368
- if (isUrnFlag(uri)) {
369
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(UrnFlag, { urn: uri, accessibilityDescription, size });
370
- }
371
- }
372
- return null;
373
- };
374
-
375
- // ../renderers/src/components/Media/LegacyMedia.tsx
376
- var import_components8 = require("@transferwise/components");
377
- var import_jsx_runtime15 = require("react/jsx-runtime");
378
- var LegacyMedia = ({ image, icon, preferAvatar, size }) => {
379
- const imageNode = getImageNode(image, size);
380
- const iconNode = getIconNode(icon);
381
- const badge = getBadgedMedia(iconNode, imageNode, size);
382
- if (badge) {
383
- return badge;
384
- }
385
- if (imageNode) {
386
- return preferAvatar ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_components8.AvatarView, { children: imageNode }) : imageNode;
387
- }
388
- if (iconNode && icon) {
389
- if ("text" in icon || size === 48) {
390
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_components8.AvatarView, { size, children: iconNode });
391
- }
392
- return iconNode;
393
- }
394
- return null;
395
- };
396
-
397
- // ../renderers/src/components/Media/Media.tsx
398
- var import_jsx_runtime16 = require("react/jsx-runtime");
399
- var Media = ({ media, preferAvatar = false, size }) => {
400
- switch (media == null ? void 0 : media.type) {
401
- case "avatar":
402
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AvatarMedia, __spreadProps(__spreadValues({}, media), { size }));
403
- case "image": {
404
- const { asset, icon } = resolveMediaFromUri(media.uri, size);
405
- return icon != null ? icon : asset;
406
- }
407
- case "legacy": {
408
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(LegacyMedia, __spreadProps(__spreadValues({}, media), { preferAvatar, size }));
409
- }
410
- default:
411
- return null;
412
- }
413
- };
414
-
415
- // ../renderers/src/components/Media/OptionMedia.tsx
416
- var import_jsx_runtime17 = require("react/jsx-runtime");
417
- var mediaSize = 48;
418
- function OptionMedia(props) {
419
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Media, __spreadProps(__spreadValues({}, props), { size: mediaSize }));
420
- }
421
-
422
- // ../renderers/src/components/Media/getInlineMedia.tsx
423
- var import_jsx_runtime18 = require("react/jsx-runtime");
424
-
425
- // ../renderers/src/NewListItem/getMedia.tsx
426
- var import_jsx_runtime19 = require("react/jsx-runtime");
427
- var getMedia = (media, preferAvatar) => media ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(OptionMedia, { media, preferAvatar }) : void 0;
428
-
429
- // ../renderers/src/CheckboxInputRenderer.tsx
430
- var import_jsx_runtime20 = require("react/jsx-runtime");
431
-
432
- // ../renderers/src/ColumnsRenderer.tsx
433
- var import_classnames2 = __toESM(require("classnames"));
434
- var import_jsx_runtime21 = require("react/jsx-runtime");
435
-
436
- // ../renderers/src/components/VariableDateInput.tsx
437
- var import_components10 = require("@transferwise/components");
438
- var import_jsx_runtime22 = require("react/jsx-runtime");
439
-
440
- // ../renderers/src/DateInputRenderer.tsx
441
- var import_jsx_runtime23 = require("react/jsx-runtime");
442
-
443
- // ../renderers/src/DecisionRenderer/DecisionRenderer.tsx
444
- var import_components13 = require("@transferwise/components");
445
-
446
- // ../renderers/src/DecisionRenderer/DecisionList.tsx
447
- var import_components12 = require("@transferwise/components");
448
-
449
- // ../renderers/src/DecisionRenderer/GroupedList.tsx
450
- var import_components11 = require("@transferwise/components");
451
- var import_react_intl6 = require("react-intl");
452
-
453
- // ../renderers/src/messages/decision.messages.ts
454
- var import_react_intl5 = require("react-intl");
455
- var decision_messages_default = (0, import_react_intl5.defineMessages)({
456
- all: {
457
- id: "df.wise.Decision.all",
458
- defaultMessage: "All",
459
- description: "Label for the group of options that encompasses all options"
460
- },
461
- popular: {
462
- id: "df.wise.Decision.popular",
463
- defaultMessage: "Popular",
464
- description: "Label for the group of options that are tagged as popular"
465
- },
466
- recent: {
467
- id: "df.wise.Decision.recent",
468
- defaultMessage: "Recent",
469
- description: "Label for the group of options that are tagged as recent"
470
- },
471
- currenciesWithAccountDetails: {
472
- id: "df.wise.Decision.currenciesWithAccountDetails",
473
- defaultMessage: "Currencies with account details",
474
- description: "Label for the group of options that are tagged as currencies with account details"
475
- },
476
- filterPlaceholder: {
477
- id: "df.wise.Decision.filterPlaceholder",
478
- defaultMessage: "Start typing to search",
479
- description: "Placeholder for the filter input"
480
- },
481
- results: {
482
- id: "df.wise.Decision.results",
483
- defaultMessage: "Search results",
484
- description: "Label for the results section"
485
- },
486
- noResults: {
487
- id: "df.wise.Decision.noResults",
488
- defaultMessage: "No results",
489
- description: "Message for if there are no results"
490
- }
491
- });
492
-
493
- // ../renderers/src/DecisionRenderer/GroupedList.tsx
494
- var import_jsx_runtime24 = require("react/jsx-runtime");
495
- var OPTION_GROUPS = {
496
- popular: "popular",
497
- recent: "recent",
498
- currencyWithAccountDetails: "currencies-with-account-details"
499
- };
500
- var GroupedList = (_a) => {
501
- var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
502
- const { formatMessage } = (0, import_react_intl6.useIntl)();
503
- const { options } = rest;
504
- const popularOptions = options.filter((option) => option.tag === OPTION_GROUPS.popular);
505
- const recentOptions = options.filter((option) => option.tag === OPTION_GROUPS.recent);
506
- const currencyWithAccountDetailsOptions = options.filter(
507
- (option) => option.tag === OPTION_GROUPS.currencyWithAccountDetails
508
- );
509
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
510
- popularOptions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_components11.Section, { children: [
511
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_components11.Header, { as: "h2", title: formatMessage(decision_messages_default.popular) }),
512
- renderDecisionList2(__spreadProps(__spreadValues({}, rest), { options: popularOptions }))
513
- ] }) : null,
514
- recentOptions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_components11.Section, { children: [
515
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_components11.Header, { as: "h2", title: formatMessage(decision_messages_default.recent) }),
516
- renderDecisionList2(__spreadProps(__spreadValues({}, rest), { options: recentOptions }))
517
- ] }) : null,
518
- currencyWithAccountDetailsOptions.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_components11.Section, { children: [
519
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_components11.Header, { as: "h2", title: formatMessage(decision_messages_default.currenciesWithAccountDetails) }),
520
- renderDecisionList2(__spreadProps(__spreadValues({}, rest), { options: currencyWithAccountDetailsOptions }))
521
- ] }) : null,
522
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_components11.Section, { children: [
523
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_components11.Header, { as: "h2", title: formatMessage(decision_messages_default.all) }),
524
- renderDecisionList2(rest)
525
- ] })
526
- ] });
527
- };
528
- var isGroupedDecision = (options) => {
529
- const possibleGroups = Object.values(OPTION_GROUPS);
530
- return options.some(({ tag }) => tag && possibleGroups.includes(tag));
531
- };
532
-
533
- // ../renderers/src/DecisionRenderer/DecisionList.tsx
534
- var import_react_intl7 = require("react-intl");
535
- var import_react3 = require("react");
536
-
537
- // ../renderers/src/DecisionRenderer/filter-and-sort-decision-options.ts
538
- function filterAndSortDecisionOptions(selectOptions, query) {
539
- const upperQuery = query.toUpperCase().trim();
540
- const filteredItems = selectOptions.filter((option) => {
541
- var _a, _b, _c, _d;
542
- const searchableWords = [
543
- option.title,
544
- option.description,
545
- option.additionalText,
546
- (_a = option.supportingValues) == null ? void 0 : _a.value,
547
- (_b = option.supportingValues) == null ? void 0 : _b.subvalue,
548
- ...(_c = option.keywords) != null ? _c : []
549
- ];
550
- return (_d = searchableWords.some((word) => word == null ? void 0 : word.toUpperCase().includes(upperQuery))) != null ? _d : false;
551
- });
552
- return [...filteredItems].sort((a, b) => {
553
- const aTitleUpper = a.title.toUpperCase();
554
- const bTitleUpper = b.title.toUpperCase();
555
- const aTitleStarts = aTitleUpper.startsWith(upperQuery);
556
- const bTitleStarts = bTitleUpper.startsWith(upperQuery);
557
- if (aTitleStarts && !bTitleStarts) {
558
- return -1;
559
- }
560
- if (!aTitleStarts && bTitleStarts) {
561
- return 1;
562
- }
563
- const aWordStarts = aTitleUpper.split(" ").some((word) => word.startsWith(upperQuery));
564
- const bWordStarts = bTitleUpper.split(" ").some((word) => word.startsWith(upperQuery));
565
- if (aWordStarts && !bWordStarts) {
566
- return -1;
567
- }
568
- if (!aWordStarts && bWordStarts) {
569
- return 1;
570
- }
571
- return a.title.localeCompare(b.title);
572
- });
573
- }
574
-
575
- // ../renderers/src/DecisionRenderer/DecisionList.tsx
576
- var import_jsx_runtime25 = require("react/jsx-runtime");
577
- var DecisionWrapper = (props) => {
578
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: getMargin(props.margin), children: [
579
- props.title && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_components12.Header, { as: "h2", title: props.title }),
580
- props.control === "filtered" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(UnfilteredDecisionList, __spreadValues({}, props))
581
- ] });
582
- };
583
- var UnfilteredDecisionList = (_a) => {
584
- var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
585
- return isGroupedDecision(rest.options) ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GroupedList, __spreadProps(__spreadValues({}, rest), { renderDecisionList: renderDecisionList2 })) : renderDecisionList2(rest);
586
- };
587
- var FilteredDecisionList = (props) => {
588
- const { formatMessage } = (0, import_react_intl7.useIntl)();
589
- const [query, setQuery] = (0, import_react3.useState)("");
590
- const { control, options, renderDecisionList: renderDecisionList2 } = props;
591
- const filteredOptions = filterAndSortDecisionOptions(options, query);
592
- const isGrouped = isGroupedDecision(options);
593
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
594
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
595
- import_components12.SearchInput,
596
- {
597
- placeholder: formatMessage(decision_messages_default.filterPlaceholder),
598
- value: query,
599
- onChange: (e) => {
600
- var _a;
601
- return setQuery((_a = e.target.value) != null ? _a : "");
602
- }
603
- }
604
- ),
605
- isGrouped && query.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(GroupedList, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
606
- query.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_components12.Header, { as: "h2", title: formatMessage(decision_messages_default.results), className: "m-t-4" }),
607
- filteredOptions.length > 0 ? renderDecisionList2({
608
- control,
609
- className: query.length === 0 ? "m-t-3" : "",
610
- options: filteredOptions
611
- }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { children: formatMessage(decision_messages_default.noResults) })
612
- ] })
613
- ] });
614
- };
615
-
616
- // ../renderers/src/DecisionRenderer/DecisionRenderer.tsx
617
- var import_jsx_runtime26 = require("react/jsx-runtime");
618
-
619
- // ../renderers/src/DividerRenderer.tsx
620
- var import_components14 = require("@transferwise/components");
621
- var import_jsx_runtime27 = require("react/jsx-runtime");
622
-
623
- // ../renderers/src/ExternalConfirmationRenderer.tsx
624
- var import_components15 = require("@transferwise/components");
625
-
626
- // ../renderers/src/messages/external-confirmation.messages.ts
627
- var import_react_intl8 = require("react-intl");
628
- var external_confirmation_messages_default = (0, import_react_intl8.defineMessages)({
629
- title: {
630
- id: "df.wise.ExternalConfirmation.title",
631
- defaultMessage: "Please confirm",
632
- description: "Heading for the confirmation screen."
633
- },
634
- description: {
635
- id: "df.wise.ExternalConfirmation.description",
636
- defaultMessage: "Please confirm you want to open **{origin}** in a new browser tab.",
637
- description: "Description for the confirmation screen."
638
- },
639
- open: {
640
- id: "df.wise.ExternalConfirmation.open",
641
- defaultMessage: "Open in new tab",
642
- description: "Button text confirming opening a new browser tab."
643
- },
644
- cancel: {
645
- id: "df.wise.ExternalConfirmation.cancel",
646
- defaultMessage: "Cancel",
647
- description: "Button text rejecting opening a new browser tab."
648
- }
649
- });
650
-
651
- // ../renderers/src/ExternalConfirmationRenderer.tsx
652
- var import_react_intl9 = require("react-intl");
653
- var import_react4 = require("react");
654
- var import_jsx_runtime28 = require("react/jsx-runtime");
655
-
656
- // ../renderers/src/FormRenderer.tsx
657
- var import_jsx_runtime29 = require("react/jsx-runtime");
658
-
659
- // ../renderers/src/FormSectionRenderer.tsx
660
- var import_components16 = require("@transferwise/components");
661
- var import_jsx_runtime30 = require("react/jsx-runtime");
662
-
663
- // ../renderers/src/HeadingRenderer.tsx
664
- var import_components17 = require("@transferwise/components");
665
- var import_jsx_runtime31 = require("react/jsx-runtime");
666
-
667
- // ../renderers/src/ImageRenderer/UrlImage.tsx
668
- var import_components18 = require("@transferwise/components");
669
- var import_react5 = require("react");
670
- var import_jsx_runtime32 = require("react/jsx-runtime");
671
-
672
- // ../renderers/src/ImageRenderer/UrnFlagImage.tsx
673
- var import_jsx_runtime33 = require("react/jsx-runtime");
674
-
675
- // ../renderers/src/ImageRenderer/UrnIllustration.tsx
676
- var import_art4 = require("@wise/art");
677
- var import_react7 = require("react");
678
-
679
- // ../renderers/src/ImageRenderer/SafeIllustration3D.tsx
680
- var import_art3 = require("@wise/art");
681
- var import_react6 = require("react");
682
- var import_jsx_runtime34 = require("react/jsx-runtime");
683
-
684
- // ../renderers/src/ImageRenderer/UrnIllustration.tsx
685
- var import_jsx_runtime35 = require("react/jsx-runtime");
686
-
687
- // ../renderers/src/ImageRenderer/UrnImage.tsx
688
- var import_jsx_runtime36 = require("react/jsx-runtime");
689
-
690
- // ../renderers/src/ImageRenderer/ImageRenderer.tsx
691
- var import_jsx_runtime37 = require("react/jsx-runtime");
692
-
693
- // ../renderers/src/InstructionsRenderer.tsx
694
- var import_components19 = require("@transferwise/components");
695
- var import_jsx_runtime38 = require("react/jsx-runtime");
696
-
697
- // ../renderers/src/IntegerInputRenderer.tsx
698
- var import_components20 = require("@transferwise/components");
699
- var import_jsx_runtime39 = require("react/jsx-runtime");
700
-
701
- // ../renderers/src/ListRenderer.tsx
702
- var import_components21 = require("@transferwise/components");
703
- var import_classnames3 = __toESM(require("classnames"));
704
- var import_jsx_runtime40 = require("react/jsx-runtime");
705
-
706
- // ../renderers/src/LoadingIndicatorRenderer.tsx
707
- var import_components22 = require("@transferwise/components");
708
- var import_jsx_runtime41 = require("react/jsx-runtime");
709
-
710
- // ../renderers/src/MarkdownRenderer.tsx
711
- var import_components23 = require("@transferwise/components");
712
- var import_jsx_runtime42 = require("react/jsx-runtime");
713
-
714
- // ../renderers/src/ModalLayoutRenderer.tsx
715
- var import_components24 = require("@transferwise/components");
716
- var import_react8 = require("react");
717
- var import_jsx_runtime43 = require("react/jsx-runtime");
718
-
719
- // ../renderers/src/ModalRenderer.tsx
720
- var import_components25 = require("@transferwise/components");
721
- var import_jsx_runtime44 = require("react/jsx-runtime");
722
-
723
- // ../renderers/src/MultiSelectInputRenderer.tsx
724
- var import_components26 = require("@transferwise/components");
725
- var import_react9 = require("react");
726
- var import_react_intl11 = require("react-intl");
727
-
728
- // ../renderers/src/messages/multi-select.messages.ts
729
- var import_react_intl10 = require("react-intl");
730
- var multi_select_messages_default = (0, import_react_intl10.defineMessages)({
731
- summary: {
732
- id: "df.wise.MultiSelect.summary",
733
- defaultMessage: "{first} and {count} more",
734
- description: "A summary of the multiple items selected. Showing the title of the first selected item, and the number of other items that have been selected."
735
- }
736
- });
737
-
738
- // ../renderers/src/MultiSelectInputRenderer.tsx
739
- var import_jsx_runtime45 = require("react/jsx-runtime");
740
-
741
- // ../renderers/src/MultiUploadInputRenderer.tsx
742
- var import_components28 = require("@transferwise/components");
743
-
744
- // ../renderers/src/components/UploadFieldInput.tsx
745
- var import_components27 = require("@transferwise/components");
746
- var import_classnames4 = __toESM(require("classnames"));
747
- var import_jsx_runtime46 = require("react/jsx-runtime");
748
-
749
- // ../renderers/src/MultiUploadInputRenderer.tsx
750
- var import_jsx_runtime47 = require("react/jsx-runtime");
751
-
752
- // ../renderers/src/NumberInputRenderer.tsx
753
- var import_components29 = require("@transferwise/components");
754
- var import_jsx_runtime48 = require("react/jsx-runtime");
755
-
756
- // ../renderers/src/ParagraphRenderer.tsx
757
- var import_react_intl13 = require("react-intl");
758
-
759
- // ../renderers/src/hooks/useSnackBarIfAvailable.ts
760
- var import_components30 = require("@transferwise/components");
761
- var import_react10 = require("react");
762
-
763
- // ../renderers/src/ParagraphRenderer.tsx
764
- var import_components31 = require("@transferwise/components");
765
- var import_classnames5 = __toESM(require("classnames"));
766
-
767
- // ../renderers/src/messages/paragraph.messages.ts
768
- var import_react_intl12 = require("react-intl");
769
- var paragraph_messages_default = (0, import_react_intl12.defineMessages)({
770
- copy: {
771
- id: "df.wise.DynamicParagraph.copy",
772
- defaultMessage: "Copy",
773
- description: "Copy to clipboard button label."
774
- },
775
- copied: {
776
- id: "df.wise.DynamicParagraph.copied",
777
- defaultMessage: "Copied to clipboard",
778
- description: "Appears in a snackbar when the copy operation succeeds."
779
- }
780
- });
781
-
782
- // ../renderers/src/ParagraphRenderer.tsx
783
- var import_jsx_runtime49 = require("react/jsx-runtime");
784
-
785
- // ../renderers/src/RepeatableRenderer.tsx
786
- var import_components32 = require("@transferwise/components");
787
- var import_icons = require("@transferwise/icons");
788
- var import_classnames6 = __toESM(require("classnames"));
789
- var import_react11 = require("react");
790
- var import_react_intl15 = require("react-intl");
791
-
792
- // ../renderers/src/messages/repeatable.messages.ts
793
- var import_react_intl14 = require("react-intl");
794
- var repeatable_messages_default = (0, import_react_intl14.defineMessages)({
795
- addItemTitle: {
796
- id: "df.wise.ArraySchema.addItemTitle",
797
- defaultMessage: "Add Item",
798
- description: "Label on the button used to open a form to add an item"
799
- },
800
- addItem: {
801
- id: "df.wise.ArraySchema.addItem",
802
- defaultMessage: "Save",
803
- description: "Label on the add button used to submit a form that adds an item"
804
- },
805
- editItem: {
806
- id: "df.wise.ArraySchema.editItem",
807
- defaultMessage: "Save",
808
- description: "Label on the edit button used to submit a form that edits an item"
809
- },
810
- removeItem: {
811
- id: "df.wise.ArraySchema.removeItem",
812
- defaultMessage: "Remove",
813
- description: "Label on the remove button used to confirm deletion of an item"
814
- }
815
- });
816
-
817
- // ../renderers/src/RepeatableRenderer.tsx
818
- var import_jsx_runtime50 = require("react/jsx-runtime");
819
-
820
- // ../renderers/src/ReviewRenderer.tsx
821
- var import_components34 = require("@transferwise/components");
822
-
823
- // ../renderers/src/components/Header.tsx
824
- var import_components33 = require("@transferwise/components");
825
- var import_jsx_runtime51 = require("react/jsx-runtime");
826
- var Header7 = ({ title, callToAction }) => (title || callToAction) && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_components33.Header, { title: title != null ? title : "", action: getHeaderAction(callToAction) });
827
- var getHeaderAction = (callToAction) => {
828
- if (!callToAction) {
829
- return void 0;
830
- }
831
- const { accessibilityDescription, href, title, onClick } = callToAction;
832
- return href ? {
833
- "aria-label": accessibilityDescription,
834
- text: title,
835
- href,
836
- target: "_blank"
837
- } : {
838
- "aria-label": accessibilityDescription,
839
- text: title,
840
- onClick: (event) => {
841
- event.preventDefault();
842
- onClick();
843
- }
844
- };
845
- };
846
-
847
- // ../renderers/src/ReviewRenderer.tsx
848
- var import_jsx_runtime52 = require("react/jsx-runtime");
849
-
850
- // ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
851
- var import_components36 = require("@transferwise/components");
852
- var import_react12 = require("react");
853
- var import_react_intl19 = require("react-intl");
854
-
855
- // ../renderers/src/messages/search.messages.ts
856
- var import_react_intl16 = require("react-intl");
857
- var search_messages_default = (0, import_react_intl16.defineMessages)({
858
- loading: {
859
- id: "df.wise.SearchLayout.loading",
860
- defaultMessage: "Loading...",
861
- description: "A message shown to the user while their search is being processed, before results appear."
862
- }
863
- });
864
-
865
- // ../renderers/src/SearchRenderer/ErrorResult.tsx
866
- var import_react_intl18 = require("react-intl");
867
-
868
- // ../renderers/src/messages/generic-error.messages.ts
869
- var import_react_intl17 = require("react-intl");
870
- var generic_error_messages_default = (0, import_react_intl17.defineMessages)({
871
- genericErrorRetryHint: {
872
- id: "df.wise.PersistAsyncSchema.genericError",
873
- defaultMessage: "Something went wrong, please try again.",
874
- description: "Generic error message for persist async schema"
875
- },
876
- genericError: {
877
- id: "df.wise.ErrorBoundary.errorAlert",
878
- defaultMessage: "Something went wrong.",
879
- description: "Generic error message for when something has gone wrong."
880
- },
881
- retry: {
882
- id: "df.wise.ErrorBoundary.retry",
883
- defaultMessage: "Retry",
884
- description: "Usually this follows the generic error and contains a link."
885
- }
886
- });
887
-
888
- // ../renderers/src/SearchRenderer/ErrorResult.tsx
889
- var import_components35 = require("@transferwise/components");
890
- var import_jsx_runtime53 = require("react/jsx-runtime");
891
-
892
- // ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
893
- var import_jsx_runtime54 = require("react/jsx-runtime");
894
-
895
- // ../renderers/src/SearchRenderer/InlineSearchRendererComponent.tsx
896
- var import_components37 = require("@transferwise/components");
897
- var import_icons2 = require("@transferwise/icons");
898
- var import_react13 = require("react");
899
- var import_react_intl20 = require("react-intl");
900
- var import_jsx_runtime55 = require("react/jsx-runtime");
901
-
902
- // ../renderers/src/SearchRenderer/SearchRenderer.tsx
903
- var import_jsx_runtime56 = require("react/jsx-runtime");
904
-
905
- // ../renderers/src/SectionRenderer.tsx
906
- var import_components38 = require("@transferwise/components");
907
- var import_jsx_runtime57 = require("react/jsx-runtime");
908
-
909
- // ../renderers/src/SelectInputRenderer/RadioInputRendererComponent.tsx
910
- var import_components39 = require("@transferwise/components");
911
- var import_jsx_runtime58 = require("react/jsx-runtime");
912
-
913
- // ../renderers/src/SelectInputRenderer/TabInputRendererComponent.tsx
914
- var import_components40 = require("@transferwise/components");
915
- var import_react14 = require("react");
916
- var import_jsx_runtime59 = require("react/jsx-runtime");
917
-
918
- // ../renderers/src/SelectInputRenderer/SelectInputRendererComponent.tsx
919
- var import_components41 = require("@transferwise/components");
920
- var import_jsx_runtime60 = require("react/jsx-runtime");
921
-
922
- // ../renderers/src/SelectInputRenderer/SegmentedInputRendererComponent.tsx
923
- var import_react15 = require("react");
924
- var import_components42 = require("@transferwise/components");
925
- var import_jsx_runtime61 = require("react/jsx-runtime");
926
-
927
- // ../renderers/src/SelectInputRenderer/SelectInputRenderer.tsx
928
- var import_jsx_runtime62 = require("react/jsx-runtime");
929
-
930
- // ../renderers/src/StatusListRenderer.tsx
931
- var import_components43 = require("@transferwise/components");
932
- var import_jsx_runtime63 = require("react/jsx-runtime");
933
-
934
- // ../renderers/src/utils/useCustomTheme.ts
935
- var import_components_theming = require("@wise/components-theming");
936
- var import_react16 = require("react");
937
-
938
- // ../renderers/src/step/topbar/BackButton.tsx
939
- var import_components44 = require("@transferwise/components");
940
- var import_icons3 = require("@transferwise/icons");
941
- var import_jsx_runtime64 = require("react/jsx-runtime");
942
-
943
- // ../renderers/src/step/topbar/Toolbar.tsx
944
- var import_components45 = require("@transferwise/components");
945
- var import_jsx_runtime65 = require("react/jsx-runtime");
946
-
947
- // ../renderers/src/step/topbar/TopBar.tsx
948
- var import_jsx_runtime66 = require("react/jsx-runtime");
949
-
950
- // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
951
- var import_jsx_runtime67 = require("react/jsx-runtime");
952
-
953
- // ../renderers/src/step/SplashStepRenderer.tsx
954
- var import_jsx_runtime68 = require("react/jsx-runtime");
955
-
956
- // ../renderers/src/step/StepRenderer.tsx
957
- var import_components46 = require("@transferwise/components");
958
- var import_jsx_runtime69 = require("react/jsx-runtime");
959
-
960
- // ../renderers/src/TabsRenderer.tsx
961
- var import_components47 = require("@transferwise/components");
962
- var import_react17 = require("react");
963
- var import_jsx_runtime70 = require("react/jsx-runtime");
964
-
965
- // ../renderers/src/TextInputRenderer.tsx
966
- var import_components49 = require("@transferwise/components");
967
-
968
- // ../renderers/src/components/VariableTextInput.tsx
969
- var import_components48 = require("@transferwise/components");
970
- var import_jsx_runtime71 = require("react/jsx-runtime");
971
-
972
- // ../renderers/src/TextInputRenderer.tsx
973
- var import_jsx_runtime72 = require("react/jsx-runtime");
974
-
975
- // ../renderers/src/UploadInputRenderer.tsx
976
- var import_components50 = require("@transferwise/components");
977
- var import_jsx_runtime73 = require("react/jsx-runtime");
978
-
979
- // ../renderers/src/NewListItem/NewDecisionRenderer.tsx
980
- var import_components53 = require("@transferwise/components");
981
-
982
- // ../renderers/src/NewListItem/getInlineAlert.tsx
983
- var import_components51 = require("@transferwise/components");
984
- var import_jsx_runtime74 = require("react/jsx-runtime");
985
- var getInlineAlert = (inlineAlert) => inlineAlert ? /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_components51.ListItem.Prompt, { sentiment: inlineAlert == null ? void 0 : inlineAlert.context, children: inlineAlert.content }) : void 0;
986
-
987
- // ../renderers/src/NewListItem/getAdditionalInfo.tsx
988
- var import_components52 = require("@transferwise/components");
989
- var import_jsx_runtime75 = require("react/jsx-runtime");
990
- var getAdditionalInfo = (additionalInfo) => {
991
- if (!additionalInfo) {
992
- return void 0;
993
- }
994
- const { href, text, onClick } = additionalInfo;
995
- if (href || onClick) {
996
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
997
- import_components52.ListItem.AdditionalInfo,
998
- {
999
- action: {
1000
- label: text,
1001
- href,
1002
- onClick,
1003
- target: "_blank"
1004
- }
1005
- }
1006
- );
1007
- }
1008
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_components52.ListItem.AdditionalInfo, { children: additionalInfo == null ? void 0 : additionalInfo.text });
1009
- };
1010
-
1011
- // ../renderers/src/NewListItem/NewDecisionRenderer.tsx
1012
- var import_jsx_runtime76 = require("react/jsx-runtime");
1013
- var DecisionRenderer = {
1014
- canRenderType: "decision",
1015
- render: (props) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(DecisionWrapper, __spreadProps(__spreadValues({}, props), { renderDecisionList }))
1016
- };
1017
- var renderDecisionList = ({ options, control }) => {
1018
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_jsx_runtime76.Fragment, { children: options.map((option) => {
1019
- const {
1020
- description,
1021
- disabled,
1022
- media,
1023
- title: itemTitle,
1024
- tag,
1025
- href,
1026
- additionalText,
1027
- inlineAlert,
1028
- supportingValues,
1029
- onClick
1030
- } = option;
1031
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
1032
- import_components53.ListItem,
1033
- {
1034
- title: itemTitle,
1035
- subtitle: description,
1036
- spotlight: control === "spotlight" ? tag === "spotlight-active" ? "active" : "inactive" : void 0,
1037
- disabled,
1038
- valueTitle: supportingValues == null ? void 0 : supportingValues.value,
1039
- valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
1040
- media: getMedia(media, control === "with-avatar" || tag === "with-avatar"),
1041
- prompt: getInlineAlert(inlineAlert),
1042
- additionalInfo: additionalText ? getAdditionalInfo({ text: additionalText }) : void 0,
1043
- control: href ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_components53.ListItem.Navigation, { href, target: "_blank" }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_components53.ListItem.Navigation, { onClick })
1044
- },
1045
- JSON.stringify(option)
1046
- );
1047
- }) });
1048
- };
1049
- var NewDecisionRenderer_default = DecisionRenderer;
1050
-
1051
- // ../renderers/src/NewListItem/NewListRenderer.tsx
1052
- var import_components54 = require("@transferwise/components");
1053
- var import_jsx_runtime77 = require("react/jsx-runtime");
1054
- var ListRenderer = {
1055
- canRenderType: "list",
1056
- render: ({ callToAction, control, margin, items, title }) => /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: getMargin(margin), children: [
1057
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Header7, { title, callToAction }),
1058
- items.map((item) => {
1059
- const {
1060
- title: itemTitle,
1061
- description,
1062
- supportingValues,
1063
- media,
1064
- tag,
1065
- additionalInfo,
1066
- inlineAlert
1067
- } = item;
1068
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
1069
- import_components54.ListItem,
1070
- {
1071
- title: itemTitle,
1072
- subtitle: description,
1073
- valueTitle: supportingValues == null ? void 0 : supportingValues.value,
1074
- valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
1075
- media: getMedia(media, control === "with-avatar" || tag === "with-avatar"),
1076
- prompt: getInlineAlert(inlineAlert),
1077
- additionalInfo: getAdditionalInfo(additionalInfo)
1078
- },
1079
- itemTitle
1080
- );
1081
- })
1082
- ] })
1083
- };
1084
- var NewListRenderer_default = ListRenderer;
1085
-
1086
- // ../renderers/src/NewListItem/NewReviewRenderer.tsx
1087
- var import_components55 = require("@transferwise/components");
1088
- var import_icons4 = require("@transferwise/icons");
1089
- var import_jsx_runtime78 = require("react/jsx-runtime");
1090
- var IGNORED_CONTROLS = [
1091
- "horizontal",
1092
- "horizontal-end-aligned",
1093
- "horizontal-start-aligned",
1094
- "vertical-two-column"
1095
- ];
1096
- var ReviewRenderer = {
1097
- canRenderType: "review",
1098
- canRender: ({ control }) => control ? !IGNORED_CONTROLS.includes(control) : true,
1099
- render: ({ callToAction, control, margin, fields, title }) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: getMargin(margin), children: [
1100
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Header7, { title, callToAction }),
1101
- fields.map((field) => {
1102
- var _a;
1103
- const {
1104
- label,
1105
- value,
1106
- media,
1107
- tag,
1108
- additionalInfo,
1109
- inlineAlert,
1110
- help,
1111
- callToAction: itemCallToAction
1112
- } = field;
1113
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
1114
- import_components55.ListItem,
1115
- {
1116
- title: value,
1117
- subtitle: label,
1118
- inverted: true,
1119
- media: getMedia(media, control === "with-avatar" || tag === "with-avatar"),
1120
- control: (_a = getCTAControl(itemCallToAction)) != null ? _a : getHelpControl(help),
1121
- prompt: getInlineAlert(inlineAlert),
1122
- additionalInfo: getAdditionalInfo(additionalInfo)
1123
- },
1124
- JSON.stringify(field)
1125
- );
1126
- })
1127
- ] })
1128
- };
1129
- var getCTAControl = (callToAction) => {
1130
- if (!callToAction) {
1131
- return void 0;
1132
- }
1133
- const { accessibilityDescription, href, title, onClick } = callToAction;
1134
- if (href) {
1135
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_components55.ListItem.Button, { href, partiallyInteractive: true, "aria-description": accessibilityDescription, children: title });
1136
- }
1137
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
1138
- import_components55.ListItem.Button,
1139
- {
1140
- "aria-description": accessibilityDescription,
1141
- partiallyInteractive: true,
1142
- onClick,
1143
- children: title
1144
- }
1145
- );
1146
- };
1147
- var getHelpControl = (help) => {
1148
- if (!help) {
1149
- return void 0;
1150
- }
1151
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_components55.Popover, { content: help, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_components55.ListItem.IconButton, { partiallyInteractive: true, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons4.QuestionMarkCircle, {}) }) });
1152
- };
1153
- var NewReviewRenderer_default = ReviewRenderer;
1154
-
1155
- // ../renderers/src/NewListItem/NewStatusListRenderer.tsx
1156
- var import_components56 = require("@transferwise/components");
1157
- var import_jsx_runtime79 = require("react/jsx-runtime");
1158
- var NewStatusListRenderer = {
1159
- canRenderType: "status-list",
1160
- render: ({ margin, items, title }) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: getMargin(margin), children: [
1161
- title ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_components56.Header, { title, className: "m-b-2" }) : null,
1162
- items.map((item) => {
1163
- const { callToAction, description, icon, status, title: itemTitle } = item;
1164
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
1165
- import_components56.ListItem,
1166
- {
1167
- title: itemTitle,
1168
- subtitle: description,
1169
- media: icon && "name" in icon ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_components56.AvatarView, { badge: { status: mapStatus(status) }, children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(DynamicIcon_default, { name: icon.name }) }) : void 0,
1170
- additionalInfo: callToAction ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
1171
- import_components56.ListItem.AdditionalInfo,
1172
- {
1173
- action: {
1174
- href: callToAction.href,
1175
- onClick: callToAction.href ? void 0 : callToAction.onClick,
1176
- label: callToAction.title,
1177
- target: "_blank"
1178
- }
1179
- }
1180
- ) : void 0
1181
- },
1182
- JSON.stringify(item)
1183
- );
1184
- })
1185
- ] })
1186
- };
1187
- var mapStatus = (status) => {
1188
- switch (status) {
1189
- case "done":
1190
- return "positive";
1191
- case "pending":
1192
- return "pending";
1193
- default:
1194
- return void 0;
1195
- }
1196
- };
1197
- var NewStatusListRenderer_default = NewStatusListRenderer;
1198
-
1199
- // ../renderers/src/ButtonRenderer/ButtonRendererV2.tsx
1200
- var import_components57 = require("@transferwise/components");
1201
-
1202
- // ../renderers/src/utils/isButtonPriority.ts
1203
- var validPriorities = ["primary", "secondary", "secondary-neutral", "tertiary"];
1204
- var isButtonPriority = (control) => validPriorities.includes(control);
1205
-
1206
- // ../renderers/src/ButtonRenderer/ButtonRendererV2.tsx
1207
- var import_react18 = require("react");
1208
- var import_jsx_runtime80 = require("react/jsx-runtime");
1209
- var ButtonRendererV2 = {
1210
- canRenderType: "button",
1211
- render: ButtonComponent
1212
- };
1213
- function ButtonComponent(props) {
1214
- const { control, context, disabled, margin, title, size, stepLoadingState, onClick } = props;
1215
- const [spinny, setSpinny] = (0, import_react18.useState)(false);
1216
- (0, import_react18.useEffect)(() => {
1217
- if (stepLoadingState === "idle") {
1218
- setSpinny(false);
1219
- }
1220
- }, [stepLoadingState]);
1221
- const loading = spinny && stepLoadingState !== "idle";
1222
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
1223
- import_components57.Button,
1224
- {
1225
- v2: true,
1226
- block: true,
1227
- className: getMargin(margin),
1228
- disabled,
1229
- priority: getPriority(control),
1230
- loading,
1231
- size: mapButtonSize(size),
1232
- sentiment: getSentiment(context),
1233
- onClick: () => {
1234
- setSpinny(true);
1235
- onClick();
1236
- },
1237
- children: title
1238
- }
1239
- );
1240
- }
1241
- var getSentiment = (context) => context === "negative" ? "negative" : "default";
1242
- var getPriority = (control) => control && isButtonPriority(control) ? control : "secondary";
1243
-
1244
- // ../renderers/src/ProgressRenderer.tsx
1245
- var import_components58 = require("@transferwise/components");
1246
- var import_jsx_runtime81 = require("react/jsx-runtime");
1247
-
1248
- // ../renderers/src/getWiseRenderers.ts
1249
- var getListItemRenderers = () => [
1250
- NewDecisionRenderer_default,
1251
- NewListRenderer_default,
1252
- NewReviewRenderer_default,
1253
- NewStatusListRenderer_default
1254
- ];
1255
- var getButtonV2Renderers = () => [ButtonRendererV2];
1256
-
1257
- // src/dynamicFlow/renderers.ts
1258
- var Header11 = Header7;
1259
- var Media2 = Media;
1260
- var getMargin2 = getMargin;
1261
- var getListItemRenderers2 = getListItemRenderers;
1262
- var getButtonV2Renderers2 = getButtonV2Renderers;