@elementor/editor-components 3.35.0-465 → 3.35.0-467

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": "3.35.0-465",
4
+ "version": "3.35.0-467",
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": "3.35.0-465",
44
- "@elementor/editor-canvas": "3.35.0-465",
45
- "@elementor/editor-controls": "3.35.0-465",
46
- "@elementor/editor-documents": "3.35.0-465",
47
- "@elementor/editor-editing-panel": "3.35.0-465",
48
- "@elementor/editor-elements": "3.35.0-465",
49
- "@elementor/editor-elements-panel": "3.35.0-465",
50
- "@elementor/editor-mcp": "3.35.0-465",
51
- "@elementor/editor-panels": "3.35.0-465",
52
- "@elementor/editor-props": "3.35.0-465",
53
- "@elementor/editor-styles-repository": "3.35.0-465",
54
- "@elementor/editor-ui": "3.35.0-465",
55
- "@elementor/editor-v1-adapters": "3.35.0-465",
56
- "@elementor/http-client": "3.35.0-465",
43
+ "@elementor/editor": "3.35.0-467",
44
+ "@elementor/editor-canvas": "3.35.0-467",
45
+ "@elementor/editor-controls": "3.35.0-467",
46
+ "@elementor/editor-documents": "3.35.0-467",
47
+ "@elementor/editor-editing-panel": "3.35.0-467",
48
+ "@elementor/editor-elements": "3.35.0-467",
49
+ "@elementor/editor-elements-panel": "3.35.0-467",
50
+ "@elementor/editor-mcp": "3.35.0-467",
51
+ "@elementor/editor-panels": "3.35.0-467",
52
+ "@elementor/editor-props": "3.35.0-467",
53
+ "@elementor/editor-styles-repository": "3.35.0-467",
54
+ "@elementor/editor-ui": "3.35.0-467",
55
+ "@elementor/editor-v1-adapters": "3.35.0-467",
56
+ "@elementor/http-client": "3.35.0-467",
57
57
  "@elementor/icons": "^1.63.0",
58
- "@elementor/mixpanel": "3.35.0-465",
59
- "@elementor/query": "3.35.0-465",
60
- "@elementor/schema": "3.35.0-465",
61
- "@elementor/store": "3.35.0-465",
58
+ "@elementor/mixpanel": "3.35.0-467",
59
+ "@elementor/query": "3.35.0-467",
60
+ "@elementor/schema": "3.35.0-467",
61
+ "@elementor/store": "3.35.0-467",
62
62
  "@elementor/ui": "1.36.17",
63
- "@elementor/utils": "3.35.0-465",
63
+ "@elementor/utils": "3.35.0-467",
64
64
  "@wordpress/i18n": "^5.13.0",
65
- "@elementor/editor-notifications": "3.35.0-465",
66
- "@elementor/editor-current-user": "3.35.0-465"
65
+ "@elementor/editor-notifications": "3.35.0-467",
66
+ "@elementor/editor-current-user": "3.35.0-467"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "react": "^18.3.1",
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { useEffect, useRef } from 'react';
3
3
  import { ComponentPropListIcon } from '@elementor/icons';
4
- import { Badge, Box, keyframes, styled, ToggleButton } from '@elementor/ui';
4
+ import { Badge, Box, keyframes, styled, ToggleButton, Tooltip } from '@elementor/ui';
5
5
  import { __ } from '@wordpress/i18n';
6
6
 
7
7
  export const ComponentsBadge = React.forwardRef<
@@ -26,14 +26,16 @@ export const ComponentsBadge = React.forwardRef<
26
26
  </Box>
27
27
  }
28
28
  >
29
- <ToggleButton
30
- value="exposed properties"
31
- size="tiny"
32
- onClick={ onClick }
33
- aria-label={ __( 'View exposed properties', 'elementor' ) }
34
- >
35
- <ComponentPropListIcon fontSize="tiny" />
36
- </ToggleButton>
29
+ <Tooltip title={ __( 'Component properties', 'elementor' ) }>
30
+ <ToggleButton
31
+ value="exposed properties"
32
+ size="tiny"
33
+ onClick={ onClick }
34
+ aria-label={ __( 'Component properties', 'elementor' ) }
35
+ >
36
+ <ComponentPropListIcon fontSize="tiny" />
37
+ </ToggleButton>
38
+ </Tooltip>
37
39
  </StyledBadge>
38
40
  );
39
41
  } );
@@ -1,7 +1,7 @@
1
- import { getContainer, updateElementSettings } from '@elementor/editor-elements';
2
1
  import { __dispatch as dispatch, __getState as getState } from '@elementor/store';
3
2
 
4
3
  import { type ComponentId } from '../../types';
4
+ import { revertElementOverridableSetting } from '../../utils/revert-element-overridable-setting';
5
5
  import { type Source, trackComponentEvent } from '../../utils/tracking';
6
6
  import { selectCurrentComponent, selectOverridableProps, slice } from '../store';
7
7
  import { removePropFromAllGroups } from '../utils/groups-transformers';
@@ -25,7 +25,7 @@ export function deleteOverridableProp( { componentId, propKey, source }: DeleteP
25
25
  return;
26
26
  }
27
27
 
28
- revertElementSetting( prop.elementId, prop.propKey, prop.originValue );
28
+ revertElementOverridableSetting( prop.elementId, prop.propKey, prop.originValue, propKey );
29
29
 
30
30
  const { [ propKey ]: removedProp, ...remainingProps } = overridableProps.props;
31
31
 
@@ -54,17 +54,3 @@ export function deleteOverridableProp( { componentId, propKey, source }: DeleteP
54
54
  element_type: removedProp.widgetType ?? removedProp.elType,
55
55
  } );
56
56
  }
57
-
58
- function revertElementSetting( elementId: string, settingKey: string, originValue: unknown ): void {
59
- const container = getContainer( elementId );
60
-
61
- if ( ! container ) {
62
- return;
63
- }
64
-
65
- updateElementSettings( {
66
- id: elementId,
67
- props: { [ settingKey ]: originValue ?? null },
68
- withHistory: false,
69
- } );
70
- }
@@ -0,0 +1,94 @@
1
+ import { getContainer, getElementSetting, updateElementSettings } from '@elementor/editor-elements';
2
+
3
+ import {
4
+ type ComponentInstanceOverrideProp,
5
+ componentInstanceOverridePropTypeUtil,
6
+ } from '../prop-types/component-instance-override-prop-type';
7
+ import {
8
+ componentInstanceOverridesPropTypeUtil,
9
+ type ComponentInstanceOverridesPropValue,
10
+ } from '../prop-types/component-instance-overrides-prop-type';
11
+ import {
12
+ type ComponentInstanceProp,
13
+ componentInstancePropTypeUtil,
14
+ type ComponentInstancePropValue,
15
+ } from '../prop-types/component-instance-prop-type';
16
+ import { componentOverridablePropTypeUtil } from '../prop-types/component-overridable-prop-type';
17
+ import { isComponentInstance } from './is-component-instance';
18
+
19
+ export function revertElementOverridableSetting(
20
+ elementId: string,
21
+ settingKey: string,
22
+ originValue: unknown,
23
+ overrideKey: string
24
+ ): void {
25
+ const container = getContainer( elementId );
26
+
27
+ if ( ! container ) {
28
+ return;
29
+ }
30
+
31
+ if ( isComponentInstance( container.model.toJSON() ) ) {
32
+ revertComponentInstanceSetting( elementId, overrideKey );
33
+
34
+ return;
35
+ }
36
+
37
+ updateElementSettings( {
38
+ id: elementId,
39
+ props: { [ settingKey ]: originValue ?? null },
40
+ withHistory: false,
41
+ } );
42
+ }
43
+
44
+ function revertComponentInstanceSetting( elementId: string, overrideKey: string ): void {
45
+ const setting = getElementSetting< ComponentInstanceProp >( elementId, 'component_instance' );
46
+
47
+ const componentInstance = componentInstancePropTypeUtil.extract( setting );
48
+ const overrides = componentInstanceOverridesPropTypeUtil.extract( componentInstance?.overrides );
49
+
50
+ if ( ! overrides ) {
51
+ return;
52
+ }
53
+
54
+ const updatedOverrides = getUpdatedComponentInstanceOverrides( overrides, overrideKey );
55
+
56
+ const updatedSetting = componentInstancePropTypeUtil.create( {
57
+ ...componentInstance,
58
+ overrides: componentInstanceOverridesPropTypeUtil.create( updatedOverrides ),
59
+ } as ComponentInstancePropValue );
60
+
61
+ updateElementSettings( {
62
+ id: elementId,
63
+ props: { component_instance: updatedSetting },
64
+ withHistory: false,
65
+ } );
66
+ }
67
+
68
+ function getUpdatedComponentInstanceOverrides(
69
+ overrides: NonNullable< ComponentInstanceOverridesPropValue >,
70
+ overrideKey: string
71
+ ): ComponentInstanceOverridesPropValue {
72
+ return overrides
73
+ .map( ( item ) => {
74
+ const isOverridable = componentOverridablePropTypeUtil.isValid( item );
75
+ if ( ! isOverridable ) {
76
+ // we revert only overridable values
77
+ return item;
78
+ }
79
+
80
+ const isOriginValueOverride = componentInstanceOverridePropTypeUtil.isValid( item.value.origin_value );
81
+
82
+ if ( ! isOriginValueOverride ) {
83
+ // component instances cannot have overridables with origin value that is not an override
84
+ return null;
85
+ }
86
+
87
+ if ( item.value.override_key !== overrideKey ) {
88
+ return item;
89
+ }
90
+
91
+ return item.value.origin_value as ComponentInstanceOverrideProp;
92
+ } )
93
+ .filter( ( item ): item is NonNullable< typeof item > => item !== null );
94
+ }