@elementor/editor-components 4.0.0-513 → 4.0.0-514

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elementor/editor-components",
3
3
  "description": "Elementor editor components",
4
- "version": "4.0.0-513",
4
+ "version": "4.0.0-514",
5
5
  "private": false,
6
6
  "author": "Elementor Team",
7
7
  "homepage": "https://elementor.com/",
@@ -40,30 +40,30 @@
40
40
  "dev": "tsup --config=../../tsup.dev.ts"
41
41
  },
42
42
  "dependencies": {
43
- "@elementor/editor": "4.0.0-513",
44
- "@elementor/editor-canvas": "4.0.0-513",
45
- "@elementor/editor-controls": "4.0.0-513",
46
- "@elementor/editor-documents": "4.0.0-513",
47
- "@elementor/editor-editing-panel": "4.0.0-513",
48
- "@elementor/editor-elements": "4.0.0-513",
49
- "@elementor/editor-elements-panel": "4.0.0-513",
50
- "@elementor/editor-mcp": "4.0.0-513",
51
- "@elementor/editor-panels": "4.0.0-513",
52
- "@elementor/editor-props": "4.0.0-513",
53
- "@elementor/editor-styles-repository": "4.0.0-513",
54
- "@elementor/editor-ui": "4.0.0-513",
55
- "@elementor/editor-v1-adapters": "4.0.0-513",
56
- "@elementor/http-client": "4.0.0-513",
43
+ "@elementor/editor": "4.0.0-514",
44
+ "@elementor/editor-canvas": "4.0.0-514",
45
+ "@elementor/editor-controls": "4.0.0-514",
46
+ "@elementor/editor-documents": "4.0.0-514",
47
+ "@elementor/editor-editing-panel": "4.0.0-514",
48
+ "@elementor/editor-elements": "4.0.0-514",
49
+ "@elementor/editor-elements-panel": "4.0.0-514",
50
+ "@elementor/editor-mcp": "4.0.0-514",
51
+ "@elementor/editor-panels": "4.0.0-514",
52
+ "@elementor/editor-props": "4.0.0-514",
53
+ "@elementor/editor-styles-repository": "4.0.0-514",
54
+ "@elementor/editor-ui": "4.0.0-514",
55
+ "@elementor/editor-v1-adapters": "4.0.0-514",
56
+ "@elementor/http-client": "4.0.0-514",
57
57
  "@elementor/icons": "^1.63.0",
58
- "@elementor/mixpanel": "4.0.0-513",
59
- "@elementor/query": "4.0.0-513",
60
- "@elementor/schema": "4.0.0-513",
61
- "@elementor/store": "4.0.0-513",
58
+ "@elementor/mixpanel": "4.0.0-514",
59
+ "@elementor/query": "4.0.0-514",
60
+ "@elementor/schema": "4.0.0-514",
61
+ "@elementor/store": "4.0.0-514",
62
62
  "@elementor/ui": "1.36.17",
63
- "@elementor/utils": "4.0.0-513",
63
+ "@elementor/utils": "4.0.0-514",
64
64
  "@wordpress/i18n": "^5.13.0",
65
- "@elementor/editor-notifications": "4.0.0-513",
66
- "@elementor/editor-current-user": "4.0.0-513"
65
+ "@elementor/editor-notifications": "4.0.0-514",
66
+ "@elementor/editor-current-user": "4.0.0-514"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "react": "^18.3.1",
@@ -12,10 +12,12 @@ import {
12
12
  type ControlType,
13
13
  createTopLevelObjectType,
14
14
  ElementProvider,
15
+ isDynamicPropValue,
15
16
  SettingsField,
16
17
  useElement,
17
18
  } from '@elementor/editor-editing-panel';
18
19
  import { type Control, getContainer, getElementType } from '@elementor/editor-elements';
20
+ import { type PropType, type PropValue } from '@elementor/editor-props';
19
21
  import { Stack } from '@elementor/ui';
20
22
 
21
23
  import { useControlsByWidgetType } from '../../hooks/use-controls-by-widget-type';
@@ -77,12 +79,6 @@ function OverrideControl( { overridableProp, overrides }: Props ) {
77
79
  return null;
78
80
  }
79
81
 
80
- const propTypeSchema = createTopLevelObjectType( {
81
- schema: {
82
- [ overridableProp.overrideKey ]: propType,
83
- },
84
- } );
85
-
86
82
  const componentInstanceId = instanceValue.component_id?.value;
87
83
 
88
84
  if ( ! componentInstanceId ) {
@@ -97,9 +93,11 @@ function OverrideControl( { overridableProp, overrides }: Props ) {
97
93
  } as OverridesSchema;
98
94
 
99
95
  const setValue = ( newValue: OverridesSchema ) => {
100
- const newPropValue = newValue[ overridableProp.overrideKey ] as
101
- | ComponentInstanceOverrideProp
102
- | ComponentOverridableProp;
96
+ const newPropValue = getTempNewValueForDynamicProp(
97
+ propType,
98
+ propValue,
99
+ newValue[ overridableProp.overrideKey ]
100
+ );
103
101
 
104
102
  const newOverrideValue = createOverrideValue( {
105
103
  matchingOverride,
@@ -155,6 +153,12 @@ function OverrideControl( { overridableProp, overrides }: Props ) {
155
153
  return null;
156
154
  }
157
155
 
156
+ const propTypeSchema = createTopLevelObjectType( {
157
+ schema: {
158
+ [ overridableProp.overrideKey ]: propType,
159
+ },
160
+ } );
161
+
158
162
  return (
159
163
  <OverridablePropProvider
160
164
  value={ componentOverridablePropTypeUtil.extract( matchingOverride ) ?? undefined }
@@ -185,6 +189,17 @@ function OverrideControl( { overridableProp, overrides }: Props ) {
185
189
  );
186
190
  }
187
191
 
192
+ // temp solution to allow dynamic values to be overridden, will be removed once placeholder is implemented
193
+ function getTempNewValueForDynamicProp( propType: PropType, propValue: PropValue, newPropValue: PropValue ) {
194
+ const isRemovingOverride = newPropValue === null;
195
+
196
+ if ( isRemovingOverride && isDynamicPropValue( propValue ) ) {
197
+ return ( propType.default ?? null ) as ComponentInstanceOverrideProp | ComponentOverridableProp;
198
+ }
199
+
200
+ return newPropValue as ComponentInstanceOverrideProp | ComponentOverridableProp;
201
+ }
202
+
188
203
  function getMatchingOverride(
189
204
  overrides: ComponentInstanceOverridesPropValue,
190
205
  overrideKey: string
@@ -7,17 +7,15 @@ export const getPropTypeForComponentOverride = ( overridableProp: OverridablePro
7
7
  return getPropType( overridableProp.originPropFields );
8
8
  }
9
9
 
10
- const { elType, widgetType, propKey, elementId } = overridableProp;
10
+ const { widgetType, propKey } = overridableProp;
11
11
 
12
12
  return getPropType( {
13
- elType,
14
13
  widgetType,
15
14
  propKey,
16
- elementId,
17
15
  } );
18
16
  };
19
17
 
20
- function getPropType( { widgetType, propKey }: OriginPropFields ) {
18
+ function getPropType( { widgetType, propKey }: Pick< OriginPropFields, 'widgetType' | 'propKey' > ) {
21
19
  const widgetPropsSchema = getWidgetsCache()?.[ widgetType ]?.atomic_props_schema;
22
20
 
23
21
  return widgetPropsSchema?.[ propKey ];