@uipath/apollo-react 4.24.4 → 4.25.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/BaseCanvas/BaseCanvas.cjs +2 -1
  2. package/dist/canvas/components/BaseCanvas/BaseCanvas.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseCanvas/BaseCanvas.js +2 -1
  4. package/dist/canvas/components/BaseCanvas/BaseCanvas.types.d.ts +2 -0
  5. package/dist/canvas/components/BaseCanvas/BaseCanvas.types.d.ts.map +1 -1
  6. package/dist/canvas/components/BaseCanvas/CanvasProviders.cjs +19 -14
  7. package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts +2 -1
  8. package/dist/canvas/components/BaseCanvas/CanvasProviders.d.ts.map +1 -1
  9. package/dist/canvas/components/BaseCanvas/CanvasProviders.js +19 -14
  10. package/dist/canvas/components/BaseNode/BaseNodeContainer.cjs +5 -1
  11. package/dist/canvas/components/BaseNode/BaseNodeContainer.d.ts.map +1 -1
  12. package/dist/canvas/components/BaseNode/BaseNodeContainer.js +5 -1
  13. package/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +1 -1
  14. package/dist/canvas/components/ButtonHandle/ButtonHandle.js +1 -1
  15. package/dist/canvas/components/CanvasTooltip.cjs +2 -3
  16. package/dist/canvas/components/CanvasTooltip.d.ts +2 -2
  17. package/dist/canvas/components/CanvasTooltip.d.ts.map +1 -1
  18. package/dist/canvas/components/CanvasTooltip.js +2 -3
  19. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.cjs +1 -0
  20. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.d.ts +1 -1
  21. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.d.ts.map +1 -1
  22. package/dist/canvas/components/ExecutionStatusIcon/ExecutionStatusIcon.js +1 -0
  23. package/dist/canvas/components/LoopNode/IterationNavigator.cjs +143 -0
  24. package/dist/canvas/components/LoopNode/IterationNavigator.d.ts +7 -0
  25. package/dist/canvas/components/LoopNode/IterationNavigator.d.ts.map +1 -0
  26. package/dist/canvas/components/LoopNode/IterationNavigator.js +109 -0
  27. package/dist/canvas/components/LoopNode/LoopNode.cjs +45 -18
  28. package/dist/canvas/components/LoopNode/LoopNode.d.ts.map +1 -1
  29. package/dist/canvas/components/LoopNode/LoopNode.js +45 -18
  30. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts +8 -0
  31. package/dist/canvas/components/LoopNode/LoopNode.types.d.ts.map +1 -1
  32. package/dist/canvas/components/StageNode/AdhocTask.cjs +1 -0
  33. package/dist/canvas/components/StageNode/AdhocTask.d.ts.map +1 -1
  34. package/dist/canvas/components/StageNode/AdhocTask.js +1 -0
  35. package/dist/canvas/components/StageNode/DraggableTask.cjs +1 -0
  36. package/dist/canvas/components/StageNode/DraggableTask.d.ts.map +1 -1
  37. package/dist/canvas/components/StageNode/DraggableTask.js +1 -0
  38. package/dist/canvas/components/StageNode/EventDrivenTask.cjs +1 -0
  39. package/dist/canvas/components/StageNode/EventDrivenTask.d.ts.map +1 -1
  40. package/dist/canvas/components/StageNode/EventDrivenTask.js +1 -0
  41. package/dist/canvas/components/StageNode/StageNode.cjs +5 -3
  42. package/dist/canvas/components/StageNode/StageNode.d.ts.map +1 -1
  43. package/dist/canvas/components/StageNode/StageNode.js +5 -3
  44. package/dist/canvas/components/StageNode/StageNode.styles.cjs +4 -39
  45. package/dist/canvas/components/StageNode/StageNode.styles.d.ts +1 -14
  46. package/dist/canvas/components/StageNode/StageNode.styles.d.ts.map +1 -1
  47. package/dist/canvas/components/StageNode/StageNode.styles.js +4 -33
  48. package/dist/canvas/components/StageNode/StageNode.types.d.ts +4 -2
  49. package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
  50. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.cjs +3 -1
  51. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.d.ts.map +1 -1
  52. package/dist/canvas/components/StageNode/StageNodeAdhocTaskGroups.js +3 -1
  53. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.cjs +9 -5
  54. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.d.ts.map +1 -1
  55. package/dist/canvas/components/StageNode/StageNodeAllTaskGroups.js +9 -5
  56. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.cjs +3 -1
  57. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.d.ts.map +1 -1
  58. package/dist/canvas/components/StageNode/StageNodeEventDrivenTaskGroups.js +3 -1
  59. package/dist/canvas/components/StageNode/StageNodeHeader.cjs +106 -151
  60. package/dist/canvas/components/StageNode/StageNodeHeader.d.ts.map +1 -1
  61. package/dist/canvas/components/StageNode/StageNodeHeader.js +110 -155
  62. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.cjs +7 -3
  63. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.d.ts.map +1 -1
  64. package/dist/canvas/components/StageNode/StageNodeSequentialTaskGroups.js +7 -3
  65. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.cjs +11 -11
  66. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts +14 -1
  67. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.d.ts.map +1 -1
  68. package/dist/canvas/components/StageNode/StageNodeTaskUtilities.js +11 -11
  69. package/dist/canvas/components/StageNode/StageTitleInput.cjs +120 -0
  70. package/dist/canvas/components/StageNode/StageTitleInput.d.ts +8 -0
  71. package/dist/canvas/components/StageNode/StageTitleInput.d.ts.map +1 -0
  72. package/dist/canvas/components/StageNode/StageTitleInput.js +86 -0
  73. package/dist/canvas/components/StageNode/useStageNodeLabels.cjs +122 -0
  74. package/dist/canvas/components/StageNode/useStageNodeLabels.d.ts +15 -0
  75. package/dist/canvas/components/StageNode/useStageNodeLabels.d.ts.map +1 -0
  76. package/dist/canvas/components/StageNode/useStageNodeLabels.js +88 -0
  77. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.cjs +51 -38
  78. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.d.ts.map +1 -1
  79. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.js +49 -36
  80. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.styles.cjs +2 -5
  81. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.styles.d.ts.map +1 -1
  82. package/dist/canvas/components/StickyNoteNode/StickyNoteNode.styles.js +2 -5
  83. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +5 -5
  84. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +5 -5
  85. package/dist/canvas/components/Toolbox/Toolbox.cjs +7 -1
  86. package/dist/canvas/components/Toolbox/Toolbox.d.ts.map +1 -1
  87. package/dist/canvas/components/Toolbox/Toolbox.js +7 -1
  88. package/dist/canvas/index.cjs +65 -47
  89. package/dist/canvas/index.d.ts +2 -0
  90. package/dist/canvas/index.d.ts.map +1 -1
  91. package/dist/canvas/index.js +2 -1
  92. package/dist/canvas/locales/en.cjs +1 -1
  93. package/dist/canvas/locales/en.d.ts.map +1 -1
  94. package/dist/canvas/locales/en.js +1 -1
  95. package/dist/canvas/storybook-utils/decorators.d.ts.map +1 -1
  96. package/dist/canvas/styles/reactflow-reset.css +5 -1
  97. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  98. package/dist/canvas/utils/adornment-resolver.cjs +4 -8
  99. package/dist/canvas/utils/adornment-resolver.d.ts +4 -1
  100. package/dist/canvas/utils/adornment-resolver.d.ts.map +1 -1
  101. package/dist/canvas/utils/adornment-resolver.js +4 -8
  102. package/dist/canvas/utils/testing.cjs +10 -1
  103. package/dist/canvas/utils/testing.d.ts +1 -1
  104. package/dist/canvas/utils/testing.d.ts.map +1 -1
  105. package/dist/canvas/utils/testing.js +10 -1
  106. package/dist/i18n/ApI18nProvider.cjs +3 -1
  107. package/dist/i18n/ApI18nProvider.d.ts.map +1 -1
  108. package/dist/i18n/ApI18nProvider.js +3 -1
  109. package/package.json +5 -6
@@ -0,0 +1,8 @@
1
+ type StageTitleInputProps = {
2
+ label: string;
3
+ onChange?: (next: string) => void;
4
+ className?: string;
5
+ };
6
+ export declare const StageTitleInput: ({ label: labelProp, onChange, className, }: StageTitleInputProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=StageTitleInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageTitleInput.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageTitleInput.tsx"],"names":[],"mappings":"AAKA,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,4CAI7B,oBAAoB,4CAyFtB,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "@uipath/apollo-wind";
3
+ import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
4
+ import { CanvasTooltip } from "../CanvasTooltip.js";
5
+ import { useStageNodeLabels } from "./useStageNodeLabels.js";
6
+ const StageTitleInput = ({ label: labelProp, onChange, className })=>{
7
+ const labels = useStageNodeLabels();
8
+ const isEditable = !!onChange;
9
+ const [isEditing, setIsEditing] = useState(false);
10
+ const inputRef = useRef(null);
11
+ const [label, setLabel] = useState(labelProp);
12
+ useEffect(()=>{
13
+ setLabel(labelProp);
14
+ }, [
15
+ labelProp
16
+ ]);
17
+ useLayoutEffect(()=>{
18
+ if (isEditing && inputRef.current) {
19
+ const input = inputRef.current;
20
+ input.focus();
21
+ const caret = input.value.length;
22
+ input.setSelectionRange(caret, caret);
23
+ }
24
+ }, [
25
+ isEditing
26
+ ]);
27
+ const handleChange = useCallback((e)=>{
28
+ setLabel(e.target.value);
29
+ }, []);
30
+ const saveStageTitle = useCallback(()=>{
31
+ setIsEditing(false);
32
+ if (!onChange) return;
33
+ const finalLabel = '' === label.trim() ? labels.untitledStage : label;
34
+ if (finalLabel !== label) setLabel(finalLabel);
35
+ onChange(finalLabel);
36
+ }, [
37
+ onChange,
38
+ label,
39
+ labels.untitledStage
40
+ ]);
41
+ const handleBlur = useCallback(()=>{
42
+ if (isEditing) saveStageTitle();
43
+ }, [
44
+ isEditing,
45
+ saveStageTitle
46
+ ]);
47
+ const handleKeyDown = useCallback((e)=>{
48
+ if ('Enter' === e.key) saveStageTitle();
49
+ if ('Escape' !== e.key) e.stopPropagation();
50
+ }, [
51
+ saveStageTitle
52
+ ]);
53
+ return /*#__PURE__*/ jsx("div", {
54
+ className: cn('py-0.5 text-sm', !isEditing && 'font-bold', className),
55
+ children: /*#__PURE__*/ jsx(CanvasTooltip, {
56
+ content: label,
57
+ placement: "top",
58
+ hide: isEditing,
59
+ delay: true,
60
+ children: /*#__PURE__*/ jsx("div", {
61
+ className: cn('flex min-h-7 w-full items-center rounded', isEditing && 'outline outline-1 -outline-offset-1 outline-[var(--canvas-border-de-emp)]'),
62
+ children: isEditing ? /*#__PURE__*/ jsx("input", {
63
+ ref: inputRef,
64
+ name: "Stage Title",
65
+ value: label,
66
+ onInput: handleChange,
67
+ onKeyDown: handleKeyDown,
68
+ onBlur: handleBlur,
69
+ className: cn('nodrag w-full min-w-[100px] py-1', 'cursor-text rounded-sm border-none bg-transparent text-sm text-ellipsis', 'focus:outline-none', 'hover:bg-[var(--canvas-background-secondary)]')
70
+ }) : isEditable ? /*#__PURE__*/ jsx("button", {
71
+ type: "button",
72
+ className: cn('nodrag flex w-full min-w-0 items-center self-stretch rounded-sm', 'appearance-none border-none bg-transparent p-0 text-left text-sm font-bold', 'cursor-text hover:bg-[var(--canvas-background-secondary)]'),
73
+ onClick: ()=>setIsEditing(true),
74
+ children: /*#__PURE__*/ jsx("span", {
75
+ className: "truncate",
76
+ children: label
77
+ })
78
+ }) : /*#__PURE__*/ jsx("span", {
79
+ className: "inline-block max-w-full truncate rounded-sm py-1",
80
+ children: label
81
+ })
82
+ })
83
+ })
84
+ });
85
+ };
86
+ export { StageTitleInput };
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ useStageNodeLabels: ()=>useStageNodeLabels
28
+ });
29
+ const react_namespaceObject = require("@lingui/react");
30
+ const external_react_namespaceObject = require("react");
31
+ function useStageNodeLabels() {
32
+ const { _ } = (0, react_namespaceObject.useLingui)();
33
+ return (0, external_react_namespaceObject.useMemo)(()=>({
34
+ addFirstTask: _({
35
+ id: 'stage-node.add-first-task',
36
+ message: 'Add first task'
37
+ }),
38
+ noTasks: _({
39
+ id: 'stage-node.no-tasks',
40
+ message: 'No tasks'
41
+ }),
42
+ addTask: _({
43
+ id: 'stage-node.add-task',
44
+ message: 'Add task'
45
+ }),
46
+ replaceTask: _({
47
+ id: 'stage-node.replace-task',
48
+ message: 'Replace task'
49
+ }),
50
+ deleteTask: _({
51
+ id: 'stage-node.delete-task',
52
+ message: 'Delete task'
53
+ }),
54
+ adhocTasks: _({
55
+ id: 'stage-node.adhoc-tasks',
56
+ message: 'Ad hoc tasks'
57
+ }),
58
+ eventDrivenTasks: _({
59
+ id: 'stage-node.event-driven-tasks',
60
+ message: 'Event-driven tasks'
61
+ }),
62
+ parallel: _({
63
+ id: 'stage-node.parallel',
64
+ message: 'Parallel'
65
+ }),
66
+ untitledStage: _({
67
+ id: 'stage-node.untitled-stage',
68
+ message: 'Untitled stage'
69
+ }),
70
+ contextMenu: {
71
+ moveUp: _({
72
+ id: 'stage-node.move-up',
73
+ message: 'Move up'
74
+ }),
75
+ moveDown: _({
76
+ id: 'stage-node.move-down',
77
+ message: 'Move down'
78
+ }),
79
+ ungroupParallelTasks: _({
80
+ id: 'stage-node.ungroup-parallel-tasks',
81
+ message: 'Ungroup parallel tasks'
82
+ }),
83
+ removeFromParallelGroup: _({
84
+ id: 'stage-node.remove-from-parallel-group',
85
+ message: 'Remove from parallel group'
86
+ }),
87
+ removeGroupFromStage: _({
88
+ id: 'stage-node.remove-group-from-stage',
89
+ message: 'Remove group from stage'
90
+ }),
91
+ deleteTask: _({
92
+ id: 'stage-node.delete-task',
93
+ message: 'Delete task'
94
+ }),
95
+ createParallelGroupWithTaskAbove: _({
96
+ id: 'stage-node.create-parallel-group-with-task-above',
97
+ message: 'Create parallel group with task above'
98
+ }),
99
+ createParallelGroupWithTaskBelow: _({
100
+ id: 'stage-node.create-parallel-group-with-task-below',
101
+ message: 'Create parallel group with task below'
102
+ }),
103
+ addTaskToParallelGroupAbove: _({
104
+ id: 'stage-node.add-task-to-parallel-group-above',
105
+ message: 'Add task to parallel group above'
106
+ }),
107
+ addTaskToParallelGroupBelow: _({
108
+ id: 'stage-node.add-task-to-parallel-group-below',
109
+ message: 'Add task to parallel group below'
110
+ })
111
+ }
112
+ }), [
113
+ _
114
+ ]);
115
+ }
116
+ exports.useStageNodeLabels = __webpack_exports__.useStageNodeLabels;
117
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
118
+ "useStageNodeLabels"
119
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
120
+ Object.defineProperty(exports, '__esModule', {
121
+ value: true
122
+ });
@@ -0,0 +1,15 @@
1
+ import type { StageContextMenuLabels } from './StageNodeTaskUtilities';
2
+ export interface StageNodeLabels {
3
+ addFirstTask: string;
4
+ noTasks: string;
5
+ addTask: string;
6
+ replaceTask: string;
7
+ deleteTask: string;
8
+ adhocTasks: string;
9
+ eventDrivenTasks: string;
10
+ parallel: string;
11
+ untitledStage: string;
12
+ contextMenu: StageContextMenuLabels;
13
+ }
14
+ export declare function useStageNodeLabels(): StageNodeLabels;
15
+ //# sourceMappingURL=useStageNodeLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStageNodeLabels.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/useStageNodeLabels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAqDpD"}
@@ -0,0 +1,88 @@
1
+ import { useLingui } from "@lingui/react";
2
+ import { useMemo } from "react";
3
+ function useStageNodeLabels() {
4
+ const { _ } = useLingui();
5
+ return useMemo(()=>({
6
+ addFirstTask: _({
7
+ id: 'stage-node.add-first-task',
8
+ message: 'Add first task'
9
+ }),
10
+ noTasks: _({
11
+ id: 'stage-node.no-tasks',
12
+ message: 'No tasks'
13
+ }),
14
+ addTask: _({
15
+ id: 'stage-node.add-task',
16
+ message: 'Add task'
17
+ }),
18
+ replaceTask: _({
19
+ id: 'stage-node.replace-task',
20
+ message: 'Replace task'
21
+ }),
22
+ deleteTask: _({
23
+ id: 'stage-node.delete-task',
24
+ message: 'Delete task'
25
+ }),
26
+ adhocTasks: _({
27
+ id: 'stage-node.adhoc-tasks',
28
+ message: 'Ad hoc tasks'
29
+ }),
30
+ eventDrivenTasks: _({
31
+ id: 'stage-node.event-driven-tasks',
32
+ message: 'Event-driven tasks'
33
+ }),
34
+ parallel: _({
35
+ id: 'stage-node.parallel',
36
+ message: 'Parallel'
37
+ }),
38
+ untitledStage: _({
39
+ id: 'stage-node.untitled-stage',
40
+ message: 'Untitled stage'
41
+ }),
42
+ contextMenu: {
43
+ moveUp: _({
44
+ id: 'stage-node.move-up',
45
+ message: 'Move up'
46
+ }),
47
+ moveDown: _({
48
+ id: 'stage-node.move-down',
49
+ message: 'Move down'
50
+ }),
51
+ ungroupParallelTasks: _({
52
+ id: 'stage-node.ungroup-parallel-tasks',
53
+ message: 'Ungroup parallel tasks'
54
+ }),
55
+ removeFromParallelGroup: _({
56
+ id: 'stage-node.remove-from-parallel-group',
57
+ message: 'Remove from parallel group'
58
+ }),
59
+ removeGroupFromStage: _({
60
+ id: 'stage-node.remove-group-from-stage',
61
+ message: 'Remove group from stage'
62
+ }),
63
+ deleteTask: _({
64
+ id: 'stage-node.delete-task',
65
+ message: 'Delete task'
66
+ }),
67
+ createParallelGroupWithTaskAbove: _({
68
+ id: 'stage-node.create-parallel-group-with-task-above',
69
+ message: 'Create parallel group with task above'
70
+ }),
71
+ createParallelGroupWithTaskBelow: _({
72
+ id: 'stage-node.create-parallel-group-with-task-below',
73
+ message: 'Create parallel group with task below'
74
+ }),
75
+ addTaskToParallelGroupAbove: _({
76
+ id: 'stage-node.add-task-to-parallel-group-above',
77
+ message: 'Add task to parallel group above'
78
+ }),
79
+ addTaskToParallelGroupBelow: _({
80
+ id: 'stage-node.add-task-to-parallel-group-below',
81
+ message: 'Add task to parallel group below'
82
+ })
83
+ }
84
+ }), [
85
+ _
86
+ ]);
87
+ }
88
+ export { useStageNodeLabels };
@@ -41,7 +41,6 @@ const external_index_cjs_namespaceObject = require("../../index.cjs");
41
41
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
42
42
  const external_motion_react_namespaceObject = require("motion/react");
43
43
  const external_react_namespaceObject = require("react");
44
- const index_cjs_namespaceObject = require("../../../i18n/index.cjs");
45
44
  const external_react_markdown_namespaceObject = require("react-markdown");
46
45
  var external_react_markdown_default = /*#__PURE__*/ __webpack_require__.n(external_react_markdown_namespaceObject);
47
46
  const external_remark_breaks_namespaceObject = require("remark-breaks");
@@ -49,7 +48,8 @@ var external_remark_breaks_default = /*#__PURE__*/ __webpack_require__.n(externa
49
48
  const external_remark_gfm_namespaceObject = require("remark-gfm");
50
49
  var external_remark_gfm_default = /*#__PURE__*/ __webpack_require__.n(external_remark_gfm_namespaceObject);
51
50
  const external_constants_cjs_namespaceObject = require("../../constants.cjs");
52
- const external_Toolbar_index_cjs_namespaceObject = require("../Toolbar/index.cjs");
51
+ const external_NodeViewportOverlay_cjs_namespaceObject = require("../NodeViewportOverlay.cjs");
52
+ const index_cjs_namespaceObject = require("../Toolbar/index.cjs");
53
53
  const external_FormattingToolbar_cjs_namespaceObject = require("./FormattingToolbar.cjs");
54
54
  const external_markdown_formatting_index_cjs_namespaceObject = require("./markdown-formatting/index.cjs");
55
55
  const external_StickyNoteNode_styles_cjs_namespaceObject = require("./StickyNoteNode.styles.cjs");
@@ -314,6 +314,7 @@ const StickyNoteNodeComponent = ({ id, data, selected, dragging, placeholder = '
314
314
  styles: external_StickyNoteNode_styles_cjs_namespaceObject.stickyNoteGlobalStyles
315
315
  }),
316
316
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StickyNoteNode_styles_cjs_namespaceObject.StickyNoteWrapper, {
317
+ "data-sticky-note": true,
317
318
  children: [
318
319
  !readOnly && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
319
320
  children: [
@@ -397,8 +398,7 @@ const StickyNoteNodeComponent = ({ id, data, selected, dragging, placeholder = '
397
398
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StickyNoteNode_styles_cjs_namespaceObject.BottomCornerIndicators, {
398
399
  visible: selected && !readOnly
399
400
  }),
400
- isEditing ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(index_cjs_namespaceObject.ApI18nProvider, {
401
- component: "canvas",
401
+ isEditing ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
402
402
  children: [
403
403
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_FormattingToolbar_cjs_namespaceObject.FormattingToolbar, {
404
404
  textAreaRef: textAreaRef,
@@ -440,45 +440,58 @@ const StickyNoteNodeComponent = ({ id, data, selected, dragging, placeholder = '
440
440
  })
441
441
  ]
442
442
  }),
443
- !readOnly && selected && !dragging && !isResizing && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_Toolbar_index_cjs_namespaceObject.NodeToolbar, {
443
+ !readOnly && selected && !dragging && !isResizing && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.NodeToolbar, {
444
444
  nodeId: id,
445
445
  config: toolbarConfig,
446
- expanded: true
446
+ expanded: true,
447
+ portalToNodeOverlay: true
447
448
  }),
448
- /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_motion_react_namespaceObject.AnimatePresence, {
449
- children: !readOnly && selected && !dragging && !isResizing && isColorPickerOpen && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
450
- style: {
451
- position: 'absolute',
452
- top: -40,
453
- left: '50%',
454
- transform: 'translateX(40px)',
455
- zIndex: 1000
456
- },
457
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StickyNoteNode_styles_cjs_namespaceObject.ColorPickerPanel, {
458
- initial: {
459
- opacity: 0,
460
- y: 10
461
- },
462
- animate: {
463
- opacity: 1,
464
- y: 0
465
- },
466
- exit: {
467
- opacity: 0,
468
- y: 10
449
+ !readOnly && selected && !dragging && !isResizing && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_NodeViewportOverlay_cjs_namespaceObject.NodeViewportOverlay, {
450
+ nodeId: id,
451
+ layer: "nodeToolbar",
452
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_motion_react_namespaceObject.AnimatePresence, {
453
+ children: isColorPickerOpen && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
454
+ className: "nodrag nopan nowheel",
455
+ style: {
456
+ position: 'absolute',
457
+ top: -40,
458
+ left: '50%',
459
+ transform: 'translateX(40px)',
460
+ zIndex: 1000,
461
+ pointerEvents: 'auto'
469
462
  },
470
- transition: {
471
- duration: 0.15,
472
- ease: 'easeOut'
463
+ onMouseDown: (e)=>{
464
+ e.preventDefault();
465
+ e.stopPropagation();
473
466
  },
474
- children: Object.keys(external_StickyNoteNode_types_cjs_namespaceObject.STICKY_NOTE_COLORS).map((stickyColorKey)=>{
475
- const colorName = stickyColorKey;
476
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StickyNoteNode_styles_cjs_namespaceObject.ColorOption, {
477
- color: external_StickyNoteNode_types_cjs_namespaceObject.STICKY_NOTE_COLORS[colorName],
478
- isSelected: colorKey === colorName,
479
- onClick: ()=>handleColorChange(colorName),
480
- title: colorName.charAt(0).toUpperCase() + colorName.slice(1)
481
- }, stickyColorKey);
467
+ onClick: (e)=>e.stopPropagation(),
468
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StickyNoteNode_styles_cjs_namespaceObject.ColorPickerPanel, {
469
+ initial: {
470
+ opacity: 0,
471
+ y: 10
472
+ },
473
+ animate: {
474
+ opacity: 1,
475
+ y: 0
476
+ },
477
+ exit: {
478
+ opacity: 0,
479
+ y: 10
480
+ },
481
+ transition: {
482
+ duration: 0.15,
483
+ ease: 'easeOut'
484
+ },
485
+ children: Object.keys(external_StickyNoteNode_types_cjs_namespaceObject.STICKY_NOTE_COLORS).map((stickyColorKey)=>{
486
+ const colorName = stickyColorKey;
487
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_StickyNoteNode_styles_cjs_namespaceObject.ColorOption, {
488
+ type: "button",
489
+ color: external_StickyNoteNode_types_cjs_namespaceObject.STICKY_NOTE_COLORS[colorName],
490
+ isSelected: colorKey === colorName,
491
+ onClick: ()=>handleColorChange(colorName),
492
+ title: colorName.charAt(0).toUpperCase() + colorName.slice(1)
493
+ }, stickyColorKey);
494
+ })
482
495
  })
483
496
  })
484
497
  })
@@ -1 +1 @@
1
- {"version":3,"file":"StickyNoteNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StickyNoteNode/StickyNoteNode.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAgC1E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,wBAAwB,CAAC;AAM7F,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAqZD,eAAO,MAAM,cAAc,sKArYxB,mBAAmB,6CAqYqC,CAAC"}
1
+ {"version":3,"file":"StickyNoteNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StickyNoteNode/StickyNoteNode.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAgC1E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,wBAAwB,CAAC;AAM7F,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAiaD,eAAO,MAAM,cAAc,sKAjZxB,mBAAmB,6CAiZqC,CAAC"}
@@ -4,11 +4,11 @@ import { CanvasIcon } from "../../index.js";
4
4
  import { NodeResizeControl, useReactFlow } from "../../xyflow/react.js";
5
5
  import { AnimatePresence } from "motion/react";
6
6
  import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
7
- import { ApI18nProvider } from "../../../i18n/index.js";
8
7
  import react_markdown from "react-markdown";
9
8
  import remark_breaks from "remark-breaks";
10
9
  import remark_gfm from "remark-gfm";
11
10
  import { GRID_SPACING } from "../../constants.js";
11
+ import { NodeViewportOverlay } from "../NodeViewportOverlay.js";
12
12
  import { NodeToolbar } from "../Toolbar/index.js";
13
13
  import { FormattingToolbar } from "./FormattingToolbar.js";
14
14
  import { activeFormatsEqual, continueListOnEnter, detectActiveFormats } from "./markdown-formatting/index.js";
@@ -274,6 +274,7 @@ const StickyNoteNodeComponent = ({ id, data, selected, dragging, placeholder = '
274
274
  styles: stickyNoteGlobalStyles
275
275
  }),
276
276
  /*#__PURE__*/ jsxs(StickyNoteWrapper, {
277
+ "data-sticky-note": true,
277
278
  children: [
278
279
  !readOnly && /*#__PURE__*/ jsxs(Fragment, {
279
280
  children: [
@@ -357,8 +358,7 @@ const StickyNoteNodeComponent = ({ id, data, selected, dragging, placeholder = '
357
358
  /*#__PURE__*/ jsx(BottomCornerIndicators, {
358
359
  visible: selected && !readOnly
359
360
  }),
360
- isEditing ? /*#__PURE__*/ jsxs(ApI18nProvider, {
361
- component: "canvas",
361
+ isEditing ? /*#__PURE__*/ jsxs(Fragment, {
362
362
  children: [
363
363
  /*#__PURE__*/ jsx(FormattingToolbar, {
364
364
  textAreaRef: textAreaRef,
@@ -403,42 +403,55 @@ const StickyNoteNodeComponent = ({ id, data, selected, dragging, placeholder = '
403
403
  !readOnly && selected && !dragging && !isResizing && /*#__PURE__*/ jsx(NodeToolbar, {
404
404
  nodeId: id,
405
405
  config: toolbarConfig,
406
- expanded: true
406
+ expanded: true,
407
+ portalToNodeOverlay: true
407
408
  }),
408
- /*#__PURE__*/ jsx(AnimatePresence, {
409
- children: !readOnly && selected && !dragging && !isResizing && isColorPickerOpen && /*#__PURE__*/ jsx("div", {
410
- style: {
411
- position: 'absolute',
412
- top: -40,
413
- left: '50%',
414
- transform: 'translateX(40px)',
415
- zIndex: 1000
416
- },
417
- children: /*#__PURE__*/ jsx(ColorPickerPanel, {
418
- initial: {
419
- opacity: 0,
420
- y: 10
421
- },
422
- animate: {
423
- opacity: 1,
424
- y: 0
425
- },
426
- exit: {
427
- opacity: 0,
428
- y: 10
409
+ !readOnly && selected && !dragging && !isResizing && /*#__PURE__*/ jsx(NodeViewportOverlay, {
410
+ nodeId: id,
411
+ layer: "nodeToolbar",
412
+ children: /*#__PURE__*/ jsx(AnimatePresence, {
413
+ children: isColorPickerOpen && /*#__PURE__*/ jsx("div", {
414
+ className: "nodrag nopan nowheel",
415
+ style: {
416
+ position: 'absolute',
417
+ top: -40,
418
+ left: '50%',
419
+ transform: 'translateX(40px)',
420
+ zIndex: 1000,
421
+ pointerEvents: 'auto'
429
422
  },
430
- transition: {
431
- duration: 0.15,
432
- ease: 'easeOut'
423
+ onMouseDown: (e)=>{
424
+ e.preventDefault();
425
+ e.stopPropagation();
433
426
  },
434
- children: Object.keys(STICKY_NOTE_COLORS).map((stickyColorKey)=>{
435
- const colorName = stickyColorKey;
436
- return /*#__PURE__*/ jsx(ColorOption, {
437
- color: STICKY_NOTE_COLORS[colorName],
438
- isSelected: colorKey === colorName,
439
- onClick: ()=>handleColorChange(colorName),
440
- title: colorName.charAt(0).toUpperCase() + colorName.slice(1)
441
- }, stickyColorKey);
427
+ onClick: (e)=>e.stopPropagation(),
428
+ children: /*#__PURE__*/ jsx(ColorPickerPanel, {
429
+ initial: {
430
+ opacity: 0,
431
+ y: 10
432
+ },
433
+ animate: {
434
+ opacity: 1,
435
+ y: 0
436
+ },
437
+ exit: {
438
+ opacity: 0,
439
+ y: 10
440
+ },
441
+ transition: {
442
+ duration: 0.15,
443
+ ease: 'easeOut'
444
+ },
445
+ children: Object.keys(STICKY_NOTE_COLORS).map((stickyColorKey)=>{
446
+ const colorName = stickyColorKey;
447
+ return /*#__PURE__*/ jsx(ColorOption, {
448
+ type: "button",
449
+ color: STICKY_NOTE_COLORS[colorName],
450
+ isSelected: colorKey === colorName,
451
+ onClick: ()=>handleColorChange(colorName),
452
+ title: colorName.charAt(0).toUpperCase() + colorName.slice(1)
453
+ }, stickyColorKey);
454
+ })
442
455
  })
443
456
  })
444
457
  })
@@ -82,11 +82,8 @@ const RESIZE_CONTROL_Z_INDEX = 100;
82
82
  const stickyNoteGlobalStyles = (0, react_namespaceObject.css)`
83
83
  /* Override React Flow's elevateNodesOnSelect behavior for sticky notes */
84
84
  /* Edges have z-index: 0, so we use STICKY_NOTE_BELOW_EDGE_Z_INDEX to ensure sticky notes are below edges */
85
- .react-flow .react-flow__node[data-id^='sticky-'] {
86
- z-index: ${STICKY_NOTE_BELOW_EDGE_Z_INDEX} !important;
87
- }
88
-
89
- .react-flow .react-flow__node.selected[data-id^='sticky-'] {
85
+ .react-flow .react-flow__node:has([data-sticky-note]),
86
+ .react-flow .react-flow__node.selected:has([data-sticky-note]) {
90
87
  z-index: ${STICKY_NOTE_BELOW_EDGE_Z_INDEX} !important;
91
88
  }
92
89
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"StickyNoteNode.styles.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StickyNoteNode/StickyNoteNode.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,8BAA8B,MAAM,CAAC;AA4BlD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,sBAAsB,2CAUlC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;yGAI7B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;iBACjB,MAAM;qBACF,MAAM;eACZ,OAAO;eACP,OAAO;iBACL,OAAO;yGAuBrB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;eAAgC,OAAO;2HAsBrE,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;yGA8H9B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;eAA2B,OAAO;aAAW,MAAM;yGAW3E,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;cAA0B,OAAO;yGA+BhE,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;cAA0B,OAAO;yGA+BnE,CAAC;AAEF,eAAO,MAAM,gBAAgB;;UAa5B,CAAC;AAEF,eAAO,MAAM,WAAW;;;;WAA0B,MAAM;gBAAc,OAAO;qHAkB5E,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;iBAA6B,MAAM;yGAQzE,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;cAA6B,OAAO;qHAoBhE,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;yGAK5B,CAAC"}
1
+ {"version":3,"file":"StickyNoteNode.styles.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StickyNoteNode/StickyNoteNode.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,8BAA8B,MAAM,CAAC;AA4BlD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,sBAAsB,2CAOlC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;yGAI7B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;iBACjB,MAAM;qBACF,MAAM;eACZ,OAAO;eACP,OAAO;iBACL,OAAO;yGAuBrB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;eAAgC,OAAO;2HAsBrE,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;yGA8H9B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;eAA2B,OAAO;aAAW,MAAM;yGAW3E,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;cAA0B,OAAO;yGA+BhE,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;cAA0B,OAAO;yGA+BnE,CAAC;AAEF,eAAO,MAAM,gBAAgB;;UAa5B,CAAC;AAEF,eAAO,MAAM,WAAW;;;;WAA0B,MAAM;gBAAc,OAAO;qHAkB5E,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;iBAA6B,MAAM;yGAQzE,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;cAA6B,OAAO;qHAoBhE,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;yGAK5B,CAAC"}
@@ -30,11 +30,8 @@ const RESIZE_CONTROL_Z_INDEX = 100;
30
30
  const stickyNoteGlobalStyles = css`
31
31
  /* Override React Flow's elevateNodesOnSelect behavior for sticky notes */
32
32
  /* Edges have z-index: 0, so we use STICKY_NOTE_BELOW_EDGE_Z_INDEX to ensure sticky notes are below edges */
33
- .react-flow .react-flow__node[data-id^='sticky-'] {
34
- z-index: ${STICKY_NOTE_BELOW_EDGE_Z_INDEX} !important;
35
- }
36
-
37
- .react-flow .react-flow__node.selected[data-id^='sticky-'] {
33
+ .react-flow .react-flow__node:has([data-sticky-note]),
34
+ .react-flow .react-flow__node.selected:has([data-sticky-note]) {
38
35
  z-index: ${STICKY_NOTE_BELOW_EDGE_Z_INDEX} !important;
39
36
  }
40
37
  `;
@@ -49,12 +49,12 @@ const POSITIONER_ALIGN_CLASS = {
49
49
  center: 'justify-center',
50
50
  end: 'justify-end'
51
51
  };
52
- const CONTAINER_BASE_CLASS = "flex items-center gap-1 p-1 min-h-10 min-w-10 shrink-0 bg-(--canvas-background-raised) border border-(--canvas-background-overlay) rounded-xl shadow-[0_2px_6px_rgba(0,0,0,0.08)] pointer-events-auto";
52
+ const CONTAINER_BASE_CLASS = "flex items-center gap-1 p-1 shrink-0 bg-(--canvas-background-raised) border border-(--canvas-background-overlay) rounded-xl shadow-[0_2px_6px_rgba(0,0,0,0.08)] pointer-events-auto";
53
53
  const CONTAINER_DIRECTION_CLASS = {
54
- top: 'flex-row',
55
- bottom: 'flex-row',
56
- left: 'flex-col',
57
- right: 'flex-col'
54
+ top: 'flex-row min-h-10',
55
+ bottom: 'flex-row min-h-10',
56
+ left: 'flex-col min-w-10',
57
+ right: 'flex-col min-w-10'
58
58
  };
59
59
  const SEPARATOR_BASE_CLASS = 'flex-[0_0_auto] bg-(--canvas-background-overlay) self-center';
60
60
  const SEPARATOR_VERTICAL_CLASS = 'w-px h-5';