@elementor/editor-global-classes 4.3.0-1023 → 4.3.0-1033

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@elementor/editor-global-classes",
3
- "version": "4.3.0-1023",
3
+ "version": "4.3.0-1033",
4
4
  "private": false,
5
5
  "author": "Elementor Team",
6
6
  "homepage": "https://elementor.com/",
@@ -39,30 +39,30 @@
39
39
  "dev": "tsup --config=../../tsup.dev.ts"
40
40
  },
41
41
  "dependencies": {
42
- "@elementor/editor": "4.3.0-1023",
43
- "@elementor/editor-current-user": "4.3.0-1023",
44
- "@elementor/editor-documents": "4.3.0-1023",
45
- "@elementor/editor-embedded-documents-manager": "4.3.0-1023",
46
- "@elementor/editor-editing-panel": "4.3.0-1023",
47
- "@elementor/editor-mcp": "4.3.0-1023",
48
- "@elementor/editor-panels": "4.3.0-1023",
49
- "@elementor/editor-props": "4.3.0-1023",
50
- "@elementor/editor-variables": "4.3.0-1023",
51
- "@elementor/editor-styles": "4.3.0-1023",
52
- "@elementor/editor-canvas": "4.3.0-1023",
53
- "@elementor/editor-styles-repository": "4.3.0-1023",
54
- "@elementor/editor-ui": "4.3.0-1023",
55
- "@elementor/editor-v1-adapters": "4.3.0-1023",
56
- "@elementor/http-client": "4.3.0-1023",
42
+ "@elementor/editor": "4.3.0-1033",
43
+ "@elementor/editor-current-user": "4.3.0-1033",
44
+ "@elementor/editor-documents": "4.3.0-1033",
45
+ "@elementor/editor-embedded-documents-manager": "4.3.0-1033",
46
+ "@elementor/editor-editing-panel": "4.3.0-1033",
47
+ "@elementor/editor-mcp": "4.3.0-1033",
48
+ "@elementor/editor-panels": "4.3.0-1033",
49
+ "@elementor/editor-props": "4.3.0-1033",
50
+ "@elementor/editor-variables": "4.3.0-1033",
51
+ "@elementor/editor-styles": "4.3.0-1033",
52
+ "@elementor/editor-canvas": "4.3.0-1033",
53
+ "@elementor/editor-styles-repository": "4.3.0-1033",
54
+ "@elementor/editor-ui": "4.3.0-1033",
55
+ "@elementor/editor-v1-adapters": "4.3.0-1033",
56
+ "@elementor/http-client": "4.3.0-1033",
57
57
  "@elementor/icons": "~1.75.1",
58
- "@elementor/query": "4.3.0-1023",
59
- "@elementor/schema": "4.3.0-1023",
60
- "@elementor/store": "4.3.0-1023",
58
+ "@elementor/query": "4.3.0-1033",
59
+ "@elementor/schema": "4.3.0-1033",
60
+ "@elementor/store": "4.3.0-1033",
61
61
  "@elementor/ui": "1.37.5",
62
- "@elementor/utils": "4.3.0-1023",
62
+ "@elementor/utils": "4.3.0-1033",
63
63
  "@tanstack/react-virtual": "^3.13.24",
64
64
  "@wordpress/i18n": "^5.13.0",
65
- "@elementor/events": "4.3.0-1023"
65
+ "@elementor/events": "4.3.0-1033"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "react": "^18.3.1",
@@ -13,7 +13,7 @@ const TOOL_NAME = 'manage-classes';
13
13
 
14
14
  type ManageClassesResponse = {
15
15
  status: string;
16
- class?: StyleDefinition;
16
+ results?: StyleDefinition[];
17
17
  order?: string[];
18
18
  };
19
19
 
@@ -23,7 +23,7 @@ export const initManageClassesTool = ( reg: MCPRegistryEntry ) => {
23
23
  addTool( {
24
24
  name: TOOL_NAME,
25
25
  description:
26
- 'Manage V4 global CSS classes on the active kit. Create, update, or delete a single class using raw CSS declarations.',
26
+ 'Manage V4 global CSS classes on the active kit. Bulk create, update, or delete using raw CSS declarations (up to 50 operations). Duplicate labels are auto-renamed with a DUP_ prefix.',
27
27
  schema: {
28
28
  action: z.enum( [ 'create', 'update', 'delete' ] ),
29
29
  id: z
@@ -35,12 +35,22 @@ export const initManageClassesTool = ( reg: MCPRegistryEntry ) => {
35
35
  .optional()
36
36
  .describe( 'Class label (lowercase, dash-separated) — required for create/update.' ),
37
37
  css: z
38
- .record( z.string() )
38
+ .string()
39
+ .optional()
40
+ .describe(
41
+ 'Plain CSS string. Supports &:hover/&:focus/&:active nesting and @media(--breakpoint) blocks. In patch mode: "prop: null" removes that prop; "all: null" wipes the variant.'
42
+ ),
43
+ mode: z
44
+ .enum( [ 'patch', 'replace' ] )
39
45
  .optional()
40
- .describe( 'Raw CSS declarations (property → value) — required for create/update.' ),
46
+ .describe(
47
+ 'Merge strategy for update — patch (default): merge incoming props with existing; replace: discard all existing variants for the affected breakpoints.'
48
+ ),
41
49
  },
42
50
  outputSchema: {
43
51
  status: z.enum( [ 'ok' ] ).describe( 'Operation status' ),
52
+ id: z.string().optional().describe( 'ID of the affected class — use for subsequent update/delete calls.' ),
53
+ label: z.string().optional().describe( 'Final label of the class after any auto-rename.' ),
44
54
  },
45
55
  requiredResources: [
46
56
  {
@@ -52,21 +62,21 @@ export const initManageClassesTool = ( reg: MCPRegistryEntry ) => {
52
62
  handler: async ( params ) => {
53
63
  const { data } = await httpService().post< HttpResponse< ManageClassesResponse > >( MCP_PROXY_URL, {
54
64
  tool: TOOL_NAME,
55
- input: params,
65
+ input: { operations: [ params ] },
56
66
  } );
57
67
 
58
- const payload = data.data;
68
+ const result = data.data.results?.[ 0 ];
59
69
  const { create, update, delete: del } = globalClassesStylesProvider.actions;
60
70
 
61
71
  switch ( params.action ) {
62
72
  case 'create':
63
- if ( payload.class && create ) {
64
- create( payload.class.label, payload.class.variants, payload.class.id );
73
+ if ( result && create ) {
74
+ create( result.label, result.variants, result.id );
65
75
  }
66
76
  break;
67
77
  case 'update':
68
- if ( payload.class && update ) {
69
- update( payload.class );
78
+ if ( result && update ) {
79
+ update( result );
70
80
  }
71
81
  break;
72
82
  case 'delete':
@@ -79,7 +89,11 @@ export const initManageClassesTool = ( reg: MCPRegistryEntry ) => {
79
89
  dispatch( slice.actions.reset( { context: 'frontend' } ) );
80
90
  window.dispatchEvent( new CustomEvent( 'classes:updated', { detail: { context: 'frontend' } } ) );
81
91
 
82
- return { status: 'ok' };
92
+ return {
93
+ status: 'ok' as const,
94
+ id: result?.id,
95
+ label: result?.label,
96
+ };
83
97
  },
84
98
  } );
85
99
  };