@wise/dynamic-flow-client-internal 5.32.0 → 5.33.0-experimental-f7c2300

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/build/main.mjs CHANGED
@@ -64,7 +64,7 @@ var require_classnames = __commonJS({
64
64
  (function() {
65
65
  "use strict";
66
66
  var hasOwn = {}.hasOwnProperty;
67
- function classNames37() {
67
+ function classNames38() {
68
68
  var classes = "";
69
69
  for (var i = 0; i < arguments.length; i++) {
70
70
  var arg = arguments[i];
@@ -82,7 +82,7 @@ var require_classnames = __commonJS({
82
82
  return "";
83
83
  }
84
84
  if (Array.isArray(arg)) {
85
- return classNames37.apply(null, arg);
85
+ return classNames38.apply(null, arg);
86
86
  }
87
87
  if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
88
88
  return arg.toString();
@@ -105,14 +105,14 @@ var require_classnames = __commonJS({
105
105
  return value + newClass;
106
106
  }
107
107
  if (typeof module !== "undefined" && module.exports) {
108
- classNames37.default = classNames37;
109
- module.exports = classNames37;
108
+ classNames38.default = classNames38;
109
+ module.exports = classNames38;
110
110
  } else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
111
111
  define("classnames", [], function() {
112
- return classNames37;
112
+ return classNames38;
113
113
  });
114
114
  } else {
115
- window.classNames = classNames37;
115
+ window.classNames = classNames38;
116
116
  }
117
117
  })();
118
118
  }
@@ -1643,8 +1643,9 @@ var getInlineAlertOrValidation = (validationState, inlineAlert) => {
1643
1643
  };
1644
1644
  var CheckboxInputRenderer_default = CheckboxInputRenderer;
1645
1645
 
1646
- // ../renderers/src/CollectionRenderer/CollectionRenderer.tsx
1646
+ // ../renderers/src/CollectionRenderer/CollectionRendererComponent.tsx
1647
1647
  import { InlinePrompt, Link as DSLink } from "@transferwise/components";
1648
+ import { AnimatePresence, motion, MotionConfig } from "motion/react";
1648
1649
 
1649
1650
  // ../renderers/src/messages/generic-error.messages.ts
1650
1651
  import { defineMessages as defineMessages3 } from "react-intl";
@@ -1666,6 +1667,58 @@ var generic_error_messages_default = defineMessages3({
1666
1667
  }
1667
1668
  });
1668
1669
 
1670
+ // ../renderers/src/CollectionRenderer/CollectionRendererComponent.tsx
1671
+ import { useIntl as useIntl3 } from "react-intl";
1672
+ import { jsx as jsx35, jsxs as jsxs6 } from "react/jsx-runtime";
1673
+ var CollectionRendererComponent = (props) => {
1674
+ const { state, depth, pop, Search: Search5, Filters, Results, FocusedResults } = props;
1675
+ const { status, search } = state;
1676
+ const isForked = depth > 0;
1677
+ const isError = status.type === "error" && (status.reason === "search" || status.reason === "filter");
1678
+ return /* @__PURE__ */ jsx35(
1679
+ "div",
1680
+ {
1681
+ role: "presentation",
1682
+ onBlur: (event) => {
1683
+ const { target, relatedTarget, currentTarget } = event;
1684
+ const lostFocus = relatedTarget === null && (!target.isConnected || target.matches(":disabled"));
1685
+ if (isForked && !(search == null ? void 0 : search.query) && !lostFocus && !currentTarget.contains(relatedTarget)) {
1686
+ pop();
1687
+ }
1688
+ },
1689
+ children: /* @__PURE__ */ jsxs6(MotionConfig, { reducedMotion: "user", children: [
1690
+ /* @__PURE__ */ jsx35(Search5, __spreadValues({}, props)),
1691
+ /* @__PURE__ */ jsx35(Filters, __spreadValues({}, props)),
1692
+ /* @__PURE__ */ jsx35(AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ jsx35(
1693
+ motion.div,
1694
+ {
1695
+ variants: contentVariants,
1696
+ initial: "enter",
1697
+ animate: "visible",
1698
+ exit: "exit",
1699
+ transition: { duration: 0.15, ease: "easeOut" },
1700
+ children: isError ? /* @__PURE__ */ jsx35(SearchError, { retry: status.retry }) : isForked ? /* @__PURE__ */ jsx35(FocusedResults, __spreadValues({}, props)) : /* @__PURE__ */ jsx35(Results, __spreadValues({}, props))
1701
+ },
1702
+ isForked ? "forked" : "root"
1703
+ ) })
1704
+ ] })
1705
+ }
1706
+ );
1707
+ };
1708
+ var contentVariants = {
1709
+ enter: () => ({ opacity: 0, y: 12 }),
1710
+ visible: { opacity: 1, y: 0 },
1711
+ exit: () => ({ opacity: 0, y: -12 })
1712
+ };
1713
+ var SearchError = ({ retry }) => {
1714
+ const { formatMessage } = useIntl3();
1715
+ return /* @__PURE__ */ jsxs6(InlinePrompt, { width: "full", sentiment: "negative", children: [
1716
+ formatMessage(generic_error_messages_default.genericError),
1717
+ "\xA0",
1718
+ /* @__PURE__ */ jsx35(DSLink, { onClick: retry, children: formatMessage(generic_error_messages_default.retry) })
1719
+ ] });
1720
+ };
1721
+
1669
1722
  // ../../node_modules/.pnpm/@tanstack+react-virtual@3.14.10_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@tanstack/react-virtual/dist/esm/index.js
1670
1723
  import * as React from "react";
1671
1724
  import { flushSync } from "react-dom";
@@ -3202,14 +3255,14 @@ function useWindowVirtualizer(options) {
3202
3255
  }, options));
3203
3256
  }
3204
3257
 
3205
- // ../renderers/src/CollectionRenderer/components/ContentComponent.tsx
3258
+ // ../renderers/src/CollectionRenderer/components/VirtualisedContentComponent.tsx
3206
3259
  import { ProcessIndicator, Button as Button4 } from "@transferwise/components";
3207
3260
  import { useRef as useRef4, useEffect as useEffect7, useLayoutEffect as useLayoutEffect2, useState as useState8 } from "react";
3208
3261
 
3209
3262
  // ../renderers/src/step/StepFooter.tsx
3210
3263
  import { Button as Button3 } from "@transferwise/components";
3211
3264
  import { useEffect as useEffect6, useRef as useRef3, useState as useState7 } from "react";
3212
- import { useIntl as useIntl3 } from "react-intl";
3265
+ import { useIntl as useIntl4 } from "react-intl";
3213
3266
 
3214
3267
  // ../renderers/src/messages/step.messages.ts
3215
3268
  import { defineMessages as defineMessages4 } from "react-intl";
@@ -3222,23 +3275,23 @@ var step_messages_default = defineMessages4({
3222
3275
  });
3223
3276
 
3224
3277
  // ../renderers/src/step/StepFooter.tsx
3225
- import { Fragment as Fragment2, jsx as jsx35, jsxs as jsxs6 } from "react/jsx-runtime";
3278
+ import { Fragment as Fragment2, jsx as jsx36, jsxs as jsxs7 } from "react/jsx-runtime";
3226
3279
  var SCROLL_TO_BOTTOM = "scroll-to-bottom";
3227
3280
  var StepFooter = ({ footer, tags }) => {
3228
3281
  if (tags == null ? void 0 : tags.includes(SCROLL_TO_BOTTOM)) {
3229
- return /* @__PURE__ */ jsx35(FooterWithScrollButton, { footer });
3282
+ return /* @__PURE__ */ jsx36(FooterWithScrollButton, { footer });
3230
3283
  }
3231
- return /* @__PURE__ */ jsx35(DefaultFooter, { footer });
3284
+ return /* @__PURE__ */ jsx36(DefaultFooter, { footer });
3232
3285
  };
3233
3286
  var DefaultFooter = ({ footer }) => {
3234
3287
  const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3235
- return hasFooter ? /* @__PURE__ */ jsx35("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
3288
+ return hasFooter ? /* @__PURE__ */ jsx36("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
3236
3289
  };
3237
3290
  var FooterWithScrollButton = ({ footer }) => {
3238
- const { formatMessage } = useIntl3();
3291
+ const { formatMessage } = useIntl4();
3239
3292
  const endOfLayoutRef = useRef3(null);
3240
3293
  const isElementVisible = useIsElementVisible(endOfLayoutRef);
3241
- const scrollButton = /* @__PURE__ */ jsx35(
3294
+ const scrollButton = /* @__PURE__ */ jsx36(
3242
3295
  Button3,
3243
3296
  {
3244
3297
  className: "m-b-1",
@@ -3254,11 +3307,11 @@ var FooterWithScrollButton = ({ footer }) => {
3254
3307
  );
3255
3308
  const hasStepFooterContent = footer && Array.isArray(footer) && footer.length > 0;
3256
3309
  if (isElementVisible && !hasStepFooterContent) {
3257
- return /* @__PURE__ */ jsx35("div", { ref: endOfLayoutRef, "aria-hidden": "true" });
3310
+ return /* @__PURE__ */ jsx36("div", { ref: endOfLayoutRef, "aria-hidden": "true" });
3258
3311
  }
3259
- return /* @__PURE__ */ jsxs6(Fragment2, { children: [
3260
- /* @__PURE__ */ jsx35("div", { ref: endOfLayoutRef, "aria-hidden": "true" }),
3261
- /* @__PURE__ */ jsxs6("div", { className: "df-step-fixed__footer", children: [
3312
+ return /* @__PURE__ */ jsxs7(Fragment2, { children: [
3313
+ /* @__PURE__ */ jsx36("div", { ref: endOfLayoutRef, "aria-hidden": "true" }),
3314
+ /* @__PURE__ */ jsxs7("div", { className: "df-step-fixed__footer", children: [
3262
3315
  !isElementVisible && scrollButton,
3263
3316
  footer
3264
3317
  ] })
@@ -3281,8 +3334,8 @@ var useIsElementVisible = (elementRef, root = null) => {
3281
3334
  return isVisible;
3282
3335
  };
3283
3336
 
3284
- // ../renderers/src/CollectionRenderer/components/ContentComponent.tsx
3285
- import { useIntl as useIntl4 } from "react-intl";
3337
+ // ../renderers/src/CollectionRenderer/components/VirtualisedContentComponent.tsx
3338
+ import { useIntl as useIntl5 } from "react-intl";
3286
3339
 
3287
3340
  // ../renderers/src/messages/collection.messages.ts
3288
3341
  import { defineMessages as defineMessages5 } from "react-intl";
@@ -3296,6 +3349,16 @@ var collection_messages_default = defineMessages5({
3296
3349
  id: "df.wise.Collection.clearText",
3297
3350
  defaultMessage: "Clear text",
3298
3351
  description: "A message shown at the edge of the search bar to clear the users query"
3352
+ },
3353
+ showMoreResultsButton: {
3354
+ id: "df.wise.Collection.showMoreResultsButton",
3355
+ defaultMessage: "Show all {count} results",
3356
+ description: "A message shown at the bottom of a truncated list of items, clicking will expand to show more"
3357
+ },
3358
+ showLessResultsButton: {
3359
+ id: "df.wise.Collection.showLessResultsButton",
3360
+ defaultMessage: "Show less results",
3361
+ description: "A message shown at the bottom of an expanded list of items, clicking will truncate to show only a few"
3299
3362
  }
3300
3363
  });
3301
3364
 
@@ -3319,10 +3382,48 @@ var getScrollableAncestor = (element) => {
3319
3382
  return null;
3320
3383
  };
3321
3384
 
3322
- // ../renderers/src/CollectionRenderer/components/ContentComponent.tsx
3323
- import { jsx as jsx36, jsxs as jsxs7 } from "react/jsx-runtime";
3324
- var ContentComponent = (props) => {
3325
- const { state, status, SectionHeader, Item } = props;
3385
+ // ../renderers/src/CollectionRenderer/components/flattenCollectionItems.ts
3386
+ var flattenCollectionItems = (sections) => {
3387
+ return sections.flatMap((section) => {
3388
+ if (section.type === "items") {
3389
+ return flattenItemsBody(section);
3390
+ }
3391
+ if (section.type === "layout") {
3392
+ return flattenLayoutBody(section);
3393
+ }
3394
+ return [];
3395
+ });
3396
+ };
3397
+ var flattenItemsBody = (section) => {
3398
+ return [
3399
+ ...flattenSectionHeader(section),
3400
+ ...section.items.map((item) => ({
3401
+ item,
3402
+ type: "item"
3403
+ }))
3404
+ ];
3405
+ };
3406
+ var flattenLayoutBody = (section) => [
3407
+ ...flattenSectionHeader(section),
3408
+ __spreadProps(__spreadValues({}, section), {
3409
+ type: "layout"
3410
+ })
3411
+ ];
3412
+ var flattenSectionHeader = (section) => section.title ? [
3413
+ {
3414
+ type: "header",
3415
+ title: section.title,
3416
+ items: section.type === "items" ? section.items : void 0,
3417
+ id: section.id,
3418
+ callToAction: section.callToAction
3419
+ }
3420
+ ] : [];
3421
+
3422
+ // ../renderers/src/CollectionRenderer/components/VirtualisedContentComponent.tsx
3423
+ import { jsx as jsx37, jsxs as jsxs8 } from "react/jsx-runtime";
3424
+ var VirtualisedContentComponent = (props) => {
3425
+ const { state, SectionHeader, Item } = props;
3426
+ const { status } = state;
3326
3427
  const contentRef = useRef4(null);
3327
3428
  const [scrollElement, setScrollElement] = useState8(null);
3328
3429
  useLayoutEffect2(() => {
@@ -3339,34 +3440,20 @@ var ContentComponent = (props) => {
3339
3440
  status.loadMore();
3340
3441
  }
3341
3442
  }, [isBottomVisible, state.afterSectionsProps.length, status]);
3342
- const stateCount = state.sections.reduce(
3343
- (total, section) => section.items.length + total + (section.title ? 1 : 0),
3344
- 0
3345
- );
3346
- const items = state.sections.flatMap((section) => [
3347
- ...section.title ? [
3348
- {
3349
- type: "header",
3350
- title: section.title,
3351
- items: section.items,
3352
- id: section.id,
3353
- callToAction: section.callToAction
3354
- }
3355
- ] : [],
3356
- ...section.items.map((item) => ({
3357
- item,
3358
- type: "item"
3359
- }))
3360
- ]);
3443
+ const stateCount = state.sections.reduce((total, section) => {
3444
+ const count = section.type === "items" ? section.items.length : 1;
3445
+ return count + total + (section.title ? 1 : 0);
3446
+ }, 0);
3447
+ const items = flattenCollectionItems(state.sections);
3361
3448
  const listRef = useRef4(null);
3362
3449
  const listOffsetRef = useRef4(0);
3363
3450
  useLayoutEffect2(() => {
3364
3451
  var _a, _b;
3365
3452
  listOffsetRef.current = (_b = (_a = listRef.current) == null ? void 0 : _a.offsetTop) != null ? _b : 0;
3366
3453
  });
3367
- return /* @__PURE__ */ jsxs7("div", { ref: contentRef, children: [
3454
+ return /* @__PURE__ */ jsxs8("div", { ref: contentRef, children: [
3368
3455
  state.beforeSections,
3369
- scrollElement ? /* @__PURE__ */ jsx36(
3456
+ scrollElement ? /* @__PURE__ */ jsx37(
3370
3457
  ElementVirtualizedItems,
3371
3458
  {
3372
3459
  Item,
@@ -3375,7 +3462,7 @@ var ContentComponent = (props) => {
3375
3462
  scrollElement,
3376
3463
  stateCount
3377
3464
  }
3378
- ) : /* @__PURE__ */ jsx36(
3465
+ ) : /* @__PURE__ */ jsx37(
3379
3466
  WindowVirtualizedItems,
3380
3467
  {
3381
3468
  Item,
@@ -3384,7 +3471,7 @@ var ContentComponent = (props) => {
3384
3471
  stateCount
3385
3472
  }
3386
3473
  ),
3387
- /* @__PURE__ */ jsx36("div", { ref: endOfContentRef, className: "d-flex m-x-auto m-y-2", children: /* @__PURE__ */ jsx36(PaginationComponent, { status, state }) }),
3474
+ /* @__PURE__ */ jsx37("div", { ref: endOfContentRef, className: "d-flex m-x-auto m-y-2", children: /* @__PURE__ */ jsx37(PaginationComponent, { state }) }),
3388
3475
  state.afterSections
3389
3476
  ] });
3390
3477
  };
@@ -3396,7 +3483,7 @@ var WindowVirtualizedItems = (props) => {
3396
3483
  estimateSize: () => 120,
3397
3484
  overscan: 10
3398
3485
  });
3399
- return /* @__PURE__ */ jsx36(VirtualizedItems, __spreadProps(__spreadValues({}, props), { virtualItemsRef, virtualizer }));
3486
+ return /* @__PURE__ */ jsx37(VirtualizedItems, __spreadProps(__spreadValues({}, props), { virtualItemsRef, virtualizer }));
3400
3487
  };
3401
3488
  var ElementVirtualizedItems = (props) => {
3402
3489
  const { scrollElement, stateCount } = props;
@@ -3407,7 +3494,7 @@ var ElementVirtualizedItems = (props) => {
3407
3494
  estimateSize: () => 120,
3408
3495
  overscan: 10
3409
3496
  });
3410
- return /* @__PURE__ */ jsx36(VirtualizedItems, __spreadProps(__spreadValues({}, props), { virtualItemsRef, virtualizer }));
3497
+ return /* @__PURE__ */ jsx37(VirtualizedItems, __spreadProps(__spreadValues({}, props), { virtualItemsRef, virtualizer }));
3411
3498
  };
3412
3499
  var VirtualizedItems = ({
3413
3500
  Item,
@@ -3415,7 +3502,7 @@ var VirtualizedItems = ({
3415
3502
  items,
3416
3503
  virtualItemsRef,
3417
3504
  virtualizer
3418
- }) => /* @__PURE__ */ jsx36(
3505
+ }) => /* @__PURE__ */ jsx37(
3419
3506
  "div",
3420
3507
  {
3421
3508
  ref: virtualItemsRef,
@@ -3429,7 +3516,7 @@ var VirtualizedItems = ({
3429
3516
  if (!i) {
3430
3517
  return null;
3431
3518
  }
3432
- return /* @__PURE__ */ jsx36(
3519
+ return /* @__PURE__ */ jsxs8(
3433
3520
  "div",
3434
3521
  {
3435
3522
  ref: virtualizer.measureElement,
@@ -3441,17 +3528,19 @@ var VirtualizedItems = ({
3441
3528
  width: "100%",
3442
3529
  transform: `translateY(${item.start - virtualizer.options.scrollMargin}px)`
3443
3530
  },
3444
- children: i.type === "header" ? /* @__PURE__ */ jsx36(SectionHeader, __spreadValues({}, i)) : /* @__PURE__ */ jsx36(Item, __spreadValues({}, i.item))
3531
+ children: [
3532
+ i.type === "header" && /* @__PURE__ */ jsx37(SectionHeader, __spreadValues({}, i)),
3533
+ i.type === "item" && /* @__PURE__ */ jsx37(Item, __spreadValues({}, i.item)),
3534
+ i.type === "layout" && i.children
3535
+ ]
3445
3536
  },
3446
3537
  item.key
3447
3538
  );
3448
3539
  })
3449
3540
  }
3450
3541
  );
3451
- var PaginationComponent = ({
3452
- status,
3453
- state
3454
- }) => {
3542
+ var PaginationComponent = ({ state }) => {
3543
+ const { status } = state;
3455
3544
  const isPaginationError = status.type === "error" && status.reason === "pagination";
3456
3545
  const isPaginationLoading = status.type === "loading" && status.reason === "pagination";
3457
3546
  const loadMore = status.type === "idle" ? status.loadMore : void 0;
@@ -3459,34 +3548,41 @@ var PaginationComponent = ({
3459
3548
  return null;
3460
3549
  }
3461
3550
  if (isPaginationError) {
3462
- return /* @__PURE__ */ jsx36(LoadMoreButton, { onClick: status.retry });
3551
+ return /* @__PURE__ */ jsx37(LoadMoreButton, { onClick: status.retry });
3463
3552
  }
3464
3553
  if (state.afterSectionsProps.length > 0 && loadMore) {
3465
- return /* @__PURE__ */ jsx36(LoadMoreButton, { onClick: loadMore });
3554
+ return /* @__PURE__ */ jsx37(LoadMoreButton, { onClick: loadMore });
3466
3555
  }
3467
- return /* @__PURE__ */ jsx36(ProcessIndicator, { size: "xs", "data-testid": "collection-pagination-loader" });
3556
+ return /* @__PURE__ */ jsx37(ProcessIndicator, { size: "xs", "data-testid": "collection-pagination-loader" });
3468
3557
  };
3469
3558
  var LoadMoreButton = ({ onClick }) => {
3470
- const { formatMessage } = useIntl4();
3471
- return /* @__PURE__ */ jsx36("div", { className: "d-flex m-x-auto", children: /* @__PURE__ */ jsx36(Button4, { v2: true, size: "sm", priority: "secondary-neutral", onClick, children: formatMessage(collection_messages_default.loadMoreButton) }) });
3559
+ const { formatMessage } = useIntl5();
3560
+ return /* @__PURE__ */ jsx37("div", { className: "d-flex m-x-auto", children: /* @__PURE__ */ jsx37(Button4, { v2: true, size: "sm", priority: "secondary-neutral", onClick, children: formatMessage(collection_messages_default.loadMoreButton) }) });
3472
3561
  };
3473
3562
 
3474
- // ../renderers/src/CollectionRenderer/components/FilterComponent.tsx
3563
+ // ../renderers/src/CollectionRenderer/v1/FilterComponent.tsx
3475
3564
  import { Chips } from "@transferwise/components";
3476
- import { jsx as jsx37 } from "react/jsx-runtime";
3477
- var FiltersComponent = ({ state }) => {
3478
- const { filters } = state;
3479
- return /* @__PURE__ */ jsx37("div", { className: "df-filters-container", children: filters.map((filter) => {
3480
- var _a;
3481
- return /* @__PURE__ */ jsx37(FilterComponent, __spreadValues({}, filter), JSON.stringify((_a = filter.options) == null ? void 0 : _a.map((o) => o.value)));
3565
+ import { jsx as jsx38 } from "react/jsx-runtime";
3566
+ var FiltersComponent = (props) => {
3567
+ const _a = props, { Filter } = _a, collectionProps = __objRest(_a, ["Filter"]);
3568
+ const { filters } = collectionProps.state;
3569
+ return /* @__PURE__ */ jsx38("div", { className: "df-filters-container", children: filters.map((filter) => {
3570
+ var _a2;
3571
+ return /* @__PURE__ */ jsx38(
3572
+ Filter,
3573
+ __spreadProps(__spreadValues({}, collectionProps), {
3574
+ filter
3575
+ }),
3576
+ JSON.stringify((_a2 = filter.options) == null ? void 0 : _a2.map((o) => o.value))
3577
+ );
3482
3578
  }) });
3483
3579
  };
3484
- var FilterComponent = (filter) => {
3580
+ var FilterComponent = ({ filter }) => {
3485
3581
  const { multiSelect, options } = filter;
3486
3582
  if (!options) {
3487
3583
  return null;
3488
3584
  }
3489
- return /* @__PURE__ */ jsx37(
3585
+ return /* @__PURE__ */ jsx38(
3490
3586
  Chips,
3491
3587
  {
3492
3588
  className: "m-b-1",
@@ -3516,7 +3612,7 @@ import { ListItem as ListItem6 } from "@transferwise/components";
3516
3612
 
3517
3613
  // ../renderers/src/utils/listItem/getAdditionalInfo.tsx
3518
3614
  import { ListItem as ListItem4 } from "@transferwise/components";
3519
- import { jsx as jsx38 } from "react/jsx-runtime";
3615
+ import { jsx as jsx39 } from "react/jsx-runtime";
3520
3616
  var getAdditionalInfo = (additionalInfo) => {
3521
3617
  var _a, _b;
3522
3618
  if (!additionalInfo) {
@@ -3524,7 +3620,7 @@ var getAdditionalInfo = (additionalInfo) => {
3524
3620
  }
3525
3621
  const { href, text, onClick } = additionalInfo;
3526
3622
  if (href || onClick) {
3527
- return /* @__PURE__ */ jsx38(
3623
+ return /* @__PURE__ */ jsx39(
3528
3624
  ListItem4.AdditionalInfo,
3529
3625
  {
3530
3626
  action: __spreadValues({
@@ -3533,19 +3629,19 @@ var getAdditionalInfo = (additionalInfo) => {
3533
3629
  }
3534
3630
  );
3535
3631
  }
3536
- return /* @__PURE__ */ jsx38(ListItem4.AdditionalInfo, { children: additionalInfo == null ? void 0 : additionalInfo.text });
3632
+ return /* @__PURE__ */ jsx39(ListItem4.AdditionalInfo, { children: additionalInfo == null ? void 0 : additionalInfo.text });
3537
3633
  };
3538
3634
 
3539
3635
  // ../renderers/src/utils/listItem/getCTAControl.tsx
3540
3636
  import { ListItem as ListItem5 } from "@transferwise/components";
3541
- import { jsx as jsx39 } from "react/jsx-runtime";
3637
+ import { jsx as jsx40 } from "react/jsx-runtime";
3542
3638
  var getCTAControl = (callToAction, { ctaSecondary, fullyInteractive }) => {
3543
3639
  if (!callToAction) {
3544
3640
  return void 0;
3545
3641
  }
3546
3642
  const { accessibilityDescription, title, context } = callToAction;
3547
3643
  const { priority, sentiment } = getPriorityAndSentiment(ctaSecondary, context);
3548
- return /* @__PURE__ */ jsx39(
3644
+ return /* @__PURE__ */ jsx40(
3549
3645
  ListItem5.Button,
3550
3646
  __spreadProps(__spreadValues({}, callToAction.getAnchorProps()), {
3551
3647
  partiallyInteractive: !fullyInteractive,
@@ -3570,7 +3666,7 @@ var shouldUseAvatar = (control, tags) => {
3570
3666
  };
3571
3667
 
3572
3668
  // ../renderers/src/CollectionRenderer/components/ItemComponent.tsx
3573
- import { jsx as jsx40 } from "react/jsx-runtime";
3669
+ import { jsx as jsx41 } from "react/jsx-runtime";
3574
3670
  var ItemComponent = (props) => {
3575
3671
  var _a, _b;
3576
3672
  const {
@@ -3592,7 +3688,7 @@ var ItemComponent = (props) => {
3592
3688
  ctaSecondary: (_a = tags == null ? void 0 : tags.includes("cta-secondary")) != null ? _a : false,
3593
3689
  fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
3594
3690
  };
3595
- return /* @__PURE__ */ jsx40(
3691
+ return /* @__PURE__ */ jsx41(
3596
3692
  ListItem6,
3597
3693
  {
3598
3694
  title,
@@ -3609,15 +3705,15 @@ var ItemComponent = (props) => {
3609
3705
  };
3610
3706
  var getNavigationControl = (onClick, href) => {
3611
3707
  if (href) {
3612
- return /* @__PURE__ */ jsx40(ListItem6.Navigation, { href });
3708
+ return /* @__PURE__ */ jsx41(ListItem6.Navigation, { href });
3613
3709
  }
3614
3710
  if (onClick) {
3615
- return /* @__PURE__ */ jsx40(ListItem6.Navigation, { onClick });
3711
+ return /* @__PURE__ */ jsx41(ListItem6.Navigation, { onClick });
3616
3712
  }
3617
3713
  return null;
3618
3714
  };
3619
3715
 
3620
- // ../renderers/src/CollectionRenderer/components/SearchComponent.tsx
3716
+ // ../renderers/src/CollectionRenderer/v1/SearchComponent.tsx
3621
3717
  import {
3622
3718
  InputGroup,
3623
3719
  Input,
@@ -3625,46 +3721,41 @@ import {
3625
3721
  IconButton
3626
3722
  } from "@transferwise/components";
3627
3723
  import { CrossCircleFill, Search } from "@transferwise/icons";
3628
- import { useIntl as useIntl5 } from "react-intl";
3629
- import { jsx as jsx41 } from "react/jsx-runtime";
3630
- var SearchComponent = ({
3631
- state,
3632
- status,
3633
- features,
3634
- control,
3635
- tags
3636
- }) => {
3724
+ import { useIntl as useIntl6 } from "react-intl";
3725
+ import { jsx as jsx42 } from "react/jsx-runtime";
3726
+ var SearchComponent = ({ state, features, control, tags }) => {
3727
+ var _a;
3637
3728
  const { search } = state;
3638
- const { formatMessage } = useIntl5();
3729
+ const { formatMessage } = useIntl6();
3639
3730
  if (!search) {
3640
3731
  return;
3641
3732
  }
3642
3733
  const getAddon = () => {
3643
- var _a;
3644
- if (status.type === "loading") {
3645
- return { content: /* @__PURE__ */ jsx41(ProcessIndicator2, { size: "xs", "data-testid": "collection-search-loader" }) };
3734
+ var _a2;
3735
+ if (state.status.type === "loading") {
3736
+ return { content: /* @__PURE__ */ jsx42(ProcessIndicator2, { size: "xs", "data-testid": "collection-search-loader" }) };
3646
3737
  }
3647
- if ((_a = state.search) == null ? void 0 : _a.query) {
3738
+ if ((_a2 = state.search) == null ? void 0 : _a2.query) {
3648
3739
  return {
3649
3740
  interactive: true,
3650
- content: /* @__PURE__ */ jsx41(
3741
+ content: /* @__PURE__ */ jsx42(
3651
3742
  IconButton,
3652
3743
  {
3653
3744
  priority: "minimal",
3654
3745
  size: 24,
3655
3746
  "aria-label": formatMessage(collection_messages_default.clearTextLabel),
3656
3747
  onClick: () => {
3657
- var _a2;
3658
- return (_a2 = state.search) == null ? void 0 : _a2.onChange("");
3748
+ var _a3;
3749
+ return (_a3 = state.search) == null ? void 0 : _a3.onChange("");
3659
3750
  },
3660
- children: /* @__PURE__ */ jsx41(CrossCircleFill, {})
3751
+ children: /* @__PURE__ */ jsx42(CrossCircleFill, {})
3661
3752
  }
3662
3753
  )
3663
3754
  };
3664
3755
  }
3665
3756
  return void 0;
3666
3757
  };
3667
- return /* @__PURE__ */ jsx41(
3758
+ return /* @__PURE__ */ jsx42(
3668
3759
  FieldInput_default,
3669
3760
  {
3670
3761
  id: "search",
@@ -3675,13 +3766,13 @@ var SearchComponent = ({
3675
3766
  features,
3676
3767
  control,
3677
3768
  tags,
3678
- children: /* @__PURE__ */ jsx41(InputGroup, { addonStart: { content: /* @__PURE__ */ jsx41(Search, { size: 24 }) }, addonEnd: getAddon(), children: /* @__PURE__ */ jsx41(
3769
+ children: /* @__PURE__ */ jsx42(InputGroup, { addonStart: { content: /* @__PURE__ */ jsx42(Search, { size: 24 }) }, addonEnd: getAddon(), children: /* @__PURE__ */ jsx42(
3679
3770
  Input,
3680
3771
  {
3681
3772
  id: "search",
3682
3773
  name: "search",
3683
3774
  shape: "pill",
3684
- placeholder: search.hint,
3775
+ placeholder: (_a = search.hints) == null ? void 0 : _a[0],
3685
3776
  type: "text",
3686
3777
  value: search.query,
3687
3778
  onChange: ({ currentTarget: { value } }) => {
@@ -3694,14 +3785,74 @@ var SearchComponent = ({
3694
3785
  };
3695
3786
 
3696
3787
  // ../renderers/src/CollectionRenderer/components/SectionHeaderComponent.tsx
3697
- import { jsx as jsx42 } from "react/jsx-runtime";
3788
+ import { jsx as jsx43 } from "react/jsx-runtime";
3698
3789
  var SectionHeaderComponent = ({
3699
3790
  title,
3700
3791
  callToAction
3701
- }) => /* @__PURE__ */ jsx42(Header, { title, callToAction });
3792
+ }) => /* @__PURE__ */ jsx43(Header, { title, callToAction });
3793
+
3794
+ // ../renderers/src/CollectionRenderer/components/CollapsibleContentComponent.tsx
3795
+ import { useState as useState9 } from "react";
3796
+ import { Button as Button5 } from "@transferwise/components";
3797
+ import { useIntl as useIntl7 } from "react-intl";
3798
+ import { Fragment as Fragment3, jsx as jsx44, jsxs as jsxs9 } from "react/jsx-runtime";
3799
+ var CollapsibleContentComponent = (props) => {
3800
+ var _a;
3801
+ const { state, SectionHeader, Item } = props;
3802
+ const { search, status } = state;
3803
+ const [isShowingInitialState, setIsShowingInitialState] = useState9(true);
3804
+ const isSearchRunning = status.type === "loading" && status.reason === "search";
3805
+ const shouldShowInitialState = !(search == null ? void 0 : search.query) || isSearchRunning && isShowingInitialState;
3806
+ if (shouldShowInitialState !== isShowingInitialState) {
3807
+ setIsShowingInitialState(shouldShowInitialState);
3808
+ }
3809
+ const sections = shouldShowInitialState ? (_a = search == null ? void 0 : search.initialSections) != null ? _a : state.sections : state.sections;
3810
+ return (
3811
+ // keep focus in the search input when clicking the results, so clicking doesn't blur it and
3812
+ // pop the collection before the click is handled
3813
+ /* @__PURE__ */ jsx44("div", { role: "presentation", onMouseDown: (event) => event.preventDefault(), children: sections.map((section) => {
3814
+ return /* @__PURE__ */ jsx44(Section, { section, SectionHeader, Item }, section.id);
3815
+ }) })
3816
+ );
3817
+ };
3818
+ var Section = ({ section, SectionHeader, Item }) => {
3819
+ const { formatMessage } = useIntl7();
3820
+ const [expanded, setExpanded] = useState9(false);
3821
+ const itemIds = section.type === "items" ? section.items.map(({ id }) => id).join("") : section.id;
3822
+ const [prevItemIds, setPrevItemIds] = useState9(itemIds);
3823
+ if (itemIds !== prevItemIds) {
3824
+ setExpanded(false);
3825
+ setPrevItemIds(itemIds);
3826
+ }
3827
+ const showLoadMore = section.type === "items" && section.items.some((item) => {
3828
+ var _a;
3829
+ return (_a = item.tags) == null ? void 0 : _a.includes("hidden");
3830
+ });
3831
+ return /* @__PURE__ */ jsxs9(Fragment3, { children: [
3832
+ /* @__PURE__ */ jsx44(SectionHeader, __spreadValues({}, section)),
3833
+ section.type === "items" && section.items.filter((item) => {
3834
+ var _a;
3835
+ return expanded || !((_a = item.tags) == null ? void 0 : _a.includes("hidden"));
3836
+ }).map((item) => /* @__PURE__ */ jsx44(Item, __spreadValues({}, item), item.id)),
3837
+ section.type === "layout" && section.children,
3838
+ showLoadMore ? /* @__PURE__ */ jsx44(
3839
+ Button5,
3840
+ {
3841
+ priority: "tertiary",
3842
+ onClick: () => {
3843
+ setExpanded(!expanded);
3844
+ },
3845
+ children: expanded ? /* @__PURE__ */ jsxs9("span", { children: [
3846
+ formatMessage(collection_messages_default.showLessResultsButton),
3847
+ " "
3848
+ ] }) : /* @__PURE__ */ jsx44("span", { children: formatMessage(collection_messages_default.showMoreResultsButton, { count: section.items.length }) })
3849
+ }
3850
+ ) : void 0
3851
+ ] });
3852
+ };
3702
3853
 
3703
3854
  // ../renderers/src/CollectionRenderer/createCollectionRenderer.tsx
3704
- import { jsx as jsx43 } from "react/jsx-runtime";
3855
+ import { jsx as jsx45 } from "react/jsx-runtime";
3705
3856
  var createCollectionRenderer = (canRender, components) => {
3706
3857
  const componentsWithDefaults = __spreadValues({
3707
3858
  Search: SearchComponent,
@@ -3709,48 +3860,208 @@ var createCollectionRenderer = (canRender, components) => {
3709
3860
  Filter: FilterComponent,
3710
3861
  Item: ItemComponent,
3711
3862
  SectionHeader: SectionHeaderComponent,
3712
- Results: ContentComponent
3863
+ Results: VirtualisedContentComponent,
3864
+ FocusedResults: CollapsibleContentComponent
3713
3865
  }, components);
3714
3866
  return {
3715
3867
  canRenderType: "collection",
3716
3868
  canRender,
3717
3869
  render: (props) => {
3718
- return /* @__PURE__ */ jsx43(CollectionRendererComponent, __spreadValues(__spreadValues({}, props), componentsWithDefaults));
3870
+ return /* @__PURE__ */ jsx45(CollectionRendererComponent, __spreadValues(__spreadValues({}, props), componentsWithDefaults));
3719
3871
  }
3720
3872
  };
3721
3873
  };
3722
3874
 
3723
- // ../renderers/src/CollectionRenderer/CollectionRenderer.tsx
3724
- import { useIntl as useIntl6 } from "react-intl";
3725
- import { Fragment as Fragment3, jsx as jsx44, jsxs as jsxs8 } from "react/jsx-runtime";
3726
- var CollectionRendererComponent = (props) => {
3727
- const { status, Search: Search4, Filters, Results } = props;
3728
- return /* @__PURE__ */ jsxs8(Fragment3, { children: [
3729
- /* @__PURE__ */ jsx44(Search4, __spreadValues({}, props)),
3730
- /* @__PURE__ */ jsx44(Filters, __spreadValues({}, props)),
3731
- status.type === "error" && status.reason === "search" ? /* @__PURE__ */ jsx44(SearchError, { retry: status.retry }) : /* @__PURE__ */ jsx44(Results, __spreadValues({}, props))
3732
- ] });
3875
+ // ../renderers/src/CollectionRenderer/v1/CollectionRendererV1.tsx
3876
+ var CollectionRendererV1 = createCollectionRenderer(
3877
+ () => true
3878
+ );
3879
+ var CollectionRendererV1_default = CollectionRendererV1;
3880
+
3881
+ // ../renderers/src/CollectionRenderer/v2/FilterComponent.tsx
3882
+ var import_classnames12 = __toESM(require_classnames());
3883
+ import { Chips as Chips2 } from "@transferwise/components";
3884
+ import { AnimatePresence as AnimatePresence2, motion as motion2 } from "motion/react";
3885
+ import { jsx as jsx46 } from "react/jsx-runtime";
3886
+ var FiltersComponent2 = (props) => {
3887
+ var _b;
3888
+ const _a = props, { Filter } = _a, collectionProps = __objRest(_a, ["Filter"]);
3889
+ const { state, depth } = collectionProps;
3890
+ const { filters, status } = state;
3891
+ const isHidden = depth > 0 && !((_b = state.search) == null ? void 0 : _b.query);
3892
+ return /* @__PURE__ */ jsx46(AnimatePresence2, { initial: false, children: !isHidden && /* @__PURE__ */ jsx46(
3893
+ motion2.div,
3894
+ {
3895
+ variants: filtersVariants,
3896
+ initial: "collapsed",
3897
+ animate: "expanded",
3898
+ exit: "collapsed",
3899
+ transition: { duration: 0.15, ease: "easeOut" },
3900
+ children: /* @__PURE__ */ jsx46(
3901
+ "div",
3902
+ {
3903
+ className: (0, import_classnames12.default)("df-filters-container", {
3904
+ "df-filter-loader": status.type === "loading" && status.reason === "search"
3905
+ }),
3906
+ children: filters.map((filter) => {
3907
+ var _a2;
3908
+ return /* @__PURE__ */ jsx46(
3909
+ Filter,
3910
+ __spreadProps(__spreadValues({}, collectionProps), {
3911
+ filter
3912
+ }),
3913
+ JSON.stringify((_a2 = filter.options) == null ? void 0 : _a2.map((o) => o.value))
3914
+ );
3915
+ })
3916
+ }
3917
+ )
3918
+ },
3919
+ "filters"
3920
+ ) });
3733
3921
  };
3734
- var SearchError = ({ retry }) => {
3735
- const { formatMessage } = useIntl6();
3736
- return /* @__PURE__ */ jsxs8(InlinePrompt, { width: "full", sentiment: "negative", children: [
3737
- formatMessage(generic_error_messages_default.genericError),
3738
- "\xA0",
3739
- /* @__PURE__ */ jsx44(DSLink, { onClick: retry, children: formatMessage(generic_error_messages_default.retry) })
3740
- ] });
3922
+ var filtersVariants = {
3923
+ collapsed: { height: 0, opacity: 0, overflow: "hidden" },
3924
+ expanded: { height: "auto", opacity: 1, transitionEnd: { overflow: "visible" } }
3925
+ };
3926
+ var FilterComponent2 = ({
3927
+ filter,
3928
+ state
3929
+ }) => {
3930
+ const { multiSelect, options } = filter;
3931
+ const { status } = state;
3932
+ const disabled = status.type === "loading" && status.reason === "search";
3933
+ if (!options) {
3934
+ return null;
3935
+ }
3936
+ return /* @__PURE__ */ jsx46(
3937
+ Chips2,
3938
+ {
3939
+ className: "m-b-1",
3940
+ multiple: multiSelect,
3941
+ selected: options.some((option) => option.selected) ? options.filter((option) => option.selected).map((option) => option.value) : multiSelect ? [] : "",
3942
+ chips: [
3943
+ ...options.map((option) => ({
3944
+ value: option.value,
3945
+ label: option.title
3946
+ }))
3947
+ ],
3948
+ onChange: (value) => {
3949
+ var _a;
3950
+ if (disabled) {
3951
+ return;
3952
+ }
3953
+ if (value.selectedValue === "") {
3954
+ options == null ? void 0 : options.filter((option) => option.selected).map((option) => option == null ? void 0 : option.onSelect());
3955
+ return;
3956
+ }
3957
+ (_a = options == null ? void 0 : options.find((option) => value.selectedValue === option.value)) == null ? void 0 : _a.onSelect();
3958
+ }
3959
+ },
3960
+ JSON.stringify(options)
3961
+ );
3741
3962
  };
3742
- var CollectionRenderer = createCollectionRenderer(() => true);
3743
- var CollectionRenderer_default = CollectionRenderer;
3963
+
3964
+ // ../renderers/src/CollectionRenderer/v2/SearchComponent.tsx
3965
+ import {
3966
+ InputGroup as InputGroup2,
3967
+ Input as Input2,
3968
+ ProcessIndicator as ProcessIndicator3,
3969
+ IconButton as IconButton2
3970
+ } from "@transferwise/components";
3971
+ import { CrossCircleFill as CrossCircleFill2, Search as Search2 } from "@transferwise/icons";
3972
+ import { useRef as useRef5 } from "react";
3973
+ import { useIntl as useIntl8 } from "react-intl";
3974
+ import { jsx as jsx47 } from "react/jsx-runtime";
3975
+ var SearchComponent2 = ({
3976
+ state,
3977
+ depth,
3978
+ fork,
3979
+ features,
3980
+ control,
3981
+ tags
3982
+ }) => {
3983
+ var _a;
3984
+ const { search } = state;
3985
+ const { formatMessage } = useIntl8();
3986
+ const inputRef = useRef5(null);
3987
+ if (!search) {
3988
+ return;
3989
+ }
3990
+ const isForked = depth > 0;
3991
+ const getAddon = () => {
3992
+ if (state.status.type === "loading") {
3993
+ return { content: /* @__PURE__ */ jsx47(ProcessIndicator3, { size: "xs", "data-testid": "collection-search-loader" }) };
3994
+ }
3995
+ if (search.query) {
3996
+ return {
3997
+ interactive: true,
3998
+ content: /* @__PURE__ */ jsx47(
3999
+ IconButton2,
4000
+ {
4001
+ priority: "minimal",
4002
+ size: 24,
4003
+ "aria-label": formatMessage(collection_messages_default.clearTextLabel),
4004
+ onClick: () => {
4005
+ var _a2;
4006
+ search.onChange("");
4007
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
4008
+ },
4009
+ children: /* @__PURE__ */ jsx47(CrossCircleFill2, {})
4010
+ }
4011
+ )
4012
+ };
4013
+ }
4014
+ return void 0;
4015
+ };
4016
+ return /* @__PURE__ */ jsx47(
4017
+ FieldInput_default,
4018
+ {
4019
+ id: "search",
4020
+ description: "",
4021
+ validation: void 0,
4022
+ help: "",
4023
+ label: search.title,
4024
+ features,
4025
+ control,
4026
+ tags,
4027
+ children: /* @__PURE__ */ jsx47(InputGroup2, { addonStart: { content: /* @__PURE__ */ jsx47(Search2, { size: 24 }) }, addonEnd: getAddon(), children: /* @__PURE__ */ jsx47(
4028
+ Input2,
4029
+ {
4030
+ ref: inputRef,
4031
+ id: "search",
4032
+ name: "search",
4033
+ shape: "pill",
4034
+ placeholder: (_a = search.hints) == null ? void 0 : _a[0],
4035
+ type: "text",
4036
+ value: search.query,
4037
+ onFocus: () => {
4038
+ if (!isForked) {
4039
+ fork();
4040
+ }
4041
+ },
4042
+ onChange: ({ currentTarget: { value } }) => search.onChange(value)
4043
+ }
4044
+ ) })
4045
+ }
4046
+ );
4047
+ };
4048
+
4049
+ // ../renderers/src/CollectionRenderer/v2/CollectionRendererV2.tsx
4050
+ var CollectionRendererV2 = createCollectionRenderer(
4051
+ ({ control }) => control === "contacts-collection-v2",
4052
+ { Search: SearchComponent2, Filters: FiltersComponent2, Filter: FilterComponent2 }
4053
+ );
4054
+ var CollectionRendererV2_default = CollectionRendererV2;
3744
4055
 
3745
4056
  // ../renderers/src/ColumnsRenderer.tsx
3746
- var import_classnames12 = __toESM(require_classnames());
4057
+ var import_classnames13 = __toESM(require_classnames());
3747
4058
 
3748
4059
  // ../renderers/src/utils/useIsCollapsed.ts
3749
- import { useEffect as useEffect8, useState as useState9 } from "react";
4060
+ import { useEffect as useEffect8, useState as useState10 } from "react";
3750
4061
  var COLLAPSE_QUERY = "(max-width: 767.98px)";
3751
4062
  var supportsMatchMedia = () => typeof window !== "undefined" && !!window.matchMedia;
3752
4063
  var useIsCollapsed = () => {
3753
- const [collapsed, setCollapsed] = useState9(
4064
+ const [collapsed, setCollapsed] = useState10(
3754
4065
  () => supportsMatchMedia() && window.matchMedia(COLLAPSE_QUERY).matches
3755
4066
  );
3756
4067
  useEffect8(() => {
@@ -3766,7 +4077,7 @@ var useIsCollapsed = () => {
3766
4077
  };
3767
4078
 
3768
4079
  // ../renderers/src/ColumnsRenderer.tsx
3769
- import { jsx as jsx45, jsxs as jsxs9 } from "react/jsx-runtime";
4080
+ import { jsx as jsx48, jsxs as jsxs10 } from "react/jsx-runtime";
3770
4081
  var RIGHT_FIRST_STACKING = "right-first-stacking";
3771
4082
  var ColumnsRenderer = {
3772
4083
  canRenderType: "columns",
@@ -3777,12 +4088,12 @@ function ColumnsRendererComponent(props) {
3777
4088
  const { bias, margin, startChildren, endChildren, tags } = props;
3778
4089
  const isCollapsed = useIsCollapsed();
3779
4090
  const reverse = isCollapsed && ((_a = tags == null ? void 0 : tags.includes(RIGHT_FIRST_STACKING)) != null ? _a : false);
3780
- const startColumn = /* @__PURE__ */ jsx45("div", { className: "df-columns-renderer-column", children: startChildren });
3781
- const endColumn = /* @__PURE__ */ jsx45("div", { className: "df-columns-renderer-column", children: endChildren });
3782
- return /* @__PURE__ */ jsxs9(
4091
+ const startColumn = /* @__PURE__ */ jsx48("div", { className: "df-columns-renderer-column", children: startChildren });
4092
+ const endColumn = /* @__PURE__ */ jsx48("div", { className: "df-columns-renderer-column", children: endChildren });
4093
+ return /* @__PURE__ */ jsxs10(
3783
4094
  "div",
3784
4095
  {
3785
- className: (0, import_classnames12.default)(
4096
+ className: (0, import_classnames13.default)(
3786
4097
  "df-columns-renderer-container",
3787
4098
  getMargin(margin),
3788
4099
  {
@@ -3800,23 +4111,6 @@ function ColumnsRendererComponent(props) {
3800
4111
  }
3801
4112
  var ColumnsRenderer_default = ColumnsRenderer;
3802
4113
 
3803
- // ../renderers/src/components/VariableDateInput.tsx
3804
- import { DateInput, DateLookup } from "@transferwise/components";
3805
-
3806
- // ../renderers/src/hooks/useAvailabilityRules.ts
3807
- import { useState as useState10 } from "react";
3808
- import { useIntl as useIntl7 } from "react-intl";
3809
-
3810
- // ../renderers/src/messages/date-input.messages.ts
3811
- import { defineMessages as defineMessages6 } from "react-intl";
3812
- var date_input_messages_default = defineMessages6({
3813
- unavailableDates: {
3814
- id: "df.wise.DateInput.unavailableDates",
3815
- defaultMessage: "Some dates are unavailable.",
3816
- description: "General explanation shown below a calendar containing unavailable dates"
3817
- }
3818
- });
3819
-
3820
4114
  // ../renderers/src/validators/type-validators.ts
3821
4115
  var isNumber = (value) => typeof value === "number" && !Number.isNaN(value);
3822
4116
 
@@ -3845,14 +4139,31 @@ var dateToDateString = (date) => {
3845
4139
  return [year, formattedMonth, formattedDay].join("-");
3846
4140
  };
3847
4141
 
4142
+ // ../renderers/src/DateInputRenderer/DateLookupControl.tsx
4143
+ import { DateLookup } from "@transferwise/components";
4144
+
4145
+ // ../renderers/src/hooks/useAvailabilityRules.ts
4146
+ import { useState as useState11 } from "react";
4147
+ import { useIntl as useIntl9 } from "react-intl";
4148
+
4149
+ // ../renderers/src/messages/date-input.messages.ts
4150
+ import { defineMessages as defineMessages6 } from "react-intl";
4151
+ var date_input_messages_default = defineMessages6({
4152
+ unavailableDates: {
4153
+ id: "df.wise.DateInput.unavailableDates",
4154
+ defaultMessage: "Some dates are unavailable.",
4155
+ description: "General explanation shown below a calendar containing unavailable dates"
4156
+ }
4157
+ });
4158
+
3848
4159
  // ../renderers/src/hooks/useAvailabilityRules.ts
3849
4160
  var useAvailabilityRules = (availability) => {
3850
4161
  var _a, _b;
3851
- const { formatMessage } = useIntl7();
3852
- const [focusedDate, setFocusedDate] = useState10(null);
4162
+ const { formatMessage } = useIntl9();
4163
+ const [focusedDate, setFocusedDate] = useState11(null);
3853
4164
  const unavailableMessage = (_b = (_a = focusedDate ? getUnavailableDateReason(focusedDate, availability) : null) != null ? _a : availability == null ? void 0 : availability.message) != null ? _b : formatMessage(date_input_messages_default.unavailableDates);
3854
4165
  const onDateSelect = ({ date }) => {
3855
- setFocusedDate(date);
4166
+ setFocusedDate((current) => (current == null ? void 0 : current.getTime()) === date.getTime() ? current : date);
3856
4167
  };
3857
4168
  return {
3858
4169
  disabledRules: mapAvailabilityToDisabledRules(availability, unavailableMessage),
@@ -3900,64 +4211,124 @@ var matchesDateRule = (date, weekday, rule) => {
3900
4211
  };
3901
4212
  var isDate = (date) => date !== null;
3902
4213
 
3903
- // ../renderers/src/components/VariableDateInput.tsx
3904
- import { jsx as jsx46 } from "react/jsx-runtime";
3905
- function VariableDateInput({
3906
- control,
3907
- inputProps
3908
- }) {
3909
- const {
3910
- autoComplete,
3911
- availability,
3912
- minimumDate,
3913
- maximumDate,
3914
- placeholder,
3915
- disabled,
3916
- onBlur,
3917
- onChange,
3918
- onFocus
3919
- } = inputProps;
4214
+ // ../renderers/src/DateInputRenderer/DateLookupControl.tsx
4215
+ import { jsx as jsx49 } from "react/jsx-runtime";
4216
+ var DateLookupControl = ({
4217
+ value,
4218
+ minimumDate,
4219
+ maximumDate,
4220
+ placeholder,
4221
+ disabled,
4222
+ availability,
4223
+ onChange,
4224
+ onBlur,
4225
+ onFocus
4226
+ }) => {
3920
4227
  const { disabledRules, onDateSelect, resetFocusedDate } = useAvailabilityRules(availability);
3921
- if (control === "date-lookup") {
3922
- return /* @__PURE__ */ jsx46(
3923
- DateLookup,
4228
+ return /* @__PURE__ */ jsx49(
4229
+ DateLookup,
4230
+ {
4231
+ value: dateStringToDateOrNull(value),
4232
+ min: dateStringToDateOrNull(minimumDate),
4233
+ max: dateStringToDateOrNull(maximumDate),
4234
+ placeholder,
4235
+ disabled,
4236
+ disabledRules,
4237
+ onChange: (date) => {
4238
+ onChange(date !== null ? dateToDateString(date) : null);
4239
+ },
4240
+ onDateSelect,
4241
+ onBlur,
4242
+ onFocus: () => {
4243
+ resetFocusedDate();
4244
+ onFocus();
4245
+ }
4246
+ }
4247
+ );
4248
+ };
4249
+
4250
+ // ../renderers/src/DateInputRenderer/CalendarControl.tsx
4251
+ import { Calendar } from "@transferwise/components";
4252
+ import { jsx as jsx50 } from "react/jsx-runtime";
4253
+ var CalendarControl = ({
4254
+ id,
4255
+ title,
4256
+ value,
4257
+ minimumDate,
4258
+ maximumDate,
4259
+ validationState,
4260
+ availability,
4261
+ onChange,
4262
+ onFocus,
4263
+ onBlur
4264
+ }) => {
4265
+ const { disabledRules, onDateSelect, resetFocusedDate } = useAvailabilityRules(availability);
4266
+ const handleDateFocus = (date, { isEnabled }) => {
4267
+ if (date === null) {
4268
+ resetFocusedDate();
4269
+ return;
4270
+ }
4271
+ onDateSelect({ date, isEnabled });
4272
+ };
4273
+ return (
4274
+ // Wrapping in a <fieldset> to address some a11y gaps in the current inline Calendar component
4275
+ /* @__PURE__ */ jsx50(
4276
+ "fieldset",
3924
4277
  {
3925
- value: dateStringToDateOrNull(inputProps.value),
3926
- min: dateStringToDateOrNull(minimumDate),
3927
- max: dateStringToDateOrNull(maximumDate),
3928
- placeholder,
3929
- disabled,
3930
- disabledRules,
3931
- onChange: (date) => {
3932
- onChange(date !== null ? dateToDateString(date) : null);
4278
+ id,
4279
+ "aria-label": title,
4280
+ "aria-invalid": (validationState == null ? void 0 : validationState.status) === "invalid",
4281
+ onFocus: (event) => {
4282
+ if (!event.currentTarget.contains(event.relatedTarget)) {
4283
+ resetFocusedDate();
4284
+ onFocus();
4285
+ }
3933
4286
  },
3934
- onDateSelect,
3935
- onBlur,
3936
- onFocus: () => {
3937
- resetFocusedDate();
3938
- onFocus();
3939
- }
4287
+ onBlur: (event) => {
4288
+ if (!event.currentTarget.contains(event.relatedTarget)) {
4289
+ onBlur();
4290
+ }
4291
+ },
4292
+ children: /* @__PURE__ */ jsx50(
4293
+ Calendar,
4294
+ {
4295
+ value: dateStringToDateOrNull(value),
4296
+ min: dateStringToDateOrNull(minimumDate),
4297
+ max: dateStringToDateOrNull(maximumDate),
4298
+ disabledRules,
4299
+ onChange: (date) => {
4300
+ onChange(date !== null ? dateToDateString(date) : null);
4301
+ },
4302
+ onDateFocus: handleDateFocus
4303
+ }
4304
+ )
3940
4305
  }
3941
- );
3942
- }
3943
- return /* @__PURE__ */ jsx46(
4306
+ )
4307
+ );
4308
+ };
4309
+
4310
+ // ../renderers/src/DateInputRenderer/DateInputControl.tsx
4311
+ import { DateInput } from "@transferwise/components";
4312
+ import { jsx as jsx51 } from "react/jsx-runtime";
4313
+ var DateInputControl = (_a) => {
4314
+ var _b = _a, { autoComplete } = _b, props = __objRest(_b, ["autoComplete"]);
4315
+ return /* @__PURE__ */ jsx51(
3944
4316
  DateInput,
3945
- __spreadProps(__spreadValues({}, inputProps), {
4317
+ __spreadProps(__spreadValues({}, props), {
3946
4318
  dayAutoComplete: getAutocompleteString(autoComplete, "day"),
3947
4319
  yearAutoComplete: getAutocompleteString(autoComplete, "year")
3948
4320
  })
3949
4321
  );
3950
- }
4322
+ };
3951
4323
  var getAutocompleteString = (value, suffix) => {
3952
4324
  if (value === "bday") {
3953
4325
  return `${value}-${suffix}`;
3954
4326
  }
3955
4327
  return void 0;
3956
4328
  };
3957
- var VariableDateInput_default = VariableDateInput;
3958
4329
 
3959
- // ../renderers/src/DateInputRenderer.tsx
3960
- import { jsx as jsx47 } from "react/jsx-runtime";
4330
+ // ../renderers/src/DateInputRenderer/DateInputRenderer.tsx
4331
+ import { jsx as jsx52 } from "react/jsx-runtime";
3961
4332
  var DateInputRenderer = {
3962
4333
  canRenderType: "input-date",
3963
4334
  render: (props) => {
@@ -3981,8 +4352,17 @@ var DateInputRenderer = {
3981
4352
  "value"
3982
4353
  ]);
3983
4354
  const value = initialValue != null ? initialValue : "";
3984
- const inputProps = __spreadProps(__spreadValues({}, rest), { value, id });
3985
- return /* @__PURE__ */ jsx47(
4355
+ const inputProps = __spreadProps(__spreadValues({}, rest), { value, id, title, validationState });
4356
+ const UIComponent = (() => {
4357
+ if (control === "calendar") {
4358
+ return !props.disabled ? CalendarControl : DateLookupControl;
4359
+ }
4360
+ if (control === "date-lookup") {
4361
+ return DateLookupControl;
4362
+ }
4363
+ return DateInputControl;
4364
+ })();
4365
+ return /* @__PURE__ */ jsx52(
3986
4366
  FieldInput_default,
3987
4367
  {
3988
4368
  id,
@@ -3995,7 +4375,7 @@ var DateInputRenderer = {
3995
4375
  features: props.features,
3996
4376
  control,
3997
4377
  tags: props.tags,
3998
- children: /* @__PURE__ */ jsx47(VariableDateInput_default, { control, inputProps })
4378
+ children: /* @__PURE__ */ jsx52(UIComponent, __spreadValues({}, inputProps))
3999
4379
  }
4000
4380
  );
4001
4381
  }
@@ -4007,8 +4387,8 @@ import { ListItem as ListItem7 } from "@transferwise/components";
4007
4387
 
4008
4388
  // ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
4009
4389
  import { Header as Header3, SearchInput } from "@transferwise/components";
4010
- import { useState as useState11 } from "react";
4011
- import { useIntl as useIntl9 } from "react-intl";
4390
+ import { useState as useState12 } from "react";
4391
+ import { useIntl as useIntl11 } from "react-intl";
4012
4392
 
4013
4393
  // ../renderers/src/messages/filter.messages.ts
4014
4394
  import { defineMessages as defineMessages7 } from "react-intl";
@@ -4078,8 +4458,8 @@ function filterAndSortItems(options, query) {
4078
4458
  var normalizeAndRemoveAccents = (text) => text.trim().toLowerCase().normalize("NFKD").replace(new RegExp("\\p{Diacritic}", "gu"), "");
4079
4459
 
4080
4460
  // ../renderers/src/DecisionRenderer/GroupedDecisionList.tsx
4081
- import { Header as Header2, Section } from "@transferwise/components";
4082
- import { useIntl as useIntl8 } from "react-intl";
4461
+ import { Header as Header2, Section as Section2 } from "@transferwise/components";
4462
+ import { useIntl as useIntl10 } from "react-intl";
4083
4463
 
4084
4464
  // ../renderers/src/messages/group.messages.ts
4085
4465
  import { defineMessages as defineMessages8 } from "react-intl";
@@ -4117,18 +4497,18 @@ var getGroupsFromTags = (knownTags, items) => {
4117
4497
  };
4118
4498
 
4119
4499
  // ../renderers/src/DecisionRenderer/GroupedDecisionList.tsx
4120
- import { Fragment as Fragment4, jsx as jsx48, jsxs as jsxs10 } from "react/jsx-runtime";
4500
+ import { Fragment as Fragment4, jsx as jsx53, jsxs as jsxs11 } from "react/jsx-runtime";
4121
4501
  var groupingTags = Object.keys(group_messages_default).filter((key) => key !== "all");
4122
4502
  var isGroupedDecision = (options) => {
4123
4503
  return getGroupsFromTags(groupingTags, options).length > 0;
4124
4504
  };
4125
4505
  var GroupedDecisionList = (_a) => {
4126
4506
  var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
4127
- const { formatMessage } = useIntl8();
4507
+ const { formatMessage } = useIntl10();
4128
4508
  const { options } = rest;
4129
4509
  const itemsByTag = [...getGroupsFromTags(groupingTags, options), { tag: "all", items: options }];
4130
- return /* @__PURE__ */ jsx48(Fragment4, { children: itemsByTag.map(({ tag, items }) => /* @__PURE__ */ jsxs10(Section, { children: [
4131
- /* @__PURE__ */ jsx48(
4510
+ return /* @__PURE__ */ jsx53(Fragment4, { children: itemsByTag.map(({ tag, items }) => /* @__PURE__ */ jsxs11(Section2, { children: [
4511
+ /* @__PURE__ */ jsx53(
4132
4512
  Header2,
4133
4513
  {
4134
4514
  as: "h2",
@@ -4140,27 +4520,27 @@ var GroupedDecisionList = (_a) => {
4140
4520
  };
4141
4521
 
4142
4522
  // ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
4143
- var import_classnames13 = __toESM(require_classnames());
4144
- import { Fragment as Fragment5, jsx as jsx49, jsxs as jsxs11 } from "react/jsx-runtime";
4523
+ var import_classnames14 = __toESM(require_classnames());
4524
+ import { Fragment as Fragment5, jsx as jsx54, jsxs as jsxs12 } from "react/jsx-runtime";
4145
4525
  var DecisionWrapper = (props) => {
4146
4526
  const { margin, control, title, tags } = props;
4147
- return /* @__PURE__ */ jsxs11("div", { className: (0, import_classnames13.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4148
- title && /* @__PURE__ */ jsx49(Header3, { as: "h2", title }),
4149
- control === "filtered" ? /* @__PURE__ */ jsx49(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsx49(UnfilteredDecisionList, __spreadValues({}, props))
4527
+ return /* @__PURE__ */ jsxs12("div", { className: (0, import_classnames14.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4528
+ title && /* @__PURE__ */ jsx54(Header3, { as: "h2", title }),
4529
+ control === "filtered" ? /* @__PURE__ */ jsx54(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsx54(UnfilteredDecisionList, __spreadValues({}, props))
4150
4530
  ] });
4151
4531
  };
4152
4532
  var UnfilteredDecisionList = (_a) => {
4153
4533
  var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
4154
- return isGroupedDecision(rest.options) ? /* @__PURE__ */ jsx49(GroupedDecisionList, __spreadProps(__spreadValues({}, rest), { renderDecisionList: renderDecisionList2 })) : renderDecisionList2(rest);
4534
+ return isGroupedDecision(rest.options) ? /* @__PURE__ */ jsx54(GroupedDecisionList, __spreadProps(__spreadValues({}, rest), { renderDecisionList: renderDecisionList2 })) : renderDecisionList2(rest);
4155
4535
  };
4156
4536
  var FilteredDecisionList = (props) => {
4157
- const { formatMessage } = useIntl9();
4158
- const [query, setQuery] = useState11("");
4537
+ const { formatMessage } = useIntl11();
4538
+ const [query, setQuery] = useState12("");
4159
4539
  const { control, options, renderDecisionList: renderDecisionList2 } = props;
4160
4540
  const filteredOptions = (query == null ? void 0 : query.length) > 0 ? filterAndSortItems(options, query) : options;
4161
4541
  const isGrouped = isGroupedDecision(options);
4162
- return /* @__PURE__ */ jsxs11(Fragment5, { children: [
4163
- /* @__PURE__ */ jsx49(
4542
+ return /* @__PURE__ */ jsxs12(Fragment5, { children: [
4543
+ /* @__PURE__ */ jsx54(
4164
4544
  SearchInput,
4165
4545
  {
4166
4546
  placeholder: formatMessage(filter_messages_default.placeholder),
@@ -4172,25 +4552,25 @@ var FilteredDecisionList = (props) => {
4172
4552
  }
4173
4553
  }
4174
4554
  ),
4175
- isGrouped && query.length === 0 ? /* @__PURE__ */ jsx49(GroupedDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsxs11(Fragment5, { children: [
4176
- query.length > 0 && /* @__PURE__ */ jsx49(Header3, { as: "h2", title: formatMessage(filter_messages_default.results), className: "m-t-4" }),
4555
+ isGrouped && query.length === 0 ? /* @__PURE__ */ jsx54(GroupedDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsxs12(Fragment5, { children: [
4556
+ query.length > 0 && /* @__PURE__ */ jsx54(Header3, { as: "h2", title: formatMessage(filter_messages_default.results), className: "m-t-4" }),
4177
4557
  filteredOptions.length > 0 ? renderDecisionList2({
4178
4558
  control,
4179
4559
  className: query.length === 0 ? "m-t-3" : "",
4180
4560
  options: filteredOptions
4181
- }) : /* @__PURE__ */ jsx49("p", { children: formatMessage(filter_messages_default.noResults) })
4561
+ }) : /* @__PURE__ */ jsx54("p", { children: formatMessage(filter_messages_default.noResults) })
4182
4562
  ] })
4183
4563
  ] });
4184
4564
  };
4185
4565
 
4186
4566
  // ../renderers/src/DecisionRenderer/DecisionRenderer.tsx
4187
- import { Fragment as Fragment6, jsx as jsx50 } from "react/jsx-runtime";
4567
+ import { Fragment as Fragment6, jsx as jsx55 } from "react/jsx-runtime";
4188
4568
  var DecisionRenderer = {
4189
4569
  canRenderType: "decision",
4190
- render: (props) => /* @__PURE__ */ jsx50(DecisionWrapper, __spreadProps(__spreadValues({}, props), { renderDecisionList }))
4570
+ render: (props) => /* @__PURE__ */ jsx55(DecisionWrapper, __spreadProps(__spreadValues({}, props), { renderDecisionList }))
4191
4571
  };
4192
4572
  var renderDecisionList = ({ options, control }) => {
4193
- return /* @__PURE__ */ jsx50(Fragment6, { children: options.map((_a) => {
4573
+ return /* @__PURE__ */ jsx55(Fragment6, { children: options.map((_a) => {
4194
4574
  var _b = _a, { onClick } = _b, rest = __objRest(_b, ["onClick"]);
4195
4575
  const {
4196
4576
  description,
@@ -4203,7 +4583,7 @@ var renderDecisionList = ({ options, control }) => {
4203
4583
  supportingValues,
4204
4584
  tags
4205
4585
  } = rest;
4206
- return /* @__PURE__ */ jsx50(
4586
+ return /* @__PURE__ */ jsx55(
4207
4587
  ListItem7,
4208
4588
  {
4209
4589
  title: itemTitle,
@@ -4215,7 +4595,7 @@ var renderDecisionList = ({ options, control }) => {
4215
4595
  media: getMedia(media, shouldUseAvatar(control, tags)),
4216
4596
  prompt: getInlineAlert(inlineAlert),
4217
4597
  additionalInfo: additionalText ? getAdditionalInfo({ text: additionalText }) : void 0,
4218
- control: /* @__PURE__ */ jsx50(ListItem7.Navigation, __spreadValues({}, getAnchorProps()))
4598
+ control: /* @__PURE__ */ jsx55(ListItem7.Navigation, __spreadValues({}, getAnchorProps()))
4219
4599
  },
4220
4600
  JSON.stringify(rest)
4221
4601
  );
@@ -4224,9 +4604,9 @@ var renderDecisionList = ({ options, control }) => {
4224
4604
  var DecisionRenderer_default = DecisionRenderer;
4225
4605
 
4226
4606
  // ../renderers/src/DividerRenderer.tsx
4227
- var import_classnames14 = __toESM(require_classnames());
4607
+ var import_classnames15 = __toESM(require_classnames());
4228
4608
  import { Divider } from "@transferwise/components";
4229
- import { jsx as jsx51 } from "react/jsx-runtime";
4609
+ import { jsx as jsx56 } from "react/jsx-runtime";
4230
4610
  var mapControlToLevel = (control) => {
4231
4611
  switch (control) {
4232
4612
  case "section":
@@ -4239,10 +4619,10 @@ var mapControlToLevel = (control) => {
4239
4619
  };
4240
4620
  var DividerRenderer = {
4241
4621
  canRenderType: "divider",
4242
- render: ({ margin, control, tags }) => /* @__PURE__ */ jsx51(
4622
+ render: ({ margin, control, tags }) => /* @__PURE__ */ jsx56(
4243
4623
  Divider,
4244
4624
  {
4245
- className: (0, import_classnames14.default)(
4625
+ className: (0, import_classnames15.default)(
4246
4626
  "m-t-0",
4247
4627
  "d-block",
4248
4628
  getMargin(margin),
@@ -4255,7 +4635,7 @@ var DividerRenderer = {
4255
4635
  var DividerRenderer_default = DividerRenderer;
4256
4636
 
4257
4637
  // ../renderers/src/ExternalConfirmationRenderer.tsx
4258
- import { Button as Button5, Markdown as Markdown3, Modal } from "@transferwise/components";
4638
+ import { Button as Button6, Markdown as Markdown3, Modal } from "@transferwise/components";
4259
4639
 
4260
4640
  // ../renderers/src/messages/external-confirmation.messages.ts
4261
4641
  import { defineMessages as defineMessages9 } from "react-intl";
@@ -4283,9 +4663,9 @@ var external_confirmation_messages_default = defineMessages9({
4283
4663
  });
4284
4664
 
4285
4665
  // ../renderers/src/ExternalConfirmationRenderer.tsx
4286
- import { useIntl as useIntl10 } from "react-intl";
4666
+ import { useIntl as useIntl12 } from "react-intl";
4287
4667
  import { useEffect as useEffect9 } from "react";
4288
- import { Fragment as Fragment7, jsx as jsx52, jsxs as jsxs12 } from "react/jsx-runtime";
4668
+ import { Fragment as Fragment7, jsx as jsx57, jsxs as jsxs13 } from "react/jsx-runtime";
4289
4669
  var ExternalConfirmationRenderer = {
4290
4670
  canRenderType: "external-confirmation",
4291
4671
  render: ExternalConfirmationRendererComponent
@@ -4298,20 +4678,20 @@ function ExternalConfirmationRendererComponent({
4298
4678
  control,
4299
4679
  tags
4300
4680
  }) {
4301
- const { formatMessage } = useIntl10();
4681
+ const { formatMessage } = useIntl12();
4302
4682
  useEffect9(() => {
4303
4683
  open();
4304
4684
  }, []);
4305
- return /* @__PURE__ */ jsx52(
4685
+ return /* @__PURE__ */ jsx57(
4306
4686
  Modal,
4307
4687
  {
4308
4688
  open: visible,
4309
4689
  title: formatMessage(external_confirmation_messages_default.title),
4310
- body: /* @__PURE__ */ jsxs12(Fragment7, { children: [
4311
- /* @__PURE__ */ jsx52(Markdown3, { config: { link: { target: "_blank" } }, className: "text-xs-center m-b-5", children: formatMessage(external_confirmation_messages_default.description, { origin: getOrigin(url) }) }),
4312
- /* @__PURE__ */ jsx52("div", { className: "df-box-renderer-fixed-width", children: /* @__PURE__ */ jsxs12("div", { className: "df-box-renderer-width-lg", children: [
4313
- /* @__PURE__ */ jsx52(
4314
- Button5,
4690
+ body: /* @__PURE__ */ jsxs13(Fragment7, { children: [
4691
+ /* @__PURE__ */ jsx57(Markdown3, { config: { link: { target: "_blank" } }, className: "text-xs-center m-b-5", children: formatMessage(external_confirmation_messages_default.description, { origin: getOrigin(url) }) }),
4692
+ /* @__PURE__ */ jsx57("div", { className: "df-box-renderer-fixed-width", children: /* @__PURE__ */ jsxs13("div", { className: "df-box-renderer-width-lg", children: [
4693
+ /* @__PURE__ */ jsx57(
4694
+ Button6,
4315
4695
  {
4316
4696
  v2: true,
4317
4697
  block: true,
@@ -4324,7 +4704,7 @@ function ExternalConfirmationRendererComponent({
4324
4704
  children: formatMessage(external_confirmation_messages_default.open)
4325
4705
  }
4326
4706
  ),
4327
- /* @__PURE__ */ jsx52(Button5, { v2: true, block: true, className: "m-b-2", priority: "tertiary", size: "md", onClick: onCancel, children: formatMessage(external_confirmation_messages_default.cancel) })
4707
+ /* @__PURE__ */ jsx57(Button6, { v2: true, block: true, className: "m-b-2", priority: "tertiary", size: "md", onClick: onCancel, children: formatMessage(external_confirmation_messages_default.cancel) })
4328
4708
  ] }) })
4329
4709
  ] }),
4330
4710
  className: controlAndTagsToCSSClass({ control, tags }),
@@ -4342,51 +4722,51 @@ function getOrigin(url) {
4342
4722
  var ExternalConfirmationRenderer_default = ExternalConfirmationRenderer;
4343
4723
 
4344
4724
  // ../renderers/src/FormRenderer.tsx
4345
- var import_classnames15 = __toESM(require_classnames());
4346
- import { jsx as jsx53 } from "react/jsx-runtime";
4725
+ var import_classnames16 = __toESM(require_classnames());
4726
+ import { jsx as jsx58 } from "react/jsx-runtime";
4347
4727
  var FormRenderer = {
4348
4728
  canRenderType: "form",
4349
- render: ({ children, margin, control, tags }) => /* @__PURE__ */ jsx53("div", { className: (0, import_classnames15.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children })
4729
+ render: ({ children, margin, control, tags }) => /* @__PURE__ */ jsx58("div", { className: (0, import_classnames16.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children })
4350
4730
  };
4351
4731
  var FormRenderer_default = FormRenderer;
4352
4732
 
4353
4733
  // ../renderers/src/FormSectionRenderer.tsx
4354
4734
  import { Header as Header4 } from "@transferwise/components";
4355
- import { jsx as jsx54, jsxs as jsxs13 } from "react/jsx-runtime";
4735
+ import { jsx as jsx59, jsxs as jsxs14 } from "react/jsx-runtime";
4356
4736
  var FormSectionRenderer = {
4357
4737
  canRenderType: "form-section",
4358
- render: ({ title, description, children, control, tags }) => /* @__PURE__ */ jsxs13("fieldset", { className: controlAndTagsToCSSClass({ control, tags }), children: [
4359
- title && /* @__PURE__ */ jsx54(
4738
+ render: ({ title, description, children, control, tags }) => /* @__PURE__ */ jsxs14("fieldset", { className: controlAndTagsToCSSClass({ control, tags }), children: [
4739
+ title && /* @__PURE__ */ jsx59(
4360
4740
  Header4,
4361
4741
  {
4362
4742
  as: "h2",
4363
4743
  title
4364
4744
  }
4365
4745
  ),
4366
- description && /* @__PURE__ */ jsx54("p", { children: description }),
4746
+ description && /* @__PURE__ */ jsx59("p", { children: description }),
4367
4747
  children
4368
4748
  ] })
4369
4749
  };
4370
4750
  var FormSectionRenderer_default = FormSectionRenderer;
4371
4751
 
4372
4752
  // ../renderers/src/HeadingRenderer.tsx
4373
- var import_classnames16 = __toESM(require_classnames());
4753
+ var import_classnames17 = __toESM(require_classnames());
4374
4754
  import { Display, Title } from "@transferwise/components";
4375
- import { jsx as jsx55 } from "react/jsx-runtime";
4755
+ import { jsx as jsx60 } from "react/jsx-runtime";
4376
4756
  var HeadingRenderer = {
4377
4757
  canRenderType: "heading",
4378
4758
  render: Heading
4379
4759
  };
4380
4760
  function Heading(props) {
4381
4761
  const { text, size, align, margin, control } = props;
4382
- const className = (0, import_classnames16.default)(
4762
+ const className = (0, import_classnames17.default)(
4383
4763
  getTextAlignmentAndMargin({ align, margin }),
4384
4764
  controlAndTagsToCSSClass(props)
4385
4765
  );
4386
- return control === "display" ? /* @__PURE__ */ jsx55(DisplayHeading, { size, text, className }) : /* @__PURE__ */ jsx55(StandardHeading, { size, text, className });
4766
+ return control === "display" ? /* @__PURE__ */ jsx60(DisplayHeading, { size, text, className }) : /* @__PURE__ */ jsx60(StandardHeading, { size, text, className });
4387
4767
  }
4388
4768
  function DisplayHeading({ size, text, className }) {
4389
- return /* @__PURE__ */ jsx55(Display, { type: getDisplayType(size), className, children: text });
4769
+ return /* @__PURE__ */ jsx60(Display, { type: getDisplayType(size), className, children: text });
4390
4770
  }
4391
4771
  var getDisplayType = (size) => {
4392
4772
  switch (size) {
@@ -4402,7 +4782,7 @@ var getDisplayType = (size) => {
4402
4782
  }
4403
4783
  };
4404
4784
  function StandardHeading({ size, text, className }) {
4405
- return /* @__PURE__ */ jsx55(Title, { type: getTitleTypeBySize(size), className, children: text });
4785
+ return /* @__PURE__ */ jsx60(Title, { type: getTitleTypeBySize(size), className, children: text });
4406
4786
  }
4407
4787
  var getTitleTypeBySize = (size) => {
4408
4788
  var _a;
@@ -4418,9 +4798,9 @@ var getTitleTypeBySize = (size) => {
4418
4798
  var HeadingRenderer_default = HeadingRenderer;
4419
4799
 
4420
4800
  // ../renderers/src/ImageRenderer/UrlImage.tsx
4421
- var import_classnames17 = __toESM(require_classnames());
4801
+ var import_classnames18 = __toESM(require_classnames());
4422
4802
  import { Image } from "@transferwise/components";
4423
- import { useEffect as useEffect10, useState as useState12 } from "react";
4803
+ import { useEffect as useEffect10, useState as useState13 } from "react";
4424
4804
 
4425
4805
  // ../renderers/src/utils/api-utils.ts
4426
4806
  function isRelativePath(url = "") {
@@ -4430,7 +4810,7 @@ function isRelativePath(url = "") {
4430
4810
  }
4431
4811
 
4432
4812
  // ../renderers/src/ImageRenderer/UrlImage.tsx
4433
- import { jsx as jsx56 } from "react/jsx-runtime";
4813
+ import { jsx as jsx61 } from "react/jsx-runtime";
4434
4814
  function UrlImage({
4435
4815
  accessibilityDescription,
4436
4816
  align,
@@ -4441,23 +4821,23 @@ function UrlImage({
4441
4821
  uri,
4442
4822
  httpClient
4443
4823
  }) {
4444
- const [imageSource, setImageSource] = useState12("");
4824
+ const [imageSource, setImageSource] = useState13("");
4445
4825
  useEffect10(() => {
4446
4826
  if (!uri.startsWith("urn:")) {
4447
4827
  void getImageSource(httpClient, uri).then(setImageSource);
4448
4828
  }
4449
4829
  }, [uri, httpClient]);
4450
- return /* @__PURE__ */ jsx56(
4830
+ return /* @__PURE__ */ jsx61(
4451
4831
  "div",
4452
4832
  {
4453
- className: (0, import_classnames17.default)(
4833
+ className: (0, import_classnames18.default)(
4454
4834
  "df-image",
4455
4835
  align,
4456
4836
  size || "md",
4457
4837
  getMargin(margin),
4458
4838
  controlAndTagsToCSSClass({ control, tags })
4459
4839
  ),
4460
- children: /* @__PURE__ */ jsx56(
4840
+ children: /* @__PURE__ */ jsx61(
4461
4841
  Image,
4462
4842
  {
4463
4843
  className: "df-reserve-space",
@@ -4503,19 +4883,19 @@ var getImageSource = async (httpClient, imageUrl) => {
4503
4883
  };
4504
4884
 
4505
4885
  // ../renderers/src/ImageRenderer/ImageRenderer.tsx
4506
- import { jsx as jsx57 } from "react/jsx-runtime";
4886
+ import { jsx as jsx62 } from "react/jsx-runtime";
4507
4887
  var ImageRenderer = {
4508
4888
  canRenderType: "image",
4509
- render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */ jsx57(UrnImage, __spreadValues({}, props)) : /* @__PURE__ */ jsx57(UrlImage, __spreadValues({}, props))
4889
+ render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */ jsx62(UrnImage, __spreadValues({}, props)) : /* @__PURE__ */ jsx62(UrlImage, __spreadValues({}, props))
4510
4890
  };
4511
4891
 
4512
4892
  // ../renderers/src/ImageRenderer/index.tsx
4513
4893
  var ImageRenderer_default = ImageRenderer;
4514
4894
 
4515
4895
  // ../renderers/src/InstructionsRenderer.tsx
4516
- var import_classnames18 = __toESM(require_classnames());
4896
+ var import_classnames19 = __toESM(require_classnames());
4517
4897
  import { Header as Header5, InstructionsList } from "@transferwise/components";
4518
- import { jsx as jsx58, jsxs as jsxs14 } from "react/jsx-runtime";
4898
+ import { jsx as jsx63, jsxs as jsxs15 } from "react/jsx-runtime";
4519
4899
  var doContext = ["positive", "neutral", "proposition"];
4520
4900
  var dontContext = ["warning", "negative"];
4521
4901
  var InstructionsRenderer = {
@@ -4523,16 +4903,16 @@ var InstructionsRenderer = {
4523
4903
  render: ({ items, margin, title, control, tags }) => {
4524
4904
  const dos = items.filter((item) => doContext.includes(item.context)).map(({ text }) => text);
4525
4905
  const donts = items.filter((item) => dontContext.includes(item.context)).map(({ text }) => text);
4526
- return /* @__PURE__ */ jsxs14("div", { className: (0, import_classnames18.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4527
- title ? /* @__PURE__ */ jsx58(Header5, { title }) : null,
4528
- /* @__PURE__ */ jsx58(InstructionsList, { dos, donts })
4906
+ return /* @__PURE__ */ jsxs15("div", { className: (0, import_classnames19.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4907
+ title ? /* @__PURE__ */ jsx63(Header5, { title }) : null,
4908
+ /* @__PURE__ */ jsx63(InstructionsList, { dos, donts })
4529
4909
  ] });
4530
4910
  }
4531
4911
  };
4532
4912
  var InstructionsRenderer_default = InstructionsRenderer;
4533
4913
 
4534
4914
  // ../renderers/src/IntegerInputRenderer.tsx
4535
- import { Input as Input2, InputGroup as InputGroup2 } from "@transferwise/components";
4915
+ import { Input as Input3, InputGroup as InputGroup3 } from "@transferwise/components";
4536
4916
 
4537
4917
  // ../renderers/src/utils/input-utils.ts
4538
4918
  var onWheel = (event) => {
@@ -4557,7 +4937,7 @@ function pick(obj, ...keys) {
4557
4937
  }
4558
4938
 
4559
4939
  // ../renderers/src/IntegerInputRenderer.tsx
4560
- import { jsx as jsx59 } from "react/jsx-runtime";
4940
+ import { jsx as jsx64 } from "react/jsx-runtime";
4561
4941
  var IntegerInputRenderer = {
4562
4942
  canRenderType: "input-integer",
4563
4943
  render: (props) => {
@@ -4572,7 +4952,7 @@ var IntegerInputRenderer = {
4572
4952
  "maximum",
4573
4953
  "minimum"
4574
4954
  );
4575
- return /* @__PURE__ */ jsx59(
4955
+ return /* @__PURE__ */ jsx64(
4576
4956
  FieldInput_default,
4577
4957
  {
4578
4958
  id,
@@ -4585,8 +4965,8 @@ var IntegerInputRenderer = {
4585
4965
  features: props.features,
4586
4966
  control: props.control,
4587
4967
  tags: props.tags,
4588
- children: /* @__PURE__ */ jsx59(InputGroup2, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx59(
4589
- Input2,
4968
+ children: /* @__PURE__ */ jsx64(InputGroup3, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx64(
4969
+ Input3,
4590
4970
  __spreadValues({
4591
4971
  id,
4592
4972
  name: id,
@@ -4608,13 +4988,13 @@ var IntegerInputRenderer = {
4608
4988
  var IntegerInputRenderer_default = IntegerInputRenderer;
4609
4989
 
4610
4990
  // ../renderers/src/ListRenderer.tsx
4611
- var import_classnames19 = __toESM(require_classnames());
4991
+ var import_classnames20 = __toESM(require_classnames());
4612
4992
  import { ListItem as ListItem8 } from "@transferwise/components";
4613
4993
 
4614
4994
  // ../renderers/src/components/Header.tsx
4615
4995
  import { Header as DSHeader } from "@transferwise/components";
4616
- import { jsx as jsx60 } from "react/jsx-runtime";
4617
- var Header = ({ title, callToAction }) => (title || callToAction) && /* @__PURE__ */ jsx60(DSHeader, { title: title != null ? title : "", action: getHeaderAction(callToAction) });
4996
+ import { jsx as jsx65 } from "react/jsx-runtime";
4997
+ var Header = ({ title, callToAction }) => (title || callToAction) && /* @__PURE__ */ jsx65(DSHeader, { title: title != null ? title : "", action: getHeaderAction(callToAction) });
4618
4998
  var getHeaderAction = (callToAction) => {
4619
4999
  if (!callToAction) {
4620
5000
  return void 0;
@@ -4626,11 +5006,11 @@ var getHeaderAction = (callToAction) => {
4626
5006
  };
4627
5007
 
4628
5008
  // ../renderers/src/ListRenderer.tsx
4629
- import { jsx as jsx61, jsxs as jsxs15 } from "react/jsx-runtime";
5009
+ import { jsx as jsx66, jsxs as jsxs16 } from "react/jsx-runtime";
4630
5010
  var ListRenderer = {
4631
5011
  canRenderType: "list",
4632
- render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ jsxs15("div", { className: (0, import_classnames19.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4633
- /* @__PURE__ */ jsx61(Header, { title, callToAction }),
5012
+ render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ jsxs16("div", { className: (0, import_classnames20.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5013
+ /* @__PURE__ */ jsx66(Header, { title, callToAction }),
4634
5014
  items.map((item) => {
4635
5015
  var _a, _b;
4636
5016
  const {
@@ -4647,7 +5027,7 @@ var ListRenderer = {
4647
5027
  ctaSecondary: (_a = itemTags == null ? void 0 : itemTags.includes("cta-secondary")) != null ? _a : false,
4648
5028
  fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
4649
5029
  };
4650
- return /* @__PURE__ */ jsx61(
5030
+ return /* @__PURE__ */ jsx66(
4651
5031
  ListItem8,
4652
5032
  {
4653
5033
  title: itemTitle,
@@ -4667,17 +5047,17 @@ var ListRenderer = {
4667
5047
  var ListRenderer_default = ListRenderer;
4668
5048
 
4669
5049
  // ../renderers/src/LoadingIndicatorRenderer.tsx
4670
- var import_classnames20 = __toESM(require_classnames());
5050
+ var import_classnames21 = __toESM(require_classnames());
4671
5051
  import { Loader } from "@transferwise/components";
4672
- import { jsx as jsx62 } from "react/jsx-runtime";
5052
+ import { jsx as jsx67 } from "react/jsx-runtime";
4673
5053
  var LoadingIndicatorRenderer = {
4674
5054
  canRenderType: "loading-indicator",
4675
- render: ({ size, margin, control, tags }) => /* @__PURE__ */ jsx62(
5055
+ render: ({ size, margin, control, tags }) => /* @__PURE__ */ jsx67(
4676
5056
  Loader,
4677
5057
  {
4678
5058
  size,
4679
5059
  classNames: {
4680
- "tw-loader": (0, import_classnames20.default)(
5060
+ "tw-loader": (0, import_classnames21.default)(
4681
5061
  "tw-loader",
4682
5062
  "m-x-auto",
4683
5063
  getMargin(margin),
@@ -4691,24 +5071,24 @@ var LoadingIndicatorRenderer = {
4691
5071
  var LoadingIndicatorRenderer_default = LoadingIndicatorRenderer;
4692
5072
 
4693
5073
  // ../renderers/src/MarkdownRenderer.tsx
4694
- var import_classnames21 = __toESM(require_classnames());
5074
+ var import_classnames22 = __toESM(require_classnames());
4695
5075
  import { Markdown as Markdown4 } from "@transferwise/components";
4696
- import { jsx as jsx63 } from "react/jsx-runtime";
5076
+ import { jsx as jsx68 } from "react/jsx-runtime";
4697
5077
  var MarkdownRenderer = {
4698
5078
  canRenderType: "markdown",
4699
5079
  render: ({ content, align, margin, size, control, tags }) => {
4700
5080
  const isLarge = !["xs", "sm"].includes(size);
4701
- return /* @__PURE__ */ jsx63(
5081
+ return /* @__PURE__ */ jsx68(
4702
5082
  "div",
4703
5083
  {
4704
- className: (0, import_classnames21.default)(
5084
+ className: (0, import_classnames22.default)(
4705
5085
  getTextAlignmentAndMargin({ align, margin }),
4706
5086
  controlAndTagsToCSSClass({ control, tags })
4707
5087
  ),
4708
- children: /* @__PURE__ */ jsx63(
5088
+ children: /* @__PURE__ */ jsx68(
4709
5089
  Markdown4,
4710
5090
  {
4711
- className: (0, import_classnames21.default)("df-markdown", {
5091
+ className: (0, import_classnames22.default)("df-markdown", {
4712
5092
  "np-text-body-large": isLarge,
4713
5093
  "np-text-body-default": !isLarge
4714
5094
  }),
@@ -4723,17 +5103,17 @@ var MarkdownRenderer = {
4723
5103
  var MarkdownRenderer_default = MarkdownRenderer;
4724
5104
 
4725
5105
  // ../renderers/src/MediaRenderer.tsx
4726
- var import_classnames22 = __toESM(require_classnames());
4727
- import { jsx as jsx64 } from "react/jsx-runtime";
5106
+ var import_classnames23 = __toESM(require_classnames());
5107
+ import { jsx as jsx69 } from "react/jsx-runtime";
4728
5108
  var MediaRenderer = {
4729
5109
  canRenderType: "media",
4730
5110
  render: (_a) => {
4731
5111
  var _b = _a, { media } = _b, rest = __objRest(_b, ["media"]);
4732
5112
  switch (media.type) {
4733
5113
  case "avatar":
4734
- return /* @__PURE__ */ jsx64(AvatarMediaRendererComponent, __spreadValues({ media }, rest));
5114
+ return /* @__PURE__ */ jsx69(AvatarMediaRendererComponent, __spreadValues({ media }, rest));
4735
5115
  case "image":
4736
- return /* @__PURE__ */ jsx64(ImageMediaRendererComponent, __spreadValues({ media }, rest));
5116
+ return /* @__PURE__ */ jsx69(ImageMediaRendererComponent, __spreadValues({ media }, rest));
4737
5117
  case "legacy":
4738
5118
  return null;
4739
5119
  }
@@ -4747,16 +5127,16 @@ var AvatarMediaRendererComponent = ({
4747
5127
  control,
4748
5128
  tags
4749
5129
  }) => {
4750
- return /* @__PURE__ */ jsx64(
5130
+ return /* @__PURE__ */ jsx69(
4751
5131
  "div",
4752
5132
  {
4753
- className: (0, import_classnames22.default)(
5133
+ className: (0, import_classnames23.default)(
4754
5134
  "df-media-layout-avatar",
4755
5135
  align,
4756
5136
  getMargin(margin),
4757
5137
  controlAndTagsToCSSClass({ control, tags })
4758
5138
  ),
4759
- children: /* @__PURE__ */ jsx64(Media, { media, size: mapAvatarMediaSize(size) })
5139
+ children: /* @__PURE__ */ jsx69(Media, { media, size: mapAvatarMediaSize(size) })
4760
5140
  }
4761
5141
  );
4762
5142
  };
@@ -4769,14 +5149,14 @@ var ImageMediaRendererComponent = (_a) => {
4769
5149
  "size"
4770
5150
  ]);
4771
5151
  var _a2, _b2;
4772
- return isUrnImage(media.uri) ? /* @__PURE__ */ jsx64(
5152
+ return isUrnImage(media.uri) ? /* @__PURE__ */ jsx69(
4773
5153
  UrnImage,
4774
5154
  __spreadValues({
4775
5155
  uri: media.uri,
4776
5156
  size: (_a2 = media.size) != null ? _a2 : size,
4777
5157
  accessibilityDescription: media.accessibilityDescription
4778
5158
  }, rest)
4779
- ) : /* @__PURE__ */ jsx64(
5159
+ ) : /* @__PURE__ */ jsx69(
4780
5160
  UrlImage,
4781
5161
  __spreadValues({
4782
5162
  uri: media.uri,
@@ -4801,21 +5181,21 @@ var mapAvatarMediaSize = (size) => {
4801
5181
  };
4802
5182
 
4803
5183
  // ../renderers/src/ModalLayoutRenderer.tsx
4804
- var import_classnames23 = __toESM(require_classnames());
4805
- import { Button as Button6, Modal as Modal2 } from "@transferwise/components";
4806
- import { useState as useState13 } from "react";
4807
- import { jsx as jsx65, jsxs as jsxs16 } from "react/jsx-runtime";
5184
+ var import_classnames24 = __toESM(require_classnames());
5185
+ import { Button as Button7, Modal as Modal2 } from "@transferwise/components";
5186
+ import { useState as useState14 } from "react";
5187
+ import { jsx as jsx70, jsxs as jsxs17 } from "react/jsx-runtime";
4808
5188
  var ModalLayoutRenderer = {
4809
5189
  canRenderType: "modal-layout",
4810
- render: (props) => /* @__PURE__ */ jsx65(DFModal, __spreadValues({}, props))
5190
+ render: (props) => /* @__PURE__ */ jsx70(DFModal, __spreadValues({}, props))
4811
5191
  };
4812
5192
  var ModalLayoutRenderer_default = ModalLayoutRenderer;
4813
5193
  function DFModal({ content, margin, trigger, control, tags }) {
4814
- const [visible, setVisible] = useState13(false);
5194
+ const [visible, setVisible] = useState14(false);
4815
5195
  const { children, title } = content;
4816
- return /* @__PURE__ */ jsxs16("div", { className: (0, import_classnames23.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4817
- /* @__PURE__ */ jsx65(Button6, { v2: true, priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
4818
- /* @__PURE__ */ jsx65(
5196
+ return /* @__PURE__ */ jsxs17("div", { className: (0, import_classnames24.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5197
+ /* @__PURE__ */ jsx70(Button7, { v2: true, priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
5198
+ /* @__PURE__ */ jsx70(
4819
5199
  Modal2,
4820
5200
  {
4821
5201
  scroll: "content",
@@ -4831,11 +5211,11 @@ function DFModal({ content, margin, trigger, control, tags }) {
4831
5211
 
4832
5212
  // ../renderers/src/ModalRenderer.tsx
4833
5213
  import { Modal as Modal3 } from "@transferwise/components";
4834
- import { jsx as jsx66 } from "react/jsx-runtime";
5214
+ import { jsx as jsx71 } from "react/jsx-runtime";
4835
5215
  var ModalRenderer = {
4836
5216
  canRenderType: "modal",
4837
5217
  render: ({ title, children, open, onClose, control, tags }) => {
4838
- return /* @__PURE__ */ jsx66(
5218
+ return /* @__PURE__ */ jsx71(
4839
5219
  Modal3,
4840
5220
  {
4841
5221
  open,
@@ -4851,8 +5231,8 @@ var ModalRenderer = {
4851
5231
  // ../renderers/src/MoneyInputRenderer.tsx
4852
5232
  import { MoneyInput } from "@transferwise/components";
4853
5233
  import { useEffect as useEffect11 } from "react";
4854
- import { useIntl as useIntl11 } from "react-intl";
4855
- import { jsx as jsx67 } from "react/jsx-runtime";
5234
+ import { useIntl as useIntl13 } from "react-intl";
5235
+ import { jsx as jsx72 } from "react/jsx-runtime";
4856
5236
  var groupingTags2 = Object.keys(group_messages_default).filter((key) => key !== "all");
4857
5237
  var MoneyInputRenderer = {
4858
5238
  canRenderType: "money-input",
@@ -4881,8 +5261,8 @@ function MoneyInputRendererComponent(props) {
4881
5261
  onCurrencyChange(0);
4882
5262
  }
4883
5263
  }, [selectedCurrencyIndex, onCurrencyChange, currencies.length]);
4884
- const { formatMessage } = useIntl11();
4885
- return /* @__PURE__ */ jsx67(
5264
+ const { formatMessage } = useIntl13();
5265
+ return /* @__PURE__ */ jsx72(
4886
5266
  FieldInput_default,
4887
5267
  {
4888
5268
  id: uid,
@@ -4893,7 +5273,7 @@ function MoneyInputRendererComponent(props) {
4893
5273
  features,
4894
5274
  control,
4895
5275
  tags,
4896
- children: /* @__PURE__ */ jsx67(
5276
+ children: /* @__PURE__ */ jsx72(
4897
5277
  MoneyInput,
4898
5278
  {
4899
5279
  amount: parseFloatOrNull(amountValue),
@@ -4956,8 +5336,8 @@ function assertCurrencyCodeIsString(currencyCode) {
4956
5336
 
4957
5337
  // ../renderers/src/MultiSelectInputRenderer/InlineComponent.tsx
4958
5338
  import { ListItem as ListItem9, SearchInput as SearchInput2 } from "@transferwise/components";
4959
- import { useState as useState14 } from "react";
4960
- import { useIntl as useIntl12 } from "react-intl";
5339
+ import { useState as useState15 } from "react";
5340
+ import { useIntl as useIntl14 } from "react-intl";
4961
5341
 
4962
5342
  // ../renderers/src/utils/items-with-index.ts
4963
5343
  var zipWithIndex = (items) => items.map((item, index) => __spreadProps(__spreadValues({}, item), {
@@ -4965,7 +5345,7 @@ var zipWithIndex = (items) => items.map((item, index) => __spreadProps(__spreadV
4965
5345
  }));
4966
5346
 
4967
5347
  // ../renderers/src/MultiSelectInputRenderer/InlineComponent.tsx
4968
- import { Fragment as Fragment8, jsx as jsx68, jsxs as jsxs17 } from "react/jsx-runtime";
5348
+ import { Fragment as Fragment8, jsx as jsx73, jsxs as jsxs18 } from "react/jsx-runtime";
4969
5349
  function InlineComponent(props) {
4970
5350
  const {
4971
5351
  id,
@@ -4982,12 +5362,12 @@ function InlineComponent(props) {
4982
5362
  onSelect
4983
5363
  } = props;
4984
5364
  const optionsWithIndex = zipWithIndex(options);
4985
- const [query, setQuery] = useState14("");
4986
- const { formatMessage } = useIntl12();
5365
+ const [query, setQuery] = useState15("");
5366
+ const { formatMessage } = useIntl14();
4987
5367
  const filtered = tags == null ? void 0 : tags.includes("filtered");
4988
5368
  const filteredOptions = query ? filterAndSortItems(optionsWithIndex, filtered ? query : "") : optionsWithIndex;
4989
- return /* @__PURE__ */ jsxs17(Fragment8, { children: [
4990
- filtered && /* @__PURE__ */ jsx68(
5369
+ return /* @__PURE__ */ jsxs18(Fragment8, { children: [
5370
+ filtered && /* @__PURE__ */ jsx73(
4991
5371
  SearchInput2,
4992
5372
  {
4993
5373
  placeholder: formatMessage(filter_messages_default.placeholder),
@@ -5000,7 +5380,7 @@ function InlineComponent(props) {
5000
5380
  }
5001
5381
  }
5002
5382
  ),
5003
- /* @__PURE__ */ jsx68(
5383
+ /* @__PURE__ */ jsx73(
5004
5384
  FieldInput_default,
5005
5385
  {
5006
5386
  id,
@@ -5025,7 +5405,7 @@ function InlineComponent(props) {
5025
5405
  childrenProps
5026
5406
  } = option;
5027
5407
  const key = (_a = childrenProps == null ? void 0 : childrenProps.uid) != null ? _a : index;
5028
- return /* @__PURE__ */ jsx68(
5408
+ return /* @__PURE__ */ jsx73(
5029
5409
  ListItem9,
5030
5410
  {
5031
5411
  title: itemTitle,
@@ -5034,9 +5414,9 @@ function InlineComponent(props) {
5034
5414
  valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
5035
5415
  media: getMedia(media, false),
5036
5416
  prompt: getInlineAlert(inlineAlert),
5037
- additionalInfo: additionalText ? /* @__PURE__ */ jsx68(ListItem9.AdditionalInfo, { children: additionalText }) : void 0,
5417
+ additionalInfo: additionalText ? /* @__PURE__ */ jsx73(ListItem9.AdditionalInfo, { children: additionalText }) : void 0,
5038
5418
  disabled: disabled || optionDisabled,
5039
- control: /* @__PURE__ */ jsx68(
5419
+ control: /* @__PURE__ */ jsx73(
5040
5420
  ListItem9.Checkbox,
5041
5421
  {
5042
5422
  checked: selectedIndices.includes(index),
@@ -5057,8 +5437,8 @@ function InlineComponent(props) {
5057
5437
 
5058
5438
  // ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
5059
5439
  import { SelectInput, SelectInputOptionContent } from "@transferwise/components";
5060
- import { useState as useState15 } from "react";
5061
- import { useIntl as useIntl13 } from "react-intl";
5440
+ import { useState as useState16 } from "react";
5441
+ import { useIntl as useIntl15 } from "react-intl";
5062
5442
 
5063
5443
  // ../renderers/src/messages/multi-select.messages.ts
5064
5444
  import { defineMessages as defineMessages10 } from "react-intl";
@@ -5071,10 +5451,10 @@ var multi_select_messages_default = defineMessages10({
5071
5451
  });
5072
5452
 
5073
5453
  // ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
5074
- import { jsx as jsx69 } from "react/jsx-runtime";
5454
+ import { jsx as jsx74 } from "react/jsx-runtime";
5075
5455
  function DefaultComponent(props) {
5076
- const { formatMessage } = useIntl13();
5077
- const [stagedIndices, setStagedIndices] = useState15();
5456
+ const { formatMessage } = useIntl15();
5457
+ const [stagedIndices, setStagedIndices] = useState16();
5078
5458
  const {
5079
5459
  id,
5080
5460
  autoComplete,
@@ -5115,12 +5495,12 @@ function DefaultComponent(props) {
5115
5495
  const contentProps = {
5116
5496
  title: option.title,
5117
5497
  description: option.description,
5118
- icon: /* @__PURE__ */ jsx69(OptionMedia, { media: option.media, preferAvatar: false })
5498
+ icon: /* @__PURE__ */ jsx74(OptionMedia, { media: option.media, preferAvatar: false })
5119
5499
  };
5120
- return /* @__PURE__ */ jsx69(SelectInputOptionContent, __spreadValues({}, contentProps));
5500
+ return /* @__PURE__ */ jsx74(SelectInputOptionContent, __spreadValues({}, contentProps));
5121
5501
  };
5122
5502
  const extraProps = { autoComplete };
5123
- return /* @__PURE__ */ jsx69(
5503
+ return /* @__PURE__ */ jsx74(
5124
5504
  FieldInput_default,
5125
5505
  {
5126
5506
  id,
@@ -5131,7 +5511,7 @@ function DefaultComponent(props) {
5131
5511
  features,
5132
5512
  control,
5133
5513
  tags,
5134
- children: /* @__PURE__ */ jsx69(
5514
+ children: /* @__PURE__ */ jsx74(
5135
5515
  SelectInput,
5136
5516
  __spreadValues({
5137
5517
  id,
@@ -5171,7 +5551,7 @@ function DefaultComponent(props) {
5171
5551
 
5172
5552
  // ../renderers/src/MultiSelectInputRenderer/InlineCheckboxComponent.tsx
5173
5553
  import { Checkbox as Checkbox2 } from "@transferwise/components";
5174
- import { jsx as jsx70 } from "react/jsx-runtime";
5554
+ import { jsx as jsx75 } from "react/jsx-runtime";
5175
5555
  function InlineCheckboxComponent(props) {
5176
5556
  const {
5177
5557
  id,
@@ -5187,7 +5567,7 @@ function InlineCheckboxComponent(props) {
5187
5567
  tags,
5188
5568
  onSelect
5189
5569
  } = props;
5190
- return /* @__PURE__ */ jsx70(
5570
+ return /* @__PURE__ */ jsx75(
5191
5571
  FieldInput_default,
5192
5572
  {
5193
5573
  id,
@@ -5218,24 +5598,24 @@ function InlineCheckboxComponent(props) {
5218
5598
  onSelect(newSelectedIndices);
5219
5599
  }
5220
5600
  };
5221
- return /* @__PURE__ */ jsx70(Checkbox2, __spreadProps(__spreadValues({}, checkboxProps), { className: "m-t-1" }), key);
5601
+ return /* @__PURE__ */ jsx75(Checkbox2, __spreadProps(__spreadValues({}, checkboxProps), { className: "m-t-1" }), key);
5222
5602
  })
5223
5603
  }
5224
5604
  );
5225
5605
  }
5226
5606
 
5227
5607
  // ../renderers/src/MultiSelectInputRenderer/MultiSelectInputRenderer.tsx
5228
- import { jsx as jsx71 } from "react/jsx-runtime";
5608
+ import { jsx as jsx76 } from "react/jsx-runtime";
5229
5609
  var MultiSelectInputRenderer = {
5230
5610
  canRenderType: "input-multi-select",
5231
5611
  render: (props) => {
5232
5612
  switch (props.control) {
5233
5613
  case "inline":
5234
- return /* @__PURE__ */ jsx71(InlineComponent, __spreadValues({}, props));
5614
+ return /* @__PURE__ */ jsx76(InlineComponent, __spreadValues({}, props));
5235
5615
  case "inline-checkbox-group":
5236
- return /* @__PURE__ */ jsx71(InlineCheckboxComponent, __spreadValues({}, props));
5616
+ return /* @__PURE__ */ jsx76(InlineCheckboxComponent, __spreadValues({}, props));
5237
5617
  default:
5238
- return /* @__PURE__ */ jsx71(DefaultComponent, __spreadValues({}, props));
5618
+ return /* @__PURE__ */ jsx76(DefaultComponent, __spreadValues({}, props));
5239
5619
  }
5240
5620
  }
5241
5621
  };
@@ -5245,8 +5625,8 @@ import { Status, UploadInput } from "@transferwise/components";
5245
5625
 
5246
5626
  // ../renderers/src/components/UploadFieldInput.tsx
5247
5627
  import { InlineAlert as InlineAlert2 } from "@transferwise/components";
5248
- var import_classnames24 = __toESM(require_classnames());
5249
- import { jsx as jsx72, jsxs as jsxs18 } from "react/jsx-runtime";
5628
+ var import_classnames25 = __toESM(require_classnames());
5629
+ import { jsx as jsx77, jsxs as jsxs19 } from "react/jsx-runtime";
5250
5630
  function UploadFieldInput({
5251
5631
  id,
5252
5632
  children,
@@ -5258,14 +5638,14 @@ function UploadFieldInput({
5258
5638
  control,
5259
5639
  tags
5260
5640
  }) {
5261
- const labelContent = label && help ? /* @__PURE__ */ jsx72(LabelContentWithHelp, { text: label, help }) : label;
5641
+ const labelContent = label && help ? /* @__PURE__ */ jsx77(LabelContentWithHelp, { text: label, help }) : label;
5262
5642
  const descriptionId = description ? `${id}-description` : void 0;
5263
5643
  const { ref } = useScrollToError(validation, features);
5264
- return /* @__PURE__ */ jsxs18(
5644
+ return /* @__PURE__ */ jsxs19(
5265
5645
  "div",
5266
5646
  {
5267
5647
  ref,
5268
- className: (0, import_classnames24.default)(
5648
+ className: (0, import_classnames25.default)(
5269
5649
  "form-group d-block",
5270
5650
  {
5271
5651
  "has-error": (validation == null ? void 0 : validation.status) === "invalid"
@@ -5273,9 +5653,9 @@ function UploadFieldInput({
5273
5653
  controlAndTagsToCSSClass({ control, tags })
5274
5654
  ),
5275
5655
  children: [
5276
- /* @__PURE__ */ jsx72("label", { htmlFor: id, className: "control-label", children: labelContent }),
5656
+ /* @__PURE__ */ jsx77("label", { htmlFor: id, className: "control-label", children: labelContent }),
5277
5657
  children,
5278
- (validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */ jsx72(InlineAlert2, { type: "negative", id: descriptionId, children: validation.message })
5658
+ (validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */ jsx77(InlineAlert2, { type: "negative", id: descriptionId, children: validation.message })
5279
5659
  ]
5280
5660
  }
5281
5661
  );
@@ -5310,7 +5690,7 @@ var getSizeLimit = (maxSize) => {
5310
5690
  };
5311
5691
 
5312
5692
  // ../renderers/src/MultiUploadInputRenderer.tsx
5313
- import { jsx as jsx73 } from "react/jsx-runtime";
5693
+ import { jsx as jsx78 } from "react/jsx-runtime";
5314
5694
  var MultiUploadInputRenderer = {
5315
5695
  canRenderType: "input-upload-multi",
5316
5696
  render: (props) => {
@@ -5338,7 +5718,7 @@ var MultiUploadInputRenderer = {
5338
5718
  };
5339
5719
  const onDeleteFile = async (fileId) => onRemoveFile(value.findIndex((file) => file.id === fileId));
5340
5720
  const descriptionId = description ? `${id}-description` : void 0;
5341
- return /* @__PURE__ */ jsx73(
5721
+ return /* @__PURE__ */ jsx78(
5342
5722
  UploadFieldInput_default,
5343
5723
  {
5344
5724
  id,
@@ -5349,7 +5729,7 @@ var MultiUploadInputRenderer = {
5349
5729
  features,
5350
5730
  control,
5351
5731
  tags,
5352
- children: /* @__PURE__ */ jsx73(
5732
+ children: /* @__PURE__ */ jsx78(
5353
5733
  UploadInput,
5354
5734
  {
5355
5735
  id,
@@ -5377,8 +5757,8 @@ var MultiUploadInputRenderer = {
5377
5757
  var MultiUploadInputRenderer_default = MultiUploadInputRenderer;
5378
5758
 
5379
5759
  // ../renderers/src/NumberInputRenderer.tsx
5380
- import { Input as Input3, InputGroup as InputGroup3 } from "@transferwise/components";
5381
- import { jsx as jsx74 } from "react/jsx-runtime";
5760
+ import { Input as Input4, InputGroup as InputGroup4 } from "@transferwise/components";
5761
+ import { jsx as jsx79 } from "react/jsx-runtime";
5382
5762
  var NumberInputRenderer = {
5383
5763
  canRenderType: "input-number",
5384
5764
  render: (props) => {
@@ -5392,7 +5772,7 @@ var NumberInputRenderer = {
5392
5772
  "maximum",
5393
5773
  "minimum"
5394
5774
  );
5395
- return /* @__PURE__ */ jsx74(
5775
+ return /* @__PURE__ */ jsx79(
5396
5776
  FieldInput_default,
5397
5777
  {
5398
5778
  id,
@@ -5405,8 +5785,8 @@ var NumberInputRenderer = {
5405
5785
  features: props.features,
5406
5786
  control: props.control,
5407
5787
  tags: props.tags,
5408
- children: /* @__PURE__ */ jsx74(InputGroup3, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx74(
5409
- Input3,
5788
+ children: /* @__PURE__ */ jsx79(InputGroup4, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx79(
5789
+ Input4,
5410
5790
  __spreadValues({
5411
5791
  id,
5412
5792
  name: id,
@@ -5426,9 +5806,9 @@ var NumberInputRenderer = {
5426
5806
  var NumberInputRenderer_default = NumberInputRenderer;
5427
5807
 
5428
5808
  // ../renderers/src/ParagraphRenderer.tsx
5429
- var import_classnames25 = __toESM(require_classnames());
5430
- import { Button as Button7, Input as Input4 } from "@transferwise/components";
5431
- import { useIntl as useIntl14 } from "react-intl";
5809
+ var import_classnames26 = __toESM(require_classnames());
5810
+ import { Button as Button8, Input as Input5 } from "@transferwise/components";
5811
+ import { useIntl as useIntl16 } from "react-intl";
5432
5812
 
5433
5813
  // ../renderers/src/hooks/useSnackBarIfAvailable.ts
5434
5814
  import { SnackbarContext } from "@transferwise/components";
@@ -5455,18 +5835,18 @@ var paragraph_messages_default = defineMessages11({
5455
5835
  });
5456
5836
 
5457
5837
  // ../renderers/src/ParagraphRenderer.tsx
5458
- import { jsx as jsx75, jsxs as jsxs19 } from "react/jsx-runtime";
5838
+ import { jsx as jsx80, jsxs as jsxs20 } from "react/jsx-runtime";
5459
5839
  var ParagraphRenderer = {
5460
5840
  canRenderType: "paragraph",
5461
- render: (props) => /* @__PURE__ */ jsx75(Paragraph, __spreadValues({}, props))
5841
+ render: (props) => /* @__PURE__ */ jsx80(Paragraph, __spreadValues({}, props))
5462
5842
  };
5463
5843
  function Paragraph(props) {
5464
5844
  const { align, control, margin, size, text } = props;
5465
- const className = (0, import_classnames25.default)(
5845
+ const className = (0, import_classnames26.default)(
5466
5846
  getTextAlignmentAndMargin({ align, margin }),
5467
5847
  controlAndTagsToCSSClass(props)
5468
5848
  );
5469
- return control === "copyable" ? /* @__PURE__ */ jsx75(CopyableParagraph, { className, align, text }) : /* @__PURE__ */ jsx75(
5849
+ return control === "copyable" ? /* @__PURE__ */ jsx80(CopyableParagraph, { className, align, text }) : /* @__PURE__ */ jsx80(
5470
5850
  "p",
5471
5851
  {
5472
5852
  className: `${["xs", "sm"].includes(size) ? "np-text-body-default" : "np-text-body-large"} ${className}`,
@@ -5479,41 +5859,41 @@ function CopyableParagraph({
5479
5859
  align,
5480
5860
  className
5481
5861
  }) {
5482
- const { formatMessage } = useIntl14();
5862
+ const { formatMessage } = useIntl16();
5483
5863
  const createSnackbar = useSnackBarIfAvailable();
5484
5864
  const copy = () => {
5485
5865
  navigator.clipboard.writeText(text).then(() => createSnackbar({ text: formatMessage(paragraph_messages_default.copied) })).catch(() => {
5486
5866
  });
5487
5867
  };
5488
5868
  const inputAlignmentClasses = getTextAlignmentAndMargin({ align, margin: "sm" });
5489
- return /* @__PURE__ */ jsxs19("div", { className, children: [
5490
- /* @__PURE__ */ jsx75(
5491
- Input4,
5869
+ return /* @__PURE__ */ jsxs20("div", { className, children: [
5870
+ /* @__PURE__ */ jsx80(
5871
+ Input5,
5492
5872
  {
5493
5873
  type: "text",
5494
5874
  value: text,
5495
5875
  readOnly: true,
5496
- className: (0, import_classnames25.default)("text-ellipsis", inputAlignmentClasses)
5876
+ className: (0, import_classnames26.default)("text-ellipsis", inputAlignmentClasses)
5497
5877
  }
5498
5878
  ),
5499
- /* @__PURE__ */ jsx75(Button7, { v2: true, block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
5879
+ /* @__PURE__ */ jsx80(Button8, { v2: true, block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
5500
5880
  ] });
5501
5881
  }
5502
5882
  var ParagraphRenderer_default = ParagraphRenderer;
5503
5883
 
5504
5884
  // ../renderers/src/ProgressRenderer.tsx
5505
- var import_classnames26 = __toESM(require_classnames());
5885
+ var import_classnames27 = __toESM(require_classnames());
5506
5886
  import { ProgressBar } from "@transferwise/components";
5507
- import { jsx as jsx76 } from "react/jsx-runtime";
5887
+ import { jsx as jsx81 } from "react/jsx-runtime";
5508
5888
  var ProgressRenderer = {
5509
5889
  canRenderType: "progress",
5510
5890
  render: ({ uid, title, help, progress, progressText, margin, description, control, tags }) => {
5511
- return /* @__PURE__ */ jsx76(
5891
+ return /* @__PURE__ */ jsx81(
5512
5892
  ProgressBar,
5513
5893
  {
5514
5894
  id: uid,
5515
- className: (0, import_classnames26.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
5516
- title: title && help ? /* @__PURE__ */ jsx76(LabelContentWithHelp, { text: title, help }) : title,
5895
+ className: (0, import_classnames27.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
5896
+ title: title && help ? /* @__PURE__ */ jsx81(LabelContentWithHelp, { text: title, help }) : title,
5517
5897
  description,
5518
5898
  progress: {
5519
5899
  max: 1,
@@ -5526,11 +5906,11 @@ var ProgressRenderer = {
5526
5906
  };
5527
5907
 
5528
5908
  // ../renderers/src/RepeatableRenderer.tsx
5529
- var import_classnames27 = __toESM(require_classnames());
5530
- import { Button as Button8, Header as Header6, InlineAlert as InlineAlert3, Modal as Modal4, NavigationOption } from "@transferwise/components";
5909
+ var import_classnames28 = __toESM(require_classnames());
5910
+ import { Button as Button9, Header as Header6, InlineAlert as InlineAlert3, Modal as Modal4, NavigationOption } from "@transferwise/components";
5531
5911
  import { Plus } from "@transferwise/icons";
5532
- import { useState as useState16 } from "react";
5533
- import { useIntl as useIntl15 } from "react-intl";
5912
+ import { useState as useState17 } from "react";
5913
+ import { useIntl as useIntl17 } from "react-intl";
5534
5914
 
5535
5915
  // ../renderers/src/messages/repeatable.messages.ts
5536
5916
  import { defineMessages as defineMessages12 } from "react-intl";
@@ -5558,10 +5938,10 @@ var repeatable_messages_default = defineMessages12({
5558
5938
  });
5559
5939
 
5560
5940
  // ../renderers/src/RepeatableRenderer.tsx
5561
- import { Fragment as Fragment9, jsx as jsx77, jsxs as jsxs20 } from "react/jsx-runtime";
5941
+ import { Fragment as Fragment9, jsx as jsx82, jsxs as jsxs21 } from "react/jsx-runtime";
5562
5942
  var RepeatableRenderer = {
5563
5943
  canRenderType: "repeatable",
5564
- render: (props) => /* @__PURE__ */ jsx77(Repeatable, __spreadValues({}, props))
5944
+ render: (props) => /* @__PURE__ */ jsx82(Repeatable, __spreadValues({}, props))
5565
5945
  };
5566
5946
  function Repeatable(props) {
5567
5947
  const {
@@ -5578,8 +5958,8 @@ function Repeatable(props) {
5578
5958
  onSave,
5579
5959
  onRemove
5580
5960
  } = props;
5581
- const { formatMessage } = useIntl15();
5582
- const [openModalType, setOpenModalType] = useState16(null);
5961
+ const { formatMessage } = useIntl17();
5962
+ const [openModalType, setOpenModalType] = useState17(null);
5583
5963
  const { ref } = useScrollToError(validationState, features);
5584
5964
  const onAddItem = () => {
5585
5965
  onAdd();
@@ -5602,43 +5982,43 @@ function Repeatable(props) {
5602
5982
  const onCancelEdit = () => {
5603
5983
  setOpenModalType(null);
5604
5984
  };
5605
- return /* @__PURE__ */ jsxs20(Fragment9, { children: [
5606
- /* @__PURE__ */ jsxs20("div", { ref, className: controlAndTagsToCSSClass(props), children: [
5607
- title && /* @__PURE__ */ jsx77(Header6, { title }),
5608
- description && /* @__PURE__ */ jsx77("p", { children: description }),
5609
- /* @__PURE__ */ jsxs20(
5985
+ return /* @__PURE__ */ jsxs21(Fragment9, { children: [
5986
+ /* @__PURE__ */ jsxs21("div", { ref, className: controlAndTagsToCSSClass(props), children: [
5987
+ title && /* @__PURE__ */ jsx82(Header6, { title }),
5988
+ description && /* @__PURE__ */ jsx82("p", { children: description }),
5989
+ /* @__PURE__ */ jsxs21(
5610
5990
  "div",
5611
5991
  {
5612
- className: (0, import_classnames27.default)("form-group", {
5992
+ className: (0, import_classnames28.default)("form-group", {
5613
5993
  "has-error": (validationState == null ? void 0 : validationState.status) === "invalid"
5614
5994
  }),
5615
5995
  children: [
5616
- items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ jsx77(ItemSummaryOption, { item, onClick: () => onEditItem(index) }, item.id)),
5617
- /* @__PURE__ */ jsx77(
5996
+ items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ jsx82(ItemSummaryOption, { item, onClick: () => onEditItem(index) }, item.id)),
5997
+ /* @__PURE__ */ jsx82(
5618
5998
  NavigationOption,
5619
5999
  {
5620
- media: /* @__PURE__ */ jsx77(Plus, {}),
6000
+ media: /* @__PURE__ */ jsx82(Plus, {}),
5621
6001
  title: addItemTitle || formatMessage(repeatable_messages_default.addItemTitle),
5622
6002
  showMediaAtAllSizes: true,
5623
6003
  onClick: () => onAddItem()
5624
6004
  }
5625
6005
  ),
5626
- (validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx77(InlineAlert3, { type: "negative", children: validationState.message })
6006
+ (validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx82(InlineAlert3, { type: "negative", children: validationState.message })
5627
6007
  ]
5628
6008
  }
5629
6009
  )
5630
6010
  ] }),
5631
- /* @__PURE__ */ jsx77(
6011
+ /* @__PURE__ */ jsx82(
5632
6012
  Modal4,
5633
6013
  {
5634
6014
  open: openModalType !== null,
5635
6015
  title: (openModalType === "add" ? addItemTitle : editItemTitle) || formatMessage(repeatable_messages_default.addItemTitle),
5636
- body: /* @__PURE__ */ jsxs20(Fragment9, { children: [
5637
- /* @__PURE__ */ jsx77("div", { className: "m-b-2", children: editableItem }),
5638
- /* @__PURE__ */ jsxs20("div", { children: [
5639
- /* @__PURE__ */ jsx77(Button8, { priority: "primary", block: true, className: "m-b-2", onClick: () => onSaveItem(), children: formatMessage(repeatable_messages_default.addItem) }),
5640
- /* @__PURE__ */ jsx77(
5641
- Button8,
6016
+ body: /* @__PURE__ */ jsxs21(Fragment9, { children: [
6017
+ /* @__PURE__ */ jsx82("div", { className: "m-b-2", children: editableItem }),
6018
+ /* @__PURE__ */ jsxs21("div", { children: [
6019
+ /* @__PURE__ */ jsx82(Button9, { priority: "primary", block: true, className: "m-b-2", onClick: () => onSaveItem(), children: formatMessage(repeatable_messages_default.addItem) }),
6020
+ /* @__PURE__ */ jsx82(
6021
+ Button9,
5642
6022
  {
5643
6023
  v2: true,
5644
6024
  priority: "secondary",
@@ -5659,10 +6039,10 @@ function ItemSummaryOption({
5659
6039
  item,
5660
6040
  onClick
5661
6041
  }) {
5662
- return /* @__PURE__ */ jsx77(
6042
+ return /* @__PURE__ */ jsx82(
5663
6043
  NavigationOption,
5664
6044
  {
5665
- media: /* @__PURE__ */ jsx77(OptionMedia, { media: item.media, preferAvatar: false }),
6045
+ media: /* @__PURE__ */ jsx82(OptionMedia, { media: item.media, preferAvatar: false }),
5666
6046
  title: item.title,
5667
6047
  content: item.description,
5668
6048
  showMediaAtAllSizes: true,
@@ -5674,16 +6054,16 @@ function ItemSummaryOption({
5674
6054
  var RepeatableRenderer_default = RepeatableRenderer;
5675
6055
 
5676
6056
  // ../renderers/src/ReviewLegacyRenderer.tsx
5677
- var import_classnames28 = __toESM(require_classnames());
6057
+ var import_classnames29 = __toESM(require_classnames());
5678
6058
  import { DefinitionList } from "@transferwise/components";
5679
- import { Fragment as Fragment10, jsx as jsx78, jsxs as jsxs21 } from "react/jsx-runtime";
6059
+ import { Fragment as Fragment10, jsx as jsx83, jsxs as jsxs22 } from "react/jsx-runtime";
5680
6060
  var ReviewRenderer = {
5681
6061
  canRenderType: "review",
5682
6062
  render: ({ callToAction, control, fields, margin, title, trackEvent, tags }) => {
5683
6063
  const orientation = mapControlToDefinitionListLayout(control);
5684
- return /* @__PURE__ */ jsxs21("div", { className: (0, import_classnames28.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5685
- /* @__PURE__ */ jsx78(Header, { title, callToAction }),
5686
- /* @__PURE__ */ jsx78("div", { className: margin, children: /* @__PURE__ */ jsx78(
6064
+ return /* @__PURE__ */ jsxs22("div", { className: (0, import_classnames29.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6065
+ /* @__PURE__ */ jsx83(Header, { title, callToAction }),
6066
+ /* @__PURE__ */ jsx83("div", { className: margin, children: /* @__PURE__ */ jsx83(
5687
6067
  DefinitionList,
5688
6068
  {
5689
6069
  layout: orientation,
@@ -5721,21 +6101,21 @@ var mapControlToDefinitionListLayout = (control) => {
5721
6101
  };
5722
6102
  var getFieldLabel = (label, help, onClick) => {
5723
6103
  if (help) {
5724
- return /* @__PURE__ */ jsxs21(Fragment10, { children: [
6104
+ return /* @__PURE__ */ jsxs22(Fragment10, { children: [
5725
6105
  label,
5726
6106
  " ",
5727
- /* @__PURE__ */ jsx78(Help_default, { help, onClick })
6107
+ /* @__PURE__ */ jsx83(Help_default, { help, onClick })
5728
6108
  ] });
5729
6109
  }
5730
6110
  return label;
5731
6111
  };
5732
6112
 
5733
6113
  // ../renderers/src/ReviewRenderer.tsx
5734
- var import_classnames29 = __toESM(require_classnames());
6114
+ var import_classnames30 = __toESM(require_classnames());
5735
6115
  import { ListItem as ListItem10, Markdown as Markdown5, Popover } from "@transferwise/components";
5736
6116
  import { QuestionMarkCircle } from "@transferwise/icons";
5737
- import { useIntl as useIntl16 } from "react-intl";
5738
- import { jsx as jsx79, jsxs as jsxs22 } from "react/jsx-runtime";
6117
+ import { useIntl as useIntl18 } from "react-intl";
6118
+ import { jsx as jsx84, jsxs as jsxs23 } from "react/jsx-runtime";
5739
6119
  var IGNORED_CONTROLS = [
5740
6120
  "horizontal",
5741
6121
  "horizontal-end-aligned",
@@ -5745,7 +6125,7 @@ var IGNORED_CONTROLS = [
5745
6125
  var ReviewRenderer2 = {
5746
6126
  canRenderType: "review",
5747
6127
  canRender: ({ control }) => control ? !IGNORED_CONTROLS.includes(control) : true,
5748
- render: (props) => /* @__PURE__ */ jsx79(Review, __spreadValues({}, props))
6128
+ render: (props) => /* @__PURE__ */ jsx84(Review, __spreadValues({}, props))
5749
6129
  };
5750
6130
  var Review = ({
5751
6131
  callToAction,
@@ -5756,9 +6136,9 @@ var Review = ({
5756
6136
  title,
5757
6137
  trackEvent
5758
6138
  }) => {
5759
- const intl = useIntl16();
5760
- return /* @__PURE__ */ jsxs22("div", { className: (0, import_classnames29.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5761
- /* @__PURE__ */ jsx79(Header, { title, callToAction }),
6139
+ const intl = useIntl18();
6140
+ return /* @__PURE__ */ jsxs23("div", { className: (0, import_classnames30.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6141
+ /* @__PURE__ */ jsx84(Header, { title, callToAction }),
5762
6142
  fields.map((field) => {
5763
6143
  var _a, _b, _c;
5764
6144
  const {
@@ -5776,7 +6156,7 @@ var Review = ({
5776
6156
  ctaSecondary: (_a = itemTags == null ? void 0 : itemTags.includes("cta-secondary")) != null ? _a : false,
5777
6157
  fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
5778
6158
  };
5779
- return /* @__PURE__ */ jsx79(
6159
+ return /* @__PURE__ */ jsx84(
5780
6160
  ListItem10,
5781
6161
  {
5782
6162
  title: value,
@@ -5797,14 +6177,14 @@ var Review = ({
5797
6177
  ] });
5798
6178
  };
5799
6179
  var getHelpControl = (help, ariaLabel, onClick) => {
5800
- return /* @__PURE__ */ jsx79(Popover, { content: /* @__PURE__ */ jsx79(Markdown5, { config: { link: { target: "_blank" } }, children: help }), children: /* @__PURE__ */ jsx79(ListItem10.IconButton, { partiallyInteractive: true, "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ jsx79(QuestionMarkCircle, {}) }) });
6180
+ return /* @__PURE__ */ jsx84(Popover, { content: /* @__PURE__ */ jsx84(Markdown5, { config: { link: { target: "_blank" } }, children: help }), children: /* @__PURE__ */ jsx84(ListItem10.IconButton, { partiallyInteractive: true, "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ jsx84(QuestionMarkCircle, {}) }) });
5801
6181
  };
5802
6182
  var ReviewRenderer_default = ReviewRenderer2;
5803
6183
 
5804
6184
  // ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
5805
- import { Input as Input5, InputGroup as InputGroup4, List, ListItem as ListItem11, Markdown as Markdown6 } from "@transferwise/components";
5806
- import { useState as useState17 } from "react";
5807
- import { useIntl as useIntl18 } from "react-intl";
6185
+ import { Input as Input6, InputGroup as InputGroup5, List, ListItem as ListItem11, Markdown as Markdown6 } from "@transferwise/components";
6186
+ import { useState as useState18 } from "react";
6187
+ import { useIntl as useIntl20 } from "react-intl";
5808
6188
 
5809
6189
  // ../renderers/src/messages/search.messages.ts
5810
6190
  import { defineMessages as defineMessages13 } from "react-intl";
@@ -5817,21 +6197,21 @@ var search_messages_default = defineMessages13({
5817
6197
  });
5818
6198
 
5819
6199
  // ../renderers/src/SearchRenderer/ErrorResult.tsx
5820
- import { useIntl as useIntl17 } from "react-intl";
6200
+ import { useIntl as useIntl19 } from "react-intl";
5821
6201
  import { Link as DSLink2 } from "@transferwise/components";
5822
- import { jsx as jsx80, jsxs as jsxs23 } from "react/jsx-runtime";
6202
+ import { jsx as jsx85, jsxs as jsxs24 } from "react/jsx-runtime";
5823
6203
  function ErrorResult({ state }) {
5824
- const intl = useIntl17();
5825
- return /* @__PURE__ */ jsxs23("p", { className: "m-t-2", children: [
6204
+ const intl = useIntl19();
6205
+ return /* @__PURE__ */ jsxs24("p", { className: "m-t-2", children: [
5826
6206
  intl.formatMessage(generic_error_messages_default.genericError),
5827
6207
  "\xA0",
5828
- /* @__PURE__ */ jsx80(DSLink2, { onClick: () => state.onRetry(), children: intl.formatMessage(generic_error_messages_default.retry) })
6208
+ /* @__PURE__ */ jsx85(DSLink2, { onClick: () => state.onRetry(), children: intl.formatMessage(generic_error_messages_default.retry) })
5829
6209
  ] });
5830
6210
  }
5831
6211
 
5832
6212
  // ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
5833
- import { Search as Search2 } from "@transferwise/icons";
5834
- import { Fragment as Fragment11, jsx as jsx81, jsxs as jsxs24 } from "react/jsx-runtime";
6213
+ import { Search as Search3 } from "@transferwise/icons";
6214
+ import { Fragment as Fragment11, jsx as jsx86, jsxs as jsxs25 } from "react/jsx-runtime";
5835
6215
  function BlockSearchRendererComponent({
5836
6216
  id,
5837
6217
  hint,
@@ -5846,10 +6226,10 @@ function BlockSearchRendererComponent({
5846
6226
  trackEvent,
5847
6227
  onChange
5848
6228
  }) {
5849
- const [hasSearched, setHasSearched] = useState17(false);
5850
- const { formatMessage } = useIntl18();
5851
- return /* @__PURE__ */ jsxs24("div", { className: getMargin(margin), children: [
5852
- /* @__PURE__ */ jsx81(
6229
+ const [hasSearched, setHasSearched] = useState18(false);
6230
+ const { formatMessage } = useIntl20();
6231
+ return /* @__PURE__ */ jsxs25("div", { className: getMargin(margin), children: [
6232
+ /* @__PURE__ */ jsx86(
5853
6233
  FieldInput_default,
5854
6234
  {
5855
6235
  id,
@@ -5860,8 +6240,8 @@ function BlockSearchRendererComponent({
5860
6240
  features,
5861
6241
  control,
5862
6242
  tags,
5863
- children: /* @__PURE__ */ jsx81(InputGroup4, { addonStart: { content: /* @__PURE__ */ jsx81(Search2, { size: 24 }) }, children: /* @__PURE__ */ jsx81(
5864
- Input5,
6243
+ children: /* @__PURE__ */ jsx86(InputGroup5, { addonStart: { content: /* @__PURE__ */ jsx86(Search3, { size: 24 }) }, children: /* @__PURE__ */ jsx86(
6244
+ Input6,
5865
6245
  {
5866
6246
  id,
5867
6247
  name: id,
@@ -5880,7 +6260,7 @@ function BlockSearchRendererComponent({
5880
6260
  ) })
5881
6261
  }
5882
6262
  ),
5883
- isLoading ? /* @__PURE__ */ jsx81("span", { children: formatMessage(search_messages_default.loading) }) : /* @__PURE__ */ jsx81(SearchResultContent, { state, trackEvent })
6263
+ isLoading ? /* @__PURE__ */ jsx86("span", { children: formatMessage(search_messages_default.loading) }) : /* @__PURE__ */ jsx86(SearchResultContent, { state, trackEvent })
5884
6264
  ] });
5885
6265
  }
5886
6266
  function SearchResultContent({
@@ -5889,38 +6269,38 @@ function SearchResultContent({
5889
6269
  }) {
5890
6270
  switch (state.type) {
5891
6271
  case "error":
5892
- return /* @__PURE__ */ jsx81(ErrorResult, { state });
6272
+ return /* @__PURE__ */ jsx86(ErrorResult, { state });
5893
6273
  case "results":
5894
- return /* @__PURE__ */ jsx81(SearchResults, { state, trackEvent });
6274
+ return /* @__PURE__ */ jsx86(SearchResults, { state, trackEvent });
5895
6275
  case "layout":
5896
- return /* @__PURE__ */ jsxs24(Fragment11, { children: [
6276
+ return /* @__PURE__ */ jsxs25(Fragment11, { children: [
5897
6277
  " ",
5898
6278
  state.layout,
5899
6279
  " "
5900
6280
  ] });
5901
6281
  case "noResults":
5902
- return /* @__PURE__ */ jsx81(EmptySearchResult, { state });
6282
+ return /* @__PURE__ */ jsx86(EmptySearchResult, { state });
5903
6283
  case "pending":
5904
6284
  default:
5905
6285
  return null;
5906
6286
  }
5907
6287
  }
5908
6288
  function EmptySearchResult({ state }) {
5909
- return /* @__PURE__ */ jsx81(Markdown6, { className: "m-t-2", config: { link: { target: "_blank" } }, children: state.message });
6289
+ return /* @__PURE__ */ jsx86(Markdown6, { className: "m-t-2", config: { link: { target: "_blank" } }, children: state.message });
5910
6290
  }
5911
6291
  function SearchResults({
5912
6292
  state,
5913
6293
  trackEvent
5914
6294
  }) {
5915
- return /* @__PURE__ */ jsx81(List, { children: state.results.map((result) => {
6295
+ return /* @__PURE__ */ jsx86(List, { children: state.results.map((result) => {
5916
6296
  const { media } = result;
5917
- return /* @__PURE__ */ jsx81(
6297
+ return /* @__PURE__ */ jsx86(
5918
6298
  ListItem11,
5919
6299
  {
5920
6300
  title: result.title,
5921
6301
  subtitle: result.description,
5922
- media: media ? /* @__PURE__ */ jsx81(OptionMedia, { media, preferAvatar: false }) : void 0,
5923
- control: /* @__PURE__ */ jsx81(
6302
+ media: media ? /* @__PURE__ */ jsx86(OptionMedia, { media, preferAvatar: false }) : void 0,
6303
+ control: /* @__PURE__ */ jsx86(
5924
6304
  ListItem11.Navigation,
5925
6305
  {
5926
6306
  onClick: () => {
@@ -5940,10 +6320,10 @@ var BlockSearchRendererComponent_default = BlockSearchRendererComponent;
5940
6320
 
5941
6321
  // ../renderers/src/SearchRenderer/InlineSearchRendererComponent.tsx
5942
6322
  import { Markdown as Markdown7, Typeahead } from "@transferwise/components";
5943
- import { Search as Search3 } from "@transferwise/icons";
5944
- import { useState as useState18 } from "react";
5945
- import { useIntl as useIntl19 } from "react-intl";
5946
- import { jsx as jsx82 } from "react/jsx-runtime";
6323
+ import { Search as Search4 } from "@transferwise/icons";
6324
+ import { useState as useState19 } from "react";
6325
+ import { useIntl as useIntl21 } from "react-intl";
6326
+ import { jsx as jsx87 } from "react/jsx-runtime";
5947
6327
  function InlineSearchRenderer({
5948
6328
  id,
5949
6329
  hint,
@@ -5957,9 +6337,9 @@ function InlineSearchRenderer({
5957
6337
  onChange,
5958
6338
  trackEvent
5959
6339
  }) {
5960
- const [hasSearched, setHasSearched] = useState18(false);
5961
- const intl = useIntl19();
5962
- return /* @__PURE__ */ jsx82("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx82(
6340
+ const [hasSearched, setHasSearched] = useState19(false);
6341
+ const intl = useIntl21();
6342
+ return /* @__PURE__ */ jsx87("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx87(
5963
6343
  FieldInput_default,
5964
6344
  {
5965
6345
  id,
@@ -5970,7 +6350,7 @@ function InlineSearchRenderer({
5970
6350
  features,
5971
6351
  control,
5972
6352
  tags,
5973
- children: /* @__PURE__ */ jsx82(
6353
+ children: /* @__PURE__ */ jsx87(
5974
6354
  Typeahead,
5975
6355
  {
5976
6356
  id: "typeahead-input-id",
@@ -5979,10 +6359,10 @@ function InlineSearchRenderer({
5979
6359
  size: "md",
5980
6360
  placeholder: hint,
5981
6361
  maxHeight: 100,
5982
- footer: /* @__PURE__ */ jsx82(TypeaheadFooter, { state, isLoading }),
6362
+ footer: /* @__PURE__ */ jsx87(TypeaheadFooter, { state, isLoading }),
5983
6363
  multiple: false,
5984
6364
  clearable: false,
5985
- addon: /* @__PURE__ */ jsx82(Search3, { size: 24 }),
6365
+ addon: /* @__PURE__ */ jsx87(Search4, { size: 24 }),
5986
6366
  options: state.type === "results" ? state.results.map(mapResultToTypeaheadOption) : [],
5987
6367
  minQueryLength: 1,
5988
6368
  onChange: (values) => {
@@ -6019,33 +6399,33 @@ function mapResultToTypeaheadOption(result) {
6019
6399
  };
6020
6400
  }
6021
6401
  function TypeaheadFooter({ state, isLoading }) {
6022
- const { formatMessage } = useIntl19();
6402
+ const { formatMessage } = useIntl21();
6023
6403
  if (state.type === "layout") {
6024
- return /* @__PURE__ */ jsx82("div", { className: "m-x-1 m-y-1", children: state.layout });
6404
+ return /* @__PURE__ */ jsx87("div", { className: "m-x-1 m-y-1", children: state.layout });
6025
6405
  }
6026
6406
  if (state.type === "noResults") {
6027
- return /* @__PURE__ */ jsx82(Markdown7, { className: "m-t-2 m-x-2", config: { link: { target: "_blank" } }, children: state.message });
6407
+ return /* @__PURE__ */ jsx87(Markdown7, { className: "m-t-2 m-x-2", config: { link: { target: "_blank" } }, children: state.message });
6028
6408
  }
6029
6409
  if (state.type === "error") {
6030
- return /* @__PURE__ */ jsx82("div", { className: "m-t-2 m-x-2", children: /* @__PURE__ */ jsx82(ErrorResult, { state }) });
6410
+ return /* @__PURE__ */ jsx87("div", { className: "m-t-2 m-x-2", children: /* @__PURE__ */ jsx87(ErrorResult, { state }) });
6031
6411
  }
6032
6412
  if (state.type === "pending" || isLoading) {
6033
- return /* @__PURE__ */ jsx82("p", { className: "m-t-2 m-x-2", children: formatMessage(search_messages_default.loading) });
6413
+ return /* @__PURE__ */ jsx87("p", { className: "m-t-2 m-x-2", children: formatMessage(search_messages_default.loading) });
6034
6414
  }
6035
6415
  return null;
6036
6416
  }
6037
6417
  var InlineSearchRendererComponent_default = InlineSearchRenderer;
6038
6418
 
6039
6419
  // ../renderers/src/SearchRenderer/SearchRenderer.tsx
6040
- import { jsx as jsx83 } from "react/jsx-runtime";
6420
+ import { jsx as jsx88 } from "react/jsx-runtime";
6041
6421
  var SearchRenderer = {
6042
6422
  canRenderType: "search",
6043
- render: (props) => props.control === "inline" ? /* @__PURE__ */ jsx83(InlineSearchRendererComponent_default, __spreadValues({}, props)) : /* @__PURE__ */ jsx83(BlockSearchRendererComponent_default, __spreadValues({}, props))
6423
+ render: (props) => props.control === "inline" ? /* @__PURE__ */ jsx88(InlineSearchRendererComponent_default, __spreadValues({}, props)) : /* @__PURE__ */ jsx88(BlockSearchRendererComponent_default, __spreadValues({}, props))
6044
6424
  };
6045
6425
  var SearchRenderer_default = SearchRenderer;
6046
6426
 
6047
6427
  // ../renderers/src/SectionRenderer.tsx
6048
- var import_classnames30 = __toESM(require_classnames());
6428
+ var import_classnames31 = __toESM(require_classnames());
6049
6429
  import { Header as Header7 } from "@transferwise/components";
6050
6430
 
6051
6431
  // ../renderers/src/utils/getHeaderAction.tsx
@@ -6070,16 +6450,16 @@ var getHeaderAction2 = (callToAction) => {
6070
6450
  };
6071
6451
 
6072
6452
  // ../renderers/src/SectionRenderer.tsx
6073
- import { jsx as jsx84, jsxs as jsxs25 } from "react/jsx-runtime";
6453
+ import { jsx as jsx89, jsxs as jsxs26 } from "react/jsx-runtime";
6074
6454
  var SectionRenderer = {
6075
6455
  canRenderType: "section",
6076
6456
  render: ({ children, callToAction, margin, title, control, tags }) => {
6077
- return /* @__PURE__ */ jsxs25(
6457
+ return /* @__PURE__ */ jsxs26(
6078
6458
  "section",
6079
6459
  {
6080
- className: (0, import_classnames30.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
6460
+ className: (0, import_classnames31.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
6081
6461
  children: [
6082
- (title || callToAction) && /* @__PURE__ */ jsx84(Header7, { title: title != null ? title : "", action: getHeaderAction2(callToAction) }),
6462
+ (title || callToAction) && /* @__PURE__ */ jsx89(Header7, { title: title != null ? title : "", action: getHeaderAction2(callToAction) }),
6083
6463
  children
6084
6464
  ]
6085
6465
  }
@@ -6090,7 +6470,7 @@ var SectionRenderer_default = SectionRenderer;
6090
6470
 
6091
6471
  // ../renderers/src/SelectInputRenderer/RadioInputRendererComponent.tsx
6092
6472
  import { RadioGroup } from "@transferwise/components";
6093
- import { Fragment as Fragment12, jsx as jsx85, jsxs as jsxs26 } from "react/jsx-runtime";
6473
+ import { Fragment as Fragment12, jsx as jsx90, jsxs as jsxs27 } from "react/jsx-runtime";
6094
6474
  function RadioInputRendererComponent(props) {
6095
6475
  const {
6096
6476
  id,
@@ -6107,8 +6487,8 @@ function RadioInputRendererComponent(props) {
6107
6487
  tags,
6108
6488
  onSelect
6109
6489
  } = props;
6110
- return /* @__PURE__ */ jsxs26(Fragment12, { children: [
6111
- /* @__PURE__ */ jsx85(
6490
+ return /* @__PURE__ */ jsxs27(Fragment12, { children: [
6491
+ /* @__PURE__ */ jsx90(
6112
6492
  FieldInput_default,
6113
6493
  {
6114
6494
  id,
@@ -6119,7 +6499,7 @@ function RadioInputRendererComponent(props) {
6119
6499
  features,
6120
6500
  control,
6121
6501
  tags,
6122
- children: /* @__PURE__ */ jsx85("span", { children: /* @__PURE__ */ jsx85(
6502
+ children: /* @__PURE__ */ jsx90("span", { children: /* @__PURE__ */ jsx90(
6123
6503
  RadioGroup,
6124
6504
  {
6125
6505
  name: id,
@@ -6128,7 +6508,7 @@ function RadioInputRendererComponent(props) {
6128
6508
  value: index,
6129
6509
  secondary: option.description,
6130
6510
  disabled: option.disabled || disabled,
6131
- avatar: /* @__PURE__ */ jsx85(OptionMedia, { media: option.media, preferAvatar: false })
6511
+ avatar: /* @__PURE__ */ jsx90(OptionMedia, { media: option.media, preferAvatar: false })
6132
6512
  })),
6133
6513
  selectedValue: selectedIndex != null ? selectedIndex : void 0,
6134
6514
  onChange: onSelect
@@ -6144,7 +6524,7 @@ function RadioInputRendererComponent(props) {
6144
6524
  // ../renderers/src/SelectInputRenderer/TabInputRendererComponent.tsx
6145
6525
  import { Tabs } from "@transferwise/components";
6146
6526
  import { useEffect as useEffect12 } from "react";
6147
- import { Fragment as Fragment13, jsx as jsx86, jsxs as jsxs27 } from "react/jsx-runtime";
6527
+ import { Fragment as Fragment13, jsx as jsx91, jsxs as jsxs28 } from "react/jsx-runtime";
6148
6528
  function TabInputRendererComponent(props) {
6149
6529
  const {
6150
6530
  id,
@@ -6166,8 +6546,8 @@ function TabInputRendererComponent(props) {
6166
6546
  onSelect(0);
6167
6547
  }
6168
6548
  }, [selectedIndex, onSelect, options.length]);
6169
- return /* @__PURE__ */ jsxs27(Fragment13, { children: [
6170
- /* @__PURE__ */ jsx86(
6549
+ return /* @__PURE__ */ jsxs28(Fragment13, { children: [
6550
+ /* @__PURE__ */ jsx91(
6171
6551
  FieldInput_default,
6172
6552
  {
6173
6553
  id,
@@ -6178,7 +6558,7 @@ function TabInputRendererComponent(props) {
6178
6558
  features,
6179
6559
  control,
6180
6560
  tags,
6181
- children: /* @__PURE__ */ jsx86(
6561
+ children: /* @__PURE__ */ jsx91(
6182
6562
  Tabs,
6183
6563
  {
6184
6564
  name: id,
@@ -6187,7 +6567,7 @@ function TabInputRendererComponent(props) {
6187
6567
  title: option.title,
6188
6568
  // if we pass null, we get some props-types console errors
6189
6569
  // eslint-disable-next-line react/jsx-no-useless-fragment
6190
- content: /* @__PURE__ */ jsx86(Fragment13, {}),
6570
+ content: /* @__PURE__ */ jsx91(Fragment13, {}),
6191
6571
  disabled: option.disabled || disabled
6192
6572
  })),
6193
6573
  onTabSelect: onSelect
@@ -6202,7 +6582,7 @@ var isValidIndex2 = (index, options) => index !== null && index >= 0 && index <
6202
6582
 
6203
6583
  // ../renderers/src/SelectInputRenderer/SelectInputRendererComponent.tsx
6204
6584
  import { SelectInput as SelectInput2, SelectInputOptionContent as SelectInputOptionContent2 } from "@transferwise/components";
6205
- import { Fragment as Fragment14, jsx as jsx87, jsxs as jsxs28 } from "react/jsx-runtime";
6585
+ import { Fragment as Fragment14, jsx as jsx92, jsxs as jsxs29 } from "react/jsx-runtime";
6206
6586
  function SelectInputRendererComponent(props) {
6207
6587
  const {
6208
6588
  id,
@@ -6245,13 +6625,13 @@ function SelectInputRendererComponent(props) {
6245
6625
  } : {
6246
6626
  title: option.title,
6247
6627
  description: option.description,
6248
- icon: /* @__PURE__ */ jsx87(OptionMedia, { media: option.media, preferAvatar: false })
6628
+ icon: /* @__PURE__ */ jsx92(OptionMedia, { media: option.media, preferAvatar: false })
6249
6629
  };
6250
- return /* @__PURE__ */ jsx87(SelectInputOptionContent2, __spreadValues({}, contentProps));
6630
+ return /* @__PURE__ */ jsx92(SelectInputOptionContent2, __spreadValues({}, contentProps));
6251
6631
  };
6252
6632
  const extraProps = { autoComplete };
6253
- return /* @__PURE__ */ jsxs28(Fragment14, { children: [
6254
- /* @__PURE__ */ jsx87(
6633
+ return /* @__PURE__ */ jsxs29(Fragment14, { children: [
6634
+ /* @__PURE__ */ jsx92(
6255
6635
  FieldInput_default,
6256
6636
  {
6257
6637
  id,
@@ -6262,7 +6642,7 @@ function SelectInputRendererComponent(props) {
6262
6642
  features,
6263
6643
  control,
6264
6644
  tags,
6265
- children: /* @__PURE__ */ jsx87(
6645
+ children: /* @__PURE__ */ jsx92(
6266
6646
  SelectInput2,
6267
6647
  __spreadValues({
6268
6648
  name: id,
@@ -6285,7 +6665,7 @@ function SelectInputRendererComponent(props) {
6285
6665
  // ../renderers/src/SelectInputRenderer/SegmentedInputRendererComponent.tsx
6286
6666
  import { useEffect as useEffect13 } from "react";
6287
6667
  import { SegmentedControl } from "@transferwise/components";
6288
- import { Fragment as Fragment15, jsx as jsx88, jsxs as jsxs29 } from "react/jsx-runtime";
6668
+ import { Fragment as Fragment15, jsx as jsx93, jsxs as jsxs30 } from "react/jsx-runtime";
6289
6669
  function SegmentedInputRendererComponent(props) {
6290
6670
  const {
6291
6671
  id,
@@ -6306,8 +6686,8 @@ function SegmentedInputRendererComponent(props) {
6306
6686
  onSelect(0);
6307
6687
  }
6308
6688
  }, [selectedIndex, onSelect, options.length]);
6309
- return /* @__PURE__ */ jsxs29(Fragment15, { children: [
6310
- /* @__PURE__ */ jsx88(
6689
+ return /* @__PURE__ */ jsxs30(Fragment15, { children: [
6690
+ /* @__PURE__ */ jsx93(
6311
6691
  FieldInput_default,
6312
6692
  {
6313
6693
  id,
@@ -6318,7 +6698,7 @@ function SegmentedInputRendererComponent(props) {
6318
6698
  features,
6319
6699
  control,
6320
6700
  tags,
6321
- children: /* @__PURE__ */ jsx88(
6701
+ children: /* @__PURE__ */ jsx93(
6322
6702
  SegmentedControl,
6323
6703
  {
6324
6704
  name: `${id}-segmented-control`,
@@ -6335,14 +6715,14 @@ function SegmentedInputRendererComponent(props) {
6335
6715
  )
6336
6716
  }
6337
6717
  ),
6338
- /* @__PURE__ */ jsx88("div", { id: `${id}-children`, children })
6718
+ /* @__PURE__ */ jsx93("div", { id: `${id}-children`, children })
6339
6719
  ] });
6340
6720
  }
6341
6721
  var isValidIndex3 = (index, options) => index !== null && index >= 0 && index < options;
6342
6722
 
6343
6723
  // ../renderers/src/SelectInputRenderer/RadioItemRendererComponent.tsx
6344
6724
  import { Header as Header8, InlineAlert as InlineAlert4, List as List2, ListItem as ListItem12 } from "@transferwise/components";
6345
- import { jsx as jsx89, jsxs as jsxs30 } from "react/jsx-runtime";
6725
+ import { jsx as jsx94, jsxs as jsxs31 } from "react/jsx-runtime";
6346
6726
  function RadioItemRendererComponent(props) {
6347
6727
  const {
6348
6728
  id,
@@ -6358,22 +6738,22 @@ function RadioItemRendererComponent(props) {
6358
6738
  onSelect
6359
6739
  } = props;
6360
6740
  const { ref } = useScrollToError(validationState, features);
6361
- return /* @__PURE__ */ jsxs30("div", { ref, className: controlAndTagsToCSSClass(props), children: [
6362
- rootTitle && /* @__PURE__ */ jsx89(
6741
+ return /* @__PURE__ */ jsxs31("div", { ref, className: controlAndTagsToCSSClass(props), children: [
6742
+ rootTitle && /* @__PURE__ */ jsx94(
6363
6743
  Header8,
6364
6744
  {
6365
6745
  as: "h2",
6366
- title: help ? /* @__PURE__ */ jsx89(LabelContentWithHelp, { text: rootTitle, help }) : rootTitle
6746
+ title: help ? /* @__PURE__ */ jsx94(LabelContentWithHelp, { text: rootTitle, help }) : rootTitle
6367
6747
  }
6368
6748
  ),
6369
- rootDescription && /* @__PURE__ */ jsx89("p", { children: rootDescription }),
6370
- /* @__PURE__ */ jsx89(List2, { children: options.map(
6371
- ({ title, description, additionalText, inlineAlert, disabled, media, supportingValues }, index) => /* @__PURE__ */ jsx89(
6749
+ rootDescription && /* @__PURE__ */ jsx94("p", { children: rootDescription }),
6750
+ /* @__PURE__ */ jsx94(List2, { children: options.map(
6751
+ ({ title, description, additionalText, inlineAlert, disabled, media, supportingValues }, index) => /* @__PURE__ */ jsx94(
6372
6752
  ListItem12,
6373
6753
  __spreadValues({
6374
6754
  title,
6375
6755
  subtitle: description,
6376
- control: /* @__PURE__ */ jsx89(
6756
+ control: /* @__PURE__ */ jsx94(
6377
6757
  ListItem12.Radio,
6378
6758
  {
6379
6759
  name: title,
@@ -6389,50 +6769,50 @@ function RadioItemRendererComponent(props) {
6389
6769
  title
6390
6770
  )
6391
6771
  ) }, `${id}-${selectedIndex}`),
6392
- (validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx89(InlineAlert4, { type: "negative", children: validationState.message }),
6772
+ (validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx94(InlineAlert4, { type: "negative", children: validationState.message }),
6393
6773
  children
6394
6774
  ] });
6395
6775
  }
6396
6776
 
6397
6777
  // ../renderers/src/SelectInputRenderer/SelectInputRenderer.tsx
6398
- import { jsx as jsx90 } from "react/jsx-runtime";
6778
+ import { jsx as jsx95 } from "react/jsx-runtime";
6399
6779
  var SelectInputRenderer = {
6400
6780
  canRenderType: "input-select",
6401
6781
  render: (props) => {
6402
6782
  switch (props.control) {
6403
6783
  case "radio":
6404
- return /* @__PURE__ */ jsx90(RadioInputRendererComponent, __spreadValues({}, props));
6784
+ return /* @__PURE__ */ jsx95(RadioInputRendererComponent, __spreadValues({}, props));
6405
6785
  case "radio-item":
6406
- return /* @__PURE__ */ jsx90(RadioItemRendererComponent, __spreadValues({}, props));
6786
+ return /* @__PURE__ */ jsx95(RadioItemRendererComponent, __spreadValues({}, props));
6407
6787
  case "tab":
6408
- return props.options.length > 3 ? /* @__PURE__ */ jsx90(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx90(TabInputRendererComponent, __spreadValues({}, props));
6788
+ return props.options.length > 3 ? /* @__PURE__ */ jsx95(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx95(TabInputRendererComponent, __spreadValues({}, props));
6409
6789
  case "segmented":
6410
- return props.options.length > 3 ? /* @__PURE__ */ jsx90(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx90(SegmentedInputRendererComponent, __spreadValues({}, props));
6790
+ return props.options.length > 3 ? /* @__PURE__ */ jsx95(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx95(SegmentedInputRendererComponent, __spreadValues({}, props));
6411
6791
  case "select":
6412
6792
  default:
6413
- return /* @__PURE__ */ jsx90(SelectInputRendererComponent, __spreadValues({}, props));
6793
+ return /* @__PURE__ */ jsx95(SelectInputRendererComponent, __spreadValues({}, props));
6414
6794
  }
6415
6795
  }
6416
6796
  };
6417
6797
  var SelectInputRenderer_default = SelectInputRenderer;
6418
6798
 
6419
6799
  // ../renderers/src/StatusListRenderer.tsx
6420
- var import_classnames31 = __toESM(require_classnames());
6800
+ var import_classnames32 = __toESM(require_classnames());
6421
6801
  import { AvatarView as AvatarView4, Header as Header9, ListItem as ListItem13 } from "@transferwise/components";
6422
- import { jsx as jsx91, jsxs as jsxs31 } from "react/jsx-runtime";
6802
+ import { jsx as jsx96, jsxs as jsxs32 } from "react/jsx-runtime";
6423
6803
  var StatusListRenderer = {
6424
6804
  canRenderType: "status-list",
6425
- render: ({ margin, items, title, control, tags }) => /* @__PURE__ */ jsxs31("div", { className: (0, import_classnames31.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6426
- title ? /* @__PURE__ */ jsx91(Header9, { title }) : null,
6805
+ render: ({ margin, items, title, control, tags }) => /* @__PURE__ */ jsxs32("div", { className: (0, import_classnames32.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6806
+ title ? /* @__PURE__ */ jsx96(Header9, { title }) : null,
6427
6807
  items.map((item) => {
6428
6808
  const { callToAction, description, title: itemTitle } = item;
6429
- return /* @__PURE__ */ jsx91(
6809
+ return /* @__PURE__ */ jsx96(
6430
6810
  ListItem13,
6431
6811
  {
6432
6812
  title: itemTitle,
6433
6813
  subtitle: description,
6434
- media: /* @__PURE__ */ jsx91(StatusListItemMedia, __spreadValues({}, item)),
6435
- additionalInfo: callToAction ? /* @__PURE__ */ jsx91(
6814
+ media: /* @__PURE__ */ jsx96(StatusListItemMedia, __spreadValues({}, item)),
6815
+ additionalInfo: callToAction ? /* @__PURE__ */ jsx96(
6436
6816
  ListItem13.AdditionalInfo,
6437
6817
  {
6438
6818
  action: __spreadValues({
@@ -6451,10 +6831,10 @@ var StatusListItemMedia = ({ icon, status }) => {
6451
6831
  return void 0;
6452
6832
  }
6453
6833
  if ("name" in icon) {
6454
- return /* @__PURE__ */ jsx91(AvatarView4, { badge: { status: mapStatus(status) }, children: /* @__PURE__ */ jsx91(DynamicIcon_default, { name: icon.name }) });
6834
+ return /* @__PURE__ */ jsx96(AvatarView4, { badge: { status: mapStatus(status) }, children: /* @__PURE__ */ jsx96(DynamicIcon_default, { name: icon.name }) });
6455
6835
  }
6456
6836
  if ("text" in icon) {
6457
- return /* @__PURE__ */ jsx91(AvatarView4, { badge: { status: mapStatus(status) }, children: icon.text });
6837
+ return /* @__PURE__ */ jsx96(AvatarView4, { badge: { status: mapStatus(status) }, children: icon.text });
6458
6838
  }
6459
6839
  return void 0;
6460
6840
  };
@@ -6471,7 +6851,7 @@ var mapStatus = (status) => {
6471
6851
  var StatusListRenderer_default = StatusListRenderer;
6472
6852
 
6473
6853
  // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
6474
- var import_classnames32 = __toESM(require_classnames());
6854
+ var import_classnames33 = __toESM(require_classnames());
6475
6855
 
6476
6856
  // ../renderers/src/utils/useCustomTheme.ts
6477
6857
  import { useTheme } from "@wise/components-theming";
@@ -6493,12 +6873,12 @@ var useCustomTheme = (theme, trackEvent) => {
6493
6873
 
6494
6874
  // ../renderers/src/step/StepHeader.tsx
6495
6875
  import { Title as Title2 } from "@transferwise/components";
6496
- import { Fragment as Fragment16, jsx as jsx92, jsxs as jsxs32 } from "react/jsx-runtime";
6876
+ import { Fragment as Fragment16, jsx as jsx97, jsxs as jsxs33 } from "react/jsx-runtime";
6497
6877
  var StepHeader = ({ title, description, tags }) => {
6498
6878
  const { titleType, alignmentClassName } = getHeaderStyle(tags);
6499
- return /* @__PURE__ */ jsxs32(Fragment16, { children: [
6500
- title ? /* @__PURE__ */ jsx92(Title2, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
6501
- description ? /* @__PURE__ */ jsx92("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
6879
+ return /* @__PURE__ */ jsxs33(Fragment16, { children: [
6880
+ title ? /* @__PURE__ */ jsx97(Title2, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
6881
+ description ? /* @__PURE__ */ jsx97("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
6502
6882
  ] });
6503
6883
  };
6504
6884
  var getHeaderStyle = (tags) => {
@@ -6509,9 +6889,9 @@ var getHeaderStyle = (tags) => {
6509
6889
  };
6510
6890
 
6511
6891
  // ../renderers/src/step/topbar/BackButton.tsx
6512
- import { IconButton as IconButton2 } from "@transferwise/components";
6892
+ import { IconButton as IconButton3 } from "@transferwise/components";
6513
6893
  import { ArrowLeft } from "@transferwise/icons";
6514
- import { useIntl as useIntl20 } from "react-intl";
6894
+ import { useIntl as useIntl22 } from "react-intl";
6515
6895
 
6516
6896
  // ../renderers/src/messages/back.messages.ts
6517
6897
  import { defineMessages as defineMessages14 } from "react-intl";
@@ -6524,31 +6904,31 @@ var back_messages_default = defineMessages14({
6524
6904
  });
6525
6905
 
6526
6906
  // ../renderers/src/step/topbar/BackButton.tsx
6527
- import { jsx as jsx93, jsxs as jsxs33 } from "react/jsx-runtime";
6907
+ import { jsx as jsx98, jsxs as jsxs34 } from "react/jsx-runtime";
6528
6908
  function BackButton({ title, onClick }) {
6529
- const { formatMessage } = useIntl20();
6530
- return /* @__PURE__ */ jsxs33(IconButton2, { className: "df-back-button", priority: "tertiary", onClick, children: [
6531
- /* @__PURE__ */ jsx93("span", { className: "sr-only", children: title != null ? title : formatMessage(back_messages_default.back) }),
6532
- /* @__PURE__ */ jsx93(ArrowLeft, {})
6909
+ const { formatMessage } = useIntl22();
6910
+ return /* @__PURE__ */ jsxs34(IconButton3, { className: "df-back-button", priority: "tertiary", onClick, children: [
6911
+ /* @__PURE__ */ jsx98("span", { className: "sr-only", children: title != null ? title : formatMessage(back_messages_default.back) }),
6912
+ /* @__PURE__ */ jsx98(ArrowLeft, {})
6533
6913
  ] });
6534
6914
  }
6535
6915
 
6536
6916
  // ../renderers/src/step/topbar/Toolbar.tsx
6537
- import { Button as Button9, IconButton as IconButton3 } from "@transferwise/components";
6538
- import { jsx as jsx94, jsxs as jsxs34 } from "react/jsx-runtime";
6917
+ import { Button as Button10, IconButton as IconButton4 } from "@transferwise/components";
6918
+ import { jsx as jsx99, jsxs as jsxs35 } from "react/jsx-runtime";
6539
6919
  var Toolbar = ({ items }) => {
6540
- return (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */ jsx94("div", { className: "df-toolbar", children: items.map((item, index) => /* @__PURE__ */ jsx94(ToolbarButton, __spreadValues({}, item), `${item.type}-${index}-${item.title}`)) }) : null;
6920
+ return (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */ jsx99("div", { className: "df-toolbar", children: items.map((item, index) => /* @__PURE__ */ jsx99(ToolbarButton, __spreadValues({}, item), `${item.type}-${index}-${item.title}`)) }) : null;
6541
6921
  };
6542
6922
  function ToolbarButton(props) {
6543
- return prefersMedia(props.control) ? /* @__PURE__ */ jsx94(MediaToolbarButton, __spreadValues({}, props)) : /* @__PURE__ */ jsx94(TextToolbarButton, __spreadValues({}, props));
6923
+ return prefersMedia(props.control) ? /* @__PURE__ */ jsx99(MediaToolbarButton, __spreadValues({}, props)) : /* @__PURE__ */ jsx99(TextToolbarButton, __spreadValues({}, props));
6544
6924
  }
6545
6925
  function MediaToolbarButton(props) {
6546
6926
  var _a;
6547
6927
  const { context, control, media, accessibilityDescription, disabled, onClick } = props;
6548
6928
  const priority = getIconButtonPriority(control);
6549
6929
  const type = getSentiment2(context);
6550
- return /* @__PURE__ */ jsxs34(
6551
- IconButton3,
6930
+ return /* @__PURE__ */ jsxs35(
6931
+ IconButton4,
6552
6932
  {
6553
6933
  className: "df-toolbar-button",
6554
6934
  disabled,
@@ -6557,7 +6937,7 @@ function MediaToolbarButton(props) {
6557
6937
  type,
6558
6938
  onClick,
6559
6939
  children: [
6560
- accessibilityDescription ? /* @__PURE__ */ jsx94("span", { className: "sr-only", children: accessibilityDescription }) : null,
6940
+ accessibilityDescription ? /* @__PURE__ */ jsx99("span", { className: "sr-only", children: accessibilityDescription }) : null,
6561
6941
  media ? (_a = getAddonStartMedia(media)) == null ? void 0 : _a.value : null
6562
6942
  ]
6563
6943
  }
@@ -6568,8 +6948,8 @@ function TextToolbarButton(props) {
6568
6948
  const addonStart = media ? getAddonStartMedia(media) : void 0;
6569
6949
  const priority = getPriority2(control);
6570
6950
  const sentiment = getSentiment2(context);
6571
- return /* @__PURE__ */ jsx94(
6572
- Button9,
6951
+ return /* @__PURE__ */ jsx99(
6952
+ Button10,
6573
6953
  {
6574
6954
  v2: true,
6575
6955
  size: "sm",
@@ -6598,18 +6978,18 @@ var getIconButtonPriority = (control) => {
6598
6978
  };
6599
6979
 
6600
6980
  // ../renderers/src/step/topbar/TopBar.tsx
6601
- import { jsx as jsx95, jsxs as jsxs35 } from "react/jsx-runtime";
6981
+ import { jsx as jsx100, jsxs as jsxs36 } from "react/jsx-runtime";
6602
6982
  function TopBar({ back, toolbar, tags }) {
6603
6983
  const isBackAllowed = !(tags == null ? void 0 : tags.includes("non-dismissible"));
6604
6984
  const backCTA = isBackAllowed ? back : void 0;
6605
- return backCTA || toolbar ? /* @__PURE__ */ jsxs35("div", { className: "d-flex m-b-2", children: [
6606
- backCTA ? /* @__PURE__ */ jsx95(BackButton, __spreadValues({}, backCTA)) : null,
6607
- toolbar ? /* @__PURE__ */ jsx95(Toolbar, __spreadValues({}, toolbar)) : null
6985
+ return backCTA || toolbar ? /* @__PURE__ */ jsxs36("div", { className: "d-flex m-b-2", children: [
6986
+ backCTA ? /* @__PURE__ */ jsx100(BackButton, __spreadValues({}, backCTA)) : null,
6987
+ toolbar ? /* @__PURE__ */ jsx100(Toolbar, __spreadValues({}, toolbar)) : null
6608
6988
  ] }) : null;
6609
6989
  }
6610
6990
 
6611
6991
  // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
6612
- import { jsx as jsx96, jsxs as jsxs36 } from "react/jsx-runtime";
6992
+ import { jsx as jsx101, jsxs as jsxs37 } from "react/jsx-runtime";
6613
6993
  var SplashCelebrationStepRenderer = {
6614
6994
  canRenderType: "step",
6615
6995
  canRender: ({ control }) => control === "splash-celebration",
@@ -6618,23 +6998,23 @@ var SplashCelebrationStepRenderer = {
6618
6998
  function SplashCelebrationStepRendererComponent(props) {
6619
6999
  const { back, title, description, toolbar, children, footer, control, tags, trackEvent } = props;
6620
7000
  useCustomTheme("forest-green", trackEvent);
6621
- return /* @__PURE__ */ jsxs36(
7001
+ return /* @__PURE__ */ jsxs37(
6622
7002
  "div",
6623
7003
  {
6624
- className: (0, import_classnames32.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
7004
+ className: (0, import_classnames33.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
6625
7005
  children: [
6626
- /* @__PURE__ */ jsx96(TopBar, { back, toolbar, tags }),
6627
- title || description ? /* @__PURE__ */ jsx96("div", { className: "m-b-4", children: /* @__PURE__ */ jsx96(StepHeader, { title, description, tags }) }) : void 0,
7006
+ /* @__PURE__ */ jsx101(TopBar, { back, toolbar, tags }),
7007
+ title || description ? /* @__PURE__ */ jsx101("div", { className: "m-b-4", children: /* @__PURE__ */ jsx101(StepHeader, { title, description, tags }) }) : void 0,
6628
7008
  children,
6629
- /* @__PURE__ */ jsx96(StepFooter, { footer, tags })
7009
+ /* @__PURE__ */ jsx101(StepFooter, { footer, tags })
6630
7010
  ]
6631
7011
  }
6632
7012
  );
6633
7013
  }
6634
7014
 
6635
7015
  // ../renderers/src/step/SplashStepRenderer.tsx
6636
- var import_classnames33 = __toESM(require_classnames());
6637
- import { jsx as jsx97, jsxs as jsxs37 } from "react/jsx-runtime";
7016
+ var import_classnames34 = __toESM(require_classnames());
7017
+ import { jsx as jsx102, jsxs as jsxs38 } from "react/jsx-runtime";
6638
7018
  var SplashStepRenderer = {
6639
7019
  canRenderType: "step",
6640
7020
  canRender: ({ control }) => control === "splash",
@@ -6642,15 +7022,15 @@ var SplashStepRenderer = {
6642
7022
  };
6643
7023
  function SplashStepRendererComponent(props) {
6644
7024
  const { back, title, description, toolbar, children, footer, control, tags } = props;
6645
- return /* @__PURE__ */ jsxs37(
7025
+ return /* @__PURE__ */ jsxs38(
6646
7026
  "div",
6647
7027
  {
6648
- className: (0, import_classnames33.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
7028
+ className: (0, import_classnames34.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
6649
7029
  children: [
6650
- /* @__PURE__ */ jsx97(TopBar, { back, toolbar, tags }),
6651
- title || description ? /* @__PURE__ */ jsx97("div", { className: "m-b-4", children: /* @__PURE__ */ jsx97(StepHeader, { title, description, tags }) }) : void 0,
7030
+ /* @__PURE__ */ jsx102(TopBar, { back, toolbar, tags }),
7031
+ title || description ? /* @__PURE__ */ jsx102("div", { className: "m-b-4", children: /* @__PURE__ */ jsx102(StepHeader, { title, description, tags }) }) : void 0,
6652
7032
  children,
6653
- /* @__PURE__ */ jsx97(StepFooter, { footer, tags })
7033
+ /* @__PURE__ */ jsx102(StepFooter, { footer, tags })
6654
7034
  ]
6655
7035
  }
6656
7036
  );
@@ -6658,46 +7038,46 @@ function SplashStepRendererComponent(props) {
6658
7038
 
6659
7039
  // ../renderers/src/step/StepRenderer.tsx
6660
7040
  import { Alert } from "@transferwise/components";
6661
- import { jsx as jsx98, jsxs as jsxs38 } from "react/jsx-runtime";
7041
+ import { jsx as jsx103, jsxs as jsxs39 } from "react/jsx-runtime";
6662
7042
  var StepRenderer = {
6663
7043
  canRenderType: "step",
6664
7044
  render: StepRendererComponent
6665
7045
  };
6666
7046
  function StepRendererComponent(props) {
6667
7047
  const { back, description, error, title, children, toolbar, footer, control, tags } = props;
6668
- return /* @__PURE__ */ jsxs38("div", { className: controlAndTagsToCSSClass({ control, tags }), children: [
6669
- /* @__PURE__ */ jsx98(TopBar, { back, toolbar, tags }),
6670
- title || description ? /* @__PURE__ */ jsx98("div", { className: "m-b-4", children: /* @__PURE__ */ jsx98(StepHeader, { title, description, tags }) }) : void 0,
6671
- error ? /* @__PURE__ */ jsx98(Alert, { type: "negative", className: "m-b-2", message: error }) : null,
7048
+ return /* @__PURE__ */ jsxs39("div", { className: controlAndTagsToCSSClass({ control, tags }), children: [
7049
+ /* @__PURE__ */ jsx103(TopBar, { back, toolbar, tags }),
7050
+ title || description ? /* @__PURE__ */ jsx103("div", { className: "m-b-4", children: /* @__PURE__ */ jsx103(StepHeader, { title, description, tags }) }) : void 0,
7051
+ error ? /* @__PURE__ */ jsx103(Alert, { type: "negative", className: "m-b-2", message: error }) : null,
6672
7052
  children,
6673
- /* @__PURE__ */ jsx98(StepFooter, { footer, tags })
7053
+ /* @__PURE__ */ jsx103(StepFooter, { footer, tags })
6674
7054
  ] });
6675
7055
  }
6676
7056
 
6677
7057
  // ../renderers/src/TabsRenderer.tsx
6678
- var import_classnames34 = __toESM(require_classnames());
6679
- import { Chips as Chips2, SegmentedControl as SegmentedControl2, Tabs as Tabs2 } from "@transferwise/components";
6680
- import { useState as useState19 } from "react";
6681
- import { jsx as jsx99, jsxs as jsxs39 } from "react/jsx-runtime";
7058
+ var import_classnames35 = __toESM(require_classnames());
7059
+ import { Chips as Chips3, SegmentedControl as SegmentedControl2, Tabs as Tabs2 } from "@transferwise/components";
7060
+ import { useState as useState20 } from "react";
7061
+ import { jsx as jsx104, jsxs as jsxs40 } from "react/jsx-runtime";
6682
7062
  var TabsRenderer = {
6683
7063
  canRenderType: "tabs",
6684
7064
  render: (props) => {
6685
7065
  switch (props.control) {
6686
7066
  case "segmented":
6687
7067
  if (props.tabs.length > 3) {
6688
- return /* @__PURE__ */ jsx99(TabsRendererComponent, __spreadValues({}, props));
7068
+ return /* @__PURE__ */ jsx104(TabsRendererComponent, __spreadValues({}, props));
6689
7069
  }
6690
- return /* @__PURE__ */ jsx99(SegmentedTabsRendererComponent, __spreadValues({}, props));
7070
+ return /* @__PURE__ */ jsx104(SegmentedTabsRendererComponent, __spreadValues({}, props));
6691
7071
  case "chips":
6692
- return /* @__PURE__ */ jsx99(ChipsTabsRendererComponent, __spreadValues({}, props));
7072
+ return /* @__PURE__ */ jsx104(ChipsTabsRendererComponent, __spreadValues({}, props));
6693
7073
  default:
6694
- return /* @__PURE__ */ jsx99(TabsRendererComponent, __spreadValues({}, props));
7074
+ return /* @__PURE__ */ jsx104(TabsRendererComponent, __spreadValues({}, props));
6695
7075
  }
6696
7076
  }
6697
7077
  };
6698
7078
  function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
6699
- const [selectedIndex, setSelectedIndex] = useState19(0);
6700
- return /* @__PURE__ */ jsx99("div", { className: (0, import_classnames34.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: /* @__PURE__ */ jsx99(
7079
+ const [selectedIndex, setSelectedIndex] = useState20(0);
7080
+ return /* @__PURE__ */ jsx104("div", { className: (0, import_classnames35.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: /* @__PURE__ */ jsx104(
6701
7081
  Tabs2,
6702
7082
  {
6703
7083
  name: uid,
@@ -6705,7 +7085,7 @@ function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
6705
7085
  tabs: tabs.map((option) => ({
6706
7086
  title: option.title,
6707
7087
  disabled: false,
6708
- content: /* @__PURE__ */ jsxs39("div", { className: "m-t-2", children: [
7088
+ content: /* @__PURE__ */ jsxs40("div", { className: "m-t-2", children: [
6709
7089
  " ",
6710
7090
  option.children,
6711
7091
  " "
@@ -6717,9 +7097,9 @@ function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
6717
7097
  }
6718
7098
  function SegmentedTabsRendererComponent({ uid, margin, tabs, control, tags }) {
6719
7099
  var _a;
6720
- const [selectedIndex, setSelectedIndex] = useState19(0);
6721
- return /* @__PURE__ */ jsxs39("div", { className: (0, import_classnames34.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6722
- /* @__PURE__ */ jsx99(
7100
+ const [selectedIndex, setSelectedIndex] = useState20(0);
7101
+ return /* @__PURE__ */ jsxs40("div", { className: (0, import_classnames35.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
7102
+ /* @__PURE__ */ jsx104(
6723
7103
  SegmentedControl2,
6724
7104
  {
6725
7105
  name: uid,
@@ -6734,41 +7114,41 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs, control, tags }) {
6734
7114
  onChange: (value) => setSelectedIndex(Number(value))
6735
7115
  }
6736
7116
  ),
6737
- /* @__PURE__ */ jsx99("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
7117
+ /* @__PURE__ */ jsx104("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
6738
7118
  ] });
6739
7119
  }
6740
7120
  function ChipsTabsRendererComponent({ margin, tabs, control, tags }) {
6741
7121
  var _a;
6742
- const [selectedIndex, setSelectedIndex] = useState19(0);
6743
- return /* @__PURE__ */ jsxs39("div", { className: (0, import_classnames34.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6744
- /* @__PURE__ */ jsx99("div", { className: "chips-container", children: /* @__PURE__ */ jsx99(
6745
- Chips2,
7122
+ const [selectedIndex, setSelectedIndex] = useState20(0);
7123
+ return /* @__PURE__ */ jsxs40("div", { className: (0, import_classnames35.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
7124
+ /* @__PURE__ */ jsx104("div", { className: "chips-container", children: /* @__PURE__ */ jsx104(
7125
+ Chips3,
6746
7126
  {
6747
7127
  chips: tabs.map((tab, index) => ({ label: tab.title, value: index })),
6748
7128
  selected: selectedIndex,
6749
7129
  onChange: ({ selectedValue }) => setSelectedIndex(Number(selectedValue))
6750
7130
  }
6751
7131
  ) }),
6752
- /* @__PURE__ */ jsx99("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
7132
+ /* @__PURE__ */ jsx104("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
6753
7133
  ] });
6754
7134
  }
6755
7135
 
6756
7136
  // ../renderers/src/TextInputRenderer.tsx
6757
- import { InputGroup as InputGroup5 } from "@transferwise/components";
6758
- import { useState as useState21 } from "react";
7137
+ import { InputGroup as InputGroup6 } from "@transferwise/components";
7138
+ import { useState as useState22 } from "react";
6759
7139
 
6760
7140
  // ../renderers/src/components/VariableTextInput.tsx
6761
7141
  import {
6762
- IconButton as IconButton4,
6763
- Input as Input6,
7142
+ IconButton as IconButton5,
7143
+ Input as Input7,
6764
7144
  InputWithDisplayFormat,
6765
7145
  PhoneNumberInput,
6766
7146
  TextArea,
6767
7147
  TextareaWithDisplayFormat
6768
7148
  } from "@transferwise/components";
6769
7149
  import { Eye, EyeShut } from "@transferwise/icons";
6770
- import { useIntl as useIntl21 } from "react-intl";
6771
- import { useLayoutEffect as useLayoutEffect3, useRef as useRef5, useState as useState20 } from "react";
7150
+ import { useIntl as useIntl23 } from "react-intl";
7151
+ import { useLayoutEffect as useLayoutEffect3, useRef as useRef6, useState as useState21 } from "react";
6772
7152
 
6773
7153
  // ../renderers/src/messages/ssn-input.messages.ts
6774
7154
  import { defineMessages as defineMessages15 } from "react-intl";
@@ -6857,7 +7237,7 @@ function getDisplayOffset(displayValue, rawOffset) {
6857
7237
  }
6858
7238
 
6859
7239
  // ../renderers/src/components/VariableTextInput.tsx
6860
- import { jsx as jsx100 } from "react/jsx-runtime";
7240
+ import { jsx as jsx105 } from "react/jsx-runtime";
6861
7241
  var commonKeys = [
6862
7242
  "autoComplete",
6863
7243
  "autoCapitalize",
@@ -6876,14 +7256,14 @@ function VariableTextInput(inputProps) {
6876
7256
  const commonProps = __spreadProps(__spreadValues({}, pick(inputProps, ...commonKeys)), { name: id });
6877
7257
  switch (control) {
6878
7258
  case "email":
6879
- return /* @__PURE__ */ jsx100(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
7259
+ return /* @__PURE__ */ jsx105(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
6880
7260
  case "password":
6881
- return /* @__PURE__ */ jsx100(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
7261
+ return /* @__PURE__ */ jsx105(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
6882
7262
  case "ssn-input":
6883
- return /* @__PURE__ */ jsx100(SsnInput, __spreadProps(__spreadValues({}, commonProps), { isVisible: isSsnVisible, onChange }));
7263
+ return /* @__PURE__ */ jsx105(SsnInput, __spreadProps(__spreadValues({}, commonProps), { isVisible: isSsnVisible, onChange }));
6884
7264
  case "numeric": {
6885
7265
  const numericProps = __spreadProps(__spreadValues({}, commonProps), { type: "number", onWheel });
6886
- return /* @__PURE__ */ jsx100(
7266
+ return /* @__PURE__ */ jsx105(
6887
7267
  TextInput,
6888
7268
  __spreadProps(__spreadValues({}, numericProps), {
6889
7269
  onChange: (newValue) => {
@@ -6894,9 +7274,9 @@ function VariableTextInput(inputProps) {
6894
7274
  );
6895
7275
  }
6896
7276
  case "phone-number":
6897
- return /* @__PURE__ */ jsx100(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
7277
+ return /* @__PURE__ */ jsx105(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
6898
7278
  default: {
6899
- return /* @__PURE__ */ jsx100(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
7279
+ return /* @__PURE__ */ jsx105(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
6900
7280
  }
6901
7281
  }
6902
7282
  }
@@ -6904,31 +7284,31 @@ function SsnInputToggle({
6904
7284
  isVisible,
6905
7285
  onClick
6906
7286
  }) {
6907
- const { formatMessage } = useIntl21();
6908
- return /* @__PURE__ */ jsx100(
6909
- IconButton4,
7287
+ const { formatMessage } = useIntl23();
7288
+ return /* @__PURE__ */ jsx105(
7289
+ IconButton5,
6910
7290
  {
6911
7291
  priority: "minimal",
6912
7292
  size: 24,
6913
7293
  "aria-label": formatMessage(isVisible ? ssn_input_messages_default.hideValue : ssn_input_messages_default.showValue),
6914
7294
  "aria-pressed": isVisible,
6915
7295
  onClick,
6916
- children: isVisible ? /* @__PURE__ */ jsx100(EyeShut, { size: 24 }) : /* @__PURE__ */ jsx100(Eye, { size: 24 })
7296
+ children: isVisible ? /* @__PURE__ */ jsx105(EyeShut, { size: 24 }) : /* @__PURE__ */ jsx105(Eye, { size: 24 })
6917
7297
  }
6918
7298
  );
6919
7299
  }
6920
7300
  function TextInput(props) {
6921
7301
  const _a = props, { control, displayFormat, onChange, type } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange", "type"]);
6922
7302
  const InputWithPattern = control === "textarea" ? TextareaWithDisplayFormat : InputWithDisplayFormat;
6923
- const InputWithoutPattern = control === "textarea" ? TextArea : Input6;
6924
- return displayFormat ? /* @__PURE__ */ jsx100(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx100(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { type, onChange: (e) => onChange(e.target.value) }));
7303
+ const InputWithoutPattern = control === "textarea" ? TextArea : Input7;
7304
+ return displayFormat ? /* @__PURE__ */ jsx105(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx105(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { type, onChange: (e) => onChange(e.target.value) }));
6925
7305
  }
6926
7306
  function SsnInput(props) {
6927
7307
  const _a = props, { displayFormat = "", isVisible = false, onChange, value = "" } = _a, commonProps = __objRest(_a, ["displayFormat", "isVisible", "onChange", "value"]);
6928
- const [editVersion, setEditVersion] = useState20(0);
6929
- const inputRef = useRef5(null);
6930
- const selection = useRef5({ start: 0, end: 0 });
6931
- const pendingCaret = useRef5(null);
7308
+ const [editVersion, setEditVersion] = useState21(0);
7309
+ const inputRef = useRef6(null);
7310
+ const selection = useRef6({ start: 0, end: 0 });
7311
+ const pendingCaret = useRef6(null);
6932
7312
  const rawValue = value.replace(/\D/g, "");
6933
7313
  const formattedValue = formatSsnValue(rawValue, displayFormat, isVisible);
6934
7314
  const scheduleCaret = (rawOffset) => {
@@ -6958,7 +7338,7 @@ function SsnInput(props) {
6958
7338
  );
6959
7339
  pendingCaret.current = null;
6960
7340
  }, [editVersion, formattedValue, rawValue]);
6961
- return /* @__PURE__ */ jsx100(
7341
+ return /* @__PURE__ */ jsx105(
6962
7342
  "input",
6963
7343
  __spreadProps(__spreadValues({
6964
7344
  ref: inputRef
@@ -7021,13 +7401,13 @@ function SsnInput(props) {
7021
7401
  }
7022
7402
 
7023
7403
  // ../renderers/src/TextInputRenderer.tsx
7024
- import { jsx as jsx101 } from "react/jsx-runtime";
7404
+ import { jsx as jsx106 } from "react/jsx-runtime";
7025
7405
  var TextInputRenderer = {
7026
7406
  canRenderType: "input-text",
7027
- render: (props) => /* @__PURE__ */ jsx101(TextInputRendererComponent, __spreadValues({}, props))
7407
+ render: (props) => /* @__PURE__ */ jsx106(TextInputRendererComponent, __spreadValues({}, props))
7028
7408
  };
7029
7409
  function TextInputRendererComponent(props) {
7030
- const [isSsnVisible, setIsSsnVisible] = useState21(false);
7410
+ const [isSsnVisible, setIsSsnVisible] = useState22(false);
7031
7411
  const _a = props, {
7032
7412
  id,
7033
7413
  title,
@@ -7059,7 +7439,7 @@ function TextInputRendererComponent(props) {
7059
7439
  }
7060
7440
  }
7061
7441
  });
7062
- return /* @__PURE__ */ jsx101(
7442
+ return /* @__PURE__ */ jsx106(
7063
7443
  FieldInput_default,
7064
7444
  {
7065
7445
  id,
@@ -7072,13 +7452,13 @@ function TextInputRendererComponent(props) {
7072
7452
  features: props.features,
7073
7453
  control: props.control,
7074
7454
  tags: props.tags,
7075
- children: /* @__PURE__ */ jsx101(
7076
- InputGroup5,
7455
+ children: /* @__PURE__ */ jsx106(
7456
+ InputGroup6,
7077
7457
  {
7078
7458
  addonStart: getInputGroupAddonStart(media),
7079
7459
  addonEnd: isSsnInput ? {
7080
7460
  interactive: true,
7081
- content: /* @__PURE__ */ jsx101(
7461
+ content: /* @__PURE__ */ jsx106(
7082
7462
  SsnInputToggle,
7083
7463
  {
7084
7464
  isVisible: isSsnVisible,
@@ -7086,7 +7466,7 @@ function TextInputRendererComponent(props) {
7086
7466
  }
7087
7467
  )
7088
7468
  } : void 0,
7089
- children: /* @__PURE__ */ jsx101(VariableTextInput, __spreadValues({}, inputProps))
7469
+ children: /* @__PURE__ */ jsx106(VariableTextInput, __spreadValues({}, inputProps))
7090
7470
  }
7091
7471
  )
7092
7472
  }
@@ -7095,12 +7475,12 @@ function TextInputRendererComponent(props) {
7095
7475
  var TextInputRenderer_default = TextInputRenderer;
7096
7476
 
7097
7477
  // ../renderers/src/UpdatableRenderer.tsx
7098
- var import_classnames35 = __toESM(require_classnames());
7099
- import { jsx as jsx102 } from "react/jsx-runtime";
7478
+ var import_classnames36 = __toESM(require_classnames());
7479
+ import { jsx as jsx107 } from "react/jsx-runtime";
7100
7480
  var UpdatableRenderer = {
7101
7481
  canRenderType: "updatable",
7102
7482
  render: ({ children, control, margin, tags }) => {
7103
- return /* @__PURE__ */ jsx102("div", { className: (0, import_classnames35.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children });
7483
+ return /* @__PURE__ */ jsx107("div", { className: (0, import_classnames36.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children });
7104
7484
  }
7105
7485
  };
7106
7486
 
@@ -7111,7 +7491,7 @@ import { Status as Status2, Upload, UploadInput as UploadInput2 } from "@transfe
7111
7491
  var getRandomId = () => Math.random().toString(36).substring(2);
7112
7492
 
7113
7493
  // ../renderers/src/UploadInputRenderer.tsx
7114
- import { jsx as jsx103 } from "react/jsx-runtime";
7494
+ import { jsx as jsx108 } from "react/jsx-runtime";
7115
7495
  var UploadInputRenderer = {
7116
7496
  canRenderType: "input-upload",
7117
7497
  render: (props) => {
@@ -7140,7 +7520,7 @@ var UploadInputRenderer = {
7140
7520
  };
7141
7521
  return (
7142
7522
  // We don't pass help here as there is no sensible place to display it
7143
- /* @__PURE__ */ jsx103(
7523
+ /* @__PURE__ */ jsx108(
7144
7524
  UploadFieldInput_default,
7145
7525
  {
7146
7526
  id,
@@ -7150,7 +7530,7 @@ var UploadInputRenderer = {
7150
7530
  features,
7151
7531
  control,
7152
7532
  tags,
7153
- children: /* @__PURE__ */ jsx103(
7533
+ children: /* @__PURE__ */ jsx108(
7154
7534
  UploadInput2,
7155
7535
  {
7156
7536
  id,
@@ -7220,7 +7600,7 @@ var LargeUploadRenderer = {
7220
7600
  };
7221
7601
  const filetypes = acceptsToFileTypes(accepts);
7222
7602
  const usAccept = filetypes === "*" ? "*" : filetypes.join(",");
7223
- return /* @__PURE__ */ jsx103(
7603
+ return /* @__PURE__ */ jsx108(
7224
7604
  FieldInput_default,
7225
7605
  {
7226
7606
  id,
@@ -7231,7 +7611,7 @@ var LargeUploadRenderer = {
7231
7611
  features,
7232
7612
  control,
7233
7613
  tags,
7234
- children: /* @__PURE__ */ jsx103(
7614
+ children: /* @__PURE__ */ jsx108(
7235
7615
  Upload,
7236
7616
  __spreadProps(__spreadValues({}, uploadProps), {
7237
7617
  usAccept,
@@ -7247,21 +7627,21 @@ var LargeUploadRenderer = {
7247
7627
  };
7248
7628
 
7249
7629
  // ../renderers/src/UpsellRenderer.tsx
7250
- var import_classnames36 = __toESM(require_classnames());
7630
+ var import_classnames37 = __toESM(require_classnames());
7251
7631
  import { Nudge } from "@transferwise/components";
7252
- import { useState as useState22 } from "react";
7253
- import { jsx as jsx104 } from "react/jsx-runtime";
7632
+ import { useState as useState23 } from "react";
7633
+ import { jsx as jsx109 } from "react/jsx-runtime";
7254
7634
  var UpsellRenderer = {
7255
7635
  canRenderType: "upsell",
7256
7636
  render: UpsellRendererComponent
7257
7637
  };
7258
7638
  function UpsellRendererComponent(props) {
7259
7639
  const { text, callToAction, media, margin, onDismiss, control, tags } = props;
7260
- const [isVisible, setIsVisible] = useState22(true);
7261
- return isVisible ? /* @__PURE__ */ jsx104(
7640
+ const [isVisible, setIsVisible] = useState23(true);
7641
+ return isVisible ? /* @__PURE__ */ jsx109(
7262
7642
  Nudge,
7263
7643
  {
7264
- className: (0, import_classnames36.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
7644
+ className: (0, import_classnames37.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
7265
7645
  mediaName: getMediaName(media),
7266
7646
  title: text,
7267
7647
  action: __spreadValues({
@@ -7312,7 +7692,8 @@ var getWiseRenderers = () => [
7312
7692
  CircularButtonRenderer,
7313
7693
  BorderedBackgroundColoredBoxRenderer,
7314
7694
  BoxRenderer_default,
7315
- CollectionRenderer_default,
7695
+ CollectionRendererV2_default,
7696
+ CollectionRendererV1_default,
7316
7697
  ButtonRenderer,
7317
7698
  ColumnsRenderer_default,
7318
7699
  DateInputRenderer_default,
@@ -7359,11 +7740,11 @@ var getWiseRenderers = () => [
7359
7740
 
7360
7741
  // ../renderers/src/InitialLoadingStateRenderer.tsx
7361
7742
  import { Loader as Loader2 } from "@transferwise/components";
7362
- import { jsx as jsx105 } from "react/jsx-runtime";
7743
+ import { jsx as jsx110 } from "react/jsx-runtime";
7363
7744
  var InitialLoadingStateRenderer = {
7364
7745
  canRenderType: "loading-state",
7365
7746
  canRender: ({ stepLoadingState }) => stepLoadingState === "initial",
7366
- render: () => /* @__PURE__ */ jsx105(
7747
+ render: () => /* @__PURE__ */ jsx110(
7367
7748
  Loader2,
7368
7749
  {
7369
7750
  size: "md",
@@ -7376,24 +7757,24 @@ var InitialLoadingStateRenderer = {
7376
7757
  // src/dynamicFlow/DynamicFlowModal.tsx
7377
7758
  import { useDynamicFlowModal } from "@wise/dynamic-flow-client";
7378
7759
  import { Modal as Modal5 } from "@transferwise/components";
7379
- import { jsx as jsx106 } from "react/jsx-runtime";
7760
+ import { jsx as jsx111 } from "react/jsx-runtime";
7380
7761
  function DynamicFlowModal(props) {
7381
7762
  const _a = props, { className = "" } = _a, rest = __objRest(_a, ["className"]);
7382
7763
  const dfProps = useWiseToCoreProps(rest);
7383
7764
  const df = useDynamicFlowModal(dfProps);
7384
- return /* @__PURE__ */ jsx106(
7765
+ return /* @__PURE__ */ jsx111(
7385
7766
  Modal5,
7386
7767
  __spreadProps(__spreadValues({
7387
7768
  className: `dynamic-flow-modal ${className}`,
7388
7769
  disableDimmerClickToClose: true
7389
7770
  }, df.modal), {
7390
- body: /* @__PURE__ */ jsx106("div", { className: "dynamic-flow-modal", children: df.modal.body })
7771
+ body: /* @__PURE__ */ jsx111("div", { className: "dynamic-flow-modal", children: df.modal.body })
7391
7772
  })
7392
7773
  );
7393
7774
  }
7394
7775
 
7395
7776
  // src/dynamicFlow/getMergedRenderers.tsx
7396
- import { jsx as jsx107 } from "react/jsx-runtime";
7777
+ import { jsx as jsx112 } from "react/jsx-runtime";
7397
7778
  var wiseRenderers = getWiseRenderers();
7398
7779
  var getMergedRenderers = (props) => {
7399
7780
  var _d, _e;
@@ -7407,7 +7788,7 @@ var getMergedRenderers = (props) => {
7407
7788
  method: initialRequest.method,
7408
7789
  data: initialRequest.body
7409
7790
  };
7410
- return presentation.type === "push" ? /* @__PURE__ */ jsx107(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ jsx107(
7791
+ return presentation.type === "push" ? /* @__PURE__ */ jsx112(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ jsx112(
7411
7792
  DynamicFlowModal,
7412
7793
  __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), {
7413
7794
  features: subflowFeatures,
@@ -7487,7 +7868,7 @@ var customEventsToAnalytics = {
7487
7868
 
7488
7869
  // src/dynamicFlow/useOnCopy.tsx
7489
7870
  import { useCallback as useCallback2 } from "react";
7490
- import { useIntl as useIntl22 } from "react-intl";
7871
+ import { useIntl as useIntl24 } from "react-intl";
7491
7872
 
7492
7873
  // src/dynamicFlow/messages.ts
7493
7874
  import { defineMessages as defineMessages16 } from "react-intl";
@@ -7506,7 +7887,7 @@ var messages_default = defineMessages16({
7506
7887
 
7507
7888
  // src/dynamicFlow/useOnCopy.tsx
7508
7889
  var useOnCopy = () => {
7509
- const { formatMessage } = useIntl22();
7890
+ const { formatMessage } = useIntl24();
7510
7891
  const createSnackBar = useSnackBarIfAvailable();
7511
7892
  return useCallback2(
7512
7893
  (copiedContent) => {
@@ -7522,9 +7903,9 @@ var useOnCopy = () => {
7522
7903
 
7523
7904
  // src/dynamicFlow/useWiseHttpClient.tsx
7524
7905
  import { useCallback as useCallback3 } from "react";
7525
- import { useIntl as useIntl23 } from "react-intl";
7906
+ import { useIntl as useIntl25 } from "react-intl";
7526
7907
  var useWiseHttpClient = (httpClient) => {
7527
- const { locale } = useIntl23();
7908
+ const { locale } = useIntl25();
7528
7909
  return useCallback3(
7529
7910
  async (input, init = {}) => {
7530
7911
  const headers = new Headers(init.headers);
@@ -7604,13 +7985,13 @@ var openLinkInNewTab = (url) => {
7604
7985
  };
7605
7986
 
7606
7987
  // src/dynamicFlow/DynamicFlow.tsx
7607
- import { jsxs as jsxs40 } from "react/jsx-runtime";
7988
+ import { jsxs as jsxs41 } from "react/jsx-runtime";
7608
7989
  function DynamicFlow(props) {
7609
7990
  const { className = "" } = props;
7610
7991
  const dfProps = useWiseToCoreProps(props);
7611
7992
  const df = useDynamicFlow(dfProps);
7612
7993
  const { onContextMenu, contextMenu } = useDFContextMenu(df.controller);
7613
- return /* @__PURE__ */ jsxs40("div", { className, onContextMenu, children: [
7994
+ return /* @__PURE__ */ jsxs41("div", { className, onContextMenu, children: [
7614
7995
  df.view,
7615
7996
  contextMenu
7616
7997
  ] });
@@ -7622,7 +8003,7 @@ import {
7622
8003
  useImperativeHandle
7623
8004
  } from "react";
7624
8005
  import { useDynamicFlow as useDynamicFlow2 } from "@wise/dynamic-flow-client";
7625
- import { jsx as jsx108 } from "react/jsx-runtime";
8006
+ import { jsx as jsx113 } from "react/jsx-runtime";
7626
8007
  var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
7627
8008
  const { className = "" } = props;
7628
8009
  const dfProps = useWiseToCoreProps(props);
@@ -7638,7 +8019,7 @@ var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
7638
8019
  }),
7639
8020
  [df]
7640
8021
  );
7641
- return /* @__PURE__ */ jsx108("div", { className, children: df.view });
8022
+ return /* @__PURE__ */ jsx113("div", { className, children: df.view });
7642
8023
  });
7643
8024
 
7644
8025
  // src/index.ts
@@ -7700,8 +8081,8 @@ var cs_default = {
7700
8081
  "df.wise.group.currencies-with-account-details": "M\u011Bny s detaily \xFA\u010Dtu",
7701
8082
  "df.wise.group.popular": "Popul\xE1rn\xED",
7702
8083
  "df.wise.group.recent": "Ned\xE1vn\xE9",
7703
- "df.wise.ssnInput.hideValue": "Hide value",
7704
- "df.wise.ssnInput.showValue": "Show value",
8084
+ "df.wise.ssnInput.hideValue": "Skr\xFDt hodnotu",
8085
+ "df.wise.ssnInput.showValue": "Zobrazit hodnotu",
7705
8086
  "df.wise.step.scrollToBottom": "P\u0159ej\xEDt na konec"
7706
8087
  };
7707
8088
 
@@ -7768,6 +8149,8 @@ var en_default = {
7768
8149
  "df.wise.ButtonLayout.buttonLoadingMessage": "This might take a few seconds",
7769
8150
  "df.wise.Collection.clearText": "Clear text",
7770
8151
  "df.wise.Collection.loadMoreMessage": "Load more",
8152
+ "df.wise.Collection.showLessResultsButton": "Show less results",
8153
+ "df.wise.Collection.showMoreResultsButton": "Show all {count} results",
7771
8154
  "df.wise.ControlFeedback.maxLength": "Please enter {maxLength} or fewer characters.",
7772
8155
  "df.wise.ControlFeedback.maximum": "Please enter a number that's {maximum} or less.",
7773
8156
  "df.wise.ControlFeedback.maximumDate": "Please enter a date that's on or before {maximum}.",
@@ -7960,8 +8343,8 @@ var hu_default = {
7960
8343
  "df.wise.group.currencies-with-account-details": "P\xE9nznemek sz\xE1mlaadatokkal",
7961
8344
  "df.wise.group.popular": "N\xE9pszer\u0171",
7962
8345
  "df.wise.group.recent": "Legut\xF3bbi",
7963
- "df.wise.ssnInput.hideValue": "Hide value",
7964
- "df.wise.ssnInput.showValue": "Show value",
8346
+ "df.wise.ssnInput.hideValue": "\xC9rt\xE9k elrejt\xE9se",
8347
+ "df.wise.ssnInput.showValue": "\xC9rt\xE9k megjelen\xEDt\xE9se",
7965
8348
  "df.wise.step.scrollToBottom": "G\xF6rgess legalulra"
7966
8349
  };
7967
8350
 
@@ -8064,8 +8447,8 @@ var it_default = {
8064
8447
  "df.wise.group.currencies-with-account-details": "Valute con estremi del conto",
8065
8448
  "df.wise.group.popular": "Popolari",
8066
8449
  "df.wise.group.recent": "Recenti",
8067
- "df.wise.ssnInput.hideValue": "Hide value",
8068
- "df.wise.ssnInput.showValue": "Show value",
8450
+ "df.wise.ssnInput.hideValue": "Nascondi valore",
8451
+ "df.wise.ssnInput.showValue": "Mostra valore",
8069
8452
  "df.wise.step.scrollToBottom": "Scorri fino in fondo"
8070
8453
  };
8071
8454
 
@@ -8116,8 +8499,8 @@ var ja_default = {
8116
8499
  "df.wise.group.currencies-with-account-details": "\u53E3\u5EA7\u60C5\u5831\u3092\u53D6\u5F97\u3067\u304D\u308B\u901A\u8CA8",
8117
8500
  "df.wise.group.popular": "\u4EBA\u6C17",
8118
8501
  "df.wise.group.recent": "\u6700\u8FD1",
8119
- "df.wise.ssnInput.hideValue": "Hide value",
8120
- "df.wise.ssnInput.showValue": "Show value",
8502
+ "df.wise.ssnInput.hideValue": "\u756A\u53F7\u3092\u975E\u8868\u793A",
8503
+ "df.wise.ssnInput.showValue": "\u756A\u53F7\u3092\u8868\u793A",
8121
8504
  "df.wise.step.scrollToBottom": "\u4E0B\u307E\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B"
8122
8505
  };
8123
8506
 
@@ -8168,8 +8551,8 @@ var nl_default = {
8168
8551
  "df.wise.group.currencies-with-account-details": "Valuta's met rekeninggegevens",
8169
8552
  "df.wise.group.popular": "Populair",
8170
8553
  "df.wise.group.recent": "Recent",
8171
- "df.wise.ssnInput.hideValue": "Hide value",
8172
- "df.wise.ssnInput.showValue": "Show value",
8554
+ "df.wise.ssnInput.hideValue": "Waarde verbergen",
8555
+ "df.wise.ssnInput.showValue": "Waarde weergeven",
8173
8556
  "df.wise.step.scrollToBottom": "Scrol omlaag"
8174
8557
  };
8175
8558
 
@@ -8220,8 +8603,8 @@ var pl_default = {
8220
8603
  "df.wise.group.currencies-with-account-details": "Waluty z danymi bankowymi",
8221
8604
  "df.wise.group.popular": "Popularne",
8222
8605
  "df.wise.group.recent": "Ostatnie",
8223
- "df.wise.ssnInput.hideValue": "Hide value",
8224
- "df.wise.ssnInput.showValue": "Show value",
8606
+ "df.wise.ssnInput.hideValue": "Ukryj warto\u015B\u0107",
8607
+ "df.wise.ssnInput.showValue": "Poka\u017C warto\u015B\u0107",
8225
8608
  "df.wise.step.scrollToBottom": "Przewi\u0144 w d\xF3\u0142"
8226
8609
  };
8227
8610
 
@@ -8272,8 +8655,8 @@ var pt_default = {
8272
8655
  "df.wise.group.currencies-with-account-details": "Moedas com dados de conta",
8273
8656
  "df.wise.group.popular": "Popular",
8274
8657
  "df.wise.group.recent": "Recente",
8275
- "df.wise.ssnInput.hideValue": "Hide value",
8276
- "df.wise.ssnInput.showValue": "Show value",
8658
+ "df.wise.ssnInput.hideValue": "Ocultar valor",
8659
+ "df.wise.ssnInput.showValue": "Exibir valor",
8277
8660
  "df.wise.step.scrollToBottom": "Descer at\xE9 o final da p\xE1gina"
8278
8661
  };
8279
8662
 
@@ -8324,8 +8707,8 @@ var ro_default = {
8324
8707
  "df.wise.group.currencies-with-account-details": "Monede cu detalii de cont",
8325
8708
  "df.wise.group.popular": "Populare",
8326
8709
  "df.wise.group.recent": "Recente",
8327
- "df.wise.ssnInput.hideValue": "Hide value",
8328
- "df.wise.ssnInput.showValue": "Show value",
8710
+ "df.wise.ssnInput.hideValue": "Ascunde valoarea",
8711
+ "df.wise.ssnInput.showValue": "Arat\u0103 valoarea",
8329
8712
  "df.wise.step.scrollToBottom": "Deruleaz\u0103 \xEEn jos"
8330
8713
  };
8331
8714
 
@@ -8376,8 +8759,8 @@ var ru_default = {
8376
8759
  "df.wise.group.currencies-with-account-details": "\u0412\u0430\u043B\u044E\u0442\u044B \u0441 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430\u043C\u0438 \u0441\u0447\u0435\u0442\u0430",
8377
8760
  "df.wise.group.popular": "\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u0435",
8378
8761
  "df.wise.group.recent": "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435",
8379
- "df.wise.ssnInput.hideValue": "Hide value",
8380
- "df.wise.ssnInput.showValue": "Show value",
8762
+ "df.wise.ssnInput.hideValue": "\u0421\u043A\u0440\u044B\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",
8763
+ "df.wise.ssnInput.showValue": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435",
8381
8764
  "df.wise.step.scrollToBottom": "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0432\u043D\u0438\u0437"
8382
8765
  };
8383
8766
 
@@ -8584,8 +8967,8 @@ var zh_HK_default = {
8584
8967
  "df.wise.group.currencies-with-account-details": "\u63D0\u4F9B\u5E33\u6236\u8CC7\u6599\u7684\u8CA8\u5E63",
8585
8968
  "df.wise.group.popular": "\u71B1\u9580",
8586
8969
  "df.wise.group.recent": "\u6700\u8FD1\u7684",
8587
- "df.wise.ssnInput.hideValue": "Hide value",
8588
- "df.wise.ssnInput.showValue": "Show value",
8970
+ "df.wise.ssnInput.hideValue": "\u96B1\u85CF\u503C",
8971
+ "df.wise.ssnInput.showValue": "\u986F\u793A\u503C",
8589
8972
  "df.wise.step.scrollToBottom": "\u6ED1\u52D5\u5230\u6700\u5E95\u90E8"
8590
8973
  };
8591
8974