@uipath/apollo-react 4.10.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.
Files changed (62) hide show
  1. package/dist/canvas/components/AddNodePanel/AddNodePreview.cjs +12 -2
  2. package/dist/canvas/components/AddNodePanel/AddNodePreview.d.ts.map +1 -1
  3. package/dist/canvas/components/AddNodePanel/AddNodePreview.js +13 -3
  4. package/dist/canvas/components/BaseCanvas/CanvasThemeContext.cjs +4 -2
  5. package/dist/canvas/components/BaseCanvas/CanvasThemeContext.d.ts.map +1 -1
  6. package/dist/canvas/components/BaseCanvas/CanvasThemeContext.js +4 -2
  7. package/dist/canvas/components/BaseNode/BaseNode.cjs +7 -7
  8. package/dist/canvas/components/BaseNode/BaseNode.js +7 -7
  9. package/dist/canvas/components/BaseNode/BaseNodeContainer.cjs +1 -1
  10. package/dist/canvas/components/BaseNode/BaseNodeContainer.js +1 -1
  11. package/dist/canvas/components/ButtonHandle/CanvasInlineButton.cjs +56 -0
  12. package/dist/canvas/components/ButtonHandle/CanvasInlineButton.d.ts +8 -0
  13. package/dist/canvas/components/ButtonHandle/CanvasInlineButton.d.ts.map +1 -0
  14. package/dist/canvas/components/ButtonHandle/CanvasInlineButton.js +22 -0
  15. package/dist/canvas/components/ButtonHandle/HandleButton.cjs +3 -11
  16. package/dist/canvas/components/ButtonHandle/HandleButton.d.ts.map +1 -1
  17. package/dist/canvas/components/ButtonHandle/HandleButton.js +3 -11
  18. package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.cjs +16 -38
  19. package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts.map +1 -1
  20. package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.js +16 -28
  21. package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.cjs +1 -1
  22. package/dist/canvas/components/FloatingCanvasPanel/PanelChrome.js +1 -1
  23. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.cjs +13 -17
  24. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.d.ts.map +1 -1
  25. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.js +14 -18
  26. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.types.d.ts +1 -1
  27. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.types.d.ts.map +1 -1
  28. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +149 -106
  29. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
  30. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +151 -108
  31. package/dist/canvas/components/Toolbar/NodeToolbar/useToolbarState.cjs +1 -1
  32. package/dist/canvas/components/Toolbar/NodeToolbar/useToolbarState.d.ts.map +1 -1
  33. package/dist/canvas/components/Toolbar/NodeToolbar/useToolbarState.js +1 -1
  34. package/dist/canvas/components/Toolbar/shared/ToolbarButton.cjs +7 -7
  35. package/dist/canvas/components/Toolbar/shared/ToolbarButton.js +7 -7
  36. package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.cjs +64 -0
  37. package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.d.ts +8 -0
  38. package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.d.ts.map +1 -0
  39. package/dist/canvas/components/Toolbar/shared/ToolbarIconButton.js +30 -0
  40. package/dist/canvas/components/Toolbar/shared/index.cjs +4 -4
  41. package/dist/canvas/components/Toolbar/shared/index.d.ts +1 -1
  42. package/dist/canvas/components/Toolbar/shared/index.d.ts.map +1 -1
  43. package/dist/canvas/components/Toolbar/shared/index.js +1 -1
  44. package/dist/canvas/constants.cjs +1 -1
  45. package/dist/canvas/constants.d.ts +1 -1
  46. package/dist/canvas/constants.js +1 -1
  47. package/dist/canvas/storybook-utils/decorators.d.ts.map +1 -1
  48. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  49. package/dist/canvas/styles/variables.css +16 -0
  50. package/package.json +1 -1
  51. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.cjs +0 -70
  52. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.d.ts +0 -8
  53. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.d.ts.map +0 -1
  54. package/dist/canvas/components/Toolbar/EdgeToolbar/EdgeToolbar.styles.js +0 -23
  55. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.cjs +0 -236
  56. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.d.ts +0 -26
  57. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.d.ts.map +0 -1
  58. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.styles.js +0 -180
  59. package/dist/canvas/components/Toolbar/shared/ToolbarButton.styles.cjs +0 -78
  60. package/dist/canvas/components/Toolbar/shared/ToolbarButton.styles.d.ts +0 -9
  61. package/dist/canvas/components/Toolbar/shared/ToolbarButton.styles.d.ts.map +0 -1
  62. 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 { AnimatePresence } from "motion/react";
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 { StyledToolbarButton, ToolbarButton } from "../shared/index.js";
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' === config.position || 'bottom' === config.position ? 'y' : 'x';
19
- const offsetAmount = 'top' === config.position || 'left' === config.position ? -10 : 10;
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
- config.position,
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__*/ jsxs(StyledToolbarContainer, {
47
- layout: true,
48
- $position: config.position || 'top',
49
- $align: config.align || 'end',
50
- initial: toolbarAnimationVariants.initial,
51
- animate: toolbarAnimationVariants.animate,
52
- exit: toolbarAnimationVariants.exit,
53
- transition: {
54
- duration: 0.15,
55
- ease: 'easeOut'
56
- },
57
- role: "toolbar",
58
- children: [
59
- actionsToDisplay.map((item, i)=>isSeparator(item) ? /*#__PURE__*/ jsx(StyledToolbarSeparator, {
60
- $orientation: separatorOrientation
61
- }, `separator-${i}`) : /*#__PURE__*/ jsx(ToolbarButton, {
62
- action: item,
63
- layoutId: item.isPinned ? `toolbar-btn-${nodeId}-${item.id}` : void 0
64
- }, item.id)),
65
- shouldShowOverflow && /*#__PURE__*/ jsxs(Fragment, {
66
- children: [
67
- actionsToDisplay.length > 0 && /*#__PURE__*/ jsx(StyledToolbarSeparator, {
68
- $orientation: separatorOrientation
69
- }),
70
- /*#__PURE__*/ jsxs(StyledOverflowContainer, {
71
- children: [
72
- /*#__PURE__*/ jsx(StyledToolbarButton, {
73
- ref: buttonRef,
74
- type: "button",
75
- className: "nodrag nopan",
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(CanvasIcon, {
84
- icon: "ellipsis-vertical",
85
- size: 16
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
- /*#__PURE__*/ jsx(AnimatePresence, {
90
- children: isDropdownOpen && /*#__PURE__*/ jsx(StyledDropdownMenu, {
91
- ref: dropdownRef,
92
- initial: {
93
- opacity: 0,
94
- x: -8
95
- },
96
- animate: {
97
- opacity: 1,
98
- x: 0
99
- },
100
- exit: {
101
- opacity: 0,
102
- x: -8
103
- },
104
- transition: {
105
- duration: 0.15
106
- },
107
- role: "menu",
108
- "aria-labelledby": buttonRef.current?.id,
109
- children: overflowActionsToDisplay.map((item, i)=>{
110
- if (isSeparator(item)) return /*#__PURE__*/ jsx(StyledToolbarSeparator, {
111
- $orientation: "horizontal"
112
- }, `separator-${i}`);
113
- return /*#__PURE__*/ jsxs(StyledDropdownItem, {
114
- type: "button",
115
- className: "nodrag nopan",
116
- onClick: (e)=>{
117
- e.stopPropagation();
118
- e.preventDefault();
119
- if (!item.disabled) {
120
- item.onClick();
121
- setIsDropdownOpen(false);
122
- }
123
- },
124
- "aria-label": item.label,
125
- "aria-disabled": item.disabled,
126
- role: "menuitem",
127
- $disabled: item.disabled,
128
- children: [
129
- item.icon && 'string' == typeof item.icon && /*#__PURE__*/ jsx("span", {
130
- style: {
131
- flex: 'unset',
132
- display: 'inline-flex'
133
- },
134
- children: /*#__PURE__*/ jsx(CanvasIcon, {
135
- icon: item.icon,
136
- size: 16
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
- item.icon && 'string' != typeof item.icon && item.icon,
140
- /*#__PURE__*/ jsx("span", {
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' === config.position || 'bottom' === config.position ? 'vertical' : 'horizontal',
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,qBAsHzB,CAAC"}
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' === config.position || 'bottom' === config.position ? 'vertical' : 'horizontal',
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 external_ToolbarButton_styles_cjs_namespaceObject = require("./ToolbarButton.styles.cjs");
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 hoverColor = action.color ? (0, index_cjs_namespaceObject.getLighterColor)(action.color) : void 0;
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)(external_ToolbarButton_styles_cjs_namespaceObject.StyledToolbarButton, {
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
- $disabled: !isEnabled,
61
- $isToggled: action.isToggled,
62
- $color: action.color,
63
- $hoverColor: hoverColor,
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 { StyledToolbarButton } from "./ToolbarButton.styles.js";
6
+ import { ToolbarIconButton } from "./ToolbarIconButton.js";
7
7
  const ToolbarButton = /*#__PURE__*/ memo(({ action, layoutId })=>{
8
8
  const isEnabled = !action.disabled;
9
- const hoverColor = action.color ? getLighterColor(action.color) : void 0;
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(StyledToolbarButton, {
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
- $disabled: !isEnabled,
33
- $isToggled: action.isToggled,
34
- $color: action.color,
35
- $hoverColor: hoverColor,
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
- "./ToolbarButton.styles" (module) {
7
- module.exports = require("./ToolbarButton.styles.cjs");
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 _ToolbarButton_styles__rspack_import_1 = __webpack_require__("./ToolbarButton.styles");
60
+ var _ToolbarIconButton__rspack_import_1 = __webpack_require__("./ToolbarIconButton");
61
61
  var __rspack_reexport = {};
62
- for(const __rspack_import_key in _ToolbarButton_styles__rspack_import_1)if ("default" !== __rspack_import_key) __rspack_reexport[__rspack_import_key] = ()=>_ToolbarButton_styles__rspack_import_1[__rspack_import_key];
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,4 +1,4 @@
1
1
  export * from './ToolbarButton';
2
- export * from './ToolbarButton.styles';
2
+ export * from './ToolbarIconButton';
3
3
  export * from './toolbar.types';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -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,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,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"}
@@ -1,3 +1,3 @@
1
1
  export * from "./ToolbarButton.js";
2
- export * from "./ToolbarButton.styles.js";
2
+ export * from "./ToolbarIconButton.js";
3
3
  export * from "./toolbar.types.js";
@@ -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 = 2;
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 = 2;
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;
@@ -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 = 2;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/canvas/storybook-utils/decorators.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EACL,KAAK,0BAA0B,EAE/B,KAAK,2BAA2B,EAEjC,MAAM,UAAU,CAAC;AASlB,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAK9D,MAAM,WAAW,sBAAsB;IAIrC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAKtC,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAM9C,UAAU,CAAC,EAAE,OAAO,CAAC;IAKrB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAqED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,GAAG,SAAS,CAmCnF;AAaD,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAQrE"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/canvas/storybook-utils/decorators.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EACL,KAAK,0BAA0B,EAE/B,KAAK,2BAA2B,EAEjC,MAAM,UAAU,CAAC;AAelB,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAK9D,MAAM,WAAW,sBAAsB;IAIrC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAKtC,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAM9C,UAAU,CAAC,EAAE,OAAO,CAAC;IAKrB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAqED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,GAAG,SAAS,CAuCnF;AAaD,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAQrE"}