@pixerate/editor-react 0.15.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 (54) hide show
  1. package/README.md +6 -2
  2. package/dist/canvas/index.cjs +484 -119
  3. package/dist/canvas/index.cjs.map +1 -1
  4. package/dist/canvas/index.d.cts +122 -3
  5. package/dist/canvas/index.d.ts +122 -3
  6. package/dist/canvas/index.js +380 -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-XWFU2CSG.js +167 -0
  13. package/dist/chunk-XWFU2CSG.js.map +1 -0
  14. package/dist/chunk-ZU54BMDC.js +2128 -0
  15. package/dist/chunk-ZU54BMDC.js.map +1 -0
  16. package/dist/generation/index.cjs +525 -0
  17. package/dist/generation/index.cjs.map +1 -0
  18. package/dist/generation/index.d.cts +124 -0
  19. package/dist/generation/index.d.ts +124 -0
  20. package/dist/generation/index.js +19 -0
  21. package/dist/generation/index.js.map +1 -0
  22. package/dist/image-editor/index.cjs +988 -337
  23. package/dist/image-editor/index.cjs.map +1 -1
  24. package/dist/image-editor/index.d.cts +92 -2
  25. package/dist/image-editor/index.d.ts +92 -2
  26. package/dist/image-editor/index.js +17 -3
  27. package/dist/index.cjs +3628 -754
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +226 -5
  30. package/dist/index.d.ts +226 -5
  31. package/dist/index.js +868 -77
  32. package/dist/index.js.map +1 -1
  33. package/dist/persistence/index.cjs +191 -0
  34. package/dist/persistence/index.cjs.map +1 -0
  35. package/dist/persistence/index.d.cts +77 -0
  36. package/dist/persistence/index.d.ts +77 -0
  37. package/dist/persistence/index.js +9 -0
  38. package/dist/persistence/index.js.map +1 -0
  39. package/dist/spreadsheet/index.cjs +949 -111
  40. package/dist/spreadsheet/index.cjs.map +1 -1
  41. package/dist/spreadsheet/index.d.cts +121 -7
  42. package/dist/spreadsheet/index.d.ts +121 -7
  43. package/dist/spreadsheet/index.js +11 -1
  44. package/dist/tokens/index.cjs +395 -0
  45. package/dist/tokens/index.cjs.map +1 -0
  46. package/dist/tokens/index.d.cts +54 -0
  47. package/dist/tokens/index.d.ts +54 -0
  48. package/dist/tokens/index.js +375 -0
  49. package/dist/tokens/index.js.map +1 -0
  50. package/package.json +26 -2
  51. package/dist/chunk-LPFZMZ3L.js +0 -1461
  52. package/dist/chunk-LPFZMZ3L.js.map +0 -1
  53. package/dist/chunk-QVQYYHJ5.js +0 -1161
  54. package/dist/chunk-QVQYYHJ5.js.map +0 -1
@@ -20,125 +20,197 @@ 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_canvas18.AUTO_LAYOUT_DATA_KEY,
23
24
  AgentPresenceLayer: () => AgentPresenceLayer,
24
- CONNECTION_LINE_TYPES: () => import_canvas11.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,
25
28
  CanvasGuidesLayer: () => CanvasGuidesLayer,
26
- CanvasScenesStore: () => import_canvas11.CanvasScenesStore,
27
- DEFAULT_ARRANGE_SHORTCUTS: () => import_canvas11.DEFAULT_ARRANGE_SHORTCUTS,
28
- ManualClock: () => import_canvas13.ManualClock,
29
- RESIZE_HANDLES: () => import_canvas10.RESIZE_HANDLES,
30
- SHAPE_DATA_KEY: () => import_canvas12.SHAPE_DATA_KEY,
31
- SHAPE_KINDS: () => import_canvas12.SHAPE_KINDS,
32
- SHAPE_NODE_TYPE: () => import_canvas12.SHAPE_NODE_TYPE,
33
- SHAPE_OPERATIONS: () => import_canvas12.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,
34
37
  ShapeNode: () => ShapeNode,
35
- alignNodes: () => import_canvas11.alignNodes,
36
- applyNodeUpdates: () => import_canvas11.applyNodeUpdates,
37
- applyShapeCombination: () => import_canvas12.applyShapeCombination,
38
- blendLayout: () => import_canvas13.blendLayout,
39
- boundsOf: () => import_canvas13.boundsOf,
40
- calculateDagreReflowDisplacement: () => import_canvas13.calculateDagreReflowDisplacement,
41
- calculateDirectionalDisplacement: () => import_canvas13.calculateDirectionalDisplacement,
42
- canCombineShapeNodes: () => import_canvas12.canCombineShapeNodes,
43
- canvasHeight: () => import_canvas13.canvasHeight,
44
- centerNodes: () => import_canvas13.centerNodes,
45
- centre: () => import_canvas13.centre,
46
- combineShapeNodes: () => import_canvas12.combineShapeNodes,
47
- computeNodesBoundingBox: () => import_canvas13.computeNodesBoundingBox,
48
- computeSnapGuides: () => import_canvas11.computeSnapGuides,
49
- connectedOnly: () => import_canvas13.connectedOnly,
50
- createBezierTrajectory: () => import_canvas13.createBezierTrajectory,
51
- createCanvasScenesStore: () => import_canvas11.createCanvasScenesStore,
52
- createFanOutTrajectory: () => import_canvas13.createFanOutTrajectory,
53
- createGuideIndex: () => import_canvas11.createGuideIndex,
54
- createNodeGuideIndex: () => import_canvas11.createNodeGuideIndex,
55
- cubicPointAt: () => import_canvas10.cubicPointAt,
56
- cubicsToPathData: () => import_canvas10.cubicsToPathData,
57
- defaultEasing: () => import_canvas13.defaultEasing,
58
- distributeNodes: () => import_canvas11.distributeNodes,
59
- dividePolygons: () => import_canvas12.dividePolygons,
60
- ensureLayout: () => import_canvas13.ensureLayout,
61
- estimateCanvasHeight: () => import_canvas13.estimateCanvasHeight,
62
- estimateNodeSize: () => import_canvas13.estimateNodeSize,
63
- findConnectorSnap: () => import_canvas11.findConnectorSnap,
64
- fitCubicRun: () => import_canvas10.fitCubicRun,
65
- fitCubics: () => import_canvas10.fitCubics,
66
- fitFreehandPath: () => import_canvas10.fitFreehandPath,
67
- fitPathData: () => import_canvas10.fitPathData,
68
- fitViewportToNodes: () => import_canvas11.fitViewportToNodes,
69
- fitViewportToRect: () => import_canvas11.fitViewportToRect,
70
- flattenSvgPath: () => import_canvas12.flattenSvgPath,
71
- flowSide: () => import_canvas13.flowSide,
72
- getAbsolutePosition: () => import_canvas11.getAbsolutePosition,
73
- getCenteredNodePosition: () => import_canvas13.getCenteredNodePosition,
74
- getLayoutedNodes: () => import_canvas13.getLayoutedNodes,
75
- getNodeRect: () => import_canvas11.getNodeRect,
76
- getNodeShape: () => import_canvas12.getNodeShape,
77
- getNodeSize: () => import_canvas11.getNodeSize,
78
- getResizingNodeRect: () => import_canvas10.getResizingNodeRect,
79
- getShapeRenderData: () => import_canvas12.getShapeRenderData,
80
- getShapeSvg: () => import_canvas12.getShapeSvg,
81
- handlePoint: () => import_canvas11.handlePoint,
82
- inferResizeHandle: () => import_canvas10.inferResizeHandle,
83
- intersectPolygons: () => import_canvas12.intersectPolygons,
84
- invertNodeUpdates: () => import_canvas11.invertNodeUpdates,
85
- isEventFromTextInput: () => import_canvas13.isEventFromTextInput,
86
- isLocked: () => import_canvas11.isLocked,
87
- isMeasureModifierHeld: () => import_canvas10.isMeasureModifierHeld,
88
- isShapeDescription: () => import_canvas12.isShapeDescription,
89
- isShapeNode: () => import_canvas12.isShapeNode,
90
- isStraightCubic: () => import_canvas10.isStraightCubic,
91
- isValidCanvasNode: () => import_canvas13.isValidCanvasNode,
92
- isValidUrl: () => import_canvas13.isValidUrl,
93
- layoutBounds: () => import_canvas13.layoutBounds,
94
- linearPositionTrajectory: () => import_canvas13.linearPositionTrajectory,
95
- linearTrajectory: () => import_canvas13.linearTrajectory,
96
- lockNodes: () => import_canvas11.lockNodes,
97
- matchArrangeShortcut: () => import_canvas11.matchArrangeShortcut,
98
- matchSize: () => import_canvas11.matchSize,
99
- measureBetween: () => import_canvas10.measureBetween,
100
- measureLabel: () => import_canvas10.measureLabel,
101
- measureSelection: () => import_canvas10.measureSelection,
102
- measureToLine: () => import_canvas10.measureToLine,
103
- multiPolygonArea: () => import_canvas12.multiPolygonArea,
104
- multiPolygonBounds: () => import_canvas12.multiPolygonBounds,
105
- nearestHandlePositions: () => import_canvas11.nearestHandlePositions,
106
- oppositePosition: () => import_canvas11.oppositePosition,
107
- overlaps: () => import_canvas13.overlaps,
108
- parseCanvasClipboardData: () => import_canvas13.parseCanvasClipboardData,
109
- parseCanvasScenes: () => import_canvas11.parseCanvasScenes,
110
- parseSvgPath: () => import_canvas12.parseSvgPath,
111
- placeBeside: () => import_canvas13.placeBeside,
112
- pointInMultiPolygon: () => import_canvas12.pointInMultiPolygon,
113
- pointInRings: () => import_canvas12.pointInRings,
114
- polygonArea: () => import_canvas12.polygonArea,
115
- polygonBoolean: () => import_canvas12.polygonBoolean,
116
- polygonToSvgPath: () => import_canvas12.polygonToSvgPath,
117
- positionToSide: () => import_canvas11.positionToSide,
118
- readStyleSize: () => import_canvas11.readStyleSize,
119
- realClock: () => import_canvas13.realClock,
120
- remapPastedNodes: () => import_canvas13.remapPastedNodes,
121
- reorderNodes: () => import_canvas11.reorderNodes,
122
- repositionNodesTo: () => import_canvas13.repositionNodesTo,
123
- resizeHandleAxes: () => import_canvas10.resizeHandleAxes,
124
- revertShapeCombination: () => import_canvas12.revertShapeCombination,
125
- ringSignedArea: () => import_canvas12.ringSignedArea,
126
- runMultiNodeTransition: () => import_canvas13.runMultiNodeTransition,
127
- serializeCanvasNodes: () => import_canvas13.serializeCanvasNodes,
128
- shapeNodeToPolygon: () => import_canvas12.shapeNodeToPolygon,
129
- shapeToPolygon: () => import_canvas12.shapeToPolygon,
130
- sideToPosition: () => import_canvas11.sideToPosition,
131
- simplifyRing: () => import_canvas12.simplifyRing,
132
- snapNodeDrag: () => import_canvas11.snapNodeDrag,
133
- snapNodeResize: () => import_canvas10.snapNodeResize,
134
- snapResize: () => import_canvas10.snapResize,
135
- snapToGrid: () => import_canvas10.snapToGrid,
136
- subtractPolygons: () => import_canvas12.subtractPolygons,
137
- toggleLockNodes: () => import_canvas11.toggleLockNodes,
138
- unionPolygons: () => import_canvas12.unionPolygons,
139
- unlockNodes: () => import_canvas11.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,
140
211
  useCanvasArrange: () => useCanvasArrange,
141
212
  useCanvasArrangeShortcuts: () => useCanvasArrangeShortcuts,
213
+ useCanvasAutoLayout: () => useCanvasAutoLayout,
142
214
  useCanvasClipboard: () => useCanvasClipboard,
143
215
  useCanvasDocking: () => useCanvasDocking,
144
216
  useCanvasExplosion: () => useCanvasExplosion,
@@ -147,9 +219,11 @@ __export(canvas_exports, {
147
219
  useCanvasMeasure: () => useCanvasMeasure,
148
220
  useCanvasScenes: () => useCanvasScenes,
149
221
  useCanvasShortcuts: () => useCanvasShortcuts,
222
+ useCanvasTokens: () => useCanvasTokens,
150
223
  useStreamingCanvas: () => useStreamingCanvas,
151
- withStyleSize: () => import_canvas11.withStyleSize,
152
- xorPolygons: () => import_canvas12.xorPolygons
224
+ withStyleSize: () => import_canvas14.withStyleSize,
225
+ writeNodeStyleProperty: () => import_canvas19.writeNodeStyleProperty,
226
+ xorPolygons: () => import_canvas15.xorPolygons
153
227
  });
154
228
  module.exports = __toCommonJS(canvas_exports);
155
229
 
@@ -924,6 +998,9 @@ function useCanvasArrange(options) {
924
998
  get rectOptions() {
925
999
  return optionsRef.current.rectOptions;
926
1000
  },
1001
+ get autoLayout() {
1002
+ return optionsRef.current.autoLayout;
1003
+ },
927
1004
  onGuidesChange: setGuides
928
1005
  }),
929
1006
  []
@@ -1159,8 +1236,8 @@ function useCanvasMeasure(options) {
1159
1236
  }
1160
1237
 
1161
1238
  // src/canvas/index.ts
1162
- var import_canvas10 = require("@pixerate/editor/canvas");
1163
- var import_canvas11 = require("@pixerate/editor/canvas");
1239
+ var import_canvas13 = require("@pixerate/editor/canvas");
1240
+ var import_canvas14 = require("@pixerate/editor/canvas");
1164
1241
 
1165
1242
  // src/canvas/ShapeNode.tsx
1166
1243
  var import_canvas9 = require("@pixerate/editor/canvas");
@@ -1208,11 +1285,228 @@ function ShapeNode({ data, width, height, selected, className = "", children })
1208
1285
  }
1209
1286
 
1210
1287
  // src/canvas/index.ts
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");
1292
+
1293
+ // src/canvas/useCanvasAutoLayout.ts
1294
+ var import_react11 = require("react");
1295
+ var import_canvas10 = require("@pixerate/editor/canvas");
1296
+ function useCanvasAutoLayout(options) {
1297
+ const [guides, setGuides] = (0, import_react11.useState)([]);
1298
+ const nodesRef = (0, import_react11.useRef)(options.nodes);
1299
+ nodesRef.current = options.nodes;
1300
+ const optionsRef = (0, import_react11.useRef)(options);
1301
+ optionsRef.current = options;
1302
+ const controller = (0, import_react11.useMemo)(
1303
+ () => (0, import_canvas10.createCanvasAutoLayoutController)({
1304
+ getNodes: () => nodesRef.current,
1305
+ setNodes: (next) => {
1306
+ nodesRef.current = next;
1307
+ optionsRef.current.setNodes(next);
1308
+ },
1309
+ get history() {
1310
+ return optionsRef.current.history;
1311
+ },
1312
+ get enabled() {
1313
+ return optionsRef.current.enabled;
1314
+ },
1315
+ get dragReorder() {
1316
+ return optionsRef.current.dragReorder;
1317
+ },
1318
+ get measure() {
1319
+ return optionsRef.current.measure;
1320
+ },
1321
+ get rectOptions() {
1322
+ return optionsRef.current.rectOptions;
1323
+ },
1324
+ onGuidesChange: setGuides
1325
+ }),
1326
+ []
1327
+ );
1328
+ (0, import_react11.useLayoutEffect)(() => {
1329
+ if (controller.hasPending) controller.flush();
1330
+ }, [options.nodes, controller]);
1331
+ return (0, import_react11.useMemo)(
1332
+ () => ({
1333
+ ...controller,
1334
+ /** Drop marker of the active reorder drag (flow coordinates). */
1335
+ guides,
1336
+ get hasPending() {
1337
+ return controller.hasPending;
1338
+ }
1339
+ }),
1340
+ [controller, guides]
1341
+ );
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
1211
1394
  var import_canvas12 = require("@pixerate/editor/canvas");
1212
- var import_canvas13 = 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");
1213
1504
  // Annotate the CommonJS export names for ESM import in node:
1214
1505
  0 && (module.exports = {
1506
+ AUTO_LAYOUT_DATA_KEY,
1215
1507
  AgentPresenceLayer,
1508
+ CANVAS_TOKEN_PROPERTIES,
1509
+ CHILD_LAYOUT_DATA_KEY,
1216
1510
  CONNECTION_LINE_TYPES,
1217
1511
  CanvasGuidesLayer,
1218
1512
  CanvasScenesStore,
@@ -1224,34 +1518,57 @@ var import_canvas13 = require("@pixerate/editor/canvas");
1224
1518
  SHAPE_NODE_TYPE,
1225
1519
  SHAPE_OPERATIONS,
1226
1520
  ShapeNode,
1521
+ TOKEN_BINDINGS_DATA_KEY,
1522
+ TOKEN_MODES_DATA_KEY,
1523
+ TokenBindingPicker,
1524
+ TokenModeSwitcher,
1227
1525
  alignNodes,
1526
+ applyConstraints,
1228
1527
  applyNodeUpdates,
1229
1528
  applyShapeCombination,
1529
+ applyShapeReplacement,
1530
+ bezierPathArea,
1531
+ bezierPathBounds,
1532
+ bezierPathLength,
1533
+ bezierPathPointAtLength,
1534
+ bezierPathSignedArea,
1535
+ bezierPathToSvg,
1536
+ bindCanvasToken,
1230
1537
  blendLayout,
1231
1538
  boundsOf,
1232
1539
  calculateDagreReflowDisplacement,
1233
1540
  calculateDirectionalDisplacement,
1234
1541
  canCombineShapeNodes,
1542
+ canOffsetShapeNodes,
1543
+ canOutlineShapeNodeStrokes,
1235
1544
  canvasHeight,
1236
1545
  centerNodes,
1237
1546
  centre,
1547
+ clampLayoutSize,
1238
1548
  combineShapeNodes,
1239
1549
  computeNodesBoundingBox,
1240
1550
  computeSnapGuides,
1241
1551
  connectedOnly,
1552
+ countPathSegments,
1242
1553
  createBezierTrajectory,
1554
+ createCanvasAutoLayoutController,
1243
1555
  createCanvasScenesStore,
1244
1556
  createFanOutTrajectory,
1245
1557
  createGuideIndex,
1246
1558
  createNodeGuideIndex,
1247
1559
  cubicPointAt,
1248
1560
  cubicsToPathData,
1561
+ dashContours,
1249
1562
  defaultEasing,
1563
+ detachTokenBindings,
1564
+ distanceToBezierPath,
1250
1565
  distributeNodes,
1566
+ dividePaths,
1251
1567
  dividePolygons,
1252
1568
  ensureLayout,
1253
1569
  estimateCanvasHeight,
1254
1570
  estimateNodeSize,
1571
+ excludePaths,
1255
1572
  findConnectorSnap,
1256
1573
  fitCubicRun,
1257
1574
  fitCubics,
@@ -1262,18 +1579,36 @@ var import_canvas13 = require("@pixerate/editor/canvas");
1262
1579
  flattenSvgPath,
1263
1580
  flowSide,
1264
1581
  getAbsolutePosition,
1582
+ getAutoLayout,
1583
+ getAutoLayoutGrid,
1584
+ getAutoLayoutInsertTarget,
1585
+ getBindableTokenProperties,
1586
+ getCanvasTokenProperty,
1265
1587
  getCenteredNodePosition,
1588
+ getChildLayout,
1589
+ getEffectiveTokenModes,
1590
+ getFlowChildren,
1591
+ getLayoutParent,
1592
+ getLayoutSizing,
1266
1593
  getLayoutedNodes,
1267
1594
  getNodeRect,
1268
1595
  getNodeShape,
1269
1596
  getNodeSize,
1597
+ getNodeTokenBindings,
1598
+ getNodeTokenModes,
1270
1599
  getResizingNodeRect,
1271
1600
  getShapeRenderData,
1272
1601
  getShapeSvg,
1602
+ getTokenPropertyScope,
1603
+ getTokensForProperty,
1273
1604
  handlePoint,
1605
+ hasVisibleStroke,
1274
1606
  inferResizeHandle,
1607
+ inspectNodeTokens,
1608
+ intersectPaths,
1275
1609
  intersectPolygons,
1276
1610
  invertNodeUpdates,
1611
+ isAutoLayoutFrame,
1277
1612
  isEventFromTextInput,
1278
1613
  isLocked,
1279
1614
  isMeasureModifierHeld,
@@ -1282,42 +1617,64 @@ var import_canvas13 = require("@pixerate/editor/canvas");
1282
1617
  isStraightCubic,
1283
1618
  isValidCanvasNode,
1284
1619
  isValidUrl,
1620
+ layoutAll,
1285
1621
  layoutBounds,
1622
+ layoutFrame,
1623
+ layoutUp,
1624
+ layoutUpMany,
1286
1625
  linearPositionTrajectory,
1287
1626
  linearTrajectory,
1288
1627
  lockNodes,
1628
+ makeSizingCoherent,
1289
1629
  matchArrangeShortcut,
1290
1630
  matchSize,
1291
1631
  measureBetween,
1292
1632
  measureLabel,
1293
1633
  measureSelection,
1294
1634
  measureToLine,
1635
+ mergeNodeUpdates,
1636
+ moveLayoutChild,
1295
1637
  multiPolygonArea,
1296
1638
  multiPolygonBounds,
1297
1639
  nearestHandlePositions,
1640
+ normalizeBezierPath,
1641
+ offsetPath,
1642
+ offsetShapeNodes,
1298
1643
  oppositePosition,
1644
+ outlineShapeNodeStrokes,
1645
+ outlineStroke,
1299
1646
  overlaps,
1300
1647
  parseCanvasClipboardData,
1301
1648
  parseCanvasScenes,
1302
1649
  parseSvgPath,
1650
+ pathBoolean,
1303
1651
  placeBeside,
1652
+ pointInBezierPath,
1304
1653
  pointInMultiPolygon,
1305
1654
  pointInRings,
1306
1655
  polygonArea,
1307
1656
  polygonBoolean,
1308
1657
  polygonToSvgPath,
1309
1658
  positionToSide,
1659
+ pruneCanvasTokenModes,
1660
+ readNodeStyleProperty,
1310
1661
  readStyleSize,
1311
1662
  realClock,
1663
+ relayoutUpdates,
1312
1664
  remapPastedNodes,
1313
1665
  reorderNodes,
1314
1666
  repositionNodesTo,
1315
1667
  resizeHandleAxes,
1668
+ resolveCanvasTokens,
1669
+ resolvePadding,
1316
1670
  revertShapeCombination,
1317
1671
  ringSignedArea,
1318
1672
  runMultiNodeTransition,
1319
1673
  serializeCanvasNodes,
1674
+ setCanvasTokenMode,
1675
+ shapeNodeToBezierPath,
1320
1676
  shapeNodeToPolygon,
1677
+ shapeToBezierPath,
1321
1678
  shapeToPolygon,
1322
1679
  sideToPosition,
1323
1680
  simplifyRing,
@@ -1325,12 +1682,18 @@ var import_canvas13 = require("@pixerate/editor/canvas");
1325
1682
  snapNodeResize,
1326
1683
  snapResize,
1327
1684
  snapToGrid,
1685
+ strokeOutlineRings,
1686
+ subtractPaths,
1328
1687
  subtractPolygons,
1688
+ toBezierPath,
1329
1689
  toggleLockNodes,
1690
+ transformBezierPath,
1330
1691
  unionPolygons,
1692
+ unitePaths,
1331
1693
  unlockNodes,
1332
1694
  useCanvasArrange,
1333
1695
  useCanvasArrangeShortcuts,
1696
+ useCanvasAutoLayout,
1334
1697
  useCanvasClipboard,
1335
1698
  useCanvasDocking,
1336
1699
  useCanvasExplosion,
@@ -1339,8 +1702,10 @@ var import_canvas13 = require("@pixerate/editor/canvas");
1339
1702
  useCanvasMeasure,
1340
1703
  useCanvasScenes,
1341
1704
  useCanvasShortcuts,
1705
+ useCanvasTokens,
1342
1706
  useStreamingCanvas,
1343
1707
  withStyleSize,
1708
+ writeNodeStyleProperty,
1344
1709
  xorPolygons
1345
1710
  });
1346
1711
  //# sourceMappingURL=index.cjs.map