@uipath/apollo-react 4.9.0 → 4.11.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.
- package/dist/canvas/components/AddNodePanel/AddNodePreview.cjs +12 -2
- package/dist/canvas/components/AddNodePanel/AddNodePreview.d.ts.map +1 -1
- package/dist/canvas/components/AddNodePanel/AddNodePreview.js +13 -3
- package/dist/canvas/components/AgentCanvas/nodes/ResourceNode.cjs +3 -3
- package/dist/canvas/components/AgentCanvas/nodes/ResourceNode.js +4 -4
- package/dist/canvas/components/BaseCanvas/CanvasThemeContext.cjs +4 -2
- package/dist/canvas/components/BaseCanvas/CanvasThemeContext.d.ts.map +1 -1
- package/dist/canvas/components/BaseCanvas/CanvasThemeContext.js +4 -2
- package/dist/canvas/components/BaseNode/BaseNode.cjs +7 -7
- package/dist/canvas/components/BaseNode/BaseNode.js +7 -7
- package/dist/canvas/components/BaseNode/BaseNodeContainer.cjs +1 -1
- package/dist/canvas/components/BaseNode/BaseNodeContainer.js +1 -1
- package/dist/canvas/components/ButtonHandle/CanvasInlineButton.cjs +56 -0
- package/dist/canvas/components/ButtonHandle/CanvasInlineButton.d.ts +8 -0
- package/dist/canvas/components/ButtonHandle/CanvasInlineButton.d.ts.map +1 -0
- package/dist/canvas/components/ButtonHandle/CanvasInlineButton.js +22 -0
- package/dist/canvas/components/ButtonHandle/HandleButton.cjs +3 -11
- package/dist/canvas/components/ButtonHandle/HandleButton.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/HandleButton.js +3 -11
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.cjs +16 -38
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts.map +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.js +16 -28
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.cjs +1 -1
- package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.js +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.cjs +13 -17
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.js +14 -18
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.types.d.ts +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.types.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +149 -106
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +151 -108
- package/dist/canvas/components/Toolbar/NodeToolbar/useToolbarState.cjs +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/useToolbarState.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/useToolbarState.js +1 -1
- package/dist/canvas/components/Toolbar/shared/ToolbarButton.cjs +7 -7
- package/dist/canvas/components/Toolbar/shared/ToolbarButton.js +7 -7
- package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.cjs +64 -0
- package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.d.ts +8 -0
- package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.d.ts.map +1 -0
- package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.js +30 -0
- package/dist/canvas/components/Toolbar/shared/index.cjs +4 -4
- package/dist/canvas/components/Toolbar/shared/index.d.ts +1 -1
- package/dist/canvas/components/Toolbar/shared/index.d.ts.map +1 -1
- package/dist/canvas/components/Toolbar/shared/index.js +1 -1
- package/dist/canvas/constants.cjs +1 -1
- package/dist/canvas/constants.d.ts +1 -1
- package/dist/canvas/constants.js +1 -1
- package/dist/canvas/icons/ContextIcon.cjs +70 -0
- package/dist/canvas/icons/ContextIcon.d.ts +5 -0
- package/dist/canvas/icons/ContextIcon.d.ts.map +1 -0
- package/dist/canvas/icons/ContextIcon.js +36 -0
- package/dist/canvas/icons/index.cjs +5 -1
- package/dist/canvas/icons/index.d.ts +1 -0
- package/dist/canvas/icons/index.d.ts.map +1 -1
- package/dist/canvas/icons/index.js +2 -1
- package/dist/canvas/storybook-utils/decorators.d.ts.map +1 -1
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/dist/canvas/styles/variables.css +16 -0
- package/package.json +1 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.cjs +0 -70
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.d.ts +0 -8
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.d.ts.map +0 -1
- package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.js +0 -23
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.cjs +0 -236
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.d.ts +0 -26
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.d.ts.map +0 -1
- package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.js +0 -180
- package/dist/canvas/components/Toolbar/shared/ToolbarButton.styles.cjs +0 -78
- package/dist/canvas/components/Toolbar/shared/ToolbarButton.styles.d.ts +0 -9
- package/dist/canvas/components/Toolbar/shared/ToolbarButton.styles.d.ts.map +0 -1
- package/dist/canvas/components/Toolbar/shared/ToolbarButton.styles.js +0 -34
|
@@ -1,12 +1,38 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { cn } from "@uipath/apollo-wind";
|
|
3
|
+
import { AnimatePresence, motion } from "motion/react";
|
|
3
4
|
import { memo, useMemo } from "react";
|
|
4
5
|
import { CanvasIcon } from "../../../utils/icon-registry.js";
|
|
5
6
|
import { CanvasTooltip } from "../../CanvasTooltip.js";
|
|
6
|
-
import {
|
|
7
|
-
import { StyledDropdownItem, StyledDropdownMenu, StyledOverflowContainer, StyledToolbarContainer, StyledToolbarSeparator } from "./NodeToolbar.styles.js";
|
|
7
|
+
import { ToolbarButton, ToolbarIconButton } from "../shared/index.js";
|
|
8
8
|
import { isSeparator } from "./NodeToolbar.utils.js";
|
|
9
9
|
import { useToolbarState } from "./useToolbarState.js";
|
|
10
|
+
const POSITIONER_BASE_CLASS = 'absolute flex pointer-events-none z-10';
|
|
11
|
+
const POSITIONER_POSITION_CLASS = {
|
|
12
|
+
top: 'top-[-52px] left-0 right-0 flex-row',
|
|
13
|
+
bottom: 'bottom-[-52px] left-0 right-0 flex-row',
|
|
14
|
+
left: 'left-[-52px] top-0 bottom-0 flex-col',
|
|
15
|
+
right: 'right-[-52px] top-0 bottom-0 flex-col'
|
|
16
|
+
};
|
|
17
|
+
const POSITIONER_ALIGN_CLASS = {
|
|
18
|
+
start: 'justify-start',
|
|
19
|
+
center: 'justify-center',
|
|
20
|
+
end: 'justify-end'
|
|
21
|
+
};
|
|
22
|
+
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";
|
|
23
|
+
const CONTAINER_DIRECTION_CLASS = {
|
|
24
|
+
top: 'flex-row',
|
|
25
|
+
bottom: 'flex-row',
|
|
26
|
+
left: 'flex-col',
|
|
27
|
+
right: 'flex-col'
|
|
28
|
+
};
|
|
29
|
+
const SEPARATOR_BASE_CLASS = 'flex-[0_0_auto] bg-(--canvas-background-overlay) self-center';
|
|
30
|
+
const SEPARATOR_VERTICAL_CLASS = 'w-px h-5';
|
|
31
|
+
const SEPARATOR_HORIZONTAL_CLASS = 'w-full h-px';
|
|
32
|
+
const DROPDOWN_MENU_CLASS = "absolute top-[-2px] left-[calc(100%+4px)] min-w-[180px] bg-(--canvas-background-raised) border border-(--canvas-background-overlay) rounded-md shadow-[0_4px_12px_rgba(0,0,0,0.08),0_2px_4px_rgba(0,0,0,0.04)] p-1 z-[1000] pointer-events-auto";
|
|
33
|
+
const DROPDOWN_ITEM_BASE_CLASS = "flex items-center gap-3 w-full py-2 px-3 bg-transparent border-none rounded-[4px] text-sm text-(--canvas-foreground) text-left [transition:background_0.15s_ease] enabled:hover:bg-(--canvas-background-hover) future:enabled:hover:bg-(--canvas-background-overlay) [&>svg]:shrink-0 [&>svg]:text-(--canvas-foreground)";
|
|
34
|
+
const DROPDOWN_ITEM_DISABLED_CLASS = 'cursor-not-allowed opacity-40 pointer-events-none';
|
|
35
|
+
const DROPDOWN_ITEM_ENABLED_CLASS = 'cursor-pointer opacity-100';
|
|
10
36
|
const NodeToolbarComponent = ({ nodeId, config, expanded, hidden })=>{
|
|
11
37
|
const { isDropdownOpen, setIsDropdownOpen, dropdownRef, buttonRef, actionsToDisplay, displayState, shouldShowOverflow, overflowActionsToDisplay, separatorOrientation, toggleDropdown } = useToolbarState({
|
|
12
38
|
config,
|
|
@@ -14,9 +40,21 @@ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden })=>{
|
|
|
14
40
|
nodeId,
|
|
15
41
|
hidden
|
|
16
42
|
});
|
|
43
|
+
const position = config.position || 'top';
|
|
44
|
+
const align = config.align || 'center';
|
|
45
|
+
const positionerClassName = useMemo(()=>cn(POSITIONER_BASE_CLASS, POSITIONER_POSITION_CLASS[position], POSITIONER_ALIGN_CLASS[align]), [
|
|
46
|
+
position,
|
|
47
|
+
align
|
|
48
|
+
]);
|
|
49
|
+
const containerClassName = useMemo(()=>cn(CONTAINER_BASE_CLASS, CONTAINER_DIRECTION_CLASS[position]), [
|
|
50
|
+
position
|
|
51
|
+
]);
|
|
52
|
+
const separatorClassName = useMemo(()=>cn(SEPARATOR_BASE_CLASS, 'horizontal' === separatorOrientation ? SEPARATOR_HORIZONTAL_CLASS : SEPARATOR_VERTICAL_CLASS), [
|
|
53
|
+
separatorOrientation
|
|
54
|
+
]);
|
|
17
55
|
const toolbarAnimationVariants = useMemo(()=>{
|
|
18
|
-
const offsetAxis = 'top' ===
|
|
19
|
-
const offsetAmount = 'top' ===
|
|
56
|
+
const offsetAxis = 'top' === position || 'bottom' === position ? 'y' : 'x';
|
|
57
|
+
const offsetAmount = 'top' === position || 'left' === position ? -10 : 10;
|
|
20
58
|
const offset = 'pinned' !== displayState ? {
|
|
21
59
|
[offsetAxis]: offsetAmount
|
|
22
60
|
} : {};
|
|
@@ -38,118 +76,123 @@ const NodeToolbarComponent = ({ nodeId, config, expanded, hidden })=>{
|
|
|
38
76
|
}
|
|
39
77
|
};
|
|
40
78
|
}, [
|
|
41
|
-
|
|
79
|
+
position,
|
|
42
80
|
displayState
|
|
43
81
|
]);
|
|
44
82
|
if (0 === config.actions.length && (!config.overflowActions || 0 === config.overflowActions.length)) return null;
|
|
45
83
|
return /*#__PURE__*/ jsx(AnimatePresence, {
|
|
46
|
-
children: 'hidden' !== displayState && /*#__PURE__*/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
onClick: toggleDropdown,
|
|
77
|
-
"aria-label": "More options",
|
|
78
|
-
"aria-expanded": isDropdownOpen,
|
|
79
|
-
"aria-haspopup": "menu",
|
|
80
|
-
children: /*#__PURE__*/ jsx(CanvasTooltip, {
|
|
81
|
-
content: config.overflowLabel,
|
|
84
|
+
children: 'hidden' !== displayState && /*#__PURE__*/ jsx("div", {
|
|
85
|
+
className: positionerClassName,
|
|
86
|
+
children: /*#__PURE__*/ jsxs(motion.div, {
|
|
87
|
+
layout: "position",
|
|
88
|
+
className: containerClassName,
|
|
89
|
+
initial: toolbarAnimationVariants.initial,
|
|
90
|
+
animate: toolbarAnimationVariants.animate,
|
|
91
|
+
exit: toolbarAnimationVariants.exit,
|
|
92
|
+
transition: {
|
|
93
|
+
duration: 0.15,
|
|
94
|
+
ease: 'easeOut'
|
|
95
|
+
},
|
|
96
|
+
role: "toolbar",
|
|
97
|
+
children: [
|
|
98
|
+
actionsToDisplay.map((item, i)=>isSeparator(item) ? /*#__PURE__*/ jsx("div", {
|
|
99
|
+
className: separatorClassName
|
|
100
|
+
}, `separator-${i}`) : /*#__PURE__*/ jsx(ToolbarButton, {
|
|
101
|
+
action: item,
|
|
102
|
+
layoutId: item.isPinned ? `toolbar-btn-${nodeId}-${item.id}` : void 0
|
|
103
|
+
}, item.id)),
|
|
104
|
+
shouldShowOverflow && /*#__PURE__*/ jsxs(Fragment, {
|
|
105
|
+
children: [
|
|
106
|
+
actionsToDisplay.length > 0 && /*#__PURE__*/ jsx("div", {
|
|
107
|
+
className: separatorClassName
|
|
108
|
+
}),
|
|
109
|
+
/*#__PURE__*/ jsxs("div", {
|
|
110
|
+
className: "relative",
|
|
111
|
+
children: [
|
|
112
|
+
/*#__PURE__*/ jsx(CanvasTooltip, {
|
|
113
|
+
content: config.overflowLabel ?? 'More options',
|
|
82
114
|
placement: "top",
|
|
83
|
-
children: /*#__PURE__*/ jsx(
|
|
84
|
-
|
|
85
|
-
|
|
115
|
+
children: /*#__PURE__*/ jsx(ToolbarIconButton, {
|
|
116
|
+
ref: buttonRef,
|
|
117
|
+
type: "button",
|
|
118
|
+
className: "nodrag nopan",
|
|
119
|
+
onClick: toggleDropdown,
|
|
120
|
+
"aria-label": config.overflowLabel ?? 'More options',
|
|
121
|
+
"aria-expanded": isDropdownOpen,
|
|
122
|
+
"aria-haspopup": "menu",
|
|
123
|
+
children: /*#__PURE__*/ jsx(CanvasIcon, {
|
|
124
|
+
icon: "ellipsis-vertical",
|
|
125
|
+
size: 16
|
|
126
|
+
})
|
|
86
127
|
})
|
|
87
|
-
})
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
128
|
+
}),
|
|
129
|
+
/*#__PURE__*/ jsx(AnimatePresence, {
|
|
130
|
+
children: isDropdownOpen && /*#__PURE__*/ jsx(motion.div, {
|
|
131
|
+
ref: dropdownRef,
|
|
132
|
+
className: DROPDOWN_MENU_CLASS,
|
|
133
|
+
initial: {
|
|
134
|
+
opacity: 0,
|
|
135
|
+
x: -8
|
|
136
|
+
},
|
|
137
|
+
animate: {
|
|
138
|
+
opacity: 1,
|
|
139
|
+
x: 0
|
|
140
|
+
},
|
|
141
|
+
exit: {
|
|
142
|
+
opacity: 0,
|
|
143
|
+
x: -8
|
|
144
|
+
},
|
|
145
|
+
transition: {
|
|
146
|
+
duration: 0.15
|
|
147
|
+
},
|
|
148
|
+
role: "menu",
|
|
149
|
+
"aria-label": config.overflowLabel ?? 'More options',
|
|
150
|
+
children: overflowActionsToDisplay.map((item, i)=>{
|
|
151
|
+
if (isSeparator(item)) return /*#__PURE__*/ jsx("div", {
|
|
152
|
+
className: cn(SEPARATOR_BASE_CLASS, SEPARATOR_HORIZONTAL_CLASS)
|
|
153
|
+
}, `separator-${i}`);
|
|
154
|
+
return /*#__PURE__*/ jsxs("button", {
|
|
155
|
+
type: "button",
|
|
156
|
+
className: cn(DROPDOWN_ITEM_BASE_CLASS, item.disabled ? DROPDOWN_ITEM_DISABLED_CLASS : DROPDOWN_ITEM_ENABLED_CLASS, 'nodrag nopan'),
|
|
157
|
+
onClick: (e)=>{
|
|
158
|
+
e.stopPropagation();
|
|
159
|
+
e.preventDefault();
|
|
160
|
+
if (!item.disabled) {
|
|
161
|
+
item.onClick();
|
|
162
|
+
setIsDropdownOpen(false);
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"aria-label": item.label,
|
|
166
|
+
"aria-disabled": item.disabled,
|
|
167
|
+
disabled: item.disabled,
|
|
168
|
+
role: "menuitem",
|
|
169
|
+
children: [
|
|
170
|
+
item.icon && 'string' == typeof item.icon && /*#__PURE__*/ jsx("span", {
|
|
171
|
+
style: {
|
|
172
|
+
flex: 'unset',
|
|
173
|
+
display: 'inline-flex'
|
|
174
|
+
},
|
|
175
|
+
children: /*#__PURE__*/ jsx(CanvasIcon, {
|
|
176
|
+
icon: item.icon,
|
|
177
|
+
size: 16
|
|
178
|
+
})
|
|
179
|
+
}),
|
|
180
|
+
item.icon && 'string' != typeof item.icon && item.icon,
|
|
181
|
+
/*#__PURE__*/ jsx("span", {
|
|
182
|
+
className: "flex-1 text-(--canvas-foreground)",
|
|
183
|
+
children: item.label
|
|
137
184
|
})
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
children: item.label
|
|
142
|
-
})
|
|
143
|
-
]
|
|
144
|
-
}, item.id);
|
|
185
|
+
]
|
|
186
|
+
}, item.id);
|
|
187
|
+
})
|
|
145
188
|
})
|
|
146
189
|
})
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
190
|
+
]
|
|
191
|
+
})
|
|
192
|
+
]
|
|
193
|
+
})
|
|
194
|
+
]
|
|
195
|
+
})
|
|
153
196
|
})
|
|
154
197
|
});
|
|
155
198
|
};
|
|
@@ -119,7 +119,7 @@ const useToolbarState = ({ config, expanded, nodeId, hidden })=>{
|
|
|
119
119
|
displayState,
|
|
120
120
|
actionsToDisplay,
|
|
121
121
|
overflowActionsToDisplay: overflowActionsWithState,
|
|
122
|
-
separatorOrientation: 'top'
|
|
122
|
+
separatorOrientation: config.position && 'top' !== config.position && 'bottom' !== config.position ? 'horizontal' : 'vertical',
|
|
123
123
|
toggleDropdown
|
|
124
124
|
};
|
|
125
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolbarState.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/NodeToolbar/useToolbarState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnE,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrD,YAAY,EAAE,mBAAmB,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,wBAAwB,EAAE,oBAAoB,EAAE,CAAC;IACjD,oBAAoB,EAAE,YAAY,GAAG,UAAU,CAAC;IAChD,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,eAAe,GAAI,uCAK7B,oBAAoB,KAAG,
|
|
1
|
+
{"version":3,"file":"useToolbarState.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/NodeToolbar/useToolbarState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnE,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrD,YAAY,EAAE,mBAAmB,CAAC;IAClC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;IACzC,wBAAwB,EAAE,oBAAoB,EAAE,CAAC;IACjD,oBAAoB,EAAE,YAAY,GAAG,UAAU,CAAC;IAChD,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,eAAe,GAAI,uCAK7B,oBAAoB,KAAG,qBAwHzB,CAAC"}
|
|
@@ -91,7 +91,7 @@ const useToolbarState = ({ config, expanded, nodeId, hidden })=>{
|
|
|
91
91
|
displayState,
|
|
92
92
|
actionsToDisplay,
|
|
93
93
|
overflowActionsToDisplay: overflowActionsWithState,
|
|
94
|
-
separatorOrientation: 'top'
|
|
94
|
+
separatorOrientation: config.position && 'top' !== config.position && 'bottom' !== config.position ? 'horizontal' : 'vertical',
|
|
95
95
|
toggleDropdown
|
|
96
96
|
};
|
|
97
97
|
};
|
|
@@ -31,10 +31,10 @@ const index_cjs_namespaceObject = require("../../../utils/index.cjs");
|
|
|
31
31
|
const external_react_namespaceObject = require("react");
|
|
32
32
|
const icon_registry_cjs_namespaceObject = require("../../../utils/icon-registry.cjs");
|
|
33
33
|
const external_CanvasTooltip_cjs_namespaceObject = require("../../CanvasTooltip.cjs");
|
|
34
|
-
const
|
|
34
|
+
const external_ToolbarIconButton_cjs_namespaceObject = require("./ToolbarIconButton.cjs");
|
|
35
35
|
const ToolbarButton = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({ action, layoutId })=>{
|
|
36
36
|
const isEnabled = !action.disabled;
|
|
37
|
-
const
|
|
37
|
+
const hoverBg = action.color ? (0, index_cjs_namespaceObject.getLighterColor)(action.color) : void 0;
|
|
38
38
|
const handleClick = (e)=>{
|
|
39
39
|
e.stopPropagation();
|
|
40
40
|
e.preventDefault();
|
|
@@ -43,7 +43,7 @@ const ToolbarButton = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({
|
|
|
43
43
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
|
|
44
44
|
content: action.label,
|
|
45
45
|
placement: "top",
|
|
46
|
-
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(
|
|
46
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ToolbarIconButton_cjs_namespaceObject.ToolbarIconButton, {
|
|
47
47
|
layout: layoutId ? true : void 0,
|
|
48
48
|
layoutId: layoutId,
|
|
49
49
|
transition: {
|
|
@@ -57,10 +57,10 @@ const ToolbarButton = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(({
|
|
|
57
57
|
"aria-label": action.label,
|
|
58
58
|
"aria-disabled": !isEnabled,
|
|
59
59
|
"aria-pressed": action.isToggled,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
disabled: !isEnabled,
|
|
61
|
+
isToggled: action.isToggled,
|
|
62
|
+
color: action.color,
|
|
63
|
+
hoverBg: hoverBg,
|
|
64
64
|
children: action.icon && 'string' == typeof action.icon ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(icon_registry_cjs_namespaceObject.CanvasIcon, {
|
|
65
65
|
icon: action.icon,
|
|
66
66
|
size: 16,
|
|
@@ -3,10 +3,10 @@ import { getLighterColor } from "../../../utils/index.js";
|
|
|
3
3
|
import { memo } from "react";
|
|
4
4
|
import { CanvasIcon } from "../../../utils/icon-registry.js";
|
|
5
5
|
import { CanvasTooltip } from "../../CanvasTooltip.js";
|
|
6
|
-
import {
|
|
6
|
+
import { ToolbarIconButton } from "./ToolbarIconButton.js";
|
|
7
7
|
const ToolbarButton = /*#__PURE__*/ memo(({ action, layoutId })=>{
|
|
8
8
|
const isEnabled = !action.disabled;
|
|
9
|
-
const
|
|
9
|
+
const hoverBg = action.color ? getLighterColor(action.color) : void 0;
|
|
10
10
|
const handleClick = (e)=>{
|
|
11
11
|
e.stopPropagation();
|
|
12
12
|
e.preventDefault();
|
|
@@ -15,7 +15,7 @@ const ToolbarButton = /*#__PURE__*/ memo(({ action, layoutId })=>{
|
|
|
15
15
|
return /*#__PURE__*/ jsx(CanvasTooltip, {
|
|
16
16
|
content: action.label,
|
|
17
17
|
placement: "top",
|
|
18
|
-
children: /*#__PURE__*/ jsx(
|
|
18
|
+
children: /*#__PURE__*/ jsx(ToolbarIconButton, {
|
|
19
19
|
layout: layoutId ? true : void 0,
|
|
20
20
|
layoutId: layoutId,
|
|
21
21
|
transition: {
|
|
@@ -29,10 +29,10 @@ const ToolbarButton = /*#__PURE__*/ memo(({ action, layoutId })=>{
|
|
|
29
29
|
"aria-label": action.label,
|
|
30
30
|
"aria-disabled": !isEnabled,
|
|
31
31
|
"aria-pressed": action.isToggled,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
disabled: !isEnabled,
|
|
33
|
+
isToggled: action.isToggled,
|
|
34
|
+
color: action.color,
|
|
35
|
+
hoverBg: hoverBg,
|
|
36
36
|
children: action.icon && 'string' == typeof action.icon ? /*#__PURE__*/ jsx(CanvasIcon, {
|
|
37
37
|
icon: action.icon,
|
|
38
38
|
size: 16,
|
|
@@ -0,0 +1,64 @@
|
|
|
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
|
+
ToolbarIconButton: ()=>ToolbarIconButton
|
|
28
|
+
});
|
|
29
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
30
|
+
const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
|
|
31
|
+
const react_namespaceObject = require("motion/react");
|
|
32
|
+
const external_react_namespaceObject = require("react");
|
|
33
|
+
const TOOLBAR_ICON_BUTTON_CLASS = "grid place-items-center w-6 h-6 p-0 border-0 rounded-[4px] [transition:background-color_140ms_ease,color_140ms_ease,opacity_140ms_ease] [&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[inherit] [&>svg]:origin-center [&>svg]:transition-transform [&>svg]:duration-[140ms] [&>svg]:ease-[ease] text-(--tb-color) bg-(--tb-bg) enabled:hover:bg-(--tb-hover-bg) enabled:hover:text-(--tb-hover-color) enabled:hover:[&>svg]:scale-[1.125]";
|
|
34
|
+
const TOOLBAR_ICON_BUTTON_DISABLED_CLASS = 'cursor-not-allowed opacity-40 pointer-events-none';
|
|
35
|
+
const TOOLBAR_ICON_BUTTON_ENABLED_CLASS = 'cursor-pointer opacity-100';
|
|
36
|
+
const ToolbarIconButtonInner = ({ disabled, isToggled, color, hoverBg, className, style, ...rest }, ref)=>{
|
|
37
|
+
const restColor = color ?? (isToggled ? 'var(--canvas-foreground)' : 'var(--canvas-foreground-de-emp)');
|
|
38
|
+
const effectiveHoverColor = color ?? 'var(--canvas-foreground)';
|
|
39
|
+
const restBg = isToggled ? hoverBg ?? 'var(--canvas-background-hover)' : 'transparent';
|
|
40
|
+
const effectiveHoverBg = hoverBg ?? 'var(--canvas-background-hover)';
|
|
41
|
+
const mergedStyle = {
|
|
42
|
+
['--tb-color']: restColor,
|
|
43
|
+
['--tb-hover-color']: effectiveHoverColor,
|
|
44
|
+
['--tb-bg']: restBg,
|
|
45
|
+
['--tb-hover-bg']: effectiveHoverBg,
|
|
46
|
+
...style
|
|
47
|
+
};
|
|
48
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.button, {
|
|
49
|
+
ref: ref,
|
|
50
|
+
disabled: disabled,
|
|
51
|
+
className: (0, apollo_wind_namespaceObject.cn)(TOOLBAR_ICON_BUTTON_CLASS, disabled ? TOOLBAR_ICON_BUTTON_DISABLED_CLASS : TOOLBAR_ICON_BUTTON_ENABLED_CLASS, className),
|
|
52
|
+
style: mergedStyle,
|
|
53
|
+
...rest
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const ToolbarIconButton = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)(ToolbarIconButtonInner);
|
|
57
|
+
ToolbarIconButton.displayName = 'ToolbarIconButton';
|
|
58
|
+
exports.ToolbarIconButton = __webpack_exports__.ToolbarIconButton;
|
|
59
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
60
|
+
"ToolbarIconButton"
|
|
61
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
62
|
+
Object.defineProperty(exports, '__esModule', {
|
|
63
|
+
value: true
|
|
64
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type HTMLMotionProps } from 'motion/react';
|
|
2
|
+
export interface ToolbarIconButtonProps extends HTMLMotionProps<'button'> {
|
|
3
|
+
color?: string;
|
|
4
|
+
hoverBg?: string;
|
|
5
|
+
isToggled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const ToolbarIconButton: import("react").ForwardRefExoticComponent<Omit<ToolbarIconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
8
|
+
//# sourceMappingURL=ToolbarIconButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarIconButton.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/shared/ToolbarIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAU,MAAM,cAAc,CAAC;AAsB5D,MAAM,WAAW,sBAAuB,SAAQ,eAAe,CAAC,QAAQ,CAAC;IAEvE,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAqCD,eAAO,MAAM,iBAAiB,mIAAqC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "@uipath/apollo-wind";
|
|
3
|
+
import { motion } from "motion/react";
|
|
4
|
+
import { forwardRef } from "react";
|
|
5
|
+
const TOOLBAR_ICON_BUTTON_CLASS = "grid place-items-center w-6 h-6 p-0 border-0 rounded-[4px] [transition:background-color_140ms_ease,color_140ms_ease,opacity_140ms_ease] [&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[inherit] [&>svg]:origin-center [&>svg]:transition-transform [&>svg]:duration-[140ms] [&>svg]:ease-[ease] text-(--tb-color) bg-(--tb-bg) enabled:hover:bg-(--tb-hover-bg) enabled:hover:text-(--tb-hover-color) enabled:hover:[&>svg]:scale-[1.125]";
|
|
6
|
+
const TOOLBAR_ICON_BUTTON_DISABLED_CLASS = 'cursor-not-allowed opacity-40 pointer-events-none';
|
|
7
|
+
const TOOLBAR_ICON_BUTTON_ENABLED_CLASS = 'cursor-pointer opacity-100';
|
|
8
|
+
const ToolbarIconButtonInner = ({ disabled, isToggled, color, hoverBg, className, style, ...rest }, ref)=>{
|
|
9
|
+
const restColor = color ?? (isToggled ? 'var(--canvas-foreground)' : 'var(--canvas-foreground-de-emp)');
|
|
10
|
+
const effectiveHoverColor = color ?? 'var(--canvas-foreground)';
|
|
11
|
+
const restBg = isToggled ? hoverBg ?? 'var(--canvas-background-hover)' : 'transparent';
|
|
12
|
+
const effectiveHoverBg = hoverBg ?? 'var(--canvas-background-hover)';
|
|
13
|
+
const mergedStyle = {
|
|
14
|
+
['--tb-color']: restColor,
|
|
15
|
+
['--tb-hover-color']: effectiveHoverColor,
|
|
16
|
+
['--tb-bg']: restBg,
|
|
17
|
+
['--tb-hover-bg']: effectiveHoverBg,
|
|
18
|
+
...style
|
|
19
|
+
};
|
|
20
|
+
return /*#__PURE__*/ jsx(motion.button, {
|
|
21
|
+
ref: ref,
|
|
22
|
+
disabled: disabled,
|
|
23
|
+
className: cn(TOOLBAR_ICON_BUTTON_CLASS, disabled ? TOOLBAR_ICON_BUTTON_DISABLED_CLASS : TOOLBAR_ICON_BUTTON_ENABLED_CLASS, className),
|
|
24
|
+
style: mergedStyle,
|
|
25
|
+
...rest
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const ToolbarIconButton = /*#__PURE__*/ forwardRef(ToolbarIconButtonInner);
|
|
29
|
+
ToolbarIconButton.displayName = 'ToolbarIconButton';
|
|
30
|
+
export { ToolbarIconButton };
|
|
@@ -3,8 +3,8 @@ var __webpack_modules__ = {
|
|
|
3
3
|
"./ToolbarButton" (module) {
|
|
4
4
|
module.exports = require("./ToolbarButton.cjs");
|
|
5
5
|
},
|
|
6
|
-
"./
|
|
7
|
-
module.exports = require("./
|
|
6
|
+
"./ToolbarIconButton" (module) {
|
|
7
|
+
module.exports = require("./ToolbarIconButton.cjs");
|
|
8
8
|
},
|
|
9
9
|
"./toolbar.types" (module) {
|
|
10
10
|
module.exports = require("./toolbar.types.cjs");
|
|
@@ -57,9 +57,9 @@ var __webpack_exports__ = {};
|
|
|
57
57
|
var __rspack_reexport = {};
|
|
58
58
|
for(const __rspack_import_key in _ToolbarButton__rspack_import_0)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_ToolbarButton__rspack_import_0[__rspack_import_key];
|
|
59
59
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
60
|
-
var
|
|
60
|
+
var _ToolbarIconButton__rspack_import_1 = __webpack_require__("./ToolbarIconButton");
|
|
61
61
|
var __rspack_reexport = {};
|
|
62
|
-
for(const __rspack_import_key in
|
|
62
|
+
for(const __rspack_import_key in _ToolbarIconButton__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_ToolbarIconButton__rspack_import_1[__rspack_import_key];
|
|
63
63
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|
|
64
64
|
var _toolbar_types__rspack_import_2 = __webpack_require__("./toolbar.types");
|
|
65
65
|
var __rspack_reexport = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/canvas/components/Toolbar/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
|
@@ -72,7 +72,7 @@ const NODE_CONTAINER_RADIUS_RATIO = 32 / DEFAULT_NODE_SIZE;
|
|
|
72
72
|
const NODE_INNER_SHAPE_RATIO = 80 / DEFAULT_NODE_SIZE;
|
|
73
73
|
const NODE_INNER_ICON_RATIO = 40 / DEFAULT_NODE_SIZE;
|
|
74
74
|
const NODE_INNER_RADIUS_RATIO = 24 / DEFAULT_NODE_SIZE;
|
|
75
|
-
const NODE_BORDER_SIZE =
|
|
75
|
+
const NODE_BORDER_SIZE = 1;
|
|
76
76
|
const NODE_ERROR_ICON_SIZE = 40;
|
|
77
77
|
const NODE_TEXT_BOTTOM_OFFSET = -8;
|
|
78
78
|
const NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES = -40;
|
|
@@ -18,7 +18,7 @@ export declare const NODE_CONTAINER_RADIUS_RATIO: number;
|
|
|
18
18
|
export declare const NODE_INNER_SHAPE_RATIO: number;
|
|
19
19
|
export declare const NODE_INNER_ICON_RATIO: number;
|
|
20
20
|
export declare const NODE_INNER_RADIUS_RATIO: number;
|
|
21
|
-
export declare const NODE_BORDER_SIZE =
|
|
21
|
+
export declare const NODE_BORDER_SIZE = 1;
|
|
22
22
|
export declare const NODE_ERROR_ICON_SIZE = 40;
|
|
23
23
|
export declare const NODE_TEXT_BOTTOM_OFFSET = -8;
|
|
24
24
|
export declare const NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES = -40;
|
package/dist/canvas/constants.js
CHANGED
|
@@ -18,7 +18,7 @@ const NODE_CONTAINER_RADIUS_RATIO = 32 / DEFAULT_NODE_SIZE;
|
|
|
18
18
|
const NODE_INNER_SHAPE_RATIO = 80 / DEFAULT_NODE_SIZE;
|
|
19
19
|
const NODE_INNER_ICON_RATIO = 40 / DEFAULT_NODE_SIZE;
|
|
20
20
|
const NODE_INNER_RADIUS_RATIO = 24 / DEFAULT_NODE_SIZE;
|
|
21
|
-
const NODE_BORDER_SIZE =
|
|
21
|
+
const NODE_BORDER_SIZE = 1;
|
|
22
22
|
const NODE_ERROR_ICON_SIZE = 40;
|
|
23
23
|
const NODE_TEXT_BOTTOM_OFFSET = -8;
|
|
24
24
|
const NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES = -40;
|