@wise/dynamic-flow-client-internal 5.10.0 → 5.12.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.mjs CHANGED
@@ -126,7 +126,7 @@ import { useMemo as useMemo2 } from "react";
126
126
  // src/dynamicFlow/telemetry/app-version.ts
127
127
  var appVersion = (
128
128
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
129
- typeof process !== "undefined" ? "5.10.0" : "0.0.0"
129
+ typeof process !== "undefined" ? "5.12.0" : "0.0.0"
130
130
  );
131
131
 
132
132
  // src/dynamicFlow/telemetry/getLogEvent.ts
@@ -1353,26 +1353,18 @@ var ExternalConfirmationRenderer = {
1353
1353
  };
1354
1354
  function ExternalConfirmationRendererComponent({
1355
1355
  url,
1356
- status,
1357
- onSuccess,
1358
- onFailure,
1356
+ visible,
1357
+ open,
1359
1358
  onCancel
1360
1359
  }) {
1361
1360
  const { formatMessage } = useIntl5();
1362
1361
  useEffect3(() => {
1363
- if (url && status === "initial") {
1364
- const w = window.open(url, "_blank");
1365
- if (w) {
1366
- onSuccess();
1367
- } else {
1368
- onFailure();
1369
- }
1370
- }
1362
+ open();
1371
1363
  }, []);
1372
1364
  return /* @__PURE__ */ jsx31(
1373
1365
  Modal,
1374
1366
  {
1375
- open: status === "failure",
1367
+ open: visible,
1376
1368
  title: formatMessage(external_confirmation_messages_default.title),
1377
1369
  body: /* @__PURE__ */ jsxs6(Fragment4, { children: [
1378
1370
  /* @__PURE__ */ jsx31(Markdown2, { config: { link: { target: "_blank" } }, className: "text-xs-center m-b-5", children: formatMessage(external_confirmation_messages_default.description, { origin: getOrigin(url) }) }),
@@ -1386,8 +1378,7 @@ function ExternalConfirmationRendererComponent({
1386
1378
  priority: "primary",
1387
1379
  size: "md",
1388
1380
  onClick: () => {
1389
- window.open(url);
1390
- onCancel();
1381
+ open();
1391
1382
  },
1392
1383
  children: formatMessage(external_confirmation_messages_default.open)
1393
1384
  }
@@ -3534,64 +3525,122 @@ function TopBar({ back, toolbar }) {
3534
3525
  ] }) : null;
3535
3526
  }
3536
3527
 
3528
+ // ../renderers/src/step/StepFooter.tsx
3529
+ import { Button as Button8 } from "@transferwise/components";
3530
+ import { useEffect as useEffect9, useRef, useState as useState11 } from "react";
3531
+ import { useIntl as useIntl15 } from "react-intl";
3532
+
3533
+ // ../renderers/src/messages/step.messages.ts
3534
+ import { defineMessages as defineMessages12 } from "react-intl";
3535
+ var step_messages_default = defineMessages12({
3536
+ scrollToBottom: {
3537
+ id: "df.wise.step.scrollToBottom",
3538
+ defaultMessage: "Scroll to bottom",
3539
+ 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."
3540
+ }
3541
+ });
3542
+
3543
+ // ../renderers/src/step/StepFooter.tsx
3544
+ import { Fragment as Fragment13, jsx as jsx78, jsxs as jsxs28 } from "react/jsx-runtime";
3545
+ var SCROLL_TO_BOTTOM = "scroll-to-bottom";
3546
+ var StepFooter = ({ footer, tags }) => {
3547
+ if (tags == null ? void 0 : tags.includes(SCROLL_TO_BOTTOM)) {
3548
+ return /* @__PURE__ */ jsx78(FooterWithScrollButton, { footer });
3549
+ }
3550
+ return /* @__PURE__ */ jsx78(DefaultFooter, { footer });
3551
+ };
3552
+ var DefaultFooter = ({ footer }) => {
3553
+ const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3554
+ return hasFooter ? /* @__PURE__ */ jsx78("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
3555
+ };
3556
+ var FooterWithScrollButton = ({ footer }) => {
3557
+ const { formatMessage } = useIntl15();
3558
+ const endOfLayoutRef = useRef(null);
3559
+ const isElementVisible = useIsElementVisible(endOfLayoutRef);
3560
+ const scrollButton = /* @__PURE__ */ jsx78(
3561
+ Button8,
3562
+ {
3563
+ className: "m-b-1",
3564
+ v2: true,
3565
+ block: true,
3566
+ priority: "tertiary",
3567
+ onClick: () => {
3568
+ var _a;
3569
+ (_a = endOfLayoutRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
3570
+ },
3571
+ children: formatMessage(step_messages_default.scrollToBottom)
3572
+ }
3573
+ );
3574
+ const hasStepFooterContent = footer && Array.isArray(footer) && footer.length > 0;
3575
+ if (isElementVisible && !hasStepFooterContent) {
3576
+ return /* @__PURE__ */ jsx78("div", { ref: endOfLayoutRef, "aria-hidden": "true" });
3577
+ }
3578
+ return /* @__PURE__ */ jsxs28(Fragment13, { children: [
3579
+ /* @__PURE__ */ jsx78("div", { ref: endOfLayoutRef, "aria-hidden": "true" }),
3580
+ /* @__PURE__ */ jsxs28("div", { className: "df-step-fixed__footer", children: [
3581
+ !isElementVisible && scrollButton,
3582
+ footer
3583
+ ] })
3584
+ ] });
3585
+ };
3586
+ var useIsElementVisible = (elementRef) => {
3587
+ const [isVisible, setIsVisible] = useState11(false);
3588
+ useEffect9(() => {
3589
+ const element = elementRef.current;
3590
+ if (!element) return;
3591
+ const observer = new IntersectionObserver(([entry]) => {
3592
+ setIsVisible(entry.isIntersecting);
3593
+ });
3594
+ observer.observe(element);
3595
+ return () => observer.disconnect();
3596
+ }, [elementRef]);
3597
+ return isVisible;
3598
+ };
3599
+
3537
3600
  // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
3538
- import { jsx as jsx78, jsxs as jsxs28 } from "react/jsx-runtime";
3601
+ import { jsx as jsx79, jsxs as jsxs29 } from "react/jsx-runtime";
3539
3602
  var SplashCelebrationStepRenderer = {
3540
3603
  canRenderType: "step",
3541
3604
  canRender: ({ control }) => control === "splash-celebration",
3542
3605
  render: SplashCelebrationStepRendererComponent
3543
3606
  };
3544
3607
  function SplashCelebrationStepRendererComponent(props) {
3545
- const { back, toolbar, children, footer, trackEvent } = props;
3546
- const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3608
+ const { back, toolbar, children, footer, tags, trackEvent } = props;
3547
3609
  useCustomTheme("forest-green", trackEvent);
3548
- return /* @__PURE__ */ jsxs28("div", { className: "splash-screen m-t-5", children: [
3549
- /* @__PURE__ */ jsx78(TopBar, { back, toolbar }),
3610
+ return /* @__PURE__ */ jsxs29("div", { className: "splash-screen m-t-5", children: [
3611
+ /* @__PURE__ */ jsx79(TopBar, { back, toolbar }),
3550
3612
  children,
3551
- hasFooter ? /* @__PURE__ */ jsx78("div", { className: "df-step-fixed__footer", children: footer }) : void 0
3613
+ /* @__PURE__ */ jsx79(StepFooter, { footer, tags })
3552
3614
  ] });
3553
3615
  }
3554
3616
 
3555
3617
  // ../renderers/src/step/SplashStepRenderer.tsx
3556
- import { jsx as jsx79, jsxs as jsxs29 } from "react/jsx-runtime";
3618
+ import { jsx as jsx80, jsxs as jsxs30 } from "react/jsx-runtime";
3557
3619
  var SplashStepRenderer = {
3558
3620
  canRenderType: "step",
3559
3621
  canRender: ({ control }) => control === "splash",
3560
3622
  render: SplashStepRendererComponent
3561
3623
  };
3562
3624
  function SplashStepRendererComponent(props) {
3563
- const { back, toolbar, children, footer } = props;
3564
- const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3565
- return /* @__PURE__ */ jsxs29("div", { className: "splash-screen m-t-5", children: [
3566
- /* @__PURE__ */ jsx79(TopBar, { back, toolbar }),
3625
+ const { back, toolbar, children, footer, tags } = props;
3626
+ return /* @__PURE__ */ jsxs30("div", { className: "splash-screen m-t-5", children: [
3627
+ /* @__PURE__ */ jsx80(TopBar, { back, toolbar }),
3567
3628
  children,
3568
- hasFooter ? /* @__PURE__ */ jsx79("div", { className: "df-step-fixed__footer", children: footer }) : void 0
3629
+ /* @__PURE__ */ jsx80(StepFooter, { footer, tags })
3569
3630
  ] });
3570
3631
  }
3571
3632
 
3572
3633
  // ../renderers/src/step/StepRenderer.tsx
3573
- import { Alert as Alert2, Title as Title2 } from "@transferwise/components";
3574
- import { Fragment as Fragment13, jsx as jsx80, jsxs as jsxs30 } from "react/jsx-runtime";
3575
- var StepRenderer = {
3576
- canRenderType: "step",
3577
- render: StepRendererComponent
3578
- };
3579
- function StepRendererComponent(props) {
3580
- const { back, description, error, title, children, toolbar, footer, tags } = props;
3581
- const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
3582
- return /* @__PURE__ */ jsxs30("div", { children: [
3583
- /* @__PURE__ */ jsx80(TopBar, { back, toolbar }),
3584
- title || description ? /* @__PURE__ */ jsx80("div", { className: "m-b-4", children: /* @__PURE__ */ jsx80(Header10, { title, description, tags }) }) : void 0,
3585
- error ? /* @__PURE__ */ jsx80(Alert2, { type: "negative", className: "m-b-2", message: error }) : null,
3586
- children,
3587
- hasFooter ? /* @__PURE__ */ jsx80("div", { className: "df-step-fixed__footer", children: footer }) : void 0
3588
- ] });
3589
- }
3590
- var Header10 = ({ title, description, tags }) => {
3634
+ import { Alert as Alert2 } from "@transferwise/components";
3635
+
3636
+ // ../renderers/src/step/StepHeader.tsx
3637
+ import { Title as Title2 } from "@transferwise/components";
3638
+ import { Fragment as Fragment14, jsx as jsx81, jsxs as jsxs31 } from "react/jsx-runtime";
3639
+ var StepHeader = ({ title, description, tags }) => {
3591
3640
  const { titleType, alignmentClassName } = getHeaderStyle(tags);
3592
- return /* @__PURE__ */ jsxs30(Fragment13, { children: [
3593
- title ? /* @__PURE__ */ jsx80(Title2, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
3594
- description ? /* @__PURE__ */ jsx80("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
3641
+ return /* @__PURE__ */ jsxs31(Fragment14, { children: [
3642
+ title ? /* @__PURE__ */ jsx81(Title2, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
3643
+ description ? /* @__PURE__ */ jsx81("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
3595
3644
  ] });
3596
3645
  };
3597
3646
  var getHeaderStyle = (tags) => {
@@ -3601,29 +3650,46 @@ var getHeaderStyle = (tags) => {
3601
3650
  return { titleType: "title-section", alignmentClassName: "text-xs-center" };
3602
3651
  };
3603
3652
 
3653
+ // ../renderers/src/step/StepRenderer.tsx
3654
+ import { jsx as jsx82, jsxs as jsxs32 } from "react/jsx-runtime";
3655
+ var StepRenderer = {
3656
+ canRenderType: "step",
3657
+ render: StepRendererComponent
3658
+ };
3659
+ function StepRendererComponent(props) {
3660
+ const { back, description, error, title, children, toolbar, footer, tags } = props;
3661
+ return /* @__PURE__ */ jsxs32("div", { children: [
3662
+ /* @__PURE__ */ jsx82(TopBar, { back, toolbar }),
3663
+ title || description ? /* @__PURE__ */ jsx82("div", { className: "m-b-4", children: /* @__PURE__ */ jsx82(StepHeader, { title, description, tags }) }) : void 0,
3664
+ error ? /* @__PURE__ */ jsx82(Alert2, { type: "negative", className: "m-b-2", message: error }) : null,
3665
+ children,
3666
+ /* @__PURE__ */ jsx82(StepFooter, { footer, tags })
3667
+ ] });
3668
+ }
3669
+
3604
3670
  // ../renderers/src/TabsRenderer.tsx
3605
3671
  import { Chips, SegmentedControl as SegmentedControl2, Tabs as Tabs2 } from "@transferwise/components";
3606
- import { useState as useState11 } from "react";
3607
- import { jsx as jsx81, jsxs as jsxs31 } from "react/jsx-runtime";
3672
+ import { useState as useState12 } from "react";
3673
+ import { jsx as jsx83, jsxs as jsxs33 } from "react/jsx-runtime";
3608
3674
  var TabsRenderer = {
3609
3675
  canRenderType: "tabs",
3610
3676
  render: (props) => {
3611
3677
  switch (props.control) {
3612
3678
  case "segmented":
3613
3679
  if (props.tabs.length > 3) {
3614
- return /* @__PURE__ */ jsx81(TabsRendererComponent, __spreadValues({}, props));
3680
+ return /* @__PURE__ */ jsx83(TabsRendererComponent, __spreadValues({}, props));
3615
3681
  }
3616
- return /* @__PURE__ */ jsx81(SegmentedTabsRendererComponent, __spreadValues({}, props));
3682
+ return /* @__PURE__ */ jsx83(SegmentedTabsRendererComponent, __spreadValues({}, props));
3617
3683
  case "chips":
3618
- return /* @__PURE__ */ jsx81(ChipsTabsRendererComponent, __spreadValues({}, props));
3684
+ return /* @__PURE__ */ jsx83(ChipsTabsRendererComponent, __spreadValues({}, props));
3619
3685
  default:
3620
- return /* @__PURE__ */ jsx81(TabsRendererComponent, __spreadValues({}, props));
3686
+ return /* @__PURE__ */ jsx83(TabsRendererComponent, __spreadValues({}, props));
3621
3687
  }
3622
3688
  }
3623
3689
  };
3624
3690
  function TabsRendererComponent({ uid, margin, tabs }) {
3625
- const [selectedIndex, setSelectedIndex] = useState11(0);
3626
- return /* @__PURE__ */ jsx81("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx81(
3691
+ const [selectedIndex, setSelectedIndex] = useState12(0);
3692
+ return /* @__PURE__ */ jsx83("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx83(
3627
3693
  Tabs2,
3628
3694
  {
3629
3695
  name: uid,
@@ -3631,7 +3697,7 @@ function TabsRendererComponent({ uid, margin, tabs }) {
3631
3697
  tabs: tabs.map((option) => ({
3632
3698
  title: option.title,
3633
3699
  disabled: false,
3634
- content: /* @__PURE__ */ jsxs31("div", { className: "m-t-2", children: [
3700
+ content: /* @__PURE__ */ jsxs33("div", { className: "m-t-2", children: [
3635
3701
  " ",
3636
3702
  option.children,
3637
3703
  " "
@@ -3643,9 +3709,9 @@ function TabsRendererComponent({ uid, margin, tabs }) {
3643
3709
  }
3644
3710
  function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
3645
3711
  var _a;
3646
- const [selectedIndex, setSelectedIndex] = useState11(0);
3647
- return /* @__PURE__ */ jsxs31("div", { className: getMargin(margin), children: [
3648
- /* @__PURE__ */ jsx81(
3712
+ const [selectedIndex, setSelectedIndex] = useState12(0);
3713
+ return /* @__PURE__ */ jsxs33("div", { className: getMargin(margin), children: [
3714
+ /* @__PURE__ */ jsx83(
3649
3715
  SegmentedControl2,
3650
3716
  {
3651
3717
  name: uid,
@@ -3660,14 +3726,14 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
3660
3726
  onChange: (value) => setSelectedIndex(Number(value))
3661
3727
  }
3662
3728
  ),
3663
- /* @__PURE__ */ jsx81("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3729
+ /* @__PURE__ */ jsx83("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3664
3730
  ] });
3665
3731
  }
3666
3732
  function ChipsTabsRendererComponent({ margin, tabs }) {
3667
3733
  var _a;
3668
- const [selectedIndex, setSelectedIndex] = useState11(0);
3669
- return /* @__PURE__ */ jsxs31("div", { className: getMargin(margin), children: [
3670
- /* @__PURE__ */ jsx81("div", { className: "chips-container", children: /* @__PURE__ */ jsx81(
3734
+ const [selectedIndex, setSelectedIndex] = useState12(0);
3735
+ return /* @__PURE__ */ jsxs33("div", { className: getMargin(margin), children: [
3736
+ /* @__PURE__ */ jsx83("div", { className: "chips-container", children: /* @__PURE__ */ jsx83(
3671
3737
  Chips,
3672
3738
  {
3673
3739
  chips: tabs.map((tab, index) => ({ label: tab.title, value: index })),
@@ -3675,7 +3741,7 @@ function ChipsTabsRendererComponent({ margin, tabs }) {
3675
3741
  onChange: ({ selectedValue }) => setSelectedIndex(Number(selectedValue))
3676
3742
  }
3677
3743
  ) }),
3678
- /* @__PURE__ */ jsx81("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3744
+ /* @__PURE__ */ jsx83("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3679
3745
  ] });
3680
3746
  }
3681
3747
 
@@ -3690,7 +3756,7 @@ import {
3690
3756
  TextArea,
3691
3757
  TextareaWithDisplayFormat
3692
3758
  } from "@transferwise/components";
3693
- import { jsx as jsx82 } from "react/jsx-runtime";
3759
+ import { jsx as jsx84 } from "react/jsx-runtime";
3694
3760
  var commonKeys = [
3695
3761
  "autoComplete",
3696
3762
  "autoCapitalize",
@@ -3709,12 +3775,12 @@ function VariableTextInput(inputProps) {
3709
3775
  const commonProps = __spreadProps(__spreadValues({}, pick(inputProps, ...commonKeys)), { name: id });
3710
3776
  switch (control) {
3711
3777
  case "email":
3712
- return /* @__PURE__ */ jsx82(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
3778
+ return /* @__PURE__ */ jsx84(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
3713
3779
  case "password":
3714
- return /* @__PURE__ */ jsx82(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
3780
+ return /* @__PURE__ */ jsx84(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
3715
3781
  case "numeric": {
3716
3782
  const numericProps = __spreadProps(__spreadValues({}, commonProps), { type: "number", onWheel });
3717
- return /* @__PURE__ */ jsx82(
3783
+ return /* @__PURE__ */ jsx84(
3718
3784
  TextInput,
3719
3785
  __spreadProps(__spreadValues({}, numericProps), {
3720
3786
  onChange: (newValue) => {
@@ -3725,9 +3791,9 @@ function VariableTextInput(inputProps) {
3725
3791
  );
3726
3792
  }
3727
3793
  case "phone-number":
3728
- return /* @__PURE__ */ jsx82(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
3794
+ return /* @__PURE__ */ jsx84(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
3729
3795
  default: {
3730
- return /* @__PURE__ */ jsx82(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
3796
+ return /* @__PURE__ */ jsx84(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
3731
3797
  }
3732
3798
  }
3733
3799
  }
@@ -3735,11 +3801,11 @@ function TextInput(props) {
3735
3801
  const _a = props, { control, displayFormat, onChange } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange"]);
3736
3802
  const InputWithPattern = control === "textarea" ? TextareaWithDisplayFormat : InputWithDisplayFormat;
3737
3803
  const InputWithoutPattern = control === "textarea" ? TextArea : Input5;
3738
- return displayFormat ? /* @__PURE__ */ jsx82(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx82(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
3804
+ return displayFormat ? /* @__PURE__ */ jsx84(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx84(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
3739
3805
  }
3740
3806
 
3741
3807
  // ../renderers/src/TextInputRenderer.tsx
3742
- import { jsx as jsx83 } from "react/jsx-runtime";
3808
+ import { jsx as jsx85 } from "react/jsx-runtime";
3743
3809
  var TextInputRenderer = {
3744
3810
  canRenderType: "input-text",
3745
3811
  render: (props) => {
@@ -3772,7 +3838,7 @@ var TextInputRenderer = {
3772
3838
  }
3773
3839
  }
3774
3840
  });
3775
- return /* @__PURE__ */ jsx83(
3841
+ return /* @__PURE__ */ jsx85(
3776
3842
  FieldInput_default,
3777
3843
  {
3778
3844
  id,
@@ -3780,7 +3846,7 @@ var TextInputRenderer = {
3780
3846
  description,
3781
3847
  validation: validationState,
3782
3848
  help,
3783
- children: /* @__PURE__ */ jsx83(InputGroup4, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx83(VariableTextInput, __spreadValues({}, inputProps)) })
3849
+ children: /* @__PURE__ */ jsx85(InputGroup4, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx85(VariableTextInput, __spreadValues({}, inputProps)) })
3784
3850
  }
3785
3851
  );
3786
3852
  }
@@ -3794,7 +3860,7 @@ import { Status as Status2, Upload, UploadInput as UploadInput2 } from "@transfe
3794
3860
  var getRandomId = () => Math.random().toString(36).substring(2);
3795
3861
 
3796
3862
  // ../renderers/src/UploadInputRenderer.tsx
3797
- import { jsx as jsx84 } from "react/jsx-runtime";
3863
+ import { jsx as jsx86 } from "react/jsx-runtime";
3798
3864
  var UploadInputRenderer = {
3799
3865
  canRenderType: "input-upload",
3800
3866
  render: (props) => {
@@ -3810,14 +3876,14 @@ var UploadInputRenderer = {
3810
3876
  };
3811
3877
  return (
3812
3878
  // We don't pass help here as there is no sensible place to display it
3813
- /* @__PURE__ */ jsx84(
3879
+ /* @__PURE__ */ jsx86(
3814
3880
  UploadFieldInput_default,
3815
3881
  {
3816
3882
  id,
3817
3883
  label: void 0,
3818
3884
  description: void 0,
3819
3885
  validation: validationState,
3820
- children: /* @__PURE__ */ jsx84(
3886
+ children: /* @__PURE__ */ jsx86(
3821
3887
  UploadInput2,
3822
3888
  {
3823
3889
  id,
@@ -3883,7 +3949,7 @@ var LargeUploadRenderer = {
3883
3949
  };
3884
3950
  const filetypes = acceptsToFileTypes(accepts);
3885
3951
  const usAccept = filetypes === "*" ? "*" : filetypes.join(",");
3886
- return /* @__PURE__ */ jsx84(
3952
+ return /* @__PURE__ */ jsx86(
3887
3953
  FieldInput_default,
3888
3954
  {
3889
3955
  id,
@@ -3891,7 +3957,7 @@ var LargeUploadRenderer = {
3891
3957
  description,
3892
3958
  validation: validationState,
3893
3959
  help,
3894
- children: /* @__PURE__ */ jsx84(
3960
+ children: /* @__PURE__ */ jsx86(
3895
3961
  Upload,
3896
3962
  __spreadProps(__spreadValues({}, uploadProps), {
3897
3963
  usAccept,
@@ -3908,16 +3974,16 @@ var LargeUploadRenderer = {
3908
3974
 
3909
3975
  // ../renderers/src/UpsellRenderer.tsx
3910
3976
  import { Nudge } from "@transferwise/components";
3911
- import { useState as useState12 } from "react";
3912
- import { jsx as jsx85 } from "react/jsx-runtime";
3977
+ import { useState as useState13 } from "react";
3978
+ import { jsx as jsx87 } from "react/jsx-runtime";
3913
3979
  var UpsellRenderer = {
3914
3980
  canRenderType: "upsell",
3915
3981
  render: UpsellRendererComponent
3916
3982
  };
3917
3983
  function UpsellRendererComponent(props) {
3918
3984
  const { text, callToAction, media, margin, onDismiss } = props;
3919
- const [isVisible, setIsVisible] = useState12(true);
3920
- return isVisible ? /* @__PURE__ */ jsx85(
3985
+ const [isVisible, setIsVisible] = useState13(true);
3986
+ return isVisible ? /* @__PURE__ */ jsx87(
3921
3987
  Nudge,
3922
3988
  {
3923
3989
  className: getMargin(margin),
@@ -3966,11 +4032,38 @@ var supportedMediaNames = [
3966
4032
  "wallet"
3967
4033
  ];
3968
4034
 
4035
+ // ../renderers/src/ButtonRenderer/CircularButtonRenderer.tsx
4036
+ import { CircularButton } from "@transferwise/components";
4037
+ var import_classnames7 = __toESM(require_classnames());
4038
+ import { jsx as jsx88 } from "react/jsx-runtime";
4039
+ var CircularButtonRenderer = {
4040
+ canRenderType: "button",
4041
+ canRender: ({ control }) => control === "circular",
4042
+ render: CircularButtonComponent
4043
+ };
4044
+ function CircularButtonComponent(props) {
4045
+ var _a;
4046
+ const { context, disabled, margin, media, tags, title, onClick } = props;
4047
+ const priority = tags == null ? void 0 : tags.find((tag) => tag === "primary" || tag === "secondary");
4048
+ return /* @__PURE__ */ jsx88("div", { className: (0, import_classnames7.default)(getMargin(margin), "df-button", "circular"), children: /* @__PURE__ */ jsx88(
4049
+ CircularButton,
4050
+ {
4051
+ disabled,
4052
+ priority: priority != null ? priority : "secondary",
4053
+ type: context === "negative" ? "negative" : "default",
4054
+ icon: media ? (_a = getAddonStartMedia(media)) == null ? void 0 : _a.value : void 0,
4055
+ onClick,
4056
+ children: title
4057
+ }
4058
+ ) });
4059
+ }
4060
+
3969
4061
  // ../renderers/src/getWiseRenderers.ts
3970
4062
  var getWiseRenderers = () => [
3971
4063
  AddressValidationButtonRenderer_default,
3972
4064
  AlertRenderer_default,
3973
4065
  CheckboxInputRenderer_default,
4066
+ CircularButtonRenderer,
3974
4067
  BoxRenderer_default,
3975
4068
  ButtonRenderer,
3976
4069
  ColumnsRenderer_default,
@@ -4016,11 +4109,11 @@ var getWiseRenderers = () => [
4016
4109
 
4017
4110
  // ../renderers/src/InitialLoadingStateRenderer.tsx
4018
4111
  import { Loader as Loader2 } from "@transferwise/components";
4019
- import { jsx as jsx86 } from "react/jsx-runtime";
4112
+ import { jsx as jsx89 } from "react/jsx-runtime";
4020
4113
  var InitialLoadingStateRenderer = {
4021
4114
  canRenderType: "loading-state",
4022
4115
  canRender: ({ stepLoadingState }) => stepLoadingState === "initial",
4023
- render: () => /* @__PURE__ */ jsx86(
4116
+ render: () => /* @__PURE__ */ jsx89(
4024
4117
  Loader2,
4025
4118
  {
4026
4119
  size: "md",
@@ -4031,7 +4124,7 @@ var InitialLoadingStateRenderer = {
4031
4124
  };
4032
4125
 
4033
4126
  // ../renderers/src/subflow/getSubflowRenderer.tsx
4034
- import { jsx as jsx87 } from "react/jsx-runtime";
4127
+ import { jsx as jsx90 } from "react/jsx-runtime";
4035
4128
  var getSubflowRenderer = ({
4036
4129
  Component: Component2,
4037
4130
  canRender
@@ -4040,7 +4133,7 @@ var getSubflowRenderer = ({
4040
4133
  canRenderType: "subflow",
4041
4134
  canRender,
4042
4135
  render: (props) => {
4043
- return /* @__PURE__ */ jsx87(
4136
+ return /* @__PURE__ */ jsx90(
4044
4137
  Component2,
4045
4138
  {
4046
4139
  presentation: props.presentation,
@@ -4058,11 +4151,11 @@ var getSubflowRenderer = ({
4058
4151
 
4059
4152
  // src/dynamicFlow/useOnCopy.tsx
4060
4153
  import { useCallback } from "react";
4061
- import { useIntl as useIntl15 } from "react-intl";
4154
+ import { useIntl as useIntl16 } from "react-intl";
4062
4155
 
4063
4156
  // src/dynamicFlow/messages.ts
4064
- import { defineMessages as defineMessages12 } from "react-intl";
4065
- var messages_default = defineMessages12({
4157
+ import { defineMessages as defineMessages13 } from "react-intl";
4158
+ var messages_default = defineMessages13({
4066
4159
  copied: {
4067
4160
  id: "df.wise.CopyFeedback.copy",
4068
4161
  defaultMessage: "Copied to clipboard",
@@ -4077,7 +4170,7 @@ var messages_default = defineMessages12({
4077
4170
 
4078
4171
  // src/dynamicFlow/useOnCopy.tsx
4079
4172
  var useOnCopy = () => {
4080
- const { formatMessage } = useIntl15();
4173
+ const { formatMessage } = useIntl16();
4081
4174
  const createSnackBar = useSnackBarIfAvailable();
4082
4175
  return useCallback(
4083
4176
  (copiedContent) => {
@@ -4093,9 +4186,9 @@ var useOnCopy = () => {
4093
4186
 
4094
4187
  // src/dynamicFlow/useWiseHttpClient.tsx
4095
4188
  import { useCallback as useCallback2 } from "react";
4096
- import { useIntl as useIntl16 } from "react-intl";
4189
+ import { useIntl as useIntl17 } from "react-intl";
4097
4190
  var useWiseHttpClient = (httpClient) => {
4098
- const { locale } = useIntl16();
4191
+ const { locale } = useIntl17();
4099
4192
  return useCallback2(
4100
4193
  async (input, init = {}) => {
4101
4194
  const headers = new Headers(init.headers);
@@ -4120,24 +4213,24 @@ var handleRejection = (error) => {
4120
4213
  // src/dynamicFlow/DynamicFlowModal.tsx
4121
4214
  import { useDynamicFlowModal } from "@wise/dynamic-flow-client";
4122
4215
  import { Modal as Modal5 } from "@transferwise/components";
4123
- import { jsx as jsx88 } from "react/jsx-runtime";
4216
+ import { jsx as jsx91 } from "react/jsx-runtime";
4124
4217
  function DynamicFlowModal(props) {
4125
4218
  const _a = props, { className = "" } = _a, rest = __objRest(_a, ["className"]);
4126
4219
  const dfProps = useWiseToCoreProps(rest);
4127
4220
  const df = useDynamicFlowModal(dfProps);
4128
- return /* @__PURE__ */ jsx88(
4221
+ return /* @__PURE__ */ jsx91(
4129
4222
  Modal5,
4130
4223
  __spreadProps(__spreadValues({
4131
4224
  className: `dynamic-flow-modal ${className}`,
4132
4225
  disableDimmerClickToClose: true
4133
4226
  }, df.modal), {
4134
- body: /* @__PURE__ */ jsx88("div", { className: "dynamic-flow-modal", children: df.modal.body })
4227
+ body: /* @__PURE__ */ jsx91("div", { className: "dynamic-flow-modal", children: df.modal.body })
4135
4228
  })
4136
4229
  );
4137
4230
  }
4138
4231
 
4139
4232
  // src/dynamicFlow/getMergedRenderers.tsx
4140
- import { jsx as jsx89 } from "react/jsx-runtime";
4233
+ import { jsx as jsx92 } from "react/jsx-runtime";
4141
4234
  var wiseRenderers = getWiseRenderers();
4142
4235
  var getMergedRenderers = (props) => {
4143
4236
  var _d, _e;
@@ -4151,7 +4244,7 @@ var getMergedRenderers = (props) => {
4151
4244
  method: initialRequest.method,
4152
4245
  data: initialRequest.body
4153
4246
  };
4154
- return presentation.type === "push" ? /* @__PURE__ */ jsx89(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ jsx89(
4247
+ return presentation.type === "push" ? /* @__PURE__ */ jsx92(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ jsx92(
4155
4248
  DynamicFlowModal,
4156
4249
  __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), {
4157
4250
  features: subflowFeatures,
@@ -4192,9 +4285,17 @@ var useWiseToCoreProps = (props) => {
4192
4285
  });
4193
4286
  };
4194
4287
  var openLinkInNewTab = (url) => {
4195
- var _a;
4288
+ if (typeof window === "undefined" || typeof window.open !== "function") {
4289
+ return false;
4290
+ }
4196
4291
  try {
4197
- const w = (_a = window == null ? void 0 : window.open) == null ? void 0 : _a.call(window, url, "_blank");
4292
+ const w = window.open(url, "_blank");
4293
+ if (w) {
4294
+ try {
4295
+ w.opener = null;
4296
+ } catch (e) {
4297
+ }
4298
+ }
4198
4299
  return Boolean(w);
4199
4300
  } catch (e) {
4200
4301
  return false;
@@ -4202,12 +4303,12 @@ var openLinkInNewTab = (url) => {
4202
4303
  };
4203
4304
 
4204
4305
  // src/dynamicFlow/DynamicFlow.tsx
4205
- import { jsx as jsx90 } from "react/jsx-runtime";
4306
+ import { jsx as jsx93 } from "react/jsx-runtime";
4206
4307
  function DynamicFlow(props) {
4207
4308
  const { className = "" } = props;
4208
4309
  const dfProps = useWiseToCoreProps(props);
4209
4310
  const df = useDynamicFlow(dfProps);
4210
- return /* @__PURE__ */ jsx90("div", { className, children: df.view });
4311
+ return /* @__PURE__ */ jsx93("div", { className, children: df.view });
4211
4312
  }
4212
4313
 
4213
4314
  // src/dynamicFlow/DynamicFlowWithRef.tsx
@@ -4216,7 +4317,7 @@ import {
4216
4317
  useImperativeHandle
4217
4318
  } from "react";
4218
4319
  import { useDynamicFlow as useDynamicFlow2 } from "@wise/dynamic-flow-client";
4219
- import { jsx as jsx91 } from "react/jsx-runtime";
4320
+ import { jsx as jsx94 } from "react/jsx-runtime";
4220
4321
  var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
4221
4322
  const { className = "" } = props;
4222
4323
  const dfProps = useWiseToCoreProps(props);
@@ -4232,14 +4333,14 @@ var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
4232
4333
  }),
4233
4334
  [df]
4234
4335
  );
4235
- return /* @__PURE__ */ jsx91("div", { className, children: df.view });
4336
+ return /* @__PURE__ */ jsx94("div", { className, children: df.view });
4236
4337
  });
4237
4338
 
4238
4339
  // src/index.ts
4239
4340
  import { findRendererPropsByType } from "@wise/dynamic-flow-client";
4240
4341
 
4241
4342
  // src/dynamicFlow/renderers.tsx
4242
- var Header11 = Header5;
4343
+ var Header10 = Header5;
4243
4344
  var Media2 = Media;
4244
4345
  var getMargin2 = getMargin;
4245
4346
 
@@ -4289,7 +4390,8 @@ var cs_default = {
4289
4390
  "df.wise.group.all": "V\u0161e",
4290
4391
  "df.wise.group.currencies-with-account-details": "M\u011Bny s detaily \xFA\u010Dtu",
4291
4392
  "df.wise.group.popular": "Popul\xE1rn\xED",
4292
- "df.wise.group.recent": "Ned\xE1vn\xE9"
4393
+ "df.wise.group.recent": "Ned\xE1vn\xE9",
4394
+ "df.wise.step.scrollToBottom": "P\u0159ej\xEDt na konec"
4293
4395
  };
4294
4396
 
4295
4397
  // src/i18n/de.json
@@ -4335,7 +4437,8 @@ var de_default = {
4335
4437
  "df.wise.group.all": "Alle",
4336
4438
  "df.wise.group.currencies-with-account-details": "Guthaben mit Bankverbindung",
4337
4439
  "df.wise.group.popular": "Beliebt",
4338
- "df.wise.group.recent": "Neu"
4440
+ "df.wise.group.recent": "Neu",
4441
+ "df.wise.step.scrollToBottom": "Nach unten scrollen"
4339
4442
  };
4340
4443
 
4341
4444
  // src/i18n/en.json
@@ -4381,7 +4484,8 @@ var en_default = {
4381
4484
  "df.wise.group.all": "All",
4382
4485
  "df.wise.group.currencies-with-account-details": "Currencies with account details",
4383
4486
  "df.wise.group.popular": "Popular",
4384
- "df.wise.group.recent": "Recent"
4487
+ "df.wise.group.recent": "Recent",
4488
+ "df.wise.step.scrollToBottom": "Scroll to bottom"
4385
4489
  };
4386
4490
 
4387
4491
  // src/i18n/es.json
@@ -4427,7 +4531,8 @@ var es_default = {
4427
4531
  "df.wise.group.all": "Todo",
4428
4532
  "df.wise.group.currencies-with-account-details": "Divisas con datos de cuenta",
4429
4533
  "df.wise.group.popular": "Populares",
4430
- "df.wise.group.recent": "Recientes"
4534
+ "df.wise.group.recent": "Recientes",
4535
+ "df.wise.step.scrollToBottom": "Despl\xE1zate hasta abajo"
4431
4536
  };
4432
4537
 
4433
4538
  // src/i18n/fr.json
@@ -4438,7 +4543,7 @@ var fr_default = {
4438
4543
  "df.wise.ArraySchema.maxItemsError": "Veuillez ajouter {maxItems} ou moins.",
4439
4544
  "df.wise.ArraySchema.minItemsError": "Veuillez ajouter au moins {minItems}.",
4440
4545
  "df.wise.ArraySchema.removeItem": "Supprimer",
4441
- "df.wise.ButtonLayout.buttonLoadingMessage": "Patientez quelques secondes",
4546
+ "df.wise.ButtonLayout.buttonLoadingMessage": "Un instant, s'il vous pla\xEEt...",
4442
4547
  "df.wise.ControlFeedback.maxLength": "Veuillez saisir {maxLength} caract\xE8res ou moins.",
4443
4548
  "df.wise.ControlFeedback.maximum": "Veuillez saisir un nombre inf\xE9rieur ou \xE9gal \xE0 {maximum}.",
4444
4549
  "df.wise.ControlFeedback.maximumDate": "Veuillez saisir une date \xE9gale ou ant\xE9rieure au {maximum}.",
@@ -4470,10 +4575,11 @@ var fr_default = {
4470
4575
  "df.wise.filter.noResults": "Aucun r\xE9sultat",
4471
4576
  "df.wise.filter.placeholder": "Commencez \xE0 \xE9crire pour effectuer une recherche",
4472
4577
  "df.wise.filter.results": "R\xE9sultats de recherche",
4473
- "df.wise.group.all": "Toutes",
4578
+ "df.wise.group.all": "Tous",
4474
4579
  "df.wise.group.currencies-with-account-details": "Devises avec num\xE9ros de compte",
4475
4580
  "df.wise.group.popular": "Populaires",
4476
- "df.wise.group.recent": "R\xE9cents"
4581
+ "df.wise.group.recent": "R\xE9cents",
4582
+ "df.wise.step.scrollToBottom": "Faire d\xE9filer vers le bas"
4477
4583
  };
4478
4584
 
4479
4585
  // src/i18n/hu.json
@@ -4519,7 +4625,8 @@ var hu_default = {
4519
4625
  "df.wise.group.all": "\xD6sszes",
4520
4626
  "df.wise.group.currencies-with-account-details": "P\xE9nznemek sz\xE1mlaadatokkal",
4521
4627
  "df.wise.group.popular": "N\xE9pszer\u0171",
4522
- "df.wise.group.recent": "Legut\xF3bbi"
4628
+ "df.wise.group.recent": "Legut\xF3bbi",
4629
+ "df.wise.step.scrollToBottom": "G\xF6rgess legalulra"
4523
4630
  };
4524
4631
 
4525
4632
  // src/i18n/id.json
@@ -4565,7 +4672,8 @@ var id_default = {
4565
4672
  "df.wise.group.all": "Semua",
4566
4673
  "df.wise.group.currencies-with-account-details": "Mata uang dengan detail rekening",
4567
4674
  "df.wise.group.popular": "Populer",
4568
- "df.wise.group.recent": "Terbaru"
4675
+ "df.wise.group.recent": "Terbaru",
4676
+ "df.wise.step.scrollToBottom": "Gulir ke bawah"
4569
4677
  };
4570
4678
 
4571
4679
  // src/i18n/it.json
@@ -4611,7 +4719,8 @@ var it_default = {
4611
4719
  "df.wise.group.all": "Tutti",
4612
4720
  "df.wise.group.currencies-with-account-details": "Valute con estremi del conto",
4613
4721
  "df.wise.group.popular": "Popolari",
4614
- "df.wise.group.recent": "Recenti"
4722
+ "df.wise.group.recent": "Recenti",
4723
+ "df.wise.step.scrollToBottom": "Scorri fino in fondo"
4615
4724
  };
4616
4725
 
4617
4726
  // src/i18n/ja.json
@@ -4657,7 +4766,8 @@ var ja_default = {
4657
4766
  "df.wise.group.all": "\u3059\u3079\u3066",
4658
4767
  "df.wise.group.currencies-with-account-details": "\u53E3\u5EA7\u60C5\u5831\u3092\u53D6\u5F97\u3067\u304D\u308B\u901A\u8CA8",
4659
4768
  "df.wise.group.popular": "\u4EBA\u6C17",
4660
- "df.wise.group.recent": "\u6700\u8FD1"
4769
+ "df.wise.group.recent": "\u6700\u8FD1",
4770
+ "df.wise.step.scrollToBottom": "\u4E0B\u307E\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B"
4661
4771
  };
4662
4772
 
4663
4773
  // src/i18n/nl.json
@@ -4703,7 +4813,8 @@ var nl_default = {
4703
4813
  "df.wise.group.all": "Alles",
4704
4814
  "df.wise.group.currencies-with-account-details": "Valuta's met rekeninggegevens",
4705
4815
  "df.wise.group.popular": "Populair",
4706
- "df.wise.group.recent": "Recent"
4816
+ "df.wise.group.recent": "Recent",
4817
+ "df.wise.step.scrollToBottom": "Scrol omlaag"
4707
4818
  };
4708
4819
 
4709
4820
  // src/i18n/pl.json
@@ -4749,7 +4860,8 @@ var pl_default = {
4749
4860
  "df.wise.group.all": "Wszystkie",
4750
4861
  "df.wise.group.currencies-with-account-details": "Waluty z danymi bankowymi",
4751
4862
  "df.wise.group.popular": "Popularne",
4752
- "df.wise.group.recent": "Ostatnie"
4863
+ "df.wise.group.recent": "Ostatnie",
4864
+ "df.wise.step.scrollToBottom": "Przewi\u0144 w d\xF3\u0142"
4753
4865
  };
4754
4866
 
4755
4867
  // src/i18n/pt.json
@@ -4795,7 +4907,8 @@ var pt_default = {
4795
4907
  "df.wise.group.all": "Todos",
4796
4908
  "df.wise.group.currencies-with-account-details": "Moedas com dados de conta",
4797
4909
  "df.wise.group.popular": "Popular",
4798
- "df.wise.group.recent": "Recente"
4910
+ "df.wise.group.recent": "Recente",
4911
+ "df.wise.step.scrollToBottom": "Descer at\xE9 o final da p\xE1gina"
4799
4912
  };
4800
4913
 
4801
4914
  // src/i18n/ro.json
@@ -4841,7 +4954,8 @@ var ro_default = {
4841
4954
  "df.wise.group.all": "Toate",
4842
4955
  "df.wise.group.currencies-with-account-details": "Monede cu detalii de cont",
4843
4956
  "df.wise.group.popular": "Populare",
4844
- "df.wise.group.recent": "Recente"
4957
+ "df.wise.group.recent": "Recente",
4958
+ "df.wise.step.scrollToBottom": "Deruleaz\u0103 \xEEn jos"
4845
4959
  };
4846
4960
 
4847
4961
  // src/i18n/ru.json
@@ -4887,7 +5001,8 @@ var ru_default = {
4887
5001
  "df.wise.group.all": "\u0412\u0441\u0435",
4888
5002
  "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",
4889
5003
  "df.wise.group.popular": "\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u0435",
4890
- "df.wise.group.recent": "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435"
5004
+ "df.wise.group.recent": "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435",
5005
+ "df.wise.step.scrollToBottom": "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0432\u043D\u0438\u0437"
4891
5006
  };
4892
5007
 
4893
5008
  // src/i18n/th.json
@@ -4933,7 +5048,8 @@ var th_default = {
4933
5048
  "df.wise.group.all": "\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",
4934
5049
  "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",
4935
5050
  "df.wise.group.popular": "\u0E2A\u0E01\u0E38\u0E25\u0E22\u0E2D\u0E14\u0E19\u0E34\u0E22\u0E21",
4936
- "df.wise.group.recent": "\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14"
5051
+ "df.wise.group.recent": "\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14",
5052
+ "df.wise.step.scrollToBottom": "\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07"
4937
5053
  };
4938
5054
 
4939
5055
  // src/i18n/tr.json
@@ -4979,7 +5095,8 @@ var tr_default = {
4979
5095
  "df.wise.group.all": "T\xFCm\xFC",
4980
5096
  "df.wise.group.currencies-with-account-details": "Hesap bilgileri olan bakiyeler",
4981
5097
  "df.wise.group.popular": "Pop\xFCler",
4982
- "df.wise.group.recent": "Yak\u0131n zamanl\u0131"
5098
+ "df.wise.group.recent": "Yak\u0131n zamanl\u0131",
5099
+ "df.wise.step.scrollToBottom": "A\u015Fa\u011F\u0131 kayd\u0131r"
4983
5100
  };
4984
5101
 
4985
5102
  // src/i18n/zh_CN.json
@@ -5025,7 +5142,8 @@ var zh_CN_default = {
5025
5142
  "df.wise.group.all": "\u5168\u90E8",
5026
5143
  "df.wise.group.currencies-with-account-details": "\u5E26\u6709\u8D26\u6237\u8BE6\u7EC6\u4FE1\u606F\u7684\u8D27\u5E01",
5027
5144
  "df.wise.group.popular": "\u70ED\u95E8",
5028
- "df.wise.group.recent": "\u6700\u8FD1"
5145
+ "df.wise.group.recent": "\u6700\u8FD1",
5146
+ "df.wise.step.scrollToBottom": "\u6EDA\u52A8\u5230\u5E95\u90E8"
5029
5147
  };
5030
5148
 
5031
5149
  // src/i18n/zh_HK.json
@@ -5071,7 +5189,8 @@ var zh_HK_default = {
5071
5189
  "df.wise.group.all": "\u5168\u90E8",
5072
5190
  "df.wise.group.currencies-with-account-details": "\u63D0\u4F9B\u8CEC\u6236\u8CC7\u6599\u7684\u8CA8\u5E63",
5073
5191
  "df.wise.group.popular": "\u71B1\u9580",
5074
- "df.wise.group.recent": "\u6700\u8FD1\u7684"
5192
+ "df.wise.group.recent": "\u6700\u8FD1\u7684",
5193
+ "df.wise.step.scrollToBottom": "\u6ED1\u52D5\u5230\u6700\u5E95\u90E8"
5075
5194
  };
5076
5195
 
5077
5196
  // src/i18n/index.ts
@@ -5107,7 +5226,7 @@ var i18n_default = translations;
5107
5226
  export {
5108
5227
  DynamicFlow,
5109
5228
  DynamicFlowWithRef,
5110
- Header11 as Header,
5229
+ Header10 as Header,
5111
5230
  Media2 as Media,
5112
5231
  findRendererPropsByType,
5113
5232
  getMargin2 as getMargin,