@wise/dynamic-flow-client-internal 4.22.0 → 4.23.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
@@ -45,7 +45,7 @@ var cs_default = {
45
45
  "df.wise.ArraySchema.maxItemsError": "P\u0159idejte {maxItems} nebo m\xE9n\u011B.",
46
46
  "df.wise.ArraySchema.minItemsError": "P\u0159idejte alespo\u0148 {minItems}.",
47
47
  "df.wise.ArraySchema.removeItem": "Odebrat",
48
- "df.wise.ButtonLayout.buttonLoadingMessage": "This might take a few seconds",
48
+ "df.wise.ButtonLayout.buttonLoadingMessage": "M\u016F\u017Ee to trvat p\xE1r sekund",
49
49
  "df.wise.ControlFeedback.maxLength": "Zadejte {maxLength} nebo m\xE9n\u011B znak\u016F.",
50
50
  "df.wise.ControlFeedback.maximum": "Zadejte \u010D\xEDslo, kter\xE9 je {maximum} nebo men\u0161\xED.",
51
51
  "df.wise.ControlFeedback.maximumDate": "Zadejte datum, kter\xE9 je {maximum} nebo p\u0159edt\xEDm.",
@@ -499,10 +499,10 @@ var pl_default = {
499
499
  "df.wise.CopyFeedback.copy": "Skopiowano do schowka",
500
500
  "df.wise.CopyFeedback.copyFailed": "Nie uda\u0142o si\u0119 skopiowa\u0107 do schowka",
501
501
  "df.wise.Decision.all": "Wszystkie",
502
- "df.wise.Decision.filterPlaceholder": "Start typing to search",
502
+ "df.wise.Decision.filterPlaceholder": "Zacznij pisa\u0107, \u017Ceby wyszuka\u0107",
503
503
  "df.wise.Decision.noResults": "Brak wynik\xF3w",
504
504
  "df.wise.Decision.popular": "Popularne",
505
- "df.wise.Decision.recent": "Ostatni",
505
+ "df.wise.Decision.recent": "Ostatnie",
506
506
  "df.wise.Decision.results": "Wyniki wyszukiwania",
507
507
  "df.wise.DynamicParagraph.copied": "Skopiowano do schowka",
508
508
  "df.wise.DynamicParagraph.copy": "Kopiuj",
@@ -587,7 +587,7 @@ var ro_default = {
587
587
  "df.wise.CopyFeedback.copy": "Copiat \xEEn clipboard",
588
588
  "df.wise.CopyFeedback.copyFailed": "Copierea \xEEn clipboard a e\u0219uat",
589
589
  "df.wise.Decision.all": "Toate",
590
- "df.wise.Decision.filterPlaceholder": "Start typing to search",
590
+ "df.wise.Decision.filterPlaceholder": "\xCEncepe s\u0103 tastezi pentru a c\u0103uta",
591
591
  "df.wise.Decision.noResults": "Niciun rezultat",
592
592
  "df.wise.Decision.popular": "Populare",
593
593
  "df.wise.Decision.recent": "Recente",
@@ -869,9 +869,8 @@ import {
869
869
  DynamicFormCore
870
870
  } from "@wise/dynamic-flow-client";
871
871
 
872
- // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
873
- import { Button, InlineAlert } from "@transferwise/components";
874
- import { useIntl } from "react-intl";
872
+ // ../renderers/src/AlertRenderer.tsx
873
+ import { Alert } from "@transferwise/components";
875
874
 
876
875
  // ../renderers/src/utils/layout-utils.ts
877
876
  var getMargin = (size) => {
@@ -903,6 +902,59 @@ var getTextAlignment = (align) => {
903
902
  };
904
903
  var getTextAlignmentAndMargin = (component) => `${getTextAlignment(component.align)} ${getMargin(component.margin)}`;
905
904
 
905
+ // ../renderers/src/AlertRenderer.tsx
906
+ import { jsx } from "react/jsx-runtime";
907
+ var AlertRenderer = {
908
+ canRenderType: "alert",
909
+ render: ({ context, markdown, margin, callToAction }) => /* @__PURE__ */ jsx(
910
+ Alert,
911
+ {
912
+ type: context,
913
+ className: getMargin(margin),
914
+ message: markdown,
915
+ action: mapCtaToAlertAction(callToAction)
916
+ }
917
+ )
918
+ };
919
+ var mapCtaToAlertAction = (callToAction) => {
920
+ if (callToAction) {
921
+ return __spreadValues(__spreadValues({
922
+ text: callToAction.title,
923
+ "aria-label": callToAction.accessibilityDescription
924
+ }, "onClick" in callToAction ? { onClick: callToAction.onClick } : {}), callToAction.type === "link" ? { href: callToAction.href, target: "_blank" } : {});
925
+ }
926
+ return void 0;
927
+ };
928
+ var AlertRenderer_default = AlertRenderer;
929
+
930
+ // ../renderers/src/BoxRenderer.tsx
931
+ import classNames from "classnames";
932
+ import { jsx as jsx2 } from "react/jsx-runtime";
933
+ var BoxRenderer = {
934
+ canRenderType: "box",
935
+ render: ({ children, control, margin, width }) => {
936
+ const hasFixedWidth = width !== "xl";
937
+ const hasBorder = control === "bordered" || control === "bordered-web";
938
+ const contents = /* @__PURE__ */ jsx2(
939
+ "div",
940
+ {
941
+ className: classNames({
942
+ "df-box-renderer-border": hasBorder,
943
+ [`df-box-renderer-width-${width}`]: hasFixedWidth,
944
+ [getMargin(margin)]: !hasFixedWidth
945
+ }),
946
+ children
947
+ }
948
+ );
949
+ return hasFixedWidth ? /* @__PURE__ */ jsx2("div", { className: classNames("df-box-renderer-fixed-width", getMargin(margin)), children: contents }) : contents;
950
+ }
951
+ };
952
+ var BoxRenderer_default = BoxRenderer;
953
+
954
+ // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
955
+ import { Button, InlineAlert } from "@transferwise/components";
956
+ import { useIntl } from "react-intl";
957
+
906
958
  // ../renderers/src/messages/loading-button.messages.ts
907
959
  import { defineMessages } from "react-intl";
908
960
  var loading_button_messages_default = defineMessages({
@@ -915,7 +967,7 @@ var loading_button_messages_default = defineMessages({
915
967
 
916
968
  // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
917
969
  import { useEffect, useState } from "react";
918
- import { jsx, jsxs } from "react/jsx-runtime";
970
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
919
971
  var AddressValidationButtonRenderer = {
920
972
  canRenderType: "button",
921
973
  canRender: ({ control }) => control === "address-validation",
@@ -931,7 +983,7 @@ function AddressValidationButtonComponent(props) {
931
983
  }
932
984
  }, [stepLoadingState]);
933
985
  return /* @__PURE__ */ jsxs("div", { className: `d-flex flex-column ${getMargin(margin)}`, children: [
934
- /* @__PURE__ */ jsx(
986
+ /* @__PURE__ */ jsx3(
935
987
  Button,
936
988
  {
937
989
  v2: true,
@@ -947,61 +999,11 @@ function AddressValidationButtonComponent(props) {
947
999
  children: title
948
1000
  }
949
1001
  ),
950
- spinny && /* @__PURE__ */ jsx(InlineAlert, { type: "warning", className: "m-x-auto", children: formatMessage(loading_button_messages_default.buttonLoadingMessage) })
1002
+ spinny && /* @__PURE__ */ jsx3(InlineAlert, { type: "warning", className: "m-x-auto", children: formatMessage(loading_button_messages_default.buttonLoadingMessage) })
951
1003
  ] });
952
1004
  }
953
1005
  var AddressValidationButtonRenderer_default = AddressValidationButtonRenderer;
954
1006
 
955
- // ../renderers/src/AlertRenderer.tsx
956
- import { Alert } from "@transferwise/components";
957
- import { jsx as jsx2 } from "react/jsx-runtime";
958
- var AlertRenderer = {
959
- canRenderType: "alert",
960
- render: ({ context, markdown, margin, callToAction }) => /* @__PURE__ */ jsx2(
961
- Alert,
962
- {
963
- type: context,
964
- className: getMargin(margin),
965
- message: markdown,
966
- action: mapCtaToAlertAction(callToAction)
967
- }
968
- )
969
- };
970
- var mapCtaToAlertAction = (callToAction) => {
971
- if (callToAction) {
972
- return __spreadValues(__spreadValues({
973
- text: callToAction.title,
974
- "aria-label": callToAction.accessibilityDescription
975
- }, "onClick" in callToAction ? { onClick: callToAction.onClick } : {}), callToAction.type === "link" ? { href: callToAction.href, target: "_blank" } : {});
976
- }
977
- return void 0;
978
- };
979
- var AlertRenderer_default = AlertRenderer;
980
-
981
- // ../renderers/src/BoxRenderer.tsx
982
- import classNames from "classnames";
983
- import { jsx as jsx3 } from "react/jsx-runtime";
984
- var BoxRenderer = {
985
- canRenderType: "box",
986
- render: ({ children, control, margin, width }) => {
987
- const hasFixedWidth = width !== "xl";
988
- const hasBorder = control === "bordered" || control === "bordered-web";
989
- const contents = /* @__PURE__ */ jsx3(
990
- "div",
991
- {
992
- className: classNames({
993
- "df-box-renderer-border": hasBorder,
994
- [`df-box-renderer-width-${width}`]: hasFixedWidth,
995
- [getMargin(margin)]: !hasFixedWidth
996
- }),
997
- children
998
- }
999
- );
1000
- return hasFixedWidth ? /* @__PURE__ */ jsx3("div", { className: classNames("df-box-renderer-fixed-width", getMargin(margin)), children: contents }) : contents;
1001
- }
1002
- };
1003
- var BoxRenderer_default = BoxRenderer;
1004
-
1005
1007
  // ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
1006
1008
  import { Button as Button2 } from "@transferwise/components";
1007
1009
  import { useEffect as useEffect2, useState as useState2 } from "react";
@@ -1483,9 +1485,10 @@ var resolveUri = (uri, size) => {
1483
1485
  var _a, _b;
1484
1486
  const { name, qComponents = [] } = stringToURN(uri);
1485
1487
  if (isValidIconUrn(name)) {
1488
+ const icon = /* @__PURE__ */ jsx16(DynamicIcon_default, { name: name.replace("urn:wise:icons:", "") });
1486
1489
  return {
1487
- asset: /* @__PURE__ */ jsx16(DynamicIcon_default, { name: name.replace("urn:wise:icons:", "") }),
1488
- backgroundColor: (_a = qComponents.find(([key]) => key === "background-color")) == null ? void 0 : _a[1]
1490
+ icon,
1491
+ backgroundColor: formatColor((_a = qComponents.find(([key]) => key === "background-color")) == null ? void 0 : _a[1])
1489
1492
  };
1490
1493
  }
1491
1494
  if (isUrnFlag(name)) {
@@ -1497,7 +1500,7 @@ var resolveUri = (uri, size) => {
1497
1500
  const text = decodeURI(name.replace("data:text/plain,", ""));
1498
1501
  return {
1499
1502
  asset: text,
1500
- backgroundColor: (_b = qComponents.find(([key]) => key === "background-color")) == null ? void 0 : _b[1]
1503
+ backgroundColor: formatColor((_b = qComponents.find(([key]) => key === "background-color")) == null ? void 0 : _b[1])
1501
1504
  };
1502
1505
  }
1503
1506
  if (!uri.startsWith("urn:")) {
@@ -1505,6 +1508,15 @@ var resolveUri = (uri, size) => {
1505
1508
  }
1506
1509
  return { asset: void 0 };
1507
1510
  };
1511
+ var formatColor = (color) => {
1512
+ if (!color) {
1513
+ return void 0;
1514
+ }
1515
+ if (color.startsWith("#")) {
1516
+ return color;
1517
+ }
1518
+ return `var(--color-${color.replace(/^base-|brand-/, "")})`;
1519
+ };
1508
1520
 
1509
1521
  // ../renderers/src/components/Media/AvatarMedia.tsx
1510
1522
  import { AvatarLayout, AvatarView } from "@transferwise/components";
@@ -1519,24 +1531,29 @@ var AvatarMedia = ({
1519
1531
  return { asset: avatar.text };
1520
1532
  }
1521
1533
  return __spreadProps(__spreadValues({}, resolveUri(avatar.uri, size)), {
1522
- badge: avatar.badgeUri ? resolveUri(avatar.badgeUri, 16).asset : void 0
1534
+ badge: avatar.badgeUri ? resolveUri(avatar.badgeUri, 16) : void 0
1523
1535
  });
1524
1536
  };
1525
1537
  const avatars = content.map(getRenderableAvatar);
1526
1538
  if (avatars.length === 1) {
1527
- const { badge, backgroundColor, asset } = avatars[0];
1539
+ const { badge, backgroundColor, asset, icon } = avatars[0];
1540
+ if (!asset && !icon) {
1541
+ return null;
1542
+ }
1528
1543
  return /* @__PURE__ */ jsx17(
1529
1544
  AvatarView,
1530
1545
  {
1531
1546
  "aria-label": accessibilityDescription,
1532
1547
  size,
1533
- badge: { asset: badge },
1548
+ badge: badge ? __spreadProps(__spreadValues({}, badge), {
1549
+ type: "reference"
1550
+ }) : void 0,
1534
1551
  style: { backgroundColor },
1535
- children: asset
1552
+ children: icon != null ? icon : asset
1536
1553
  }
1537
1554
  );
1538
1555
  }
1539
- const avatarsWithoutBadges = avatars.map((_a) => {
1556
+ const avatarsWithoutBadges = avatars.filter(({ asset }) => asset).slice(0, 2).map((_a) => {
1540
1557
  var _b = _a, { badge } = _b, rest = __objRest(_b, ["badge"]);
1541
1558
  return __spreadValues({}, rest);
1542
1559
  });
@@ -1557,7 +1574,7 @@ import { jsx as jsx18 } from "react/jsx-runtime";
1557
1574
  var getBadgedMedia = (iconNode, imageNode, size) => {
1558
1575
  if (iconNode && imageNode) {
1559
1576
  if (imageNode && iconNode) {
1560
- return /* @__PURE__ */ jsx18(AvatarView2, { size, badge: { asset: iconNode }, children: imageNode });
1577
+ return /* @__PURE__ */ jsx18(AvatarView2, { size, badge: { asset: iconNode, type: "reference" }, children: imageNode });
1561
1578
  }
1562
1579
  }
1563
1580
  return null;
@@ -2012,9 +2029,9 @@ function UrnFlagImage({
2012
2029
  // ../renderers/src/ImageRenderer/UrnIllustration.tsx
2013
2030
  import {
2014
2031
  Illustration,
2015
- Illustration3D,
2016
2032
  isIllustrationSupport3D
2017
2033
  } from "@wise/art";
2034
+ import { useState as useState5 } from "react";
2018
2035
 
2019
2036
  // ../renderers/src/ImageRenderer/isAnimated.ts
2020
2037
  var isAnimated = (uri) => {
@@ -2023,8 +2040,39 @@ var isAnimated = (uri) => {
2023
2040
  return (_a = rComponents == null ? void 0 : rComponents.some(([key, value]) => key === "type" && value === "animated")) != null ? _a : false;
2024
2041
  };
2025
2042
 
2026
- // ../renderers/src/ImageRenderer/UrnIllustration.tsx
2043
+ // ../renderers/src/ImageRenderer/SafeIllustration3D.tsx
2044
+ import { Illustration3D } from "@wise/art";
2045
+ import { Component } from "react";
2027
2046
  import { jsx as jsx33 } from "react/jsx-runtime";
2047
+ var Illustration3DErrorBoundary = class extends Component {
2048
+ constructor(props) {
2049
+ super(props);
2050
+ this.state = { hasError: false };
2051
+ }
2052
+ static getDerivedStateFromError() {
2053
+ return { hasError: true };
2054
+ }
2055
+ componentDidCatch() {
2056
+ this.props.onError();
2057
+ }
2058
+ render() {
2059
+ if (this.state.hasError) {
2060
+ return null;
2061
+ }
2062
+ return this.props.children;
2063
+ }
2064
+ };
2065
+ var SafeIllustration3D = ({
2066
+ name,
2067
+ size,
2068
+ onError
2069
+ }) => {
2070
+ return /* @__PURE__ */ jsx33(Illustration3DErrorBoundary, { onError, children: /* @__PURE__ */ jsx33(Illustration3D, { name, size }) });
2071
+ };
2072
+ var SafeIllustration3D_default = SafeIllustration3D;
2073
+
2074
+ // ../renderers/src/ImageRenderer/UrnIllustration.tsx
2075
+ import { jsx as jsx34 } from "react/jsx-runtime";
2028
2076
  var urnPrefix = "urn:wise:illustrations:";
2029
2077
  var isUrnIllustration = (uri) => uri.startsWith(urnPrefix);
2030
2078
  function UrnIllustration({
@@ -2034,13 +2082,21 @@ function UrnIllustration({
2034
2082
  size,
2035
2083
  uri
2036
2084
  }) {
2085
+ const [has3DFailed, setHas3DFailed] = useState5(false);
2037
2086
  const illustrationSize = getIllustrationSize(size);
2038
2087
  const illustrationName = getIllustrationName(uri);
2039
2088
  const illustration3DName = getIllustration3DName(uri);
2040
- if (illustration3DName && isAnimated(uri)) {
2041
- return /* @__PURE__ */ jsx33("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx33(Illustration3D, { name: illustration3DName, size: illustrationSize }) });
2089
+ if (illustration3DName && isAnimated(uri) && !has3DFailed) {
2090
+ return /* @__PURE__ */ jsx34("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx34(
2091
+ SafeIllustration3D_default,
2092
+ {
2093
+ name: illustration3DName,
2094
+ size: illustrationSize,
2095
+ onError: () => setHas3DFailed(true)
2096
+ }
2097
+ ) });
2042
2098
  }
2043
- return /* @__PURE__ */ jsx33("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx33(
2099
+ return /* @__PURE__ */ jsx34("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ jsx34(
2044
2100
  Illustration,
2045
2101
  {
2046
2102
  className: "df-illustration",
@@ -2060,24 +2116,24 @@ var getIllustration3DName = (uri) => {
2060
2116
  };
2061
2117
 
2062
2118
  // ../renderers/src/ImageRenderer/UrnImage.tsx
2063
- import { jsx as jsx34 } from "react/jsx-runtime";
2119
+ import { jsx as jsx35 } from "react/jsx-runtime";
2064
2120
  var isUrnImage = (uri) => uri.startsWith("urn:");
2065
2121
  function UrnImage(props) {
2066
2122
  const { uri } = props;
2067
2123
  if (isUrnIllustration(uri)) {
2068
- return /* @__PURE__ */ jsx34(UrnIllustration, __spreadValues({}, props));
2124
+ return /* @__PURE__ */ jsx35(UrnIllustration, __spreadValues({}, props));
2069
2125
  }
2070
2126
  if (isUrnFlag(uri)) {
2071
- return /* @__PURE__ */ jsx34(UrnFlagImage, __spreadValues({}, props));
2127
+ return /* @__PURE__ */ jsx35(UrnFlagImage, __spreadValues({}, props));
2072
2128
  }
2073
2129
  return null;
2074
2130
  }
2075
2131
 
2076
2132
  // ../renderers/src/ImageRenderer/ImageRenderer.tsx
2077
- import { jsx as jsx35 } from "react/jsx-runtime";
2133
+ import { jsx as jsx36 } from "react/jsx-runtime";
2078
2134
  var ImageRenderer = {
2079
2135
  canRenderType: "image",
2080
- render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */ jsx35(UrnImage, __spreadValues({}, props)) : /* @__PURE__ */ jsx35(UrlImage, __spreadValues({}, props))
2136
+ render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */ jsx36(UrnImage, __spreadValues({}, props)) : /* @__PURE__ */ jsx36(UrlImage, __spreadValues({}, props))
2081
2137
  };
2082
2138
 
2083
2139
  // ../renderers/src/ImageRenderer/index.tsx
@@ -2085,7 +2141,7 @@ var ImageRenderer_default = ImageRenderer;
2085
2141
 
2086
2142
  // ../renderers/src/InstructionsRenderer.tsx
2087
2143
  import { Header as Header4, InstructionsList } from "@transferwise/components";
2088
- import { jsx as jsx36, jsxs as jsxs8 } from "react/jsx-runtime";
2144
+ import { jsx as jsx37, jsxs as jsxs8 } from "react/jsx-runtime";
2089
2145
  var doContext = ["positive", "neutral"];
2090
2146
  var dontContext = ["warning", "negative"];
2091
2147
  var InstructionsRenderer = {
@@ -2094,8 +2150,8 @@ var InstructionsRenderer = {
2094
2150
  const dos = items.filter((item) => doContext.includes(item.context)).map(({ text }) => text);
2095
2151
  const donts = items.filter((item) => dontContext.includes(item.context)).map(({ text }) => text);
2096
2152
  return /* @__PURE__ */ jsxs8("div", { className: getMargin(margin), children: [
2097
- title ? /* @__PURE__ */ jsx36(Header4, { title }) : null,
2098
- /* @__PURE__ */ jsx36(InstructionsList, { dos, donts })
2153
+ title ? /* @__PURE__ */ jsx37(Header4, { title }) : null,
2154
+ /* @__PURE__ */ jsx37(InstructionsList, { dos, donts })
2099
2155
  ] });
2100
2156
  }
2101
2157
  };
@@ -2127,7 +2183,7 @@ function pick(obj, ...keys) {
2127
2183
  }
2128
2184
 
2129
2185
  // ../renderers/src/IntegerInputRenderer.tsx
2130
- import { jsx as jsx37 } from "react/jsx-runtime";
2186
+ import { jsx as jsx38 } from "react/jsx-runtime";
2131
2187
  var IntegerInputRenderer = {
2132
2188
  canRenderType: "input-integer",
2133
2189
  render: (props) => {
@@ -2142,7 +2198,7 @@ var IntegerInputRenderer = {
2142
2198
  "maximum",
2143
2199
  "minimum"
2144
2200
  );
2145
- return /* @__PURE__ */ jsx37(
2201
+ return /* @__PURE__ */ jsx38(
2146
2202
  FieldInput_default,
2147
2203
  {
2148
2204
  id,
@@ -2150,7 +2206,7 @@ var IntegerInputRenderer = {
2150
2206
  description,
2151
2207
  validation: validationState,
2152
2208
  help,
2153
- children: /* @__PURE__ */ jsx37(InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx37(
2209
+ children: /* @__PURE__ */ jsx38(InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx38(
2154
2210
  Input,
2155
2211
  __spreadValues({
2156
2212
  id,
@@ -2175,12 +2231,12 @@ var IntegerInputRenderer_default = IntegerInputRenderer;
2175
2231
  // ../renderers/src/ListRenderer.tsx
2176
2232
  import { Body, Header as Header5 } from "@transferwise/components";
2177
2233
  import classNames3 from "classnames";
2178
- import { jsx as jsx38, jsxs as jsxs9 } from "react/jsx-runtime";
2234
+ import { jsx as jsx39, jsxs as jsxs9 } from "react/jsx-runtime";
2179
2235
  var ListRenderer = {
2180
2236
  canRenderType: "list",
2181
2237
  render: ({ callToAction, control, margin, items, title }) => /* @__PURE__ */ jsxs9("div", { className: getMargin(margin), children: [
2182
- (title || callToAction) && /* @__PURE__ */ jsx38(Header5, { as: "h2", title: title != null ? title : "", action: getListAction(callToAction) }),
2183
- items.map((props) => /* @__PURE__ */ jsx38(DesignSystemListItem, __spreadProps(__spreadValues({}, props), { control }), props.title))
2238
+ (title || callToAction) && /* @__PURE__ */ jsx39(Header5, { as: "h2", title: title != null ? title : "", action: getListAction(callToAction) }),
2239
+ items.map((props) => /* @__PURE__ */ jsx39(DesignSystemListItem, __spreadProps(__spreadValues({}, props), { control }), props.title))
2184
2240
  ] })
2185
2241
  };
2186
2242
  var DesignSystemListItem = ({
@@ -2192,7 +2248,7 @@ var DesignSystemListItem = ({
2192
2248
  media,
2193
2249
  control,
2194
2250
  tag
2195
- }) => /* @__PURE__ */ jsx38(
2251
+ }) => /* @__PURE__ */ jsx39(
2196
2252
  "label",
2197
2253
  {
2198
2254
  className: classNames3("np-option p-a-2", {
@@ -2200,7 +2256,7 @@ var DesignSystemListItem = ({
2200
2256
  "np-option__container-aligned": true
2201
2257
  }),
2202
2258
  children: /* @__PURE__ */ jsxs9("div", { className: "media", children: [
2203
- icon || image || media ? /* @__PURE__ */ jsx38("div", { className: "media-left", children: /* @__PURE__ */ jsx38(
2259
+ icon || image || media ? /* @__PURE__ */ jsx39("div", { className: "media-left", children: /* @__PURE__ */ jsx39(
2204
2260
  ListItemMedia,
2205
2261
  {
2206
2262
  icon,
@@ -2210,12 +2266,12 @@ var DesignSystemListItem = ({
2210
2266
  ) }) : null,
2211
2267
  /* @__PURE__ */ jsxs9("div", { className: "media-body", children: [
2212
2268
  /* @__PURE__ */ jsxs9("div", { className: "d-flex justify-content-between", children: [
2213
- /* @__PURE__ */ jsx38("h4", { className: "np-text-body-large-bold text-primary np-option__title", children: title }),
2214
- /* @__PURE__ */ jsx38("h4", { className: "np-text-body-large-bold text-primary np-option__title", children: supportingValues == null ? void 0 : supportingValues.value })
2269
+ /* @__PURE__ */ jsx39("h4", { className: "np-text-body-large-bold text-primary np-option__title", children: title }),
2270
+ /* @__PURE__ */ jsx39("h4", { className: "np-text-body-large-bold text-primary np-option__title", children: supportingValues == null ? void 0 : supportingValues.value })
2215
2271
  ] }),
2216
2272
  /* @__PURE__ */ jsxs9("div", { className: "d-flex justify-content-between", children: [
2217
- /* @__PURE__ */ jsx38(Body, { className: "d-block np-option__body", children: description }),
2218
- /* @__PURE__ */ jsx38(Body, { className: "d-block np-option__body", children: supportingValues == null ? void 0 : supportingValues.subvalue })
2273
+ /* @__PURE__ */ jsx39(Body, { className: "d-block np-option__body", children: description }),
2274
+ /* @__PURE__ */ jsx39(Body, { className: "d-block np-option__body", children: supportingValues == null ? void 0 : supportingValues.subvalue })
2219
2275
  ] })
2220
2276
  ] })
2221
2277
  ] })
@@ -2228,9 +2284,9 @@ var ListItemMedia = ({
2228
2284
  preferAvatar
2229
2285
  }) => {
2230
2286
  if (icon) {
2231
- return /* @__PURE__ */ jsx38("div", { className: "circle circle-sm text-primary circle-inverse", children: /* @__PURE__ */ jsx38(OptionMedia, { media, preferAvatar }) });
2287
+ return /* @__PURE__ */ jsx39("div", { className: "circle circle-sm text-primary circle-inverse", children: /* @__PURE__ */ jsx39(OptionMedia, { media, preferAvatar }) });
2232
2288
  }
2233
- return /* @__PURE__ */ jsx38("div", { className: "np-option__no-media-circle", children: /* @__PURE__ */ jsx38(OptionMedia, { media, preferAvatar }) });
2289
+ return /* @__PURE__ */ jsx39("div", { className: "np-option__no-media-circle", children: /* @__PURE__ */ jsx39(OptionMedia, { media, preferAvatar }) });
2234
2290
  };
2235
2291
  var getListAction = (callToAction) => {
2236
2292
  if (callToAction) {
@@ -2246,10 +2302,10 @@ var ListRenderer_default = ListRenderer;
2246
2302
 
2247
2303
  // ../renderers/src/LoadingIndicatorRenderer.tsx
2248
2304
  import { Loader } from "@transferwise/components";
2249
- import { jsx as jsx39 } from "react/jsx-runtime";
2305
+ import { jsx as jsx40 } from "react/jsx-runtime";
2250
2306
  var LoadingIndicatorRenderer = {
2251
2307
  canRenderType: "loading-indicator",
2252
- render: ({ margin, size }) => /* @__PURE__ */ jsx39(
2308
+ render: ({ margin, size }) => /* @__PURE__ */ jsx40(
2253
2309
  Loader,
2254
2310
  {
2255
2311
  size,
@@ -2262,28 +2318,28 @@ var LoadingIndicatorRenderer_default = LoadingIndicatorRenderer;
2262
2318
 
2263
2319
  // ../renderers/src/MarkdownRenderer.tsx
2264
2320
  import { Markdown as Markdown3 } from "@transferwise/components";
2265
- import { jsx as jsx40 } from "react/jsx-runtime";
2321
+ import { jsx as jsx41 } from "react/jsx-runtime";
2266
2322
  var MarkdownRenderer = {
2267
2323
  canRenderType: "markdown",
2268
- render: ({ content, align, margin }) => /* @__PURE__ */ jsx40("div", { className: getTextAlignmentAndMargin({ align, margin }), children: /* @__PURE__ */ jsx40(Markdown3, { className: "np-text-body-large", config: { link: { target: "_blank" } }, children: content }) })
2324
+ render: ({ content, align, margin }) => /* @__PURE__ */ jsx41("div", { className: getTextAlignmentAndMargin({ align, margin }), children: /* @__PURE__ */ jsx41(Markdown3, { className: "np-text-body-large", config: { link: { target: "_blank" } }, children: content }) })
2269
2325
  };
2270
2326
  var MarkdownRenderer_default = MarkdownRenderer;
2271
2327
 
2272
2328
  // ../renderers/src/ModalLayoutRenderer.tsx
2273
2329
  import { Button as Button4, Modal as Modal2 } from "@transferwise/components";
2274
- import { useState as useState5 } from "react";
2275
- import { jsx as jsx41, jsxs as jsxs10 } from "react/jsx-runtime";
2330
+ import { useState as useState6 } from "react";
2331
+ import { jsx as jsx42, jsxs as jsxs10 } from "react/jsx-runtime";
2276
2332
  var ModalLayoutRenderer = {
2277
2333
  canRenderType: "modal-layout",
2278
- render: (props) => /* @__PURE__ */ jsx41(DFModal, __spreadValues({}, props))
2334
+ render: (props) => /* @__PURE__ */ jsx42(DFModal, __spreadValues({}, props))
2279
2335
  };
2280
2336
  var ModalLayoutRenderer_default = ModalLayoutRenderer;
2281
2337
  function DFModal({ content, margin, trigger }) {
2282
- const [visible, setVisible] = useState5(false);
2338
+ const [visible, setVisible] = useState6(false);
2283
2339
  const { children, title } = content;
2284
2340
  return /* @__PURE__ */ jsxs10("div", { className: getMargin(margin), children: [
2285
- /* @__PURE__ */ jsx41(Button4, { priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
2286
- /* @__PURE__ */ jsx41(
2341
+ /* @__PURE__ */ jsx42(Button4, { priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
2342
+ /* @__PURE__ */ jsx42(
2287
2343
  Modal2,
2288
2344
  {
2289
2345
  scroll: "content",
@@ -2299,17 +2355,17 @@ function DFModal({ content, margin, trigger }) {
2299
2355
 
2300
2356
  // ../renderers/src/ModalRenderer.tsx
2301
2357
  import { Modal as Modal3 } from "@transferwise/components";
2302
- import { jsx as jsx42 } from "react/jsx-runtime";
2358
+ import { jsx as jsx43 } from "react/jsx-runtime";
2303
2359
  var ModalRenderer = {
2304
2360
  canRenderType: "modal",
2305
2361
  render: ({ title, children, open, onClose }) => {
2306
- return /* @__PURE__ */ jsx42(Modal3, { open, title, body: children, onClose });
2362
+ return /* @__PURE__ */ jsx43(Modal3, { open, title, body: children, onClose });
2307
2363
  }
2308
2364
  };
2309
2365
 
2310
2366
  // ../renderers/src/MultiSelectInputRenderer.tsx
2311
2367
  import { SelectInput, SelectInputOptionContent } from "@transferwise/components";
2312
- import { useState as useState6 } from "react";
2368
+ import { useState as useState7 } from "react";
2313
2369
  import { useIntl as useIntl6 } from "react-intl";
2314
2370
 
2315
2371
  // ../renderers/src/messages/multi-select.messages.ts
@@ -2323,14 +2379,14 @@ var multi_select_messages_default = defineMessages5({
2323
2379
  });
2324
2380
 
2325
2381
  // ../renderers/src/MultiSelectInputRenderer.tsx
2326
- import { jsx as jsx43 } from "react/jsx-runtime";
2382
+ import { jsx as jsx44 } from "react/jsx-runtime";
2327
2383
  var MultiSelectInputRenderer = {
2328
2384
  canRenderType: "input-multi-select",
2329
- render: (props) => /* @__PURE__ */ jsx43(MultiSelectInputRendererComponent, __spreadValues({}, props))
2385
+ render: (props) => /* @__PURE__ */ jsx44(MultiSelectInputRendererComponent, __spreadValues({}, props))
2330
2386
  };
2331
2387
  function MultiSelectInputRendererComponent(props) {
2332
2388
  const { formatMessage } = useIntl6();
2333
- const [stagedIndices, setStagedIndices] = useState6();
2389
+ const [stagedIndices, setStagedIndices] = useState7();
2334
2390
  const {
2335
2391
  id,
2336
2392
  autoComplete,
@@ -2368,12 +2424,12 @@ function MultiSelectInputRendererComponent(props) {
2368
2424
  const contentProps = {
2369
2425
  title: option.title,
2370
2426
  description: option.description,
2371
- icon: /* @__PURE__ */ jsx43(OptionMedia, { media: option.media, preferAvatar: false })
2427
+ icon: /* @__PURE__ */ jsx44(OptionMedia, { media: option.media, preferAvatar: false })
2372
2428
  };
2373
- return /* @__PURE__ */ jsx43(SelectInputOptionContent, __spreadValues({}, contentProps));
2429
+ return /* @__PURE__ */ jsx44(SelectInputOptionContent, __spreadValues({}, contentProps));
2374
2430
  };
2375
2431
  const extraProps = { autoComplete };
2376
- return /* @__PURE__ */ jsx43(
2432
+ return /* @__PURE__ */ jsx44(
2377
2433
  FieldInput_default,
2378
2434
  {
2379
2435
  id,
@@ -2381,7 +2437,7 @@ function MultiSelectInputRendererComponent(props) {
2381
2437
  help,
2382
2438
  description,
2383
2439
  validation: validationState,
2384
- children: /* @__PURE__ */ jsx43(
2440
+ children: /* @__PURE__ */ jsx44(
2385
2441
  SelectInput,
2386
2442
  __spreadValues({
2387
2443
  id,
@@ -2426,7 +2482,7 @@ import { UploadInput } from "@transferwise/components";
2426
2482
  // ../renderers/src/components/UploadFieldInput.tsx
2427
2483
  import { InlineAlert as InlineAlert2 } from "@transferwise/components";
2428
2484
  import classNames4 from "classnames";
2429
- import { jsx as jsx44, jsxs as jsxs11 } from "react/jsx-runtime";
2485
+ import { jsx as jsx45, jsxs as jsxs11 } from "react/jsx-runtime";
2430
2486
  function UploadFieldInput({
2431
2487
  id,
2432
2488
  children,
@@ -2435,7 +2491,7 @@ function UploadFieldInput({
2435
2491
  help,
2436
2492
  validation
2437
2493
  }) {
2438
- const labelContent = label && help ? /* @__PURE__ */ jsx44(LabelContentWithHelp, { text: label, help }) : label;
2494
+ const labelContent = label && help ? /* @__PURE__ */ jsx45(LabelContentWithHelp, { text: label, help }) : label;
2439
2495
  const descriptionId = description ? `${id}-description` : void 0;
2440
2496
  return /* @__PURE__ */ jsxs11(
2441
2497
  "div",
@@ -2444,9 +2500,9 @@ function UploadFieldInput({
2444
2500
  "has-error": (validation == null ? void 0 : validation.status) === "invalid"
2445
2501
  }),
2446
2502
  children: [
2447
- /* @__PURE__ */ jsx44("label", { htmlFor: id, className: "control-label", children: labelContent }),
2503
+ /* @__PURE__ */ jsx45("label", { htmlFor: id, className: "control-label", children: labelContent }),
2448
2504
  children,
2449
- (validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */ jsx44(InlineAlert2, { type: "negative", id: descriptionId, children: validation.message })
2505
+ (validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */ jsx45(InlineAlert2, { type: "negative", id: descriptionId, children: validation.message })
2450
2506
  ]
2451
2507
  }
2452
2508
  );
@@ -2481,7 +2537,7 @@ var getSizeLimit = (maxSize) => {
2481
2537
  };
2482
2538
 
2483
2539
  // ../renderers/src/MultiUploadInputRenderer.tsx
2484
- import { jsx as jsx45 } from "react/jsx-runtime";
2540
+ import { jsx as jsx46 } from "react/jsx-runtime";
2485
2541
  var MultiUploadInputRenderer = {
2486
2542
  canRenderType: "input-upload-multi",
2487
2543
  render: (props) => {
@@ -2506,7 +2562,7 @@ var MultiUploadInputRenderer = {
2506
2562
  };
2507
2563
  const onDeleteFile = async (fileId) => onRemoveFile(value.findIndex((file) => file.id === fileId));
2508
2564
  const descriptionId = description ? `${id}-description` : void 0;
2509
- return /* @__PURE__ */ jsx45(
2565
+ return /* @__PURE__ */ jsx46(
2510
2566
  UploadFieldInput_default,
2511
2567
  {
2512
2568
  id,
@@ -2514,7 +2570,7 @@ var MultiUploadInputRenderer = {
2514
2570
  description,
2515
2571
  validation: validationState,
2516
2572
  help,
2517
- children: /* @__PURE__ */ jsx45(
2573
+ children: /* @__PURE__ */ jsx46(
2518
2574
  UploadInput,
2519
2575
  {
2520
2576
  id,
@@ -2538,7 +2594,7 @@ var MultiUploadInputRenderer_default = MultiUploadInputRenderer;
2538
2594
 
2539
2595
  // ../renderers/src/NumberInputRenderer.tsx
2540
2596
  import { Input as Input2, InputGroup as InputGroup2 } from "@transferwise/components";
2541
- import { jsx as jsx46 } from "react/jsx-runtime";
2597
+ import { jsx as jsx47 } from "react/jsx-runtime";
2542
2598
  var NumberInputRenderer = {
2543
2599
  canRenderType: "input-number",
2544
2600
  render: (props) => {
@@ -2552,7 +2608,7 @@ var NumberInputRenderer = {
2552
2608
  "maximum",
2553
2609
  "minimum"
2554
2610
  );
2555
- return /* @__PURE__ */ jsx46(
2611
+ return /* @__PURE__ */ jsx47(
2556
2612
  FieldInput_default,
2557
2613
  {
2558
2614
  id,
@@ -2560,7 +2616,7 @@ var NumberInputRenderer = {
2560
2616
  description,
2561
2617
  validation: validationState,
2562
2618
  help,
2563
- children: /* @__PURE__ */ jsx46(InputGroup2, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx46(
2619
+ children: /* @__PURE__ */ jsx47(InputGroup2, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx47(
2564
2620
  Input2,
2565
2621
  __spreadValues({
2566
2622
  id,
@@ -2612,17 +2668,17 @@ var paragraph_messages_default = defineMessages6({
2612
2668
  });
2613
2669
 
2614
2670
  // ../renderers/src/ParagraphRenderer.tsx
2615
- import { jsx as jsx47, jsxs as jsxs12 } from "react/jsx-runtime";
2671
+ import { jsx as jsx48, jsxs as jsxs12 } from "react/jsx-runtime";
2616
2672
  var ParagraphRenderer = {
2617
2673
  canRenderType: "paragraph",
2618
- render: (props) => /* @__PURE__ */ jsx47(Paragraph, __spreadValues({}, props))
2674
+ render: (props) => /* @__PURE__ */ jsx48(Paragraph, __spreadValues({}, props))
2619
2675
  };
2620
2676
  function Paragraph({ align, control, margin, text }) {
2621
2677
  const className = getTextAlignmentAndMargin({ align, margin });
2622
- return control === "copyable" ? /* @__PURE__ */ jsx47(CopyableParagraph, { className, align, text }) : /* @__PURE__ */ jsx47(StandardParagraph, { className, text });
2678
+ return control === "copyable" ? /* @__PURE__ */ jsx48(CopyableParagraph, { className, align, text }) : /* @__PURE__ */ jsx48(StandardParagraph, { className, text });
2623
2679
  }
2624
2680
  function StandardParagraph({ text, className }) {
2625
- return /* @__PURE__ */ jsx47("p", { className: `np-text-body-large ${className}`, children: text });
2681
+ return /* @__PURE__ */ jsx48("p", { className: `np-text-body-large ${className}`, children: text });
2626
2682
  }
2627
2683
  function CopyableParagraph({
2628
2684
  text,
@@ -2637,7 +2693,7 @@ function CopyableParagraph({
2637
2693
  };
2638
2694
  const inputAlignmentClasses = getTextAlignmentAndMargin({ align, margin: "sm" });
2639
2695
  return /* @__PURE__ */ jsxs12("div", { className, children: [
2640
- /* @__PURE__ */ jsx47(
2696
+ /* @__PURE__ */ jsx48(
2641
2697
  Input3,
2642
2698
  {
2643
2699
  type: "text",
@@ -2646,7 +2702,7 @@ function CopyableParagraph({
2646
2702
  className: classNames5("text-ellipsis", inputAlignmentClasses)
2647
2703
  }
2648
2704
  ),
2649
- /* @__PURE__ */ jsx47(Button5, { block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
2705
+ /* @__PURE__ */ jsx48(Button5, { block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
2650
2706
  ] });
2651
2707
  }
2652
2708
  var ParagraphRenderer_default = ParagraphRenderer;
@@ -2655,7 +2711,7 @@ var ParagraphRenderer_default = ParagraphRenderer;
2655
2711
  import { Button as Button6, Header as Header6, InlineAlert as InlineAlert3, Modal as Modal4, NavigationOption as NavigationOption2 } from "@transferwise/components";
2656
2712
  import { Plus } from "@transferwise/icons";
2657
2713
  import classNames6 from "classnames";
2658
- import { useState as useState7 } from "react";
2714
+ import { useState as useState8 } from "react";
2659
2715
  import { useIntl as useIntl8 } from "react-intl";
2660
2716
 
2661
2717
  // ../renderers/src/messages/repeatable.messages.ts
@@ -2684,10 +2740,10 @@ var repeatable_messages_default = defineMessages7({
2684
2740
  });
2685
2741
 
2686
2742
  // ../renderers/src/RepeatableRenderer.tsx
2687
- import { Fragment as Fragment4, jsx as jsx48, jsxs as jsxs13 } from "react/jsx-runtime";
2743
+ import { Fragment as Fragment4, jsx as jsx49, jsxs as jsxs13 } from "react/jsx-runtime";
2688
2744
  var RepeatableRenderer = {
2689
2745
  canRenderType: "repeatable",
2690
- render: (props) => /* @__PURE__ */ jsx48(Repeatable, __spreadValues({}, props))
2746
+ render: (props) => /* @__PURE__ */ jsx49(Repeatable, __spreadValues({}, props))
2691
2747
  };
2692
2748
  function Repeatable(props) {
2693
2749
  const {
@@ -2704,7 +2760,7 @@ function Repeatable(props) {
2704
2760
  onRemove
2705
2761
  } = props;
2706
2762
  const { formatMessage } = useIntl8();
2707
- const [openModalType, setOpenModalType] = useState7(null);
2763
+ const [openModalType, setOpenModalType] = useState8(null);
2708
2764
  const onAddItem = () => {
2709
2765
  onAdd();
2710
2766
  setOpenModalType("add");
@@ -2727,8 +2783,8 @@ function Repeatable(props) {
2727
2783
  setOpenModalType(null);
2728
2784
  };
2729
2785
  return /* @__PURE__ */ jsxs13(Fragment4, { children: [
2730
- title && /* @__PURE__ */ jsx48(Header6, { title }),
2731
- description && /* @__PURE__ */ jsx48("p", { children: description }),
2786
+ title && /* @__PURE__ */ jsx49(Header6, { title }),
2787
+ description && /* @__PURE__ */ jsx49("p", { children: description }),
2732
2788
  /* @__PURE__ */ jsxs13(
2733
2789
  "div",
2734
2790
  {
@@ -2736,30 +2792,30 @@ function Repeatable(props) {
2736
2792
  "has-error": (validationState == null ? void 0 : validationState.status) === "invalid"
2737
2793
  }),
2738
2794
  children: [
2739
- items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ jsx48(ItemSummaryOption, { item, onClick: () => onEditItem(index) }, item.id)),
2740
- /* @__PURE__ */ jsx48(
2795
+ items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ jsx49(ItemSummaryOption, { item, onClick: () => onEditItem(index) }, item.id)),
2796
+ /* @__PURE__ */ jsx49(
2741
2797
  NavigationOption2,
2742
2798
  {
2743
- media: /* @__PURE__ */ jsx48(Plus, {}),
2799
+ media: /* @__PURE__ */ jsx49(Plus, {}),
2744
2800
  title: addItemTitle || formatMessage(repeatable_messages_default.addItemTitle),
2745
2801
  showMediaAtAllSizes: true,
2746
2802
  onClick: () => onAddItem()
2747
2803
  }
2748
2804
  ),
2749
- (validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx48(InlineAlert3, { type: "negative", children: validationState.message })
2805
+ (validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx49(InlineAlert3, { type: "negative", children: validationState.message })
2750
2806
  ]
2751
2807
  }
2752
2808
  ),
2753
- /* @__PURE__ */ jsx48(
2809
+ /* @__PURE__ */ jsx49(
2754
2810
  Modal4,
2755
2811
  {
2756
2812
  open: openModalType !== null,
2757
2813
  title: (openModalType === "add" ? addItemTitle : editItemTitle) || formatMessage(repeatable_messages_default.addItemTitle),
2758
2814
  body: /* @__PURE__ */ jsxs13(Fragment4, { children: [
2759
- /* @__PURE__ */ jsx48("div", { className: "m-b-2", children: editableItem }),
2815
+ /* @__PURE__ */ jsx49("div", { className: "m-b-2", children: editableItem }),
2760
2816
  /* @__PURE__ */ jsxs13("div", { children: [
2761
- /* @__PURE__ */ jsx48(Button6, { priority: "primary", block: true, className: "m-b-2", onClick: () => onSaveItem(), children: formatMessage(repeatable_messages_default.addItem) }),
2762
- /* @__PURE__ */ jsx48(Button6, { priority: "secondary", type: "negative", block: true, onClick: () => onRemoveItem(), children: formatMessage(repeatable_messages_default.removeItem) })
2817
+ /* @__PURE__ */ jsx49(Button6, { priority: "primary", block: true, className: "m-b-2", onClick: () => onSaveItem(), children: formatMessage(repeatable_messages_default.addItem) }),
2818
+ /* @__PURE__ */ jsx49(Button6, { priority: "secondary", type: "negative", block: true, onClick: () => onRemoveItem(), children: formatMessage(repeatable_messages_default.removeItem) })
2763
2819
  ] })
2764
2820
  ] }),
2765
2821
  onClose: () => onCancelEdit()
@@ -2771,10 +2827,10 @@ function ItemSummaryOption({
2771
2827
  item,
2772
2828
  onClick
2773
2829
  }) {
2774
- return /* @__PURE__ */ jsx48(
2830
+ return /* @__PURE__ */ jsx49(
2775
2831
  NavigationOption2,
2776
2832
  {
2777
- media: /* @__PURE__ */ jsx48(OptionMedia, { media: item.media, preferAvatar: false }),
2833
+ media: /* @__PURE__ */ jsx49(OptionMedia, { media: item.media, preferAvatar: false }),
2778
2834
  title: item.title,
2779
2835
  content: item.description,
2780
2836
  showMediaAtAllSizes: true,
@@ -2809,14 +2865,14 @@ var getHeaderAction = (callToAction) => {
2809
2865
  };
2810
2866
 
2811
2867
  // ../renderers/src/ReviewRenderer.tsx
2812
- import { Fragment as Fragment5, jsx as jsx49, jsxs as jsxs14 } from "react/jsx-runtime";
2868
+ import { Fragment as Fragment5, jsx as jsx50, jsxs as jsxs14 } from "react/jsx-runtime";
2813
2869
  var ReviewRenderer = {
2814
2870
  canRenderType: "review",
2815
2871
  render: ({ callToAction, control, fields, margin, title, trackEvent }) => {
2816
2872
  const orientation = mapControlToDefinitionListLayout(control);
2817
2873
  return /* @__PURE__ */ jsxs14("div", { className: getMargin(margin), children: [
2818
- (title || callToAction) && /* @__PURE__ */ jsx49(Header7, { title: title != null ? title : "", action: getHeaderAction(callToAction) }),
2819
- /* @__PURE__ */ jsx49("div", { className: margin, children: /* @__PURE__ */ jsx49(
2874
+ (title || callToAction) && /* @__PURE__ */ jsx50(Header7, { title: title != null ? title : "", action: getHeaderAction(callToAction) }),
2875
+ /* @__PURE__ */ jsx50("div", { className: margin, children: /* @__PURE__ */ jsx50(
2820
2876
  DefinitionList,
2821
2877
  {
2822
2878
  layout: orientation,
@@ -2856,13 +2912,13 @@ var mapControlToDefinitionListLayout = (control) => {
2856
2912
  var getFieldValue = (value, help, orientation, onClick) => {
2857
2913
  if (help) {
2858
2914
  return orientation === "HORIZONTAL_RIGHT_ALIGNED" ? /* @__PURE__ */ jsxs14(Fragment5, { children: [
2859
- /* @__PURE__ */ jsx49(Help_default, { help, onClick }),
2915
+ /* @__PURE__ */ jsx50(Help_default, { help, onClick }),
2860
2916
  " ",
2861
2917
  value
2862
2918
  ] }) : /* @__PURE__ */ jsxs14(Fragment5, { children: [
2863
2919
  value,
2864
2920
  " ",
2865
- /* @__PURE__ */ jsx49(Help_default, { help, onClick })
2921
+ /* @__PURE__ */ jsx50(Help_default, { help, onClick })
2866
2922
  ] });
2867
2923
  }
2868
2924
  return value;
@@ -2870,7 +2926,7 @@ var getFieldValue = (value, help, orientation, onClick) => {
2870
2926
 
2871
2927
  // ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
2872
2928
  import { Input as Input4, Markdown as Markdown4, NavigationOption as NavigationOption3, NavigationOptionsList as NavigationOptionsList2 } from "@transferwise/components";
2873
- import { useState as useState8 } from "react";
2929
+ import { useState as useState9 } from "react";
2874
2930
  import { useIntl as useIntl10 } from "react-intl";
2875
2931
 
2876
2932
  // ../renderers/src/messages/search.messages.ts
@@ -2908,7 +2964,7 @@ var generic_error_messages_default = defineMessages9({
2908
2964
 
2909
2965
  // ../renderers/src/SearchRenderer/ErrorResult.tsx
2910
2966
  import { Button as Button7 } from "@transferwise/components";
2911
- import { jsx as jsx50, jsxs as jsxs15 } from "react/jsx-runtime";
2967
+ import { jsx as jsx51, jsxs as jsxs15 } from "react/jsx-runtime";
2912
2968
  function ErrorResult({ state }) {
2913
2969
  const intl = useIntl9();
2914
2970
  const buttonVisualProps = {
@@ -2919,7 +2975,7 @@ function ErrorResult({ state }) {
2919
2975
  return /* @__PURE__ */ jsxs15("p", { className: "m-t-2", children: [
2920
2976
  intl.formatMessage(generic_error_messages_default.genericError),
2921
2977
  "\xA0",
2922
- /* @__PURE__ */ jsx50(
2978
+ /* @__PURE__ */ jsx51(
2923
2979
  Button7,
2924
2980
  __spreadProps(__spreadValues({}, buttonVisualProps), {
2925
2981
  onClick: () => {
@@ -2932,7 +2988,7 @@ function ErrorResult({ state }) {
2932
2988
  }
2933
2989
 
2934
2990
  // ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
2935
- import { Fragment as Fragment6, jsx as jsx51, jsxs as jsxs16 } from "react/jsx-runtime";
2991
+ import { Fragment as Fragment6, jsx as jsx52, jsxs as jsxs16 } from "react/jsx-runtime";
2936
2992
  function BlockSearchRendererComponent({
2937
2993
  id,
2938
2994
  isLoading,
@@ -2943,10 +2999,10 @@ function BlockSearchRendererComponent({
2943
2999
  trackEvent,
2944
3000
  onChange
2945
3001
  }) {
2946
- const [hasSearched, setHasSearched] = useState8(false);
3002
+ const [hasSearched, setHasSearched] = useState9(false);
2947
3003
  const { formatMessage } = useIntl10();
2948
3004
  return /* @__PURE__ */ jsxs16("div", { className: getMargin(margin), children: [
2949
- /* @__PURE__ */ jsx51(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ jsx51(
3005
+ /* @__PURE__ */ jsx52(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ jsx52(
2950
3006
  Input4,
2951
3007
  {
2952
3008
  id,
@@ -2963,7 +3019,7 @@ function BlockSearchRendererComponent({
2963
3019
  }
2964
3020
  }
2965
3021
  ) }),
2966
- isLoading ? /* @__PURE__ */ jsx51(Fragment6, { children: formatMessage(search_messages_default.loading) }) : /* @__PURE__ */ jsx51(SearchResultContent, { state, trackEvent })
3022
+ isLoading ? /* @__PURE__ */ jsx52(Fragment6, { children: formatMessage(search_messages_default.loading) }) : /* @__PURE__ */ jsx52(SearchResultContent, { state, trackEvent })
2967
3023
  ] });
2968
3024
  }
2969
3025
  function SearchResultContent({
@@ -2972,26 +3028,26 @@ function SearchResultContent({
2972
3028
  }) {
2973
3029
  switch (state.type) {
2974
3030
  case "error":
2975
- return /* @__PURE__ */ jsx51(ErrorResult, { state });
3031
+ return /* @__PURE__ */ jsx52(ErrorResult, { state });
2976
3032
  case "results":
2977
- return /* @__PURE__ */ jsx51(SearchResults, { state, trackEvent });
3033
+ return /* @__PURE__ */ jsx52(SearchResults, { state, trackEvent });
2978
3034
  case "noResults":
2979
- return /* @__PURE__ */ jsx51(EmptySearchResult, { state });
3035
+ return /* @__PURE__ */ jsx52(EmptySearchResult, { state });
2980
3036
  case "pending":
2981
3037
  default:
2982
3038
  return null;
2983
3039
  }
2984
3040
  }
2985
3041
  function EmptySearchResult({ state }) {
2986
- return /* @__PURE__ */ jsx51(Markdown4, { className: "m-t-2", config: { link: { target: "_blank" } }, children: state.message });
3042
+ return /* @__PURE__ */ jsx52(Markdown4, { className: "m-t-2", config: { link: { target: "_blank" } }, children: state.message });
2987
3043
  }
2988
3044
  function SearchResults({
2989
3045
  state,
2990
3046
  trackEvent
2991
3047
  }) {
2992
- return /* @__PURE__ */ jsx51(NavigationOptionsList2, { children: state.results.map((result) => {
3048
+ return /* @__PURE__ */ jsx52(NavigationOptionsList2, { children: state.results.map((result) => {
2993
3049
  const { media } = result;
2994
- return /* @__PURE__ */ jsx51(
3050
+ return /* @__PURE__ */ jsx52(
2995
3051
  NavigationOption3,
2996
3052
  {
2997
3053
  title: result.title,
@@ -3015,9 +3071,9 @@ var BlockSearchRendererComponent_default = BlockSearchRendererComponent;
3015
3071
  // ../renderers/src/SearchRenderer/InlineSearchRendererComponent.tsx
3016
3072
  import { Markdown as Markdown5, Typeahead } from "@transferwise/components";
3017
3073
  import { Search } from "@transferwise/icons";
3018
- import { useState as useState9 } from "react";
3074
+ import { useState as useState10 } from "react";
3019
3075
  import { useIntl as useIntl11 } from "react-intl";
3020
- import { jsx as jsx52 } from "react/jsx-runtime";
3076
+ import { jsx as jsx53 } from "react/jsx-runtime";
3021
3077
  function InlineSearchRenderer({
3022
3078
  id,
3023
3079
  isLoading,
@@ -3027,9 +3083,9 @@ function InlineSearchRenderer({
3027
3083
  title,
3028
3084
  trackEvent
3029
3085
  }) {
3030
- const [hasSearched, setHasSearched] = useState9(false);
3086
+ const [hasSearched, setHasSearched] = useState10(false);
3031
3087
  const intl = useIntl11();
3032
- return /* @__PURE__ */ jsx52("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx52(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ jsx52(
3088
+ return /* @__PURE__ */ jsx53("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx53(FieldInput_default, { id, description: "", validation: void 0, help: "", label: title, children: /* @__PURE__ */ jsx53(
3033
3089
  Typeahead,
3034
3090
  {
3035
3091
  id: "typeahead-input-id",
@@ -3037,10 +3093,10 @@ function InlineSearchRenderer({
3037
3093
  name: "typeahead-input-name",
3038
3094
  size: "md",
3039
3095
  maxHeight: 100,
3040
- footer: /* @__PURE__ */ jsx52(TypeaheadFooter, { state, isLoading }),
3096
+ footer: /* @__PURE__ */ jsx53(TypeaheadFooter, { state, isLoading }),
3041
3097
  multiple: false,
3042
3098
  clearable: false,
3043
- addon: /* @__PURE__ */ jsx52(Search, { size: 24 }),
3099
+ addon: /* @__PURE__ */ jsx53(Search, { size: 24 }),
3044
3100
  options: state.type === "results" ? state.results.map(mapResultToTypeaheadOption) : [],
3045
3101
  minQueryLength: 1,
3046
3102
  onChange: (values) => {
@@ -3077,34 +3133,34 @@ function mapResultToTypeaheadOption(result) {
3077
3133
  function TypeaheadFooter({ state, isLoading }) {
3078
3134
  const { formatMessage } = useIntl11();
3079
3135
  if (state.type === "noResults") {
3080
- return /* @__PURE__ */ jsx52(Markdown5, { className: "m-t-2 m-x-2", config: { link: { target: "_blank" } }, children: state.message });
3136
+ return /* @__PURE__ */ jsx53(Markdown5, { className: "m-t-2 m-x-2", config: { link: { target: "_blank" } }, children: state.message });
3081
3137
  }
3082
3138
  if (state.type === "error") {
3083
- return /* @__PURE__ */ jsx52("div", { className: "m-t-2 m-x-2", children: /* @__PURE__ */ jsx52(ErrorResult, { state }) });
3139
+ return /* @__PURE__ */ jsx53("div", { className: "m-t-2 m-x-2", children: /* @__PURE__ */ jsx53(ErrorResult, { state }) });
3084
3140
  }
3085
3141
  if (state.type === "pending" || isLoading) {
3086
- return /* @__PURE__ */ jsx52("p", { className: "m-t-2 m-x-2", children: formatMessage(search_messages_default.loading) });
3142
+ return /* @__PURE__ */ jsx53("p", { className: "m-t-2 m-x-2", children: formatMessage(search_messages_default.loading) });
3087
3143
  }
3088
3144
  return null;
3089
3145
  }
3090
3146
  var InlineSearchRendererComponent_default = InlineSearchRenderer;
3091
3147
 
3092
3148
  // ../renderers/src/SearchRenderer/SearchRenderer.tsx
3093
- import { jsx as jsx53 } from "react/jsx-runtime";
3149
+ import { jsx as jsx54 } from "react/jsx-runtime";
3094
3150
  var SearchRenderer = {
3095
3151
  canRenderType: "search",
3096
- render: (props) => props.control === "inline" ? /* @__PURE__ */ jsx53(InlineSearchRendererComponent_default, __spreadValues({}, props)) : /* @__PURE__ */ jsx53(BlockSearchRendererComponent_default, __spreadValues({}, props))
3152
+ render: (props) => props.control === "inline" ? /* @__PURE__ */ jsx54(InlineSearchRendererComponent_default, __spreadValues({}, props)) : /* @__PURE__ */ jsx54(BlockSearchRendererComponent_default, __spreadValues({}, props))
3097
3153
  };
3098
3154
  var SearchRenderer_default = SearchRenderer;
3099
3155
 
3100
3156
  // ../renderers/src/SectionRenderer.tsx
3101
3157
  import { Header as Header8 } from "@transferwise/components";
3102
- import { jsx as jsx54, jsxs as jsxs17 } from "react/jsx-runtime";
3158
+ import { jsx as jsx55, jsxs as jsxs17 } from "react/jsx-runtime";
3103
3159
  var SectionRenderer = {
3104
3160
  canRenderType: "section",
3105
3161
  render: ({ children, callToAction, margin, title }) => {
3106
3162
  return /* @__PURE__ */ jsxs17("section", { className: getMargin(margin), children: [
3107
- (title || callToAction) && /* @__PURE__ */ jsx54(Header8, { title: title != null ? title : "", action: getHeaderAction(callToAction) }),
3163
+ (title || callToAction) && /* @__PURE__ */ jsx55(Header8, { title: title != null ? title : "", action: getHeaderAction(callToAction) }),
3108
3164
  children
3109
3165
  ] });
3110
3166
  }
@@ -3113,7 +3169,7 @@ var SectionRenderer_default = SectionRenderer;
3113
3169
 
3114
3170
  // ../renderers/src/SelectInputRenderer/RadioInputRendererComponent.tsx
3115
3171
  import { RadioGroup } from "@transferwise/components";
3116
- import { Fragment as Fragment7, jsx as jsx55, jsxs as jsxs18 } from "react/jsx-runtime";
3172
+ import { Fragment as Fragment7, jsx as jsx56, jsxs as jsxs18 } from "react/jsx-runtime";
3117
3173
  function RadioInputRendererComponent(props) {
3118
3174
  const {
3119
3175
  id,
@@ -3128,7 +3184,7 @@ function RadioInputRendererComponent(props) {
3128
3184
  onSelect
3129
3185
  } = props;
3130
3186
  return /* @__PURE__ */ jsxs18(Fragment7, { children: [
3131
- /* @__PURE__ */ jsx55(
3187
+ /* @__PURE__ */ jsx56(
3132
3188
  FieldInput_default,
3133
3189
  {
3134
3190
  id,
@@ -3136,7 +3192,7 @@ function RadioInputRendererComponent(props) {
3136
3192
  help,
3137
3193
  description,
3138
3194
  validation: validationState,
3139
- children: /* @__PURE__ */ jsx55("span", { children: /* @__PURE__ */ jsx55(
3195
+ children: /* @__PURE__ */ jsx56("span", { children: /* @__PURE__ */ jsx56(
3140
3196
  RadioGroup,
3141
3197
  {
3142
3198
  name: id,
@@ -3145,7 +3201,7 @@ function RadioInputRendererComponent(props) {
3145
3201
  value: index,
3146
3202
  secondary: option.description,
3147
3203
  disabled: option.disabled || disabled,
3148
- avatar: /* @__PURE__ */ jsx55(OptionMedia, { media: option.media, preferAvatar: false })
3204
+ avatar: /* @__PURE__ */ jsx56(OptionMedia, { media: option.media, preferAvatar: false })
3149
3205
  })),
3150
3206
  selectedValue: selectedIndex != null ? selectedIndex : void 0,
3151
3207
  onChange: onSelect
@@ -3161,7 +3217,7 @@ function RadioInputRendererComponent(props) {
3161
3217
  // ../renderers/src/SelectInputRenderer/TabInputRendererComponent.tsx
3162
3218
  import { Tabs } from "@transferwise/components";
3163
3219
  import { useEffect as useEffect5 } from "react";
3164
- import { Fragment as Fragment8, jsx as jsx56, jsxs as jsxs19 } from "react/jsx-runtime";
3220
+ import { Fragment as Fragment8, jsx as jsx57, jsxs as jsxs19 } from "react/jsx-runtime";
3165
3221
  function TabInputRendererComponent(props) {
3166
3222
  const {
3167
3223
  id,
@@ -3181,7 +3237,7 @@ function TabInputRendererComponent(props) {
3181
3237
  }
3182
3238
  }, [selectedIndex, onSelect, options.length]);
3183
3239
  return /* @__PURE__ */ jsxs19(Fragment8, { children: [
3184
- /* @__PURE__ */ jsx56(
3240
+ /* @__PURE__ */ jsx57(
3185
3241
  FieldInput_default,
3186
3242
  {
3187
3243
  id,
@@ -3189,7 +3245,7 @@ function TabInputRendererComponent(props) {
3189
3245
  help,
3190
3246
  description,
3191
3247
  validation: validationState,
3192
- children: /* @__PURE__ */ jsx56(
3248
+ children: /* @__PURE__ */ jsx57(
3193
3249
  Tabs,
3194
3250
  {
3195
3251
  name: id,
@@ -3198,7 +3254,7 @@ function TabInputRendererComponent(props) {
3198
3254
  title: option.title,
3199
3255
  // if we pass null, we get some props-types console errors
3200
3256
  // eslint-disable-next-line react/jsx-no-useless-fragment
3201
- content: /* @__PURE__ */ jsx56(Fragment8, {}),
3257
+ content: /* @__PURE__ */ jsx57(Fragment8, {}),
3202
3258
  disabled: option.disabled || disabled
3203
3259
  })),
3204
3260
  onTabSelect: onSelect
@@ -3213,7 +3269,7 @@ var isValidIndex = (index, options) => index !== null && index >= 0 && index < o
3213
3269
 
3214
3270
  // ../renderers/src/SelectInputRenderer/SelectInputRendererComponent.tsx
3215
3271
  import { SelectInput as SelectInput2, SelectInputOptionContent as SelectInputOptionContent2 } from "@transferwise/components";
3216
- import { Fragment as Fragment9, jsx as jsx57, jsxs as jsxs20 } from "react/jsx-runtime";
3272
+ import { Fragment as Fragment9, jsx as jsx58, jsxs as jsxs20 } from "react/jsx-runtime";
3217
3273
  function SelectInputRendererComponent(props) {
3218
3274
  const {
3219
3275
  id,
@@ -3253,13 +3309,13 @@ function SelectInputRendererComponent(props) {
3253
3309
  } : {
3254
3310
  title: option.title,
3255
3311
  description: option.description,
3256
- icon: /* @__PURE__ */ jsx57(OptionMedia, { media: option.media, preferAvatar: false })
3312
+ icon: /* @__PURE__ */ jsx58(OptionMedia, { media: option.media, preferAvatar: false })
3257
3313
  };
3258
- return /* @__PURE__ */ jsx57(SelectInputOptionContent2, __spreadValues({}, contentProps));
3314
+ return /* @__PURE__ */ jsx58(SelectInputOptionContent2, __spreadValues({}, contentProps));
3259
3315
  };
3260
3316
  const extraProps = { autoComplete };
3261
3317
  return /* @__PURE__ */ jsxs20(Fragment9, { children: [
3262
- /* @__PURE__ */ jsx57(
3318
+ /* @__PURE__ */ jsx58(
3263
3319
  FieldInput_default,
3264
3320
  {
3265
3321
  id,
@@ -3267,7 +3323,7 @@ function SelectInputRendererComponent(props) {
3267
3323
  help,
3268
3324
  description,
3269
3325
  validation: validationState,
3270
- children: /* @__PURE__ */ jsx57(
3326
+ children: /* @__PURE__ */ jsx58(
3271
3327
  SelectInput2,
3272
3328
  __spreadValues({
3273
3329
  name: id,
@@ -3290,7 +3346,7 @@ function SelectInputRendererComponent(props) {
3290
3346
  // ../renderers/src/SelectInputRenderer/SegmentedInputRendererComponent.tsx
3291
3347
  import { useEffect as useEffect6 } from "react";
3292
3348
  import { SegmentedControl } from "@transferwise/components";
3293
- import { Fragment as Fragment10, jsx as jsx58, jsxs as jsxs21 } from "react/jsx-runtime";
3349
+ import { Fragment as Fragment10, jsx as jsx59, jsxs as jsxs21 } from "react/jsx-runtime";
3294
3350
  function SegmentedInputRendererComponent(props) {
3295
3351
  const {
3296
3352
  id,
@@ -3309,7 +3365,7 @@ function SegmentedInputRendererComponent(props) {
3309
3365
  }
3310
3366
  }, [selectedIndex, onSelect, options.length]);
3311
3367
  return /* @__PURE__ */ jsxs21(Fragment10, { children: [
3312
- /* @__PURE__ */ jsx58(
3368
+ /* @__PURE__ */ jsx59(
3313
3369
  FieldInput_default,
3314
3370
  {
3315
3371
  id,
@@ -3317,7 +3373,7 @@ function SegmentedInputRendererComponent(props) {
3317
3373
  help,
3318
3374
  description,
3319
3375
  validation: validationState,
3320
- children: /* @__PURE__ */ jsx58(
3376
+ children: /* @__PURE__ */ jsx59(
3321
3377
  SegmentedControl,
3322
3378
  {
3323
3379
  name: `${id}-segmented-control`,
@@ -3334,26 +3390,26 @@ function SegmentedInputRendererComponent(props) {
3334
3390
  )
3335
3391
  }
3336
3392
  ),
3337
- /* @__PURE__ */ jsx58("div", { id: `${id}-children`, children })
3393
+ /* @__PURE__ */ jsx59("div", { id: `${id}-children`, children })
3338
3394
  ] });
3339
3395
  }
3340
3396
  var isValidIndex2 = (index, options) => index !== null && index >= 0 && index < options;
3341
3397
 
3342
3398
  // ../renderers/src/SelectInputRenderer/SelectInputRenderer.tsx
3343
- import { jsx as jsx59 } from "react/jsx-runtime";
3399
+ import { jsx as jsx60 } from "react/jsx-runtime";
3344
3400
  var SelectInputRenderer = {
3345
3401
  canRenderType: "input-select",
3346
3402
  render: (props) => {
3347
3403
  switch (props.control) {
3348
3404
  case "radio":
3349
- return /* @__PURE__ */ jsx59(RadioInputRendererComponent, __spreadValues({}, props));
3405
+ return /* @__PURE__ */ jsx60(RadioInputRendererComponent, __spreadValues({}, props));
3350
3406
  case "tab":
3351
- return props.options.length > 3 ? /* @__PURE__ */ jsx59(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx59(TabInputRendererComponent, __spreadValues({}, props));
3407
+ return props.options.length > 3 ? /* @__PURE__ */ jsx60(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx60(TabInputRendererComponent, __spreadValues({}, props));
3352
3408
  case "segmented":
3353
- return props.options.length > 3 ? /* @__PURE__ */ jsx59(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx59(SegmentedInputRendererComponent, __spreadValues({}, props));
3409
+ return props.options.length > 3 ? /* @__PURE__ */ jsx60(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx60(SegmentedInputRendererComponent, __spreadValues({}, props));
3354
3410
  case "select":
3355
3411
  default:
3356
- return /* @__PURE__ */ jsx59(SelectInputRendererComponent, __spreadValues({}, props));
3412
+ return /* @__PURE__ */ jsx60(SelectInputRendererComponent, __spreadValues({}, props));
3357
3413
  }
3358
3414
  }
3359
3415
  };
@@ -3361,17 +3417,17 @@ var SelectInputRenderer_default = SelectInputRenderer;
3361
3417
 
3362
3418
  // ../renderers/src/StatusListRenderer.tsx
3363
3419
  import { Header as Header9, Summary } from "@transferwise/components";
3364
- import { jsx as jsx60, jsxs as jsxs22 } from "react/jsx-runtime";
3420
+ import { jsx as jsx61, jsxs as jsxs22 } from "react/jsx-runtime";
3365
3421
  var StatusListRenderer = {
3366
3422
  canRenderType: "status-list",
3367
3423
  render: ({ margin, items, title }) => /* @__PURE__ */ jsxs22("div", { className: getMargin(margin), children: [
3368
- title ? /* @__PURE__ */ jsx60(Header9, { title, className: "m-b-2" }) : null,
3369
- items.map(({ callToAction, description, icon, status, title: itemTitle }) => /* @__PURE__ */ jsx60(
3424
+ title ? /* @__PURE__ */ jsx61(Header9, { title, className: "m-b-2" }) : null,
3425
+ items.map(({ callToAction, description, icon, status, title: itemTitle }) => /* @__PURE__ */ jsx61(
3370
3426
  Summary,
3371
3427
  {
3372
3428
  title: itemTitle,
3373
3429
  description,
3374
- icon: icon && "name" in icon ? /* @__PURE__ */ jsx60(DynamicIcon_default, { name: icon.name }) : null,
3430
+ icon: icon && "name" in icon ? /* @__PURE__ */ jsx61(DynamicIcon_default, { name: icon.name }) : null,
3375
3431
  status: mapStatus(status),
3376
3432
  action: getSummaryAction(callToAction)
3377
3433
  },
@@ -3422,102 +3478,172 @@ var useCustomTheme = (theme, trackEvent) => {
3422
3478
  }, []);
3423
3479
  };
3424
3480
 
3425
- // ../renderers/src/step/BackButton.tsx
3426
- import { AvatarView as AvatarView5 } from "@transferwise/components";
3481
+ // ../renderers/src/step/topbar/BackButton.tsx
3482
+ import { IconButton } from "@transferwise/components";
3427
3483
  import { ArrowLeft } from "@transferwise/icons";
3428
- import { jsx as jsx61, jsxs as jsxs23 } from "react/jsx-runtime";
3484
+ import { jsx as jsx62, jsxs as jsxs23 } from "react/jsx-runtime";
3429
3485
  function BackButton({ title, onClick }) {
3430
- return /* @__PURE__ */ jsx61("div", { className: "m-b-2", children: /* @__PURE__ */ jsxs23(
3431
- "button",
3486
+ return /* @__PURE__ */ jsxs23(IconButton, { priority: "tertiary", onClick, children: [
3487
+ /* @__PURE__ */ jsx62("span", { className: "sr-only", children: title }),
3488
+ /* @__PURE__ */ jsx62(ArrowLeft, {})
3489
+ ] });
3490
+ }
3491
+
3492
+ // ../renderers/src/step/topbar/Toolbar.tsx
3493
+ import { Button as Button8, IconButton as IconButton2 } from "@transferwise/components";
3494
+ import { jsx as jsx63, jsxs as jsxs24 } from "react/jsx-runtime";
3495
+ var Toolbar = ({ items }) => {
3496
+ return (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */ jsx63("div", { className: "df-toolbar", children: items.map((item, index) => /* @__PURE__ */ jsx63(ToolbarButton, __spreadValues({}, item), `${item.type}-${index}-${item.title}`)) }) : null;
3497
+ };
3498
+ function ToolbarButton(props) {
3499
+ return prefersMedia(props.control) ? /* @__PURE__ */ jsx63(MediaToolbarButton, __spreadValues({}, props)) : /* @__PURE__ */ jsx63(TextToolbarButton, __spreadValues({}, props));
3500
+ }
3501
+ function MediaToolbarButton(props) {
3502
+ var _a;
3503
+ const { context, control, media, accessibilityDescription, disabled, onClick } = props;
3504
+ const priority = getPriority(control);
3505
+ const type = getSentiment(context);
3506
+ return /* @__PURE__ */ jsxs24(
3507
+ IconButton2,
3432
3508
  {
3433
- type: "button",
3434
- className: "df-back-btn",
3435
- title,
3436
- "aria-label": title,
3509
+ className: "df-toolbar-button",
3510
+ disabled,
3511
+ priority,
3512
+ size: 32,
3513
+ type,
3437
3514
  onClick,
3438
3515
  children: [
3439
- /* @__PURE__ */ jsx61("span", { className: "sr-only", children: title }),
3440
- /* @__PURE__ */ jsx61(AvatarView5, { interactive: true, children: /* @__PURE__ */ jsx61(ArrowLeft, { size: "24" }) })
3516
+ accessibilityDescription ? /* @__PURE__ */ jsx63("span", { className: "sr-only", children: accessibilityDescription }) : null,
3517
+ media ? (_a = getAddonStart(media)) == null ? void 0 : _a.value : null
3441
3518
  ]
3442
3519
  }
3443
- ) });
3520
+ );
3521
+ }
3522
+ function TextToolbarButton(props) {
3523
+ const { context, control, title, media, disabled, onClick } = props;
3524
+ const addonStart = media ? getAddonStart(media) : void 0;
3525
+ const priority = getPriority(control);
3526
+ const sentiment = getSentiment(context);
3527
+ return /* @__PURE__ */ jsx63(
3528
+ Button8,
3529
+ {
3530
+ v2: true,
3531
+ size: "sm",
3532
+ className: "df-toolbar-button",
3533
+ disabled,
3534
+ priority,
3535
+ addonStart,
3536
+ sentiment,
3537
+ onClick,
3538
+ children: title
3539
+ }
3540
+ );
3541
+ }
3542
+ var getAddonStart = (media) => {
3543
+ if (media.type === "avatar") {
3544
+ if (media.content.length === 1) {
3545
+ if (media.content[0].type === "text") {
3546
+ return { type: "icon", value: media.content[0].text };
3547
+ }
3548
+ if (media.content[0].type === "uri" && isValidIconUrn(media.content[0].uri)) {
3549
+ const { asset, icon } = resolveUri(media.content[0].uri, 24);
3550
+ return { type: "icon", value: icon != null ? icon : asset };
3551
+ }
3552
+ }
3553
+ return void 0;
3554
+ }
3555
+ };
3556
+ var getPriority = (control) => isKnownControl(control) && control.startsWith("primary") ? "primary" : "secondary";
3557
+ var prefersMedia = (control) => isKnownControl(control) && control.endsWith("-prefers-media");
3558
+ var knownControls = ["primary", "primary-prefers-media", "secondary", "secondary-prefers-media"];
3559
+ var isKnownControl = (control) => control !== void 0 && knownControls.includes(control);
3560
+ var getSentiment = (context) => {
3561
+ return "default";
3562
+ };
3563
+
3564
+ // ../renderers/src/step/topbar/TopBar.tsx
3565
+ import { jsx as jsx64, jsxs as jsxs25 } from "react/jsx-runtime";
3566
+ function TopBar({ back, toolbar }) {
3567
+ return back || toolbar ? /* @__PURE__ */ jsxs25("div", { className: "d-flex m-b-2", children: [
3568
+ back ? /* @__PURE__ */ jsx64(BackButton, __spreadValues({}, back)) : null,
3569
+ toolbar ? /* @__PURE__ */ jsx64(Toolbar, __spreadValues({}, toolbar)) : null
3570
+ ] }) : null;
3444
3571
  }
3445
- var BackButton_default = BackButton;
3446
3572
 
3447
3573
  // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
3448
- import { jsx as jsx62, jsxs as jsxs24 } from "react/jsx-runtime";
3574
+ import { jsx as jsx65, jsxs as jsxs26 } from "react/jsx-runtime";
3449
3575
  var SplashCelebrationStepRenderer = {
3450
3576
  canRenderType: "step",
3451
3577
  canRender: ({ control }) => control === "splash-celebration",
3452
3578
  render: SplashCelebrationStepRendererComponent
3453
3579
  };
3454
3580
  function SplashCelebrationStepRendererComponent(props) {
3455
- const { back, children, trackEvent } = props;
3581
+ const { back, toolbar, children, trackEvent } = props;
3456
3582
  useCustomTheme("forest-green", trackEvent);
3457
- return /* @__PURE__ */ jsxs24("div", { className: "splash-screen m-t-5", children: [
3458
- back ? /* @__PURE__ */ jsx62(BackButton_default, __spreadValues({}, back)) : null,
3583
+ return /* @__PURE__ */ jsxs26("div", { className: "splash-screen m-t-5", children: [
3584
+ /* @__PURE__ */ jsx65(TopBar, { back, toolbar }),
3459
3585
  children
3460
3586
  ] });
3461
3587
  }
3462
3588
 
3463
3589
  // ../renderers/src/step/SplashStepRenderer.tsx
3464
- import { jsx as jsx63, jsxs as jsxs25 } from "react/jsx-runtime";
3590
+ import { jsx as jsx66, jsxs as jsxs27 } from "react/jsx-runtime";
3465
3591
  var SplashStepRenderer = {
3466
3592
  canRenderType: "step",
3467
3593
  canRender: ({ control }) => control === "splash",
3468
3594
  render: SplashStepRendererComponent
3469
3595
  };
3470
3596
  function SplashStepRendererComponent(props) {
3471
- const { back, children } = props;
3472
- return /* @__PURE__ */ jsxs25("div", { className: "splash-screen m-t-5", children: [
3473
- back ? /* @__PURE__ */ jsx63(BackButton_default, __spreadValues({}, back)) : null,
3597
+ const { back, toolbar, children } = props;
3598
+ return /* @__PURE__ */ jsxs27("div", { className: "splash-screen m-t-5", children: [
3599
+ /* @__PURE__ */ jsx66(TopBar, { back, toolbar }),
3474
3600
  children
3475
3601
  ] });
3476
3602
  }
3477
3603
 
3478
3604
  // ../renderers/src/step/StepRenderer.tsx
3479
3605
  import { Alert as Alert2, Title as Title2 } from "@transferwise/components";
3480
- import { Fragment as Fragment11, jsx as jsx64, jsxs as jsxs26 } from "react/jsx-runtime";
3606
+ import { Fragment as Fragment11, jsx as jsx67, jsxs as jsxs28 } from "react/jsx-runtime";
3481
3607
  var StepRenderer = {
3482
3608
  canRenderType: "step",
3483
3609
  render: StepRendererComponent
3484
3610
  };
3485
3611
  function StepRendererComponent(props) {
3486
- const { back, description, error, title, children } = props;
3487
- return /* @__PURE__ */ jsxs26(Fragment11, { children: [
3488
- back ? /* @__PURE__ */ jsx64(BackButton_default, __spreadValues({}, back)) : null,
3489
- title || description ? /* @__PURE__ */ jsxs26("div", { className: "m-b-4", children: [
3490
- title ? /* @__PURE__ */ jsx64(Title2, { as: "h1", type: "title-section", className: "text-xs-center m-b-2", children: title }) : void 0,
3491
- description ? /* @__PURE__ */ jsx64("p", { className: "text-xs-center np-text-body-large", children: description }) : void 0
3612
+ const { back, description, error, title, children, toolbar } = props;
3613
+ return /* @__PURE__ */ jsxs28(Fragment11, { children: [
3614
+ /* @__PURE__ */ jsx67(TopBar, { back, toolbar }),
3615
+ title || description ? /* @__PURE__ */ jsxs28("div", { className: "m-b-4", children: [
3616
+ title ? /* @__PURE__ */ jsx67(Title2, { as: "h1", type: "title-section", className: "text-xs-center m-b-2", children: title }) : void 0,
3617
+ description ? /* @__PURE__ */ jsx67("p", { className: "text-xs-center np-text-body-large", children: description }) : void 0
3492
3618
  ] }) : void 0,
3493
- error ? /* @__PURE__ */ jsx64(Alert2, { type: "negative", className: "m-b-2", message: error }) : void 0,
3619
+ error ? /* @__PURE__ */ jsx67(Alert2, { type: "negative", className: "m-b-2", message: error }) : void 0,
3494
3620
  children
3495
3621
  ] });
3496
3622
  }
3497
3623
 
3498
3624
  // ../renderers/src/TabsRenderer.tsx
3499
3625
  import { Chips, SegmentedControl as SegmentedControl2, Tabs as Tabs2 } from "@transferwise/components";
3500
- import { useState as useState10 } from "react";
3501
- import { jsx as jsx65, jsxs as jsxs27 } from "react/jsx-runtime";
3626
+ import { useState as useState11 } from "react";
3627
+ import { jsx as jsx68, jsxs as jsxs29 } from "react/jsx-runtime";
3502
3628
  var TabsRenderer = {
3503
3629
  canRenderType: "tabs",
3504
3630
  render: (props) => {
3505
3631
  switch (props.control) {
3506
3632
  case "segmented":
3507
3633
  if (props.tabs.length > 3) {
3508
- return /* @__PURE__ */ jsx65(TabsRendererComponent, __spreadValues({}, props));
3634
+ return /* @__PURE__ */ jsx68(TabsRendererComponent, __spreadValues({}, props));
3509
3635
  }
3510
- return /* @__PURE__ */ jsx65(SegmentedTabsRendererComponent, __spreadValues({}, props));
3636
+ return /* @__PURE__ */ jsx68(SegmentedTabsRendererComponent, __spreadValues({}, props));
3511
3637
  case "chips":
3512
- return /* @__PURE__ */ jsx65(ChipsTabsRendererComponent, __spreadValues({}, props));
3638
+ return /* @__PURE__ */ jsx68(ChipsTabsRendererComponent, __spreadValues({}, props));
3513
3639
  default:
3514
- return /* @__PURE__ */ jsx65(TabsRendererComponent, __spreadValues({}, props));
3640
+ return /* @__PURE__ */ jsx68(TabsRendererComponent, __spreadValues({}, props));
3515
3641
  }
3516
3642
  }
3517
3643
  };
3518
3644
  function TabsRendererComponent({ uid, margin, tabs }) {
3519
- const [selectedIndex, setSelectedIndex] = useState10(0);
3520
- return /* @__PURE__ */ jsx65("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx65(
3645
+ const [selectedIndex, setSelectedIndex] = useState11(0);
3646
+ return /* @__PURE__ */ jsx68("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx68(
3521
3647
  Tabs2,
3522
3648
  {
3523
3649
  name: uid,
@@ -3525,7 +3651,7 @@ function TabsRendererComponent({ uid, margin, tabs }) {
3525
3651
  tabs: tabs.map((option) => ({
3526
3652
  title: option.title,
3527
3653
  disabled: false,
3528
- content: /* @__PURE__ */ jsxs27("div", { className: "m-t-2", children: [
3654
+ content: /* @__PURE__ */ jsxs29("div", { className: "m-t-2", children: [
3529
3655
  " ",
3530
3656
  option.children,
3531
3657
  " "
@@ -3537,9 +3663,9 @@ function TabsRendererComponent({ uid, margin, tabs }) {
3537
3663
  }
3538
3664
  function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
3539
3665
  var _a;
3540
- const [selectedIndex, setSelectedIndex] = useState10(0);
3541
- return /* @__PURE__ */ jsxs27("div", { className: getMargin(margin), children: [
3542
- /* @__PURE__ */ jsx65(
3666
+ const [selectedIndex, setSelectedIndex] = useState11(0);
3667
+ return /* @__PURE__ */ jsxs29("div", { className: getMargin(margin), children: [
3668
+ /* @__PURE__ */ jsx68(
3543
3669
  SegmentedControl2,
3544
3670
  {
3545
3671
  name: uid,
@@ -3554,14 +3680,14 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
3554
3680
  onChange: (value) => setSelectedIndex(Number(value))
3555
3681
  }
3556
3682
  ),
3557
- /* @__PURE__ */ jsx65("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3683
+ /* @__PURE__ */ jsx68("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3558
3684
  ] });
3559
3685
  }
3560
3686
  function ChipsTabsRendererComponent({ margin, tabs }) {
3561
3687
  var _a;
3562
- const [selectedIndex, setSelectedIndex] = useState10(0);
3563
- return /* @__PURE__ */ jsxs27("div", { className: getMargin(margin), children: [
3564
- /* @__PURE__ */ jsx65("div", { className: "chips-container", children: /* @__PURE__ */ jsx65(
3688
+ const [selectedIndex, setSelectedIndex] = useState11(0);
3689
+ return /* @__PURE__ */ jsxs29("div", { className: getMargin(margin), children: [
3690
+ /* @__PURE__ */ jsx68("div", { className: "chips-container", children: /* @__PURE__ */ jsx68(
3565
3691
  Chips,
3566
3692
  {
3567
3693
  chips: tabs.map((tab, index) => ({ label: tab.title, value: index })),
@@ -3569,7 +3695,7 @@ function ChipsTabsRendererComponent({ margin, tabs }) {
3569
3695
  onChange: ({ selectedValue }) => setSelectedIndex(Number(selectedValue))
3570
3696
  }
3571
3697
  ) }),
3572
- /* @__PURE__ */ jsx65("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3698
+ /* @__PURE__ */ jsx68("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
3573
3699
  ] });
3574
3700
  }
3575
3701
 
@@ -3584,7 +3710,7 @@ import {
3584
3710
  TextArea,
3585
3711
  TextareaWithDisplayFormat
3586
3712
  } from "@transferwise/components";
3587
- import { jsx as jsx66 } from "react/jsx-runtime";
3713
+ import { jsx as jsx69 } from "react/jsx-runtime";
3588
3714
  var commonKeys = [
3589
3715
  "autoComplete",
3590
3716
  "autoCapitalize",
@@ -3603,12 +3729,12 @@ function VariableTextInput(inputProps) {
3603
3729
  const commonProps = __spreadProps(__spreadValues({}, pick(inputProps, ...commonKeys)), { name: id });
3604
3730
  switch (control) {
3605
3731
  case "email":
3606
- return /* @__PURE__ */ jsx66(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
3732
+ return /* @__PURE__ */ jsx69(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
3607
3733
  case "password":
3608
- return /* @__PURE__ */ jsx66(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
3734
+ return /* @__PURE__ */ jsx69(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
3609
3735
  case "numeric": {
3610
3736
  const numericProps = __spreadProps(__spreadValues({}, commonProps), { type: "number", onWheel });
3611
- return /* @__PURE__ */ jsx66(
3737
+ return /* @__PURE__ */ jsx69(
3612
3738
  TextInput,
3613
3739
  __spreadProps(__spreadValues({}, numericProps), {
3614
3740
  onChange: (newValue) => {
@@ -3619,9 +3745,9 @@ function VariableTextInput(inputProps) {
3619
3745
  );
3620
3746
  }
3621
3747
  case "phone-number":
3622
- return /* @__PURE__ */ jsx66(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
3748
+ return /* @__PURE__ */ jsx69(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
3623
3749
  default: {
3624
- return /* @__PURE__ */ jsx66(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
3750
+ return /* @__PURE__ */ jsx69(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
3625
3751
  }
3626
3752
  }
3627
3753
  }
@@ -3629,11 +3755,11 @@ function TextInput(props) {
3629
3755
  const _a = props, { control, displayFormat, onChange } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange"]);
3630
3756
  const InputWithPattern = control === "textarea" ? TextareaWithDisplayFormat : InputWithDisplayFormat;
3631
3757
  const InputWithoutPattern = control === "textarea" ? TextArea : Input5;
3632
- return displayFormat ? /* @__PURE__ */ jsx66(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx66(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
3758
+ return displayFormat ? /* @__PURE__ */ jsx69(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx69(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
3633
3759
  }
3634
3760
 
3635
3761
  // ../renderers/src/TextInputRenderer.tsx
3636
- import { jsx as jsx67 } from "react/jsx-runtime";
3762
+ import { jsx as jsx70 } from "react/jsx-runtime";
3637
3763
  var TextInputRenderer = {
3638
3764
  canRenderType: "input-text",
3639
3765
  render: (props) => {
@@ -3666,7 +3792,7 @@ var TextInputRenderer = {
3666
3792
  }
3667
3793
  }
3668
3794
  });
3669
- return /* @__PURE__ */ jsx67(
3795
+ return /* @__PURE__ */ jsx70(
3670
3796
  FieldInput_default,
3671
3797
  {
3672
3798
  id,
@@ -3674,7 +3800,7 @@ var TextInputRenderer = {
3674
3800
  description,
3675
3801
  validation: validationState,
3676
3802
  help,
3677
- children: /* @__PURE__ */ jsx67(InputGroup3, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx67(VariableTextInput, __spreadValues({}, inputProps)) })
3803
+ children: /* @__PURE__ */ jsx70(InputGroup3, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx70(VariableTextInput, __spreadValues({}, inputProps)) })
3678
3804
  }
3679
3805
  );
3680
3806
  }
@@ -3688,7 +3814,7 @@ import { Upload, UploadInput as UploadInput2 } from "@transferwise/components";
3688
3814
  var getRandomId = () => Math.random().toString(36).substring(2);
3689
3815
 
3690
3816
  // ../renderers/src/UploadInputRenderer.tsx
3691
- import { jsx as jsx68 } from "react/jsx-runtime";
3817
+ import { jsx as jsx71 } from "react/jsx-runtime";
3692
3818
  var UploadInputRenderer = {
3693
3819
  canRenderType: "input-upload",
3694
3820
  render: (props) => {
@@ -3704,14 +3830,14 @@ var UploadInputRenderer = {
3704
3830
  };
3705
3831
  return (
3706
3832
  // We don't pass help here as there is no sensible place to display it
3707
- /* @__PURE__ */ jsx68(
3833
+ /* @__PURE__ */ jsx71(
3708
3834
  UploadFieldInput_default,
3709
3835
  {
3710
3836
  id,
3711
3837
  label: void 0,
3712
3838
  description: void 0,
3713
3839
  validation: validationState,
3714
- children: /* @__PURE__ */ jsx68(
3840
+ children: /* @__PURE__ */ jsx71(
3715
3841
  UploadInput2,
3716
3842
  {
3717
3843
  id,
@@ -3770,7 +3896,7 @@ var LargeUploadRenderer = {
3770
3896
  };
3771
3897
  const filetypes = acceptsToFileTypes(accepts);
3772
3898
  const usAccept = filetypes === "*" ? "*" : filetypes.join(",");
3773
- return /* @__PURE__ */ jsx68(
3899
+ return /* @__PURE__ */ jsx71(
3774
3900
  FieldInput_default,
3775
3901
  {
3776
3902
  id,
@@ -3778,7 +3904,7 @@ var LargeUploadRenderer = {
3778
3904
  description,
3779
3905
  validation: validationState,
3780
3906
  help,
3781
- children: /* @__PURE__ */ jsx68(
3907
+ children: /* @__PURE__ */ jsx71(
3782
3908
  Upload,
3783
3909
  __spreadProps(__spreadValues({}, uploadProps), {
3784
3910
  usAccept,
@@ -3838,7 +3964,7 @@ var getWiseRenderers = () => [
3838
3964
  // src/dynamicFlow/telemetry/app-version.ts
3839
3965
  var appVersion = (
3840
3966
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
3841
- typeof process !== "undefined" ? "4.22.0" : "0.0.0"
3967
+ typeof process !== "undefined" ? "4.23.0" : "0.0.0"
3842
3968
  );
3843
3969
 
3844
3970
  // src/dynamicFlow/telemetry/getLogEvent.ts
@@ -3893,12 +4019,12 @@ var messages_default = defineMessages10({
3893
4019
  });
3894
4020
 
3895
4021
  // src/dynamicFlow/DynamicFlow.tsx
3896
- import { jsx as jsx69 } from "react/jsx-runtime";
4022
+ import { jsx as jsx72 } from "react/jsx-runtime";
3897
4023
  var wiseRenderers = getWiseRenderers();
3898
4024
  function DynamicFlowLegacy(props) {
3899
4025
  const { customFetch = globalThis.fetch } = props;
3900
4026
  const coreProps = __spreadProps(__spreadValues({}, props), { httpClient: customFetch });
3901
- return /* @__PURE__ */ jsx69(DynamicFlowCoreLegacy, __spreadValues({}, coreProps));
4027
+ return /* @__PURE__ */ jsx72(DynamicFlowCoreLegacy, __spreadValues({}, coreProps));
3902
4028
  }
3903
4029
  function DynamicFlowRevamp(props) {
3904
4030
  const {
@@ -3935,7 +4061,7 @@ function DynamicFlowRevamp(props) {
3935
4061
  onLink,
3936
4062
  onCopy
3937
4063
  });
3938
- return /* @__PURE__ */ jsx69("div", { className, children: /* @__PURE__ */ jsx69(DynamicFlowCoreRevamp, __spreadValues({}, coreProps)) });
4064
+ return /* @__PURE__ */ jsx72("div", { className, children: /* @__PURE__ */ jsx72(DynamicFlowCoreRevamp, __spreadValues({}, coreProps)) });
3939
4065
  }
3940
4066
  var DynamicForm = forwardRef(function DynamicForm2(props, ref) {
3941
4067
  const {
@@ -3972,7 +4098,7 @@ var DynamicForm = forwardRef(function DynamicForm2(props, ref) {
3972
4098
  onLink,
3973
4099
  onCopy
3974
4100
  });
3975
- return /* @__PURE__ */ jsx69("div", { className, children: /* @__PURE__ */ jsx69(DynamicFormCore, __spreadProps(__spreadValues({}, coreProps), { ref })) });
4101
+ return /* @__PURE__ */ jsx72("div", { className, children: /* @__PURE__ */ jsx72(DynamicFormCore, __spreadProps(__spreadValues({}, coreProps), { ref })) });
3976
4102
  });
3977
4103
  var useWiseHttpClient = (httpClient) => {
3978
4104
  const { locale } = useIntl12();