@wise/dynamic-flow-client-internal 5.27.1 → 5.27.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/main.js CHANGED
@@ -70,7 +70,7 @@ var require_classnames = __commonJS({
70
70
  (function() {
71
71
  "use strict";
72
72
  var hasOwn = {}.hasOwnProperty;
73
- function classNames8() {
73
+ function classNames33() {
74
74
  var classes = "";
75
75
  for (var i = 0; i < arguments.length; i++) {
76
76
  var arg = arguments[i];
@@ -88,7 +88,7 @@ var require_classnames = __commonJS({
88
88
  return "";
89
89
  }
90
90
  if (Array.isArray(arg)) {
91
- return classNames8.apply(null, arg);
91
+ return classNames33.apply(null, arg);
92
92
  }
93
93
  if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
94
94
  return arg.toString();
@@ -111,14 +111,14 @@ var require_classnames = __commonJS({
111
111
  return value + newClass;
112
112
  }
113
113
  if (typeof module2 !== "undefined" && module2.exports) {
114
- classNames8.default = classNames8;
115
- module2.exports = classNames8;
114
+ classNames33.default = classNames33;
115
+ module2.exports = classNames33;
116
116
  } else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
117
117
  define("classnames", [], function() {
118
- return classNames8;
118
+ return classNames33;
119
119
  });
120
120
  } else {
121
- window.classNames = classNames8;
121
+ window.classNames = classNames33;
122
122
  }
123
123
  })();
124
124
  }
@@ -146,7 +146,7 @@ var import_dynamic_flow_client4 = require("@wise/dynamic-flow-client");
146
146
  // src/dynamicFlow/telemetry/app-version.ts
147
147
  var appVersion = (
148
148
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
149
- typeof process !== "undefined" ? "5.27.1" : "0.0.0"
149
+ typeof process !== "undefined" ? "5.27.3" : "0.0.0"
150
150
  );
151
151
 
152
152
  // src/dynamicFlow/context-menu/useContextMenu.tsx
@@ -346,6 +346,7 @@ var import_react4 = require("react");
346
346
 
347
347
  // ../renderers/src/AlertRenderer/ActionPromptComponent.tsx
348
348
  var import_components5 = require("@transferwise/components");
349
+ var import_classnames3 = __toESM(require_classnames());
349
350
 
350
351
  // ../renderers/src/utils/UrnFlag.tsx
351
352
  var import_art = require("@wise/art");
@@ -680,6 +681,17 @@ function OptionMedia(props) {
680
681
  var import_jsx_runtime12 = require("react/jsx-runtime");
681
682
  var getInlineMedia = (media) => media ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Media, { media, preferAvatar: false, size: 24 }) : null;
682
683
 
684
+ // ../renderers/src/ImageRenderer/UrnFlagImage.tsx
685
+ var import_classnames = __toESM(require_classnames());
686
+
687
+ // ../renderers/src/utils/controlAndTagsToCSSClass.ts
688
+ var controlAndTagsToCSSClass = ({ control, tags }) => {
689
+ var _a;
690
+ const controlClass = control ? `df-control-${control}` : "";
691
+ const tagsClass = (_a = tags == null ? void 0 : tags.map((tag) => `df-tag-${tag}`).join(" ")) != null ? _a : "";
692
+ return [controlClass, tagsClass].join(" ").trim();
693
+ };
694
+
683
695
  // ../renderers/src/utils/layout-utils.ts
684
696
  var getMargin = (size) => {
685
697
  switch (size) {
@@ -716,15 +728,30 @@ var maxFlagSize = 600;
716
728
  function UrnFlagImage({
717
729
  accessibilityDescription,
718
730
  align,
731
+ control,
719
732
  margin,
720
733
  size,
734
+ tags,
721
735
  uri
722
736
  }) {
723
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: `df-image ${align} ${size || "md"} ${getMargin(margin)}`, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(UrnFlag, { size: maxFlagSize, urn: uri, accessibilityDescription }) });
737
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
738
+ "div",
739
+ {
740
+ className: (0, import_classnames.default)(
741
+ "df-image",
742
+ align,
743
+ size || "md",
744
+ getMargin(margin),
745
+ controlAndTagsToCSSClass({ control, tags })
746
+ ),
747
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(UrnFlag, { size: maxFlagSize, urn: uri, accessibilityDescription })
748
+ }
749
+ );
724
750
  }
725
751
 
726
752
  // ../renderers/src/ImageRenderer/UrnIllustration.tsx
727
753
  var import_art4 = require("@wise/art");
754
+ var import_classnames2 = __toESM(require_classnames());
728
755
  var import_react3 = require("react");
729
756
 
730
757
  // ../renderers/src/ImageRenderer/isAnimated.ts
@@ -771,8 +798,10 @@ var isUrnIllustration = (uri) => uri.startsWith(urnPrefix);
771
798
  function UrnIllustration({
772
799
  accessibilityDescription,
773
800
  align,
801
+ control,
774
802
  margin,
775
803
  size,
804
+ tags,
776
805
  uri
777
806
  }) {
778
807
  const [has3DFailed, setHas3DFailed] = (0, import_react3.useState)(false);
@@ -780,24 +809,46 @@ function UrnIllustration({
780
809
  const illustrationName = getIllustrationName(uri);
781
810
  const illustration3DName = getIllustration3DName(uri);
782
811
  if (illustration3DName && isAnimated(uri) && !has3DFailed) {
783
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
784
- SafeIllustration3D_default,
812
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
813
+ "div",
785
814
  {
786
- name: illustration3DName,
787
- size: illustrationSize,
788
- onError: () => setHas3DFailed(true)
815
+ className: (0, import_classnames2.default)(
816
+ "df-image",
817
+ align,
818
+ getMargin(margin),
819
+ controlAndTagsToCSSClass({ control, tags })
820
+ ),
821
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
822
+ SafeIllustration3D_default,
823
+ {
824
+ name: illustration3DName,
825
+ size: illustrationSize,
826
+ onError: () => setHas3DFailed(true)
827
+ }
828
+ )
789
829
  }
790
- ) });
830
+ );
791
831
  }
792
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `df-image ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
793
- import_art4.Illustration,
832
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
833
+ "div",
794
834
  {
795
- className: "df-illustration",
796
- name: illustrationName,
797
- size: illustrationSize,
798
- alt: accessibilityDescription
835
+ className: (0, import_classnames2.default)(
836
+ "df-image",
837
+ align,
838
+ getMargin(margin),
839
+ controlAndTagsToCSSClass({ control, tags })
840
+ ),
841
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
842
+ import_art4.Illustration,
843
+ {
844
+ className: "df-illustration",
845
+ name: illustrationName,
846
+ size: illustrationSize,
847
+ alt: accessibilityDescription
848
+ }
849
+ )
799
850
  }
800
- ) });
851
+ );
801
852
  }
802
853
  var getIllustrationSize = (size) => ({ xs: "small", sm: "small", md: "medium", lg: "large", xl: "large" })[size] || "medium";
803
854
  var getIllustrationName = (uri) => {
@@ -913,7 +964,9 @@ function ActionPromptComponent({
913
964
  media,
914
965
  onDismiss,
915
966
  secondaryCallToAction,
916
- title
967
+ title,
968
+ control,
969
+ tags
917
970
  }) {
918
971
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
919
972
  import_components5.ActionPrompt,
@@ -921,7 +974,7 @@ function ActionPromptComponent({
921
974
  title: title != null ? title : "",
922
975
  description: mapPromptDescription(markdown),
923
976
  sentiment: mapPromptSentiment(context),
924
- className: getMargin(margin),
977
+ className: (0, import_classnames3.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
925
978
  media: media && getActionPromptMedia(media),
926
979
  action: mapCallToAction(callToAction),
927
980
  actionSecondary: secondaryCallToAction ? mapCallToAction(secondaryCallToAction) : void 0,
@@ -932,6 +985,7 @@ function ActionPromptComponent({
932
985
 
933
986
  // ../renderers/src/AlertRenderer/InfoPromptComponent.tsx
934
987
  var import_components6 = require("@transferwise/components");
988
+ var import_classnames4 = __toESM(require_classnames());
935
989
  var import_jsx_runtime20 = require("react/jsx-runtime");
936
990
  function InfoPromptComponent({
937
991
  callToAction,
@@ -940,7 +994,9 @@ function InfoPromptComponent({
940
994
  markdown,
941
995
  media,
942
996
  onDismiss,
943
- title
997
+ title,
998
+ control,
999
+ tags
944
1000
  }) {
945
1001
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
946
1002
  import_components6.InfoPrompt,
@@ -948,7 +1004,7 @@ function InfoPromptComponent({
948
1004
  title,
949
1005
  description: mapPromptDescription(markdown),
950
1006
  sentiment: mapPromptSentiment(context),
951
- className: getMargin(margin),
1007
+ className: (0, import_classnames4.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
952
1008
  media: media && getInfoPromptMedia(media),
953
1009
  action: callToAction ? mapCallToAction(callToAction) : void 0,
954
1010
  onDismiss
@@ -986,32 +1042,38 @@ var shouldRenderActionPrompt = (props) => {
986
1042
  var AlertRenderer_default = AlertRenderer;
987
1043
 
988
1044
  // ../renderers/src/BoxRenderer.tsx
989
- var import_classnames = __toESM(require_classnames());
1045
+ var import_classnames5 = __toESM(require_classnames());
990
1046
  var import_jsx_runtime22 = require("react/jsx-runtime");
991
1047
  var BoxRenderer = {
992
1048
  canRenderType: "box",
993
- render: ({ children, control, margin, width }) => {
1049
+ render: ({ children, control, margin, width, tags }) => {
994
1050
  const hasFixedWidth = width !== "xl";
995
1051
  const hasBorder = control === "bordered" || control === "bordered-web";
996
1052
  const contents = /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
997
1053
  "div",
998
1054
  {
999
- className: (0, import_classnames.default)("df-box-renderer", {
1000
- "df-box-renderer-border": hasBorder,
1001
- [`df-box-renderer-width-${width}`]: hasFixedWidth,
1002
- [getMargin(margin)]: !hasFixedWidth
1003
- }),
1055
+ className: (0, import_classnames5.default)(
1056
+ "df-box-renderer",
1057
+ {
1058
+ "df-box-renderer-border": hasBorder,
1059
+ [`df-box-renderer-width-${width}`]: hasFixedWidth,
1060
+ [getMargin(margin)]: !hasFixedWidth
1061
+ },
1062
+ controlAndTagsToCSSClass({ control, tags })
1063
+ ),
1004
1064
  children
1005
1065
  }
1006
1066
  );
1007
- return hasFixedWidth ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: (0, import_classnames.default)("df-box-renderer-fixed-width", getMargin(margin)), children: contents }) : contents;
1067
+ return hasFixedWidth ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: (0, import_classnames5.default)("df-box-renderer-fixed-width", getMargin(margin)), children: contents }) : contents;
1008
1068
  }
1009
1069
  };
1010
1070
  var BoxRenderer_default = BoxRenderer;
1011
1071
 
1012
1072
  // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
1013
1073
  var import_components7 = require("@transferwise/components");
1074
+ var import_classnames6 = __toESM(require_classnames());
1014
1075
  var import_react_intl2 = require("react-intl");
1076
+ var import_react5 = require("react");
1015
1077
 
1016
1078
  // ../renderers/src/messages/loading-button.messages.ts
1017
1079
  var import_react_intl = require("react-intl");
@@ -1024,7 +1086,6 @@ var loading_button_messages_default = (0, import_react_intl.defineMessages)({
1024
1086
  });
1025
1087
 
1026
1088
  // ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
1027
- var import_react5 = require("react");
1028
1089
  var import_jsx_runtime23 = require("react/jsx-runtime");
1029
1090
  var AddressValidationButtonRenderer = {
1030
1091
  canRenderType: "button",
@@ -1032,7 +1093,7 @@ var AddressValidationButtonRenderer = {
1032
1093
  render: AddressValidationButtonComponent
1033
1094
  };
1034
1095
  function AddressValidationButtonComponent(props) {
1035
- const { disabled, margin, title, stepLoadingState, onClick } = props;
1096
+ const { disabled, margin, title, stepLoadingState, onClick, control, tags } = props;
1036
1097
  const { formatMessage } = (0, import_react_intl2.useIntl)();
1037
1098
  const [spinny, setSpinny] = (0, import_react5.useState)(false);
1038
1099
  (0, import_react5.useEffect)(() => {
@@ -1045,31 +1106,60 @@ function AddressValidationButtonComponent(props) {
1045
1106
  setSpinny(false);
1046
1107
  }
1047
1108
  };
1048
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: `d-flex flex-column ${getMargin(margin)}`, children: [
1049
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1050
- import_components7.Button,
1051
- {
1052
- v2: true,
1053
- block: true,
1054
- disabled,
1055
- priority: "primary",
1056
- size: "lg",
1057
- loading: spinny,
1058
- onClick: () => {
1059
- setSpinny(true);
1060
- onClick();
1061
- },
1062
- onBlur,
1063
- children: title
1064
- }
1065
- ),
1066
- spinny && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components7.InlineAlert, { type: "warning", className: "m-x-auto", children: formatMessage(loading_button_messages_default.buttonLoadingMessage) })
1067
- ] });
1109
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1110
+ "div",
1111
+ {
1112
+ className: (0, import_classnames6.default)(
1113
+ "d-flex flex-column",
1114
+ getMargin(margin),
1115
+ controlAndTagsToCSSClass({ control, tags })
1116
+ ),
1117
+ children: [
1118
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1119
+ import_components7.Button,
1120
+ {
1121
+ v2: true,
1122
+ block: true,
1123
+ disabled,
1124
+ priority: "primary",
1125
+ size: "lg",
1126
+ loading: spinny,
1127
+ onClick: () => {
1128
+ setSpinny(true);
1129
+ onClick();
1130
+ },
1131
+ onBlur,
1132
+ children: title
1133
+ }
1134
+ ),
1135
+ spinny && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_components7.InlineAlert, { type: "warning", className: "m-x-auto", children: formatMessage(loading_button_messages_default.buttonLoadingMessage) })
1136
+ ]
1137
+ }
1138
+ );
1068
1139
  }
1069
1140
  var AddressValidationButtonRenderer_default = AddressValidationButtonRenderer;
1070
1141
 
1071
1142
  // ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
1072
1143
  var import_components8 = require("@transferwise/components");
1144
+ var import_classnames7 = __toESM(require_classnames());
1145
+ var import_react6 = require("react");
1146
+
1147
+ // ../renderers/src/components/Media/getAddonStartMedia.ts
1148
+ var getAddonStartMedia = (media) => {
1149
+ if (media.type === "avatar") {
1150
+ if (media.content.length > 0 && media.content[0].type === "uri" && isValidIconUrn(media.content[0].uri)) {
1151
+ return {
1152
+ type: "icon",
1153
+ value: getInlineMedia({
1154
+ type: "image",
1155
+ uri: media.content[0].uri
1156
+ })
1157
+ };
1158
+ }
1159
+ return void 0;
1160
+ }
1161
+ return { type: "icon", value: getInlineMedia(media) };
1162
+ };
1073
1163
 
1074
1164
  // ../renderers/src/utils/isButtonPriority.ts
1075
1165
  var validPriorities = ["primary", "secondary", "secondary-neutral", "tertiary"];
@@ -1094,27 +1184,6 @@ var mapLegacyButtonSize = (size) => {
1094
1184
  };
1095
1185
 
1096
1186
  // ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
1097
- var import_react6 = require("react");
1098
-
1099
- // ../renderers/src/components/Media/getAddonStartMedia.ts
1100
- var getAddonStartMedia = (media) => {
1101
- if (media.type === "avatar") {
1102
- if (media.content.length > 0 && media.content[0].type === "uri" && isValidIconUrn(media.content[0].uri)) {
1103
- return {
1104
- type: "icon",
1105
- value: getInlineMedia({
1106
- type: "image",
1107
- uri: media.content[0].uri
1108
- })
1109
- };
1110
- }
1111
- return void 0;
1112
- }
1113
- return { type: "icon", value: getInlineMedia(media) };
1114
- };
1115
-
1116
- // ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
1117
- var import_classnames2 = __toESM(require_classnames());
1118
1187
  var import_jsx_runtime24 = require("react/jsx-runtime");
1119
1188
  var ButtonRenderer = {
1120
1189
  canRenderType: "button",
@@ -1148,10 +1217,15 @@ function ButtonComponent(props) {
1148
1217
  const buttonProps = {
1149
1218
  v2: true,
1150
1219
  block: control !== "small",
1151
- className: (0, import_classnames2.default)(getMargin(margin), "df-button", {
1152
- small: control === "small",
1153
- "align-center": tags == null ? void 0 : tags.includes("align-center")
1154
- }),
1220
+ className: (0, import_classnames7.default)(
1221
+ getMargin(margin),
1222
+ "df-button",
1223
+ {
1224
+ small: control === "small",
1225
+ "align-center": tags == null ? void 0 : tags.includes("align-center")
1226
+ },
1227
+ controlAndTagsToCSSClass({ control, tags })
1228
+ ),
1155
1229
  addonStart: control === "small" && media ? getAddonStartMedia(media) : void 0,
1156
1230
  disabled,
1157
1231
  priority: getPriority(control, tags),
@@ -1254,7 +1328,9 @@ function FieldInput({
1254
1328
  help,
1255
1329
  loadingState = "idle",
1256
1330
  inlineAlert,
1257
- features
1331
+ features,
1332
+ control,
1333
+ tags
1258
1334
  }) {
1259
1335
  var _a;
1260
1336
  const labelContent = label && help ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(LabelContentWithHelp, { text: label, help }) : label;
@@ -1268,6 +1344,7 @@ function FieldInput({
1268
1344
  message: (_a = validation == null ? void 0 : validation.message) != null ? _a : inlineAlert == null ? void 0 : inlineAlert.content,
1269
1345
  messageLoading: loadingState !== "idle",
1270
1346
  sentiment: mapStatusToSentiment(validation, inlineAlert == null ? void 0 : inlineAlert.context),
1347
+ className: controlAndTagsToCSSClass({ control, tags }),
1271
1348
  children
1272
1349
  }
1273
1350
  ) });
@@ -1361,6 +1438,8 @@ var CheckboxComponent = (props) => {
1361
1438
  inlineAlert: rest.inlineAlert,
1362
1439
  loadingState: rest.fieldLoadingState,
1363
1440
  features: rest.features,
1441
+ control,
1442
+ tags: rest.tags,
1364
1443
  children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components13.Checkbox, __spreadValues({ id }, checkboxProps))
1365
1444
  }
1366
1445
  );
@@ -1382,7 +1461,7 @@ var CheckboxItemComponent = (props) => {
1382
1461
  const { ref } = useScrollToError(validationState, features);
1383
1462
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { ref, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1384
1463
  import_components13.ListItem,
1385
- __spreadValues({
1464
+ __spreadProps(__spreadValues({
1386
1465
  title,
1387
1466
  subtitle: description,
1388
1467
  additionalInfo: getAdditionalText(additionalText),
@@ -1390,7 +1469,9 @@ var CheckboxItemComponent = (props) => {
1390
1469
  disabled,
1391
1470
  prompt: getInlineAlertOrValidation(validationState, inlineAlert),
1392
1471
  control: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components13.ListItem.Checkbox, { checked: value, onChange: () => onChange(!value) })
1393
- }, getSupportingValues(supportingValues))
1472
+ }, getSupportingValues(supportingValues)), {
1473
+ className: controlAndTagsToCSSClass(props)
1474
+ })
1394
1475
  ) });
1395
1476
  };
1396
1477
  var SwitchItemComponent = (props) => {
@@ -1410,7 +1491,7 @@ var SwitchItemComponent = (props) => {
1410
1491
  const { ref } = useScrollToError(validationState, features);
1411
1492
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { ref, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1412
1493
  import_components13.ListItem,
1413
- __spreadValues({
1494
+ __spreadProps(__spreadValues({
1414
1495
  title,
1415
1496
  subtitle: description,
1416
1497
  additionalInfo: getAdditionalText(additionalText),
@@ -1418,7 +1499,9 @@ var SwitchItemComponent = (props) => {
1418
1499
  disabled,
1419
1500
  prompt: getInlineAlertOrValidation(validationState, inlineAlert),
1420
1501
  control: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_components13.ListItem.Switch, { checked: value, onClick: () => onChange(!value) })
1421
- }, getSupportingValues(supportingValues))
1502
+ }, getSupportingValues(supportingValues)), {
1503
+ className: controlAndTagsToCSSClass(props)
1504
+ })
1422
1505
  ) });
1423
1506
  };
1424
1507
  var getInlineAlertOrValidation = (validationState, inlineAlert) => {
@@ -2768,7 +2851,13 @@ var import_components20 = require("@transferwise/components");
2768
2851
  var import_icons = require("@transferwise/icons");
2769
2852
  var import_react_intl10 = require("react-intl");
2770
2853
  var import_jsx_runtime38 = require("react/jsx-runtime");
2771
- var SearchComponent = ({ state, status, features }) => {
2854
+ var SearchComponent = ({
2855
+ state,
2856
+ status,
2857
+ features,
2858
+ control,
2859
+ tags
2860
+ }) => {
2772
2861
  const { search } = state;
2773
2862
  const { formatMessage } = (0, import_react_intl10.useIntl)();
2774
2863
  if (!search) {
@@ -2808,6 +2897,8 @@ var SearchComponent = ({ state, status, features }) => {
2808
2897
  help: "",
2809
2898
  label: search.title,
2810
2899
  features,
2900
+ control,
2901
+ tags,
2811
2902
  children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_components20.InputGroup, { addonStart: { content: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_icons.Search, { size: 24 }) }, addonEnd: getAddon(), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2812
2903
  import_components20.Input,
2813
2904
  {
@@ -2876,7 +2967,7 @@ var CollectionRenderer = createCollectionRenderer(() => true);
2876
2967
  var CollectionRenderer_default = CollectionRenderer;
2877
2968
 
2878
2969
  // ../renderers/src/ColumnsRenderer.tsx
2879
- var import_classnames3 = __toESM(require_classnames());
2970
+ var import_classnames8 = __toESM(require_classnames());
2880
2971
 
2881
2972
  // ../renderers/src/utils/useIsCollapsed.ts
2882
2973
  var import_react10 = require("react");
@@ -2905,14 +2996,9 @@ var ColumnsRenderer = {
2905
2996
  canRenderType: "columns",
2906
2997
  render: ColumnsRendererComponent
2907
2998
  };
2908
- function ColumnsRendererComponent({
2909
- bias,
2910
- margin,
2911
- startChildren,
2912
- endChildren,
2913
- tags
2914
- }) {
2999
+ function ColumnsRendererComponent(props) {
2915
3000
  var _a;
3001
+ const { bias, margin, startChildren, endChildren, tags } = props;
2916
3002
  const isCollapsed = useIsCollapsed();
2917
3003
  const reverse = isCollapsed && ((_a = tags == null ? void 0 : tags.includes(RIGHT_FIRST_STACKING)) != null ? _a : false);
2918
3004
  const startColumn = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "df-columns-renderer-column", children: startChildren });
@@ -2920,10 +3006,15 @@ function ColumnsRendererComponent({
2920
3006
  return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
2921
3007
  "div",
2922
3008
  {
2923
- className: (0, import_classnames3.default)("df-columns-renderer-container", getMargin(margin), {
2924
- "df-columns-renderer-bias-start": bias === "start",
2925
- "df-columns-renderer-bias-end": bias === "end"
2926
- }),
3009
+ className: (0, import_classnames8.default)(
3010
+ "df-columns-renderer-container",
3011
+ getMargin(margin),
3012
+ {
3013
+ "df-columns-renderer-bias-start": bias === "start",
3014
+ "df-columns-renderer-bias-end": bias === "end"
3015
+ },
3016
+ controlAndTagsToCSSClass(props)
3017
+ ),
2927
3018
  children: [
2928
3019
  reverse ? endColumn : startColumn,
2929
3020
  reverse ? startColumn : endColumn
@@ -3046,6 +3137,8 @@ var DateInputRenderer = {
3046
3137
  loadingState: props.fieldLoadingState,
3047
3138
  help,
3048
3139
  features: props.features,
3140
+ control,
3141
+ tags: props.tags,
3049
3142
  children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(VariableDateInput_default, { control, inputProps })
3050
3143
  }
3051
3144
  );
@@ -3191,10 +3284,11 @@ var GroupedDecisionList = (_a) => {
3191
3284
  };
3192
3285
 
3193
3286
  // ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
3287
+ var import_classnames9 = __toESM(require_classnames());
3194
3288
  var import_jsx_runtime46 = require("react/jsx-runtime");
3195
3289
  var DecisionWrapper = (props) => {
3196
- const { title, control, margin } = props;
3197
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: getMargin(margin), children: [
3290
+ const { margin, control, title, tags } = props;
3291
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: (0, import_classnames9.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
3198
3292
  title && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_components24.Header, { as: "h2", title }),
3199
3293
  control === "filtered" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(UnfilteredDecisionList, __spreadValues({}, props))
3200
3294
  ] });
@@ -3275,6 +3369,7 @@ var DecisionRenderer_default = DecisionRenderer;
3275
3369
 
3276
3370
  // ../renderers/src/DividerRenderer.tsx
3277
3371
  var import_components26 = require("@transferwise/components");
3372
+ var import_classnames10 = __toESM(require_classnames());
3278
3373
  var import_jsx_runtime48 = require("react/jsx-runtime");
3279
3374
  var mapControlToLevel = (control) => {
3280
3375
  switch (control) {
@@ -3288,7 +3383,18 @@ var mapControlToLevel = (control) => {
3288
3383
  };
3289
3384
  var DividerRenderer = {
3290
3385
  canRenderType: "divider",
3291
- render: ({ margin, control }) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_components26.Divider, { className: `m-t-0 d-block ${getMargin(margin)}`, level: mapControlToLevel(control) })
3386
+ render: ({ margin, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3387
+ import_components26.Divider,
3388
+ {
3389
+ className: (0, import_classnames10.default)(
3390
+ "m-t-0",
3391
+ "d-block",
3392
+ getMargin(margin),
3393
+ controlAndTagsToCSSClass({ control, tags })
3394
+ ),
3395
+ level: mapControlToLevel(control)
3396
+ }
3397
+ )
3292
3398
  };
3293
3399
  var DividerRenderer_default = DividerRenderer;
3294
3400
 
@@ -3332,7 +3438,9 @@ function ExternalConfirmationRendererComponent({
3332
3438
  url,
3333
3439
  visible,
3334
3440
  open,
3335
- onCancel
3441
+ onCancel,
3442
+ control,
3443
+ tags
3336
3444
  }) {
3337
3445
  const { formatMessage } = (0, import_react_intl17.useIntl)();
3338
3446
  (0, import_react12.useEffect)(() => {
@@ -3363,6 +3471,7 @@ function ExternalConfirmationRendererComponent({
3363
3471
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_components27.Button, { v2: true, block: true, className: "m-b-2", priority: "tertiary", size: "md", onClick: onCancel, children: formatMessage(external_confirmation_messages_default.cancel) })
3364
3472
  ] }) })
3365
3473
  ] }),
3474
+ className: controlAndTagsToCSSClass({ control, tags }),
3366
3475
  onClose: onCancel
3367
3476
  }
3368
3477
  );
@@ -3377,10 +3486,11 @@ function getOrigin(url) {
3377
3486
  var ExternalConfirmationRenderer_default = ExternalConfirmationRenderer;
3378
3487
 
3379
3488
  // ../renderers/src/FormRenderer.tsx
3489
+ var import_classnames11 = __toESM(require_classnames());
3380
3490
  var import_jsx_runtime50 = require("react/jsx-runtime");
3381
3491
  var FormRenderer = {
3382
3492
  canRenderType: "form",
3383
- render: ({ children, margin }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: getMargin(margin), children })
3493
+ render: ({ children, margin, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: (0, import_classnames11.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children })
3384
3494
  };
3385
3495
  var FormRenderer_default = FormRenderer;
3386
3496
 
@@ -3389,7 +3499,7 @@ var import_components28 = require("@transferwise/components");
3389
3499
  var import_jsx_runtime51 = require("react/jsx-runtime");
3390
3500
  var FormSectionRenderer = {
3391
3501
  canRenderType: "form-section",
3392
- render: ({ title, description, children }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("fieldset", { children: [
3502
+ render: ({ title, description, children, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("fieldset", { className: controlAndTagsToCSSClass({ control, tags }), children: [
3393
3503
  title && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3394
3504
  import_components28.Header,
3395
3505
  {
@@ -3405,14 +3515,18 @@ var FormSectionRenderer_default = FormSectionRenderer;
3405
3515
 
3406
3516
  // ../renderers/src/HeadingRenderer.tsx
3407
3517
  var import_components29 = require("@transferwise/components");
3518
+ var import_classnames12 = __toESM(require_classnames());
3408
3519
  var import_jsx_runtime52 = require("react/jsx-runtime");
3409
3520
  var HeadingRenderer = {
3410
3521
  canRenderType: "heading",
3411
- render: (props) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Heading, __spreadValues({}, props))
3522
+ render: Heading
3412
3523
  };
3413
3524
  function Heading(props) {
3414
3525
  const { text, size, align, margin, control } = props;
3415
- const className = getTextAlignmentAndMargin({ align, margin });
3526
+ const className = (0, import_classnames12.default)(
3527
+ getTextAlignmentAndMargin({ align, margin }),
3528
+ controlAndTagsToCSSClass(props)
3529
+ );
3416
3530
  return control === "display" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DisplayHeading, { size, text, className }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(StandardHeading, { size, text, className });
3417
3531
  }
3418
3532
  function DisplayHeading({ size, text, className }) {
@@ -3449,6 +3563,7 @@ var HeadingRenderer_default = HeadingRenderer;
3449
3563
 
3450
3564
  // ../renderers/src/ImageRenderer/UrlImage.tsx
3451
3565
  var import_components30 = require("@transferwise/components");
3566
+ var import_classnames13 = __toESM(require_classnames());
3452
3567
  var import_react13 = require("react");
3453
3568
 
3454
3569
  // ../renderers/src/utils/api-utils.ts
@@ -3463,8 +3578,10 @@ var import_jsx_runtime53 = require("react/jsx-runtime");
3463
3578
  function UrlImage({
3464
3579
  accessibilityDescription,
3465
3580
  align,
3581
+ control,
3466
3582
  margin,
3467
3583
  size,
3584
+ tags,
3468
3585
  uri,
3469
3586
  httpClient
3470
3587
  }) {
@@ -3474,16 +3591,28 @@ function UrlImage({
3474
3591
  void getImageSource(httpClient, uri).then(setImageSource);
3475
3592
  }
3476
3593
  }, [uri, httpClient]);
3477
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: `df-image ${align} ${size || "md"} ${getMargin(margin)}`, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3478
- import_components30.Image,
3594
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3595
+ "div",
3479
3596
  {
3480
- className: "df-reserve-space",
3481
- alt: accessibilityDescription != null ? accessibilityDescription : "",
3482
- src: imageSource,
3483
- stretch: true,
3484
- shrink: true
3597
+ className: (0, import_classnames13.default)(
3598
+ "df-image",
3599
+ align,
3600
+ size || "md",
3601
+ getMargin(margin),
3602
+ controlAndTagsToCSSClass({ control, tags })
3603
+ ),
3604
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3605
+ import_components30.Image,
3606
+ {
3607
+ className: "df-reserve-space",
3608
+ alt: accessibilityDescription != null ? accessibilityDescription : "",
3609
+ src: imageSource,
3610
+ stretch: true,
3611
+ shrink: true
3612
+ }
3613
+ )
3485
3614
  }
3486
- ) });
3615
+ );
3487
3616
  }
3488
3617
  var readImageBlobAsDataURL = async (imageBlob) => (
3489
3618
  // we can safely assume the type of reader.result is string
@@ -3529,15 +3658,16 @@ var ImageRenderer_default = ImageRenderer;
3529
3658
 
3530
3659
  // ../renderers/src/InstructionsRenderer.tsx
3531
3660
  var import_components31 = require("@transferwise/components");
3661
+ var import_classnames14 = __toESM(require_classnames());
3532
3662
  var import_jsx_runtime55 = require("react/jsx-runtime");
3533
3663
  var doContext = ["positive", "neutral", "proposition"];
3534
3664
  var dontContext = ["warning", "negative"];
3535
3665
  var InstructionsRenderer = {
3536
3666
  canRenderType: "instructions",
3537
- render: ({ items, margin, title }) => {
3667
+ render: ({ items, margin, title, control, tags }) => {
3538
3668
  const dos = items.filter((item) => doContext.includes(item.context)).map(({ text }) => text);
3539
3669
  const donts = items.filter((item) => dontContext.includes(item.context)).map(({ text }) => text);
3540
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: getMargin(margin), children: [
3670
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: (0, import_classnames14.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
3541
3671
  title ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_components31.Header, { title }) : null,
3542
3672
  /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_components31.InstructionsList, { dos, donts })
3543
3673
  ] });
@@ -3597,6 +3727,8 @@ var IntegerInputRenderer = {
3597
3727
  loadingState: props.fieldLoadingState,
3598
3728
  help,
3599
3729
  features: props.features,
3730
+ control: props.control,
3731
+ tags: props.tags,
3600
3732
  children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_components32.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
3601
3733
  import_components32.Input,
3602
3734
  __spreadValues({
@@ -3621,6 +3753,7 @@ var IntegerInputRenderer_default = IntegerInputRenderer;
3621
3753
 
3622
3754
  // ../renderers/src/ListRenderer.tsx
3623
3755
  var import_components34 = require("@transferwise/components");
3756
+ var import_classnames15 = __toESM(require_classnames());
3624
3757
 
3625
3758
  // ../renderers/src/components/Header.tsx
3626
3759
  var import_components33 = require("@transferwise/components");
@@ -3640,7 +3773,7 @@ var getHeaderAction = (callToAction) => {
3640
3773
  var import_jsx_runtime58 = require("react/jsx-runtime");
3641
3774
  var ListRenderer = {
3642
3775
  canRenderType: "list",
3643
- render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: getMargin(margin), children: [
3776
+ render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: (0, import_classnames15.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
3644
3777
  /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Header, { title, callToAction }),
3645
3778
  items.map((item) => {
3646
3779
  var _a, _b;
@@ -3679,14 +3812,22 @@ var ListRenderer_default = ListRenderer;
3679
3812
 
3680
3813
  // ../renderers/src/LoadingIndicatorRenderer.tsx
3681
3814
  var import_components35 = require("@transferwise/components");
3815
+ var import_classnames16 = __toESM(require_classnames());
3682
3816
  var import_jsx_runtime59 = require("react/jsx-runtime");
3683
3817
  var LoadingIndicatorRenderer = {
3684
3818
  canRenderType: "loading-indicator",
3685
- render: ({ margin, size }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3819
+ render: ({ size, margin, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3686
3820
  import_components35.Loader,
3687
3821
  {
3688
3822
  size,
3689
- classNames: { "tw-loader": `tw-loader m-x-auto ${getMargin(margin)}` },
3823
+ classNames: {
3824
+ "tw-loader": (0, import_classnames16.default)(
3825
+ "tw-loader",
3826
+ "m-x-auto",
3827
+ getMargin(margin),
3828
+ controlAndTagsToCSSClass({ control, tags })
3829
+ )
3830
+ },
3690
3831
  "data-testid": "loading-indicator"
3691
3832
  }
3692
3833
  )
@@ -3695,25 +3836,38 @@ var LoadingIndicatorRenderer_default = LoadingIndicatorRenderer;
3695
3836
 
3696
3837
  // ../renderers/src/MarkdownRenderer.tsx
3697
3838
  var import_components36 = require("@transferwise/components");
3698
- var import_classnames4 = __toESM(require_classnames());
3839
+ var import_classnames17 = __toESM(require_classnames());
3699
3840
  var import_jsx_runtime60 = require("react/jsx-runtime");
3700
3841
  var MarkdownRenderer = {
3701
3842
  canRenderType: "markdown",
3702
- render: ({ content, align, margin, size }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: getTextAlignmentAndMargin({ align, margin }), children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3703
- import_components36.Markdown,
3704
- {
3705
- className: (0, import_classnames4.default)(
3706
- "df-markdown",
3707
- ["xs", "sm"].includes(size) ? "np-text-body-default" : "np-text-body-large"
3708
- ),
3709
- config: { link: { target: "_blank" } },
3710
- children: content
3711
- }
3712
- ) })
3843
+ render: ({ content, align, margin, size, control, tags }) => {
3844
+ const isLarge = !["xs", "sm"].includes(size);
3845
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3846
+ "div",
3847
+ {
3848
+ className: (0, import_classnames17.default)(
3849
+ getTextAlignmentAndMargin({ align, margin }),
3850
+ controlAndTagsToCSSClass({ control, tags })
3851
+ ),
3852
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3853
+ import_components36.Markdown,
3854
+ {
3855
+ className: (0, import_classnames17.default)("df-markdown", {
3856
+ "np-text-body-large": isLarge,
3857
+ "np-text-body-default": !isLarge
3858
+ }),
3859
+ config: { link: { target: "_blank" } },
3860
+ children: content
3861
+ }
3862
+ )
3863
+ }
3864
+ );
3865
+ }
3713
3866
  };
3714
3867
  var MarkdownRenderer_default = MarkdownRenderer;
3715
3868
 
3716
3869
  // ../renderers/src/MediaRenderer.tsx
3870
+ var import_classnames18 = __toESM(require_classnames());
3717
3871
  var import_jsx_runtime61 = require("react/jsx-runtime");
3718
3872
  var MediaRenderer = {
3719
3873
  canRenderType: "media",
@@ -3733,9 +3887,22 @@ var AvatarMediaRendererComponent = ({
3733
3887
  media,
3734
3888
  align,
3735
3889
  margin,
3736
- size
3890
+ size,
3891
+ control,
3892
+ tags
3737
3893
  }) => {
3738
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: `df-media-layout-avatar ${align} ${getMargin(margin)}`, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Media, { media, size: mapAvatarMediaSize(size) }) });
3894
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3895
+ "div",
3896
+ {
3897
+ className: (0, import_classnames18.default)(
3898
+ "df-media-layout-avatar",
3899
+ align,
3900
+ getMargin(margin),
3901
+ controlAndTagsToCSSClass({ control, tags })
3902
+ ),
3903
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Media, { media, size: mapAvatarMediaSize(size) })
3904
+ }
3905
+ );
3739
3906
  };
3740
3907
  var ImageMediaRendererComponent = (_a) => {
3741
3908
  var _b = _a, {
@@ -3762,6 +3929,7 @@ var mapAvatarMediaSize = (size) => {
3762
3929
 
3763
3930
  // ../renderers/src/ModalLayoutRenderer.tsx
3764
3931
  var import_components37 = require("@transferwise/components");
3932
+ var import_classnames19 = __toESM(require_classnames());
3765
3933
  var import_react14 = require("react");
3766
3934
  var import_jsx_runtime62 = require("react/jsx-runtime");
3767
3935
  var ModalLayoutRenderer = {
@@ -3769,10 +3937,10 @@ var ModalLayoutRenderer = {
3769
3937
  render: (props) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(DFModal, __spreadValues({}, props))
3770
3938
  };
3771
3939
  var ModalLayoutRenderer_default = ModalLayoutRenderer;
3772
- function DFModal({ content, margin, trigger }) {
3940
+ function DFModal({ content, margin, trigger, control, tags }) {
3773
3941
  const [visible, setVisible] = (0, import_react14.useState)(false);
3774
3942
  const { children, title } = content;
3775
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: getMargin(margin), children: [
3943
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: (0, import_classnames19.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
3776
3944
  /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_components37.Button, { v2: true, priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
3777
3945
  /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3778
3946
  import_components37.Modal,
@@ -3793,8 +3961,17 @@ var import_components38 = require("@transferwise/components");
3793
3961
  var import_jsx_runtime63 = require("react/jsx-runtime");
3794
3962
  var ModalRenderer = {
3795
3963
  canRenderType: "modal",
3796
- render: ({ title, children, open, onClose }) => {
3797
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_components38.Modal, { open, title, body: children, onClose });
3964
+ render: ({ title, children, open, onClose, control, tags }) => {
3965
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3966
+ import_components38.Modal,
3967
+ {
3968
+ open,
3969
+ title,
3970
+ body: children,
3971
+ className: controlAndTagsToCSSClass({ control, tags }),
3972
+ onClose
3973
+ }
3974
+ );
3798
3975
  }
3799
3976
  };
3800
3977
 
@@ -3820,6 +3997,9 @@ function MoneyInputRendererComponent(props) {
3820
3997
  selectedCurrencyIndex,
3821
3998
  placeholder,
3822
3999
  currencies,
4000
+ features,
4001
+ control,
4002
+ tags,
3823
4003
  onAmountChange,
3824
4004
  onCurrencyChange
3825
4005
  } = props;
@@ -3837,7 +4017,9 @@ function MoneyInputRendererComponent(props) {
3837
4017
  description,
3838
4018
  validation: validationState,
3839
4019
  help,
3840
- features: props.features,
4020
+ features,
4021
+ control,
4022
+ tags,
3841
4023
  children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3842
4024
  import_components39.MoneyInput,
3843
4025
  {
@@ -3916,12 +4098,13 @@ function InlineComponent(props) {
3916
4098
  id,
3917
4099
  description,
3918
4100
  disabled,
4101
+ control,
3919
4102
  features,
3920
4103
  help,
3921
4104
  options,
3922
4105
  selectedIndices,
3923
- tags,
3924
4106
  title,
4107
+ tags,
3925
4108
  validationState,
3926
4109
  onSelect
3927
4110
  } = props;
@@ -3953,6 +4136,8 @@ function InlineComponent(props) {
3953
4136
  description,
3954
4137
  validation: validationState,
3955
4138
  features,
4139
+ control,
4140
+ tags,
3956
4141
  children: filteredOptions.map((option) => {
3957
4142
  var _a;
3958
4143
  const {
@@ -4029,6 +4214,8 @@ function DefaultComponent(props) {
4029
4214
  selectedIndices,
4030
4215
  title,
4031
4216
  validationState,
4217
+ control,
4218
+ tags,
4032
4219
  onSelect
4033
4220
  } = props;
4034
4221
  const mergedIndices = stagedIndices != null ? stagedIndices : selectedIndices;
@@ -4069,6 +4256,8 @@ function DefaultComponent(props) {
4069
4256
  description,
4070
4257
  validation: validationState,
4071
4258
  features,
4259
+ control,
4260
+ tags,
4072
4261
  children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4073
4262
  import_components41.SelectInput,
4074
4263
  __spreadValues({
@@ -4121,6 +4310,8 @@ function InlineCheckboxComponent(props) {
4121
4310
  selectedIndices,
4122
4311
  title,
4123
4312
  validationState,
4313
+ control,
4314
+ tags,
4124
4315
  onSelect
4125
4316
  } = props;
4126
4317
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
@@ -4132,6 +4323,8 @@ function InlineCheckboxComponent(props) {
4132
4323
  description,
4133
4324
  validation: validationState,
4134
4325
  features,
4326
+ control,
4327
+ tags,
4135
4328
  children: options.map((option, index) => {
4136
4329
  var _a;
4137
4330
  const {
@@ -4179,7 +4372,7 @@ var import_components44 = require("@transferwise/components");
4179
4372
 
4180
4373
  // ../renderers/src/components/UploadFieldInput.tsx
4181
4374
  var import_components43 = require("@transferwise/components");
4182
- var import_classnames5 = __toESM(require_classnames());
4375
+ var import_classnames20 = __toESM(require_classnames());
4183
4376
  var import_jsx_runtime69 = require("react/jsx-runtime");
4184
4377
  function UploadFieldInput({
4185
4378
  id,
@@ -4188,7 +4381,9 @@ function UploadFieldInput({
4188
4381
  description,
4189
4382
  help,
4190
4383
  validation,
4191
- features
4384
+ features,
4385
+ control,
4386
+ tags
4192
4387
  }) {
4193
4388
  const labelContent = label && help ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(LabelContentWithHelp, { text: label, help }) : label;
4194
4389
  const descriptionId = description ? `${id}-description` : void 0;
@@ -4197,9 +4392,13 @@ function UploadFieldInput({
4197
4392
  "div",
4198
4393
  {
4199
4394
  ref,
4200
- className: (0, import_classnames5.default)("form-group d-block", {
4201
- "has-error": (validation == null ? void 0 : validation.status) === "invalid"
4202
- }),
4395
+ className: (0, import_classnames20.default)(
4396
+ "form-group d-block",
4397
+ {
4398
+ "has-error": (validation == null ? void 0 : validation.status) === "invalid"
4399
+ },
4400
+ controlAndTagsToCSSClass({ control, tags })
4401
+ ),
4203
4402
  children: [
4204
4403
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("label", { htmlFor: id, className: "control-label", children: labelContent }),
4205
4404
  children,
@@ -4256,7 +4455,9 @@ var MultiUploadInputRenderer = {
4256
4455
  validationState,
4257
4456
  value,
4258
4457
  onInsertFile,
4259
- onRemoveFile
4458
+ onRemoveFile,
4459
+ control,
4460
+ tags
4260
4461
  } = props;
4261
4462
  const onUploadFile = async (formData) => {
4262
4463
  const file = formData.get("file");
@@ -4273,6 +4474,8 @@ var MultiUploadInputRenderer = {
4273
4474
  validation: validationState,
4274
4475
  help,
4275
4476
  features,
4477
+ control,
4478
+ tags,
4276
4479
  children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4277
4480
  import_components44.UploadInput,
4278
4481
  {
@@ -4327,6 +4530,8 @@ var NumberInputRenderer = {
4327
4530
  loadingState: props.fieldLoadingState,
4328
4531
  help,
4329
4532
  features: props.features,
4533
+ control: props.control,
4534
+ tags: props.tags,
4330
4535
  children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_components45.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
4331
4536
  import_components45.Input,
4332
4537
  __spreadValues({
@@ -4348,6 +4553,8 @@ var NumberInputRenderer = {
4348
4553
  var NumberInputRenderer_default = NumberInputRenderer;
4349
4554
 
4350
4555
  // ../renderers/src/ParagraphRenderer.tsx
4556
+ var import_components47 = require("@transferwise/components");
4557
+ var import_classnames21 = __toESM(require_classnames());
4351
4558
  var import_react_intl23 = require("react-intl");
4352
4559
 
4353
4560
  // ../renderers/src/hooks/useSnackBarIfAvailable.ts
@@ -4359,10 +4566,6 @@ function useSnackBarIfAvailable() {
4359
4566
  };
4360
4567
  }
4361
4568
 
4362
- // ../renderers/src/ParagraphRenderer.tsx
4363
- var import_components47 = require("@transferwise/components");
4364
- var import_classnames6 = __toESM(require_classnames());
4365
-
4366
4569
  // ../renderers/src/messages/paragraph.messages.ts
4367
4570
  var import_react_intl22 = require("react-intl");
4368
4571
  var paragraph_messages_default = (0, import_react_intl22.defineMessages)({
@@ -4384,8 +4587,12 @@ var ParagraphRenderer = {
4384
4587
  canRenderType: "paragraph",
4385
4588
  render: (props) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Paragraph, __spreadValues({}, props))
4386
4589
  };
4387
- function Paragraph({ align, control, margin, size, text }) {
4388
- const className = getTextAlignmentAndMargin({ align, margin });
4590
+ function Paragraph(props) {
4591
+ const { align, control, margin, size, text } = props;
4592
+ const className = (0, import_classnames21.default)(
4593
+ getTextAlignmentAndMargin({ align, margin }),
4594
+ controlAndTagsToCSSClass(props)
4595
+ );
4389
4596
  return control === "copyable" ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(CopyableParagraph, { className, align, text }) : /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
4390
4597
  "p",
4391
4598
  {
@@ -4413,7 +4620,7 @@ function CopyableParagraph({
4413
4620
  type: "text",
4414
4621
  value: text,
4415
4622
  readOnly: true,
4416
- className: (0, import_classnames6.default)("text-ellipsis", inputAlignmentClasses)
4623
+ className: (0, import_classnames21.default)("text-ellipsis", inputAlignmentClasses)
4417
4624
  }
4418
4625
  ),
4419
4626
  /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_components47.Button, { v2: true, block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
@@ -4423,15 +4630,16 @@ var ParagraphRenderer_default = ParagraphRenderer;
4423
4630
 
4424
4631
  // ../renderers/src/ProgressRenderer.tsx
4425
4632
  var import_components48 = require("@transferwise/components");
4633
+ var import_classnames22 = __toESM(require_classnames());
4426
4634
  var import_jsx_runtime73 = require("react/jsx-runtime");
4427
4635
  var ProgressRenderer = {
4428
4636
  canRenderType: "progress",
4429
- render: ({ uid, title, help, progress, progressText, margin, description }) => {
4637
+ render: ({ uid, title, help, progress, progressText, margin, description, control, tags }) => {
4430
4638
  return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
4431
4639
  import_components48.ProgressBar,
4432
4640
  {
4433
4641
  id: uid,
4434
- className: getMargin(margin),
4642
+ className: (0, import_classnames22.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
4435
4643
  title: title && help ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(LabelContentWithHelp, { text: title, help }) : title,
4436
4644
  description,
4437
4645
  progress: {
@@ -4447,7 +4655,7 @@ var ProgressRenderer = {
4447
4655
  // ../renderers/src/RepeatableRenderer.tsx
4448
4656
  var import_components49 = require("@transferwise/components");
4449
4657
  var import_icons2 = require("@transferwise/icons");
4450
- var import_classnames7 = __toESM(require_classnames());
4658
+ var import_classnames23 = __toESM(require_classnames());
4451
4659
  var import_react19 = require("react");
4452
4660
  var import_react_intl25 = require("react-intl");
4453
4661
 
@@ -4522,13 +4730,13 @@ function Repeatable(props) {
4522
4730
  setOpenModalType(null);
4523
4731
  };
4524
4732
  return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
4525
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { ref, children: [
4733
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { ref, className: controlAndTagsToCSSClass(props), children: [
4526
4734
  title && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_components49.Header, { title }),
4527
4735
  description && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { children: description }),
4528
4736
  /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
4529
4737
  "div",
4530
4738
  {
4531
- className: (0, import_classnames7.default)("form-group", {
4739
+ className: (0, import_classnames23.default)("form-group", {
4532
4740
  "has-error": (validationState == null ? void 0 : validationState.status) === "invalid"
4533
4741
  }),
4534
4742
  children: [
@@ -4594,12 +4802,13 @@ var RepeatableRenderer_default = RepeatableRenderer;
4594
4802
 
4595
4803
  // ../renderers/src/ReviewLegacyRenderer.tsx
4596
4804
  var import_components50 = require("@transferwise/components");
4805
+ var import_classnames24 = __toESM(require_classnames());
4597
4806
  var import_jsx_runtime75 = require("react/jsx-runtime");
4598
4807
  var ReviewRenderer = {
4599
4808
  canRenderType: "review",
4600
- render: ({ callToAction, control, fields, margin, title, trackEvent }) => {
4809
+ render: ({ callToAction, control, fields, margin, title, trackEvent, tags }) => {
4601
4810
  const orientation = mapControlToDefinitionListLayout(control);
4602
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: getMargin(margin), children: [
4811
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: (0, import_classnames24.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4603
4812
  /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Header, { title, callToAction }),
4604
4813
  /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: margin, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
4605
4814
  import_components50.DefinitionList,
@@ -4651,6 +4860,7 @@ var getFieldLabel = (label, help, onClick) => {
4651
4860
  // ../renderers/src/ReviewRenderer.tsx
4652
4861
  var import_components51 = require("@transferwise/components");
4653
4862
  var import_icons3 = require("@transferwise/icons");
4863
+ var import_classnames25 = __toESM(require_classnames());
4654
4864
  var import_react_intl26 = require("react-intl");
4655
4865
  var import_jsx_runtime76 = require("react/jsx-runtime");
4656
4866
  var IGNORED_CONTROLS = [
@@ -4674,7 +4884,7 @@ var Review = ({
4674
4884
  trackEvent
4675
4885
  }) => {
4676
4886
  const intl = (0, import_react_intl26.useIntl)();
4677
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: getMargin(margin), children: [
4887
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: (0, import_classnames25.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4678
4888
  /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Header, { title, callToAction }),
4679
4889
  fields.map((field) => {
4680
4890
  var _a, _b, _c;
@@ -4753,10 +4963,12 @@ function BlockSearchRendererComponent({
4753
4963
  id,
4754
4964
  hint,
4755
4965
  isLoading,
4966
+ control,
4756
4967
  features,
4757
4968
  margin,
4758
4969
  query,
4759
4970
  state,
4971
+ tags,
4760
4972
  title,
4761
4973
  trackEvent,
4762
4974
  onChange
@@ -4773,6 +4985,8 @@ function BlockSearchRendererComponent({
4773
4985
  help: "",
4774
4986
  label: title,
4775
4987
  features,
4988
+ control,
4989
+ tags,
4776
4990
  children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_components53.InputGroup, { addonStart: { content: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons4.Search, { size: 24 }) }, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
4777
4991
  import_components53.Input,
4778
4992
  {
@@ -4861,9 +5075,11 @@ function InlineSearchRenderer({
4861
5075
  id,
4862
5076
  hint,
4863
5077
  isLoading,
5078
+ control,
4864
5079
  features,
4865
5080
  margin,
4866
5081
  state,
5082
+ tags,
4867
5083
  title,
4868
5084
  onChange,
4869
5085
  trackEvent
@@ -4879,6 +5095,8 @@ function InlineSearchRenderer({
4879
5095
  help: "",
4880
5096
  label: title,
4881
5097
  features,
5098
+ control,
5099
+ tags,
4882
5100
  children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
4883
5101
  import_components54.Typeahead,
4884
5102
  {
@@ -4955,6 +5173,7 @@ var SearchRenderer_default = SearchRenderer;
4955
5173
 
4956
5174
  // ../renderers/src/SectionRenderer.tsx
4957
5175
  var import_components55 = require("@transferwise/components");
5176
+ var import_classnames26 = __toESM(require_classnames());
4958
5177
 
4959
5178
  // ../renderers/src/utils/getHeaderAction.tsx
4960
5179
  var getHeaderAction2 = (callToAction) => {
@@ -4981,11 +5200,17 @@ var getHeaderAction2 = (callToAction) => {
4981
5200
  var import_jsx_runtime81 = require("react/jsx-runtime");
4982
5201
  var SectionRenderer = {
4983
5202
  canRenderType: "section",
4984
- render: ({ children, callToAction, margin, title }) => {
4985
- return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("section", { className: getMargin(margin), children: [
4986
- (title || callToAction) && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_components55.Header, { title: title != null ? title : "", action: getHeaderAction2(callToAction) }),
4987
- children
4988
- ] });
5203
+ render: ({ children, callToAction, margin, title, control, tags }) => {
5204
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
5205
+ "section",
5206
+ {
5207
+ className: (0, import_classnames26.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
5208
+ children: [
5209
+ (title || callToAction) && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_components55.Header, { title: title != null ? title : "", action: getHeaderAction2(callToAction) }),
5210
+ children
5211
+ ]
5212
+ }
5213
+ );
4989
5214
  }
4990
5215
  };
4991
5216
  var SectionRenderer_default = SectionRenderer;
@@ -5005,6 +5230,8 @@ function RadioInputRendererComponent(props) {
5005
5230
  options,
5006
5231
  selectedIndex,
5007
5232
  validationState,
5233
+ control,
5234
+ tags,
5008
5235
  onSelect
5009
5236
  } = props;
5010
5237
  return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_jsx_runtime82.Fragment, { children: [
@@ -5017,6 +5244,8 @@ function RadioInputRendererComponent(props) {
5017
5244
  description,
5018
5245
  validation: validationState,
5019
5246
  features,
5247
+ control,
5248
+ tags,
5020
5249
  children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
5021
5250
  import_components56.RadioGroup,
5022
5251
  {
@@ -5055,6 +5284,8 @@ function TabInputRendererComponent(props) {
5055
5284
  options,
5056
5285
  selectedIndex,
5057
5286
  validationState,
5287
+ control,
5288
+ tags,
5058
5289
  onSelect
5059
5290
  } = props;
5060
5291
  (0, import_react22.useEffect)(() => {
@@ -5072,6 +5303,8 @@ function TabInputRendererComponent(props) {
5072
5303
  description,
5073
5304
  validation: validationState,
5074
5305
  features,
5306
+ control,
5307
+ tags,
5075
5308
  children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
5076
5309
  import_components57.Tabs,
5077
5310
  {
@@ -5112,6 +5345,8 @@ function SelectInputRendererComponent(props) {
5112
5345
  required,
5113
5346
  selectedIndex,
5114
5347
  validationState,
5348
+ control,
5349
+ tags,
5115
5350
  onSelect
5116
5351
  } = props;
5117
5352
  const items = options.map(
@@ -5152,6 +5387,8 @@ function SelectInputRendererComponent(props) {
5152
5387
  description,
5153
5388
  validation: validationState,
5154
5389
  features,
5390
+ control,
5391
+ tags,
5155
5392
  children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
5156
5393
  import_components58.SelectInput,
5157
5394
  __spreadValues({
@@ -5187,6 +5424,8 @@ function SegmentedInputRendererComponent(props) {
5187
5424
  options,
5188
5425
  selectedIndex,
5189
5426
  validationState,
5427
+ control,
5428
+ tags,
5190
5429
  onSelect
5191
5430
  } = props;
5192
5431
  (0, import_react23.useEffect)(() => {
@@ -5204,6 +5443,8 @@ function SegmentedInputRendererComponent(props) {
5204
5443
  description,
5205
5444
  validation: validationState,
5206
5445
  features,
5446
+ control,
5447
+ tags,
5207
5448
  children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
5208
5449
  import_components59.SegmentedControl,
5209
5450
  {
@@ -5244,7 +5485,7 @@ function RadioItemRendererComponent(props) {
5244
5485
  onSelect
5245
5486
  } = props;
5246
5487
  const { ref } = useScrollToError(validationState, features);
5247
- return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { ref, children: [
5488
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { ref, className: controlAndTagsToCSSClass(props), children: [
5248
5489
  rootTitle && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
5249
5490
  import_components60.Header,
5250
5491
  {
@@ -5304,10 +5545,11 @@ var SelectInputRenderer_default = SelectInputRenderer;
5304
5545
 
5305
5546
  // ../renderers/src/StatusListRenderer.tsx
5306
5547
  var import_components61 = require("@transferwise/components");
5548
+ var import_classnames27 = __toESM(require_classnames());
5307
5549
  var import_jsx_runtime88 = require("react/jsx-runtime");
5308
5550
  var StatusListRenderer = {
5309
5551
  canRenderType: "status-list",
5310
- render: ({ margin, items, title }) => /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: getMargin(margin), children: [
5552
+ render: ({ margin, items, title, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: (0, import_classnames27.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5311
5553
  title ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(import_components61.Header, { title }) : null,
5312
5554
  items.map((item) => {
5313
5555
  const { callToAction, description, title: itemTitle } = item;
@@ -5355,6 +5597,9 @@ var mapStatus = (status) => {
5355
5597
  };
5356
5598
  var StatusListRenderer_default = StatusListRenderer;
5357
5599
 
5600
+ // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
5601
+ var import_classnames28 = __toESM(require_classnames());
5602
+
5358
5603
  // ../renderers/src/utils/useCustomTheme.ts
5359
5604
  var import_components_theming = require("@wise/components-theming");
5360
5605
  var import_react24 = require("react");
@@ -5498,17 +5743,24 @@ var SplashCelebrationStepRenderer = {
5498
5743
  render: SplashCelebrationStepRendererComponent
5499
5744
  };
5500
5745
  function SplashCelebrationStepRendererComponent(props) {
5501
- const { back, title, description, toolbar, children, footer, tags, trackEvent } = props;
5746
+ const { back, title, description, toolbar, children, footer, control, tags, trackEvent } = props;
5502
5747
  useCustomTheme("forest-green", trackEvent);
5503
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "splash-screen m-t-5", children: [
5504
- /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(TopBar, { back, toolbar, tags }),
5505
- title || description ? /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(StepHeader, { title, description, tags }) }) : void 0,
5506
- children,
5507
- /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(StepFooter, { footer, tags })
5508
- ] });
5748
+ return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(
5749
+ "div",
5750
+ {
5751
+ className: (0, import_classnames28.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
5752
+ children: [
5753
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(TopBar, { back, toolbar, tags }),
5754
+ title || description ? /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(StepHeader, { title, description, tags }) }) : void 0,
5755
+ children,
5756
+ /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(StepFooter, { footer, tags })
5757
+ ]
5758
+ }
5759
+ );
5509
5760
  }
5510
5761
 
5511
5762
  // ../renderers/src/step/SplashStepRenderer.tsx
5763
+ var import_classnames29 = __toESM(require_classnames());
5512
5764
  var import_jsx_runtime94 = require("react/jsx-runtime");
5513
5765
  var SplashStepRenderer = {
5514
5766
  canRenderType: "step",
@@ -5516,13 +5768,19 @@ var SplashStepRenderer = {
5516
5768
  render: SplashStepRendererComponent
5517
5769
  };
5518
5770
  function SplashStepRendererComponent(props) {
5519
- const { back, title, description, toolbar, children, footer, tags } = props;
5520
- return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "splash-screen m-t-5", children: [
5521
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(TopBar, { back, toolbar, tags }),
5522
- title || description ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(StepHeader, { title, description, tags }) }) : void 0,
5523
- children,
5524
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(StepFooter, { footer, tags })
5525
- ] });
5771
+ const { back, title, description, toolbar, children, footer, control, tags } = props;
5772
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
5773
+ "div",
5774
+ {
5775
+ className: (0, import_classnames29.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
5776
+ children: [
5777
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(TopBar, { back, toolbar, tags }),
5778
+ title || description ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(StepHeader, { title, description, tags }) }) : void 0,
5779
+ children,
5780
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(StepFooter, { footer, tags })
5781
+ ]
5782
+ }
5783
+ );
5526
5784
  }
5527
5785
 
5528
5786
  // ../renderers/src/step/StepRenderer.tsx
@@ -5533,8 +5791,8 @@ var StepRenderer = {
5533
5791
  render: StepRendererComponent
5534
5792
  };
5535
5793
  function StepRendererComponent(props) {
5536
- const { back, description, error, title, children, toolbar, footer, tags } = props;
5537
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { children: [
5794
+ const { back, description, error, title, children, toolbar, footer, control, tags } = props;
5795
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: controlAndTagsToCSSClass({ control, tags }), children: [
5538
5796
  /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(TopBar, { back, toolbar, tags }),
5539
5797
  title || description ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(StepHeader, { title, description, tags }) }) : void 0,
5540
5798
  error ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_components65.Alert, { type: "negative", className: "m-b-2", message: error }) : null,
@@ -5545,6 +5803,7 @@ function StepRendererComponent(props) {
5545
5803
 
5546
5804
  // ../renderers/src/TabsRenderer.tsx
5547
5805
  var import_components66 = require("@transferwise/components");
5806
+ var import_classnames30 = __toESM(require_classnames());
5548
5807
  var import_react25 = require("react");
5549
5808
  var import_jsx_runtime96 = require("react/jsx-runtime");
5550
5809
  var TabsRenderer = {
@@ -5563,9 +5822,9 @@ var TabsRenderer = {
5563
5822
  }
5564
5823
  }
5565
5824
  };
5566
- function TabsRendererComponent({ uid, margin, tabs }) {
5825
+ function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
5567
5826
  const [selectedIndex, setSelectedIndex] = (0, import_react25.useState)(0);
5568
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: getMargin(margin), children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5827
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: (0, import_classnames30.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5569
5828
  import_components66.Tabs,
5570
5829
  {
5571
5830
  name: uid,
@@ -5583,10 +5842,10 @@ function TabsRendererComponent({ uid, margin, tabs }) {
5583
5842
  }
5584
5843
  ) });
5585
5844
  }
5586
- function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
5845
+ function SegmentedTabsRendererComponent({ uid, margin, tabs, control, tags }) {
5587
5846
  var _a;
5588
5847
  const [selectedIndex, setSelectedIndex] = (0, import_react25.useState)(0);
5589
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: getMargin(margin), children: [
5848
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: (0, import_classnames30.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5590
5849
  /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5591
5850
  import_components66.SegmentedControl,
5592
5851
  {
@@ -5605,10 +5864,10 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
5605
5864
  /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
5606
5865
  ] });
5607
5866
  }
5608
- function ChipsTabsRendererComponent({ margin, tabs }) {
5867
+ function ChipsTabsRendererComponent({ margin, tabs, control, tags }) {
5609
5868
  var _a;
5610
5869
  const [selectedIndex, setSelectedIndex] = (0, import_react25.useState)(0);
5611
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: getMargin(margin), children: [
5870
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: (0, import_classnames30.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5612
5871
  /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "chips-container", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
5613
5872
  import_components66.Chips,
5614
5873
  {
@@ -5719,6 +5978,8 @@ var TextInputRenderer = {
5719
5978
  loadingState: props.fieldLoadingState,
5720
5979
  help,
5721
5980
  features: props.features,
5981
+ control: props.control,
5982
+ tags: props.tags,
5722
5983
  children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_components68.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(VariableTextInput, __spreadValues({}, inputProps)) })
5723
5984
  }
5724
5985
  );
@@ -5747,6 +6008,8 @@ var UploadInputRenderer = {
5747
6008
  maxSize,
5748
6009
  validationState,
5749
6010
  value,
6011
+ control,
6012
+ tags,
5750
6013
  onUpload
5751
6014
  } = props;
5752
6015
  const onUploadFile = async (formData) => {
@@ -5768,6 +6031,8 @@ var UploadInputRenderer = {
5768
6031
  description: void 0,
5769
6032
  validation: validationState,
5770
6033
  features,
6034
+ control,
6035
+ tags,
5771
6036
  children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
5772
6037
  import_components69.UploadInput,
5773
6038
  {
@@ -5809,6 +6074,7 @@ var LargeUploadRenderer = {
5809
6074
  validationState,
5810
6075
  maxSize = null,
5811
6076
  features,
6077
+ tags,
5812
6078
  onUpload
5813
6079
  } = _a, rest = __objRest(_a, [
5814
6080
  "id",
@@ -5822,6 +6088,7 @@ var LargeUploadRenderer = {
5822
6088
  "validationState",
5823
6089
  "maxSize",
5824
6090
  "features",
6091
+ "tags",
5825
6092
  "onUpload"
5826
6093
  ]);
5827
6094
  const uploadProps = __spreadProps(__spreadValues({}, rest), { id, name: id, maxSize });
@@ -5845,6 +6112,8 @@ var LargeUploadRenderer = {
5845
6112
  validation: validationState,
5846
6113
  help,
5847
6114
  features,
6115
+ control,
6116
+ tags,
5848
6117
  children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
5849
6118
  import_components69.Upload,
5850
6119
  __spreadProps(__spreadValues({}, uploadProps), {
@@ -5862,6 +6131,7 @@ var LargeUploadRenderer = {
5862
6131
 
5863
6132
  // ../renderers/src/UpsellRenderer.tsx
5864
6133
  var import_components70 = require("@transferwise/components");
6134
+ var import_classnames31 = __toESM(require_classnames());
5865
6135
  var import_react26 = require("react");
5866
6136
  var import_jsx_runtime100 = require("react/jsx-runtime");
5867
6137
  var UpsellRenderer = {
@@ -5869,12 +6139,12 @@ var UpsellRenderer = {
5869
6139
  render: UpsellRendererComponent
5870
6140
  };
5871
6141
  function UpsellRendererComponent(props) {
5872
- const { text, callToAction, media, margin, onDismiss } = props;
6142
+ const { text, callToAction, media, margin, onDismiss, control, tags } = props;
5873
6143
  const [isVisible, setIsVisible] = (0, import_react26.useState)(true);
5874
6144
  return isVisible ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
5875
6145
  import_components70.Nudge,
5876
6146
  {
5877
- className: getMargin(margin),
6147
+ className: (0, import_classnames31.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
5878
6148
  mediaName: getMediaName(media),
5879
6149
  title: text,
5880
6150
  action: __spreadValues({
@@ -5919,7 +6189,7 @@ var supportedMediaNames = [
5919
6189
 
5920
6190
  // ../renderers/src/ButtonRenderer/CircularButtonRenderer.tsx
5921
6191
  var import_components71 = require("@transferwise/components");
5922
- var import_classnames8 = __toESM(require_classnames());
6192
+ var import_classnames32 = __toESM(require_classnames());
5923
6193
  var import_jsx_runtime101 = require("react/jsx-runtime");
5924
6194
  var CircularButtonRenderer = {
5925
6195
  canRenderType: "button",
@@ -5928,19 +6198,30 @@ var CircularButtonRenderer = {
5928
6198
  };
5929
6199
  function CircularButtonComponent(props) {
5930
6200
  var _a;
5931
- const { context, disabled, margin, media, tags, title, onClick } = props;
6201
+ const { context, control, disabled, margin, media, tags, title, onClick } = props;
5932
6202
  const priority = tags == null ? void 0 : tags.find((tag) => tag === "primary" || tag === "secondary");
5933
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)("div", { className: (0, import_classnames8.default)(getMargin(margin), "df-button", "circular"), children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
5934
- import_components71.CircularButton,
6203
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6204
+ "div",
5935
6205
  {
5936
- disabled,
5937
- priority: priority != null ? priority : "secondary",
5938
- type: context === "negative" ? "negative" : "default",
5939
- icon: media ? (_a = getAddonStartMedia(media)) == null ? void 0 : _a.value : void 0,
5940
- onClick,
5941
- children: title
6206
+ className: (0, import_classnames32.default)(
6207
+ getMargin(margin),
6208
+ "df-button",
6209
+ "circular",
6210
+ controlAndTagsToCSSClass({ control, tags })
6211
+ ),
6212
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6213
+ import_components71.CircularButton,
6214
+ {
6215
+ disabled,
6216
+ priority: priority != null ? priority : "secondary",
6217
+ type: context === "negative" ? "negative" : "default",
6218
+ icon: media ? (_a = getAddonStartMedia(media)) == null ? void 0 : _a.value : void 0,
6219
+ onClick,
6220
+ children: title
6221
+ }
6222
+ )
5942
6223
  }
5943
- ) });
6224
+ );
5944
6225
  }
5945
6226
 
5946
6227
  // ../renderers/src/getWiseRenderers.ts