@uipath/apollo-react 3.71.0 → 4.0.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 (140) hide show
  1. package/README.md +2 -0
  2. package/dist/canvas/components/AddNodePanel/AddNodePreview.cjs +9 -9
  3. package/dist/canvas/components/AddNodePanel/AddNodePreview.d.ts.map +1 -1
  4. package/dist/canvas/components/AddNodePanel/AddNodePreview.js +9 -9
  5. package/dist/canvas/components/AgentCanvas/components/SuggestionGroupPanel.cjs +40 -39
  6. package/dist/canvas/components/AgentCanvas/components/SuggestionGroupPanel.d.ts.map +1 -1
  7. package/dist/canvas/components/AgentCanvas/components/SuggestionGroupPanel.js +41 -40
  8. package/dist/canvas/components/AgentCanvas/components/TimelinePlayer.cjs +13 -9
  9. package/dist/canvas/components/AgentCanvas/components/TimelinePlayer.js +14 -10
  10. package/dist/canvas/components/AgentCanvas/nodes/AgentNode.cjs +5 -5
  11. package/dist/canvas/components/AgentCanvas/nodes/AgentNode.d.ts.map +1 -1
  12. package/dist/canvas/components/AgentCanvas/nodes/AgentNode.js +5 -5
  13. package/dist/canvas/components/AgentCanvas/nodes/ResourceNode.cjs +22 -26
  14. package/dist/canvas/components/AgentCanvas/nodes/ResourceNode.d.ts.map +1 -1
  15. package/dist/canvas/components/AgentCanvas/nodes/ResourceNode.js +22 -26
  16. package/dist/canvas/components/BaseCanvas/CanvasProviders.cjs +15 -7
  17. package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts.map +1 -1
  18. package/dist/canvas/components/BaseCanvas/CanvasProviders.js +15 -7
  19. package/dist/canvas/components/BaseNode/BaseNode.cjs +5 -6
  20. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  21. package/dist/canvas/components/BaseNode/BaseNode.js +6 -7
  22. package/dist/canvas/components/BaseNode/BaseNode.styles.cjs +2 -2
  23. package/dist/canvas/components/BaseNode/BaseNode.styles.d.ts +1 -1
  24. package/dist/canvas/components/BaseNode/BaseNode.styles.js +2 -2
  25. package/dist/canvas/components/BaseNode/NodeLabel.cjs +2 -2
  26. package/dist/canvas/components/BaseNode/NodeLabel.d.ts.map +1 -1
  27. package/dist/canvas/components/BaseNode/NodeLabel.js +2 -2
  28. package/dist/canvas/components/BlankCanvasNode/BlankCanvasNode.cjs +6 -6
  29. package/dist/canvas/components/BlankCanvasNode/BlankCanvasNode.js +4 -4
  30. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +9 -11
  31. package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
  32. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +9 -11
  33. package/dist/canvas/components/ButtonHandle/SmartHandle.cjs +6 -9
  34. package/dist/canvas/components/ButtonHandle/SmartHandle.d.ts.map +1 -1
  35. package/dist/canvas/components/ButtonHandle/SmartHandle.js +6 -9
  36. package/dist/canvas/components/CanvasPositionControls.cjs +33 -34
  37. package/dist/canvas/components/CanvasPositionControls.d.ts.map +1 -1
  38. package/dist/canvas/components/CanvasPositionControls.js +33 -24
  39. package/dist/canvas/components/CanvasTooltip.cjs +138 -0
  40. package/dist/canvas/components/CanvasTooltip.d.ts +14 -0
  41. package/dist/canvas/components/CanvasTooltip.d.ts.map +1 -0
  42. package/dist/canvas/components/CanvasTooltip.js +91 -0
  43. package/dist/canvas/components/CodedAgent/CodedAgentFlow.cjs +41 -48
  44. package/dist/canvas/components/CodedAgent/CodedAgentFlow.d.ts.map +1 -1
  45. package/dist/canvas/components/CodedAgent/CodedAgentFlow.js +42 -49
  46. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.cjs +35 -32
  47. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.d.ts.map +1 -1
  48. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.js +35 -32
  49. package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.cjs +12 -9
  50. package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.d.ts.map +1 -1
  51. package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.js +12 -9
  52. package/dist/canvas/components/GroupNode/GroupNode.cjs +10 -12
  53. package/dist/canvas/components/GroupNode/GroupNode.d.ts.map +1 -1
  54. package/dist/canvas/components/GroupNode/GroupNode.js +10 -12
  55. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.cjs +11 -8
  56. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.d.ts.map +1 -1
  57. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvas.js +9 -6
  58. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.cjs +79 -66
  59. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.d.ts.map +1 -1
  60. package/dist/canvas/components/HierarchicalCanvas/HierarchicalCanvasWithControls.js +77 -64
  61. package/dist/canvas/components/NodeContextMenu/NodeContextMenu.cjs +14 -82
  62. package/dist/canvas/components/NodeContextMenu/NodeContextMenu.d.ts +1 -2
  63. package/dist/canvas/components/NodeContextMenu/NodeContextMenu.d.ts.map +1 -1
  64. package/dist/canvas/components/NodeContextMenu/NodeContextMenu.js +16 -84
  65. package/dist/canvas/components/NodeInspector.cjs +64 -68
  66. package/dist/canvas/components/NodeInspector.d.ts.map +1 -1
  67. package/dist/canvas/components/NodeInspector.js +64 -68
  68. package/dist/canvas/components/NodePropertiesPanel/NodePropertiesPanel.cjs +9 -5
  69. package/dist/canvas/components/NodePropertiesPanel/NodePropertiesPanel.d.ts.map +1 -1
  70. package/dist/canvas/components/NodePropertiesPanel/NodePropertiesPanel.js +9 -5
  71. package/dist/canvas/components/StageNode/AdhocTask.cjs +1 -9
  72. package/dist/canvas/components/StageNode/AdhocTask.d.ts.map +1 -1
  73. package/dist/canvas/components/StageNode/AdhocTask.js +2 -10
  74. package/dist/canvas/components/StageNode/DraggableTask.cjs +5 -13
  75. package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +1 -1
  76. package/dist/canvas/components/StageNode/DraggableTask.js +4 -12
  77. package/dist/canvas/components/StageNode/StageNode.cjs +42 -41
  78. package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
  79. package/dist/canvas/components/StageNode/StageNode.js +43 -42
  80. package/dist/canvas/components/StageNode/StageNode.stories.utils.cjs +13 -1
  81. package/dist/canvas/components/StageNode/StageNode.stories.utils.d.ts.map +1 -1
  82. package/dist/canvas/components/StageNode/StageNode.stories.utils.js +13 -1
  83. package/dist/canvas/components/StageNode/TaskContent.cjs +36 -35
  84. package/dist/canvas/components/StageNode/TaskContent.d.ts.map +1 -1
  85. package/dist/canvas/components/StageNode/TaskContent.js +37 -36
  86. package/dist/canvas/components/StageNode/TaskMenu.cjs +19 -99
  87. package/dist/canvas/components/StageNode/TaskMenu.d.ts +0 -2
  88. package/dist/canvas/components/StageNode/TaskMenu.d.ts.map +1 -1
  89. package/dist/canvas/components/StageNode/TaskMenu.js +21 -91
  90. package/dist/canvas/components/StickyNoteNode/FormattingToolbar.cjs +17 -17
  91. package/dist/canvas/components/StickyNoteNode/FormattingToolbar.d.ts.map +1 -1
  92. package/dist/canvas/components/StickyNoteNode/FormattingToolbar.js +12 -12
  93. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.cjs +2 -2
  94. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.js +3 -3
  95. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +16 -14
  96. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
  97. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +13 -11
  98. package/dist/canvas/components/Toolbar/shared/ToolbarButton.cjs +6 -6
  99. package/dist/canvas/components/Toolbar/shared/ToolbarButton.d.ts.map +1 -1
  100. package/dist/canvas/components/Toolbar/shared/ToolbarButton.js +6 -6
  101. package/dist/canvas/components/Toolbox/Header.cjs +11 -10
  102. package/dist/canvas/components/Toolbox/Header.d.ts.map +1 -1
  103. package/dist/canvas/components/Toolbox/Header.js +11 -10
  104. package/dist/canvas/components/Toolbox/ListView.cjs +22 -34
  105. package/dist/canvas/components/Toolbox/ListView.d.ts.map +1 -1
  106. package/dist/canvas/components/Toolbox/ListView.js +23 -35
  107. package/dist/canvas/components/Toolbox/SearchBox.cjs +7 -7
  108. package/dist/canvas/components/Toolbox/SearchBox.d.ts.map +1 -1
  109. package/dist/canvas/components/Toolbox/SearchBox.js +7 -7
  110. package/dist/canvas/components/TriggerNode/TriggerNode.cjs +5 -10
  111. package/dist/canvas/components/TriggerNode/TriggerNode.d.ts.map +1 -1
  112. package/dist/canvas/components/TriggerNode/TriggerNode.js +5 -10
  113. package/dist/canvas/components/shared/CanvasDropdownMenu.cjs +80 -0
  114. package/dist/canvas/components/shared/CanvasDropdownMenu.d.ts +13 -0
  115. package/dist/canvas/components/shared/CanvasDropdownMenu.d.ts.map +1 -0
  116. package/dist/canvas/components/shared/CanvasDropdownMenu.js +46 -0
  117. package/dist/canvas/constants.cjs +4 -0
  118. package/dist/canvas/constants.d.ts +1 -0
  119. package/dist/canvas/constants.d.ts.map +1 -1
  120. package/dist/canvas/constants.js +2 -1
  121. package/dist/canvas/controls/Breadcrumb/Breadcrumb.cjs +12 -23
  122. package/dist/canvas/controls/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  123. package/dist/canvas/controls/Breadcrumb/Breadcrumb.js +9 -20
  124. package/dist/canvas/storybook-utils/components/StoryInfoPanel.cjs +13 -11
  125. package/dist/canvas/storybook-utils/components/StoryInfoPanel.d.ts.map +1 -1
  126. package/dist/canvas/storybook-utils/components/StoryInfoPanel.js +13 -11
  127. package/dist/canvas/storybook-utils/decorators.cjs +7 -1
  128. package/dist/canvas/storybook-utils/decorators.d.ts.map +1 -1
  129. package/dist/canvas/storybook-utils/decorators.js +7 -1
  130. package/dist/canvas/styles/tailwind.canvas.css +2 -0
  131. package/dist/canvas/utils/adornment-resolver.cjs +11 -12
  132. package/dist/canvas/utils/adornment-resolver.d.ts.map +1 -1
  133. package/dist/canvas/utils/adornment-resolver.js +12 -13
  134. package/dist/canvas/utils/icon-registry.cjs +6 -2
  135. package/dist/canvas/utils/icon-registry.d.ts +3 -2
  136. package/dist/canvas/utils/icon-registry.d.ts.map +1 -1
  137. package/dist/canvas/utils/icon-registry.js +3 -2
  138. package/dist/material/components/ap-chat/locales/ro.json +3 -3
  139. package/dist/material/components/ap-tool-call/locales/ro.json +1 -1
  140. package/package.json +4 -2
@@ -1,12 +1,11 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { FontVariantToken } from "@uipath/apollo-core";
3
2
  import { Panel, ReactFlowProvider, useReactFlow } from "../../xyflow/react.js";
4
- import { ApButton, ApTypography } from "../../../material/index.js";
5
- import { ApIcon } from "../../../material/components/index.js";
3
+ import { Button } from "@uipath/apollo-wind";
6
4
  import { useCallback, useEffect, useState } from "react";
7
5
  import { NodeRegistryProvider } from "../../core/index.js";
8
6
  import { selectAddNode, selectCurrentCanvas, selectCurrentPathLength, selectRemoveEdge, selectRemoveNode, selectUpdateNodes, useCanvasStore } from "../../stores/canvasStore.js";
9
7
  import { canvasEventBus } from "../../utils/CanvasEventBus.js";
8
+ import { CanvasIcon } from "../../utils/icon-registry.js";
10
9
  import { createAddNodePreview } from "../AddNodePanel/createAddNodePreview.js";
11
10
  import { HierarchicalCanvas } from "./HierarchicalCanvas.js";
12
11
  const createDemoCanvases = ()=>{
@@ -283,7 +282,7 @@ const workflowManifests = [
283
282
  actions: [
284
283
  {
285
284
  id: 'drill-in',
286
- icon: 'open_in_new',
285
+ icon: 'external-link',
287
286
  label: 'Open Sub-Process'
288
287
  }
289
288
  ]
@@ -433,74 +432,88 @@ const CanvasWithControlsContent = ({ initialCanvases, initialPath, onCanvasesCha
433
432
  minWidth: '180px'
434
433
  },
435
434
  children: [
436
- /*#__PURE__*/ jsx(ApButton, {
435
+ /*#__PURE__*/ jsxs(Button, {
437
436
  variant: "secondary",
438
- label: "Start",
439
- size: "small",
440
- startIcon: /*#__PURE__*/ jsx(ApIcon, {
441
- variant: "outlined",
442
- name: "play_circle"
443
- }),
444
- onClick: ()=>handleAddNode('start')
437
+ size: "sm",
438
+ onClick: ()=>handleAddNode('start'),
439
+ children: [
440
+ /*#__PURE__*/ jsx(CanvasIcon, {
441
+ icon: "circle-play",
442
+ size: 16
443
+ }),
444
+ " Start"
445
+ ]
445
446
  }),
446
- /*#__PURE__*/ jsx(ApButton, {
447
+ /*#__PURE__*/ jsxs(Button, {
447
448
  variant: "secondary",
448
- size: "small",
449
- label: "Process",
450
- startIcon: /*#__PURE__*/ jsx(ApIcon, {
451
- variant: "outlined",
452
- name: "settings"
453
- }),
454
- onClick: ()=>handleAddNode('process')
449
+ size: "sm",
450
+ onClick: ()=>handleAddNode('process'),
451
+ children: [
452
+ /*#__PURE__*/ jsx(CanvasIcon, {
453
+ icon: "settings",
454
+ size: 16
455
+ }),
456
+ " Process"
457
+ ]
455
458
  }),
456
- /*#__PURE__*/ jsx(ApButton, {
459
+ /*#__PURE__*/ jsxs(Button, {
457
460
  variant: "secondary",
458
- size: "small",
459
- label: "Decision",
460
- startIcon: /*#__PURE__*/ jsx(ApIcon, {
461
- variant: "outlined",
462
- name: "help"
463
- }),
464
- onClick: ()=>handleAddNode('decision')
461
+ size: "sm",
462
+ onClick: ()=>handleAddNode('decision'),
463
+ children: [
464
+ /*#__PURE__*/ jsx(CanvasIcon, {
465
+ icon: "circle-question-mark",
466
+ size: 16
467
+ }),
468
+ " Decision"
469
+ ]
465
470
  }),
466
- /*#__PURE__*/ jsx(ApButton, {
471
+ /*#__PURE__*/ jsxs(Button, {
467
472
  variant: "secondary",
468
- size: "small",
469
- label: "Sub-Process",
470
- startIcon: /*#__PURE__*/ jsx(ApIcon, {
471
- variant: "outlined",
472
- name: "folder"
473
- }),
474
- onClick: ()=>handleAddNode('subprocess')
473
+ size: "sm",
474
+ onClick: ()=>handleAddNode('subprocess'),
475
+ children: [
476
+ /*#__PURE__*/ jsx(CanvasIcon, {
477
+ icon: "folder",
478
+ size: 16
479
+ }),
480
+ " Sub-Process"
481
+ ]
475
482
  }),
476
- /*#__PURE__*/ jsx(ApButton, {
483
+ /*#__PURE__*/ jsxs(Button, {
477
484
  variant: "secondary",
478
- size: "small",
479
- label: "End",
480
- startIcon: /*#__PURE__*/ jsx(ApIcon, {
481
- variant: "outlined",
482
- name: "stop_circle"
483
- }),
484
- onClick: ()=>handleAddNode('end')
485
+ size: "sm",
486
+ onClick: ()=>handleAddNode('end'),
487
+ children: [
488
+ /*#__PURE__*/ jsx(CanvasIcon, {
489
+ icon: "circle-stop",
490
+ size: 16
491
+ }),
492
+ " End"
493
+ ]
485
494
  }),
486
- /*#__PURE__*/ jsx(ApButton, {
487
- variant: "primary",
488
- size: "small",
489
- label: "Sample Workflow",
490
- startIcon: /*#__PURE__*/ jsx(ApIcon, {
491
- variant: "outlined",
492
- name: "auto_awesome"
493
- }),
494
- onClick: handleAddSampleWorkflow
495
+ /*#__PURE__*/ jsxs(Button, {
496
+ size: "sm",
497
+ onClick: handleAddSampleWorkflow,
498
+ children: [
499
+ /*#__PURE__*/ jsx(CanvasIcon, {
500
+ icon: "sparkles",
501
+ size: 16
502
+ }),
503
+ " Sample Workflow"
504
+ ]
495
505
  }),
496
- /*#__PURE__*/ jsx(ApButton, {
506
+ /*#__PURE__*/ jsxs(Button, {
497
507
  variant: "secondary",
498
- size: "small",
499
- label: "Clear Canvas",
500
- startIcon: /*#__PURE__*/ jsx(ApIcon, {
501
- name: "clear"
502
- }),
503
- onClick: handleClearCanvas
508
+ size: "sm",
509
+ onClick: handleClearCanvas,
510
+ children: [
511
+ /*#__PURE__*/ jsx(CanvasIcon, {
512
+ icon: "x",
513
+ size: 16
514
+ }),
515
+ " Clear Canvas"
516
+ ]
504
517
  })
505
518
  ]
506
519
  })
@@ -517,8 +530,8 @@ const CanvasWithControlsContent = ({ initialCanvases, initialPath, onCanvasesCha
517
530
  fontSize: '12px'
518
531
  },
519
532
  children: [
520
- /*#__PURE__*/ jsx(ApTypography, {
521
- variant: FontVariantToken.fontSizeMBold,
533
+ /*#__PURE__*/ jsx("span", {
534
+ className: "text-sm font-bold",
522
535
  children: "Canvas Info"
523
536
  }),
524
537
  /*#__PURE__*/ jsxs("div", {
@@ -539,8 +552,8 @@ const CanvasWithControlsContent = ({ initialCanvases, initialPath, onCanvasesCha
539
552
  currentPathLength
540
553
  ]
541
554
  }),
542
- /*#__PURE__*/ jsx(ApTypography, {
543
- variant: FontVariantToken.fontSizeMBold,
555
+ /*#__PURE__*/ jsx("span", {
556
+ className: "text-sm font-bold",
544
557
  children: "Instructions"
545
558
  }),
546
559
  /*#__PURE__*/ jsxs("div", {
@@ -27,97 +27,29 @@ __webpack_require__.d(__webpack_exports__, {
27
27
  NodeContextMenu: ()=>NodeContextMenu
28
28
  });
29
29
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
- const index_cjs_namespaceObject = require("../../../material/components/index.cjs");
31
30
  const external_react_namespaceObject = require("react");
31
+ const CanvasDropdownMenu_cjs_namespaceObject = require("../shared/CanvasDropdownMenu.cjs");
32
32
  const external_NodeContextMenu_styles_cjs_namespaceObject = require("./NodeContextMenu.styles.cjs");
33
33
  const NodeContextMenu = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ menuItems, isVisible = false })=>{
34
34
  const [isOpen, setIsOpen] = (0, external_react_namespaceObject.useState)(false);
35
- const anchorRef = (0, external_react_namespaceObject.useRef)(null);
36
- const handleMenuOpen = (0, external_react_namespaceObject.useCallback)((event)=>{
37
- event.stopPropagation();
38
- event.preventDefault();
39
- setIsOpen(true);
40
- }, []);
41
- const handleMenuClose = (0, external_react_namespaceObject.useCallback)(()=>{
42
- setIsOpen(false);
43
- }, []);
44
- (0, external_react_namespaceObject.useEffect)(()=>{
45
- if (!isOpen) return;
46
- const handleKeyDown = (e)=>{
47
- if ('Escape' === e.key || 'Esc' === e.key) {
48
- e.preventDefault();
49
- e.stopPropagation();
50
- setIsOpen(false);
51
- }
52
- };
53
- const handleClickAway = (e)=>{
54
- const target = e.target;
55
- if (anchorRef.current?.contains(target)) return;
56
- const menuElement = document.querySelector('[role="menu"]');
57
- if (menuElement && !menuElement.contains(target)) setIsOpen(false);
58
- };
59
- window.addEventListener('keydown', handleKeyDown, true);
60
- document.addEventListener('mousedown', handleClickAway);
61
- return ()=>{
62
- window.removeEventListener('keydown', handleKeyDown, true);
63
- document.removeEventListener('mousedown', handleClickAway);
64
- };
65
- }, [
66
- isOpen
67
- ]);
68
35
  const handleMenuItemClick = (0, external_react_namespaceObject.useCallback)((item)=>{
69
36
  if (true === item.disabled) return;
70
37
  item.onClick();
71
- handleMenuClose();
72
- }, [
73
- handleMenuClose
74
- ]);
75
- const transformedMenuItems = (0, external_react_namespaceObject.useMemo)(()=>menuItems?.map((item, index)=>{
76
- if ('type' in item && 'divider' === item.type) return {
77
- divider: true,
78
- key: `divider-${index}`,
79
- variant: 'separator'
80
- };
81
- const actionItem = item;
82
- return {
83
- key: actionItem.id,
84
- title: actionItem.label,
85
- startIcon: actionItem.icon,
86
- disabled: actionItem.disabled,
87
- onClick: ()=>handleMenuItemClick(actionItem),
88
- variant: 'item'
89
- };
90
- }) || [], [
91
- menuItems,
92
- handleMenuItemClick
93
- ]);
38
+ setIsOpen(false);
39
+ }, []);
94
40
  if (!menuItems || 0 === menuItems.length) return null;
95
41
  if (!isVisible && !isOpen) return null;
96
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
97
- children: [
98
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_NodeContextMenu_styles_cjs_namespaceObject.MenuButton, {
99
- $isVisible: isVisible || isOpen,
100
- onClick: (e)=>e.stopPropagation(),
101
- onMouseDown: (e)=>e.stopPropagation(),
102
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ApIconButton, {
103
- ref: anchorRef,
104
- size: "small",
105
- color: "secondary",
106
- onClick: handleMenuOpen,
107
- onMouseDown: (e)=>e.stopPropagation(),
108
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ApIcon, {
109
- name: "more_vert",
110
- size: "16px"
111
- })
112
- })
113
- }),
114
- isOpen && anchorRef.current && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.ApMenu, {
115
- isOpen: isOpen,
116
- anchorEl: anchorRef.current,
117
- menuItems: transformedMenuItems,
118
- onClose: handleMenuClose
119
- })
120
- ]
42
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_NodeContextMenu_styles_cjs_namespaceObject.MenuButton, {
43
+ $isVisible: isVisible || isOpen,
44
+ onClick: (e)=>e.stopPropagation(),
45
+ onMouseDown: (e)=>e.stopPropagation(),
46
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(CanvasDropdownMenu_cjs_namespaceObject.CanvasDropdownMenu, {
47
+ open: isOpen,
48
+ onOpenChange: setIsOpen,
49
+ menuItems: menuItems,
50
+ onItemClick: handleMenuItemClick,
51
+ triggerAriaLabel: "Node context menu"
52
+ })
121
53
  });
122
54
  });
123
55
  exports.NodeContextMenu = __webpack_exports__.NodeContextMenu;
@@ -1,4 +1,3 @@
1
- import type React from 'react';
2
1
  import type { NodeContextMenuProps } from './NodeContextMenu.types';
3
- export declare const NodeContextMenu: React.MemoExoticComponent<({ menuItems, isVisible }: NodeContextMenuProps) => import("react/jsx-runtime").JSX.Element | null>;
2
+ export declare const NodeContextMenu: import("react").MemoExoticComponent<({ menuItems, isVisible }: NodeContextMenuProps) => import("react/jsx-runtime").JSX.Element | null>;
4
3
  //# sourceMappingURL=NodeContextMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/NodeContextMenu/NodeContextMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,yBAAyB,CAAC;AAEpF,eAAO,MAAM,eAAe,uDAA2C,oBAAoB,oDA0HzF,CAAC"}
1
+ {"version":3,"file":"NodeContextMenu.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/NodeContextMenu/NodeContextMenu.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,yBAAyB,CAAC;AAEpF,eAAO,MAAM,eAAe,iEAA2C,oBAAoB,oDAkCzF,CAAC"}
@@ -1,95 +1,27 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { ApIcon, ApIconButton, ApMenu } from "../../../material/components/index.js";
3
- import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { memo, useCallback, useState } from "react";
3
+ import { CanvasDropdownMenu } from "../shared/CanvasDropdownMenu.js";
4
4
  import { MenuButton } from "./NodeContextMenu.styles.js";
5
5
  const NodeContextMenu = /*#__PURE__*/ memo(({ menuItems, isVisible = false })=>{
6
6
  const [isOpen, setIsOpen] = useState(false);
7
- const anchorRef = useRef(null);
8
- const handleMenuOpen = useCallback((event)=>{
9
- event.stopPropagation();
10
- event.preventDefault();
11
- setIsOpen(true);
12
- }, []);
13
- const handleMenuClose = useCallback(()=>{
14
- setIsOpen(false);
15
- }, []);
16
- useEffect(()=>{
17
- if (!isOpen) return;
18
- const handleKeyDown = (e)=>{
19
- if ('Escape' === e.key || 'Esc' === e.key) {
20
- e.preventDefault();
21
- e.stopPropagation();
22
- setIsOpen(false);
23
- }
24
- };
25
- const handleClickAway = (e)=>{
26
- const target = e.target;
27
- if (anchorRef.current?.contains(target)) return;
28
- const menuElement = document.querySelector('[role="menu"]');
29
- if (menuElement && !menuElement.contains(target)) setIsOpen(false);
30
- };
31
- window.addEventListener('keydown', handleKeyDown, true);
32
- document.addEventListener('mousedown', handleClickAway);
33
- return ()=>{
34
- window.removeEventListener('keydown', handleKeyDown, true);
35
- document.removeEventListener('mousedown', handleClickAway);
36
- };
37
- }, [
38
- isOpen
39
- ]);
40
7
  const handleMenuItemClick = useCallback((item)=>{
41
8
  if (true === item.disabled) return;
42
9
  item.onClick();
43
- handleMenuClose();
44
- }, [
45
- handleMenuClose
46
- ]);
47
- const transformedMenuItems = useMemo(()=>menuItems?.map((item, index)=>{
48
- if ('type' in item && 'divider' === item.type) return {
49
- divider: true,
50
- key: `divider-${index}`,
51
- variant: 'separator'
52
- };
53
- const actionItem = item;
54
- return {
55
- key: actionItem.id,
56
- title: actionItem.label,
57
- startIcon: actionItem.icon,
58
- disabled: actionItem.disabled,
59
- onClick: ()=>handleMenuItemClick(actionItem),
60
- variant: 'item'
61
- };
62
- }) || [], [
63
- menuItems,
64
- handleMenuItemClick
65
- ]);
10
+ setIsOpen(false);
11
+ }, []);
66
12
  if (!menuItems || 0 === menuItems.length) return null;
67
13
  if (!isVisible && !isOpen) return null;
68
- return /*#__PURE__*/ jsxs(Fragment, {
69
- children: [
70
- /*#__PURE__*/ jsx(MenuButton, {
71
- $isVisible: isVisible || isOpen,
72
- onClick: (e)=>e.stopPropagation(),
73
- onMouseDown: (e)=>e.stopPropagation(),
74
- children: /*#__PURE__*/ jsx(ApIconButton, {
75
- ref: anchorRef,
76
- size: "small",
77
- color: "secondary",
78
- onClick: handleMenuOpen,
79
- onMouseDown: (e)=>e.stopPropagation(),
80
- children: /*#__PURE__*/ jsx(ApIcon, {
81
- name: "more_vert",
82
- size: "16px"
83
- })
84
- })
85
- }),
86
- isOpen && anchorRef.current && /*#__PURE__*/ jsx(ApMenu, {
87
- isOpen: isOpen,
88
- anchorEl: anchorRef.current,
89
- menuItems: transformedMenuItems,
90
- onClose: handleMenuClose
91
- })
92
- ]
14
+ return /*#__PURE__*/ jsx(MenuButton, {
15
+ $isVisible: isVisible || isOpen,
16
+ onClick: (e)=>e.stopPropagation(),
17
+ onMouseDown: (e)=>e.stopPropagation(),
18
+ children: /*#__PURE__*/ jsx(CanvasDropdownMenu, {
19
+ open: isOpen,
20
+ onOpenChange: setIsOpen,
21
+ menuItems: menuItems,
22
+ onItemClick: handleMenuItemClick,
23
+ triggerAriaLabel: "Node context menu"
24
+ })
93
25
  });
94
26
  });
95
27
  export { NodeContextMenu };