@wise/dynamic-flow-client 4.7.1 → 4.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/i18n/nl.json +5 -5
- package/build/main.css +37 -13
- package/build/main.js +46 -0
- package/build/main.mjs +46 -0
- package/build/types/revamp/domain/components/TabsComponent.d.ts +11 -0
- package/build/types/revamp/domain/mappers/layout/tabsLayoutToComponent.d.ts +5 -0
- package/build/types/revamp/domain/types.d.ts +2 -1
- package/build/types/revamp/renderers/mappers/tabsComponentToProps.d.ts +4 -0
- package/package.json +18 -18
package/build/i18n/nl.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"dynamicFlows.ArraySchema.minItemsError": "Voeg minimaal {minItems} toe.",
|
|
7
7
|
"dynamicFlows.ArraySchema.removeItem": "Verwijderen",
|
|
8
8
|
"dynamicFlows.CameraCapture.CameraConnectionIssue.action": "Opnieuw proberen",
|
|
9
|
-
"dynamicFlows.CameraCapture.CameraConnectionIssue.paragraph": "Controleer of de camera verbonden is en probeer opnieuw.",
|
|
9
|
+
"dynamicFlows.CameraCapture.CameraConnectionIssue.paragraph": "Controleer of de camera verbonden is en probeer het opnieuw.",
|
|
10
10
|
"dynamicFlows.CameraCapture.CameraConnectionIssue.title": "We hebben geen toegang tot je camera",
|
|
11
11
|
"dynamicFlows.CameraCapture.CameraNotSupported.paragraph": "Je browser ondersteunt geen camera's. Probeer een andere browser of apparaat of download onze mobiele app.",
|
|
12
12
|
"dynamicFlows.CameraCapture.CameraNotSupported.title": "Camera wordt niet ondersteund",
|
|
@@ -29,22 +29,22 @@
|
|
|
29
29
|
"dynamicFlows.ControlFeedback.type": "Onjuist type",
|
|
30
30
|
"dynamicFlows.DefaultErrorMessages.required": "Vul dit veld in.",
|
|
31
31
|
"dynamicFlows.DynamicExternal.retryTitle": "Venster opnieuw openen",
|
|
32
|
-
"dynamicFlows.DynamicParagraph.copied": "Naar klembord
|
|
32
|
+
"dynamicFlows.DynamicParagraph.copied": "Naar klembord gekopieerd",
|
|
33
33
|
"dynamicFlows.DynamicParagraph.copy": "Kopiëren",
|
|
34
34
|
"dynamicFlows.ErrorBoundary.errorAlert": "Er is iets misgegaan.",
|
|
35
35
|
"dynamicFlows.ErrorBoundary.retry": "Opnieuw proberen",
|
|
36
36
|
"dynamicFlows.ExternalConfirmation.cancel": "Annuleren",
|
|
37
37
|
"dynamicFlows.ExternalConfirmation.description": "Bevestig dat je **{origin}** in een nieuw browsertabblad wilt openen.",
|
|
38
38
|
"dynamicFlows.ExternalConfirmation.open": "In nieuw tabblad openen",
|
|
39
|
-
"dynamicFlows.ExternalConfirmation.title": "
|
|
39
|
+
"dynamicFlows.ExternalConfirmation.title": "Bevestigen",
|
|
40
40
|
"dynamicFlows.FileUploadSchema.maxFileSizeError": "Het bestand is te groot. Upload een kleiner bestand.",
|
|
41
41
|
"dynamicFlows.FileUploadSchema.wrongFileTypeError": "De bestandsindeling wordt niet ondersteund. Upload een ander bestand.",
|
|
42
42
|
"dynamicFlows.Help.ariaLabel": "Klik hier voor meer informatie.",
|
|
43
43
|
"dynamicFlows.MultiSelect.summary": "{first} en nog {count}",
|
|
44
44
|
"dynamicFlows.MultipleFileUploadSchema.maxFileSizeError": "Het bestand is te groot. Upload een kleiner bestand.",
|
|
45
45
|
"dynamicFlows.MultipleFileUploadSchema.maxItemsError": "Upload {maxItems} of minder bestanden.",
|
|
46
|
-
"dynamicFlows.MultipleFileUploadSchema.minItemsError": "Upload
|
|
47
|
-
"dynamicFlows.PersistAsyncSchema.genericError": "Er
|
|
46
|
+
"dynamicFlows.MultipleFileUploadSchema.minItemsError": "Upload minimaal {minItems} bestand(en).",
|
|
47
|
+
"dynamicFlows.PersistAsyncSchema.genericError": "Er is iets misgegaan, probeer het opnieuw.",
|
|
48
48
|
"dynamicFlows.ReadOnlySchema.no": "Nee",
|
|
49
49
|
"dynamicFlows.ReadOnlySchema.yes": "Ja",
|
|
50
50
|
"dynamicFlows.SearchLayout.loading": "Laden..."
|
package/build/main.css
CHANGED
|
@@ -287,39 +287,63 @@ button.df-back-btn {
|
|
|
287
287
|
height: auto;
|
|
288
288
|
width: 100%;
|
|
289
289
|
}
|
|
290
|
-
/*
|
|
290
|
+
/* wide screens (or default) */
|
|
291
291
|
.df-image.xs img {
|
|
292
|
-
width:
|
|
292
|
+
width: 100px;
|
|
293
293
|
}
|
|
294
294
|
.df-image.sm img {
|
|
295
|
-
width:
|
|
295
|
+
width: 200px;
|
|
296
296
|
}
|
|
297
297
|
.df-image.md img {
|
|
298
|
-
width:
|
|
298
|
+
width: 300px;
|
|
299
299
|
}
|
|
300
300
|
.df-image.lg img {
|
|
301
|
-
width:
|
|
301
|
+
width: 500px;
|
|
302
302
|
}
|
|
303
|
-
|
|
304
|
-
|
|
303
|
+
.df-image.xl img {
|
|
304
|
+
max-width: 600px;
|
|
305
|
+
}
|
|
306
|
+
/* narrow screens */
|
|
307
|
+
@media (width <576px) {
|
|
305
308
|
.df-image.xs img {
|
|
306
|
-
width:
|
|
309
|
+
width: 50px;
|
|
307
310
|
}
|
|
308
311
|
|
|
309
312
|
.df-image.sm img {
|
|
310
|
-
width:
|
|
313
|
+
width: 100px;
|
|
311
314
|
}
|
|
312
315
|
|
|
313
316
|
.df-image.md img {
|
|
314
|
-
width:
|
|
317
|
+
width: 200px;
|
|
315
318
|
}
|
|
316
319
|
|
|
317
320
|
.df-image.lg img {
|
|
318
|
-
width:
|
|
321
|
+
width: 300px;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* This speficies the container for container queries about width.
|
|
326
|
+
* We don't use it by default, but integrations can specify it using the className prop in the DF component.
|
|
327
|
+
*/
|
|
328
|
+
.df-prefer-container-queries {
|
|
329
|
+
container-type: inline-size;
|
|
330
|
+
}
|
|
331
|
+
/* narrow container */
|
|
332
|
+
@container (max-width: 576px) {
|
|
333
|
+
.df-image.xs img {
|
|
334
|
+
width: 50px;
|
|
319
335
|
}
|
|
320
336
|
|
|
321
|
-
.df-image.
|
|
322
|
-
|
|
337
|
+
.df-image.sm img {
|
|
338
|
+
width: 100px;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.df-image.md img {
|
|
342
|
+
width: 200px;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.df-image.lg img {
|
|
346
|
+
width: 300px;
|
|
323
347
|
}
|
|
324
348
|
}
|
|
325
349
|
.df-back-btn .tw-avatar__content {
|
package/build/main.js
CHANGED
|
@@ -1100,6 +1100,8 @@ function getChildren(node) {
|
|
|
1100
1100
|
return node.editableItemProps ? [node.editableItemProps] : [];
|
|
1101
1101
|
case "input-select":
|
|
1102
1102
|
return node.childrenProps ? [node.childrenProps] : [];
|
|
1103
|
+
case "tabs":
|
|
1104
|
+
return node.tabs.flatMap((c) => c.childrenProps);
|
|
1103
1105
|
case "alert":
|
|
1104
1106
|
case "button":
|
|
1105
1107
|
case "input-checkbox":
|
|
@@ -1791,6 +1793,22 @@ var uploadInputComponentToProps = (component, rendererMapperProps) => {
|
|
|
1791
1793
|
});
|
|
1792
1794
|
};
|
|
1793
1795
|
|
|
1796
|
+
// src/revamp/renderers/mappers/tabsComponentToProps.ts
|
|
1797
|
+
var tabsComponentToProps = (component, rendererMapperProps) => {
|
|
1798
|
+
const tabs = component.tabs.map(({ components, tag, title }) => {
|
|
1799
|
+
const childrenProps = components.map((c) => componentToRendererProps(c, rendererMapperProps));
|
|
1800
|
+
return {
|
|
1801
|
+
title,
|
|
1802
|
+
tag,
|
|
1803
|
+
childrenProps,
|
|
1804
|
+
children: childrenProps.map(rendererMapperProps.render)
|
|
1805
|
+
};
|
|
1806
|
+
});
|
|
1807
|
+
return __spreadProps(__spreadValues(__spreadValues({}, pick(component, "uid", "type", "control", "margin")), rendererMapperProps), {
|
|
1808
|
+
tabs
|
|
1809
|
+
});
|
|
1810
|
+
};
|
|
1811
|
+
|
|
1794
1812
|
// src/revamp/renderers/mappers/componentToRendererProps.ts
|
|
1795
1813
|
var componentToRendererProps = (component, rendererMapperProps) => {
|
|
1796
1814
|
if (isHiddenComponent(component)) {
|
|
@@ -1881,6 +1899,8 @@ var getComponentProps = (component, rendererMapperProps) => {
|
|
|
1881
1899
|
return selectInputComponentToProps(component, rendererMapperProps);
|
|
1882
1900
|
case "status-list":
|
|
1883
1901
|
return statusListComponentToProps(component, rendererMapperProps);
|
|
1902
|
+
case "tabs":
|
|
1903
|
+
return tabsComponentToProps(component, rendererMapperProps);
|
|
1884
1904
|
case "text":
|
|
1885
1905
|
return textInputComponentToProps(component, rendererMapperProps);
|
|
1886
1906
|
case "tuple":
|
|
@@ -2868,6 +2888,30 @@ var sectionLayoutToComponent = (uid, { control, title, components, callToAction,
|
|
|
2868
2888
|
});
|
|
2869
2889
|
};
|
|
2870
2890
|
|
|
2891
|
+
// src/revamp/domain/components/TabsComponent.ts
|
|
2892
|
+
var createTabsComponent = (tabsProps) => __spreadProps(__spreadValues({}, tabsProps), {
|
|
2893
|
+
type: "tabs"
|
|
2894
|
+
});
|
|
2895
|
+
|
|
2896
|
+
// src/revamp/domain/mappers/layout/tabsLayoutToComponent.ts
|
|
2897
|
+
var tabsLayoutToComponent = (uid, { control, margin = "md", tabs }, mapperProps, schemaComponents) => createTabsComponent({
|
|
2898
|
+
uid,
|
|
2899
|
+
control,
|
|
2900
|
+
margin,
|
|
2901
|
+
tabs: tabs.map(({ components, tag, title }, tabIndex) => ({
|
|
2902
|
+
tag,
|
|
2903
|
+
title,
|
|
2904
|
+
components: components.map(
|
|
2905
|
+
(c, componentIndex) => mapLayoutToComponent(
|
|
2906
|
+
`${uid}.tabs-${tabIndex}-${componentIndex}`,
|
|
2907
|
+
c,
|
|
2908
|
+
mapperProps,
|
|
2909
|
+
schemaComponents
|
|
2910
|
+
)
|
|
2911
|
+
)
|
|
2912
|
+
}))
|
|
2913
|
+
});
|
|
2914
|
+
|
|
2871
2915
|
// src/revamp/domain/mappers/mapLayoutToComponent.ts
|
|
2872
2916
|
var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
2873
2917
|
switch (layout.type) {
|
|
@@ -2911,6 +2955,8 @@ var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
|
2911
2955
|
return sectionLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2912
2956
|
case "status-list":
|
|
2913
2957
|
return statusListLayoutToComponent(uid, layout, mapperProps);
|
|
2958
|
+
case "tabs":
|
|
2959
|
+
return tabsLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2914
2960
|
default:
|
|
2915
2961
|
throw new Error(`Invalid layout type in ${JSON.stringify(layout)}`);
|
|
2916
2962
|
}
|
package/build/main.mjs
CHANGED
|
@@ -1057,6 +1057,8 @@ function getChildren(node) {
|
|
|
1057
1057
|
return node.editableItemProps ? [node.editableItemProps] : [];
|
|
1058
1058
|
case "input-select":
|
|
1059
1059
|
return node.childrenProps ? [node.childrenProps] : [];
|
|
1060
|
+
case "tabs":
|
|
1061
|
+
return node.tabs.flatMap((c) => c.childrenProps);
|
|
1060
1062
|
case "alert":
|
|
1061
1063
|
case "button":
|
|
1062
1064
|
case "input-checkbox":
|
|
@@ -1748,6 +1750,22 @@ var uploadInputComponentToProps = (component, rendererMapperProps) => {
|
|
|
1748
1750
|
});
|
|
1749
1751
|
};
|
|
1750
1752
|
|
|
1753
|
+
// src/revamp/renderers/mappers/tabsComponentToProps.ts
|
|
1754
|
+
var tabsComponentToProps = (component, rendererMapperProps) => {
|
|
1755
|
+
const tabs = component.tabs.map(({ components, tag, title }) => {
|
|
1756
|
+
const childrenProps = components.map((c) => componentToRendererProps(c, rendererMapperProps));
|
|
1757
|
+
return {
|
|
1758
|
+
title,
|
|
1759
|
+
tag,
|
|
1760
|
+
childrenProps,
|
|
1761
|
+
children: childrenProps.map(rendererMapperProps.render)
|
|
1762
|
+
};
|
|
1763
|
+
});
|
|
1764
|
+
return __spreadProps(__spreadValues(__spreadValues({}, pick(component, "uid", "type", "control", "margin")), rendererMapperProps), {
|
|
1765
|
+
tabs
|
|
1766
|
+
});
|
|
1767
|
+
};
|
|
1768
|
+
|
|
1751
1769
|
// src/revamp/renderers/mappers/componentToRendererProps.ts
|
|
1752
1770
|
var componentToRendererProps = (component, rendererMapperProps) => {
|
|
1753
1771
|
if (isHiddenComponent(component)) {
|
|
@@ -1838,6 +1856,8 @@ var getComponentProps = (component, rendererMapperProps) => {
|
|
|
1838
1856
|
return selectInputComponentToProps(component, rendererMapperProps);
|
|
1839
1857
|
case "status-list":
|
|
1840
1858
|
return statusListComponentToProps(component, rendererMapperProps);
|
|
1859
|
+
case "tabs":
|
|
1860
|
+
return tabsComponentToProps(component, rendererMapperProps);
|
|
1841
1861
|
case "text":
|
|
1842
1862
|
return textInputComponentToProps(component, rendererMapperProps);
|
|
1843
1863
|
case "tuple":
|
|
@@ -2825,6 +2845,30 @@ var sectionLayoutToComponent = (uid, { control, title, components, callToAction,
|
|
|
2825
2845
|
});
|
|
2826
2846
|
};
|
|
2827
2847
|
|
|
2848
|
+
// src/revamp/domain/components/TabsComponent.ts
|
|
2849
|
+
var createTabsComponent = (tabsProps) => __spreadProps(__spreadValues({}, tabsProps), {
|
|
2850
|
+
type: "tabs"
|
|
2851
|
+
});
|
|
2852
|
+
|
|
2853
|
+
// src/revamp/domain/mappers/layout/tabsLayoutToComponent.ts
|
|
2854
|
+
var tabsLayoutToComponent = (uid, { control, margin = "md", tabs }, mapperProps, schemaComponents) => createTabsComponent({
|
|
2855
|
+
uid,
|
|
2856
|
+
control,
|
|
2857
|
+
margin,
|
|
2858
|
+
tabs: tabs.map(({ components, tag, title }, tabIndex) => ({
|
|
2859
|
+
tag,
|
|
2860
|
+
title,
|
|
2861
|
+
components: components.map(
|
|
2862
|
+
(c, componentIndex) => mapLayoutToComponent(
|
|
2863
|
+
`${uid}.tabs-${tabIndex}-${componentIndex}`,
|
|
2864
|
+
c,
|
|
2865
|
+
mapperProps,
|
|
2866
|
+
schemaComponents
|
|
2867
|
+
)
|
|
2868
|
+
)
|
|
2869
|
+
}))
|
|
2870
|
+
});
|
|
2871
|
+
|
|
2828
2872
|
// src/revamp/domain/mappers/mapLayoutToComponent.ts
|
|
2829
2873
|
var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
2830
2874
|
switch (layout.type) {
|
|
@@ -2868,6 +2912,8 @@ var mapLayoutToComponent = (uid, layout, mapperProps, schemaComponents) => {
|
|
|
2868
2912
|
return sectionLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2869
2913
|
case "status-list":
|
|
2870
2914
|
return statusListLayoutToComponent(uid, layout, mapperProps);
|
|
2915
|
+
case "tabs":
|
|
2916
|
+
return tabsLayoutToComponent(uid, layout, mapperProps, schemaComponents);
|
|
2871
2917
|
default:
|
|
2872
2918
|
throw new Error(`Invalid layout type in ${JSON.stringify(layout)}`);
|
|
2873
2919
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseLayoutComponent, DomainComponent } from '../types';
|
|
2
|
+
export type TabsComponent = BaseLayoutComponent & {
|
|
3
|
+
type: 'tabs';
|
|
4
|
+
tabs: Tab[];
|
|
5
|
+
};
|
|
6
|
+
export type Tab = {
|
|
7
|
+
title: string;
|
|
8
|
+
components: DomainComponent[];
|
|
9
|
+
tag?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const createTabsComponent: (tabsProps: Pick<TabsComponent, "uid" | "control" | "margin" | "tabs">) => TabsComponent;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TabsLayout } from '@wise/dynamic-flow-types/build/next';
|
|
2
|
+
import { TabsComponent } from '../../components/TabsComponent';
|
|
3
|
+
import { MapperProps } from '../schema/types';
|
|
4
|
+
import { SchemaComponent } from '../../types';
|
|
5
|
+
export declare const tabsLayoutToComponent: (uid: string, { control, margin, tabs }: TabsLayout, mapperProps: MapperProps, schemaComponents: SchemaComponent[]) => TabsComponent;
|
|
@@ -38,9 +38,10 @@ import type { StepDomainComponent } from './components/step/StepDomainComponent'
|
|
|
38
38
|
import type { TextInputComponent } from './components/TextInputComponent';
|
|
39
39
|
import type { TupleComponent } from './components/TupleComponent';
|
|
40
40
|
import type { UploadInputComponent } from './components/UploadInputComponent';
|
|
41
|
+
import { TabsComponent } from './components/TabsComponent';
|
|
41
42
|
export type DomainComponent = SchemaComponent | LayoutComponent | RootDomainComponent | StepDomainComponent;
|
|
42
43
|
export type SchemaComponent = PersistAsyncComponent | AllOfComponent | BooleanInputComponent | ConstComponent | DateInputComponent | IntegerInputComponent | MultiSelectComponent | MultiUploadInputComponent | NumberInputComponent | ObjectComponent | RepeatableComponent | SelectInputComponent | TextInputComponent | TupleComponent | UploadInputComponent;
|
|
43
|
-
export type LayoutComponent = AlertComponent | BoxComponent | ButtonComponent | ColumnsComponent | ContainerComponent | DecisionComponent | DividerComponent | ExternalConfirmationComponent | FormComponent | HeadingComponent | ImageComponent | InstructionsComponent | ListComponent | LoadingIndicatorComponent | MarkdownComponent | ModalComponent | ModalContentComponent | ParagraphComponent | ReviewComponent | SearchComponent | SectionComponent | StatusListComponent;
|
|
44
|
+
export type LayoutComponent = AlertComponent | BoxComponent | ButtonComponent | ColumnsComponent | ContainerComponent | DecisionComponent | DividerComponent | ExternalConfirmationComponent | FormComponent | HeadingComponent | ImageComponent | InstructionsComponent | ListComponent | LoadingIndicatorComponent | MarkdownComponent | ModalComponent | ModalContentComponent | ParagraphComponent | ReviewComponent | SearchComponent | SectionComponent | StatusListComponent | TabsComponent;
|
|
44
45
|
export type LocalValue = LocalValuePrimitive | LocalValueObject | LocalValueArray;
|
|
45
46
|
export type LocalValuePrimitive = string | number | boolean | File | null;
|
|
46
47
|
export interface LocalValueObject extends Record<string, LocalValuePrimitive | LocalValueObject | LocalValueArray> {
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { TabsRendererProps } from '@wise/dynamic-flow-types/build/renderers';
|
|
2
|
+
import { TabsComponent } from '../../domain/components/TabsComponent';
|
|
3
|
+
import { RendererMapperProps } from './componentToRendererProps';
|
|
4
|
+
export declare const tabsComponentToProps: (component: TabsComponent, rendererMapperProps: RendererMapperProps) => TabsRendererProps;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wise/dynamic-flow-client",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.1",
|
|
4
4
|
"description": "Dynamic Flow web client",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./build/main.js",
|
|
@@ -36,43 +36,43 @@
|
|
|
36
36
|
"@babel/preset-env": "7.27.2",
|
|
37
37
|
"@babel/preset-react": "7.27.1",
|
|
38
38
|
"@babel/preset-typescript": "7.27.1",
|
|
39
|
-
"@chromatic-com/storybook": "4.0.
|
|
39
|
+
"@chromatic-com/storybook": "4.0.1",
|
|
40
40
|
"@formatjs/cli": "^6.7.2",
|
|
41
|
-
"@storybook/addon-a11y": "^9.0.
|
|
42
|
-
"@storybook/addon-docs": "^9.0.
|
|
43
|
-
"@storybook/addon-links": "^9.0.
|
|
44
|
-
"@storybook/react-vite": "9.0.
|
|
41
|
+
"@storybook/addon-a11y": "^9.0.12",
|
|
42
|
+
"@storybook/addon-docs": "^9.0.12",
|
|
43
|
+
"@storybook/addon-links": "^9.0.12",
|
|
44
|
+
"@storybook/react-vite": "9.0.12",
|
|
45
45
|
"@testing-library/dom": "10.4.0",
|
|
46
46
|
"@testing-library/jest-dom": "6.6.3",
|
|
47
47
|
"@testing-library/react": "16.3.0",
|
|
48
48
|
"@testing-library/user-event": "14.6.1",
|
|
49
49
|
"@transferwise/components": "46.98.1",
|
|
50
50
|
"@transferwise/formatting": "^2.13.1",
|
|
51
|
-
"@transferwise/icons": "3.22.
|
|
51
|
+
"@transferwise/icons": "3.22.2",
|
|
52
52
|
"@transferwise/neptune-css": "14.24.4",
|
|
53
53
|
"@types/jest": "29.5.14",
|
|
54
|
-
"@types/node": "22.15.
|
|
54
|
+
"@types/node": "22.15.32",
|
|
55
55
|
"@types/react": "18.3.23",
|
|
56
56
|
"@types/react-dom": "18.3.7",
|
|
57
57
|
"@types/react-intl": "3.0.0",
|
|
58
58
|
"@wise/art": "2.21.2",
|
|
59
59
|
"@wise/components-theming": "^1.6.3",
|
|
60
|
-
"babel-jest": "
|
|
60
|
+
"babel-jest": "30.0.2",
|
|
61
61
|
"esbuild": "0.25.5",
|
|
62
|
-
"eslint-plugin-storybook": "9.0.
|
|
63
|
-
"jest": "
|
|
64
|
-
"jest-environment-jsdom": "
|
|
62
|
+
"eslint-plugin-storybook": "9.0.12",
|
|
63
|
+
"jest": "30.0.2",
|
|
64
|
+
"jest-environment-jsdom": "30.0.2",
|
|
65
65
|
"jest-fetch-mock": "^3.0.3",
|
|
66
|
-
"jest-watch-typeahead": "^
|
|
66
|
+
"jest-watch-typeahead": "^3.0.1",
|
|
67
67
|
"npm-run-all2": "7.0.2",
|
|
68
|
-
"postcss": "^8.5.
|
|
68
|
+
"postcss": "^8.5.6",
|
|
69
69
|
"postcss-cli": "^11.0.1",
|
|
70
|
-
"postcss-import": "^16.1.
|
|
70
|
+
"postcss-import": "^16.1.1",
|
|
71
71
|
"react": "18.3.1",
|
|
72
72
|
"react-dom": "18.3.1",
|
|
73
73
|
"react-intl": "6.8.9",
|
|
74
|
-
"storybook": "^9.0.
|
|
75
|
-
"stylelint": "16.
|
|
74
|
+
"storybook": "^9.0.12",
|
|
75
|
+
"stylelint": "16.21.0",
|
|
76
76
|
"stylelint-config-standard": "36.0.1",
|
|
77
77
|
"stylelint-no-unsupported-browser-features": "8.0.4",
|
|
78
78
|
"stylelint-value-no-unknown-custom-properties": "6.0.1",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"classnames": "2.5.1",
|
|
96
96
|
"react-webcam": "^7.2.0",
|
|
97
97
|
"screenfull": "^5.2.0",
|
|
98
|
-
"@wise/dynamic-flow-types": "3.
|
|
98
|
+
"@wise/dynamic-flow-types": "3.6.1"
|
|
99
99
|
},
|
|
100
100
|
"scripts": {
|
|
101
101
|
"dev": "pnpm build:visual-tests && storybook dev -p 3003",
|