@uipath/apollo-react 6.21.0 → 6.22.1
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/CanvasBottomPanel/CanvasBottomPanel.cjs +253 -0
- package/dist/canvas/components/CanvasBottomPanel/CanvasBottomPanel.d.ts +8 -0
- package/dist/canvas/components/CanvasBottomPanel/CanvasBottomPanel.d.ts.map +1 -0
- package/dist/canvas/components/CanvasBottomPanel/CanvasBottomPanel.js +213 -0
- package/dist/canvas/components/CanvasBottomPanel/CanvasBottomPanel.types.cjs +18 -0
- package/dist/canvas/components/CanvasBottomPanel/CanvasBottomPanel.types.d.ts +28 -0
- package/dist/canvas/components/CanvasBottomPanel/CanvasBottomPanel.types.d.ts.map +1 -0
- package/dist/canvas/components/CanvasBottomPanel/CanvasBottomPanel.types.js +0 -0
- package/dist/canvas/components/CanvasBottomPanel/index.cjs +42 -0
- package/dist/canvas/components/CanvasBottomPanel/index.d.ts +3 -0
- package/dist/canvas/components/CanvasBottomPanel/index.d.ts.map +1 -0
- package/dist/canvas/components/CanvasBottomPanel/index.js +2 -0
- package/dist/canvas/components/StageNode/StageNodeHeader.cjs +10 -5
- package/dist/canvas/components/StageNode/StageNodeHeader.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/StageNodeHeader.js +11 -6
- package/dist/canvas/components/StageNode/formatDuration.cjs +18 -2
- package/dist/canvas/components/StageNode/formatDuration.d.ts +2 -0
- package/dist/canvas/components/StageNode/formatDuration.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/formatDuration.js +11 -1
- package/dist/canvas/components/StageNode/rules/StageRuleContent.cjs +5 -14
- package/dist/canvas/components/StageNode/rules/StageRuleContent.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/rules/StageRuleContent.js +5 -14
- package/dist/canvas/components/StageNode/shared/CollapsibleStageHeader.cjs +5 -14
- package/dist/canvas/components/StageNode/shared/CollapsibleStageHeader.d.ts.map +1 -1
- package/dist/canvas/components/StageNode/shared/CollapsibleStageHeader.js +5 -14
- package/dist/canvas/components/StageNode/tasks/TaskContent.cjs +29 -28
- package/dist/canvas/components/StageNode/tasks/TaskContent.js +30 -29
- package/dist/canvas/components/index.cjs +59 -52
- package/dist/canvas/components/index.d.ts +1 -0
- package/dist/canvas/components/index.d.ts.map +1 -1
- package/dist/canvas/components/index.js +1 -0
- package/dist/canvas/layouts/Stack.cjs +22 -6
- package/dist/canvas/layouts/Stack.d.ts +3 -4
- package/dist/canvas/layouts/Stack.d.ts.map +1 -1
- package/dist/canvas/layouts/Stack.js +13 -7
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/dist/test/durations.d.ts +6 -0
- package/dist/test/durations.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,253 @@
|
|
|
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
|
+
CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT: ()=>CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT,
|
|
28
|
+
CanvasBottomPanel: ()=>CanvasBottomPanel_CanvasBottomPanel,
|
|
29
|
+
CanvasBottomPanelActions: ()=>CanvasBottomPanelActions
|
|
30
|
+
});
|
|
31
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
32
|
+
const external_react_namespaceObject = require("react");
|
|
33
|
+
const external_react_dom_namespaceObject = require("react-dom");
|
|
34
|
+
const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
|
|
35
|
+
const CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT = 48;
|
|
36
|
+
const CanvasBottomPanelActionsContext = /*#__PURE__*/ (0, external_react_namespaceObject.createContext)(null);
|
|
37
|
+
function CanvasBottomPanelActions({ children }) {
|
|
38
|
+
const slot = (0, external_react_namespaceObject.useContext)(CanvasBottomPanelActionsContext);
|
|
39
|
+
if (!slot?.active || !slot.container) return null;
|
|
40
|
+
return /*#__PURE__*/ (0, external_react_dom_namespaceObject.createPortal)(children, slot.container);
|
|
41
|
+
}
|
|
42
|
+
function ActionsScope({ active, container, children }) {
|
|
43
|
+
const value = (0, external_react_namespaceObject.useMemo)(()=>({
|
|
44
|
+
active,
|
|
45
|
+
container
|
|
46
|
+
}), [
|
|
47
|
+
active,
|
|
48
|
+
container
|
|
49
|
+
]);
|
|
50
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(CanvasBottomPanelActionsContext.Provider, {
|
|
51
|
+
value: value,
|
|
52
|
+
children: children
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function shouldSeparateTabs(previous, current) {
|
|
56
|
+
if (!previous) return false;
|
|
57
|
+
if (!previous.group && !current.group) return false;
|
|
58
|
+
return previous.group !== current.group;
|
|
59
|
+
}
|
|
60
|
+
function clearNativeSelection() {
|
|
61
|
+
if ("u" < typeof window || 'function' != typeof window.getSelection) return;
|
|
62
|
+
window.getSelection()?.removeAllRanges();
|
|
63
|
+
}
|
|
64
|
+
const CanvasBottomPanel_CanvasBottomPanel = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(function({ tabs, activeTabId, onTabChange, isCollapsed, onCollapsedChange, onExpand, tabsTrailingSlot, headerActions, overlay, variant = 'floating', collapsedHeight = CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT, idPrefix, className }) {
|
|
65
|
+
const generatedId = (0, external_react_namespaceObject.useId)();
|
|
66
|
+
const resolvedIdPrefix = idPrefix ?? `canvas-bottom-panel-${generatedId}`;
|
|
67
|
+
const tabRefs = (0, external_react_namespaceObject.useRef)(new Map());
|
|
68
|
+
const [actionsContainer, setActionsContainer] = (0, external_react_namespaceObject.useState)(null);
|
|
69
|
+
const [overlayHost, setOverlayHost] = (0, external_react_namespaceObject.useState)(null);
|
|
70
|
+
const overlayActive = overlay?.tabIds.includes(activeTabId) ?? false;
|
|
71
|
+
const overlayLabelTabId = overlayActive ? activeTabId : tabs.find((tab)=>overlay?.tabIds.includes(tab.id))?.id;
|
|
72
|
+
const focusTab = (0, external_react_namespaceObject.useCallback)((tabId)=>{
|
|
73
|
+
requestAnimationFrame(()=>{
|
|
74
|
+
tabRefs.current.get(tabId)?.focus();
|
|
75
|
+
});
|
|
76
|
+
}, []);
|
|
77
|
+
const activateTab = (0, external_react_namespaceObject.useCallback)((tabId)=>{
|
|
78
|
+
clearNativeSelection();
|
|
79
|
+
onTabChange(tabId);
|
|
80
|
+
if (isCollapsed) if (onCollapsedChange) onCollapsedChange(false);
|
|
81
|
+
else onExpand?.();
|
|
82
|
+
}, [
|
|
83
|
+
isCollapsed,
|
|
84
|
+
onCollapsedChange,
|
|
85
|
+
onExpand,
|
|
86
|
+
onTabChange
|
|
87
|
+
]);
|
|
88
|
+
const handleKeyDown = (0, external_react_namespaceObject.useCallback)((event, index)=>{
|
|
89
|
+
if (0 === tabs.length) return;
|
|
90
|
+
let nextIndex;
|
|
91
|
+
switch(event.key){
|
|
92
|
+
case 'ArrowRight':
|
|
93
|
+
nextIndex = (index + 1) % tabs.length;
|
|
94
|
+
break;
|
|
95
|
+
case 'ArrowLeft':
|
|
96
|
+
nextIndex = (index - 1 + tabs.length) % tabs.length;
|
|
97
|
+
break;
|
|
98
|
+
case 'Home':
|
|
99
|
+
nextIndex = 0;
|
|
100
|
+
break;
|
|
101
|
+
case 'End':
|
|
102
|
+
nextIndex = tabs.length - 1;
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
event.preventDefault();
|
|
108
|
+
const nextTab = tabs[nextIndex];
|
|
109
|
+
if (!nextTab) return;
|
|
110
|
+
activateTab(nextTab.id);
|
|
111
|
+
focusTab(nextTab.id);
|
|
112
|
+
}, [
|
|
113
|
+
activateTab,
|
|
114
|
+
focusTab,
|
|
115
|
+
tabs
|
|
116
|
+
]);
|
|
117
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("section", {
|
|
118
|
+
"data-testid": "canvas-bottom-panel",
|
|
119
|
+
className: (0, apollo_wind_namespaceObject.cn)('flex min-h-0 flex-col overflow-hidden bg-surface-raised text-foreground', 'floating' === variant && 'rounded-2xl border border-border-subtle shadow-lg', className),
|
|
120
|
+
style: isCollapsed ? {
|
|
121
|
+
height: collapsedHeight
|
|
122
|
+
} : void 0,
|
|
123
|
+
children: [
|
|
124
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("header", {
|
|
125
|
+
className: "flex shrink-0 items-center justify-between gap-3 px-3",
|
|
126
|
+
style: {
|
|
127
|
+
height: collapsedHeight
|
|
128
|
+
},
|
|
129
|
+
children: [
|
|
130
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
131
|
+
className: "flex min-w-0 items-center gap-2",
|
|
132
|
+
children: [
|
|
133
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
134
|
+
role: "tablist",
|
|
135
|
+
"aria-orientation": "horizontal",
|
|
136
|
+
className: "flex min-w-0 items-center gap-1 overflow-x-auto",
|
|
137
|
+
children: tabs.map((tab, index)=>{
|
|
138
|
+
const isActive = tab.id === activeTabId;
|
|
139
|
+
const isSelected = !isCollapsed && isActive;
|
|
140
|
+
const controlsOverlay = overlay?.tabIds.includes(tab.id) ?? false;
|
|
141
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_react_namespaceObject.Fragment, {
|
|
142
|
+
children: [
|
|
143
|
+
shouldSeparateTabs(tabs[index - 1], tab) && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
144
|
+
role: "presentation",
|
|
145
|
+
"aria-hidden": "true",
|
|
146
|
+
className: "mx-1.5 h-4 w-px shrink-0 bg-border-subtle",
|
|
147
|
+
"data-testid": "canvas-bottom-panel-tab-separator"
|
|
148
|
+
}),
|
|
149
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
|
|
150
|
+
ref: (node)=>{
|
|
151
|
+
if (node) tabRefs.current.set(tab.id, node);
|
|
152
|
+
else tabRefs.current.delete(tab.id);
|
|
153
|
+
},
|
|
154
|
+
id: `${resolvedIdPrefix}-tab-${tab.id}`,
|
|
155
|
+
type: "button",
|
|
156
|
+
role: "tab",
|
|
157
|
+
"aria-label": tab.ariaLabel,
|
|
158
|
+
"aria-selected": isSelected,
|
|
159
|
+
"aria-controls": controlsOverlay ? `${resolvedIdPrefix}-overlay-tabpanel` : `${resolvedIdPrefix}-tabpanel-${tab.id}`,
|
|
160
|
+
tabIndex: isActive ? 0 : -1,
|
|
161
|
+
"data-state": isSelected ? 'active' : 'inactive',
|
|
162
|
+
className: "inline-flex h-7 shrink-0 cursor-pointer select-none items-center justify-center gap-1.5 whitespace-nowrap rounded-lg px-2.5 text-xs font-medium text-foreground-muted transition-colors hover:bg-surface-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[state=active]:bg-surface-overlay data-[state=active]:text-foreground",
|
|
163
|
+
onClick: ()=>activateTab(tab.id),
|
|
164
|
+
onKeyDown: (event)=>handleKeyDown(event, index),
|
|
165
|
+
children: tab.label
|
|
166
|
+
})
|
|
167
|
+
]
|
|
168
|
+
}, tab.id);
|
|
169
|
+
})
|
|
170
|
+
}),
|
|
171
|
+
tabsTrailingSlot && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
172
|
+
className: "shrink-0",
|
|
173
|
+
"data-testid": "canvas-bottom-panel-tabs-trailing-slot",
|
|
174
|
+
children: tabsTrailingSlot
|
|
175
|
+
})
|
|
176
|
+
]
|
|
177
|
+
}),
|
|
178
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
179
|
+
className: "flex shrink-0 items-center gap-1",
|
|
180
|
+
children: [
|
|
181
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
182
|
+
ref: setActionsContainer,
|
|
183
|
+
className: "flex items-center gap-1 empty:hidden",
|
|
184
|
+
"data-testid": "canvas-bottom-panel-tab-actions"
|
|
185
|
+
}),
|
|
186
|
+
headerActions && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
187
|
+
className: "flex items-center gap-1",
|
|
188
|
+
"data-testid": "canvas-bottom-panel-actions",
|
|
189
|
+
children: headerActions
|
|
190
|
+
})
|
|
191
|
+
]
|
|
192
|
+
})
|
|
193
|
+
]
|
|
194
|
+
}),
|
|
195
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
196
|
+
className: "min-h-0 flex-1 border-t border-border-subtle",
|
|
197
|
+
style: {
|
|
198
|
+
display: isCollapsed ? 'none' : 'block'
|
|
199
|
+
},
|
|
200
|
+
"data-testid": "canvas-bottom-panel-content",
|
|
201
|
+
children: [
|
|
202
|
+
tabs.map((tab)=>{
|
|
203
|
+
const isActive = tab.id === activeTabId;
|
|
204
|
+
if (overlay?.tabIds.includes(tab.id)) return null;
|
|
205
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
206
|
+
id: `${resolvedIdPrefix}-tabpanel-${tab.id}`,
|
|
207
|
+
role: "tabpanel",
|
|
208
|
+
"aria-labelledby": `${resolvedIdPrefix}-tab-${tab.id}`,
|
|
209
|
+
hidden: !isActive,
|
|
210
|
+
className: "h-full w-full",
|
|
211
|
+
style: {
|
|
212
|
+
display: isActive ? 'block' : 'none'
|
|
213
|
+
},
|
|
214
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ActionsScope, {
|
|
215
|
+
active: !isCollapsed && isActive,
|
|
216
|
+
container: actionsContainer,
|
|
217
|
+
children: tab.content
|
|
218
|
+
})
|
|
219
|
+
}, tab.id);
|
|
220
|
+
}),
|
|
221
|
+
overlay && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
222
|
+
ref: setOverlayHost,
|
|
223
|
+
id: `${resolvedIdPrefix}-overlay-tabpanel`,
|
|
224
|
+
role: "tabpanel",
|
|
225
|
+
"aria-labelledby": overlayLabelTabId ? `${resolvedIdPrefix}-tab-${overlayLabelTabId}` : void 0,
|
|
226
|
+
hidden: !overlayActive,
|
|
227
|
+
className: "h-full w-full",
|
|
228
|
+
style: {
|
|
229
|
+
display: overlayActive ? 'block' : 'none'
|
|
230
|
+
},
|
|
231
|
+
"data-testid": "canvas-bottom-panel-overlay"
|
|
232
|
+
}),
|
|
233
|
+
overlay && overlayHost && /*#__PURE__*/ (0, external_react_dom_namespaceObject.createPortal)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ActionsScope, {
|
|
234
|
+
active: !isCollapsed && overlayActive,
|
|
235
|
+
container: actionsContainer,
|
|
236
|
+
children: overlay.content
|
|
237
|
+
}), overlayHost)
|
|
238
|
+
]
|
|
239
|
+
})
|
|
240
|
+
]
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
exports.CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT = __webpack_exports__.CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT;
|
|
244
|
+
exports.CanvasBottomPanel = __webpack_exports__.CanvasBottomPanel;
|
|
245
|
+
exports.CanvasBottomPanelActions = __webpack_exports__.CanvasBottomPanelActions;
|
|
246
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
247
|
+
"CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT",
|
|
248
|
+
"CanvasBottomPanel",
|
|
249
|
+
"CanvasBottomPanelActions"
|
|
250
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
251
|
+
Object.defineProperty(exports, '__esModule', {
|
|
252
|
+
value: true
|
|
253
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { CanvasBottomPanelProps } from './CanvasBottomPanel.types';
|
|
3
|
+
export declare const CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT = 48;
|
|
4
|
+
export declare function CanvasBottomPanelActions({ children }: {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}): import("react").ReactPortal | null;
|
|
7
|
+
export declare const CanvasBottomPanel: import("react").NamedExoticComponent<CanvasBottomPanelProps>;
|
|
8
|
+
//# sourceMappingURL=CanvasBottomPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasBottomPanel.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/CanvasBottomPanel/CanvasBottomPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAYvD,wBAAgB,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,sCAI7E;AAiCD,eAAO,MAAM,iBAAiB,8DA4M5B,CAAC"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment, createContext, memo, useCallback, useContext, useId, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
import { cn } from "@uipath/apollo-wind";
|
|
5
|
+
const CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT = 48;
|
|
6
|
+
const CanvasBottomPanelActionsContext = /*#__PURE__*/ createContext(null);
|
|
7
|
+
function CanvasBottomPanelActions({ children }) {
|
|
8
|
+
const slot = useContext(CanvasBottomPanelActionsContext);
|
|
9
|
+
if (!slot?.active || !slot.container) return null;
|
|
10
|
+
return /*#__PURE__*/ createPortal(children, slot.container);
|
|
11
|
+
}
|
|
12
|
+
function ActionsScope({ active, container, children }) {
|
|
13
|
+
const value = useMemo(()=>({
|
|
14
|
+
active,
|
|
15
|
+
container
|
|
16
|
+
}), [
|
|
17
|
+
active,
|
|
18
|
+
container
|
|
19
|
+
]);
|
|
20
|
+
return /*#__PURE__*/ jsx(CanvasBottomPanelActionsContext.Provider, {
|
|
21
|
+
value: value,
|
|
22
|
+
children: children
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function shouldSeparateTabs(previous, current) {
|
|
26
|
+
if (!previous) return false;
|
|
27
|
+
if (!previous.group && !current.group) return false;
|
|
28
|
+
return previous.group !== current.group;
|
|
29
|
+
}
|
|
30
|
+
function clearNativeSelection() {
|
|
31
|
+
if ("u" < typeof window || 'function' != typeof window.getSelection) return;
|
|
32
|
+
window.getSelection()?.removeAllRanges();
|
|
33
|
+
}
|
|
34
|
+
const CanvasBottomPanel_CanvasBottomPanel = /*#__PURE__*/ memo(function({ tabs, activeTabId, onTabChange, isCollapsed, onCollapsedChange, onExpand, tabsTrailingSlot, headerActions, overlay, variant = 'floating', collapsedHeight = CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT, idPrefix, className }) {
|
|
35
|
+
const generatedId = useId();
|
|
36
|
+
const resolvedIdPrefix = idPrefix ?? `canvas-bottom-panel-${generatedId}`;
|
|
37
|
+
const tabRefs = useRef(new Map());
|
|
38
|
+
const [actionsContainer, setActionsContainer] = useState(null);
|
|
39
|
+
const [overlayHost, setOverlayHost] = useState(null);
|
|
40
|
+
const overlayActive = overlay?.tabIds.includes(activeTabId) ?? false;
|
|
41
|
+
const overlayLabelTabId = overlayActive ? activeTabId : tabs.find((tab)=>overlay?.tabIds.includes(tab.id))?.id;
|
|
42
|
+
const focusTab = useCallback((tabId)=>{
|
|
43
|
+
requestAnimationFrame(()=>{
|
|
44
|
+
tabRefs.current.get(tabId)?.focus();
|
|
45
|
+
});
|
|
46
|
+
}, []);
|
|
47
|
+
const activateTab = useCallback((tabId)=>{
|
|
48
|
+
clearNativeSelection();
|
|
49
|
+
onTabChange(tabId);
|
|
50
|
+
if (isCollapsed) if (onCollapsedChange) onCollapsedChange(false);
|
|
51
|
+
else onExpand?.();
|
|
52
|
+
}, [
|
|
53
|
+
isCollapsed,
|
|
54
|
+
onCollapsedChange,
|
|
55
|
+
onExpand,
|
|
56
|
+
onTabChange
|
|
57
|
+
]);
|
|
58
|
+
const handleKeyDown = useCallback((event, index)=>{
|
|
59
|
+
if (0 === tabs.length) return;
|
|
60
|
+
let nextIndex;
|
|
61
|
+
switch(event.key){
|
|
62
|
+
case 'ArrowRight':
|
|
63
|
+
nextIndex = (index + 1) % tabs.length;
|
|
64
|
+
break;
|
|
65
|
+
case 'ArrowLeft':
|
|
66
|
+
nextIndex = (index - 1 + tabs.length) % tabs.length;
|
|
67
|
+
break;
|
|
68
|
+
case 'Home':
|
|
69
|
+
nextIndex = 0;
|
|
70
|
+
break;
|
|
71
|
+
case 'End':
|
|
72
|
+
nextIndex = tabs.length - 1;
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
const nextTab = tabs[nextIndex];
|
|
79
|
+
if (!nextTab) return;
|
|
80
|
+
activateTab(nextTab.id);
|
|
81
|
+
focusTab(nextTab.id);
|
|
82
|
+
}, [
|
|
83
|
+
activateTab,
|
|
84
|
+
focusTab,
|
|
85
|
+
tabs
|
|
86
|
+
]);
|
|
87
|
+
return /*#__PURE__*/ jsxs("section", {
|
|
88
|
+
"data-testid": "canvas-bottom-panel",
|
|
89
|
+
className: cn('flex min-h-0 flex-col overflow-hidden bg-surface-raised text-foreground', 'floating' === variant && 'rounded-2xl border border-border-subtle shadow-lg', className),
|
|
90
|
+
style: isCollapsed ? {
|
|
91
|
+
height: collapsedHeight
|
|
92
|
+
} : void 0,
|
|
93
|
+
children: [
|
|
94
|
+
/*#__PURE__*/ jsxs("header", {
|
|
95
|
+
className: "flex shrink-0 items-center justify-between gap-3 px-3",
|
|
96
|
+
style: {
|
|
97
|
+
height: collapsedHeight
|
|
98
|
+
},
|
|
99
|
+
children: [
|
|
100
|
+
/*#__PURE__*/ jsxs("div", {
|
|
101
|
+
className: "flex min-w-0 items-center gap-2",
|
|
102
|
+
children: [
|
|
103
|
+
/*#__PURE__*/ jsx("div", {
|
|
104
|
+
role: "tablist",
|
|
105
|
+
"aria-orientation": "horizontal",
|
|
106
|
+
className: "flex min-w-0 items-center gap-1 overflow-x-auto",
|
|
107
|
+
children: tabs.map((tab, index)=>{
|
|
108
|
+
const isActive = tab.id === activeTabId;
|
|
109
|
+
const isSelected = !isCollapsed && isActive;
|
|
110
|
+
const controlsOverlay = overlay?.tabIds.includes(tab.id) ?? false;
|
|
111
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
112
|
+
children: [
|
|
113
|
+
shouldSeparateTabs(tabs[index - 1], tab) && /*#__PURE__*/ jsx("span", {
|
|
114
|
+
role: "presentation",
|
|
115
|
+
"aria-hidden": "true",
|
|
116
|
+
className: "mx-1.5 h-4 w-px shrink-0 bg-border-subtle",
|
|
117
|
+
"data-testid": "canvas-bottom-panel-tab-separator"
|
|
118
|
+
}),
|
|
119
|
+
/*#__PURE__*/ jsx("button", {
|
|
120
|
+
ref: (node)=>{
|
|
121
|
+
if (node) tabRefs.current.set(tab.id, node);
|
|
122
|
+
else tabRefs.current.delete(tab.id);
|
|
123
|
+
},
|
|
124
|
+
id: `${resolvedIdPrefix}-tab-${tab.id}`,
|
|
125
|
+
type: "button",
|
|
126
|
+
role: "tab",
|
|
127
|
+
"aria-label": tab.ariaLabel,
|
|
128
|
+
"aria-selected": isSelected,
|
|
129
|
+
"aria-controls": controlsOverlay ? `${resolvedIdPrefix}-overlay-tabpanel` : `${resolvedIdPrefix}-tabpanel-${tab.id}`,
|
|
130
|
+
tabIndex: isActive ? 0 : -1,
|
|
131
|
+
"data-state": isSelected ? 'active' : 'inactive',
|
|
132
|
+
className: "inline-flex h-7 shrink-0 cursor-pointer select-none items-center justify-center gap-1.5 whitespace-nowrap rounded-lg px-2.5 text-xs font-medium text-foreground-muted transition-colors hover:bg-surface-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[state=active]:bg-surface-overlay data-[state=active]:text-foreground",
|
|
133
|
+
onClick: ()=>activateTab(tab.id),
|
|
134
|
+
onKeyDown: (event)=>handleKeyDown(event, index),
|
|
135
|
+
children: tab.label
|
|
136
|
+
})
|
|
137
|
+
]
|
|
138
|
+
}, tab.id);
|
|
139
|
+
})
|
|
140
|
+
}),
|
|
141
|
+
tabsTrailingSlot && /*#__PURE__*/ jsx("div", {
|
|
142
|
+
className: "shrink-0",
|
|
143
|
+
"data-testid": "canvas-bottom-panel-tabs-trailing-slot",
|
|
144
|
+
children: tabsTrailingSlot
|
|
145
|
+
})
|
|
146
|
+
]
|
|
147
|
+
}),
|
|
148
|
+
/*#__PURE__*/ jsxs("div", {
|
|
149
|
+
className: "flex shrink-0 items-center gap-1",
|
|
150
|
+
children: [
|
|
151
|
+
/*#__PURE__*/ jsx("div", {
|
|
152
|
+
ref: setActionsContainer,
|
|
153
|
+
className: "flex items-center gap-1 empty:hidden",
|
|
154
|
+
"data-testid": "canvas-bottom-panel-tab-actions"
|
|
155
|
+
}),
|
|
156
|
+
headerActions && /*#__PURE__*/ jsx("div", {
|
|
157
|
+
className: "flex items-center gap-1",
|
|
158
|
+
"data-testid": "canvas-bottom-panel-actions",
|
|
159
|
+
children: headerActions
|
|
160
|
+
})
|
|
161
|
+
]
|
|
162
|
+
})
|
|
163
|
+
]
|
|
164
|
+
}),
|
|
165
|
+
/*#__PURE__*/ jsxs("div", {
|
|
166
|
+
className: "min-h-0 flex-1 border-t border-border-subtle",
|
|
167
|
+
style: {
|
|
168
|
+
display: isCollapsed ? 'none' : 'block'
|
|
169
|
+
},
|
|
170
|
+
"data-testid": "canvas-bottom-panel-content",
|
|
171
|
+
children: [
|
|
172
|
+
tabs.map((tab)=>{
|
|
173
|
+
const isActive = tab.id === activeTabId;
|
|
174
|
+
if (overlay?.tabIds.includes(tab.id)) return null;
|
|
175
|
+
return /*#__PURE__*/ jsx("div", {
|
|
176
|
+
id: `${resolvedIdPrefix}-tabpanel-${tab.id}`,
|
|
177
|
+
role: "tabpanel",
|
|
178
|
+
"aria-labelledby": `${resolvedIdPrefix}-tab-${tab.id}`,
|
|
179
|
+
hidden: !isActive,
|
|
180
|
+
className: "h-full w-full",
|
|
181
|
+
style: {
|
|
182
|
+
display: isActive ? 'block' : 'none'
|
|
183
|
+
},
|
|
184
|
+
children: /*#__PURE__*/ jsx(ActionsScope, {
|
|
185
|
+
active: !isCollapsed && isActive,
|
|
186
|
+
container: actionsContainer,
|
|
187
|
+
children: tab.content
|
|
188
|
+
})
|
|
189
|
+
}, tab.id);
|
|
190
|
+
}),
|
|
191
|
+
overlay && /*#__PURE__*/ jsx("div", {
|
|
192
|
+
ref: setOverlayHost,
|
|
193
|
+
id: `${resolvedIdPrefix}-overlay-tabpanel`,
|
|
194
|
+
role: "tabpanel",
|
|
195
|
+
"aria-labelledby": overlayLabelTabId ? `${resolvedIdPrefix}-tab-${overlayLabelTabId}` : void 0,
|
|
196
|
+
hidden: !overlayActive,
|
|
197
|
+
className: "h-full w-full",
|
|
198
|
+
style: {
|
|
199
|
+
display: overlayActive ? 'block' : 'none'
|
|
200
|
+
},
|
|
201
|
+
"data-testid": "canvas-bottom-panel-overlay"
|
|
202
|
+
}),
|
|
203
|
+
overlay && overlayHost && /*#__PURE__*/ createPortal(/*#__PURE__*/ jsx(ActionsScope, {
|
|
204
|
+
active: !isCollapsed && overlayActive,
|
|
205
|
+
container: actionsContainer,
|
|
206
|
+
children: overlay.content
|
|
207
|
+
}), overlayHost)
|
|
208
|
+
]
|
|
209
|
+
})
|
|
210
|
+
]
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
export { CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT, CanvasBottomPanel_CanvasBottomPanel as CanvasBottomPanel, CanvasBottomPanelActions };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.r = (exports1)=>{
|
|
5
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
6
|
+
value: 'Module'
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
})();
|
|
13
|
+
var __webpack_exports__ = {};
|
|
14
|
+
__webpack_require__.r(__webpack_exports__);
|
|
15
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
16
|
+
Object.defineProperty(exports, '__esModule', {
|
|
17
|
+
value: true
|
|
18
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
export interface CanvasBottomPanelTab {
|
|
3
|
+
id: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
ariaLabel?: string;
|
|
6
|
+
group?: string;
|
|
7
|
+
content: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export interface CanvasBottomPanelOverlay {
|
|
10
|
+
tabIds: string[];
|
|
11
|
+
content: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export interface CanvasBottomPanelProps {
|
|
14
|
+
tabs: CanvasBottomPanelTab[];
|
|
15
|
+
activeTabId: string;
|
|
16
|
+
onTabChange: (tabId: string) => void;
|
|
17
|
+
isCollapsed?: boolean;
|
|
18
|
+
onCollapsedChange?: (isCollapsed: boolean) => void;
|
|
19
|
+
onExpand?: () => void;
|
|
20
|
+
tabsTrailingSlot?: ReactNode;
|
|
21
|
+
headerActions?: ReactNode;
|
|
22
|
+
overlay?: CanvasBottomPanelOverlay;
|
|
23
|
+
variant?: 'floating' | 'docked';
|
|
24
|
+
collapsedHeight?: CSSProperties['height'];
|
|
25
|
+
idPrefix?: string;
|
|
26
|
+
className?: string;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=CanvasBottomPanel.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasBottomPanel.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/CanvasBottomPanel/CanvasBottomPanel.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IAEnC,EAAE,EAAE,MAAM,CAAC;IAEX,KAAK,EAAE,SAAS,CAAC;IAEjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IAEvC,MAAM,EAAE,MAAM,EAAE,CAAC;IAKjB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAE7B,aAAa,CAAC,EAAE,SAAS,CAAC;IAE1B,OAAO,CAAC,EAAE,wBAAwB,CAAC;IAEnC,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAEhC,eAAe,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
File without changes
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT: ()=>external_CanvasBottomPanel_cjs_namespaceObject.CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT,
|
|
28
|
+
CanvasBottomPanel: ()=>external_CanvasBottomPanel_cjs_namespaceObject.CanvasBottomPanel,
|
|
29
|
+
CanvasBottomPanelActions: ()=>external_CanvasBottomPanel_cjs_namespaceObject.CanvasBottomPanelActions
|
|
30
|
+
});
|
|
31
|
+
const external_CanvasBottomPanel_cjs_namespaceObject = require("./CanvasBottomPanel.cjs");
|
|
32
|
+
exports.CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT = __webpack_exports__.CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT;
|
|
33
|
+
exports.CanvasBottomPanel = __webpack_exports__.CanvasBottomPanel;
|
|
34
|
+
exports.CanvasBottomPanelActions = __webpack_exports__.CanvasBottomPanelActions;
|
|
35
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
36
|
+
"CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT",
|
|
37
|
+
"CanvasBottomPanel",
|
|
38
|
+
"CanvasBottomPanelActions"
|
|
39
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
40
|
+
Object.defineProperty(exports, '__esModule', {
|
|
41
|
+
value: true
|
|
42
|
+
});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { CANVAS_BOTTOM_PANEL_COLLAPSED_HEIGHT, CanvasBottomPanel, CanvasBottomPanelActions, } from './CanvasBottomPanel';
|
|
2
|
+
export type { CanvasBottomPanelOverlay, CanvasBottomPanelProps, CanvasBottomPanelTab, } from './CanvasBottomPanel.types';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/CanvasBottomPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC"}
|
|
@@ -31,10 +31,10 @@ const apollo_core_namespaceObject = require("@uipath/apollo-core");
|
|
|
31
31
|
const index_cjs_namespaceObject = require("../../layouts/index.cjs");
|
|
32
32
|
const apollo_wind_namespaceObject = require("@uipath/apollo-wind");
|
|
33
33
|
const external_react_namespaceObject = require("react");
|
|
34
|
+
const external_i18n_index_cjs_namespaceObject = require("../../../i18n/index.cjs");
|
|
34
35
|
const external_icons_index_cjs_namespaceObject = require("../../../icons/index.cjs");
|
|
35
36
|
const external_icons_index_cjs_namespaceObject_1 = require("../../icons/index.cjs");
|
|
36
37
|
const icon_registry_cjs_namespaceObject = require("../../utils/icon-registry.cjs");
|
|
37
|
-
const external_i18n_index_cjs_namespaceObject = require("../../../i18n/index.cjs");
|
|
38
38
|
const external_CanvasTooltip_cjs_namespaceObject = require("../CanvasTooltip.cjs");
|
|
39
39
|
const external_ExecutionStatusIcon_index_cjs_namespaceObject = require("../ExecutionStatusIcon/index.cjs");
|
|
40
40
|
const ExecutionStatusIcon_cjs_namespaceObject = require("../ExecutionStatusIcon/ExecutionStatusIcon.cjs");
|
|
@@ -122,6 +122,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
|
|
|
122
122
|
const formattedStageDuration = void 0 !== stageDurationMs ? (0, external_formatDuration_cjs_namespaceObject.formatDurationMs)(stageDurationMs, locale) : execution?.stageStatus?.duration;
|
|
123
123
|
const stageDurationLabel = execution?.stageStatus?.durationLabel;
|
|
124
124
|
const stageDuration = formattedStageDuration && stageDurationLabel ? `${stageDurationLabel} ${formattedStageDuration}` : formattedStageDuration;
|
|
125
|
+
const exactStageDuration = void 0 !== stageDurationMs && (0, external_formatDuration_cjs_namespaceObject.hasHiddenDurationParts)(stageDurationMs) ? (0, external_formatDuration_cjs_namespaceObject.formatExactDurationMs)(stageDurationMs, locale) : void 0;
|
|
125
126
|
const slaText = execution?.stageStatus?.slaText;
|
|
126
127
|
const slaIcon = execution?.stageStatus?.slaIcon;
|
|
127
128
|
const slaIndicator = slaIcon ? SLA_ICON_CONFIG[slaIcon] : void 0;
|
|
@@ -252,10 +253,14 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
|
|
|
252
253
|
})
|
|
253
254
|
]
|
|
254
255
|
}),
|
|
255
|
-
stageDuration && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(
|
|
256
|
-
|
|
257
|
-
"
|
|
258
|
-
children:
|
|
256
|
+
stageDuration && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
|
|
257
|
+
content: exactStageDuration,
|
|
258
|
+
placement: "top",
|
|
259
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
260
|
+
className: "flex min-h-8 items-center text-xs text-foreground-muted",
|
|
261
|
+
"data-testid": `stage-duration-${id}`,
|
|
262
|
+
children: stageDuration
|
|
263
|
+
})
|
|
259
264
|
})
|
|
260
265
|
]
|
|
261
266
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoSnF,eAAO,MAAM,eAAe,wGAtLzB;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CACvD,6CAgLwD,CAAC"}
|