@wise/dynamic-flow-client-internal 5.10.0 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/main.js CHANGED
@@ -125,7 +125,7 @@ var index_exports = {};
125
125
  __export(index_exports, {
126
126
  DynamicFlow: () => DynamicFlow,
127
127
  DynamicFlowWithRef: () => DynamicFlowWithRef,
128
- Header: () => Header11,
128
+ Header: () => Header10,
129
129
  Media: () => Media2,
130
130
  findRendererPropsByType: () => import_dynamic_flow_client7.findRendererPropsByType,
131
131
  getMargin: () => getMargin2,
@@ -139,12 +139,12 @@ var import_dynamic_flow_client6 = require("@wise/dynamic-flow-client");
139
139
  var import_dynamic_flow_client3 = require("@wise/dynamic-flow-client");
140
140
 
141
141
  // src/dynamicFlow/useWiseToCoreProps.tsx
142
- var import_react22 = require("react");
142
+ var import_react23 = require("react");
143
143
 
144
144
  // src/dynamicFlow/telemetry/app-version.ts
145
145
  var appVersion = (
146
146
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
147
- typeof process !== "undefined" ? "5.10.0" : "0.0.0"
147
+ typeof process !== "undefined" ? "5.11.0" : "0.0.0"
148
148
  );
149
149
 
150
150
  // src/dynamicFlow/telemetry/getLogEvent.ts
@@ -1371,26 +1371,18 @@ var ExternalConfirmationRenderer = {
1371
1371
  };
1372
1372
  function ExternalConfirmationRendererComponent({
1373
1373
  url,
1374
- status,
1375
- onSuccess,
1376
- onFailure,
1374
+ visible,
1375
+ open,
1377
1376
  onCancel
1378
1377
  }) {
1379
1378
  const { formatMessage } = (0, import_react_intl10.useIntl)();
1380
1379
  (0, import_react4.useEffect)(() => {
1381
- if (url && status === "initial") {
1382
- const w = window.open(url, "_blank");
1383
- if (w) {
1384
- onSuccess();
1385
- } else {
1386
- onFailure();
1387
- }
1388
- }
1380
+ open();
1389
1381
  }, []);
1390
1382
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1391
1383
  import_components18.Modal,
1392
1384
  {
1393
- open: status === "failure",
1385
+ open: visible,
1394
1386
  title: formatMessage(external_confirmation_messages_default.title),
1395
1387
  body: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
1396
1388
  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components18.Markdown, { config: { link: { target: "_blank" } }, className: "text-xs-center m-b-5", children: formatMessage(external_confirmation_messages_default.description, { origin: getOrigin(url) }) }),
@@ -1404,8 +1396,7 @@ function ExternalConfirmationRendererComponent({
1404
1396
  priority: "primary",
1405
1397
  size: "md",
1406
1398
  onClick: () => {
1407
- window.open(url);
1408
- onCancel();
1399
+ open();
1409
1400
  },
1410
1401
  children: formatMessage(external_confirmation_messages_default.open)
1411
1402
  }
@@ -3549,64 +3540,122 @@ function TopBar({ back, toolbar }) {
3549
3540
  ] }) : null;
3550
3541
  }
3551
3542
 
3552
- // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
3543
+ // ../renderers/src/step/StepFooter.tsx
3544
+ var import_components55 = require("@transferwise/components");
3545
+ var import_react18 = require("react");
3546
+ var import_react_intl27 = require("react-intl");
3547
+
3548
+ // ../renderers/src/messages/step.messages.ts
3549
+ var import_react_intl26 = require("react-intl");
3550
+ var step_messages_default = (0, import_react_intl26.defineMessages)({
3551
+ scrollToBottom: {
3552
+ id: "df.wise.step.scrollToBottom",
3553
+ defaultMessage: "Scroll to bottom",
3554
+ description: "Label for a button that appears when the content of a step is too long and the user needs to scroll to the bottom to see all the content."
3555
+ }
3556
+ });
3557
+
3558
+ // ../renderers/src/step/StepFooter.tsx
3553
3559
  var import_jsx_runtime78 = require("react/jsx-runtime");
3560
+ var SCROLL_TO_BOTTOM = "scroll-to-bottom";
3561
+ var StepFooter = ({ footer, tags }) => {
3562
+ if (tags == null ? void 0 : tags.includes(SCROLL_TO_BOTTOM)) {
3563
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(FooterWithScrollButton, { footer });
3564
+ }
3565
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(DefaultFooter, { footer });
3566
+ };
3567
+ var DefaultFooter = ({ footer }) => {
3568
+ const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3569
+ return hasFooter ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
3570
+ };
3571
+ var FooterWithScrollButton = ({ footer }) => {
3572
+ const { formatMessage } = (0, import_react_intl27.useIntl)();
3573
+ const endOfLayoutRef = (0, import_react18.useRef)(null);
3574
+ const isElementVisible = useIsElementVisible(endOfLayoutRef);
3575
+ const scrollButton = /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
3576
+ import_components55.Button,
3577
+ {
3578
+ className: "m-b-1",
3579
+ v2: true,
3580
+ block: true,
3581
+ priority: "tertiary",
3582
+ onClick: () => {
3583
+ var _a;
3584
+ (_a = endOfLayoutRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
3585
+ },
3586
+ children: formatMessage(step_messages_default.scrollToBottom)
3587
+ }
3588
+ );
3589
+ const hasStepFooterContent = footer && Array.isArray(footer) && footer.length > 0;
3590
+ if (isElementVisible && !hasStepFooterContent) {
3591
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { ref: endOfLayoutRef, "aria-hidden": "true" });
3592
+ }
3593
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_jsx_runtime78.Fragment, { children: [
3594
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { ref: endOfLayoutRef, "aria-hidden": "true" }),
3595
+ /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "df-step-fixed__footer", children: [
3596
+ !isElementVisible && scrollButton,
3597
+ footer
3598
+ ] })
3599
+ ] });
3600
+ };
3601
+ var useIsElementVisible = (elementRef) => {
3602
+ const [isVisible, setIsVisible] = (0, import_react18.useState)(false);
3603
+ (0, import_react18.useEffect)(() => {
3604
+ const element = elementRef.current;
3605
+ if (!element) return;
3606
+ const observer = new IntersectionObserver(([entry]) => {
3607
+ setIsVisible(entry.isIntersecting);
3608
+ });
3609
+ observer.observe(element);
3610
+ return () => observer.disconnect();
3611
+ }, [elementRef]);
3612
+ return isVisible;
3613
+ };
3614
+
3615
+ // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
3616
+ var import_jsx_runtime79 = require("react/jsx-runtime");
3554
3617
  var SplashCelebrationStepRenderer = {
3555
3618
  canRenderType: "step",
3556
3619
  canRender: ({ control }) => control === "splash-celebration",
3557
3620
  render: SplashCelebrationStepRendererComponent
3558
3621
  };
3559
3622
  function SplashCelebrationStepRendererComponent(props) {
3560
- const { back, toolbar, children, footer, trackEvent } = props;
3561
- const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3623
+ const { back, toolbar, children, footer, tags, trackEvent } = props;
3562
3624
  useCustomTheme("forest-green", trackEvent);
3563
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: "splash-screen m-t-5", children: [
3564
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(TopBar, { back, toolbar }),
3625
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "splash-screen m-t-5", children: [
3626
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TopBar, { back, toolbar }),
3565
3627
  children,
3566
- hasFooter ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "df-step-fixed__footer", children: footer }) : void 0
3628
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(StepFooter, { footer, tags })
3567
3629
  ] });
3568
3630
  }
3569
3631
 
3570
3632
  // ../renderers/src/step/SplashStepRenderer.tsx
3571
- var import_jsx_runtime79 = require("react/jsx-runtime");
3633
+ var import_jsx_runtime80 = require("react/jsx-runtime");
3572
3634
  var SplashStepRenderer = {
3573
3635
  canRenderType: "step",
3574
3636
  canRender: ({ control }) => control === "splash",
3575
3637
  render: SplashStepRendererComponent
3576
3638
  };
3577
3639
  function SplashStepRendererComponent(props) {
3578
- const { back, toolbar, children, footer } = props;
3579
- const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3580
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "splash-screen m-t-5", children: [
3581
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(TopBar, { back, toolbar }),
3640
+ const { back, toolbar, children, footer, tags } = props;
3641
+ return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "splash-screen m-t-5", children: [
3642
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TopBar, { back, toolbar }),
3582
3643
  children,
3583
- hasFooter ? /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "df-step-fixed__footer", children: footer }) : void 0
3644
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(StepFooter, { footer, tags })
3584
3645
  ] });
3585
3646
  }
3586
3647
 
3587
3648
  // ../renderers/src/step/StepRenderer.tsx
3588
- var import_components55 = require("@transferwise/components");
3589
- var import_jsx_runtime80 = require("react/jsx-runtime");
3590
- var StepRenderer = {
3591
- canRenderType: "step",
3592
- render: StepRendererComponent
3593
- };
3594
- function StepRendererComponent(props) {
3595
- const { back, description, error, title, children, toolbar, footer, tags } = props;
3596
- const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3597
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { children: [
3598
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TopBar, { back, toolbar }),
3599
- title || description ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Header10, { title, description, tags }) }) : void 0,
3600
- error ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_components55.Alert, { type: "negative", className: "m-b-2", message: error }) : null,
3601
- children,
3602
- hasFooter ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "df-step-fixed__footer", children: footer }) : void 0
3603
- ] });
3604
- }
3605
- var Header10 = ({ title, description, tags }) => {
3649
+ var import_components57 = require("@transferwise/components");
3650
+
3651
+ // ../renderers/src/step/StepHeader.tsx
3652
+ var import_components56 = require("@transferwise/components");
3653
+ var import_jsx_runtime81 = require("react/jsx-runtime");
3654
+ var StepHeader = ({ title, description, tags }) => {
3606
3655
  const { titleType, alignmentClassName } = getHeaderStyle(tags);
3607
- return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_jsx_runtime80.Fragment, { children: [
3608
- title ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_components55.Title, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
3609
- description ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
3656
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_jsx_runtime81.Fragment, { children: [
3657
+ title ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_components56.Title, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
3658
+ description ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
3610
3659
  ] });
3611
3660
  };
3612
3661
  var getHeaderStyle = (tags) => {
@@ -3616,37 +3665,54 @@ var getHeaderStyle = (tags) => {
3616
3665
  return { titleType: "title-section", alignmentClassName: "text-xs-center" };
3617
3666
  };
3618
3667
 
3668
+ // ../renderers/src/step/StepRenderer.tsx
3669
+ var import_jsx_runtime82 = require("react/jsx-runtime");
3670
+ var StepRenderer = {
3671
+ canRenderType: "step",
3672
+ render: StepRendererComponent
3673
+ };
3674
+ function StepRendererComponent(props) {
3675
+ const { back, description, error, title, children, toolbar, footer, tags } = props;
3676
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { children: [
3677
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TopBar, { back, toolbar }),
3678
+ title || description ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(StepHeader, { title, description, tags }) }) : void 0,
3679
+ error ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_components57.Alert, { type: "negative", className: "m-b-2", message: error }) : null,
3680
+ children,
3681
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(StepFooter, { footer, tags })
3682
+ ] });
3683
+ }
3684
+
3619
3685
  // ../renderers/src/TabsRenderer.tsx
3620
- var import_components56 = require("@transferwise/components");
3621
- var import_react18 = require("react");
3622
- var import_jsx_runtime81 = require("react/jsx-runtime");
3686
+ var import_components58 = require("@transferwise/components");
3687
+ var import_react19 = require("react");
3688
+ var import_jsx_runtime83 = require("react/jsx-runtime");
3623
3689
  var TabsRenderer = {
3624
3690
  canRenderType: "tabs",
3625
3691
  render: (props) => {
3626
3692
  switch (props.control) {
3627
3693
  case "segmented":
3628
3694
  if (props.tabs.length > 3) {
3629
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TabsRendererComponent, __spreadValues({}, props));
3695
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(TabsRendererComponent, __spreadValues({}, props));
3630
3696
  }
3631
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(SegmentedTabsRendererComponent, __spreadValues({}, props));
3697
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(SegmentedTabsRendererComponent, __spreadValues({}, props));
3632
3698
  case "chips":
3633
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(ChipsTabsRendererComponent, __spreadValues({}, props));
3699
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(ChipsTabsRendererComponent, __spreadValues({}, props));
3634
3700
  default:
3635
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(TabsRendererComponent, __spreadValues({}, props));
3701
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(TabsRendererComponent, __spreadValues({}, props));
3636
3702
  }
3637
3703
  }
3638
3704
  };
3639
3705
  function TabsRendererComponent({ uid, margin, tabs }) {
3640
- const [selectedIndex, setSelectedIndex] = (0, import_react18.useState)(0);
3641
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: getMargin(margin), children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
3642
- import_components56.Tabs,
3706
+ const [selectedIndex, setSelectedIndex] = (0, import_react19.useState)(0);
3707
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: getMargin(margin), children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
3708
+ import_components58.Tabs,
3643
3709
  {
3644
3710
  name: uid,
3645
3711
  selected: selectedIndex != null ? selectedIndex : 0,
3646
3712
  tabs: tabs.map((option) => ({
3647
3713
  title: option.title,
3648
3714
  disabled: false,
3649
- content: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "m-t-2", children: [
3715
+ content: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: "m-t-2", children: [
3650
3716
  " ",
3651
3717
  option.children,
3652
3718
  " "
@@ -3658,10 +3724,10 @@ function TabsRendererComponent({ uid, margin, tabs }) {
3658
3724
  }
3659
3725
  function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
3660
3726
  var _a;
3661
- const [selectedIndex, setSelectedIndex] = (0, import_react18.useState)(0);
3662
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: getMargin(margin), children: [
3663
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
3664
- import_components56.SegmentedControl,
3727
+ const [selectedIndex, setSelectedIndex] = (0, import_react19.useState)(0);
3728
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: getMargin(margin), children: [
3729
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
3730
+ import_components58.SegmentedControl,
3665
3731
  {
3666
3732
  name: uid,
3667
3733
  value: String(selectedIndex),
@@ -3675,31 +3741,31 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
3675
3741
  onChange: (value) => setSelectedIndex(Number(value))
3676
3742
  }
3677
3743
  ),
3678
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3744
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3679
3745
  ] });
3680
3746
  }
3681
3747
  function ChipsTabsRendererComponent({ margin, tabs }) {
3682
3748
  var _a;
3683
- const [selectedIndex, setSelectedIndex] = (0, import_react18.useState)(0);
3684
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: getMargin(margin), children: [
3685
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "chips-container", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
3686
- import_components56.Chips,
3749
+ const [selectedIndex, setSelectedIndex] = (0, import_react19.useState)(0);
3750
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: getMargin(margin), children: [
3751
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "chips-container", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
3752
+ import_components58.Chips,
3687
3753
  {
3688
3754
  chips: tabs.map((tab, index) => ({ label: tab.title, value: index })),
3689
3755
  selected: selectedIndex,
3690
3756
  onChange: ({ selectedValue }) => setSelectedIndex(Number(selectedValue))
3691
3757
  }
3692
3758
  ) }),
3693
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3759
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3694
3760
  ] });
3695
3761
  }
3696
3762
 
3697
3763
  // ../renderers/src/TextInputRenderer.tsx
3698
- var import_components58 = require("@transferwise/components");
3764
+ var import_components60 = require("@transferwise/components");
3699
3765
 
3700
3766
  // ../renderers/src/components/VariableTextInput.tsx
3701
- var import_components57 = require("@transferwise/components");
3702
- var import_jsx_runtime82 = require("react/jsx-runtime");
3767
+ var import_components59 = require("@transferwise/components");
3768
+ var import_jsx_runtime84 = require("react/jsx-runtime");
3703
3769
  var commonKeys = [
3704
3770
  "autoComplete",
3705
3771
  "autoCapitalize",
@@ -3718,12 +3784,12 @@ function VariableTextInput(inputProps) {
3718
3784
  const commonProps = __spreadProps(__spreadValues({}, pick(inputProps, ...commonKeys)), { name: id });
3719
3785
  switch (control) {
3720
3786
  case "email":
3721
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
3787
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
3722
3788
  case "password":
3723
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
3789
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
3724
3790
  case "numeric": {
3725
3791
  const numericProps = __spreadProps(__spreadValues({}, commonProps), { type: "number", onWheel });
3726
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
3792
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
3727
3793
  TextInput,
3728
3794
  __spreadProps(__spreadValues({}, numericProps), {
3729
3795
  onChange: (newValue) => {
@@ -3734,21 +3800,21 @@ function VariableTextInput(inputProps) {
3734
3800
  );
3735
3801
  }
3736
3802
  case "phone-number":
3737
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_components57.PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
3803
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_components59.PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
3738
3804
  default: {
3739
- return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
3805
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
3740
3806
  }
3741
3807
  }
3742
3808
  }
3743
3809
  function TextInput(props) {
3744
3810
  const _a = props, { control, displayFormat, onChange } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange"]);
3745
- const InputWithPattern = control === "textarea" ? import_components57.TextareaWithDisplayFormat : import_components57.InputWithDisplayFormat;
3746
- const InputWithoutPattern = control === "textarea" ? import_components57.TextArea : import_components57.Input;
3747
- return displayFormat ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
3811
+ const InputWithPattern = control === "textarea" ? import_components59.TextareaWithDisplayFormat : import_components59.InputWithDisplayFormat;
3812
+ const InputWithoutPattern = control === "textarea" ? import_components59.TextArea : import_components59.Input;
3813
+ return displayFormat ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
3748
3814
  }
3749
3815
 
3750
3816
  // ../renderers/src/TextInputRenderer.tsx
3751
- var import_jsx_runtime83 = require("react/jsx-runtime");
3817
+ var import_jsx_runtime85 = require("react/jsx-runtime");
3752
3818
  var TextInputRenderer = {
3753
3819
  canRenderType: "input-text",
3754
3820
  render: (props) => {
@@ -3781,7 +3847,7 @@ var TextInputRenderer = {
3781
3847
  }
3782
3848
  }
3783
3849
  });
3784
- return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
3850
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
3785
3851
  FieldInput_default,
3786
3852
  {
3787
3853
  id,
@@ -3789,7 +3855,7 @@ var TextInputRenderer = {
3789
3855
  description,
3790
3856
  validation: validationState,
3791
3857
  help,
3792
- children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_components58.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(VariableTextInput, __spreadValues({}, inputProps)) })
3858
+ children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_components60.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(VariableTextInput, __spreadValues({}, inputProps)) })
3793
3859
  }
3794
3860
  );
3795
3861
  }
@@ -3797,13 +3863,13 @@ var TextInputRenderer = {
3797
3863
  var TextInputRenderer_default = TextInputRenderer;
3798
3864
 
3799
3865
  // ../renderers/src/UploadInputRenderer.tsx
3800
- var import_components59 = require("@transferwise/components");
3866
+ var import_components61 = require("@transferwise/components");
3801
3867
 
3802
3868
  // ../renderers/src/utils/getRandomId.ts
3803
3869
  var getRandomId = () => Math.random().toString(36).substring(2);
3804
3870
 
3805
3871
  // ../renderers/src/UploadInputRenderer.tsx
3806
- var import_jsx_runtime84 = require("react/jsx-runtime");
3872
+ var import_jsx_runtime86 = require("react/jsx-runtime");
3807
3873
  var UploadInputRenderer = {
3808
3874
  canRenderType: "input-upload",
3809
3875
  render: (props) => {
@@ -3819,15 +3885,15 @@ var UploadInputRenderer = {
3819
3885
  };
3820
3886
  return (
3821
3887
  // We don't pass help here as there is no sensible place to display it
3822
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
3888
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
3823
3889
  UploadFieldInput_default,
3824
3890
  {
3825
3891
  id,
3826
3892
  label: void 0,
3827
3893
  description: void 0,
3828
3894
  validation: validationState,
3829
- children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
3830
- import_components59.UploadInput,
3895
+ children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
3896
+ import_components61.UploadInput,
3831
3897
  {
3832
3898
  id,
3833
3899
  description,
@@ -3837,7 +3903,7 @@ var UploadInputRenderer = {
3837
3903
  {
3838
3904
  id: "my-file",
3839
3905
  filename: value.name,
3840
- status: (validationState == null ? void 0 : validationState.status) === "invalid" ? import_components59.Status.FAILED : import_components59.Status.SUCCEEDED
3906
+ status: (validationState == null ? void 0 : validationState.status) === "invalid" ? import_components61.Status.FAILED : import_components61.Status.SUCCEEDED
3841
3907
  }
3842
3908
  ] : void 0,
3843
3909
  fileTypes: acceptsToFileTypes(accepts),
@@ -3892,7 +3958,7 @@ var LargeUploadRenderer = {
3892
3958
  };
3893
3959
  const filetypes = acceptsToFileTypes(accepts);
3894
3960
  const usAccept = filetypes === "*" ? "*" : filetypes.join(",");
3895
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
3961
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
3896
3962
  FieldInput_default,
3897
3963
  {
3898
3964
  id,
@@ -3900,8 +3966,8 @@ var LargeUploadRenderer = {
3900
3966
  description,
3901
3967
  validation: validationState,
3902
3968
  help,
3903
- children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
3904
- import_components59.Upload,
3969
+ children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
3970
+ import_components61.Upload,
3905
3971
  __spreadProps(__spreadValues({}, uploadProps), {
3906
3972
  usAccept,
3907
3973
  usDisabled: disabled,
@@ -3916,18 +3982,18 @@ var LargeUploadRenderer = {
3916
3982
  };
3917
3983
 
3918
3984
  // ../renderers/src/UpsellRenderer.tsx
3919
- var import_components60 = require("@transferwise/components");
3920
- var import_react19 = require("react");
3921
- var import_jsx_runtime85 = require("react/jsx-runtime");
3985
+ var import_components62 = require("@transferwise/components");
3986
+ var import_react20 = require("react");
3987
+ var import_jsx_runtime87 = require("react/jsx-runtime");
3922
3988
  var UpsellRenderer = {
3923
3989
  canRenderType: "upsell",
3924
3990
  render: UpsellRendererComponent
3925
3991
  };
3926
3992
  function UpsellRendererComponent(props) {
3927
3993
  const { text, callToAction, media, margin, onDismiss } = props;
3928
- const [isVisible, setIsVisible] = (0, import_react19.useState)(true);
3929
- return isVisible ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
3930
- import_components60.Nudge,
3994
+ const [isVisible, setIsVisible] = (0, import_react20.useState)(true);
3995
+ return isVisible ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
3996
+ import_components62.Nudge,
3931
3997
  {
3932
3998
  className: getMargin(margin),
3933
3999
  mediaName: getMediaName(media),
@@ -3975,11 +4041,38 @@ var supportedMediaNames = [
3975
4041
  "wallet"
3976
4042
  ];
3977
4043
 
4044
+ // ../renderers/src/ButtonRenderer/CircularButtonRenderer.tsx
4045
+ var import_components63 = require("@transferwise/components");
4046
+ var import_classnames7 = __toESM(require_classnames());
4047
+ var import_jsx_runtime88 = require("react/jsx-runtime");
4048
+ var CircularButtonRenderer = {
4049
+ canRenderType: "button",
4050
+ canRender: ({ control }) => control === "circular",
4051
+ render: CircularButtonComponent
4052
+ };
4053
+ function CircularButtonComponent(props) {
4054
+ var _a;
4055
+ const { context, disabled, margin, media, tags, title, onClick } = props;
4056
+ const priority = tags == null ? void 0 : tags.find((tag) => tag === "primary" || tag === "secondary");
4057
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: (0, import_classnames7.default)(getMargin(margin), "df-button", "circular"), children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
4058
+ import_components63.CircularButton,
4059
+ {
4060
+ disabled,
4061
+ priority: priority != null ? priority : "secondary",
4062
+ type: context === "negative" ? "negative" : "default",
4063
+ icon: media ? (_a = getAddonStartMedia(media)) == null ? void 0 : _a.value : void 0,
4064
+ onClick,
4065
+ children: title
4066
+ }
4067
+ ) });
4068
+ }
4069
+
3978
4070
  // ../renderers/src/getWiseRenderers.ts
3979
4071
  var getWiseRenderers = () => [
3980
4072
  AddressValidationButtonRenderer_default,
3981
4073
  AlertRenderer_default,
3982
4074
  CheckboxInputRenderer_default,
4075
+ CircularButtonRenderer,
3983
4076
  BoxRenderer_default,
3984
4077
  ButtonRenderer,
3985
4078
  ColumnsRenderer_default,
@@ -4024,13 +4117,13 @@ var getWiseRenderers = () => [
4024
4117
  ];
4025
4118
 
4026
4119
  // ../renderers/src/InitialLoadingStateRenderer.tsx
4027
- var import_components61 = require("@transferwise/components");
4028
- var import_jsx_runtime86 = require("react/jsx-runtime");
4120
+ var import_components64 = require("@transferwise/components");
4121
+ var import_jsx_runtime89 = require("react/jsx-runtime");
4029
4122
  var InitialLoadingStateRenderer = {
4030
4123
  canRenderType: "loading-state",
4031
4124
  canRender: ({ stepLoadingState }) => stepLoadingState === "initial",
4032
- render: () => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
4033
- import_components61.Loader,
4125
+ render: () => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
4126
+ import_components64.Loader,
4034
4127
  {
4035
4128
  size: "md",
4036
4129
  classNames: { "tw-loader": `tw-loader m-x-auto ${getMargin("md")}` },
@@ -4040,7 +4133,7 @@ var InitialLoadingStateRenderer = {
4040
4133
  };
4041
4134
 
4042
4135
  // ../renderers/src/subflow/getSubflowRenderer.tsx
4043
- var import_jsx_runtime87 = require("react/jsx-runtime");
4136
+ var import_jsx_runtime90 = require("react/jsx-runtime");
4044
4137
  var getSubflowRenderer = ({
4045
4138
  Component: Component2,
4046
4139
  canRender
@@ -4049,7 +4142,7 @@ var getSubflowRenderer = ({
4049
4142
  canRenderType: "subflow",
4050
4143
  canRender,
4051
4144
  render: (props) => {
4052
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
4145
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
4053
4146
  Component2,
4054
4147
  {
4055
4148
  presentation: props.presentation,
@@ -4066,12 +4159,12 @@ var getSubflowRenderer = ({
4066
4159
  };
4067
4160
 
4068
4161
  // src/dynamicFlow/useOnCopy.tsx
4069
- var import_react20 = require("react");
4070
- var import_react_intl27 = require("react-intl");
4162
+ var import_react21 = require("react");
4163
+ var import_react_intl29 = require("react-intl");
4071
4164
 
4072
4165
  // src/dynamicFlow/messages.ts
4073
- var import_react_intl26 = require("react-intl");
4074
- var messages_default = (0, import_react_intl26.defineMessages)({
4166
+ var import_react_intl28 = require("react-intl");
4167
+ var messages_default = (0, import_react_intl28.defineMessages)({
4075
4168
  copied: {
4076
4169
  id: "df.wise.CopyFeedback.copy",
4077
4170
  defaultMessage: "Copied to clipboard",
@@ -4086,9 +4179,9 @@ var messages_default = (0, import_react_intl26.defineMessages)({
4086
4179
 
4087
4180
  // src/dynamicFlow/useOnCopy.tsx
4088
4181
  var useOnCopy = () => {
4089
- const { formatMessage } = (0, import_react_intl27.useIntl)();
4182
+ const { formatMessage } = (0, import_react_intl29.useIntl)();
4090
4183
  const createSnackBar = useSnackBarIfAvailable();
4091
- return (0, import_react20.useCallback)(
4184
+ return (0, import_react21.useCallback)(
4092
4185
  (copiedContent) => {
4093
4186
  if (copiedContent) {
4094
4187
  createSnackBar({ text: formatMessage(messages_default.copied) });
@@ -4101,11 +4194,11 @@ var useOnCopy = () => {
4101
4194
  };
4102
4195
 
4103
4196
  // src/dynamicFlow/useWiseHttpClient.tsx
4104
- var import_react21 = require("react");
4105
- var import_react_intl28 = require("react-intl");
4197
+ var import_react22 = require("react");
4198
+ var import_react_intl30 = require("react-intl");
4106
4199
  var useWiseHttpClient = (httpClient) => {
4107
- const { locale } = (0, import_react_intl28.useIntl)();
4108
- return (0, import_react21.useCallback)(
4200
+ const { locale } = (0, import_react_intl30.useIntl)();
4201
+ return (0, import_react22.useCallback)(
4109
4202
  async (input, init = {}) => {
4110
4203
  const headers = new Headers(init.headers);
4111
4204
  headers.set("accept-language", locale);
@@ -4128,25 +4221,25 @@ var handleRejection = (error) => {
4128
4221
 
4129
4222
  // src/dynamicFlow/DynamicFlowModal.tsx
4130
4223
  var import_dynamic_flow_client2 = require("@wise/dynamic-flow-client");
4131
- var import_components62 = require("@transferwise/components");
4132
- var import_jsx_runtime88 = require("react/jsx-runtime");
4224
+ var import_components65 = require("@transferwise/components");
4225
+ var import_jsx_runtime91 = require("react/jsx-runtime");
4133
4226
  function DynamicFlowModal(props) {
4134
4227
  const _a = props, { className = "" } = _a, rest = __objRest(_a, ["className"]);
4135
4228
  const dfProps = useWiseToCoreProps(rest);
4136
4229
  const df = (0, import_dynamic_flow_client2.useDynamicFlowModal)(dfProps);
4137
- return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
4138
- import_components62.Modal,
4230
+ return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
4231
+ import_components65.Modal,
4139
4232
  __spreadProps(__spreadValues({
4140
4233
  className: `dynamic-flow-modal ${className}`,
4141
4234
  disableDimmerClickToClose: true
4142
4235
  }, df.modal), {
4143
- body: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "dynamic-flow-modal", children: df.modal.body })
4236
+ body: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: "dynamic-flow-modal", children: df.modal.body })
4144
4237
  })
4145
4238
  );
4146
4239
  }
4147
4240
 
4148
4241
  // src/dynamicFlow/getMergedRenderers.tsx
4149
- var import_jsx_runtime89 = require("react/jsx-runtime");
4242
+ var import_jsx_runtime92 = require("react/jsx-runtime");
4150
4243
  var wiseRenderers = getWiseRenderers();
4151
4244
  var getMergedRenderers = (props) => {
4152
4245
  var _d, _e;
@@ -4160,7 +4253,7 @@ var getMergedRenderers = (props) => {
4160
4253
  method: initialRequest.method,
4161
4254
  data: initialRequest.body
4162
4255
  };
4163
- return presentation.type === "push" ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
4256
+ return presentation.type === "push" ? /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
4164
4257
  DynamicFlowModal,
4165
4258
  __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), {
4166
4259
  features: subflowFeatures,
@@ -4186,9 +4279,9 @@ var useWiseToCoreProps = (props) => {
4186
4279
  onLog
4187
4280
  } = props;
4188
4281
  const httpClient = useWiseHttpClient(customFetch);
4189
- const mergedRenderers = (0, import_react22.useMemo)(() => getMergedRenderers(props), [renderers]);
4190
- const logEvent = (0, import_react22.useMemo)(() => getLogEvent(onLog), [onLog]);
4191
- const trackEvent = (0, import_react22.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
4282
+ const mergedRenderers = (0, import_react23.useMemo)(() => getMergedRenderers(props), [renderers]);
4283
+ const logEvent = (0, import_react23.useMemo)(() => getLogEvent(onLog), [onLog]);
4284
+ const trackEvent = (0, import_react23.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
4192
4285
  const onCopy = useOnCopy();
4193
4286
  return __spreadProps(__spreadValues({}, props), {
4194
4287
  httpClient,
@@ -4201,9 +4294,17 @@ var useWiseToCoreProps = (props) => {
4201
4294
  });
4202
4295
  };
4203
4296
  var openLinkInNewTab = (url) => {
4204
- var _a;
4297
+ if (typeof window === "undefined" || typeof window.open !== "function") {
4298
+ return false;
4299
+ }
4205
4300
  try {
4206
- const w = (_a = window == null ? void 0 : window.open) == null ? void 0 : _a.call(window, url, "_blank");
4301
+ const w = window.open(url, "_blank");
4302
+ if (w) {
4303
+ try {
4304
+ w.opener = null;
4305
+ } catch (e) {
4306
+ }
4307
+ }
4207
4308
  return Boolean(w);
4208
4309
  } catch (e) {
4209
4310
  return false;
@@ -4211,23 +4312,23 @@ var openLinkInNewTab = (url) => {
4211
4312
  };
4212
4313
 
4213
4314
  // src/dynamicFlow/DynamicFlow.tsx
4214
- var import_jsx_runtime90 = require("react/jsx-runtime");
4315
+ var import_jsx_runtime93 = require("react/jsx-runtime");
4215
4316
  function DynamicFlow(props) {
4216
4317
  const { className = "" } = props;
4217
4318
  const dfProps = useWiseToCoreProps(props);
4218
4319
  const df = (0, import_dynamic_flow_client3.useDynamicFlow)(dfProps);
4219
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className, children: df.view });
4320
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className, children: df.view });
4220
4321
  }
4221
4322
 
4222
4323
  // src/dynamicFlow/DynamicFlowWithRef.tsx
4223
- var import_react23 = require("react");
4324
+ var import_react24 = require("react");
4224
4325
  var import_dynamic_flow_client4 = require("@wise/dynamic-flow-client");
4225
- var import_jsx_runtime91 = require("react/jsx-runtime");
4226
- var DynamicFlowWithRef = (0, import_react23.forwardRef)(function DynamicFlowWithRef2(props, ref) {
4326
+ var import_jsx_runtime94 = require("react/jsx-runtime");
4327
+ var DynamicFlowWithRef = (0, import_react24.forwardRef)(function DynamicFlowWithRef2(props, ref) {
4227
4328
  const { className = "" } = props;
4228
4329
  const dfProps = useWiseToCoreProps(props);
4229
4330
  const df = (0, import_dynamic_flow_client4.useDynamicFlow)(dfProps);
4230
- (0, import_react23.useImperativeHandle)(
4331
+ (0, import_react24.useImperativeHandle)(
4231
4332
  ref,
4232
4333
  () => ({
4233
4334
  getValue: async () => {
@@ -4238,14 +4339,14 @@ var DynamicFlowWithRef = (0, import_react23.forwardRef)(function DynamicFlowWith
4238
4339
  }),
4239
4340
  [df]
4240
4341
  );
4241
- return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className, children: df.view });
4342
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className, children: df.view });
4242
4343
  });
4243
4344
 
4244
4345
  // src/index.ts
4245
4346
  var import_dynamic_flow_client7 = require("@wise/dynamic-flow-client");
4246
4347
 
4247
4348
  // src/dynamicFlow/renderers.tsx
4248
- var Header11 = Header5;
4349
+ var Header10 = Header5;
4249
4350
  var Media2 = Media;
4250
4351
  var getMargin2 = getMargin;
4251
4352
 
@@ -4295,7 +4396,8 @@ var cs_default = {
4295
4396
  "df.wise.group.all": "V\u0161e",
4296
4397
  "df.wise.group.currencies-with-account-details": "M\u011Bny s detaily \xFA\u010Dtu",
4297
4398
  "df.wise.group.popular": "Popul\xE1rn\xED",
4298
- "df.wise.group.recent": "Ned\xE1vn\xE9"
4399
+ "df.wise.group.recent": "Ned\xE1vn\xE9",
4400
+ "df.wise.step.scrollToBottom": "P\u0159ej\xEDt na konec"
4299
4401
  };
4300
4402
 
4301
4403
  // src/i18n/de.json
@@ -4341,7 +4443,8 @@ var de_default = {
4341
4443
  "df.wise.group.all": "Alle",
4342
4444
  "df.wise.group.currencies-with-account-details": "Guthaben mit Bankverbindung",
4343
4445
  "df.wise.group.popular": "Beliebt",
4344
- "df.wise.group.recent": "Neu"
4446
+ "df.wise.group.recent": "Neu",
4447
+ "df.wise.step.scrollToBottom": "Nach unten scrollen"
4345
4448
  };
4346
4449
 
4347
4450
  // src/i18n/en.json
@@ -4387,7 +4490,8 @@ var en_default = {
4387
4490
  "df.wise.group.all": "All",
4388
4491
  "df.wise.group.currencies-with-account-details": "Currencies with account details",
4389
4492
  "df.wise.group.popular": "Popular",
4390
- "df.wise.group.recent": "Recent"
4493
+ "df.wise.group.recent": "Recent",
4494
+ "df.wise.step.scrollToBottom": "Scroll to bottom"
4391
4495
  };
4392
4496
 
4393
4497
  // src/i18n/es.json
@@ -4433,7 +4537,8 @@ var es_default = {
4433
4537
  "df.wise.group.all": "Todo",
4434
4538
  "df.wise.group.currencies-with-account-details": "Divisas con datos de cuenta",
4435
4539
  "df.wise.group.popular": "Populares",
4436
- "df.wise.group.recent": "Recientes"
4540
+ "df.wise.group.recent": "Recientes",
4541
+ "df.wise.step.scrollToBottom": "Despl\xE1zate hasta abajo"
4437
4542
  };
4438
4543
 
4439
4544
  // src/i18n/fr.json
@@ -4444,7 +4549,7 @@ var fr_default = {
4444
4549
  "df.wise.ArraySchema.maxItemsError": "Veuillez ajouter {maxItems} ou moins.",
4445
4550
  "df.wise.ArraySchema.minItemsError": "Veuillez ajouter au moins {minItems}.",
4446
4551
  "df.wise.ArraySchema.removeItem": "Supprimer",
4447
- "df.wise.ButtonLayout.buttonLoadingMessage": "Patientez quelques secondes",
4552
+ "df.wise.ButtonLayout.buttonLoadingMessage": "Un instant, s'il vous pla\xEEt...",
4448
4553
  "df.wise.ControlFeedback.maxLength": "Veuillez saisir {maxLength} caract\xE8res ou moins.",
4449
4554
  "df.wise.ControlFeedback.maximum": "Veuillez saisir un nombre inf\xE9rieur ou \xE9gal \xE0 {maximum}.",
4450
4555
  "df.wise.ControlFeedback.maximumDate": "Veuillez saisir une date \xE9gale ou ant\xE9rieure au {maximum}.",
@@ -4476,10 +4581,11 @@ var fr_default = {
4476
4581
  "df.wise.filter.noResults": "Aucun r\xE9sultat",
4477
4582
  "df.wise.filter.placeholder": "Commencez \xE0 \xE9crire pour effectuer une recherche",
4478
4583
  "df.wise.filter.results": "R\xE9sultats de recherche",
4479
- "df.wise.group.all": "Toutes",
4584
+ "df.wise.group.all": "Tous",
4480
4585
  "df.wise.group.currencies-with-account-details": "Devises avec num\xE9ros de compte",
4481
4586
  "df.wise.group.popular": "Populaires",
4482
- "df.wise.group.recent": "R\xE9cents"
4587
+ "df.wise.group.recent": "R\xE9cents",
4588
+ "df.wise.step.scrollToBottom": "Faire d\xE9filer vers le bas"
4483
4589
  };
4484
4590
 
4485
4591
  // src/i18n/hu.json
@@ -4525,7 +4631,8 @@ var hu_default = {
4525
4631
  "df.wise.group.all": "\xD6sszes",
4526
4632
  "df.wise.group.currencies-with-account-details": "P\xE9nznemek sz\xE1mlaadatokkal",
4527
4633
  "df.wise.group.popular": "N\xE9pszer\u0171",
4528
- "df.wise.group.recent": "Legut\xF3bbi"
4634
+ "df.wise.group.recent": "Legut\xF3bbi",
4635
+ "df.wise.step.scrollToBottom": "G\xF6rgess legalulra"
4529
4636
  };
4530
4637
 
4531
4638
  // src/i18n/id.json
@@ -4571,7 +4678,8 @@ var id_default = {
4571
4678
  "df.wise.group.all": "Semua",
4572
4679
  "df.wise.group.currencies-with-account-details": "Mata uang dengan detail rekening",
4573
4680
  "df.wise.group.popular": "Populer",
4574
- "df.wise.group.recent": "Terbaru"
4681
+ "df.wise.group.recent": "Terbaru",
4682
+ "df.wise.step.scrollToBottom": "Gulir ke bawah"
4575
4683
  };
4576
4684
 
4577
4685
  // src/i18n/it.json
@@ -4617,7 +4725,8 @@ var it_default = {
4617
4725
  "df.wise.group.all": "Tutti",
4618
4726
  "df.wise.group.currencies-with-account-details": "Valute con estremi del conto",
4619
4727
  "df.wise.group.popular": "Popolari",
4620
- "df.wise.group.recent": "Recenti"
4728
+ "df.wise.group.recent": "Recenti",
4729
+ "df.wise.step.scrollToBottom": "Scorri in basso"
4621
4730
  };
4622
4731
 
4623
4732
  // src/i18n/ja.json
@@ -4663,7 +4772,8 @@ var ja_default = {
4663
4772
  "df.wise.group.all": "\u3059\u3079\u3066",
4664
4773
  "df.wise.group.currencies-with-account-details": "\u53E3\u5EA7\u60C5\u5831\u3092\u53D6\u5F97\u3067\u304D\u308B\u901A\u8CA8",
4665
4774
  "df.wise.group.popular": "\u4EBA\u6C17",
4666
- "df.wise.group.recent": "\u6700\u8FD1"
4775
+ "df.wise.group.recent": "\u6700\u8FD1",
4776
+ "df.wise.step.scrollToBottom": "\u4E0B\u307E\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B"
4667
4777
  };
4668
4778
 
4669
4779
  // src/i18n/nl.json
@@ -4709,7 +4819,8 @@ var nl_default = {
4709
4819
  "df.wise.group.all": "Alles",
4710
4820
  "df.wise.group.currencies-with-account-details": "Valuta's met rekeninggegevens",
4711
4821
  "df.wise.group.popular": "Populair",
4712
- "df.wise.group.recent": "Recent"
4822
+ "df.wise.group.recent": "Recent",
4823
+ "df.wise.step.scrollToBottom": "Scrol omlaag"
4713
4824
  };
4714
4825
 
4715
4826
  // src/i18n/pl.json
@@ -4755,7 +4866,8 @@ var pl_default = {
4755
4866
  "df.wise.group.all": "Wszystkie",
4756
4867
  "df.wise.group.currencies-with-account-details": "Waluty z danymi bankowymi",
4757
4868
  "df.wise.group.popular": "Popularne",
4758
- "df.wise.group.recent": "Ostatnie"
4869
+ "df.wise.group.recent": "Ostatnie",
4870
+ "df.wise.step.scrollToBottom": "Przewi\u0144 w d\xF3\u0142"
4759
4871
  };
4760
4872
 
4761
4873
  // src/i18n/pt.json
@@ -4801,7 +4913,8 @@ var pt_default = {
4801
4913
  "df.wise.group.all": "Todos",
4802
4914
  "df.wise.group.currencies-with-account-details": "Moedas com dados de conta",
4803
4915
  "df.wise.group.popular": "Popular",
4804
- "df.wise.group.recent": "Recente"
4916
+ "df.wise.group.recent": "Recente",
4917
+ "df.wise.step.scrollToBottom": "Descer at\xE9 o final da p\xE1gina"
4805
4918
  };
4806
4919
 
4807
4920
  // src/i18n/ro.json
@@ -4847,7 +4960,8 @@ var ro_default = {
4847
4960
  "df.wise.group.all": "Toate",
4848
4961
  "df.wise.group.currencies-with-account-details": "Monede cu detalii de cont",
4849
4962
  "df.wise.group.popular": "Populare",
4850
- "df.wise.group.recent": "Recente"
4963
+ "df.wise.group.recent": "Recente",
4964
+ "df.wise.step.scrollToBottom": "Deruleaz\u0103 \xEEn jos"
4851
4965
  };
4852
4966
 
4853
4967
  // src/i18n/ru.json
@@ -4893,7 +5007,8 @@ var ru_default = {
4893
5007
  "df.wise.group.all": "\u0412\u0441\u0435",
4894
5008
  "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",
4895
5009
  "df.wise.group.popular": "\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u0435",
4896
- "df.wise.group.recent": "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435"
5010
+ "df.wise.group.recent": "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435",
5011
+ "df.wise.step.scrollToBottom": "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0432\u043D\u0438\u0437"
4897
5012
  };
4898
5013
 
4899
5014
  // src/i18n/th.json
@@ -4939,7 +5054,8 @@ var th_default = {
4939
5054
  "df.wise.group.all": "\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",
4940
5055
  "df.wise.group.currencies-with-account-details": "\u0E2A\u0E01\u0E38\u0E25\u0E40\u0E07\u0E34\u0E19\u0E15\u0E48\u0E32\u0E07\u0E46 \u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E1A\u0E31\u0E0D\u0E0A\u0E35",
4941
5056
  "df.wise.group.popular": "\u0E2A\u0E01\u0E38\u0E25\u0E22\u0E2D\u0E14\u0E19\u0E34\u0E22\u0E21",
4942
- "df.wise.group.recent": "\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14"
5057
+ "df.wise.group.recent": "\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14",
5058
+ "df.wise.step.scrollToBottom": "\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07"
4943
5059
  };
4944
5060
 
4945
5061
  // src/i18n/tr.json
@@ -4985,7 +5101,8 @@ var tr_default = {
4985
5101
  "df.wise.group.all": "T\xFCm\xFC",
4986
5102
  "df.wise.group.currencies-with-account-details": "Hesap bilgileri olan bakiyeler",
4987
5103
  "df.wise.group.popular": "Pop\xFCler",
4988
- "df.wise.group.recent": "Yak\u0131n zamanl\u0131"
5104
+ "df.wise.group.recent": "Yak\u0131n zamanl\u0131",
5105
+ "df.wise.step.scrollToBottom": "A\u015Fa\u011F\u0131 kayd\u0131r"
4989
5106
  };
4990
5107
 
4991
5108
  // src/i18n/zh_CN.json
@@ -5031,7 +5148,8 @@ var zh_CN_default = {
5031
5148
  "df.wise.group.all": "\u5168\u90E8",
5032
5149
  "df.wise.group.currencies-with-account-details": "\u5E26\u6709\u8D26\u6237\u8BE6\u7EC6\u4FE1\u606F\u7684\u8D27\u5E01",
5033
5150
  "df.wise.group.popular": "\u70ED\u95E8",
5034
- "df.wise.group.recent": "\u6700\u8FD1"
5151
+ "df.wise.group.recent": "\u6700\u8FD1",
5152
+ "df.wise.step.scrollToBottom": "\u6EDA\u52A8\u5230\u5E95\u90E8"
5035
5153
  };
5036
5154
 
5037
5155
  // src/i18n/zh_HK.json
@@ -5077,7 +5195,8 @@ var zh_HK_default = {
5077
5195
  "df.wise.group.all": "\u5168\u90E8",
5078
5196
  "df.wise.group.currencies-with-account-details": "\u63D0\u4F9B\u8CEC\u6236\u8CC7\u6599\u7684\u8CA8\u5E63",
5079
5197
  "df.wise.group.popular": "\u71B1\u9580",
5080
- "df.wise.group.recent": "\u6700\u8FD1\u7684"
5198
+ "df.wise.group.recent": "\u6700\u8FD1\u7684",
5199
+ "df.wise.step.scrollToBottom": "\u6ED1\u52D5\u5230\u6700\u5E95\u90E8"
5081
5200
  };
5082
5201
 
5083
5202
  // src/i18n/index.ts