@pixerate/editor-react 0.16.0 → 0.17.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 (46) hide show
  1. package/README.md +2 -2
  2. package/dist/canvas/index.cjs +406 -142
  3. package/dist/canvas/index.cjs.map +1 -1
  4. package/dist/canvas/index.d.cts +66 -3
  5. package/dist/canvas/index.d.ts +66 -3
  6. package/dist/canvas/index.js +277 -0
  7. package/dist/canvas/index.js.map +1 -1
  8. package/dist/chunk-I3E4KSA2.js +515 -0
  9. package/dist/chunk-I3E4KSA2.js.map +1 -0
  10. package/dist/chunk-JR5ZBDR7.js +2012 -0
  11. package/dist/chunk-JR5ZBDR7.js.map +1 -0
  12. package/dist/{chunk-XTFR3IMK.js → chunk-ZU54BMDC.js} +473 -160
  13. package/dist/chunk-ZU54BMDC.js.map +1 -0
  14. package/dist/generation/index.cjs +290 -0
  15. package/dist/generation/index.cjs.map +1 -1
  16. package/dist/generation/index.d.cts +66 -2
  17. package/dist/generation/index.d.ts +66 -2
  18. package/dist/generation/index.js +7 -1
  19. package/dist/image-editor/index.cjs +490 -187
  20. package/dist/image-editor/index.cjs.map +1 -1
  21. package/dist/image-editor/index.d.cts +34 -2
  22. package/dist/image-editor/index.d.ts +34 -2
  23. package/dist/image-editor/index.js +5 -1
  24. package/dist/index.cjs +2372 -731
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +88 -6
  27. package/dist/index.d.ts +88 -6
  28. package/dist/index.js +334 -96
  29. package/dist/index.js.map +1 -1
  30. package/dist/spreadsheet/index.cjs +943 -112
  31. package/dist/spreadsheet/index.cjs.map +1 -1
  32. package/dist/spreadsheet/index.d.cts +119 -7
  33. package/dist/spreadsheet/index.d.ts +119 -7
  34. package/dist/spreadsheet/index.js +11 -1
  35. package/dist/tokens/index.cjs +395 -0
  36. package/dist/tokens/index.cjs.map +1 -0
  37. package/dist/tokens/index.d.cts +54 -0
  38. package/dist/tokens/index.d.ts +54 -0
  39. package/dist/tokens/index.js +375 -0
  40. package/dist/tokens/index.js.map +1 -0
  41. package/package.json +10 -2
  42. package/dist/chunk-7SPRQZ6H.js +0 -216
  43. package/dist/chunk-7SPRQZ6H.js.map +0 -1
  44. package/dist/chunk-FYIPXHAE.js +0 -1169
  45. package/dist/chunk-FYIPXHAE.js.map +0 -1
  46. package/dist/chunk-XTFR3IMK.js.map +0 -1
@@ -20,145 +20,194 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/canvas/index.ts
21
21
  var canvas_exports = {};
22
22
  __export(canvas_exports, {
23
- AUTO_LAYOUT_DATA_KEY: () => import_canvas15.AUTO_LAYOUT_DATA_KEY,
23
+ AUTO_LAYOUT_DATA_KEY: () => import_canvas18.AUTO_LAYOUT_DATA_KEY,
24
24
  AgentPresenceLayer: () => AgentPresenceLayer,
25
- CHILD_LAYOUT_DATA_KEY: () => import_canvas15.CHILD_LAYOUT_DATA_KEY,
26
- CONNECTION_LINE_TYPES: () => import_canvas12.CONNECTION_LINE_TYPES,
25
+ CANVAS_TOKEN_PROPERTIES: () => import_canvas19.CANVAS_TOKEN_PROPERTIES,
26
+ CHILD_LAYOUT_DATA_KEY: () => import_canvas18.CHILD_LAYOUT_DATA_KEY,
27
+ CONNECTION_LINE_TYPES: () => import_canvas14.CONNECTION_LINE_TYPES,
27
28
  CanvasGuidesLayer: () => CanvasGuidesLayer,
28
- CanvasScenesStore: () => import_canvas12.CanvasScenesStore,
29
- DEFAULT_ARRANGE_SHORTCUTS: () => import_canvas12.DEFAULT_ARRANGE_SHORTCUTS,
30
- ManualClock: () => import_canvas14.ManualClock,
31
- RESIZE_HANDLES: () => import_canvas11.RESIZE_HANDLES,
32
- SHAPE_DATA_KEY: () => import_canvas13.SHAPE_DATA_KEY,
33
- SHAPE_KINDS: () => import_canvas13.SHAPE_KINDS,
34
- SHAPE_NODE_TYPE: () => import_canvas13.SHAPE_NODE_TYPE,
35
- SHAPE_OPERATIONS: () => import_canvas13.SHAPE_OPERATIONS,
29
+ CanvasScenesStore: () => import_canvas14.CanvasScenesStore,
30
+ DEFAULT_ARRANGE_SHORTCUTS: () => import_canvas14.DEFAULT_ARRANGE_SHORTCUTS,
31
+ ManualClock: () => import_canvas17.ManualClock,
32
+ RESIZE_HANDLES: () => import_canvas13.RESIZE_HANDLES,
33
+ SHAPE_DATA_KEY: () => import_canvas15.SHAPE_DATA_KEY,
34
+ SHAPE_KINDS: () => import_canvas15.SHAPE_KINDS,
35
+ SHAPE_NODE_TYPE: () => import_canvas15.SHAPE_NODE_TYPE,
36
+ SHAPE_OPERATIONS: () => import_canvas15.SHAPE_OPERATIONS,
36
37
  ShapeNode: () => ShapeNode,
37
- alignNodes: () => import_canvas12.alignNodes,
38
- applyConstraints: () => import_canvas15.applyConstraints,
39
- applyNodeUpdates: () => import_canvas12.applyNodeUpdates,
40
- applyShapeCombination: () => import_canvas13.applyShapeCombination,
41
- blendLayout: () => import_canvas14.blendLayout,
42
- boundsOf: () => import_canvas14.boundsOf,
43
- calculateDagreReflowDisplacement: () => import_canvas14.calculateDagreReflowDisplacement,
44
- calculateDirectionalDisplacement: () => import_canvas14.calculateDirectionalDisplacement,
45
- canCombineShapeNodes: () => import_canvas13.canCombineShapeNodes,
46
- canvasHeight: () => import_canvas14.canvasHeight,
47
- centerNodes: () => import_canvas14.centerNodes,
48
- centre: () => import_canvas14.centre,
49
- clampLayoutSize: () => import_canvas15.clampLayoutSize,
50
- combineShapeNodes: () => import_canvas13.combineShapeNodes,
51
- computeNodesBoundingBox: () => import_canvas14.computeNodesBoundingBox,
52
- computeSnapGuides: () => import_canvas12.computeSnapGuides,
53
- connectedOnly: () => import_canvas14.connectedOnly,
54
- createBezierTrajectory: () => import_canvas14.createBezierTrajectory,
55
- createCanvasAutoLayoutController: () => import_canvas15.createCanvasAutoLayoutController,
56
- createCanvasScenesStore: () => import_canvas12.createCanvasScenesStore,
57
- createFanOutTrajectory: () => import_canvas14.createFanOutTrajectory,
58
- createGuideIndex: () => import_canvas12.createGuideIndex,
59
- createNodeGuideIndex: () => import_canvas12.createNodeGuideIndex,
60
- cubicPointAt: () => import_canvas11.cubicPointAt,
61
- cubicsToPathData: () => import_canvas11.cubicsToPathData,
62
- defaultEasing: () => import_canvas14.defaultEasing,
63
- distributeNodes: () => import_canvas12.distributeNodes,
64
- dividePolygons: () => import_canvas13.dividePolygons,
65
- ensureLayout: () => import_canvas14.ensureLayout,
66
- estimateCanvasHeight: () => import_canvas14.estimateCanvasHeight,
67
- estimateNodeSize: () => import_canvas14.estimateNodeSize,
68
- findConnectorSnap: () => import_canvas12.findConnectorSnap,
69
- fitCubicRun: () => import_canvas11.fitCubicRun,
70
- fitCubics: () => import_canvas11.fitCubics,
71
- fitFreehandPath: () => import_canvas11.fitFreehandPath,
72
- fitPathData: () => import_canvas11.fitPathData,
73
- fitViewportToNodes: () => import_canvas12.fitViewportToNodes,
74
- fitViewportToRect: () => import_canvas12.fitViewportToRect,
75
- flattenSvgPath: () => import_canvas13.flattenSvgPath,
76
- flowSide: () => import_canvas14.flowSide,
77
- getAbsolutePosition: () => import_canvas12.getAbsolutePosition,
78
- getAutoLayout: () => import_canvas15.getAutoLayout,
79
- getAutoLayoutGrid: () => import_canvas15.getAutoLayoutGrid,
80
- getAutoLayoutInsertTarget: () => import_canvas15.getAutoLayoutInsertTarget,
81
- getCenteredNodePosition: () => import_canvas14.getCenteredNodePosition,
82
- getChildLayout: () => import_canvas15.getChildLayout,
83
- getFlowChildren: () => import_canvas15.getFlowChildren,
84
- getLayoutParent: () => import_canvas15.getLayoutParent,
85
- getLayoutSizing: () => import_canvas15.getLayoutSizing,
86
- getLayoutedNodes: () => import_canvas14.getLayoutedNodes,
87
- getNodeRect: () => import_canvas12.getNodeRect,
88
- getNodeShape: () => import_canvas13.getNodeShape,
89
- getNodeSize: () => import_canvas12.getNodeSize,
90
- getResizingNodeRect: () => import_canvas11.getResizingNodeRect,
91
- getShapeRenderData: () => import_canvas13.getShapeRenderData,
92
- getShapeSvg: () => import_canvas13.getShapeSvg,
93
- handlePoint: () => import_canvas12.handlePoint,
94
- inferResizeHandle: () => import_canvas11.inferResizeHandle,
95
- intersectPolygons: () => import_canvas13.intersectPolygons,
96
- invertNodeUpdates: () => import_canvas12.invertNodeUpdates,
97
- isAutoLayoutFrame: () => import_canvas15.isAutoLayoutFrame,
98
- isEventFromTextInput: () => import_canvas14.isEventFromTextInput,
99
- isLocked: () => import_canvas12.isLocked,
100
- isMeasureModifierHeld: () => import_canvas11.isMeasureModifierHeld,
101
- isShapeDescription: () => import_canvas13.isShapeDescription,
102
- isShapeNode: () => import_canvas13.isShapeNode,
103
- isStraightCubic: () => import_canvas11.isStraightCubic,
104
- isValidCanvasNode: () => import_canvas14.isValidCanvasNode,
105
- isValidUrl: () => import_canvas14.isValidUrl,
106
- layoutAll: () => import_canvas15.layoutAll,
107
- layoutBounds: () => import_canvas14.layoutBounds,
108
- layoutFrame: () => import_canvas15.layoutFrame,
109
- layoutUp: () => import_canvas15.layoutUp,
110
- layoutUpMany: () => import_canvas15.layoutUpMany,
111
- linearPositionTrajectory: () => import_canvas14.linearPositionTrajectory,
112
- linearTrajectory: () => import_canvas14.linearTrajectory,
113
- lockNodes: () => import_canvas12.lockNodes,
114
- makeSizingCoherent: () => import_canvas15.makeSizingCoherent,
115
- matchArrangeShortcut: () => import_canvas12.matchArrangeShortcut,
116
- matchSize: () => import_canvas12.matchSize,
117
- measureBetween: () => import_canvas11.measureBetween,
118
- measureLabel: () => import_canvas11.measureLabel,
119
- measureSelection: () => import_canvas11.measureSelection,
120
- measureToLine: () => import_canvas11.measureToLine,
121
- mergeNodeUpdates: () => import_canvas15.mergeNodeUpdates,
122
- moveLayoutChild: () => import_canvas15.moveLayoutChild,
123
- multiPolygonArea: () => import_canvas13.multiPolygonArea,
124
- multiPolygonBounds: () => import_canvas13.multiPolygonBounds,
125
- nearestHandlePositions: () => import_canvas12.nearestHandlePositions,
126
- oppositePosition: () => import_canvas12.oppositePosition,
127
- overlaps: () => import_canvas14.overlaps,
128
- parseCanvasClipboardData: () => import_canvas14.parseCanvasClipboardData,
129
- parseCanvasScenes: () => import_canvas12.parseCanvasScenes,
130
- parseSvgPath: () => import_canvas13.parseSvgPath,
131
- placeBeside: () => import_canvas14.placeBeside,
132
- pointInMultiPolygon: () => import_canvas13.pointInMultiPolygon,
133
- pointInRings: () => import_canvas13.pointInRings,
134
- polygonArea: () => import_canvas13.polygonArea,
135
- polygonBoolean: () => import_canvas13.polygonBoolean,
136
- polygonToSvgPath: () => import_canvas13.polygonToSvgPath,
137
- positionToSide: () => import_canvas12.positionToSide,
138
- readStyleSize: () => import_canvas12.readStyleSize,
139
- realClock: () => import_canvas14.realClock,
140
- relayoutUpdates: () => import_canvas15.relayoutUpdates,
141
- remapPastedNodes: () => import_canvas14.remapPastedNodes,
142
- reorderNodes: () => import_canvas12.reorderNodes,
143
- repositionNodesTo: () => import_canvas14.repositionNodesTo,
144
- resizeHandleAxes: () => import_canvas11.resizeHandleAxes,
145
- resolvePadding: () => import_canvas15.resolvePadding,
146
- revertShapeCombination: () => import_canvas13.revertShapeCombination,
147
- ringSignedArea: () => import_canvas13.ringSignedArea,
148
- runMultiNodeTransition: () => import_canvas14.runMultiNodeTransition,
149
- serializeCanvasNodes: () => import_canvas14.serializeCanvasNodes,
150
- shapeNodeToPolygon: () => import_canvas13.shapeNodeToPolygon,
151
- shapeToPolygon: () => import_canvas13.shapeToPolygon,
152
- sideToPosition: () => import_canvas12.sideToPosition,
153
- simplifyRing: () => import_canvas13.simplifyRing,
154
- snapNodeDrag: () => import_canvas12.snapNodeDrag,
155
- snapNodeResize: () => import_canvas11.snapNodeResize,
156
- snapResize: () => import_canvas11.snapResize,
157
- snapToGrid: () => import_canvas11.snapToGrid,
158
- subtractPolygons: () => import_canvas13.subtractPolygons,
159
- toggleLockNodes: () => import_canvas12.toggleLockNodes,
160
- unionPolygons: () => import_canvas13.unionPolygons,
161
- unlockNodes: () => import_canvas12.unlockNodes,
38
+ TOKEN_BINDINGS_DATA_KEY: () => import_canvas19.TOKEN_BINDINGS_DATA_KEY,
39
+ TOKEN_MODES_DATA_KEY: () => import_canvas19.TOKEN_MODES_DATA_KEY,
40
+ TokenBindingPicker: () => TokenBindingPicker,
41
+ TokenModeSwitcher: () => TokenModeSwitcher,
42
+ alignNodes: () => import_canvas14.alignNodes,
43
+ applyConstraints: () => import_canvas18.applyConstraints,
44
+ applyNodeUpdates: () => import_canvas14.applyNodeUpdates,
45
+ applyShapeCombination: () => import_canvas15.applyShapeCombination,
46
+ applyShapeReplacement: () => import_canvas16.applyShapeReplacement,
47
+ bezierPathArea: () => import_canvas16.bezierPathArea,
48
+ bezierPathBounds: () => import_canvas16.bezierPathBounds,
49
+ bezierPathLength: () => import_canvas16.bezierPathLength,
50
+ bezierPathPointAtLength: () => import_canvas16.bezierPathPointAtLength,
51
+ bezierPathSignedArea: () => import_canvas16.bezierPathSignedArea,
52
+ bezierPathToSvg: () => import_canvas16.bezierPathToSvg,
53
+ bindCanvasToken: () => import_canvas19.bindCanvasToken,
54
+ blendLayout: () => import_canvas17.blendLayout,
55
+ boundsOf: () => import_canvas17.boundsOf,
56
+ calculateDagreReflowDisplacement: () => import_canvas17.calculateDagreReflowDisplacement,
57
+ calculateDirectionalDisplacement: () => import_canvas17.calculateDirectionalDisplacement,
58
+ canCombineShapeNodes: () => import_canvas15.canCombineShapeNodes,
59
+ canOffsetShapeNodes: () => import_canvas16.canOffsetShapeNodes,
60
+ canOutlineShapeNodeStrokes: () => import_canvas16.canOutlineShapeNodeStrokes,
61
+ canvasHeight: () => import_canvas17.canvasHeight,
62
+ centerNodes: () => import_canvas17.centerNodes,
63
+ centre: () => import_canvas17.centre,
64
+ clampLayoutSize: () => import_canvas18.clampLayoutSize,
65
+ combineShapeNodes: () => import_canvas15.combineShapeNodes,
66
+ computeNodesBoundingBox: () => import_canvas17.computeNodesBoundingBox,
67
+ computeSnapGuides: () => import_canvas14.computeSnapGuides,
68
+ connectedOnly: () => import_canvas17.connectedOnly,
69
+ countPathSegments: () => import_canvas16.countPathSegments,
70
+ createBezierTrajectory: () => import_canvas17.createBezierTrajectory,
71
+ createCanvasAutoLayoutController: () => import_canvas18.createCanvasAutoLayoutController,
72
+ createCanvasScenesStore: () => import_canvas14.createCanvasScenesStore,
73
+ createFanOutTrajectory: () => import_canvas17.createFanOutTrajectory,
74
+ createGuideIndex: () => import_canvas14.createGuideIndex,
75
+ createNodeGuideIndex: () => import_canvas14.createNodeGuideIndex,
76
+ cubicPointAt: () => import_canvas13.cubicPointAt,
77
+ cubicsToPathData: () => import_canvas13.cubicsToPathData,
78
+ dashContours: () => import_canvas16.dashContours,
79
+ defaultEasing: () => import_canvas17.defaultEasing,
80
+ detachTokenBindings: () => import_canvas19.detachTokenBindings,
81
+ distanceToBezierPath: () => import_canvas16.distanceToBezierPath,
82
+ distributeNodes: () => import_canvas14.distributeNodes,
83
+ dividePaths: () => import_canvas16.dividePaths,
84
+ dividePolygons: () => import_canvas15.dividePolygons,
85
+ ensureLayout: () => import_canvas17.ensureLayout,
86
+ estimateCanvasHeight: () => import_canvas17.estimateCanvasHeight,
87
+ estimateNodeSize: () => import_canvas17.estimateNodeSize,
88
+ excludePaths: () => import_canvas16.excludePaths,
89
+ findConnectorSnap: () => import_canvas14.findConnectorSnap,
90
+ fitCubicRun: () => import_canvas13.fitCubicRun,
91
+ fitCubics: () => import_canvas13.fitCubics,
92
+ fitFreehandPath: () => import_canvas13.fitFreehandPath,
93
+ fitPathData: () => import_canvas13.fitPathData,
94
+ fitViewportToNodes: () => import_canvas14.fitViewportToNodes,
95
+ fitViewportToRect: () => import_canvas14.fitViewportToRect,
96
+ flattenSvgPath: () => import_canvas15.flattenSvgPath,
97
+ flowSide: () => import_canvas17.flowSide,
98
+ getAbsolutePosition: () => import_canvas14.getAbsolutePosition,
99
+ getAutoLayout: () => import_canvas18.getAutoLayout,
100
+ getAutoLayoutGrid: () => import_canvas18.getAutoLayoutGrid,
101
+ getAutoLayoutInsertTarget: () => import_canvas18.getAutoLayoutInsertTarget,
102
+ getBindableTokenProperties: () => import_canvas19.getBindableTokenProperties,
103
+ getCanvasTokenProperty: () => import_canvas19.getCanvasTokenProperty,
104
+ getCenteredNodePosition: () => import_canvas17.getCenteredNodePosition,
105
+ getChildLayout: () => import_canvas18.getChildLayout,
106
+ getEffectiveTokenModes: () => import_canvas19.getEffectiveTokenModes,
107
+ getFlowChildren: () => import_canvas18.getFlowChildren,
108
+ getLayoutParent: () => import_canvas18.getLayoutParent,
109
+ getLayoutSizing: () => import_canvas18.getLayoutSizing,
110
+ getLayoutedNodes: () => import_canvas17.getLayoutedNodes,
111
+ getNodeRect: () => import_canvas14.getNodeRect,
112
+ getNodeShape: () => import_canvas15.getNodeShape,
113
+ getNodeSize: () => import_canvas14.getNodeSize,
114
+ getNodeTokenBindings: () => import_canvas19.getNodeTokenBindings,
115
+ getNodeTokenModes: () => import_canvas19.getNodeTokenModes,
116
+ getResizingNodeRect: () => import_canvas13.getResizingNodeRect,
117
+ getShapeRenderData: () => import_canvas15.getShapeRenderData,
118
+ getShapeSvg: () => import_canvas15.getShapeSvg,
119
+ getTokenPropertyScope: () => import_canvas19.getTokenPropertyScope,
120
+ getTokensForProperty: () => import_canvas19.getTokensForProperty,
121
+ handlePoint: () => import_canvas14.handlePoint,
122
+ hasVisibleStroke: () => import_canvas16.hasVisibleStroke,
123
+ inferResizeHandle: () => import_canvas13.inferResizeHandle,
124
+ inspectNodeTokens: () => import_canvas19.inspectNodeTokens,
125
+ intersectPaths: () => import_canvas16.intersectPaths,
126
+ intersectPolygons: () => import_canvas15.intersectPolygons,
127
+ invertNodeUpdates: () => import_canvas14.invertNodeUpdates,
128
+ isAutoLayoutFrame: () => import_canvas18.isAutoLayoutFrame,
129
+ isEventFromTextInput: () => import_canvas17.isEventFromTextInput,
130
+ isLocked: () => import_canvas14.isLocked,
131
+ isMeasureModifierHeld: () => import_canvas13.isMeasureModifierHeld,
132
+ isShapeDescription: () => import_canvas15.isShapeDescription,
133
+ isShapeNode: () => import_canvas15.isShapeNode,
134
+ isStraightCubic: () => import_canvas13.isStraightCubic,
135
+ isValidCanvasNode: () => import_canvas17.isValidCanvasNode,
136
+ isValidUrl: () => import_canvas17.isValidUrl,
137
+ layoutAll: () => import_canvas18.layoutAll,
138
+ layoutBounds: () => import_canvas17.layoutBounds,
139
+ layoutFrame: () => import_canvas18.layoutFrame,
140
+ layoutUp: () => import_canvas18.layoutUp,
141
+ layoutUpMany: () => import_canvas18.layoutUpMany,
142
+ linearPositionTrajectory: () => import_canvas17.linearPositionTrajectory,
143
+ linearTrajectory: () => import_canvas17.linearTrajectory,
144
+ lockNodes: () => import_canvas14.lockNodes,
145
+ makeSizingCoherent: () => import_canvas18.makeSizingCoherent,
146
+ matchArrangeShortcut: () => import_canvas14.matchArrangeShortcut,
147
+ matchSize: () => import_canvas14.matchSize,
148
+ measureBetween: () => import_canvas13.measureBetween,
149
+ measureLabel: () => import_canvas13.measureLabel,
150
+ measureSelection: () => import_canvas13.measureSelection,
151
+ measureToLine: () => import_canvas13.measureToLine,
152
+ mergeNodeUpdates: () => import_canvas18.mergeNodeUpdates,
153
+ moveLayoutChild: () => import_canvas18.moveLayoutChild,
154
+ multiPolygonArea: () => import_canvas15.multiPolygonArea,
155
+ multiPolygonBounds: () => import_canvas15.multiPolygonBounds,
156
+ nearestHandlePositions: () => import_canvas14.nearestHandlePositions,
157
+ normalizeBezierPath: () => import_canvas16.normalizeBezierPath,
158
+ offsetPath: () => import_canvas16.offsetPath,
159
+ offsetShapeNodes: () => import_canvas16.offsetShapeNodes,
160
+ oppositePosition: () => import_canvas14.oppositePosition,
161
+ outlineShapeNodeStrokes: () => import_canvas16.outlineShapeNodeStrokes,
162
+ outlineStroke: () => import_canvas16.outlineStroke,
163
+ overlaps: () => import_canvas17.overlaps,
164
+ parseCanvasClipboardData: () => import_canvas17.parseCanvasClipboardData,
165
+ parseCanvasScenes: () => import_canvas14.parseCanvasScenes,
166
+ parseSvgPath: () => import_canvas15.parseSvgPath,
167
+ pathBoolean: () => import_canvas16.pathBoolean,
168
+ placeBeside: () => import_canvas17.placeBeside,
169
+ pointInBezierPath: () => import_canvas16.pointInBezierPath,
170
+ pointInMultiPolygon: () => import_canvas15.pointInMultiPolygon,
171
+ pointInRings: () => import_canvas15.pointInRings,
172
+ polygonArea: () => import_canvas15.polygonArea,
173
+ polygonBoolean: () => import_canvas15.polygonBoolean,
174
+ polygonToSvgPath: () => import_canvas15.polygonToSvgPath,
175
+ positionToSide: () => import_canvas14.positionToSide,
176
+ pruneCanvasTokenModes: () => import_canvas19.pruneCanvasTokenModes,
177
+ readNodeStyleProperty: () => import_canvas19.readNodeStyleProperty,
178
+ readStyleSize: () => import_canvas14.readStyleSize,
179
+ realClock: () => import_canvas17.realClock,
180
+ relayoutUpdates: () => import_canvas18.relayoutUpdates,
181
+ remapPastedNodes: () => import_canvas17.remapPastedNodes,
182
+ reorderNodes: () => import_canvas14.reorderNodes,
183
+ repositionNodesTo: () => import_canvas17.repositionNodesTo,
184
+ resizeHandleAxes: () => import_canvas13.resizeHandleAxes,
185
+ resolveCanvasTokens: () => import_canvas19.resolveCanvasTokens,
186
+ resolvePadding: () => import_canvas18.resolvePadding,
187
+ revertShapeCombination: () => import_canvas15.revertShapeCombination,
188
+ ringSignedArea: () => import_canvas15.ringSignedArea,
189
+ runMultiNodeTransition: () => import_canvas17.runMultiNodeTransition,
190
+ serializeCanvasNodes: () => import_canvas17.serializeCanvasNodes,
191
+ setCanvasTokenMode: () => import_canvas19.setCanvasTokenMode,
192
+ shapeNodeToBezierPath: () => import_canvas16.shapeNodeToBezierPath,
193
+ shapeNodeToPolygon: () => import_canvas15.shapeNodeToPolygon,
194
+ shapeToBezierPath: () => import_canvas16.shapeToBezierPath,
195
+ shapeToPolygon: () => import_canvas15.shapeToPolygon,
196
+ sideToPosition: () => import_canvas14.sideToPosition,
197
+ simplifyRing: () => import_canvas15.simplifyRing,
198
+ snapNodeDrag: () => import_canvas14.snapNodeDrag,
199
+ snapNodeResize: () => import_canvas13.snapNodeResize,
200
+ snapResize: () => import_canvas13.snapResize,
201
+ snapToGrid: () => import_canvas13.snapToGrid,
202
+ strokeOutlineRings: () => import_canvas16.strokeOutlineRings,
203
+ subtractPaths: () => import_canvas16.subtractPaths,
204
+ subtractPolygons: () => import_canvas15.subtractPolygons,
205
+ toBezierPath: () => import_canvas16.toBezierPath,
206
+ toggleLockNodes: () => import_canvas14.toggleLockNodes,
207
+ transformBezierPath: () => import_canvas16.transformBezierPath,
208
+ unionPolygons: () => import_canvas15.unionPolygons,
209
+ unitePaths: () => import_canvas16.unitePaths,
210
+ unlockNodes: () => import_canvas14.unlockNodes,
162
211
  useCanvasArrange: () => useCanvasArrange,
163
212
  useCanvasArrangeShortcuts: () => useCanvasArrangeShortcuts,
164
213
  useCanvasAutoLayout: () => useCanvasAutoLayout,
@@ -170,9 +219,11 @@ __export(canvas_exports, {
170
219
  useCanvasMeasure: () => useCanvasMeasure,
171
220
  useCanvasScenes: () => useCanvasScenes,
172
221
  useCanvasShortcuts: () => useCanvasShortcuts,
222
+ useCanvasTokens: () => useCanvasTokens,
173
223
  useStreamingCanvas: () => useStreamingCanvas,
174
- withStyleSize: () => import_canvas12.withStyleSize,
175
- xorPolygons: () => import_canvas13.xorPolygons
224
+ withStyleSize: () => import_canvas14.withStyleSize,
225
+ writeNodeStyleProperty: () => import_canvas19.writeNodeStyleProperty,
226
+ xorPolygons: () => import_canvas15.xorPolygons
176
227
  });
177
228
  module.exports = __toCommonJS(canvas_exports);
178
229
 
@@ -1185,8 +1236,8 @@ function useCanvasMeasure(options) {
1185
1236
  }
1186
1237
 
1187
1238
  // src/canvas/index.ts
1188
- var import_canvas11 = require("@pixerate/editor/canvas");
1189
- var import_canvas12 = require("@pixerate/editor/canvas");
1239
+ var import_canvas13 = require("@pixerate/editor/canvas");
1240
+ var import_canvas14 = require("@pixerate/editor/canvas");
1190
1241
 
1191
1242
  // src/canvas/ShapeNode.tsx
1192
1243
  var import_canvas9 = require("@pixerate/editor/canvas");
@@ -1234,9 +1285,10 @@ function ShapeNode({ data, width, height, selected, className = "", children })
1234
1285
  }
1235
1286
 
1236
1287
  // src/canvas/index.ts
1237
- var import_canvas13 = require("@pixerate/editor/canvas");
1238
- var import_canvas14 = require("@pixerate/editor/canvas");
1239
1288
  var import_canvas15 = require("@pixerate/editor/canvas");
1289
+ var import_canvas16 = require("@pixerate/editor/canvas");
1290
+ var import_canvas17 = require("@pixerate/editor/canvas");
1291
+ var import_canvas18 = require("@pixerate/editor/canvas");
1240
1292
 
1241
1293
  // src/canvas/useCanvasAutoLayout.ts
1242
1294
  var import_react11 = require("react");
@@ -1288,10 +1340,172 @@ function useCanvasAutoLayout(options) {
1288
1340
  [controller, guides]
1289
1341
  );
1290
1342
  }
1343
+
1344
+ // src/canvas/useCanvasTokens.ts
1345
+ var import_react12 = require("react");
1346
+ var import_canvas11 = require("@pixerate/editor/canvas");
1347
+ function useCanvasTokens(options) {
1348
+ const { store, nodes, setNodes, modes, properties } = options;
1349
+ const state = (0, import_react12.useSyncExternalStore)(store.subscribe, store.getState, store.getState);
1350
+ const latest = (0, import_react12.useRef)({ nodes, setNodes, modes, properties });
1351
+ latest.current = { nodes, setNodes, modes, properties };
1352
+ const opts = () => ({ modes: latest.current.modes, properties: latest.current.properties });
1353
+ (0, import_react12.useEffect)(
1354
+ () => store.subscribe((event) => {
1355
+ if (event.deletedVariableIds.length === 0) return;
1356
+ latest.current.setNodes((prev) => (0, import_canvas11.detachTokenBindings)(prev, event.previous, event.deletedVariableIds, opts()));
1357
+ }),
1358
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1359
+ [store]
1360
+ );
1361
+ const modesKey = JSON.stringify(modes ?? {});
1362
+ (0, import_react12.useEffect)(() => {
1363
+ const next = (0, import_canvas11.resolveCanvasTokens)(nodes, state, opts());
1364
+ if (next !== nodes) setNodes(next);
1365
+ }, [nodes, state, modesKey, properties]);
1366
+ const bind = (0, import_react12.useCallback)(
1367
+ (ids, propertyKey, variableId) => {
1368
+ const next = (0, import_canvas11.bindCanvasToken)(latest.current.nodes, ids, propertyKey, variableId, store.getState(), opts());
1369
+ if (next !== latest.current.nodes) latest.current.setNodes(next);
1370
+ },
1371
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1372
+ [store]
1373
+ );
1374
+ const setMode = (0, import_react12.useCallback)(
1375
+ (ids, collectionId, modeId) => {
1376
+ const next = (0, import_canvas11.setCanvasTokenMode)(latest.current.nodes, ids, collectionId, modeId, store.getState(), opts());
1377
+ if (next !== latest.current.nodes) latest.current.setNodes(next);
1378
+ },
1379
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1380
+ [store]
1381
+ );
1382
+ const modesOf = (0, import_react12.useCallback)(
1383
+ (nodeId) => {
1384
+ const node = latest.current.nodes.find((n) => n.id === nodeId);
1385
+ return node ? (0, import_canvas11.getEffectiveTokenModes)(node, latest.current.nodes, store.getState(), opts()) : {};
1386
+ },
1387
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1388
+ [store]
1389
+ );
1390
+ return { state, bind, setMode, modesOf };
1391
+ }
1392
+
1393
+ // src/canvas/TokenBindingPicker.tsx
1394
+ var import_canvas12 = require("@pixerate/editor/canvas");
1395
+ var import_tokens = require("@pixerate/editor/tokens");
1396
+ var import_jsx_runtime4 = require("react/jsx-runtime");
1397
+ function TokenBindingPicker({
1398
+ state,
1399
+ nodes,
1400
+ selectedIds,
1401
+ onChange,
1402
+ options = {},
1403
+ properties,
1404
+ onError,
1405
+ className = ""
1406
+ }) {
1407
+ const selected = nodes.filter((n) => selectedIds.includes(n.id));
1408
+ const first = selected[0];
1409
+ if (!first) return null;
1410
+ let rows = (0, import_canvas12.getBindableTokenProperties)(first, options);
1411
+ if (properties) rows = properties.map((key) => rows.find((p) => p.key === key)).filter((p) => !!p);
1412
+ const modes = (0, import_canvas12.getEffectiveTokenModes)(first, nodes, state, options);
1413
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { "data-token-binding-picker": "", className: `flex flex-col gap-1 text-xs text-foreground ${className}`, children: [
1414
+ rows.map((property) => {
1415
+ const ids = new Set(selected.map((n) => (0, import_canvas12.getNodeTokenBindings)(n)[property.key] ?? ""));
1416
+ const value = ids.size === 1 ? [...ids][0] : "__mixed";
1417
+ const candidates = (0, import_canvas12.getTokensForProperty)(state, property, first);
1418
+ const resolved = value && value !== "__mixed" ? (0, import_tokens.resolveToken)(state, value, modes) : null;
1419
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("label", { className: "flex items-center gap-2", "data-token-property": property.key, children: [
1420
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "w-28 shrink-0 text-muted-foreground", children: property.label }),
1421
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
1422
+ "select",
1423
+ {
1424
+ "aria-label": `${property.label} variable`,
1425
+ className: "min-w-0 flex-1 rounded border border-border bg-background px-1 py-0.5 text-xs",
1426
+ value,
1427
+ onChange: (e) => {
1428
+ const id = e.currentTarget.value || null;
1429
+ try {
1430
+ onChange((0, import_canvas12.bindCanvasToken)(nodes, selectedIds, property.key, id, state, options));
1431
+ } catch (error) {
1432
+ onError?.(error);
1433
+ }
1434
+ },
1435
+ children: [
1436
+ value === "__mixed" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("option", { value: "__mixed", children: "Mixed" }) : null,
1437
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("option", { value: "", children: "None" }),
1438
+ candidates.map((v) => {
1439
+ const collection = state.collections.find((c) => c.id === v.collectionId);
1440
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("option", { value: v.id, children: [
1441
+ v.name,
1442
+ collection && state.collections.length > 1 ? ` (${collection.name})` : ""
1443
+ ] }, v.id);
1444
+ })
1445
+ ]
1446
+ }
1447
+ ),
1448
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "w-16 shrink-0 truncate text-right text-muted-foreground", "data-token-resolved": "", children: resolved?.ok ? property.type === "color" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1449
+ "span",
1450
+ {
1451
+ className: "inline-block h-3 w-3 rounded border border-border align-middle",
1452
+ style: { background: String(resolved.value) },
1453
+ title: String(resolved.value)
1454
+ }
1455
+ ) : String(resolved.value) : resolved ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { title: resolved.message, children: "\u26A0" }) : null })
1456
+ ] }, property.key);
1457
+ }),
1458
+ state.collections.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "text-muted-foreground", children: "No variables yet." }) : null
1459
+ ] });
1460
+ }
1461
+ function TokenModeSwitcher({
1462
+ state,
1463
+ nodes,
1464
+ nodeIds,
1465
+ onChange,
1466
+ options = {},
1467
+ showSingleMode = false,
1468
+ className = ""
1469
+ }) {
1470
+ const first = nodes.find((n) => nodeIds.includes(n.id));
1471
+ if (!first) return null;
1472
+ const own = (0, import_canvas12.getNodeTokenModes)(first);
1473
+ const parent = first.parentId ? nodes.find((n) => n.id === first.parentId) : void 0;
1474
+ const inherited = parent ? (0, import_canvas12.getEffectiveTokenModes)(parent, nodes, state, options) : { ...options.modes };
1475
+ const collections = state.collections.filter((c) => showSingleMode || c.modes.length > 1);
1476
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { "data-token-mode-switcher": "", className: `flex flex-col gap-1 text-xs text-foreground ${className}`, children: collections.map((collection) => {
1477
+ const auto = (0, import_tokens.getCurrentMode)(collection, inherited);
1478
+ const explicit = collection.modes.some((m) => m.id === own[collection.id]) ? own[collection.id] : "";
1479
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("label", { className: "flex items-center gap-2", "data-token-collection": collection.id, children: [
1480
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "w-28 shrink-0 truncate text-muted-foreground", children: collection.name }),
1481
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
1482
+ "select",
1483
+ {
1484
+ "aria-label": `${collection.name} mode`,
1485
+ className: "min-w-0 flex-1 rounded border border-border bg-background px-1 py-0.5 text-xs",
1486
+ value: explicit,
1487
+ onChange: (e) => onChange((0, import_canvas12.setCanvasTokenMode)(nodes, nodeIds, collection.id, e.currentTarget.value || null, state, options)),
1488
+ children: [
1489
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("option", { value: "", children: [
1490
+ "Auto (",
1491
+ auto.name,
1492
+ ")"
1493
+ ] }),
1494
+ collection.modes.map((m) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("option", { value: m.id, children: m.name }, m.id))
1495
+ ]
1496
+ }
1497
+ )
1498
+ ] }, collection.id);
1499
+ }) });
1500
+ }
1501
+
1502
+ // src/canvas/index.ts
1503
+ var import_canvas19 = require("@pixerate/editor/canvas");
1291
1504
  // Annotate the CommonJS export names for ESM import in node:
1292
1505
  0 && (module.exports = {
1293
1506
  AUTO_LAYOUT_DATA_KEY,
1294
1507
  AgentPresenceLayer,
1508
+ CANVAS_TOKEN_PROPERTIES,
1295
1509
  CHILD_LAYOUT_DATA_KEY,
1296
1510
  CONNECTION_LINE_TYPES,
1297
1511
  CanvasGuidesLayer,
@@ -1304,15 +1518,29 @@ function useCanvasAutoLayout(options) {
1304
1518
  SHAPE_NODE_TYPE,
1305
1519
  SHAPE_OPERATIONS,
1306
1520
  ShapeNode,
1521
+ TOKEN_BINDINGS_DATA_KEY,
1522
+ TOKEN_MODES_DATA_KEY,
1523
+ TokenBindingPicker,
1524
+ TokenModeSwitcher,
1307
1525
  alignNodes,
1308
1526
  applyConstraints,
1309
1527
  applyNodeUpdates,
1310
1528
  applyShapeCombination,
1529
+ applyShapeReplacement,
1530
+ bezierPathArea,
1531
+ bezierPathBounds,
1532
+ bezierPathLength,
1533
+ bezierPathPointAtLength,
1534
+ bezierPathSignedArea,
1535
+ bezierPathToSvg,
1536
+ bindCanvasToken,
1311
1537
  blendLayout,
1312
1538
  boundsOf,
1313
1539
  calculateDagreReflowDisplacement,
1314
1540
  calculateDirectionalDisplacement,
1315
1541
  canCombineShapeNodes,
1542
+ canOffsetShapeNodes,
1543
+ canOutlineShapeNodeStrokes,
1316
1544
  canvasHeight,
1317
1545
  centerNodes,
1318
1546
  centre,
@@ -1321,6 +1549,7 @@ function useCanvasAutoLayout(options) {
1321
1549
  computeNodesBoundingBox,
1322
1550
  computeSnapGuides,
1323
1551
  connectedOnly,
1552
+ countPathSegments,
1324
1553
  createBezierTrajectory,
1325
1554
  createCanvasAutoLayoutController,
1326
1555
  createCanvasScenesStore,
@@ -1329,12 +1558,17 @@ function useCanvasAutoLayout(options) {
1329
1558
  createNodeGuideIndex,
1330
1559
  cubicPointAt,
1331
1560
  cubicsToPathData,
1561
+ dashContours,
1332
1562
  defaultEasing,
1563
+ detachTokenBindings,
1564
+ distanceToBezierPath,
1333
1565
  distributeNodes,
1566
+ dividePaths,
1334
1567
  dividePolygons,
1335
1568
  ensureLayout,
1336
1569
  estimateCanvasHeight,
1337
1570
  estimateNodeSize,
1571
+ excludePaths,
1338
1572
  findConnectorSnap,
1339
1573
  fitCubicRun,
1340
1574
  fitCubics,
@@ -1348,8 +1582,11 @@ function useCanvasAutoLayout(options) {
1348
1582
  getAutoLayout,
1349
1583
  getAutoLayoutGrid,
1350
1584
  getAutoLayoutInsertTarget,
1585
+ getBindableTokenProperties,
1586
+ getCanvasTokenProperty,
1351
1587
  getCenteredNodePosition,
1352
1588
  getChildLayout,
1589
+ getEffectiveTokenModes,
1353
1590
  getFlowChildren,
1354
1591
  getLayoutParent,
1355
1592
  getLayoutSizing,
@@ -1357,11 +1594,18 @@ function useCanvasAutoLayout(options) {
1357
1594
  getNodeRect,
1358
1595
  getNodeShape,
1359
1596
  getNodeSize,
1597
+ getNodeTokenBindings,
1598
+ getNodeTokenModes,
1360
1599
  getResizingNodeRect,
1361
1600
  getShapeRenderData,
1362
1601
  getShapeSvg,
1602
+ getTokenPropertyScope,
1603
+ getTokensForProperty,
1363
1604
  handlePoint,
1605
+ hasVisibleStroke,
1364
1606
  inferResizeHandle,
1607
+ inspectNodeTokens,
1608
+ intersectPaths,
1365
1609
  intersectPolygons,
1366
1610
  invertNodeUpdates,
1367
1611
  isAutoLayoutFrame,
@@ -1393,18 +1637,27 @@ function useCanvasAutoLayout(options) {
1393
1637
  multiPolygonArea,
1394
1638
  multiPolygonBounds,
1395
1639
  nearestHandlePositions,
1640
+ normalizeBezierPath,
1641
+ offsetPath,
1642
+ offsetShapeNodes,
1396
1643
  oppositePosition,
1644
+ outlineShapeNodeStrokes,
1645
+ outlineStroke,
1397
1646
  overlaps,
1398
1647
  parseCanvasClipboardData,
1399
1648
  parseCanvasScenes,
1400
1649
  parseSvgPath,
1650
+ pathBoolean,
1401
1651
  placeBeside,
1652
+ pointInBezierPath,
1402
1653
  pointInMultiPolygon,
1403
1654
  pointInRings,
1404
1655
  polygonArea,
1405
1656
  polygonBoolean,
1406
1657
  polygonToSvgPath,
1407
1658
  positionToSide,
1659
+ pruneCanvasTokenModes,
1660
+ readNodeStyleProperty,
1408
1661
  readStyleSize,
1409
1662
  realClock,
1410
1663
  relayoutUpdates,
@@ -1412,12 +1665,16 @@ function useCanvasAutoLayout(options) {
1412
1665
  reorderNodes,
1413
1666
  repositionNodesTo,
1414
1667
  resizeHandleAxes,
1668
+ resolveCanvasTokens,
1415
1669
  resolvePadding,
1416
1670
  revertShapeCombination,
1417
1671
  ringSignedArea,
1418
1672
  runMultiNodeTransition,
1419
1673
  serializeCanvasNodes,
1674
+ setCanvasTokenMode,
1675
+ shapeNodeToBezierPath,
1420
1676
  shapeNodeToPolygon,
1677
+ shapeToBezierPath,
1421
1678
  shapeToPolygon,
1422
1679
  sideToPosition,
1423
1680
  simplifyRing,
@@ -1425,9 +1682,14 @@ function useCanvasAutoLayout(options) {
1425
1682
  snapNodeResize,
1426
1683
  snapResize,
1427
1684
  snapToGrid,
1685
+ strokeOutlineRings,
1686
+ subtractPaths,
1428
1687
  subtractPolygons,
1688
+ toBezierPath,
1429
1689
  toggleLockNodes,
1690
+ transformBezierPath,
1430
1691
  unionPolygons,
1692
+ unitePaths,
1431
1693
  unlockNodes,
1432
1694
  useCanvasArrange,
1433
1695
  useCanvasArrangeShortcuts,
@@ -1440,8 +1702,10 @@ function useCanvasAutoLayout(options) {
1440
1702
  useCanvasMeasure,
1441
1703
  useCanvasScenes,
1442
1704
  useCanvasShortcuts,
1705
+ useCanvasTokens,
1443
1706
  useStreamingCanvas,
1444
1707
  withStyleSize,
1708
+ writeNodeStyleProperty,
1445
1709
  xorPolygons
1446
1710
  });
1447
1711
  //# sourceMappingURL=index.cjs.map