@noleemits/vision-builder-control-mcp 4.96.0 → 4.97.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.
Files changed (2) hide show
  1. package/index.js +5 -2
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -111,7 +111,7 @@ process.on('SIGINT', () => {
111
111
  // CONFIG
112
112
  // ================================================================
113
113
 
114
- const VERSION = '4.96.0';
114
+ const VERSION = '4.97.0';
115
115
  const MIN_PLUGIN_VERSION = '4.13.0'; // Minimum WP plugin version required by this MCP server
116
116
 
117
117
  // ================================================================
@@ -4011,7 +4011,7 @@ function getToolDefinitions() {
4011
4011
  },
4012
4012
  {
4013
4013
  name: 'upsert_class',
4014
- description: 'Define or update a site CSS class — stores its metadata AND CSS body in the NVBC class registry. NVBC renders the CSS page-scoped (only on pages that use the class); it is NOT written to the Elementor Kit. The class appears in list_classes with source=[site] and in the editor Browse picker. Optional apply_to: attach the class to element IDs on specific pages in the same call. Call again with the same name to update (css is replaced). v4.76.0+. v4.92.0 adds scope (global vs page) and status (published vs draft): a page-scoped class only appears in the editor picker on its target pages; a draft class is hidden from the picker entirely until you flip status to published.',
4014
+ description: 'Define or update a site CSS class — stores its metadata AND CSS body in the NVBC class registry. NVBC renders the CSS page-scoped (only on pages that use the class); it is NOT written to the Elementor Kit. The class appears in list_classes with source=[site] and in the editor Browse picker. Optional apply_to: attach the class to element IDs on specific pages in the same call. Call again with the same name to update (css is replaced). v4.76.0+. v4.92.0 adds scope (global vs page) and status (published vs draft). v4.97.0 adds specificity (auto|layout|utility) so layout/visual classes win against .elementor .e-con default styles instead of losing on specificity.',
4015
4015
  inputSchema: {
4016
4016
  type: 'object',
4017
4017
  properties: {
@@ -4023,6 +4023,7 @@ function getToolDefinitions() {
4023
4023
  scope: { type: 'string', enum: ['global', 'page'], description: 'v4.92.0+. "global" (default) = appears in the editor picker on every page. "page" = only appears in the picker on the pages listed in scope_page_ids (or derived from apply_to). Render is unaffected: if the class is on an element, its CSS still emits — scope only filters editor-picker visibility.' },
4024
4024
  scope_page_ids: { type: 'array', items: { type: 'number' }, description: 'v4.92.0+. Required when scope=page (or supply apply_to with page_id entries and the server will derive these). WordPress page IDs the class belongs to.' },
4025
4025
  status: { type: 'string', enum: ['published', 'draft'], description: 'v4.92.0+. "published" (default) = appears in list_classes + editor picker. "draft" = hidden from both until promoted. Useful while iterating on a class.' },
4026
+ specificity: { type: 'string', enum: ['auto', 'layout', 'utility'], description: 'v4.97.0+. Controls how the class selector is emitted. "auto" (default) wraps as .elementor .{name} when the css body sets layout (display, grid-template-*, gap, padding) or visual (background, border, border-radius, box-shadow) properties — so the class beats .elementor .e-con instead of losing on specificity. "layout" forces the wrap. "utility" forces a bare .{name} for cases where you want the class overridable.' },
4026
4027
  apply_to: {
4027
4028
  type: 'array',
4028
4029
  description: 'Optional: attach this class to these elements in the same call. When scope=page and scope_page_ids is omitted, the page_ids here are used as scope_page_ids.',
@@ -7740,6 +7741,8 @@ async function handleToolCall(name, args) {
7740
7741
  // v4.92.0 — scope + status + scope_page_ids.
7741
7742
  if (args.scope) regBody.scope = args.scope;
7742
7743
  if (args.status) regBody.status = args.status;
7744
+ // v4.97.0 — specificity hint for the emit pipeline.
7745
+ if (args.specificity !== undefined) regBody.specificity = args.specificity;
7743
7746
  if (Array.isArray(args.scope_page_ids) && args.scope_page_ids.length) {
7744
7747
  regBody.scope_page_ids = args.scope_page_ids;
7745
7748
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noleemits/vision-builder-control-mcp",
3
- "version": "4.96.0",
3
+ "version": "4.97.0",
4
4
  "description": "Vision Builder Control MCP server - design token-driven page builder tools for WordPress/Elementor websites",
5
5
  "type": "module",
6
6
  "main": "index.js",