@syntrologie/adapt-overlays 2.11.0 → 2.13.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.
- package/dist/WorkflowWidget.js +3 -3
- package/dist/cdn.d.ts +2 -2
- package/dist/celebrations/__tests__/reduced-motion.test.d.ts +2 -0
- package/dist/celebrations/__tests__/reduced-motion.test.d.ts.map +1 -0
- package/dist/celebrations/__tests__/reduced-motion.test.js +97 -0
- package/dist/celebrations/engine.d.ts.map +1 -1
- package/dist/celebrations/engine.js +4 -0
- package/dist/editor.d.ts +6 -6
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +6 -412
- package/dist/overlay-editor-state.d.ts +41 -0
- package/dist/overlay-editor-state.d.ts.map +1 -0
- package/dist/overlay-editor-state.js +131 -0
- package/dist/overlay-editor-ui.d.ts +9 -0
- package/dist/overlay-editor-ui.d.ts.map +1 -0
- package/dist/overlay-editor-ui.js +306 -0
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.js +1 -1
- package/dist/tour-types.d.ts +1 -1
- package/dist/tour-types.d.ts.map +1 -1
- package/node_modules/@syntro/design-system/dist/tailwind-preset.d.ts.map +1 -1
- package/node_modules/@syntro/design-system/dist/tailwind-preset.js +4 -2
- package/node_modules/@syntro/design-system/dist/tokens/colors.css +1 -1
- package/node_modules/@syntro/design-system/dist/tokens/colors.d.ts +2 -2
- package/node_modules/@syntro/design-system/dist/tokens/colors.js +1 -1
- package/node_modules/@syntro/design-system/dist/tokens/effects.d.ts +54 -0
- package/node_modules/@syntro/design-system/dist/tokens/effects.d.ts.map +1 -1
- package/node_modules/@syntro/design-system/dist/tokens/effects.js +44 -0
- package/node_modules/@syntro/design-system/package.json +2 -2
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/AnchorPicker.js +2 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/components/ElementHighlight.js +2 -4
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.d.ts.map +1 -1
- package/node_modules/@syntrologie/shared-editor-ui/dist/hooks/useTriggerWhenStatus.js +0 -1
- package/node_modules/@syntrologie/shared-editor-ui/package.json +11 -9
- package/package.json +12 -12
|
@@ -53,6 +53,38 @@ export declare const overlay: {
|
|
|
53
53
|
readonly solid: "rgba(0,0,0,0.70)";
|
|
54
54
|
readonly blur: "rgba(0,0,0,0.25)";
|
|
55
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* Product-specific glow shadows not in the Figma shadow scale.
|
|
58
|
+
* Used for validated states, brand highlights, and UI depth cues.
|
|
59
|
+
*/
|
|
60
|
+
export declare const glowShadows: {
|
|
61
|
+
readonly 'glow-green': "0 0 20px -8px rgba(34,197,94,0.3)";
|
|
62
|
+
readonly 'glow-brand': "0 0 25px rgba(212,72,68,0.25)";
|
|
63
|
+
readonly 'glow-brand-sm': "0 0 0 1px rgba(212,72,68,0.15)";
|
|
64
|
+
readonly 'glow-brand-md': "0 0 0 2px rgba(212,72,68,0.3)";
|
|
65
|
+
readonly 'glow-brand-active': "0 0.375rem 0.875rem -0.625rem rgba(212,72,68,0.8)";
|
|
66
|
+
readonly 'glow-brand-tab': "0 0.5rem 1.25rem -0.75rem rgba(212,72,68,0.7)";
|
|
67
|
+
readonly 'glow-brand-nav': "0 0.625rem 1.875rem -1.125rem rgba(212,72,68,0.9)";
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Dark-on-dark elevation shadows for card depth.
|
|
71
|
+
*/
|
|
72
|
+
export declare const elevationShadows: {
|
|
73
|
+
readonly 'elevation-sm': "0 8px 24px -16px rgba(0,0,0,0.6)";
|
|
74
|
+
readonly 'elevation-md': "0 12px 32px -18px rgba(0,0,0,0.6)";
|
|
75
|
+
readonly 'elevation-lg': "0 18px 48px -24px rgba(0,0,0,0.65)";
|
|
76
|
+
readonly 'elevation-card': "0 0.75rem 2rem -1.25rem rgba(0,0,0,0.7)";
|
|
77
|
+
readonly 'elevation-card-soft': "0 0.75rem 2.375rem -0.75rem rgba(0,0,0,0.4)";
|
|
78
|
+
readonly 'elevation-card-tight': "0 0.625rem 1.625rem -1.125rem rgba(0,0,0,0.6)";
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Shared animation duration constants for consistent motion across the UI.
|
|
82
|
+
*/
|
|
83
|
+
export declare const animationDuration: {
|
|
84
|
+
readonly DURATION_SHORT: "150ms";
|
|
85
|
+
readonly DURATION_MEDIUM: "200ms";
|
|
86
|
+
readonly DURATION_LONG: "300ms";
|
|
87
|
+
};
|
|
56
88
|
export declare const effects: {
|
|
57
89
|
readonly shadows: {
|
|
58
90
|
readonly xs: "0 1px 2px 0 rgba(16,24,40,0.05)";
|
|
@@ -80,6 +112,28 @@ export declare const effects: {
|
|
|
80
112
|
readonly solid: "rgba(0,0,0,0.70)";
|
|
81
113
|
readonly blur: "rgba(0,0,0,0.25)";
|
|
82
114
|
};
|
|
115
|
+
readonly glowShadows: {
|
|
116
|
+
readonly 'glow-green': "0 0 20px -8px rgba(34,197,94,0.3)";
|
|
117
|
+
readonly 'glow-brand': "0 0 25px rgba(212,72,68,0.25)";
|
|
118
|
+
readonly 'glow-brand-sm': "0 0 0 1px rgba(212,72,68,0.15)";
|
|
119
|
+
readonly 'glow-brand-md': "0 0 0 2px rgba(212,72,68,0.3)";
|
|
120
|
+
readonly 'glow-brand-active': "0 0.375rem 0.875rem -0.625rem rgba(212,72,68,0.8)";
|
|
121
|
+
readonly 'glow-brand-tab': "0 0.5rem 1.25rem -0.75rem rgba(212,72,68,0.7)";
|
|
122
|
+
readonly 'glow-brand-nav': "0 0.625rem 1.875rem -1.125rem rgba(212,72,68,0.9)";
|
|
123
|
+
};
|
|
124
|
+
readonly elevationShadows: {
|
|
125
|
+
readonly 'elevation-sm': "0 8px 24px -16px rgba(0,0,0,0.6)";
|
|
126
|
+
readonly 'elevation-md': "0 12px 32px -18px rgba(0,0,0,0.6)";
|
|
127
|
+
readonly 'elevation-lg': "0 18px 48px -24px rgba(0,0,0,0.65)";
|
|
128
|
+
readonly 'elevation-card': "0 0.75rem 2rem -1.25rem rgba(0,0,0,0.7)";
|
|
129
|
+
readonly 'elevation-card-soft': "0 0.75rem 2.375rem -0.75rem rgba(0,0,0,0.4)";
|
|
130
|
+
readonly 'elevation-card-tight': "0 0.625rem 1.625rem -1.125rem rgba(0,0,0,0.6)";
|
|
131
|
+
};
|
|
132
|
+
readonly animationDuration: {
|
|
133
|
+
readonly DURATION_SHORT: "150ms";
|
|
134
|
+
readonly DURATION_MEDIUM: "200ms";
|
|
135
|
+
readonly DURATION_LONG: "300ms";
|
|
136
|
+
};
|
|
83
137
|
};
|
|
84
138
|
export default effects;
|
|
85
139
|
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/tokens/effects.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;CAUV,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAMX;;;;GAIG;AACH,eAAO,MAAM,OAAO;;;CAGV,CAAC;AAMX,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/tokens/effects.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;CAUV,CAAC;AAMX;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAMX;;;;GAIG;AACH,eAAO,MAAM,OAAO;;;CAGV,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;CAOnB,CAAC;AAMX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAMX,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQV,CAAC;AAEX,eAAe,OAAO,CAAC"}
|
|
@@ -66,6 +66,47 @@ export const overlay = {
|
|
|
66
66
|
blur: 'rgba(0,0,0,0.25)',
|
|
67
67
|
};
|
|
68
68
|
// ============================================================================
|
|
69
|
+
// PRODUCT GLOW SHADOWS
|
|
70
|
+
// ============================================================================
|
|
71
|
+
/**
|
|
72
|
+
* Product-specific glow shadows not in the Figma shadow scale.
|
|
73
|
+
* Used for validated states, brand highlights, and UI depth cues.
|
|
74
|
+
*/
|
|
75
|
+
export const glowShadows = {
|
|
76
|
+
'glow-green': '0 0 20px -8px rgba(34,197,94,0.3)',
|
|
77
|
+
'glow-brand': '0 0 25px rgba(212,72,68,0.25)',
|
|
78
|
+
'glow-brand-sm': '0 0 0 1px rgba(212,72,68,0.15)',
|
|
79
|
+
'glow-brand-md': '0 0 0 2px rgba(212,72,68,0.3)',
|
|
80
|
+
'glow-brand-active': '0 0.375rem 0.875rem -0.625rem rgba(212,72,68,0.8)',
|
|
81
|
+
'glow-brand-tab': '0 0.5rem 1.25rem -0.75rem rgba(212,72,68,0.7)',
|
|
82
|
+
'glow-brand-nav': '0 0.625rem 1.875rem -1.125rem rgba(212,72,68,0.9)',
|
|
83
|
+
};
|
|
84
|
+
// ============================================================================
|
|
85
|
+
// ELEVATION SHADOWS
|
|
86
|
+
// ============================================================================
|
|
87
|
+
/**
|
|
88
|
+
* Dark-on-dark elevation shadows for card depth.
|
|
89
|
+
*/
|
|
90
|
+
export const elevationShadows = {
|
|
91
|
+
'elevation-sm': '0 8px 24px -16px rgba(0,0,0,0.6)',
|
|
92
|
+
'elevation-md': '0 12px 32px -18px rgba(0,0,0,0.6)',
|
|
93
|
+
'elevation-lg': '0 18px 48px -24px rgba(0,0,0,0.65)',
|
|
94
|
+
'elevation-card': '0 0.75rem 2rem -1.25rem rgba(0,0,0,0.7)',
|
|
95
|
+
'elevation-card-soft': '0 0.75rem 2.375rem -0.75rem rgba(0,0,0,0.4)',
|
|
96
|
+
'elevation-card-tight': '0 0.625rem 1.625rem -1.125rem rgba(0,0,0,0.6)',
|
|
97
|
+
};
|
|
98
|
+
// ============================================================================
|
|
99
|
+
// ANIMATION TIMING CONSTANTS
|
|
100
|
+
// ============================================================================
|
|
101
|
+
/**
|
|
102
|
+
* Shared animation duration constants for consistent motion across the UI.
|
|
103
|
+
*/
|
|
104
|
+
export const animationDuration = {
|
|
105
|
+
DURATION_SHORT: '150ms',
|
|
106
|
+
DURATION_MEDIUM: '200ms',
|
|
107
|
+
DURATION_LONG: '300ms',
|
|
108
|
+
};
|
|
109
|
+
// ============================================================================
|
|
69
110
|
// DEFAULT EXPORT
|
|
70
111
|
// ============================================================================
|
|
71
112
|
export const effects = {
|
|
@@ -73,5 +114,8 @@ export const effects = {
|
|
|
73
114
|
focusRings,
|
|
74
115
|
backdropBlur,
|
|
75
116
|
overlay,
|
|
117
|
+
glowShadows,
|
|
118
|
+
elevationShadows,
|
|
119
|
+
animationDuration,
|
|
76
120
|
};
|
|
77
121
|
export default effects;
|
|
@@ -125,7 +125,7 @@ export function AnchorPicker({ isActive, onPick, onCancel, passthroughClicks = f
|
|
|
125
125
|
boxShadow: '0 0 0 9999px rgba(0, 0, 0, 0.2)',
|
|
126
126
|
pointerEvents: 'none',
|
|
127
127
|
transition: 'all 0.1s ease-out',
|
|
128
|
-
} })), hoveredElement && rect && (_jsxs("div", { style: {
|
|
128
|
+
} })), hoveredElement && rect && (_jsxs("div", { className: "se-text-xs", style: {
|
|
129
129
|
position: 'fixed',
|
|
130
130
|
left: Math.max(8, Math.min(rect.left, window.innerWidth - 320)),
|
|
131
131
|
top: Math.max(8, rect.top - 68),
|
|
@@ -136,11 +136,9 @@ export function AnchorPicker({ isActive, onPick, onCancel, passthroughClicks = f
|
|
|
136
136
|
boxShadow: '0 4px 12px rgba(0, 0, 0, 0.3)',
|
|
137
137
|
zIndex: 1,
|
|
138
138
|
fontFamily: 'monospace',
|
|
139
|
-
fontSize: '13px',
|
|
140
139
|
maxWidth: '300px',
|
|
141
140
|
pointerEvents: 'none',
|
|
142
|
-
}, children: [_jsx("div", { style: {
|
|
143
|
-
fontSize: '12px',
|
|
141
|
+
}, children: [_jsx("div", { className: "se-text-xs", style: {
|
|
144
142
|
textTransform: 'uppercase',
|
|
145
143
|
letterSpacing: '0.05em',
|
|
146
144
|
marginBottom: '4px',
|
|
@@ -47,7 +47,7 @@ export function ElementHighlight({ element, color, bgColor = 'transparent', bord
|
|
|
47
47
|
cursor: onClick ? 'pointer' : 'default',
|
|
48
48
|
transition: 'all 0.05s ease-out',
|
|
49
49
|
boxSizing: 'border-box',
|
|
50
|
-
}, children: displayLabel && (_jsxs("div", { "data-syntro-highlight-label": true, "data-syntro-editor-ui": "highlight-label", style: {
|
|
50
|
+
}, children: displayLabel && (_jsxs("div", { "data-syntro-highlight-label": true, "data-syntro-editor-ui": "highlight-label", className: "se-text-xs", style: {
|
|
51
51
|
position: 'absolute',
|
|
52
52
|
top: '-22px',
|
|
53
53
|
left: 0,
|
|
@@ -55,7 +55,6 @@ export function ElementHighlight({ element, color, bgColor = 'transparent', bord
|
|
|
55
55
|
? `${color.replace(')', ',0.85)').replace('rgb(', 'rgba(')}`
|
|
56
56
|
: color,
|
|
57
57
|
color: '#fff',
|
|
58
|
-
fontSize: showDimensions ? '11px' : '12px',
|
|
59
58
|
fontWeight: 600,
|
|
60
59
|
fontFamily: showDimensions ? 'monospace' : 'inherit',
|
|
61
60
|
padding: '1px 6px',
|
|
@@ -65,7 +64,7 @@ export function ElementHighlight({ element, color, bgColor = 'transparent', bord
|
|
|
65
64
|
alignItems: 'center',
|
|
66
65
|
gap: '6px',
|
|
67
66
|
pointerEvents: 'auto',
|
|
68
|
-
}, children: [labelIcon, displayLabel, showRemove && onRemove && (_jsx("button", { type: "button", "data-syntro-highlight-remove": true, "data-syntro-editor-ui": "highlight-remove", onClick: (e) => {
|
|
67
|
+
}, children: [labelIcon, displayLabel, showRemove && onRemove && (_jsx("button", { type: "button", className: "se-text-xs", "data-syntro-highlight-remove": true, "data-syntro-editor-ui": "highlight-remove", onClick: (e) => {
|
|
69
68
|
e.stopPropagation();
|
|
70
69
|
e.preventDefault();
|
|
71
70
|
onRemove();
|
|
@@ -76,7 +75,6 @@ export function ElementHighlight({ element, color, bgColor = 'transparent', bord
|
|
|
76
75
|
borderRadius: '50%',
|
|
77
76
|
width: '16px',
|
|
78
77
|
height: '16px',
|
|
79
|
-
fontSize: '12px',
|
|
80
78
|
cursor: 'pointer',
|
|
81
79
|
display: 'flex',
|
|
82
80
|
alignItems: 'center',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTriggerWhenStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useTriggerWhenStatus.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG5F;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3C,KAAK,EAAE,OAAO,CAAC;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,IAAI,CAAC;CACV;
|
|
1
|
+
{"version":3,"file":"useTriggerWhenStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useTriggerWhenStatus.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG5F;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,KAAK,CAAC;YACZ,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC3C,KAAK,EAAE,OAAO,CAAC;SAChB,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,IAAI,CAAC;CACV;AAqED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EAAE,GACvB,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,CA0CvC"}
|
|
@@ -15,7 +15,6 @@ import { formatConditionLabel } from '../formatConditionLabel';
|
|
|
15
15
|
* Build a RuntimeLike from the real SynOS.handle.runtime.
|
|
16
16
|
*/
|
|
17
17
|
function getRuntime() {
|
|
18
|
-
// biome-ignore lint: window.SynOS is set by the runtime SDK
|
|
19
18
|
const rt = window.SynOS?.handle?.runtime;
|
|
20
19
|
if (!rt?.evaluateSync)
|
|
21
20
|
return null;
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"test:watch": "vitest"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"css-selector-generator": "
|
|
28
|
+
"css-selector-generator": "3.8.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"lucide-react": ">=0.400.0",
|
|
@@ -33,13 +33,15 @@
|
|
|
33
33
|
"react-dom": ">=18.0.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@testing-library/dom": "
|
|
37
|
-
"@testing-library/react": "
|
|
38
|
-
"@types/react": "
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"react
|
|
42
|
-
"
|
|
43
|
-
"
|
|
36
|
+
"@testing-library/dom": "10.4.1",
|
|
37
|
+
"@testing-library/react": "16.3.2",
|
|
38
|
+
"@types/react": "19.2.14",
|
|
39
|
+
"@types/react-dom": "19.2.3",
|
|
40
|
+
"jsdom": "26.1.0",
|
|
41
|
+
"lucide-react": "0.576.0",
|
|
42
|
+
"react": "19.2.1",
|
|
43
|
+
"react-dom": "19.2.1",
|
|
44
|
+
"typescript": "5.9.3",
|
|
45
|
+
"vitest": "4.0.18"
|
|
44
46
|
}
|
|
45
47
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syntrologie/adapt-overlays",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"description": "Adaptive Overlays app - Visual overlays for tooltips, highlights, badges, and pulses",
|
|
5
5
|
"license": "Proprietary",
|
|
6
6
|
"private": false,
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"test:watch": "vitest"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@floating-ui/dom": "
|
|
48
|
+
"@floating-ui/dom": "1.7.5",
|
|
49
49
|
"@syntrologie/sdk-contracts": "*",
|
|
50
50
|
"@syntrologie/shared-editor-ui": "*",
|
|
51
51
|
"@syntro/design-system": "*"
|
|
@@ -57,16 +57,16 @@
|
|
|
57
57
|
"zod": "^3.0.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"lucide-react": "
|
|
60
|
+
"lucide-react": "0.576.0",
|
|
61
61
|
"@syntrologie/sdk-contracts": "*",
|
|
62
|
-
"@testing-library/react": "
|
|
63
|
-
"@types/react": "
|
|
64
|
-
"@types/react-dom": "
|
|
65
|
-
"jsdom": "
|
|
66
|
-
"react": "
|
|
67
|
-
"react-dom": "
|
|
68
|
-
"typescript": "
|
|
69
|
-
"vitest": "
|
|
70
|
-
"zod": "
|
|
62
|
+
"@testing-library/react": "16.3.2",
|
|
63
|
+
"@types/react": "19.2.14",
|
|
64
|
+
"@types/react-dom": "19.2.3",
|
|
65
|
+
"jsdom": "26.1.0",
|
|
66
|
+
"react": "19.2.1",
|
|
67
|
+
"react-dom": "19.2.1",
|
|
68
|
+
"typescript": "5.9.3",
|
|
69
|
+
"vitest": "4.0.18",
|
|
70
|
+
"zod": "3.25.76"
|
|
71
71
|
}
|
|
72
72
|
}
|