@wise/dynamic-flow-client-internal 5.0.0-experimental-c979470 → 5.0.1-exp-css-28d60ea

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/README.md CHANGED
@@ -19,7 +19,7 @@ npm install @wise/dynamic-flow-client-internal
19
19
  pnpm install @wise/dynamic-flow-client-internal
20
20
  ```
21
21
 
22
- 2. Install required peer dependencies (if not already installed). Please refer to setup instructions for `@transferwise/components` and `@transferwise/neptune-css` if installing up for the first time.
22
+ 2. Install required peer dependencies (if not already installed). Please refer to setup instructions for `@transferwise/components` and `@transferwise/neptune-css` if installing for the first time.
23
23
 
24
24
  ```
25
25
  # yarn
@@ -50,15 +50,15 @@ The `DynamicFlow` component must be wraped in a Neptune `Provider` to support lo
50
50
  import {
51
51
  Provider,
52
52
  SnackbarProvider,
53
- translations as componentTranslations,
53
+ translations as dsTranslations,
54
54
  } from '@transferwise/components';
55
55
  import { getLocalisedMessages } from '@transferwise/crab/client';
56
56
  import {
57
57
  DynamicFlow,
58
- translations as dynamicFlowsTranslations,
58
+ translations as dfTranslations,
59
59
  } from '@wise/dynamic-flow-client-internal';
60
60
 
61
- const messages = getLocalisedMessages(locale, [componentTranslations, dynamicFlowsTranslations]);
61
+ const messages = getLocalisedMessages(locale, [dsTranslations, dfTranslations]);
62
62
 
63
63
  return (
64
64
  <Provider i18n={{ locale, messages }}>
@@ -91,17 +91,17 @@ You'll need to merge the '@transferwise/components' translations with the '@wise
91
91
  import {
92
92
  Provider,
93
93
  SnackbarProvider,
94
- translations as componentTranslations,
94
+ translations as dsTranslations,
95
95
  } from '@transferwise/components';
96
96
  import {
97
97
  DynamicFlow,
98
- translations as dynamicFlowsTranslations,
98
+ translations as dfTranslations,
99
99
  } from '@wise/dynamic-flow-client-internal';
100
100
 
101
101
  // create your messages object
102
102
  const messages: Record<string, string> = {
103
- ...(componentTranslations[lang] || componentTranslations[lang.replace('-', '_')] || componentTranslations[lang.substring(0, 2)] || {}),
104
- ...(translations[lang] || translations[lang.replace('-', '_')] || translations[lang.substring(0, 2)] || {}),
103
+ ...(dsTranslations[lang] || dsTranslations[lang.replace('-', '_')] || dsTranslations[lang.substring(0, 2)] || {}),
104
+ ...(dfTranslations[lang] || dfTranslations[lang.replace('-', '_')] || dfTranslations[lang.substring(0, 2)] || {}),
105
105
  }
106
106
 
107
107
  return (
@@ -203,13 +203,13 @@ const mockCustomFetch = (input, init) => Promise.resolve(new Response(JSON.strin
203
203
 
204
204
  ### Telemetry
205
205
 
206
- The `DynamicFlow` component accepts two optional props: `onEvent` and `onLog` which can be used to track and log.
206
+ The `DynamicFlow` component accepts two optional props: `onAnalytics` and `onLog` which can be used to track and log.
207
207
 
208
208
  In the example below we send tracking events to Mixpanel and logging events to Rollbar.
209
209
 
210
210
  ```tsx
211
211
  <DynamicFlow
212
- onEvent={(event, props) => mixpanel.track(event, props)}
212
+ onAnalytics={(event, props) => mixpanel.track(event, props)}
213
213
  onLog={(level, message, extra) => Rollbar[level](message, extra)}
214
214
  />
215
215
  ```
@@ -217,7 +217,7 @@ In the example below we send tracking events to Mixpanel and logging events to R
217
217
  Alternatively, you can log to the browser console:
218
218
 
219
219
  ```ts
220
- onEvent={(event, props) => console.log(event, props)}
220
+ onAnalytics={(event, props) => console.log(event, props)}
221
221
  onLog={(level, message, extra) => {
222
222
  const levelToConsole = {
223
223
  critical: console.error,
@@ -230,56 +230,36 @@ onLog={(level, message, extra) => {
230
230
  }}
231
231
  ```
232
232
 
233
- ### Loader configuration
233
+ ## DynamicForm Component
234
234
 
235
- By default, DF will display a loading animation (The `Loader` component from Neptune) when the first step is loading. It will not display it during refresh-on-change or while submitting forms.
236
-
237
- You can change the defaults by passing a `loaderConfig` prop:
238
-
239
- ```ts
240
- type LoaderConfig = {
241
- size?: `xs | sm | md | lg | xl`;
242
- initial?: boolean;
243
- submission?: boolean;
244
- };
245
- ```
246
-
247
- | property | type | notes | default |
248
- | ------------ | ------- | ------------------------------------------------------------------------------ | ------- |
249
- | `size` | string | The size of the Loader component. | `xl` |
250
- | `initial` | boolean | Whether or not to display the Loader component while loading the initial step. | true |
251
- | `submission` | boolean | Whether or not to display the Loader component during form submissions. | false |
252
-
253
- ## DynamicFragment
254
-
255
- If you need to get the submittable data outside of a submission, you can use the `DynamicFragment` component. This will give you access to two methods: `getValue` and `validate` via a [ref](https://react.dev/reference/react/useRef). For example:
235
+ If you need to get the submittable data outside of a submission, you can use the `DynamicForm` component. This will give you access to two methods: `getValue` and `validate` via a [ref](https://react.dev/reference/react/useRef). For example:
256
236
 
257
237
  ```tsx
258
- import type { DynamicFragmentController } from '@wise/dynamic-flow-client-internal';
259
- import { DynamicFragment } from '@wise/dynamic-flow-client-internal';
238
+ import type { DynamicFormController } from '@wise/dynamic-flow-client-internal';
239
+ import { DynamicForm } from '@wise/dynamic-flow-client-internal';
260
240
  import { useRef } from 'react';
261
241
 
262
242
  function DynamicFlowWithRef() {
263
- const ref = useRef<DynamicFragmentController>(null);
243
+ const ref = useRef<DynamicFormController>(null);
264
244
 
265
245
  return (
266
- <>
267
- <DynamicFragment
246
+ <div>
247
+ <DynamicForm
268
248
  ref={ref}
269
249
  flowId={"id"}
270
250
  customFetch={fetch}
271
- initialStep={selectedStep}
272
- onValueChange={async () => {
273
- const value = (await ref.current?.getValue()) ?? null);
251
+ initialStep={myStep}
252
+ onValueChange={ async () => {
253
+ const value = (await ref.current?.getValue()) ?? null;
274
254
  console.log('Value changed to', JSON.stringify(value));
275
255
  }}
276
256
  onCompletion={(error) => console.error(error)}
277
257
  onCompletion={() => console.log('Completed')}
278
258
  />
279
259
  <Button
280
- onClick={async () => {
260
+ onClick={ async () => {
281
261
  // This will get the value, whether or not the form is valid
282
- const value = (await ref.current?.getValue()) ?? null);
262
+ const value = (await ref.current?.getValue()) ?? null;
283
263
 
284
264
  // This will trigger validation of the form and show any validation messages to the user.
285
265
  // The response is a boolean indicating whether or not the form is valid.
@@ -290,7 +270,7 @@ function DynamicFlowWithRef() {
290
270
  >
291
271
  Log value
292
272
  </Button>
293
- </>
273
+ </div>
294
274
  );
295
275
  }
296
276
  ```
package/build/main.js CHANGED
@@ -2688,11 +2688,13 @@ var import_components_theming = require("@wise/components-theming");
2688
2688
  var import_react16 = require("react");
2689
2689
  var ThemeRequiredEventName = "Theme Required";
2690
2690
  var useCustomTheme = (theme, trackEvent) => {
2691
- const previousThemeHookValue = (0, import_components_theming.useTheme)();
2692
- const previousTheme = (0, import_react16.useMemo)(() => previousThemeHookValue.theme, []);
2691
+ const theming = (0, import_components_theming.useTheme)();
2692
+ const previousTheme = (0, import_react16.useMemo)(() => theming.theme, []);
2693
2693
  (0, import_react16.useEffect)(() => {
2694
+ theming.setTheme(theme);
2694
2695
  trackEvent(ThemeRequiredEventName, { theme });
2695
2696
  return theme !== previousTheme ? () => {
2697
+ theming.setTheme(previousTheme);
2696
2698
  trackEvent(ThemeRequiredEventName, { theme: previousTheme });
2697
2699
  } : () => {
2698
2700
  };
@@ -3729,10 +3731,25 @@ var getWiseRenderers = () => [
3729
3731
  ReviewLegacyRenderer_default
3730
3732
  ];
3731
3733
 
3734
+ // src/dynamicFlow/messages.ts
3735
+ var import_react_intl26 = require("react-intl");
3736
+ var messages_default = (0, import_react_intl26.defineMessages)({
3737
+ copied: {
3738
+ id: "df.wise.CopyFeedback.copy",
3739
+ defaultMessage: "Copied to clipboard",
3740
+ description: "Appears in a snackbar when the copy operation succeeds."
3741
+ },
3742
+ copyFailed: {
3743
+ id: "df.wise.CopyFeedback.copyFailed",
3744
+ defaultMessage: "Failed to copy to clipboard",
3745
+ description: "Appears in a snackbar when the copy operation fails."
3746
+ }
3747
+ });
3748
+
3732
3749
  // src/dynamicFlow/telemetry/app-version.ts
3733
3750
  var appVersion = (
3734
3751
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
3735
- typeof process !== "undefined" ? "4.38.0" : "0.0.0"
3752
+ typeof process !== "undefined" ? "5.0.0" : "0.0.0"
3736
3753
  );
3737
3754
 
3738
3755
  // src/dynamicFlow/telemetry/getLogEvent.ts
@@ -3758,34 +3775,13 @@ var logToRollbar = (level, message, extra) => {
3758
3775
  };
3759
3776
 
3760
3777
  // src/dynamicFlow/telemetry/getTrackEvent.ts
3761
- var import_components_theming2 = require("@wise/components-theming");
3762
- var getTrackEvent = (onEvent, onAnalytics, onThemeChange) => (name, properties) => {
3778
+ var getTrackEvent = (onEvent, onAnalytics) => (name, properties) => {
3763
3779
  onEvent == null ? void 0 : onEvent(name, properties);
3764
- if (name.includes(ThemeRequiredEventName)) {
3765
- const { theme } = properties != null ? properties : { theme: "personal" };
3766
- if (theme && (0, import_components_theming2.isThemeModern)(theme)) {
3767
- onThemeChange == null ? void 0 : onThemeChange(theme);
3768
- }
3769
- } else {
3780
+ if (!name.includes(ThemeRequiredEventName)) {
3770
3781
  onAnalytics == null ? void 0 : onAnalytics(name, properties);
3771
3782
  }
3772
3783
  };
3773
3784
 
3774
- // src/dynamicFlow/messages.ts
3775
- var import_react_intl26 = require("react-intl");
3776
- var messages_default = (0, import_react_intl26.defineMessages)({
3777
- copied: {
3778
- id: "df.wise.CopyFeedback.copy",
3779
- defaultMessage: "Copied to clipboard",
3780
- description: "Appears in a snackbar when the copy operation succeeds."
3781
- },
3782
- copyFailed: {
3783
- id: "df.wise.CopyFeedback.copyFailed",
3784
- defaultMessage: "Failed to copy to clipboard",
3785
- description: "Appears in a snackbar when the copy operation fails."
3786
- }
3787
- });
3788
-
3789
3785
  // src/dynamicFlow/DynamicFlow.tsx
3790
3786
  var import_jsx_runtime82 = require("react/jsx-runtime");
3791
3787
  var wiseRenderers = getWiseRenderers();
@@ -3799,18 +3795,14 @@ function DynamicFlow(props) {
3799
3795
  onAnalytics,
3800
3796
  onEvent,
3801
3797
  onLog,
3802
- onLink = openLinkInNewTab,
3803
- onThemeChange
3798
+ onLink = openLinkInNewTab
3804
3799
  } = props;
3805
3800
  const { formatMessage } = (0, import_react_intl27.useIntl)();
3806
3801
  const createSnackBar = useSnackBarIfAvailable();
3807
3802
  const httpClient = useWiseHttpClient(customFetch);
3808
3803
  const mergedRenderers = (0, import_react19.useMemo)(() => [...renderers != null ? renderers : [], ...wiseRenderers], [renderers]);
3809
3804
  const logEvent = (0, import_react19.useMemo)(() => getLogEvent(onLog), [onLog]);
3810
- const trackEvent = (0, import_react19.useMemo)(
3811
- () => getTrackEvent(onEvent, onAnalytics, onThemeChange),
3812
- [onEvent, onAnalytics, onThemeChange]
3813
- );
3805
+ const trackEvent = (0, import_react19.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
3814
3806
  const onCopy = (copiedContent) => {
3815
3807
  if (copiedContent) {
3816
3808
  createSnackBar({ text: formatMessage(messages_default.copied) });
@@ -3839,18 +3831,14 @@ var DynamicForm = (0, import_react19.forwardRef)(function DynamicForm2(props, re
3839
3831
  onAnalytics,
3840
3832
  onEvent,
3841
3833
  onLog,
3842
- onLink = openLinkInNewTab,
3843
- onThemeChange
3834
+ onLink = openLinkInNewTab
3844
3835
  } = props;
3845
3836
  const { formatMessage } = (0, import_react_intl27.useIntl)();
3846
3837
  const createSnackBar = useSnackBarIfAvailable();
3847
3838
  const httpClient = useWiseHttpClient(customFetch);
3848
3839
  const mergedRenderers = (0, import_react19.useMemo)(() => [...renderers != null ? renderers : [], ...wiseRenderers], [renderers]);
3849
3840
  const logEvent = (0, import_react19.useMemo)(() => getLogEvent(onLog), [onLog]);
3850
- const trackEvent = (0, import_react19.useMemo)(
3851
- () => getTrackEvent(onEvent, onAnalytics, onThemeChange),
3852
- [onEvent, onAnalytics, onThemeChange]
3853
- );
3841
+ const trackEvent = (0, import_react19.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
3854
3842
  const onCopy = (copiedContent) => {
3855
3843
  if (copiedContent) {
3856
3844
  createSnackBar({ text: formatMessage(messages_default.copied) });
package/build/main.mjs CHANGED
@@ -2676,11 +2676,13 @@ import { useTheme } from "@wise/components-theming";
2676
2676
  import { useEffect as useEffect8, useMemo } from "react";
2677
2677
  var ThemeRequiredEventName = "Theme Required";
2678
2678
  var useCustomTheme = (theme, trackEvent) => {
2679
- const previousThemeHookValue = useTheme();
2680
- const previousTheme = useMemo(() => previousThemeHookValue.theme, []);
2679
+ const theming = useTheme();
2680
+ const previousTheme = useMemo(() => theming.theme, []);
2681
2681
  useEffect8(() => {
2682
+ theming.setTheme(theme);
2682
2683
  trackEvent(ThemeRequiredEventName, { theme });
2683
2684
  return theme !== previousTheme ? () => {
2685
+ theming.setTheme(previousTheme);
2684
2686
  trackEvent(ThemeRequiredEventName, { theme: previousTheme });
2685
2687
  } : () => {
2686
2688
  };
@@ -3723,10 +3725,25 @@ var getWiseRenderers = () => [
3723
3725
  ReviewLegacyRenderer_default
3724
3726
  ];
3725
3727
 
3728
+ // src/dynamicFlow/messages.ts
3729
+ import { defineMessages as defineMessages12 } from "react-intl";
3730
+ var messages_default = defineMessages12({
3731
+ copied: {
3732
+ id: "df.wise.CopyFeedback.copy",
3733
+ defaultMessage: "Copied to clipboard",
3734
+ description: "Appears in a snackbar when the copy operation succeeds."
3735
+ },
3736
+ copyFailed: {
3737
+ id: "df.wise.CopyFeedback.copyFailed",
3738
+ defaultMessage: "Failed to copy to clipboard",
3739
+ description: "Appears in a snackbar when the copy operation fails."
3740
+ }
3741
+ });
3742
+
3726
3743
  // src/dynamicFlow/telemetry/app-version.ts
3727
3744
  var appVersion = (
3728
3745
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
3729
- typeof process !== "undefined" ? "4.38.0" : "0.0.0"
3746
+ typeof process !== "undefined" ? "5.0.0" : "0.0.0"
3730
3747
  );
3731
3748
 
3732
3749
  // src/dynamicFlow/telemetry/getLogEvent.ts
@@ -3752,34 +3769,13 @@ var logToRollbar = (level, message, extra) => {
3752
3769
  };
3753
3770
 
3754
3771
  // src/dynamicFlow/telemetry/getTrackEvent.ts
3755
- import { isThemeModern } from "@wise/components-theming";
3756
- var getTrackEvent = (onEvent, onAnalytics, onThemeChange) => (name, properties) => {
3772
+ var getTrackEvent = (onEvent, onAnalytics) => (name, properties) => {
3757
3773
  onEvent == null ? void 0 : onEvent(name, properties);
3758
- if (name.includes(ThemeRequiredEventName)) {
3759
- const { theme } = properties != null ? properties : { theme: "personal" };
3760
- if (theme && isThemeModern(theme)) {
3761
- onThemeChange == null ? void 0 : onThemeChange(theme);
3762
- }
3763
- } else {
3774
+ if (!name.includes(ThemeRequiredEventName)) {
3764
3775
  onAnalytics == null ? void 0 : onAnalytics(name, properties);
3765
3776
  }
3766
3777
  };
3767
3778
 
3768
- // src/dynamicFlow/messages.ts
3769
- import { defineMessages as defineMessages12 } from "react-intl";
3770
- var messages_default = defineMessages12({
3771
- copied: {
3772
- id: "df.wise.CopyFeedback.copy",
3773
- defaultMessage: "Copied to clipboard",
3774
- description: "Appears in a snackbar when the copy operation succeeds."
3775
- },
3776
- copyFailed: {
3777
- id: "df.wise.CopyFeedback.copyFailed",
3778
- defaultMessage: "Failed to copy to clipboard",
3779
- description: "Appears in a snackbar when the copy operation fails."
3780
- }
3781
- });
3782
-
3783
3779
  // src/dynamicFlow/DynamicFlow.tsx
3784
3780
  import { jsx as jsx82 } from "react/jsx-runtime";
3785
3781
  var wiseRenderers = getWiseRenderers();
@@ -3793,18 +3789,14 @@ function DynamicFlow(props) {
3793
3789
  onAnalytics,
3794
3790
  onEvent,
3795
3791
  onLog,
3796
- onLink = openLinkInNewTab,
3797
- onThemeChange
3792
+ onLink = openLinkInNewTab
3798
3793
  } = props;
3799
3794
  const { formatMessage } = useIntl15();
3800
3795
  const createSnackBar = useSnackBarIfAvailable();
3801
3796
  const httpClient = useWiseHttpClient(customFetch);
3802
3797
  const mergedRenderers = useMemo2(() => [...renderers != null ? renderers : [], ...wiseRenderers], [renderers]);
3803
3798
  const logEvent = useMemo2(() => getLogEvent(onLog), [onLog]);
3804
- const trackEvent = useMemo2(
3805
- () => getTrackEvent(onEvent, onAnalytics, onThemeChange),
3806
- [onEvent, onAnalytics, onThemeChange]
3807
- );
3799
+ const trackEvent = useMemo2(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
3808
3800
  const onCopy = (copiedContent) => {
3809
3801
  if (copiedContent) {
3810
3802
  createSnackBar({ text: formatMessage(messages_default.copied) });
@@ -3833,18 +3825,14 @@ var DynamicForm = forwardRef(function DynamicForm2(props, ref) {
3833
3825
  onAnalytics,
3834
3826
  onEvent,
3835
3827
  onLog,
3836
- onLink = openLinkInNewTab,
3837
- onThemeChange
3828
+ onLink = openLinkInNewTab
3838
3829
  } = props;
3839
3830
  const { formatMessage } = useIntl15();
3840
3831
  const createSnackBar = useSnackBarIfAvailable();
3841
3832
  const httpClient = useWiseHttpClient(customFetch);
3842
3833
  const mergedRenderers = useMemo2(() => [...renderers != null ? renderers : [], ...wiseRenderers], [renderers]);
3843
3834
  const logEvent = useMemo2(() => getLogEvent(onLog), [onLog]);
3844
- const trackEvent = useMemo2(
3845
- () => getTrackEvent(onEvent, onAnalytics, onThemeChange),
3846
- [onEvent, onAnalytics, onThemeChange]
3847
- );
3835
+ const trackEvent = useMemo2(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
3848
3836
  const onCopy = (copiedContent) => {
3849
3837
  if (copiedContent) {
3850
3838
  createSnackBar({ text: formatMessage(messages_default.copied) });
@@ -1,8 +1,6 @@
1
1
  import type { ForwardRefExoticComponent, RefAttributes } from 'react';
2
2
  import type { DynamicFlowProps as DynamicFlowCoreProps, DynamicFormController } from '@wise/dynamic-flow-client';
3
- import { Theming } from '@wise/components-theming';
4
3
  type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
5
- export type OnThemeChange = (theme: Theming['theme']) => void;
6
4
  type Prettify<T> = {
7
5
  [K in keyof T]: T[K];
8
6
  } & {};
@@ -14,7 +12,6 @@ export type DynamicFlowProps = Prettify<MakeOptional<Omit<DynamicFlowCoreProps,
14
12
  displayStepTitle?: boolean;
15
13
  customFetch?: DynamicFlowCoreProps['httpClient'];
16
14
  onAnalytics?: DynamicFlowCoreProps['onEvent'];
17
- onThemeChange?: OnThemeChange;
18
15
  }>;
19
16
  export declare function DynamicFlow(props: DynamicFlowProps): import("react/jsx-runtime").JSX.Element;
20
17
  export type DynamicFormProps = Omit<DynamicFlowProps, 'onCompletion'> & {
@@ -1,5 +1,4 @@
1
1
  import { DynamicFlowProps } from '@wise/dynamic-flow-client';
2
- import { OnThemeChange } from '../DynamicFlow';
3
2
  type OnEvent = DynamicFlowProps['onEvent'];
4
- export declare const getTrackEvent: (onEvent: OnEvent, onAnalytics: OnEvent, onThemeChange: OnThemeChange | undefined) => OnEvent;
3
+ export declare const getTrackEvent: (onEvent: OnEvent, onAnalytics: OnEvent) => OnEvent;
5
4
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-client-internal",
3
- "version": "5.0.0-experimental-c979470",
3
+ "version": "5.0.1-exp-css-28d60ea",
4
4
  "description": "Dynamic Flow web client for Wise",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./build/main.js",
@@ -16,7 +16,8 @@
16
16
  "import": "./build/main.mjs",
17
17
  "require": "./build/main.js"
18
18
  },
19
- "./build/main.css": "./build/main.css"
19
+ "./build/main.css": "./build/main.css",
20
+ "./main.css": "./build/main.css"
20
21
  },
21
22
  "sideEffects": [
22
23
  "*.css"
@@ -54,10 +55,10 @@
54
55
  "@types/react": "18.3.26",
55
56
  "@types/react-dom": "18.3.7",
56
57
  "@wise/art": "2.24.7",
57
- "@wise/components-theming": "^1.7.0",
58
+ "@wise/components-theming": "^1.8.0",
58
59
  "babel-jest": "30.2.0",
59
60
  "currency-flags": "4.0.7",
60
- "esbuild": "0.25.9",
61
+ "esbuild": "0.27.0",
61
62
  "eslint-plugin-storybook": "9.1.16",
62
63
  "framer-motion": "^12.23.24",
63
64
  "jest": "30.2.0",
@@ -79,7 +80,7 @@
79
80
  "tsx": "4.20.6",
80
81
  "typescript": "5.9.3",
81
82
  "@wise/dynamic-flow-fixtures": "0.0.1",
82
- "@wise/dynamic-flow-types": "4.0.0-experimental-c979470",
83
+ "@wise/dynamic-flow-types": "4.0.0",
83
84
  "@wise/dynamic-flow-renderers": "0.0.0"
84
85
  },
85
86
  "peerDependencies": {
@@ -88,14 +89,14 @@
88
89
  "@transferwise/icons": "^3 || ^4",
89
90
  "@transferwise/neptune-css": "^14.22.0",
90
91
  "@wise/art": "^2.19.0",
91
- "@wise/components-theming": "^0.7.1 || ^1",
92
+ "@wise/components-theming": "^1.8.0",
92
93
  "react": "^18",
93
94
  "react-dom": "^18",
94
95
  "react-intl": "^6"
95
96
  },
96
97
  "dependencies": {
97
- "@wise/dynamic-flow-types": "4.0.0-experimental-c979470",
98
- "@wise/dynamic-flow-client": "5.0.0-experimental-c979470"
98
+ "@wise/dynamic-flow-client": "5.0.1-exp-css-28d60ea",
99
+ "@wise/dynamic-flow-types": "4.0.0"
99
100
  },
100
101
  "scripts": {
101
102
  "dev": "pnpm build:visual-tests && storybook dev -p 3005",