@wise/dynamic-flow-client 4.0.1 → 4.0.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.
@@ -1,8 +1,51 @@
1
1
  {
2
- "dynamicFlows.ErrorBoundary.errorAlert": "Ups! Něco se pokazilo...",
2
+ "dynamicFlows.ArraySchema.addItem": "Uložit",
3
+ "dynamicFlows.ArraySchema.addItemTitle": "Add Item",
4
+ "dynamicFlows.ArraySchema.editItem": "Uložit",
5
+ "dynamicFlows.ArraySchema.maxItemsError": "Přidejte {maxItems} nebo méně.",
6
+ "dynamicFlows.ArraySchema.minItemsError": "Přidejte alespoň {minItems}.",
7
+ "dynamicFlows.ArraySchema.removeItem": "Odstranit",
8
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.action": "Zkuste to znovu",
9
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.paragraph": "Zkontrolujte, jestli je připojená a zkuste to znovu.",
10
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.title": "Nemůžeme získat přístup k vašemu fotoaparátu",
11
+ "dynamicFlows.CameraCapture.CameraNotSupported.paragraph": "Prohlížeč, který používáte, nepodporuje fotoaparát. Zkuste jiný prohlížeč, jiné zařízení, nebo si stáhněte naši mobilní aplikaci.",
12
+ "dynamicFlows.CameraCapture.CameraNotSupported.title": "Fotoaparát není podporovaný",
13
+ "dynamicFlows.CameraCapture.NoCameraAccess.action": "Povolit přístup k fotoaparátu",
14
+ "dynamicFlows.CameraCapture.NoCameraAccess.paragraph": "Abyste mohli pokračovat, povolte v nastavení prohlížeče přístup k fotoaparátu.",
15
+ "dynamicFlows.CameraCapture.NoCameraAccess.title": "Nemůžeme získat přístup k vašemu fotoaparátu",
16
+ "dynamicFlows.CameraCapture.reviewInstructions": "Je vaše fotka jasná, zřetelná a úplná?",
17
+ "dynamicFlows.CameraCapture.reviewRetry": "Ne, zkusíme to znovu",
18
+ "dynamicFlows.CameraCapture.reviewSubmit": "Ano, odeslat",
19
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Otočte telefon do svislé polohy a pořiďte fotku",
20
+ "dynamicFlows.ControlFeedback.maxLength": "Zadejte {maxLength} nebo méně znaků.",
21
+ "dynamicFlows.ControlFeedback.maximum": "Zadejte číslo, které je {maximum} nebo menší.",
22
+ "dynamicFlows.ControlFeedback.maximumDate": "Zadejte datum, které je v den nebo před {maximum}.",
23
+ "dynamicFlows.ControlFeedback.minLength": "Zadejte alespoň {minLength} znaků.",
24
+ "dynamicFlows.ControlFeedback.minimum": "Zadejte číslo, které je {minimum} nebo více.",
25
+ "dynamicFlows.ControlFeedback.minimumDate": "Zadejte datum, které je v den nebo po {minimum}.",
26
+ "dynamicFlows.ControlFeedback.pattern": "Zadejte to prosím ve správném formátu.",
27
+ "dynamicFlows.ControlFeedback.patternDate": "Zadejte prosím datum ve správném formátu.",
28
+ "dynamicFlows.ControlFeedback.required": "Vyplňte prosím toto pole.",
29
+ "dynamicFlows.ControlFeedback.type": "Nesprávný typ",
30
+ "dynamicFlows.DefaultErrorMessages.required": "Vyplňte prosím toto pole.",
31
+ "dynamicFlows.DynamicExternal.retryTitle": "Znovu otevřít okno",
32
+ "dynamicFlows.DynamicParagraph.copied": "Zkopírováno do schránky",
33
+ "dynamicFlows.DynamicParagraph.copy": "Kopírovat",
34
+ "dynamicFlows.ErrorBoundary.errorAlert": "Něco se pokazilo.",
3
35
  "dynamicFlows.ErrorBoundary.retry": "Zkusit znovu",
36
+ "dynamicFlows.ExternalConfirmation.cancel": "Zrušit",
37
+ "dynamicFlows.ExternalConfirmation.description": "Please confirm you want to open **{origin}** in a new browser tab.",
38
+ "dynamicFlows.ExternalConfirmation.open": "Open in new tab",
39
+ "dynamicFlows.ExternalConfirmation.title": "Please confirm",
40
+ "dynamicFlows.FileUploadSchema.maxFileSizeError": "Pardon, tento soubor je příliš velký. Nahrajte prosím menší soubor.",
41
+ "dynamicFlows.FileUploadSchema.wrongFileTypeError": "Sorry, that file format is not supported. Please upload a different file.",
4
42
  "dynamicFlows.Help.ariaLabel": "Pro více informací klikněte sem.",
5
- "dynamicFlows.PersistAsyncSchema.genericError": "Něco se pokazilo, zkuste to prosím později!",
43
+ "dynamicFlows.MultiSelect.summary": "{first} a {count} více",
44
+ "dynamicFlows.MultipleFileUploadSchema.maxFileSizeError": "Pardon, tento soubor je příliš velký. Nahrajte prosím menší soubor.",
45
+ "dynamicFlows.MultipleFileUploadSchema.maxItemsError": "Nahrajte {maxItems} nebo méně souborů.",
46
+ "dynamicFlows.MultipleFileUploadSchema.minItemsError": "Nahrajte prosím alespoň {minItems} soubor(y).",
47
+ "dynamicFlows.PersistAsyncSchema.genericError": "Něco se pokazilo. Prosím, zkuste to znovu.",
6
48
  "dynamicFlows.ReadOnlySchema.no": "Ne",
7
- "dynamicFlows.ReadOnlySchema.yes": "Ano"
49
+ "dynamicFlows.ReadOnlySchema.yes": "Ano",
50
+ "dynamicFlows.SearchLayout.loading": "Načítání..."
8
51
  }
@@ -1,51 +1,51 @@
1
1
  {
2
- "dynamicFlows.ArraySchema.addItem": "Save",
3
- "dynamicFlows.ArraySchema.addItemTitle": "Add Item",
4
- "dynamicFlows.ArraySchema.editItem": "Save",
5
- "dynamicFlows.ArraySchema.maxItemsError": "Please add {maxItems} or fewer.",
6
- "dynamicFlows.ArraySchema.minItemsError": "Please add at least {minItems}.",
7
- "dynamicFlows.ArraySchema.removeItem": "Remove",
8
- "dynamicFlows.CameraCapture.CameraConnectionIssue.action": "Try again",
9
- "dynamicFlows.CameraCapture.CameraConnectionIssue.paragraph": "Please check if it is connected and try again.",
10
- "dynamicFlows.CameraCapture.CameraConnectionIssue.title": "We can't access your camera",
11
- "dynamicFlows.CameraCapture.CameraNotSupported.paragraph": "The browser you're using doesn't have support for a camera. Try a different browser, device, or download our mobile app.",
12
- "dynamicFlows.CameraCapture.CameraNotSupported.title": "Camera not supported",
13
- "dynamicFlows.CameraCapture.NoCameraAccess.action": "Enable camera access",
14
- "dynamicFlows.CameraCapture.NoCameraAccess.paragraph": "Enable camera access in your browser's settings to get going again.",
15
- "dynamicFlows.CameraCapture.NoCameraAccess.title": "We can't access your camera",
16
- "dynamicFlows.CameraCapture.reviewInstructions": "Is your picture clear, readable and complete?",
17
- "dynamicFlows.CameraCapture.reviewRetry": "No, try again",
18
- "dynamicFlows.CameraCapture.reviewSubmit": "Yes, submit",
19
- "dynamicFlows.CameraCapture.rotatePhone.text": "Rotate your phone to portrait view to take a photo",
20
- "dynamicFlows.ControlFeedback.maxLength": "Please enter {maxLength} or fewer characters.",
21
- "dynamicFlows.ControlFeedback.maximum": "Please enter a number that's {maximum} or less.",
22
- "dynamicFlows.ControlFeedback.maximumDate": "Please enter a date that's on or before {maximum}.",
23
- "dynamicFlows.ControlFeedback.minLength": "Please enter at least {minLength} characters.",
24
- "dynamicFlows.ControlFeedback.minimum": "Please enter a number that's {minimum} or more.",
25
- "dynamicFlows.ControlFeedback.minimumDate": "Please enter a date that's on or after {minimum}.",
26
- "dynamicFlows.ControlFeedback.pattern": "Please enter this in the correct format.",
27
- "dynamicFlows.ControlFeedback.patternDate": "Please enter a date in the corrrect format.",
28
- "dynamicFlows.ControlFeedback.required": "Please fill out this field.",
29
- "dynamicFlows.ControlFeedback.type": "Incorrect type",
30
- "dynamicFlows.DefaultErrorMessages.required": "Please fill out this field.",
31
- "dynamicFlows.DynamicExternal.retryTitle": "Reopen window",
32
- "dynamicFlows.DynamicParagraph.copied": "Copied to clipboard",
2
+ "dynamicFlows.ArraySchema.addItem": "Opslaan",
3
+ "dynamicFlows.ArraySchema.addItemTitle": "Item toevoegen",
4
+ "dynamicFlows.ArraySchema.editItem": "Opslaan",
5
+ "dynamicFlows.ArraySchema.maxItemsError": "Voeg {maxItems} of minder toe.",
6
+ "dynamicFlows.ArraySchema.minItemsError": "Voeg minimaal {minItems} toe.",
7
+ "dynamicFlows.ArraySchema.removeItem": "Verwijderen",
8
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.action": "Opnieuw proberen",
9
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.paragraph": "Controleer of de camera verbonden is en probeer opnieuw.",
10
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.title": "We hebben geen toegang tot je camera",
11
+ "dynamicFlows.CameraCapture.CameraNotSupported.paragraph": "Je browser ondersteunt geen camera's. Probeer een andere browser of apparaat of download onze mobiele app.",
12
+ "dynamicFlows.CameraCapture.CameraNotSupported.title": "Camera wordt niet ondersteund",
13
+ "dynamicFlows.CameraCapture.NoCameraAccess.action": "Cameratoegang inschakelen",
14
+ "dynamicFlows.CameraCapture.NoCameraAccess.paragraph": "Schakel in je browserinstellingen cameratoegang in en begin opnieuw.",
15
+ "dynamicFlows.CameraCapture.NoCameraAccess.title": "We hebben geen toegang tot je camera",
16
+ "dynamicFlows.CameraCapture.reviewInstructions": "Is je foto duidelijk, leesbaar en volledig?",
17
+ "dynamicFlows.CameraCapture.reviewRetry": "Nee, opnieuw proberen",
18
+ "dynamicFlows.CameraCapture.reviewSubmit": "Ja, verzenden",
19
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Draai je telefoon verticaal om een foto te maken",
20
+ "dynamicFlows.ControlFeedback.maxLength": "Voer {maxLength} of minder tekens in.",
21
+ "dynamicFlows.ControlFeedback.maximum": "Voer een getal in dat {maximum} of lager is.",
22
+ "dynamicFlows.ControlFeedback.maximumDate": "Voer een datum in die op of voor {maximum} is.",
23
+ "dynamicFlows.ControlFeedback.minLength": "Voer minimaal {minLength} tekens in.",
24
+ "dynamicFlows.ControlFeedback.minimum": "Voer een getal in dat {minimum} of hoger is.",
25
+ "dynamicFlows.ControlFeedback.minimumDate": "Voer een datum in die op of na {minimum} is.",
26
+ "dynamicFlows.ControlFeedback.pattern": "Voer dit in de juiste indeling in.",
27
+ "dynamicFlows.ControlFeedback.patternDate": "Voer een datum in de juiste indeling in.",
28
+ "dynamicFlows.ControlFeedback.required": "Vul dit veld in.",
29
+ "dynamicFlows.ControlFeedback.type": "Onjuist type",
30
+ "dynamicFlows.DefaultErrorMessages.required": "Vul dit veld in.",
31
+ "dynamicFlows.DynamicExternal.retryTitle": "Venster opnieuw openen",
32
+ "dynamicFlows.DynamicParagraph.copied": "Naar klembord gekopiëerd",
33
33
  "dynamicFlows.DynamicParagraph.copy": "Kopiëren",
34
- "dynamicFlows.ErrorBoundary.errorAlert": "Something went wrong.",
35
- "dynamicFlows.ErrorBoundary.retry": "Retry",
36
- "dynamicFlows.ExternalConfirmation.cancel": "Cancel",
37
- "dynamicFlows.ExternalConfirmation.description": "Please confirm you want to open **{origin}** in a new browser tab.",
38
- "dynamicFlows.ExternalConfirmation.open": "Open in new tab",
39
- "dynamicFlows.ExternalConfirmation.title": "Please confirm",
40
- "dynamicFlows.FileUploadSchema.maxFileSizeError": "Sorry, that file is too big. Please upload a smaller file.",
41
- "dynamicFlows.FileUploadSchema.wrongFileTypeError": "Sorry, that file format is not supported. Please upload a different file.",
42
- "dynamicFlows.Help.ariaLabel": "Click here for more info.",
43
- "dynamicFlows.MultiSelect.summary": "{first} and {count} more",
44
- "dynamicFlows.MultipleFileUploadSchema.maxFileSizeError": "Sorry, that file is too big. Please upload a smaller file.",
45
- "dynamicFlows.MultipleFileUploadSchema.maxItemsError": "Please upload {maxItems} or fewer files.",
46
- "dynamicFlows.MultipleFileUploadSchema.minItemsError": "Please upload at least {minItems} file(s).",
34
+ "dynamicFlows.ErrorBoundary.errorAlert": "Er is iets misgegaan.",
35
+ "dynamicFlows.ErrorBoundary.retry": "Opnieuw proberen",
36
+ "dynamicFlows.ExternalConfirmation.cancel": "Annuleren",
37
+ "dynamicFlows.ExternalConfirmation.description": "Bevestig dat je **{origin}** in een nieuw browsertabblad wilt openen.",
38
+ "dynamicFlows.ExternalConfirmation.open": "In nieuw tabblad openen",
39
+ "dynamicFlows.ExternalConfirmation.title": "Bevestig",
40
+ "dynamicFlows.FileUploadSchema.maxFileSizeError": "Het bestand is te groot. Upload een kleiner bestand.",
41
+ "dynamicFlows.FileUploadSchema.wrongFileTypeError": "De bestandsindeling wordt niet ondersteund. Upload een ander bestand.",
42
+ "dynamicFlows.Help.ariaLabel": "Klik hier voor meer informatie.",
43
+ "dynamicFlows.MultiSelect.summary": "{first} en nog {count}",
44
+ "dynamicFlows.MultipleFileUploadSchema.maxFileSizeError": "Het bestand is te groot. Upload een kleiner bestand.",
45
+ "dynamicFlows.MultipleFileUploadSchema.maxItemsError": "Upload {maxItems} of minder bestanden.",
46
+ "dynamicFlows.MultipleFileUploadSchema.minItemsError": "Upload mimimaal {minItems} bestand(en).",
47
47
  "dynamicFlows.PersistAsyncSchema.genericError": "Er ging iets mis, probeer het a. u. b. opnieuw.",
48
48
  "dynamicFlows.ReadOnlySchema.no": "Nee",
49
49
  "dynamicFlows.ReadOnlySchema.yes": "Ja",
50
- "dynamicFlows.SearchLayout.loading": "Loading..."
50
+ "dynamicFlows.SearchLayout.loading": "Laden..."
51
51
  }
@@ -1,8 +1,51 @@
1
1
  {
2
- "dynamicFlows.ErrorBoundary.errorAlert": "Ой! Щось сталося…",
2
+ "dynamicFlows.ArraySchema.addItem": "Заощаджуйте",
3
+ "dynamicFlows.ArraySchema.addItemTitle": "Add Item",
4
+ "dynamicFlows.ArraySchema.editItem": "Заощаджуйте",
5
+ "dynamicFlows.ArraySchema.maxItemsError": "Додайте {maxItems} або менше.",
6
+ "dynamicFlows.ArraySchema.minItemsError": "Додайте принаймні {minItems}.",
7
+ "dynamicFlows.ArraySchema.removeItem": "Вилучити",
8
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.action": "Спробувати знову",
9
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.paragraph": "Please check if it is connected and try again.",
10
+ "dynamicFlows.CameraCapture.CameraConnectionIssue.title": "We can't access your camera",
11
+ "dynamicFlows.CameraCapture.CameraNotSupported.paragraph": "Браузер, яким ви користуєтеся, не підтримує камеру. Спробуйте інший браузер або пристрій чи завантажте наш мобільний додаток.",
12
+ "dynamicFlows.CameraCapture.CameraNotSupported.title": "Камера не підтримується",
13
+ "dynamicFlows.CameraCapture.NoCameraAccess.action": "Enable camera access",
14
+ "dynamicFlows.CameraCapture.NoCameraAccess.paragraph": "Enable camera access in your browser's settings to get going again.",
15
+ "dynamicFlows.CameraCapture.NoCameraAccess.title": "We can't access your camera",
16
+ "dynamicFlows.CameraCapture.reviewInstructions": "Ваше фото чітке, розбірливе й повне?",
17
+ "dynamicFlows.CameraCapture.reviewRetry": "Ні, повторити спробу",
18
+ "dynamicFlows.CameraCapture.reviewSubmit": "Так, надіслати",
19
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Rotate your phone to portrait view to take a photo",
20
+ "dynamicFlows.ControlFeedback.maxLength": "Будь ласка, введіть {maxLength} або менше символів.",
21
+ "dynamicFlows.ControlFeedback.maximum": "Введіть число, що дорівнює {maximum}, або менше.",
22
+ "dynamicFlows.ControlFeedback.maximumDate": "Введіть дату, що припадає на {maximum}, або ранішу.",
23
+ "dynamicFlows.ControlFeedback.minLength": "Мінімальна кількість символів: {minLength}.",
24
+ "dynamicFlows.ControlFeedback.minimum": "Введіть число, що дорівнює {minimum}, або більше.",
25
+ "dynamicFlows.ControlFeedback.minimumDate": "Введіть дату, що припадає на {minimum}, або пізнішу.",
26
+ "dynamicFlows.ControlFeedback.pattern": "Введіть значення в правильному форматі.",
27
+ "dynamicFlows.ControlFeedback.patternDate": "Введіть дату в правильному форматі.",
28
+ "dynamicFlows.ControlFeedback.required": "Заповніть це поле.",
29
+ "dynamicFlows.ControlFeedback.type": "Неправильний тип",
30
+ "dynamicFlows.DefaultErrorMessages.required": "Заповніть це поле.",
31
+ "dynamicFlows.DynamicExternal.retryTitle": "Повторно відкрити вікно",
32
+ "dynamicFlows.DynamicParagraph.copied": "Скопійовано в буфер обміну",
33
+ "dynamicFlows.DynamicParagraph.copy": "Копіювати",
34
+ "dynamicFlows.ErrorBoundary.errorAlert": "Сталася помилка.",
3
35
  "dynamicFlows.ErrorBoundary.retry": "Повторити спробу",
36
+ "dynamicFlows.ExternalConfirmation.cancel": "Скасувати",
37
+ "dynamicFlows.ExternalConfirmation.description": "Підтвердьте, що ви бажаєте відкрити **{origin}** в новій вкладці браузера.",
38
+ "dynamicFlows.ExternalConfirmation.open": "Відкрити в новій вкладці",
39
+ "dynamicFlows.ExternalConfirmation.title": "Підтвердьте",
40
+ "dynamicFlows.FileUploadSchema.maxFileSizeError": "Вибачте, але цей файл завеликий. Будь ласка, завантажте файл меншого розміру.",
41
+ "dynamicFlows.FileUploadSchema.wrongFileTypeError": "Sorry, that file format is not supported. Please upload a different file.",
4
42
  "dynamicFlows.Help.ariaLabel": "Натисніть тут, щоб дізнатися більше.",
5
- "dynamicFlows.PersistAsyncSchema.genericError": "Щось сталося. Спробуйте пізніше!",
43
+ "dynamicFlows.MultiSelect.summary": "{first} і ще {count}",
44
+ "dynamicFlows.MultipleFileUploadSchema.maxFileSizeError": "Вибачте, але цей файл завеликий. Будь ласка, завантажте файл меншого розміру.",
45
+ "dynamicFlows.MultipleFileUploadSchema.maxItemsError": "Будь ласка, завантажте {maxItems} або менше файлів.",
46
+ "dynamicFlows.MultipleFileUploadSchema.minItemsError": "Будь ласка, завантажте принаймні {minItems} файл(ів).",
47
+ "dynamicFlows.PersistAsyncSchema.genericError": "Щось сталося. Спробуйте ще раз.",
6
48
  "dynamicFlows.ReadOnlySchema.no": "Ні",
7
- "dynamicFlows.ReadOnlySchema.yes": "Так"
49
+ "dynamicFlows.ReadOnlySchema.yes": "Так",
50
+ "dynamicFlows.SearchLayout.loading": "Завантаження…"
8
51
  }
package/build/main.css CHANGED
@@ -265,6 +265,9 @@ button.df-back-btn {
265
265
  flex-direction: row;
266
266
  }
267
267
  }
268
+ .df-image .df-illustration {
269
+ padding: 0;
270
+ }
268
271
  .df-back-btn .tw-avatar__content {
269
272
  cursor: pointer;
270
273
  background-color: var(--color-background-neutral);
@@ -275,6 +278,7 @@ button.df-back-btn {
275
278
  .df-back-btn:active .tw-avatar__content {
276
279
  background-color: var(--color-background-neutral-active);
277
280
  }
278
- .df-image .df-illustration {
279
- padding: 0;
281
+ .splash-screen {
282
+ display: flex;
283
+ flex-direction: column;
280
284
  }
package/build/main.js CHANGED
@@ -5190,16 +5190,32 @@ ZodReadonly.create = (type, params) => {
5190
5190
  typeName: ZodFirstPartyTypeKind.ZodReadonly
5191
5191
  }, processCreateParams(params)));
5192
5192
  };
5193
- function custom(check, params = {}, fatal) {
5193
+ function cleanParams(params, data) {
5194
+ const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
5195
+ const p2 = typeof p === "string" ? { message: p } : p;
5196
+ return p2;
5197
+ }
5198
+ function custom(check, _params = {}, fatal) {
5194
5199
  if (check)
5195
5200
  return ZodAny.create().superRefine((data, ctx) => {
5196
5201
  var _a, _b;
5197
- if (!check(data)) {
5198
- const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
5199
- const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
5200
- const p2 = typeof p === "string" ? { message: p } : p;
5201
- ctx.addIssue(__spreadProps2(__spreadValues2({ code: "custom" }, p2), { fatal: _fatal }));
5202
+ const r2 = check(data);
5203
+ if (r2 instanceof Promise) {
5204
+ return r2.then((r22) => {
5205
+ var _a2, _b2;
5206
+ if (!r22) {
5207
+ const params = cleanParams(_params, data);
5208
+ const _fatal = (_b2 = (_a2 = params.fatal) !== null && _a2 !== void 0 ? _a2 : fatal) !== null && _b2 !== void 0 ? _b2 : true;
5209
+ ctx.addIssue(__spreadProps2(__spreadValues2({ code: "custom" }, params), { fatal: _fatal }));
5210
+ }
5211
+ });
5202
5212
  }
5213
+ if (!r2) {
5214
+ const params = cleanParams(_params, data);
5215
+ const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
5216
+ ctx.addIssue(__spreadProps2(__spreadValues2({ code: "custom" }, params), { fatal: _fatal }));
5217
+ }
5218
+ return;
5203
5219
  });
5204
5220
  return ZodAny.create();
5205
5221
  }
@@ -5554,7 +5570,8 @@ var imageLayoutSchema = z.object({
5554
5570
  content: imageSchema.optional(),
5555
5571
  size: sizeSchema.optional(),
5556
5572
  control: z.string().optional(),
5557
- margin: sizeSchema.optional()
5573
+ margin: sizeSchema.optional(),
5574
+ align: alignSchema.optional()
5558
5575
  });
5559
5576
  var statusListLayoutStatusSchema = z.union([
5560
5577
  z.literal("not-done"),
@@ -5668,6 +5685,13 @@ var summaryProviderSchema = z.object({
5668
5685
  providesImage: z.boolean().optional()
5669
5686
  });
5670
5687
  var uploadSourceSchema = z.union([z.literal("camera"), z.literal("file")]);
5688
+ var suggestionsValueSchema = z.object({
5689
+ label: z.string(),
5690
+ value: jsonElementSchema.optional(),
5691
+ icon: iconSchema.optional(),
5692
+ image: imageSchema.optional(),
5693
+ tag: z.string().optional()
5694
+ });
5671
5695
  var navigationStackBehaviorSchema = z.union([
5672
5696
  z.literal("default"),
5673
5697
  z.literal("remove-previous"),
@@ -5755,6 +5779,9 @@ var errorResponseBodySchema = z.object({
5755
5779
  validation: jsonElementSchema.optional(),
5756
5780
  refreshUrl: z.string().optional()
5757
5781
  });
5782
+ var suggestionsSchema = z.object({
5783
+ values: z.array(suggestionsValueSchema)
5784
+ });
5758
5785
  var navigationBackBehaviorSchema = z.object({
5759
5786
  title: z.string().optional(),
5760
5787
  action: actionSchema
@@ -6003,7 +6030,8 @@ var stepSchema = z.lazy(
6003
6030
  errors: stepErrorSchema.optional(),
6004
6031
  navigation: navigationSchema.optional(),
6005
6032
  refreshUrl: z.string().optional(),
6006
- control: z.string().optional()
6033
+ control: z.string().optional(),
6034
+ refreshAfter: z.string().optional()
6007
6035
  })
6008
6036
  );
6009
6037
  var schemaSchema = z.lazy(
@@ -6228,7 +6256,8 @@ var stringSchemaSchema = z.lazy(
6228
6256
  source: uploadSourceSchema.optional(),
6229
6257
  autocompleteHint: z.array(autocompleteTokenSchema).optional(),
6230
6258
  autofillKey: z.string().optional(),
6231
- help: helpSchema.optional()
6259
+ help: helpSchema.optional(),
6260
+ suggestions: suggestionsSchema.optional()
6232
6261
  })
6233
6262
  );
6234
6263
  var arraySchemaListSchema = z.lazy(
@@ -7194,6 +7223,9 @@ var getComponentValidationAsync = (update, performValidationAsync) => (
7194
7223
  }
7195
7224
  );
7196
7225
 
7226
+ // src/revamp/domain/components/utils/isOrWasValid.ts
7227
+ var isOrWasValid = (getErrors, previous, current) => getErrors(previous).length === 0 || getErrors(current).length === 0;
7228
+
7197
7229
  // src/revamp/domain/components/NumberInputComponent.ts
7198
7230
  var createNumberInputComponent = (numberInputProps, updateComponent) => {
7199
7231
  const _a = numberInputProps, {
@@ -7237,12 +7269,15 @@ var createNumberInputComponent = (numberInputProps, updateComponent) => {
7237
7269
  },
7238
7270
  // Noop
7239
7271
  onChange(updatedValue) {
7272
+ const prevValue = this.value;
7240
7273
  update((draft) => {
7241
7274
  draft.errors = [];
7242
7275
  draft.validationAsyncState.messages = {};
7243
7276
  draft.value = updatedValue;
7244
7277
  });
7245
- performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
7278
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
7279
+ performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
7280
+ }
7246
7281
  onValueChange();
7247
7282
  },
7248
7283
  async getSubmittableValue() {
@@ -8026,12 +8061,15 @@ var createIntegerInputComponent = (integerInputProps, updateComponent) => {
8026
8061
  },
8027
8062
  // Noop
8028
8063
  onChange(updatedValue) {
8064
+ const prevValue = this.value;
8029
8065
  update((draft) => {
8030
8066
  draft.errors = [];
8031
8067
  draft.validationAsyncState.messages = {};
8032
8068
  draft.value = updatedValue;
8033
8069
  });
8034
- performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8070
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
8071
+ performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8072
+ }
8035
8073
  onValueChange();
8036
8074
  },
8037
8075
  async getSubmittableValue() {
@@ -8333,12 +8371,15 @@ var createDateInputComponent = (textInputProps, updateComponent) => {
8333
8371
  },
8334
8372
  // Noop
8335
8373
  onChange(updatedValue) {
8374
+ const prevValue = this.value;
8336
8375
  update((draft) => {
8337
8376
  draft.errors = [];
8338
8377
  draft.validationAsyncState.messages = {};
8339
8378
  draft.value = updatedValue;
8340
8379
  });
8341
- performRefresh == null ? void 0 : performRefresh();
8380
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
8381
+ performRefresh == null ? void 0 : performRefresh();
8382
+ }
8342
8383
  onValueChange();
8343
8384
  },
8344
8385
  async getSubmittableValue() {
@@ -8647,12 +8688,15 @@ var createTextInputComponent = (textInputProps, updateComponent) => {
8647
8688
  },
8648
8689
  // Noop
8649
8690
  onChange(updatedValue) {
8691
+ const prevValue = this.value;
8650
8692
  update((draft) => {
8651
8693
  draft.errors = [];
8652
8694
  draft.validationAsyncState.messages = {};
8653
8695
  draft.value = updatedValue;
8654
8696
  });
8655
- performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8697
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
8698
+ performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8699
+ }
8656
8700
  onValueChange();
8657
8701
  },
8658
8702
  async getSubmittableValue() {
package/build/main.mjs CHANGED
@@ -5167,16 +5167,32 @@ ZodReadonly.create = (type, params) => {
5167
5167
  typeName: ZodFirstPartyTypeKind.ZodReadonly
5168
5168
  }, processCreateParams(params)));
5169
5169
  };
5170
- function custom(check, params = {}, fatal) {
5170
+ function cleanParams(params, data) {
5171
+ const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
5172
+ const p2 = typeof p === "string" ? { message: p } : p;
5173
+ return p2;
5174
+ }
5175
+ function custom(check, _params = {}, fatal) {
5171
5176
  if (check)
5172
5177
  return ZodAny.create().superRefine((data, ctx) => {
5173
5178
  var _a, _b;
5174
- if (!check(data)) {
5175
- const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params;
5176
- const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
5177
- const p2 = typeof p === "string" ? { message: p } : p;
5178
- ctx.addIssue(__spreadProps2(__spreadValues2({ code: "custom" }, p2), { fatal: _fatal }));
5179
+ const r2 = check(data);
5180
+ if (r2 instanceof Promise) {
5181
+ return r2.then((r22) => {
5182
+ var _a2, _b2;
5183
+ if (!r22) {
5184
+ const params = cleanParams(_params, data);
5185
+ const _fatal = (_b2 = (_a2 = params.fatal) !== null && _a2 !== void 0 ? _a2 : fatal) !== null && _b2 !== void 0 ? _b2 : true;
5186
+ ctx.addIssue(__spreadProps2(__spreadValues2({ code: "custom" }, params), { fatal: _fatal }));
5187
+ }
5188
+ });
5179
5189
  }
5190
+ if (!r2) {
5191
+ const params = cleanParams(_params, data);
5192
+ const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;
5193
+ ctx.addIssue(__spreadProps2(__spreadValues2({ code: "custom" }, params), { fatal: _fatal }));
5194
+ }
5195
+ return;
5180
5196
  });
5181
5197
  return ZodAny.create();
5182
5198
  }
@@ -5531,7 +5547,8 @@ var imageLayoutSchema = z.object({
5531
5547
  content: imageSchema.optional(),
5532
5548
  size: sizeSchema.optional(),
5533
5549
  control: z.string().optional(),
5534
- margin: sizeSchema.optional()
5550
+ margin: sizeSchema.optional(),
5551
+ align: alignSchema.optional()
5535
5552
  });
5536
5553
  var statusListLayoutStatusSchema = z.union([
5537
5554
  z.literal("not-done"),
@@ -5645,6 +5662,13 @@ var summaryProviderSchema = z.object({
5645
5662
  providesImage: z.boolean().optional()
5646
5663
  });
5647
5664
  var uploadSourceSchema = z.union([z.literal("camera"), z.literal("file")]);
5665
+ var suggestionsValueSchema = z.object({
5666
+ label: z.string(),
5667
+ value: jsonElementSchema.optional(),
5668
+ icon: iconSchema.optional(),
5669
+ image: imageSchema.optional(),
5670
+ tag: z.string().optional()
5671
+ });
5648
5672
  var navigationStackBehaviorSchema = z.union([
5649
5673
  z.literal("default"),
5650
5674
  z.literal("remove-previous"),
@@ -5732,6 +5756,9 @@ var errorResponseBodySchema = z.object({
5732
5756
  validation: jsonElementSchema.optional(),
5733
5757
  refreshUrl: z.string().optional()
5734
5758
  });
5759
+ var suggestionsSchema = z.object({
5760
+ values: z.array(suggestionsValueSchema)
5761
+ });
5735
5762
  var navigationBackBehaviorSchema = z.object({
5736
5763
  title: z.string().optional(),
5737
5764
  action: actionSchema
@@ -5980,7 +6007,8 @@ var stepSchema = z.lazy(
5980
6007
  errors: stepErrorSchema.optional(),
5981
6008
  navigation: navigationSchema.optional(),
5982
6009
  refreshUrl: z.string().optional(),
5983
- control: z.string().optional()
6010
+ control: z.string().optional(),
6011
+ refreshAfter: z.string().optional()
5984
6012
  })
5985
6013
  );
5986
6014
  var schemaSchema = z.lazy(
@@ -6205,7 +6233,8 @@ var stringSchemaSchema = z.lazy(
6205
6233
  source: uploadSourceSchema.optional(),
6206
6234
  autocompleteHint: z.array(autocompleteTokenSchema).optional(),
6207
6235
  autofillKey: z.string().optional(),
6208
- help: helpSchema.optional()
6236
+ help: helpSchema.optional(),
6237
+ suggestions: suggestionsSchema.optional()
6209
6238
  })
6210
6239
  );
6211
6240
  var arraySchemaListSchema = z.lazy(
@@ -7171,6 +7200,9 @@ var getComponentValidationAsync = (update, performValidationAsync) => (
7171
7200
  }
7172
7201
  );
7173
7202
 
7203
+ // src/revamp/domain/components/utils/isOrWasValid.ts
7204
+ var isOrWasValid = (getErrors, previous, current) => getErrors(previous).length === 0 || getErrors(current).length === 0;
7205
+
7174
7206
  // src/revamp/domain/components/NumberInputComponent.ts
7175
7207
  var createNumberInputComponent = (numberInputProps, updateComponent) => {
7176
7208
  const _a = numberInputProps, {
@@ -7214,12 +7246,15 @@ var createNumberInputComponent = (numberInputProps, updateComponent) => {
7214
7246
  },
7215
7247
  // Noop
7216
7248
  onChange(updatedValue) {
7249
+ const prevValue = this.value;
7217
7250
  update((draft) => {
7218
7251
  draft.errors = [];
7219
7252
  draft.validationAsyncState.messages = {};
7220
7253
  draft.value = updatedValue;
7221
7254
  });
7222
- performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
7255
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
7256
+ performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
7257
+ }
7223
7258
  onValueChange();
7224
7259
  },
7225
7260
  async getSubmittableValue() {
@@ -8003,12 +8038,15 @@ var createIntegerInputComponent = (integerInputProps, updateComponent) => {
8003
8038
  },
8004
8039
  // Noop
8005
8040
  onChange(updatedValue) {
8041
+ const prevValue = this.value;
8006
8042
  update((draft) => {
8007
8043
  draft.errors = [];
8008
8044
  draft.validationAsyncState.messages = {};
8009
8045
  draft.value = updatedValue;
8010
8046
  });
8011
- performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8047
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
8048
+ performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8049
+ }
8012
8050
  onValueChange();
8013
8051
  },
8014
8052
  async getSubmittableValue() {
@@ -8310,12 +8348,15 @@ var createDateInputComponent = (textInputProps, updateComponent) => {
8310
8348
  },
8311
8349
  // Noop
8312
8350
  onChange(updatedValue) {
8351
+ const prevValue = this.value;
8313
8352
  update((draft) => {
8314
8353
  draft.errors = [];
8315
8354
  draft.validationAsyncState.messages = {};
8316
8355
  draft.value = updatedValue;
8317
8356
  });
8318
- performRefresh == null ? void 0 : performRefresh();
8357
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
8358
+ performRefresh == null ? void 0 : performRefresh();
8359
+ }
8319
8360
  onValueChange();
8320
8361
  },
8321
8362
  async getSubmittableValue() {
@@ -8624,12 +8665,15 @@ var createTextInputComponent = (textInputProps, updateComponent) => {
8624
8665
  },
8625
8666
  // Noop
8626
8667
  onChange(updatedValue) {
8668
+ const prevValue = this.value;
8627
8669
  update((draft) => {
8628
8670
  draft.errors = [];
8629
8671
  draft.validationAsyncState.messages = {};
8630
8672
  draft.value = updatedValue;
8631
8673
  });
8632
- performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8674
+ if (isOrWasValid(getValidationErrors, prevValue, updatedValue)) {
8675
+ performDebouncedRefresh == null ? void 0 : performDebouncedRefresh();
8676
+ }
8633
8677
  onValueChange();
8634
8678
  },
8635
8679
  async getSubmittableValue() {
@@ -0,0 +1,2 @@
1
+ import { LocalValue } from '../../types';
2
+ export declare const isOrWasValid: <V extends LocalValue>(getErrors: (value: V) => string[], previous: V, current: V) => boolean;
@@ -1,10 +1,15 @@
1
1
  import { DynamicFlowCorePropsWithInitialAction, DynamicFlowCorePropsWithInitialStep } from '../types';
2
+ import { Theming } from '@wise/components-theming';
2
3
  type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
3
4
  export type DynamicFlowWisePropsWithInitialAction = MakeOptional<DynamicFlowCorePropsWithInitialAction, 'renderers' | 'onLink'>;
4
5
  export type DynamicFlowWisePropsWithInitialStep = MakeOptional<DynamicFlowCorePropsWithInitialStep, 'renderers' | 'onLink'>;
5
- export type DynamicFlowWiseProps = DynamicFlowWisePropsWithInitialAction | DynamicFlowWisePropsWithInitialStep;
6
+ export type DynamicFlowWiseProps = (DynamicFlowWisePropsWithInitialAction | DynamicFlowWisePropsWithInitialStep) & {
7
+ onAnalytics?: DynamicFlowWiseProps['onEvent'];
8
+ onThemeChange?: OnThemeChange;
9
+ };
6
10
  /**
7
11
  * This component is only used in tests.
8
12
  */
9
13
  declare function DynamicFlowWise(props: DynamicFlowWiseProps): import("react/jsx-runtime").JSX.Element;
14
+ type OnThemeChange = (theme: Theming['theme']) => void;
10
15
  export default DynamicFlowWise;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-client",
3
- "version": "4.0.1",
3
+ "version": "4.0.3",
4
4
  "description": "Dynamic Flow web client",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./build/main.js",
@@ -30,34 +30,34 @@
30
30
  "url": "git+https://github.com/transferwise/dynamic-flow.git"
31
31
  },
32
32
  "devDependencies": {
33
- "@babel/core": "7.26.7",
33
+ "@babel/core": "7.26.10",
34
34
  "@babel/plugin-syntax-flow": "7.26.0",
35
35
  "@babel/plugin-transform-react-jsx": "7.25.9",
36
- "@babel/preset-env": "7.26.7",
36
+ "@babel/preset-env": "7.26.9",
37
37
  "@babel/preset-react": "7.26.3",
38
38
  "@babel/preset-typescript": "7.26.0",
39
- "@chromatic-com/storybook": "3.2.4",
40
- "@formatjs/cli": "^6.5.1",
41
- "@storybook/addon-a11y": "^8.5.4",
42
- "@storybook/addon-actions": "^8.5.4",
43
- "@storybook/addon-essentials": "^8.5.4",
44
- "@storybook/addon-interactions": "^8.5.4",
45
- "@storybook/addon-links": "^8.5.4",
39
+ "@chromatic-com/storybook": "3.2.6",
40
+ "@formatjs/cli": "^6.6.1",
41
+ "@storybook/addon-a11y": "^8.6.7",
42
+ "@storybook/addon-actions": "^8.6.7",
43
+ "@storybook/addon-essentials": "^8.6.7",
44
+ "@storybook/addon-interactions": "^8.6.7",
45
+ "@storybook/addon-links": "^8.6.7",
46
46
  "@storybook/addon-webpack5-compiler-babel": "^3.0.5",
47
- "@storybook/manager-api": "^8.5.4",
48
- "@storybook/react": "^8.5.4",
49
- "@storybook/react-webpack5": "^8.5.4",
50
- "@storybook/test": "^8.5.4",
51
- "@storybook/types": "^8.5.4",
47
+ "@storybook/manager-api": "^8.6.7",
48
+ "@storybook/react": "^8.6.7",
49
+ "@storybook/react-webpack5": "^8.6.7",
50
+ "@storybook/test": "^8.6.7",
51
+ "@storybook/types": "^8.6.7",
52
52
  "@testing-library/dom": "10.4.0",
53
53
  "@testing-library/jest-dom": "6.6.3",
54
54
  "@testing-library/react": "16.2.0",
55
55
  "@testing-library/user-event": "14.6.1",
56
- "@transferwise/components": "46.93.1",
57
- "@transferwise/formatting": "^2.13.0",
58
- "@transferwise/icons": "3.18.0",
56
+ "@transferwise/components": "46.94.1",
57
+ "@transferwise/formatting": "^2.13.1",
58
+ "@transferwise/icons": "3.19.1",
59
59
  "@transferwise/neptune-css": "14.22.0",
60
- "@types/node": "22.10.10",
60
+ "@types/node": "22.13.10",
61
61
  "@types/jest": "29.5.14",
62
62
  "@types/react": "18.3.18",
63
63
  "@types/react-dom": "18.3.5",
@@ -65,28 +65,28 @@
65
65
  "@wise/art": "2.20.0",
66
66
  "@wise/components-theming": "^1.6.1",
67
67
  "babel-jest": "29.7.0",
68
- "esbuild": "0.25.0",
68
+ "esbuild": "0.25.1",
69
69
  "jest": "29.7.0",
70
70
  "jest-environment-jsdom": "29.7.0",
71
71
  "jest-fetch-mock": "^3.0.3",
72
72
  "jest-watch-typeahead": "^2.2.2",
73
73
  "npm-run-all2": "7.0.2",
74
- "postcss": "^8.5.1",
75
- "postcss-cli": "^11.0.0",
74
+ "postcss": "^8.5.3",
75
+ "postcss-cli": "^11.0.1",
76
76
  "postcss-import": "^16.1.0",
77
77
  "react": "18.3.1",
78
78
  "react-dom": "18.3.1",
79
79
  "react-intl": "6.8.9",
80
- "storybook": "^8.5.4",
81
- "stylelint": "16.14.0",
80
+ "storybook": "^8.6.7",
81
+ "stylelint": "16.16.0",
82
82
  "stylelint-config-standard": "36.0.1",
83
- "stylelint-no-unsupported-browser-features": "8.0.2",
83
+ "stylelint-no-unsupported-browser-features": "8.0.4",
84
84
  "stylelint-value-no-unknown-custom-properties": "6.0.1",
85
- "tsx": "4.19.2",
86
- "typescript": "5.7.3",
87
- "webpack": "5.97.1",
88
- "@wise/dynamic-flow-fixtures": "0.0.1",
89
- "@wise/dynamic-flow-renderers": "0.0.0"
85
+ "tsx": "4.19.3",
86
+ "typescript": "5.8.2",
87
+ "webpack": "5.98.0",
88
+ "@wise/dynamic-flow-renderers": "0.0.0",
89
+ "@wise/dynamic-flow-fixtures": "0.0.1"
90
90
  },
91
91
  "peerDependencies": {
92
92
  "@transferwise/components": "^46.92.0",
@@ -102,7 +102,7 @@
102
102
  "classnames": "2.5.1",
103
103
  "react-webcam": "^7.2.0",
104
104
  "screenfull": "^5.2.0",
105
- "@wise/dynamic-flow-types": "3.0.0"
105
+ "@wise/dynamic-flow-types": "3.1.0"
106
106
  },
107
107
  "scripts": {
108
108
  "dev": "pnpm build:visual-tests && storybook dev -p 3003",