@uipath/apollo-react 4.45.0 → 4.46.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 (109) hide show
  1. package/dist/canvas/components/Edges/CanvasEdge.cjs +197 -0
  2. package/dist/canvas/components/Edges/CanvasEdge.d.ts +3 -0
  3. package/dist/canvas/components/Edges/CanvasEdge.d.ts.map +1 -0
  4. package/dist/canvas/components/Edges/CanvasEdge.js +163 -0
  5. package/dist/canvas/components/Edges/SequenceEdge.cjs +18 -200
  6. package/dist/canvas/components/Edges/SequenceEdge.d.ts +2 -2
  7. package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
  8. package/dist/canvas/components/Edges/SequenceEdge.js +19 -201
  9. package/dist/canvas/components/Edges/index.cjs +32 -3
  10. package/dist/canvas/components/Edges/index.d.ts +4 -0
  11. package/dist/canvas/components/Edges/index.d.ts.map +1 -1
  12. package/dist/canvas/components/Edges/index.js +3 -0
  13. package/dist/canvas/components/Edges/shared/areEdgePropsEqual.cjs +54 -0
  14. package/dist/canvas/components/Edges/shared/areEdgePropsEqual.d.ts +3 -0
  15. package/dist/canvas/components/Edges/shared/areEdgePropsEqual.d.ts.map +1 -0
  16. package/dist/canvas/components/Edges/shared/areEdgePropsEqual.js +20 -0
  17. package/dist/canvas/components/Edges/shared/constants.cjs +107 -0
  18. package/dist/canvas/components/Edges/shared/constants.d.ts +33 -0
  19. package/dist/canvas/components/Edges/shared/constants.d.ts.map +1 -0
  20. package/dist/canvas/components/Edges/shared/constants.js +55 -0
  21. package/dist/canvas/components/Edges/shared/geometry.cjs +489 -0
  22. package/dist/canvas/components/Edges/shared/geometry.d.ts +20 -0
  23. package/dist/canvas/components/Edges/shared/geometry.d.ts.map +1 -0
  24. package/dist/canvas/components/Edges/shared/geometry.js +416 -0
  25. package/dist/canvas/components/Edges/shared/hooks/index.cjs +48 -0
  26. package/dist/canvas/components/Edges/shared/hooks/index.d.ts +5 -0
  27. package/dist/canvas/components/Edges/shared/hooks/index.d.ts.map +1 -0
  28. package/dist/canvas/components/Edges/shared/hooks/index.js +5 -0
  29. package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.cjs +103 -0
  30. package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.d.ts +30 -0
  31. package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.d.ts.map +1 -0
  32. package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.js +69 -0
  33. package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.cjs +69 -0
  34. package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.d.ts +3 -0
  35. package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.d.ts.map +1 -0
  36. package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.js +35 -0
  37. package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.cjs +57 -0
  38. package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.d.ts +13 -0
  39. package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.d.ts.map +1 -0
  40. package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.js +23 -0
  41. package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.cjs +98 -0
  42. package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.d.ts +18 -0
  43. package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.d.ts.map +1 -0
  44. package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.js +64 -0
  45. package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.cjs +184 -0
  46. package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.d.ts +23 -0
  47. package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.d.ts.map +1 -0
  48. package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.js +150 -0
  49. package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.cjs +57 -0
  50. package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.d.ts +10 -0
  51. package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.d.ts.map +1 -0
  52. package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.js +23 -0
  53. package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.cjs +66 -0
  54. package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.d.ts +8 -0
  55. package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.d.ts.map +1 -0
  56. package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.js +32 -0
  57. package/dist/canvas/components/Edges/shared/primitives/EdgePath.cjs +84 -0
  58. package/dist/canvas/components/Edges/shared/primitives/EdgePath.d.ts +16 -0
  59. package/dist/canvas/components/Edges/shared/primitives/EdgePath.d.ts.map +1 -0
  60. package/dist/canvas/components/Edges/shared/primitives/EdgePath.js +50 -0
  61. package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.cjs +117 -0
  62. package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.d.ts +9 -0
  63. package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.d.ts.map +1 -0
  64. package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.js +83 -0
  65. package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.cjs +75 -0
  66. package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.d.ts +10 -0
  67. package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.d.ts.map +1 -0
  68. package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.js +41 -0
  69. package/dist/canvas/components/Edges/shared/primitives/index.cjs +52 -0
  70. package/dist/canvas/components/Edges/shared/primitives/index.d.ts +11 -0
  71. package/dist/canvas/components/Edges/shared/primitives/index.d.ts.map +1 -0
  72. package/dist/canvas/components/Edges/shared/primitives/index.js +6 -0
  73. package/dist/canvas/components/Edges/shared/resolveEdgeColor.cjs +46 -0
  74. package/dist/canvas/components/Edges/shared/resolveEdgeColor.d.ts +11 -0
  75. package/dist/canvas/components/Edges/shared/resolveEdgeColor.d.ts.map +1 -0
  76. package/dist/canvas/components/Edges/shared/resolveEdgeColor.js +12 -0
  77. package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.cjs +51 -0
  78. package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.d.ts +3 -0
  79. package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.d.ts.map +1 -0
  80. package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.js +17 -0
  81. package/dist/canvas/components/Edges/shared/routing/index.cjs +43 -0
  82. package/dist/canvas/components/Edges/shared/routing/index.d.ts +4 -0
  83. package/dist/canvas/components/Edges/shared/routing/index.d.ts.map +1 -0
  84. package/dist/canvas/components/Edges/shared/routing/index.js +3 -0
  85. package/dist/canvas/components/Edges/shared/routing/types.cjs +18 -0
  86. package/dist/canvas/components/Edges/shared/routing/types.d.ts +33 -0
  87. package/dist/canvas/components/Edges/shared/routing/types.d.ts.map +1 -0
  88. package/dist/canvas/components/Edges/shared/routing/types.js +0 -0
  89. package/dist/canvas/components/Edges/shared/routing/useGraphRouter.cjs +175 -0
  90. package/dist/canvas/components/Edges/shared/routing/useGraphRouter.d.ts +5 -0
  91. package/dist/canvas/components/Edges/shared/routing/useGraphRouter.d.ts.map +1 -0
  92. package/dist/canvas/components/Edges/shared/routing/useGraphRouter.js +138 -0
  93. package/dist/canvas/components/Edges/shared/types.cjs +18 -0
  94. package/dist/canvas/components/Edges/shared/types.d.ts +36 -0
  95. package/dist/canvas/components/Edges/shared/types.d.ts.map +1 -0
  96. package/dist/canvas/components/Edges/shared/types.js +0 -0
  97. package/dist/canvas/components/Edges/shared/waypoints.cjs +216 -0
  98. package/dist/canvas/components/Edges/shared/waypoints.d.ts +17 -0
  99. package/dist/canvas/components/Edges/shared/waypoints.d.ts.map +1 -0
  100. package/dist/canvas/components/Edges/shared/waypoints.js +158 -0
  101. package/dist/canvas/controls/NodePropertyTrigger/NodePropertyTrigger.cjs +60 -49
  102. package/dist/canvas/controls/NodePropertyTrigger/NodePropertyTrigger.d.ts.map +1 -1
  103. package/dist/canvas/controls/NodePropertyTrigger/NodePropertyTrigger.js +60 -49
  104. package/dist/canvas/hooks/useEdgePath.cjs +6 -22
  105. package/dist/canvas/hooks/useEdgePath.d.ts +1 -1
  106. package/dist/canvas/hooks/useEdgePath.d.ts.map +1 -1
  107. package/dist/canvas/hooks/useEdgePath.js +5 -21
  108. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  109. package/package.json +1 -1
@@ -0,0 +1,158 @@
1
+ import { snapToGrid } from "../../../utils/NodeUtils.js";
2
+ import { EDGE_CONSTANTS } from "./constants.js";
3
+ import { consolidateWaypoints, isHorizontalPosition, snapPointToGrid } from "./geometry.js";
4
+ function materializePathWaypoints(vertices, stored) {
5
+ return vertices.slice(1, -1).map((vertex)=>{
6
+ const existing = vertex.waypointIndex >= 0 ? stored[vertex.waypointIndex] : void 0;
7
+ return existing ?? {
8
+ id: generateWaypointId(),
9
+ x: vertex.x,
10
+ y: vertex.y
11
+ };
12
+ });
13
+ }
14
+ function generateWaypointId() {
15
+ return `wp-${crypto.randomUUID()}`;
16
+ }
17
+ function waypointsEqual(a, b) {
18
+ if (a === b) return true;
19
+ if (a.length !== b.length) return false;
20
+ for(let i = 0; i < a.length; i++){
21
+ const wa = a[i];
22
+ const wb = b[i];
23
+ if (wa.x !== wb.x || wa.y !== wb.y || wa.id !== wb.id) return false;
24
+ }
25
+ return true;
26
+ }
27
+ function waypointsPositionallyEqual(a, b) {
28
+ if (a === b) return true;
29
+ if (a.length !== b.length) return false;
30
+ for(let i = 0; i < a.length; i++)if (a[i].x !== b[i].x || a[i].y !== b[i].y) return false;
31
+ return true;
32
+ }
33
+ function insertWaypoint(vertices, stored, segmentIndex, position) {
34
+ const newWaypoint = {
35
+ id: generateWaypointId(),
36
+ ...snapPointToGrid(position)
37
+ };
38
+ const materialized = materializePathWaypoints(vertices, stored);
39
+ materialized.splice(Math.max(0, segmentIndex), 0, newWaypoint);
40
+ return materialized;
41
+ }
42
+ function removeWaypoint(waypoints, index) {
43
+ return waypoints.filter((_, i)=>i !== index);
44
+ }
45
+ const REBALANCE_EPSILON = 0.5;
46
+ function rebalanceWaypoints(waypoints, source, target) {
47
+ if (0 === waypoints.length) return waypoints;
48
+ const sourceDelta = waypoints_delta(source);
49
+ const targetDelta = waypoints_delta(target);
50
+ if (isMoved(sourceDelta) && deltasEqual(sourceDelta, targetDelta)) return waypoints.map((w)=>({
51
+ id: w.id,
52
+ x: w.x + sourceDelta.x,
53
+ y: w.y + sourceDelta.y
54
+ }));
55
+ const next = waypoints.map((w)=>({
56
+ ...w
57
+ }));
58
+ if (1 === next.length) {
59
+ const sourceMoved = isMoved(sourceDelta);
60
+ const targetMoved = isMoved(targetDelta);
61
+ if (sourceMoved && !targetMoved) shiftAdjacentWaypoint(next[0], source);
62
+ else if (targetMoved && !sourceMoved) shiftAdjacentWaypoint(next[0], target);
63
+ return next;
64
+ }
65
+ shiftAdjacentWaypoint(next[0], source);
66
+ shiftAdjacentWaypoint(next[next.length - 1], target);
67
+ return next;
68
+ }
69
+ function waypoints_delta(endpoint) {
70
+ return {
71
+ x: endpoint.to.x - endpoint.from.x,
72
+ y: endpoint.to.y - endpoint.from.y
73
+ };
74
+ }
75
+ function isMoved(d) {
76
+ return Math.abs(d.x) >= REBALANCE_EPSILON || Math.abs(d.y) >= REBALANCE_EPSILON;
77
+ }
78
+ function deltasEqual(a, b) {
79
+ return Math.abs(a.x - b.x) < REBALANCE_EPSILON && Math.abs(a.y - b.y) < REBALANCE_EPSILON;
80
+ }
81
+ function shiftAdjacentWaypoint(waypoint, endpoint) {
82
+ if (isHorizontalPosition(endpoint.position)) waypoint.y += endpoint.to.y - endpoint.from.y;
83
+ else waypoint.x += endpoint.to.x - endpoint.from.x;
84
+ }
85
+ function moveWaypoint(waypoints, index, newPosition) {
86
+ const snapped = snapPointToGrid(newPosition);
87
+ return waypoints.map((wp, i)=>i === index ? {
88
+ ...wp,
89
+ ...snapped
90
+ } : wp);
91
+ }
92
+ function moveSegmentByDelta(initialWaypoints, initialSegment, delta, initialPathPoints) {
93
+ const moveAxis = 'horizontal' === initialSegment.orientation ? 'y' : 'x';
94
+ const moveValue = 'y' === moveAxis ? delta.y : delta.x;
95
+ const working = initialWaypoints.map((wp)=>({
96
+ ...wp
97
+ }));
98
+ const isConnectedToSource = initialSegment.waypointIndexBefore < 0;
99
+ const isConnectedToTarget = initialSegment.waypointIndexAfter >= working.length;
100
+ let insertedAtStart = false;
101
+ const stubOffset = EDGE_CONSTANTS.STUB_OFFSET;
102
+ const orientation = initialSegment.orientation;
103
+ const segmentStart = initialSegment.start;
104
+ const segmentEnd = initialSegment.end;
105
+ const pathSource = initialPathPoints[0];
106
+ const pathTarget = initialPathPoints[initialPathPoints.length - 1];
107
+ const movedCoordinate = 'horizontal' === orientation ? snapToGrid(segmentStart.y + moveValue) : snapToGrid(segmentStart.x + moveValue);
108
+ if (isConnectedToSource) {
109
+ const stubCoord = snapToGrid(('horizontal' === orientation ? segmentStart.x : segmentStart.y) + stubOffset);
110
+ const [anchorStub, movedStub] = makeStubPair(segmentStart, orientation, stubCoord, movedCoordinate);
111
+ working.unshift(anchorStub, movedStub);
112
+ insertedAtStart = true;
113
+ }
114
+ if (isConnectedToTarget) {
115
+ const stubCoord = snapToGrid(('horizontal' === orientation ? segmentEnd.x : segmentEnd.y) - stubOffset);
116
+ const [anchorStub, movedStub] = makeStubPair(segmentEnd, orientation, stubCoord, movedCoordinate);
117
+ working.push(movedStub, anchorStub);
118
+ }
119
+ const indexOffset = insertedAtStart ? 2 : 0;
120
+ if (!isConnectedToSource && initialSegment.waypointIndexBefore >= 0) {
121
+ const idx = initialSegment.waypointIndexBefore + indexOffset;
122
+ const wp = working[idx];
123
+ if (wp) wp[moveAxis] = movedCoordinate;
124
+ }
125
+ if (!isConnectedToTarget && initialSegment.waypointIndexAfter < initialWaypoints.length) {
126
+ const idx = initialSegment.waypointIndexAfter + indexOffset;
127
+ const wp = working[idx];
128
+ if (wp) wp[moveAxis] = movedCoordinate;
129
+ }
130
+ return consolidateWaypoints(working, pathSource, pathTarget);
131
+ }
132
+ function makeStubPair(anchor, orientation, stubCoord, movedCoordinate) {
133
+ if ('horizontal' === orientation) return [
134
+ {
135
+ id: generateWaypointId(),
136
+ x: stubCoord,
137
+ y: anchor.y
138
+ },
139
+ {
140
+ id: generateWaypointId(),
141
+ x: stubCoord,
142
+ y: movedCoordinate
143
+ }
144
+ ];
145
+ return [
146
+ {
147
+ id: generateWaypointId(),
148
+ x: anchor.x,
149
+ y: stubCoord
150
+ },
151
+ {
152
+ id: generateWaypointId(),
153
+ x: movedCoordinate,
154
+ y: stubCoord
155
+ }
156
+ ];
157
+ }
158
+ export { generateWaypointId, insertWaypoint, materializePathWaypoints, moveSegmentByDelta, moveWaypoint, rebalanceWaypoints, removeWaypoint, waypointsEqual, waypointsPositionallyEqual };
@@ -223,68 +223,79 @@ function NodePropertyTrigger({ label, className, showMenu = true, open, onOpenCh
223
223
  message: 'No saved presets yet.'
224
224
  })
225
225
  }),
226
- presets.map((preset)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_react_namespaceObject.Fragment, {
226
+ presets.map((preset)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.DropdownMenuItem, {
227
+ "aria-label": _({
228
+ id: 'canvas.property_trigger.apply_preset_with_label',
229
+ message: 'Apply {label}',
230
+ values: {
231
+ label: preset.label
232
+ }
233
+ }),
234
+ className: (0, apollo_wind_namespaceObject.cn)(ROW_CLASS, 'pr-1'),
235
+ onSelect: ()=>onPresetApply?.(preset),
227
236
  children: [
228
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(apollo_wind_namespaceObject.DropdownMenuItem, {
237
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
238
+ title: preset.label,
239
+ className: "min-w-0 flex-1 truncate",
240
+ children: preset.label
241
+ }),
242
+ onPresetRename && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
243
+ type: "button",
244
+ title: _({
245
+ id: 'canvas.property_trigger.rename_preset_with_label',
246
+ message: 'Rename {label}',
247
+ values: {
248
+ label: preset.label
249
+ }
250
+ }),
229
251
  "aria-label": _({
230
- id: 'canvas.property_trigger.apply_preset_with_label',
231
- message: 'Apply {label}',
252
+ id: 'canvas.property_trigger.rename_preset_with_label',
253
+ message: 'Rename {label}',
232
254
  values: {
233
255
  label: preset.label
234
256
  }
235
257
  }),
236
- className: ROW_CLASS,
237
- onSelect: ()=>onPresetApply?.(preset),
238
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
239
- className: "min-w-0 flex-1 truncate",
240
- children: preset.label
241
- })
242
- }),
243
- onPresetRename && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.DropdownMenuItem, {
244
- className: (0, apollo_wind_namespaceObject.cn)(ROW_CLASS, 'justify-start pl-6'),
245
- onSelect: (e)=>{
258
+ onClick: (e)=>{
259
+ e.stopPropagation();
246
260
  e.preventDefault();
247
261
  onPresetRename(preset);
248
262
  },
249
- children: [
250
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
251
- icon: "pencil",
252
- size: 11
253
- }),
254
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
255
- className: "min-w-0 flex-1 truncate",
256
- children: _({
257
- id: 'canvas.property_trigger.rename_preset_with_label',
258
- message: 'Rename {label}',
259
- values: {
260
- label: preset.label
261
- }
262
- })
263
- })
264
- ]
263
+ onPointerDown: (e)=>e.stopPropagation(),
264
+ onPointerUp: (e)=>e.stopPropagation(),
265
+ className: "grid size-6 shrink-0 place-items-center rounded text-foreground-subtle transition hover:text-foreground",
266
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
267
+ icon: "pencil",
268
+ size: 11
269
+ })
265
270
  }),
266
- onPresetDelete && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(apollo_wind_namespaceObject.DropdownMenuItem, {
267
- className: (0, apollo_wind_namespaceObject.cn)(ROW_CLASS, 'justify-start pl-6'),
268
- onSelect: (e)=>{
271
+ onPresetDelete && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
272
+ type: "button",
273
+ title: _({
274
+ id: 'canvas.property_trigger.delete_preset_with_label',
275
+ message: 'Delete {label}',
276
+ values: {
277
+ label: preset.label
278
+ }
279
+ }),
280
+ "aria-label": _({
281
+ id: 'canvas.property_trigger.delete_preset_with_label',
282
+ message: 'Delete {label}',
283
+ values: {
284
+ label: preset.label
285
+ }
286
+ }),
287
+ onClick: (e)=>{
288
+ e.stopPropagation();
269
289
  e.preventDefault();
270
290
  onPresetDelete(preset.id);
271
291
  },
272
- children: [
273
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
274
- icon: "trash-2",
275
- size: 11
276
- }),
277
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
278
- className: "min-w-0 flex-1 truncate",
279
- children: _({
280
- id: 'canvas.property_trigger.delete_preset_with_label',
281
- message: 'Delete {label}',
282
- values: {
283
- label: preset.label
284
- }
285
- })
286
- })
287
- ]
292
+ onPointerDown: (e)=>e.stopPropagation(),
293
+ onPointerUp: (e)=>e.stopPropagation(),
294
+ className: "grid size-6 shrink-0 place-items-center rounded text-foreground-subtle transition hover:text-foreground",
295
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
296
+ icon: "trash-2",
297
+ size: 11
298
+ })
288
299
  })
289
300
  ]
290
301
  }, preset.id)),
@@ -1 +1 @@
1
- {"version":3,"file":"NodePropertyTrigger.d.ts","sourceRoot":"","sources":["../../../../src/canvas/controls/NodePropertyTrigger/NodePropertyTrigger.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodePropertyTrigger.d.ts","sourceRoot":"","sources":["../../../../src/canvas/controls/NodePropertyTrigger/NodePropertyTrigger.tsx"],"names":[],"mappings":"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"}
@@ -191,68 +191,79 @@ function NodePropertyTrigger({ label, className, showMenu = true, open, onOpenCh
191
191
  message: 'No saved presets yet.'
192
192
  })
193
193
  }),
194
- presets.map((preset)=>/*#__PURE__*/ jsxs(external_react_Fragment, {
194
+ presets.map((preset)=>/*#__PURE__*/ jsxs(DropdownMenuItem, {
195
+ "aria-label": _({
196
+ id: 'canvas.property_trigger.apply_preset_with_label',
197
+ message: 'Apply {label}',
198
+ values: {
199
+ label: preset.label
200
+ }
201
+ }),
202
+ className: cn(ROW_CLASS, 'pr-1'),
203
+ onSelect: ()=>onPresetApply?.(preset),
195
204
  children: [
196
- /*#__PURE__*/ jsx(DropdownMenuItem, {
205
+ /*#__PURE__*/ jsx("span", {
206
+ title: preset.label,
207
+ className: "min-w-0 flex-1 truncate",
208
+ children: preset.label
209
+ }),
210
+ onPresetRename && /*#__PURE__*/ jsx("button", {
211
+ type: "button",
212
+ title: _({
213
+ id: 'canvas.property_trigger.rename_preset_with_label',
214
+ message: 'Rename {label}',
215
+ values: {
216
+ label: preset.label
217
+ }
218
+ }),
197
219
  "aria-label": _({
198
- id: 'canvas.property_trigger.apply_preset_with_label',
199
- message: 'Apply {label}',
220
+ id: 'canvas.property_trigger.rename_preset_with_label',
221
+ message: 'Rename {label}',
200
222
  values: {
201
223
  label: preset.label
202
224
  }
203
225
  }),
204
- className: ROW_CLASS,
205
- onSelect: ()=>onPresetApply?.(preset),
206
- children: /*#__PURE__*/ jsx("span", {
207
- className: "min-w-0 flex-1 truncate",
208
- children: preset.label
209
- })
210
- }),
211
- onPresetRename && /*#__PURE__*/ jsxs(DropdownMenuItem, {
212
- className: cn(ROW_CLASS, 'justify-start pl-6'),
213
- onSelect: (e)=>{
226
+ onClick: (e)=>{
227
+ e.stopPropagation();
214
228
  e.preventDefault();
215
229
  onPresetRename(preset);
216
230
  },
217
- children: [
218
- /*#__PURE__*/ jsx(CanvasIcon, {
219
- icon: "pencil",
220
- size: 11
221
- }),
222
- /*#__PURE__*/ jsx("span", {
223
- className: "min-w-0 flex-1 truncate",
224
- children: _({
225
- id: 'canvas.property_trigger.rename_preset_with_label',
226
- message: 'Rename {label}',
227
- values: {
228
- label: preset.label
229
- }
230
- })
231
- })
232
- ]
231
+ onPointerDown: (e)=>e.stopPropagation(),
232
+ onPointerUp: (e)=>e.stopPropagation(),
233
+ className: "grid size-6 shrink-0 place-items-center rounded text-foreground-subtle transition hover:text-foreground",
234
+ children: /*#__PURE__*/ jsx(CanvasIcon, {
235
+ icon: "pencil",
236
+ size: 11
237
+ })
233
238
  }),
234
- onPresetDelete && /*#__PURE__*/ jsxs(DropdownMenuItem, {
235
- className: cn(ROW_CLASS, 'justify-start pl-6'),
236
- onSelect: (e)=>{
239
+ onPresetDelete && /*#__PURE__*/ jsx("button", {
240
+ type: "button",
241
+ title: _({
242
+ id: 'canvas.property_trigger.delete_preset_with_label',
243
+ message: 'Delete {label}',
244
+ values: {
245
+ label: preset.label
246
+ }
247
+ }),
248
+ "aria-label": _({
249
+ id: 'canvas.property_trigger.delete_preset_with_label',
250
+ message: 'Delete {label}',
251
+ values: {
252
+ label: preset.label
253
+ }
254
+ }),
255
+ onClick: (e)=>{
256
+ e.stopPropagation();
237
257
  e.preventDefault();
238
258
  onPresetDelete(preset.id);
239
259
  },
240
- children: [
241
- /*#__PURE__*/ jsx(CanvasIcon, {
242
- icon: "trash-2",
243
- size: 11
244
- }),
245
- /*#__PURE__*/ jsx("span", {
246
- className: "min-w-0 flex-1 truncate",
247
- children: _({
248
- id: 'canvas.property_trigger.delete_preset_with_label',
249
- message: 'Delete {label}',
250
- values: {
251
- label: preset.label
252
- }
253
- })
254
- })
255
- ]
260
+ onPointerDown: (e)=>e.stopPropagation(),
261
+ onPointerUp: (e)=>e.stopPropagation(),
262
+ className: "grid size-6 shrink-0 place-items-center rounded text-foreground-subtle transition hover:text-foreground",
263
+ children: /*#__PURE__*/ jsx(CanvasIcon, {
264
+ icon: "trash-2",
265
+ size: 11
266
+ })
256
267
  })
257
268
  ]
258
269
  }, preset.id)),
@@ -28,32 +28,16 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  });
29
29
  const react_cjs_namespaceObject = require("../xyflow/react.cjs");
30
30
  const external_react_namespaceObject = require("react");
31
+ const constants_cjs_namespaceObject = require("../components/Edges/shared/constants.cjs");
31
32
  const external_constants_cjs_namespaceObject = require("../constants.cjs");
33
+ const NodeUtils_cjs_namespaceObject = require("../utils/NodeUtils.cjs");
32
34
  const LOOP_HEIGHT = 6 * external_constants_cjs_namespaceObject.GRID_SPACING;
33
35
  const LOOP_SUCCESS_HEIGHT = 7 * external_constants_cjs_namespaceObject.GRID_SPACING;
34
36
  const LOOP_RIGHT_EXTENSION = 3 * external_constants_cjs_namespaceObject.GRID_SPACING;
35
37
  const LOOP_SUCCESS_RIGHT_EXTENSION = 4 * external_constants_cjs_namespaceObject.GRID_SPACING;
36
38
  const LOOP_LEFT_EXTENSION = 2 * external_constants_cjs_namespaceObject.GRID_SPACING;
37
39
  const LOOP_CORNER_RADIUS = external_constants_cjs_namespaceObject.GRID_SPACING;
38
- const SOURCE_OFFSETS = {
39
- [react_cjs_namespaceObject.Position.Left]: {
40
- x: 8,
41
- y: 0
42
- },
43
- [react_cjs_namespaceObject.Position.Right]: {
44
- x: -8,
45
- y: 0
46
- },
47
- [react_cjs_namespaceObject.Position.Top]: {
48
- x: 0,
49
- y: 8
50
- },
51
- [react_cjs_namespaceObject.Position.Bottom]: {
52
- x: 0,
53
- y: -8
54
- }
55
- };
56
- const snapToGrid = (value)=>Math.round(value / external_constants_cjs_namespaceObject.GRID_SPACING) * external_constants_cjs_namespaceObject.GRID_SPACING;
40
+ const SOURCE_OFFSETS = constants_cjs_namespaceObject.ARROW_OFFSETS;
57
41
  const createLoopPath = ({ sourceX, sourceY, sourcePosition, targetX, targetY, sourceHandleId })=>{
58
42
  const offsets = SOURCE_OFFSETS[sourcePosition];
59
43
  const sourceOffsetX = sourceX + offsets.x;
@@ -61,8 +45,8 @@ const createLoopPath = ({ sourceX, sourceY, sourcePosition, targetX, targetY, so
61
45
  const loopHeight = 'success' === sourceHandleId ? LOOP_SUCCESS_HEIGHT : LOOP_HEIGHT;
62
46
  const bottomY = Math.max(sourceOffsetY, targetY) + loopHeight;
63
47
  const rightExtension = 'success' === sourceHandleId ? LOOP_SUCCESS_RIGHT_EXTENSION : LOOP_RIGHT_EXTENSION;
64
- const rightPoint = snapToGrid(sourceX + rightExtension);
65
- const leftPoint = snapToGrid(targetX - LOOP_LEFT_EXTENSION);
48
+ const rightPoint = (0, NodeUtils_cjs_namespaceObject.snapToGrid)(sourceX + rightExtension);
49
+ const leftPoint = (0, NodeUtils_cjs_namespaceObject.snapToGrid)(targetX - LOOP_LEFT_EXTENSION);
66
50
  const path = `
67
51
  M ${sourceOffsetX} ${sourceOffsetY}
68
52
  L ${rightPoint - LOOP_CORNER_RADIUS} ${sourceOffsetY}
@@ -116,7 +100,7 @@ function useEdgePath({ sourceNodeId, sourceHandleId, sourceX, sourceY, sourcePos
116
100
  targetX,
117
101
  targetY,
118
102
  targetPosition,
119
- borderRadius: 16
103
+ borderRadius: constants_cjs_namespaceObject.EDGE_CONSTANTS.BORDER_RADIUS
120
104
  });
121
105
  }
122
106
  return {
@@ -1,4 +1,4 @@
1
- import { Position } from '../xyflow/react.ts';
1
+ import { type Position } from '../xyflow/react.ts';
2
2
  export interface EdgePathParams {
3
3
  sourceNodeId: string;
4
4
  sourceHandleId: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useEdgePath.d.ts","sourceRoot":"","sources":["../../../src/canvas/hooks/useEdgePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAgEvF,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,cAAc,EACd,OAAO,EACP,OAAO,EACP,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,EACP,OAAO,EACP,cAAc,GACf,EAAE,cAAc,GAAG,aAAa,CAkEhC"}
1
+ {"version":3,"file":"useEdgePath.d.ts","sourceRoot":"","sources":["../../../src/canvas/hooks/useEdgePath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAyD5F,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,cAAc,EACd,OAAO,EACP,OAAO,EACP,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,EACP,OAAO,EACP,cAAc,GACf,EAAE,cAAc,GAAG,aAAa,CAkEhC"}
@@ -1,31 +1,15 @@
1
- import { Position, getSmoothStepPath } from "../xyflow/react.js";
1
+ import { getSmoothStepPath } from "../xyflow/react.js";
2
2
  import { useMemo } from "react";
3
+ import { ARROW_OFFSETS, EDGE_CONSTANTS } from "../components/Edges/shared/constants.js";
3
4
  import { GRID_SPACING } from "../constants.js";
5
+ import { snapToGrid } from "../utils/NodeUtils.js";
4
6
  const LOOP_HEIGHT = 6 * GRID_SPACING;
5
7
  const LOOP_SUCCESS_HEIGHT = 7 * GRID_SPACING;
6
8
  const LOOP_RIGHT_EXTENSION = 3 * GRID_SPACING;
7
9
  const LOOP_SUCCESS_RIGHT_EXTENSION = 4 * GRID_SPACING;
8
10
  const LOOP_LEFT_EXTENSION = 2 * GRID_SPACING;
9
11
  const LOOP_CORNER_RADIUS = GRID_SPACING;
10
- const SOURCE_OFFSETS = {
11
- [Position.Left]: {
12
- x: 8,
13
- y: 0
14
- },
15
- [Position.Right]: {
16
- x: -8,
17
- y: 0
18
- },
19
- [Position.Top]: {
20
- x: 0,
21
- y: 8
22
- },
23
- [Position.Bottom]: {
24
- x: 0,
25
- y: -8
26
- }
27
- };
28
- const snapToGrid = (value)=>Math.round(value / GRID_SPACING) * GRID_SPACING;
12
+ const SOURCE_OFFSETS = ARROW_OFFSETS;
29
13
  const createLoopPath = ({ sourceX, sourceY, sourcePosition, targetX, targetY, sourceHandleId })=>{
30
14
  const offsets = SOURCE_OFFSETS[sourcePosition];
31
15
  const sourceOffsetX = sourceX + offsets.x;
@@ -88,7 +72,7 @@ function useEdgePath({ sourceNodeId, sourceHandleId, sourceX, sourceY, sourcePos
88
72
  targetX,
89
73
  targetY,
90
74
  targetPosition,
91
- borderRadius: 16
75
+ borderRadius: EDGE_CONSTANTS.BORDER_RADIUS
92
76
  });
93
77
  }
94
78
  return {