@wise/dynamic-flow-client 4.19.4 → 4.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/build/main.js +487 -184
  2. package/build/main.mjs +487 -184
  3. package/build/types/revamp/domain/components/MarkdownComponent.d.ts +3 -1
  4. package/build/types/revamp/domain/components/MoneyInputComponent.d.ts +22 -0
  5. package/build/types/revamp/domain/components/ParagraphComponent.d.ts +3 -1
  6. package/build/types/revamp/domain/components/SelectInputComponent.d.ts +1 -0
  7. package/build/types/revamp/domain/features/validation/value-checks.d.ts +2 -0
  8. package/build/types/revamp/domain/mappers/layout/markdownLayoutToComponent.d.ts +1 -1
  9. package/build/types/revamp/domain/mappers/layout/paragraphLayoutToComponent.d.ts +1 -1
  10. package/build/types/revamp/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.d.ts +3 -0
  11. package/build/types/revamp/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.d.ts +5 -0
  12. package/build/types/revamp/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.d.ts +9 -0
  13. package/build/types/revamp/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.d.ts +36 -0
  14. package/build/types/revamp/domain/mappers/schema/persistAsyncSchemaToComponent.d.ts +36 -0
  15. package/build/types/revamp/domain/mappers/types.d.ts +2 -2
  16. package/build/types/revamp/domain/types.d.ts +2 -1
  17. package/build/types/revamp/renderers/mappers/moneyInputComponentToProps.d.ts +4 -0
  18. package/build/types/revamp/renderers/mappers/utils/getValidationState.d.ts +3 -0
  19. package/build/types/revamp/renderers/mappers/utils/inputComponentToProps.d.ts +2 -3
  20. package/package.json +15 -15
  21. package/build/types/revamp/domain/mappers/schema/objectSchemaToComponent/objectSchemaToComponent.d.ts +0 -5
@@ -1,8 +1,10 @@
1
+ import type { Size } from '@wise/dynamic-flow-types/build/next';
1
2
  import type { Align, BaseLayoutComponent } from '../types';
2
3
  export type MarkdownComponent = BaseLayoutComponent & {
3
4
  type: 'markdown';
4
5
  kind: 'layout';
5
6
  align: Align;
6
7
  content: string;
8
+ size: Size;
7
9
  };
8
- export declare const createMarkdownComponent: (markdownProps: Pick<MarkdownComponent, "uid" | "analyticsId" | "align" | "control" | "content" | "margin" | "tags">) => MarkdownComponent;
10
+ export declare const createMarkdownComponent: (markdownProps: Pick<MarkdownComponent, "uid" | "analyticsId" | "align" | "control" | "content" | "margin" | "size" | "tags">) => MarkdownComponent;
@@ -0,0 +1,22 @@
1
+ import { JsonObject } from '@wise/dynamic-flow-types/build/next';
2
+ import { IsInvalidCheck } from '../features/validation/value-checks';
3
+ import { BaseInputComponent, LocalValue, LocalValueObject, RepeatableSummary, UpdateComponent } from '../types';
4
+ import { SelectInputComponent } from './SelectInputComponent';
5
+ import { TextInputComponent } from './TextInputComponent';
6
+ export type MoneyInputComponent = BaseInputComponent<LocalValueObject> & {
7
+ type: 'money-input';
8
+ kind: 'input';
9
+ components: {
10
+ amount: TextInputComponent;
11
+ currency: SelectInputComponent;
12
+ };
13
+ };
14
+ export declare const createMoneyInputComponent: (moneyInputProps: Pick<MoneyInputComponent, "id" | "uid" | "schemaId" | "analyticsId" | "control" | "description" | "disabled" | "errors" | "required" | "help" | "hidden" | "media" | "title" | "tags"> & {
15
+ amountKey: string;
16
+ amountComponent: TextInputComponent;
17
+ currencyKey: string;
18
+ currencyComponent: SelectInputComponent;
19
+ extraValues: JsonObject;
20
+ checks: IsInvalidCheck<string | null>[];
21
+ summariser: (value: LocalValue | null) => RepeatableSummary;
22
+ }, updateComponent: UpdateComponent) => MoneyInputComponent;
@@ -1,8 +1,10 @@
1
+ import type { Size } from '@wise/dynamic-flow-types/build/next';
1
2
  import type { Align, BaseLayoutComponent } from '../types';
2
3
  export type ParagraphComponent = BaseLayoutComponent & {
3
4
  type: 'paragraph';
4
5
  kind: 'layout';
5
6
  align: Align;
7
+ size: Size;
6
8
  text: string;
7
9
  };
8
- export declare const createParagraphComponent: (paragraphProps: Pick<ParagraphComponent, "uid" | "analyticsId" | "align" | "control" | "margin" | "text" | "tags">) => ParagraphComponent;
10
+ export declare const createParagraphComponent: (paragraphProps: Pick<ParagraphComponent, "uid" | "analyticsId" | "align" | "control" | "margin" | "size" | "text" | "tags">) => ParagraphComponent;
@@ -15,6 +15,7 @@ export type SelectInputComponent = BaseInputComponent<LocalValue | null> & {
15
15
  getSelectedChild: () => SchemaComponent | null;
16
16
  };
17
17
  export type SelectInputOption = {
18
+ analyticsId?: string;
18
19
  title: string;
19
20
  description?: string;
20
21
  media?: Media;
@@ -17,6 +17,8 @@ export declare const getAboveMaxLengthCheck: GetIsInvalidCheck<StringSchema, str
17
17
  export declare const getBelowMinLengthCheck: GetIsInvalidCheck<StringSchema, string | null>;
18
18
  export declare const getAboveMaximumCheck: GetIsInvalidCheck<NumberSchema | IntegerSchema, number | null>;
19
19
  export declare const getBelowMinimumCheck: GetIsInvalidCheck<NumberSchema | IntegerSchema, number | null>;
20
+ export declare const getAboveMaximumMoneyAmountCheck: GetIsInvalidCheck<StringSchema, string | null>;
21
+ export declare const getBelowMinimumMoneyAmountCheck: GetIsInvalidCheck<StringSchema, string | null>;
20
22
  export declare const getAboveMaximumDateCheck: GetIsInvalidCheck<StringSchema, string | null>;
21
23
  export declare const getBelowMinimumDateCheck: GetIsInvalidCheck<StringSchema, string | null>;
22
24
  export declare const getNotAdheringToPatternCheck: GetIsInvalidCheck<StringSchema, string | null>;
@@ -1,2 +1,2 @@
1
1
  import type { MarkdownLayout } from '@wise/dynamic-flow-types/build/next';
2
- export declare const markdownLayoutToComponent: (uid: string, { analyticsId, align, margin, control, content, tags }: MarkdownLayout) => import("../../components/MarkdownComponent").MarkdownComponent;
2
+ export declare const markdownLayoutToComponent: (uid: string, { analyticsId, align, margin, control, content, size, tags, }: MarkdownLayout) => import("../../components/MarkdownComponent").MarkdownComponent;
@@ -1,2 +1,2 @@
1
1
  import type { ParagraphLayout } from '@wise/dynamic-flow-types/build/next';
2
- export declare const paragraphLayoutToComponent: (uid: string, { analyticsId, align, control, margin, tags, text }: ParagraphLayout) => import("../../components/ParagraphComponent").ParagraphComponent;
2
+ export declare const paragraphLayoutToComponent: (uid: string, { analyticsId, align, control, margin, size, tags, text }: ParagraphLayout) => import("../../components/ParagraphComponent").ParagraphComponent;
@@ -0,0 +1,3 @@
1
+ import type { ObjectSchema } from '@wise/dynamic-flow-types/build/next';
2
+ import { LoggingEventDispatcher } from '../../../features/events';
3
+ export declare const assertDisplayOrder: (schema: ObjectSchema, logEvent: LoggingEventDispatcher) => void;
@@ -0,0 +1,5 @@
1
+ import type { ObjectSchema } from '@wise/dynamic-flow-types/build/next';
2
+ import type { MapperProps, SchemaMapperProps } from '../types';
3
+ export declare const objectSchemaToMoneyInputComponent: (schemaMapperProps: SchemaMapperProps & {
4
+ schema: ObjectSchema;
5
+ }, mapperProps: MapperProps) => import("../../../components/MoneyInputComponent").MoneyInputComponent;
@@ -0,0 +1,9 @@
1
+ import type { ObjectSchema } from '@wise/dynamic-flow-types/build/next';
2
+ import type { SchemaComponent } from '../../../types';
3
+ import type { MapperProps, SchemaMapperProps } from '../types';
4
+ export declare const objectSchemaToObjectComponent: (schemaMapperProps: SchemaMapperProps & {
5
+ schema: ObjectSchema;
6
+ }, mapperProps: MapperProps) => import("../../../components/ObjectComponent").ObjectComponent;
7
+ export declare const createComponentMap: (schemaMapperProps: SchemaMapperProps & {
8
+ schema: ObjectSchema;
9
+ }, mapperProps: MapperProps, uidPrefix: string) => Record<string, SchemaComponent>;
@@ -468,4 +468,40 @@ export declare const oneOfSchemaToComponent: (schemaMapperProps: SchemaMapperPro
468
468
  onUpload: (value: File | null) => Promise<void>;
469
469
  } & {
470
470
  kind: "input";
471
+ }) | (import("../../../types").BaseComponent & {
472
+ schemaId?: string;
473
+ isSchemaReferencedInStep?: boolean;
474
+ control?: string;
475
+ description?: string;
476
+ help?: string;
477
+ hidden: boolean;
478
+ media?: import("../../../types").Media;
479
+ title?: string;
480
+ tags?: string[];
481
+ getLocalValue: () => import("../../../types").LocalValueObject;
482
+ getSubmittableValueSync: () => import("@wise/dynamic-flow-types/build/next").Model;
483
+ getSummary: () => import("../../../types").RepeatableSummary;
484
+ getSubmittableValue: () => Promise<import("@wise/dynamic-flow-types/build/next").Model>;
485
+ validate: () => boolean;
486
+ } & {
487
+ id: string;
488
+ autoComplete: string;
489
+ disabled: boolean;
490
+ errors: string[] | undefined;
491
+ placeholder?: string;
492
+ required: boolean;
493
+ validationAsyncState?: import("../../../types").ValidationAsyncState;
494
+ value: import("../../../types").LocalValueObject;
495
+ alert?: import("../../../types").InlineAlert;
496
+ onBlur: () => void;
497
+ onFocus: () => void;
498
+ } & {
499
+ type: "money-input";
500
+ kind: "input";
501
+ components: {
502
+ amount: import("../../../components/TextInputComponent").TextInputComponent;
503
+ currency: import("../../../components/SelectInputComponent").SelectInputComponent;
504
+ };
505
+ } & {
506
+ kind: "input";
471
507
  });
@@ -481,4 +481,40 @@ export declare const persistAsyncSchemaToComponent: (schemaMapperProps: SchemaMa
481
481
  onUpload: (value: File | null) => Promise<void>;
482
482
  } & {
483
483
  kind: "input";
484
+ }) | (import("../../types").BaseComponent & {
485
+ schemaId?: string;
486
+ isSchemaReferencedInStep?: boolean;
487
+ control?: string;
488
+ description?: string;
489
+ help?: string;
490
+ hidden: boolean;
491
+ media?: import("../../types").Media;
492
+ title?: string;
493
+ tags?: string[];
494
+ getLocalValue: () => import("../../types").LocalValueObject;
495
+ getSubmittableValueSync: () => import("@wise/dynamic-flow-types/build/next").Model;
496
+ getSummary: () => import("../../types").RepeatableSummary;
497
+ getSubmittableValue: () => Promise<import("@wise/dynamic-flow-types/build/next").Model>;
498
+ validate: () => boolean;
499
+ } & {
500
+ id: string;
501
+ autoComplete: string;
502
+ disabled: boolean;
503
+ errors: string[] | undefined;
504
+ placeholder?: string;
505
+ required: boolean;
506
+ validationAsyncState?: import("../../types").ValidationAsyncState;
507
+ value: import("../../types").LocalValueObject;
508
+ alert?: import("../../types").InlineAlert;
509
+ onBlur: () => void;
510
+ onFocus: () => void;
511
+ } & {
512
+ type: "money-input";
513
+ kind: "input";
514
+ components: {
515
+ amount: import("../../components/TextInputComponent").TextInputComponent;
516
+ currency: import("../../components/SelectInputComponent").SelectInputComponent;
517
+ };
518
+ } & {
519
+ kind: "input";
484
520
  });
@@ -2,8 +2,8 @@ import type { PersistAsync } from '@wise/dynamic-flow-types/build/next/feature/P
2
2
  export type GetErrorMessageFunctions = (validationMessages?: ValidationMessages) => ErrorMessageFunctions;
3
3
  export type ValidationMessages = Record<string, string | undefined>;
4
4
  export type ErrorMessageFunctions = {
5
- maximum: (maximum: number) => string;
6
- minimum: (minimum: number) => string;
5
+ maximum: (maximum: string | number) => string;
6
+ minimum: (minimum: string | number) => string;
7
7
  maximumDate: (maxDate: string) => string;
8
8
  minimumDate: (minDate: string) => string;
9
9
  maxLength: (maxLength: number) => string;
@@ -20,6 +20,7 @@ import type { LoadingIndicatorComponent } from './components/LoadingIndicatorCom
20
20
  import type { MarkdownComponent } from './components/MarkdownComponent';
21
21
  import type { ModalComponent } from './components/ModalComponent';
22
22
  import type { ModalLayoutComponent } from './components/ModalLayoutComponent';
23
+ import type { MoneyInputComponent } from './components/MoneyInputComponent';
23
24
  import type { MultiSelectComponent } from './components/MultiSelectInputComponent';
24
25
  import type { MultiUploadInputComponent } from './components/MultiUploadInputComponent';
25
26
  import type { NumberInputComponent } from './components/NumberInputComponent';
@@ -40,7 +41,7 @@ import type { TabsComponent } from './components/TabsComponent';
40
41
  import type { TextInputComponent } from './components/TextInputComponent';
41
42
  import type { TupleComponent } from './components/TupleComponent';
42
43
  import type { UploadInputComponent } from './components/UploadInputComponent';
43
- export type DomainComponent = RootDomainComponent | StepDomainComponent | PersistAsyncComponent | AllOfComponent | BooleanInputComponent | ConstComponent | DateInputComponent | IntegerInputComponent | MultiSelectComponent | MultiUploadInputComponent | NumberInputComponent | ObjectComponent | RepeatableComponent | SelectInputComponent | TextInputComponent | TupleComponent | UploadInputComponent | AlertComponent | BoxComponent | ButtonComponent | ColumnsComponent | ContainerComponent | DecisionComponent | DividerComponent | ExternalConfirmationComponent | FormComponent | HeadingComponent | ImageComponent | InstructionsComponent | ListComponent | LoadingIndicatorComponent | MarkdownComponent | ModalLayoutComponent | ModalComponent | ParagraphComponent | ProgressComponent | ReviewComponent | SearchComponent | SectionComponent | StatusListComponent | TabsComponent;
44
+ export type DomainComponent = RootDomainComponent | StepDomainComponent | PersistAsyncComponent | AllOfComponent | BooleanInputComponent | ConstComponent | DateInputComponent | IntegerInputComponent | MultiSelectComponent | MultiUploadInputComponent | NumberInputComponent | ObjectComponent | RepeatableComponent | SelectInputComponent | TextInputComponent | TupleComponent | UploadInputComponent | AlertComponent | BoxComponent | ButtonComponent | ColumnsComponent | ContainerComponent | DecisionComponent | DividerComponent | ExternalConfirmationComponent | FormComponent | HeadingComponent | ImageComponent | InstructionsComponent | ListComponent | LoadingIndicatorComponent | MarkdownComponent | ModalLayoutComponent | ModalComponent | MoneyInputComponent | ParagraphComponent | ProgressComponent | ReviewComponent | SearchComponent | SectionComponent | StatusListComponent | TabsComponent;
44
45
  export type SchemaComponent = DomainComponent & {
45
46
  kind: 'input';
46
47
  };
@@ -0,0 +1,4 @@
1
+ import { MoneyInputRendererProps } from '@wise/dynamic-flow-types/build/renderers';
2
+ import { MoneyInputComponent } from '../../domain/components/MoneyInputComponent';
3
+ import { RendererMapperProps } from './componentToRendererProps';
4
+ export declare const moneyInputComponentToProps: (component: MoneyInputComponent, rendererMapperProps: RendererMapperProps) => MoneyInputRendererProps;
@@ -0,0 +1,3 @@
1
+ import { ValidationResult } from '@wise/dynamic-flow-types/build/renderers';
2
+ import type { ValidationAsyncState } from '../../../domain/types';
3
+ export declare const getValidationState: (errors: string[] | undefined, validationAsyncState: ValidationAsyncState | undefined) => ValidationResult | undefined;
@@ -1,8 +1,7 @@
1
- import { ValidationResult } from '@wise/dynamic-flow-types/build/renderers';
2
1
  import type { BaseInputComponent, LocalValue } from '../../../domain/types';
3
2
  export declare const inputComponentToProps: <T extends string, V extends LocalValue>(component: BaseInputComponent<V>, type: T) => {
4
3
  media?: import("@wise/dynamic-flow-types/build/renderers").Media;
5
- icon?: import("@wise/dynamic-flow-types/build/renderers").Icon;
4
+ icon?: import("@wise/dynamic-flow-types/build/next").Icon;
6
5
  image?: import("@wise/dynamic-flow-types/build/renderers").Image;
7
6
  uid: string;
8
7
  analyticsId: string | undefined;
@@ -17,7 +16,7 @@ export declare const inputComponentToProps: <T extends string, V extends LocalVa
17
16
  required: boolean;
18
17
  title: string | undefined;
19
18
  tags: string[] | undefined;
20
- validationState: ValidationResult | undefined;
19
+ validationState: import("@wise/dynamic-flow-types/build/renderers").ValidationResult | undefined;
21
20
  value: V;
22
21
  onBlur: () => void;
23
22
  onFocus: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-client",
3
- "version": "4.19.4",
3
+ "version": "4.20.0",
4
4
  "description": "Dynamic Flow web client",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./build/main.js",
@@ -30,18 +30,18 @@
30
30
  "url": "git+https://github.com/transferwise/dynamic-flow.git"
31
31
  },
32
32
  "devDependencies": {
33
- "@babel/core": "7.28.4",
33
+ "@babel/core": "7.28.5",
34
34
  "@babel/plugin-syntax-flow": "7.27.1",
35
35
  "@babel/plugin-transform-react-jsx": "7.27.1",
36
- "@babel/preset-env": "7.28.3",
37
- "@babel/preset-react": "7.27.1",
38
- "@babel/preset-typescript": "7.27.1",
36
+ "@babel/preset-env": "7.28.5",
37
+ "@babel/preset-react": "7.28.5",
38
+ "@babel/preset-typescript": "7.28.5",
39
39
  "@chromatic-com/storybook": "4.1.1",
40
40
  "@formatjs/cli": "^6.7.4",
41
- "@storybook/addon-a11y": "^9.1.13",
42
- "@storybook/addon-docs": "^9.1.13",
43
- "@storybook/addon-links": "^9.1.13",
44
- "@storybook/react-vite": "9.1.13",
41
+ "@storybook/addon-a11y": "^9.1.15",
42
+ "@storybook/addon-docs": "^9.1.15",
43
+ "@storybook/addon-links": "^9.1.15",
44
+ "@storybook/react-vite": "9.1.15",
45
45
  "@testing-library/dom": "10.4.1",
46
46
  "@testing-library/jest-dom": "6.9.1",
47
47
  "@testing-library/react": "16.3.0",
@@ -52,7 +52,7 @@
52
52
  "@transferwise/navigation-ui": "4.40.0",
53
53
  "@transferwise/neptune-css": "14.25.1",
54
54
  "@types/jest": "30.0.0",
55
- "@types/node": "22.18.11",
55
+ "@types/node": "22.18.12",
56
56
  "@types/react": "18.3.26",
57
57
  "@types/react-dom": "18.3.7",
58
58
  "@types/react-intl": "3.0.0",
@@ -60,7 +60,7 @@
60
60
  "@wise/components-theming": "^1.7.0",
61
61
  "babel-jest": "30.2.0",
62
62
  "esbuild": "0.25.9",
63
- "eslint-plugin-storybook": "9.1.13",
63
+ "eslint-plugin-storybook": "9.1.15",
64
64
  "jest": "30.2.0",
65
65
  "jest-environment-jsdom": "30.2.0",
66
66
  "jest-fetch-mock": "^3.0.3",
@@ -72,15 +72,15 @@
72
72
  "react": "18.3.1",
73
73
  "react-dom": "18.3.1",
74
74
  "react-intl": "6.8.9",
75
- "storybook": "^9.1.13",
75
+ "storybook": "^9.1.15",
76
76
  "stylelint": "16.25.0",
77
77
  "stylelint-config-standard": "36.0.1",
78
78
  "stylelint-no-unsupported-browser-features": "8.0.5",
79
79
  "stylelint-value-no-unknown-custom-properties": "6.0.1",
80
80
  "tsx": "4.20.6",
81
81
  "typescript": "5.9.3",
82
- "@wise/dynamic-flow-renderers": "0.0.0",
83
- "@wise/dynamic-flow-fixtures": "0.0.1"
82
+ "@wise/dynamic-flow-fixtures": "0.0.1",
83
+ "@wise/dynamic-flow-renderers": "0.0.0"
84
84
  },
85
85
  "peerDependencies": {
86
86
  "@transferwise/components": "^46.104.0",
@@ -96,7 +96,7 @@
96
96
  "classnames": "2.5.1",
97
97
  "react-webcam": "^7.2.0",
98
98
  "screenfull": "^5.2.0",
99
- "@wise/dynamic-flow-types": "3.17.0"
99
+ "@wise/dynamic-flow-types": "3.18.0"
100
100
  },
101
101
  "scripts": {
102
102
  "dev": "EXCLUDE_VISUAL_TESTS=true pnpm storybook dev -p 3003",
@@ -1,5 +0,0 @@
1
- import type { ObjectSchema } from '@wise/dynamic-flow-types/build/next';
2
- import type { MapperProps, SchemaMapperProps } from '../types';
3
- export declare const objectSchemaToComponent: (schemaMapperProps: SchemaMapperProps & {
4
- schema: ObjectSchema;
5
- }, mapperProps: MapperProps) => import("../../../components/ObjectComponent").ObjectComponent;