@wise/dynamic-flow-client 3.9.1-experimental-152372b → 3.9.2-experimental-535221d

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.
Files changed (41) hide show
  1. package/build/legacy/dynamicFlow/DynamicFlow.js +5 -5
  2. package/build/legacy/dynamicFlow/tests/Actions.spec.js +50 -3
  3. package/build/legacy/formControl/FormControl.js +6 -4
  4. package/build/legacy/jsonSchemaForm/JsonSchemaForm.end-to-end.spec.js +0 -29
  5. package/build/legacy/jsonSchemaForm/oneOfSchema/OneOfSchema.js +1 -1
  6. package/build/legacy/jsonSchemaForm/schemaFormControl/SchemaFormControl.js +6 -2
  7. package/build/main.js +1241 -1183
  8. package/build/main.min.js +1 -1
  9. package/build/main.mjs +943 -885
  10. package/build/revamp/DynamicFlowCore.js +2 -3
  11. package/build/revamp/DynamicFragmentWise.js +1 -1
  12. package/build/revamp/flow/executeSubmission.js +2 -2
  13. package/build/revamp/tests/RefreshOnChange.with.Segmented.spec.js +447 -0
  14. package/build/revamp/tests/RefreshOnChange.with.Tabs.spec.js +57 -0
  15. package/build/revamp/tests/SegmentedControl.spec.js +48 -0
  16. package/build/revamp/tests/legacy/Actions.spec.js +242 -0
  17. package/build/revamp/wise/renderers/ButtonRenderer.js +1 -1
  18. package/build/revamp/wise/renderers/DecisionRenderer.js +1 -1
  19. package/build/revamp/wise/renderers/SearchRenderer/BlockSearchRendererComponent.js +1 -1
  20. package/build/revamp/wise/renderers/SearchRenderer/InlineSearchRendererComponent.js +1 -1
  21. package/build/revamp/wise/renderers/SelectInputRenderer/SegmentedInputRendererComponent.js +21 -0
  22. package/build/revamp/wise/renderers/SelectInputRenderer/SelectInputRenderer.js +3 -0
  23. package/build/revamp/wise/renderers/SelectInputRenderer/SelectInputRendererComponent.js +2 -2
  24. package/build/revamp/wise/renderers/getWiseRenderers.js +2 -0
  25. package/build/revamp/{renderers → wise/renderers}/step/ExternalConfirmationDialog.js +1 -1
  26. package/build/types/legacy/jsonSchemaForm/schemaFormControl/SchemaFormControl.d.ts +1 -0
  27. package/build/types/legacy/layout/utils/index.d.ts +1 -1
  28. package/build/types/revamp/wise/renderers/SelectInputRenderer/SegmentedInputRendererComponent.d.ts +2 -0
  29. package/build/types/revamp/wise/renderers/getWiseRenderers.d.ts +1 -1
  30. package/build/types/revamp/{renderers → wise/renderers}/step/BackButton.d.ts +1 -1
  31. package/build/types/revamp/wise/renderers/step/StepRenderer.d.ts +2 -0
  32. package/build/types/revamp/{renderers → wise/renderers}/step/StepRendererContext.d.ts +2 -2
  33. package/build/types/revamp/wise/renderers/utils/layout-utils.d.ts +1 -1
  34. package/package.json +3 -3
  35. package/build/types/revamp/renderers/step/StepRenderer.d.ts +0 -2
  36. /package/build/revamp/{renderers → wise/renderers}/step/BackButton.js +0 -0
  37. /package/build/revamp/{renderers → wise/renderers}/step/StepRenderer.js +0 -0
  38. /package/build/revamp/{renderers → wise/renderers}/step/StepRendererContext.js +0 -0
  39. /package/build/revamp/{renderers → wise/renderers}/step/useExternal.js +0 -0
  40. /package/build/types/revamp/{renderers → wise/renderers}/step/ExternalConfirmationDialog.d.ts +0 -0
  41. /package/build/types/revamp/{renderers → wise/renderers}/step/useExternal.d.ts +0 -0
@@ -0,0 +1,242 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { jsx as _jsx } from "react/jsx-runtime";
38
+ import { screen, waitFor } from '@testing-library/react';
39
+ import { userEvent } from '@testing-library/user-event';
40
+ import { renderWithProviders } from '../../../test-utils';
41
+ import DynamicFlowWise from '../../DynamicFlowWise';
42
+ describe('Actions', function () {
43
+ // TODO: Add more tests here / copy over to revamp when ready.
44
+ describe('given an action with `exit: true`', function () {
45
+ describe('when the response is OK', function () {
46
+ describe('and the body can be parsed to a JSON object', function () {
47
+ it('should exit the flow with the response body as a result when the action has no result', function () { return __awaiter(void 0, void 0, void 0, function () {
48
+ var onError, onCompletion, httpClient, step, _a, _b;
49
+ return __generator(this, function (_c) {
50
+ switch (_c.label) {
51
+ case 0:
52
+ onError = jest.fn();
53
+ onCompletion = jest.fn();
54
+ httpClient = jest.fn(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
55
+ return [2 /*return*/, Promise.resolve(new Response('body', { status: 200 }))];
56
+ }); }); });
57
+ step = {
58
+ id: 'step-id',
59
+ title: 'Step Title',
60
+ layout: [{ type: 'button', action: { url: '/submit', exit: true } }],
61
+ schemas: [],
62
+ };
63
+ renderWithProviders(_jsx(DynamicFlowWise, { flowId: "the-flow-id", initialStep: step, httpClient: httpClient, onCompletion: onCompletion, onError: onError }));
64
+ _b = (_a = userEvent).click;
65
+ return [4 /*yield*/, screen.findByRole('button')];
66
+ case 1: return [4 /*yield*/, _b.apply(_a, [_c.sent()])];
67
+ case 2:
68
+ _c.sent();
69
+ return [4 /*yield*/, waitFor(function () {
70
+ expect(onCompletion).toHaveBeenCalledTimes(1);
71
+ })];
72
+ case 3:
73
+ _c.sent();
74
+ expect(onError).not.toHaveBeenCalled();
75
+ return [2 /*return*/];
76
+ }
77
+ });
78
+ }); });
79
+ it('should exit the flow with a merged object of the response body and result when the action has a result', function () { return __awaiter(void 0, void 0, void 0, function () {
80
+ var onError, onCompletion, httpClient, step, _a, _b;
81
+ return __generator(this, function (_c) {
82
+ switch (_c.label) {
83
+ case 0:
84
+ onError = jest.fn();
85
+ onCompletion = jest.fn();
86
+ httpClient = jest.fn(function () { return __awaiter(void 0, void 0, void 0, function () {
87
+ return __generator(this, function (_a) {
88
+ return [2 /*return*/, Promise.resolve(new Response(JSON.stringify({ key: 'response body value', extra_key: 'value' }), {
89
+ status: 200,
90
+ }))];
91
+ });
92
+ }); });
93
+ step = {
94
+ id: 'step-id',
95
+ title: 'Step Title',
96
+ layout: [
97
+ {
98
+ type: 'button',
99
+ action: { url: '/submit', exit: true, result: { key: 'action result value' } },
100
+ },
101
+ ],
102
+ schemas: [],
103
+ };
104
+ renderWithProviders(_jsx(DynamicFlowWise, { flowId: "the-flow-id", initialStep: step, httpClient: httpClient, onCompletion: onCompletion, onError: onError }));
105
+ _b = (_a = userEvent).click;
106
+ return [4 /*yield*/, screen.findByRole('button')];
107
+ case 1: return [4 /*yield*/, _b.apply(_a, [_c.sent()])];
108
+ case 2:
109
+ _c.sent();
110
+ return [4 /*yield*/, waitFor(function () {
111
+ expect(onCompletion).toHaveBeenCalledTimes(1);
112
+ })];
113
+ case 3:
114
+ _c.sent();
115
+ expect(onCompletion).toHaveBeenCalledWith(expect.objectContaining({ key: 'action result value', extra_key: 'value' }));
116
+ expect(onError).not.toHaveBeenCalled();
117
+ return [2 /*return*/];
118
+ }
119
+ });
120
+ }); });
121
+ });
122
+ describe('and the body cannot be parsed to a JSON object', function () {
123
+ it('should exit the flow with the contents of the action result', function () { return __awaiter(void 0, void 0, void 0, function () {
124
+ var onError, onCompletion, httpClient, step, _a, _b;
125
+ return __generator(this, function (_c) {
126
+ switch (_c.label) {
127
+ case 0:
128
+ onError = jest.fn();
129
+ onCompletion = jest.fn();
130
+ httpClient = jest.fn(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
131
+ return [2 /*return*/, Promise.resolve(new Response(']} not valid json {[', { status: 200 }))];
132
+ }); }); });
133
+ step = {
134
+ id: 'step-id',
135
+ title: 'Step Title',
136
+ layout: [
137
+ { type: 'button', action: { url: '/submit', exit: true, result: { key: 'value' } } },
138
+ ],
139
+ schemas: [],
140
+ };
141
+ renderWithProviders(_jsx(DynamicFlowWise, { flowId: "the-flow-id", initialStep: step, httpClient: httpClient, onCompletion: onCompletion, onError: onError }));
142
+ _b = (_a = userEvent).click;
143
+ return [4 /*yield*/, screen.findByRole('button')];
144
+ case 1: return [4 /*yield*/, _b.apply(_a, [_c.sent()])];
145
+ case 2:
146
+ _c.sent();
147
+ return [4 /*yield*/, waitFor(function () {
148
+ expect(onCompletion).toHaveBeenCalledTimes(1);
149
+ })];
150
+ case 3:
151
+ _c.sent();
152
+ expect(onCompletion).toHaveBeenCalledWith(expect.objectContaining({ key: 'value' }));
153
+ expect(onError).not.toHaveBeenCalled();
154
+ return [2 /*return*/];
155
+ }
156
+ });
157
+ }); });
158
+ });
159
+ });
160
+ describe('when the response is NOT OK', function () {
161
+ it('should not exit the flow, and handle the error response as normal', function () { return __awaiter(void 0, void 0, void 0, function () {
162
+ var onError, onCompletion, httpClient, step, _a, _b;
163
+ return __generator(this, function (_c) {
164
+ switch (_c.label) {
165
+ case 0:
166
+ onError = jest.fn();
167
+ onCompletion = jest.fn();
168
+ httpClient = jest.fn(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
169
+ return [2 /*return*/, Promise.resolve(new Response('body', { status: 400 }))];
170
+ }); }); });
171
+ step = {
172
+ id: 'step-id',
173
+ title: 'Step Title',
174
+ layout: [{ type: 'button', action: { url: '/submit', exit: true } }],
175
+ schemas: [],
176
+ };
177
+ renderWithProviders(_jsx(DynamicFlowWise, { flowId: "the-flow-id", initialStep: step, httpClient: httpClient, onCompletion: onCompletion, onError: onError }));
178
+ _b = (_a = userEvent).click;
179
+ return [4 /*yield*/, screen.findByRole('button')];
180
+ case 1: return [4 /*yield*/, _b.apply(_a, [_c.sent()])];
181
+ case 2:
182
+ _c.sent();
183
+ return [4 /*yield*/, waitFor(function () {
184
+ expect(screen.getByText(/something went wrong, please try again/i)).toBeInTheDocument();
185
+ })];
186
+ case 3:
187
+ _c.sent();
188
+ expect(onCompletion).not.toHaveBeenCalled();
189
+ return [2 /*return*/];
190
+ }
191
+ });
192
+ }); });
193
+ });
194
+ });
195
+ describe('given an non-exit action', function () {
196
+ describe('when the response contains "X-DF-ResponseType: exit" header', function () {
197
+ it('should exit the flow with a merged object of the response body and result when the action has a result', function () { return __awaiter(void 0, void 0, void 0, function () {
198
+ var onError, onCompletion, httpClient, step, _a, _b;
199
+ return __generator(this, function (_c) {
200
+ switch (_c.label) {
201
+ case 0:
202
+ onError = jest.fn();
203
+ onCompletion = jest.fn();
204
+ httpClient = jest.fn(function () { return __awaiter(void 0, void 0, void 0, function () {
205
+ return __generator(this, function (_a) {
206
+ return [2 /*return*/, Promise.resolve(new Response(JSON.stringify({ key: 'response body value', extra_key: 'value' }), {
207
+ status: 200,
208
+ headers: { 'X-DF-Response-Type': 'exit' },
209
+ }))];
210
+ });
211
+ }); });
212
+ step = {
213
+ id: 'step-id',
214
+ title: 'Step Title',
215
+ layout: [
216
+ {
217
+ type: 'button',
218
+ action: { url: '/submit', result: { key: 'action result value' } },
219
+ },
220
+ ],
221
+ schemas: [],
222
+ };
223
+ renderWithProviders(_jsx(DynamicFlowWise, { flowId: "the-flow-id", initialStep: step, httpClient: httpClient, onCompletion: onCompletion, onError: onError }));
224
+ _b = (_a = userEvent).click;
225
+ return [4 /*yield*/, screen.findByRole('button')];
226
+ case 1: return [4 /*yield*/, _b.apply(_a, [_c.sent()])];
227
+ case 2:
228
+ _c.sent();
229
+ return [4 /*yield*/, waitFor(function () {
230
+ expect(onCompletion).toHaveBeenCalledTimes(1);
231
+ })];
232
+ case 3:
233
+ _c.sent();
234
+ expect(onCompletion).toHaveBeenCalledWith(expect.objectContaining({ key: 'action result value', extra_key: 'value' }));
235
+ expect(onError).not.toHaveBeenCalled();
236
+ return [2 /*return*/];
237
+ }
238
+ });
239
+ }); });
240
+ });
241
+ });
242
+ });
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Button } from '@transferwise/components';
3
3
  import { getMargin } from './utils/layout-utils';
4
- import { useLoadingContext } from '../../renderers/step/StepRendererContext';
4
+ import { useLoadingContext } from './step/StepRendererContext';
5
5
  var ButtonRenderer = {
6
6
  canRenderType: 'button',
7
7
  render: ButtonRendererComponent,
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { NavigationOptionsList, NavigationOption } from '@transferwise/components';
3
3
  import { getMargin } from './utils/layout-utils';
4
4
  import { NavigationOptionMedia } from './components/icon/NavigationOptionMedia';
5
- import { useLoadingContext } from '../../renderers/step/StepRendererContext';
5
+ import { useLoadingContext } from './step/StepRendererContext';
6
6
  var DecisionRenderer = {
7
7
  canRenderType: 'decision',
8
8
  render: DecisionRendererComponent,
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { Input, Markdown, NavigationOption, NavigationOptionsList } from '@transferwise/components';
14
- import { useTrackEvent } from '../../../renderers/step/StepRendererContext';
14
+ import { useTrackEvent } from '../step/StepRendererContext';
15
15
  import FieldInput from '../components/FieldInput';
16
16
  import { NavigationOptionMedia } from '../components/icon/NavigationOptionMedia';
17
17
  import { getMargin } from '../utils/layout-utils';
@@ -16,7 +16,7 @@ import { useState } from 'react';
16
16
  import FieldInput from '../components/FieldInput';
17
17
  import { getMargin } from '../utils/layout-utils';
18
18
  import { ErrorResult } from './ErrorResult';
19
- import { useTrackEvent } from '../../../renderers/step/StepRendererContext';
19
+ import { useTrackEvent } from '../step/StepRendererContext';
20
20
  function InlineSearchRenderer(_a) {
21
21
  var id = _a.id, isLoading = _a.isLoading, margin = _a.margin, onChange = _a.onChange, state = _a.state, title = _a.title;
22
22
  var _b = useState(false), hasSearched = _b[0], setHasSearched = _b[1];
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect } from 'react';
3
+ import FieldInput from '../components/FieldInput';
4
+ import { SegmentedControl } from '@transferwise/components';
5
+ export function SegmentedInputRendererComponent(props) {
6
+ var id = props.id, children = props.children, description = props.description, error = props.error, help = props.help, label = props.label, options = props.options, selectedIndex = props.selectedIndex, onSelect = props.onSelect;
7
+ useEffect(function () {
8
+ if (!isValidIndex(selectedIndex, options.length)) {
9
+ onSelect(0);
10
+ }
11
+ }, [selectedIndex, onSelect, options.length]);
12
+ return (_jsxs(_Fragment, { children: [_jsx(FieldInput, { id: id, label: label, help: help, description: description, error: error, children: _jsx(SegmentedControl, { name: "".concat(id, "-segmented-control"), value: String(selectedIndex), mode: "view", segments: options.map(function (option, index) { return ({
13
+ id: String(index),
14
+ value: String(index),
15
+ label: option.title,
16
+ controls: "".concat(id, "-children"),
17
+ }); }), onChange: function (value) { return onSelect(Number(value)); } }) }), _jsx("div", { id: "".concat(id, "-children"), children: children })] }));
18
+ }
19
+ var isValidIndex = function (index, options) {
20
+ return index !== null && index >= 0 && index < options;
21
+ };
@@ -13,6 +13,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { RadioInputRendererComponent } from './RadioInputRendererComponent';
14
14
  import { TabInputRendererComponent } from './TabInputRendererComponent';
15
15
  import { SelectInputRendererComponent } from './SelectInputRendererComponent';
16
+ import { SegmentedInputRendererComponent } from './SegmentedInputRendererComponent';
16
17
  var SelectInputRenderer = {
17
18
  canRenderType: 'input-select',
18
19
  render: function (props) {
@@ -21,6 +22,8 @@ var SelectInputRenderer = {
21
22
  return _jsx(RadioInputRendererComponent, __assign({}, props));
22
23
  case 'tab':
23
24
  return props.options.length > 3 ? (_jsx(SelectInputRendererComponent, __assign({}, props))) : (_jsx(TabInputRendererComponent, __assign({}, props)));
25
+ case 'segmented':
26
+ return props.options.length > 3 ? (_jsx(SelectInputRendererComponent, __assign({}, props))) : (_jsx(SegmentedInputRendererComponent, __assign({}, props)));
24
27
  case 'select':
25
28
  default:
26
29
  return _jsx(SelectInputRendererComponent, __assign({}, props));
@@ -24,7 +24,7 @@ import FieldInput from '../components/FieldInput';
24
24
  import { SelectTriggerMedia } from './SelectTriggerMedia';
25
25
  import { OptionMedia } from './OptionMedia';
26
26
  export function SelectInputRendererComponent(props) {
27
- var id = props.id, children = props.children, description = props.description, disabled = props.disabled, error = props.error, help = props.help, label = props.label, options = props.options, placeholder = props.placeholder, selectedIndex = props.selectedIndex, onSelect = props.onSelect;
27
+ var id = props.id, children = props.children, description = props.description, disabled = props.disabled, error = props.error, help = props.help, label = props.label, options = props.options, placeholder = props.placeholder, required = props.required, selectedIndex = props.selectedIndex, onSelect = props.onSelect;
28
28
  var items = options.map(function (option, index) {
29
29
  var _a, _b, _c;
30
30
  return ({
@@ -52,5 +52,5 @@ export function SelectInputRendererComponent(props) {
52
52
  };
53
53
  return _jsx(SelectInputOptionContent, __assign({}, contentProps));
54
54
  };
55
- return (_jsxs(_Fragment, { children: [_jsx(FieldInput, { id: id, label: label, help: help, description: description, error: error, children: _jsx(SelectInput, { name: id, placeholder: placeholder, items: items, disabled: disabled, value: selectedIndex, renderValue: renderValue, filterable: items.length >= 8, onChange: onSelect, onClear: function () { return onSelect(null); } }) }), children] }));
55
+ return (_jsxs(_Fragment, { children: [_jsx(FieldInput, { id: id, label: label, help: help, description: description, error: error, children: _jsx(SelectInput, { name: id, placeholder: placeholder, items: items, disabled: disabled, value: selectedIndex, renderValue: renderValue, filterable: items.length >= 8, onChange: onSelect, onClear: required ? undefined : function () { return onSelect(null); } }) }), children] }));
56
56
  }
@@ -25,6 +25,7 @@ import StatusListRenderer from './StatusListRenderer';
25
25
  import TextInputRenderer from './TextInputRenderer';
26
26
  import { LargeUploadRenderer, UploadInputRenderer } from './UploadInputRenderer';
27
27
  import ReviewRenderer from './ReviewRenderer';
28
+ import { StepRenderer } from './step/StepRenderer';
28
29
  export var getWiseRenderers = function () { return [
29
30
  AlertRenderer,
30
31
  BooleanInputRenderer,
@@ -54,4 +55,5 @@ export var getWiseRenderers = function () { return [
54
55
  StatusListRenderer,
55
56
  TextInputRenderer,
56
57
  UploadInputRenderer,
58
+ StepRenderer,
57
59
  ]; };
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useIntl } from 'react-intl';
3
- import messages from '../../../common/messages/external-confirmation.messages';
3
+ import messages from '../../../../common/messages/external-confirmation.messages';
4
4
  import { Button, Markdown } from '@transferwise/components';
5
5
  export function ExternalConfirmationDialog(_a) {
6
6
  var external = _a.external, onClose = _a.onClose;
@@ -23,5 +23,6 @@ export type SchemaFormControlProps = {
23
23
  onSearchChange?: (searchValue: string) => void;
24
24
  disabled?: boolean;
25
25
  describedBy?: string | undefined;
26
+ required?: boolean;
26
27
  };
27
28
  export default SchemaFormControl;
@@ -1,6 +1,6 @@
1
1
  import { Align, Size } from '@wise/dynamic-flow-types';
2
2
  export { getNavigationOptionMedia } from './getNavigationOptionMedia';
3
- declare const getMargin: (size: Size | undefined) => "" | "m-b-2" | "m-b-3" | "m-b-0" | "m-b-1" | "m-b-5";
3
+ declare const getMargin: (size: Size | undefined) => "" | "m-b-3" | "m-b-0" | "m-b-1" | "m-b-2" | "m-b-5";
4
4
  declare const getTextAlignmentAndMargin: (component: {
5
5
  align?: Align;
6
6
  margin?: Size;
@@ -0,0 +1,2 @@
1
+ import type { SelectInputRendererProps } from '../../../renderers/types';
2
+ export declare function SegmentedInputRendererComponent(props: SelectInputRendererProps): JSX.Element;
@@ -1 +1 @@
1
- export declare const getWiseRenderers: () => (import("../../renderers/types").Renderer<import("../../renderers/types").AlertRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").BoxRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ColumnsRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").DecisionRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").DividerRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").FormRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").HeadingRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").InstructionsRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").LoadingIndicatorRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").MarkdownRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ImageRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ModalRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ParagraphRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ReviewRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").SearchRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").StatusListRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").FormSectionRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").BooleanInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ButtonRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").DateInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").IntegerInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").NumberInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").RepeatableRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").SelectInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").TextInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").UploadInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").MultiUploadInputRendererProps>)[];
1
+ export declare const getWiseRenderers: () => (import("../../renderers/types").Renderer<import("../../renderers/types").StepRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").AlertRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").BoxRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ColumnsRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").DecisionRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").DividerRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").FormRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").HeadingRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").InstructionsRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").LoadingIndicatorRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").MarkdownRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ImageRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ModalRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ParagraphRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ReviewRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").SearchRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").StatusListRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").FormSectionRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").BooleanInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").ButtonRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").DateInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").IntegerInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").NumberInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").RepeatableRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").SelectInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").TextInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").UploadInputRendererProps> | import("../../renderers/types").Renderer<import("../../renderers/types").MultiUploadInputRendererProps>)[];
@@ -1,3 +1,3 @@
1
- import type { StepRendererProps } from '../types';
1
+ import type { StepRendererProps } from '../../../renderers/types';
2
2
  declare function BackButton({ title, onClick }: NonNullable<StepRendererProps['back']>): JSX.Element;
3
3
  export default BackButton;
@@ -0,0 +1,2 @@
1
+ import type { Renderer, StepRendererProps } from '../../../renderers/types';
2
+ export declare const StepRenderer: Renderer<StepRendererProps>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { AnalyticsEventDispatcher } from '../../domain/features/events';
3
- import type { LoadingState } from '../types';
2
+ import type { AnalyticsEventDispatcher } from '../../../domain/features/events';
3
+ import type { LoadingState } from '../../../renderers/types';
4
4
  export declare const StepRendererContextProvider: import("react").Provider<{
5
5
  loadingState: LoadingState;
6
6
  trackEvent: AnalyticsEventDispatcher<string>;
@@ -1,5 +1,5 @@
1
1
  import type { Align, Size } from '../../../renderers/types';
2
- declare const getMargin: (size: Size) => "" | "m-b-2" | "m-b-3" | "m-b-0" | "m-b-1" | "m-b-5";
2
+ declare const getMargin: (size: Size) => "" | "m-b-3" | "m-b-0" | "m-b-1" | "m-b-2" | "m-b-5";
3
3
  declare const getTextAlignmentAndMargin: (component: {
4
4
  align: Align;
5
5
  margin: Size;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-client",
3
- "version": "3.9.1-experimental-152372b",
3
+ "version": "3.9.2-experimental-535221d",
4
4
  "description": "Dynamic Flow web client",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./build/main.min.js",
@@ -40,7 +40,7 @@
40
40
  "@testing-library/react": "14.3.0",
41
41
  "@testing-library/react-hooks": "8.0.1",
42
42
  "@testing-library/user-event": "14.5.2",
43
- "@transferwise/components": "46.27.0",
43
+ "@transferwise/components": "46.29.0",
44
44
  "@transferwise/formatting": "^2.13.0",
45
45
  "@transferwise/icons": "3.13.0",
46
46
  "@transferwise/neptune-css": "14.9.6",
@@ -92,7 +92,7 @@
92
92
  "classnames": "2.5.1",
93
93
  "react-webcam": "^7.2.0",
94
94
  "screenfull": "^5.2.0",
95
- "@wise/dynamic-flow-types": "2.15.0-experimental-152372b"
95
+ "@wise/dynamic-flow-types": "2.15.0"
96
96
  },
97
97
  "scripts": {
98
98
  "dev": "storybook dev -p 3003",
@@ -1,2 +0,0 @@
1
- import type { Renderer, StepRendererProps } from '../types';
2
- export declare const StepRenderer: Renderer<StepRendererProps>;