@@ -2,11 +2,22 @@ import { createPluginContextEvent, SELECTION_DETAIL_LIMIT } from '@figma-mcp-rel
22
33import { dispatchSandboxMessage , type SandboxHandlers } from './dispatcher.js' ;
44import { createIdempotencyCache , idempotent } from './idempotency.js' ;
5+ import { createAddVariableModeHandler } from './handlers/add-variable-mode.js' ;
6+ import { createApplyStyleToNodeHandler } from './handlers/apply-style-to-node.js' ;
7+ import { createBindVariableToNodeHandler } from './handlers/bind-variable-to-node.js' ;
58import { createCloneNodeHandler } from './handlers/clone-node.js' ;
9+ import { createCreateEffectStyleHandler } from './handlers/create-effect-style.js' ;
610import { createCreateFrameHandler } from './handlers/create-frame.js' ;
11+ import { createCreateGridStyleHandler } from './handlers/create-grid-style.js' ;
12+ import { createCreatePaintStyleHandler } from './handlers/create-paint-style.js' ;
713import { createCreateRectangleHandler } from './handlers/create-rectangle.js' ;
814import { createCreateTextHandler } from './handlers/create-text.js' ;
15+ import { createCreateTextStyleHandler } from './handlers/create-text-style.js' ;
16+ import { createCreateVariableHandler } from './handlers/create-variable.js' ;
17+ import { createCreateVariableCollectionHandler } from './handlers/create-variable-collection.js' ;
918import { createDeleteNodesHandler } from './handlers/delete-nodes.js' ;
19+ import { createDeleteStyleHandler } from './handlers/delete-style.js' ;
20+ import { createDeleteVariableHandler } from './handlers/delete-variable.js' ;
1021import { createGetAnnotationsHandler } from './handlers/get-annotations.js' ;
1122import { createGetDesignContextHandler } from './handlers/get-design-context.js' ;
1223import { createGetDocumentHandler } from './handlers/get-document.js' ;
@@ -36,11 +47,14 @@ import { createSetAutoLayoutHandler } from './handlers/set-auto-layout.js';
3647import { createSetBlendModeHandler } from './handlers/set-blend-mode.js' ;
3748import { createSetConstraintsHandler } from './handlers/set-constraints.js' ;
3849import { createSetCornerRadiusHandler } from './handlers/set-corner-radius.js' ;
50+ import { createSetEffectsHandler } from './handlers/set-effects.js' ;
3951import { createSetFillsHandler } from './handlers/set-fills.js' ;
4052import { createSetOpacityHandler } from './handlers/set-opacity.js' ;
4153import { createSetStrokesHandler } from './handlers/set-strokes.js' ;
4254import { createSetTextHandler } from './handlers/set-text.js' ;
55+ import { createSetVariableValueHandler } from './handlers/set-variable-value.js' ;
4356import { createSetVisibleHandler } from './handlers/set-visible.js' ;
57+ import { createUpdatePaintStyleHandler } from './handlers/update-paint-style.js' ;
4458
4559figma . showUI ( __html__ , { width : 320 , height : 400 , themeColors : true } ) ;
4660
@@ -114,6 +128,22 @@ const handlers: SandboxHandlers = {
114128 lock_nodes : idempotent ( idempotencyCache , createSetLockedHandler ( figma , true ) ) ,
115129 unlock_nodes : idempotent ( idempotencyCache , createSetLockedHandler ( figma , false ) ) ,
116130 clone_node : idempotent ( idempotencyCache , createCloneNodeHandler ( figma ) ) ,
131+ // Styles
132+ set_effects : idempotent ( idempotencyCache , createSetEffectsHandler ( figma ) ) ,
133+ create_paint_style : idempotent ( idempotencyCache , createCreatePaintStyleHandler ( figma ) ) ,
134+ create_text_style : idempotent ( idempotencyCache , createCreateTextStyleHandler ( figma ) ) ,
135+ create_effect_style : idempotent ( idempotencyCache , createCreateEffectStyleHandler ( figma ) ) ,
136+ create_grid_style : idempotent ( idempotencyCache , createCreateGridStyleHandler ( figma ) ) ,
137+ update_paint_style : idempotent ( idempotencyCache , createUpdatePaintStyleHandler ( figma ) ) ,
138+ apply_style_to_node : idempotent ( idempotencyCache , createApplyStyleToNodeHandler ( figma ) ) ,
139+ delete_style : idempotent ( idempotencyCache , createDeleteStyleHandler ( figma ) ) ,
140+ // Variables
141+ create_variable_collection : idempotent ( idempotencyCache , createCreateVariableCollectionHandler ( figma ) ) ,
142+ add_variable_mode : idempotent ( idempotencyCache , createAddVariableModeHandler ( figma ) ) ,
143+ create_variable : idempotent ( idempotencyCache , createCreateVariableHandler ( figma ) ) ,
144+ set_variable_value : idempotent ( idempotencyCache , createSetVariableValueHandler ( figma ) ) ,
145+ bind_variable_to_node : idempotent ( idempotencyCache , createBindVariableToNodeHandler ( figma ) ) ,
146+ delete_variable : idempotent ( idempotencyCache , createDeleteVariableHandler ( figma ) ) ,
117147} ;
118148
119149figma . ui . onmessage = ( raw : unknown ) => {
0 commit comments