@uipath/apollo-react 4.40.0 → 4.41.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.
Files changed (24) hide show
  1. package/dist/canvas/components/BaseNode/BaseNode.cjs +49 -9
  2. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseNode/BaseNode.js +49 -9
  4. package/dist/canvas/components/StageNode/StageNode.styles.cjs +4 -2
  5. package/dist/canvas/components/StageNode/StageNode.styles.d.ts.map +1 -1
  6. package/dist/canvas/components/StageNode/StageNode.styles.js +4 -2
  7. package/dist/canvas/components/StageNode/StageNode.types.cjs +2 -0
  8. package/dist/canvas/components/StageNode/StageNode.types.d.ts +4 -1
  9. package/dist/canvas/components/StageNode/StageNode.types.d.ts.map +1 -1
  10. package/dist/canvas/components/StageNode/StageNode.types.js +2 -0
  11. package/dist/canvas/components/StageNode/StageNodeHeader.cjs +52 -4
  12. package/dist/canvas/components/StageNode/StageNodeHeader.d.ts.map +1 -1
  13. package/dist/canvas/components/StageNode/StageNodeHeader.js +52 -4
  14. package/dist/canvas/components/StageNode/useStageNodeLabels.cjs +8 -0
  15. package/dist/canvas/components/StageNode/useStageNodeLabels.d.ts +2 -0
  16. package/dist/canvas/components/StageNode/useStageNodeLabels.d.ts.map +1 -1
  17. package/dist/canvas/components/StageNode/useStageNodeLabels.js +8 -0
  18. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.cjs +127 -110
  19. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.d.ts.map +1 -1
  20. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.js +127 -110
  21. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts +1 -1
  22. package/dist/canvas/components/Toolbar/NodeToolbar/NodeToolbar.types.d.ts.map +1 -1
  23. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  24. package/package.json +1 -1
@@ -292,14 +292,6 @@ const BaseNodeComponent = (props)=>{
292
292
  isHovered,
293
293
  dragging
294
294
  ]);
295
- const toolbarPosition = toolbarConfig?.position ?? (toolbarConfig ? react_cjs_namespaceObject.Position.Top : void 0);
296
- const hasHandleButtonsAtToolbar = (0, external_react_namespaceObject.useMemo)(()=>{
297
- if (!toolbarPosition || !handleConfigurations?.length) return false;
298
- return handleConfigurations.some((config)=>config.position === toolbarPosition && false !== config.visible && config.handles.some((h)=>'source' === h.type && false !== h.showButton));
299
- }, [
300
- toolbarPosition,
301
- handleConfigurations
302
- ]);
303
295
  const hasVisibleBottomHandles = (0, external_react_namespaceObject.useMemo)(()=>{
304
296
  if (!handleConfigurations || !Array.isArray(handleConfigurations) || !selected || 'circle' === displayShape) return false;
305
297
  return handleConfigurations.some((config)=>config.position === react_cjs_namespaceObject.Position.Bottom && config.handles.length > 0 && false !== config.visible && (config.handles.some((h)=>'source' === h.type) || config.handles.some((h)=>h.showButton)));
@@ -339,6 +331,54 @@ const BaseNodeComponent = (props)=>{
339
331
  onHandleActionCallback
340
332
  ]);
341
333
  const useSmartHandles = data?.useSmartHandles ?? false;
334
+ const toolbarPosition = toolbarConfig?.position ?? (toolbarConfig ? react_cjs_namespaceObject.Position.Top : void 0);
335
+ const toolbarSideHandleAffordances = (0, external_react_namespaceObject.useMemo)(()=>{
336
+ let hasButton = false;
337
+ let hasLabel = false;
338
+ if (!toolbarPosition || !handleConfigurations?.length) return {
339
+ hasButton,
340
+ hasLabel
341
+ };
342
+ for (const config of handleConfigurations)if (config.position === toolbarPosition && false !== config.visible) for (const handle of config.handles){
343
+ if (false === handle.visible) continue;
344
+ const showButton = useSmartHandles ? handle.showButton : false !== handle.showButton;
345
+ if ('source' === handle.type && showButton) hasButton = true;
346
+ if (handle.label) hasLabel = true;
347
+ }
348
+ return {
349
+ hasButton,
350
+ hasLabel
351
+ };
352
+ }, [
353
+ toolbarPosition,
354
+ handleConfigurations
355
+ ]);
356
+ const offsetToolbar = (0, external_react_namespaceObject.useMemo)(()=>{
357
+ if (multipleNodesSelected) return false;
358
+ const { hasButton, hasLabel } = toolbarSideHandleAffordances;
359
+ const isAddButtonShown = ()=>{
360
+ if (useSmartHandles) return 'design' === mode && !!selected;
361
+ const showAddButton = 'design' === mode && !isConnecting && !dragging;
362
+ if (shouldShowAddButtonFn) return shouldShowAddButtonFn({
363
+ showAddButton,
364
+ selected: !!selected
365
+ });
366
+ return showAddButton && (!!selected || isHovered);
367
+ };
368
+ if (hasButton && isAddButtonShown()) return 'button';
369
+ if (hasLabel) return 'label';
370
+ return false;
371
+ }, [
372
+ toolbarSideHandleAffordances,
373
+ mode,
374
+ multipleNodesSelected,
375
+ useSmartHandles,
376
+ selected,
377
+ isHovered,
378
+ isConnecting,
379
+ dragging,
380
+ shouldShowAddButtonFn
381
+ ]);
342
382
  const buttonHandleElements = (0, useButtonHandles_cjs_namespaceObject.useButtonHandles)({
343
383
  handleConfigurations,
344
384
  shouldShowHandles,
@@ -485,7 +525,7 @@ const BaseNodeComponent = (props)=>{
485
525
  config: toolbarConfig,
486
526
  expanded: selected || isHovered,
487
527
  hidden: dragging || multipleNodesSelected,
488
- offsetToolbar: hasHandleButtonsAtToolbar
528
+ offsetToolbar: offsetToolbar
489
529
  }),
490
530
  handleElements,
491
531
  'ActionNeeded' === executionStatus && (()=>{
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AA4ChF,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAupB1B,eAAO,MAAM,QAAQ,8CAjnBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAinBmB,CAAC"}
1
+ {"version":3,"file":"BaseNode.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/BaseNode/BaseNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AA4ChF,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAysB1B,eAAO,MAAM,QAAQ,8CAnqBa,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,6CAmqBmB,CAAC"}
@@ -264,14 +264,6 @@ const BaseNodeComponent = (props)=>{
264
264
  isHovered,
265
265
  dragging
266
266
  ]);
267
- const toolbarPosition = toolbarConfig?.position ?? (toolbarConfig ? Position.Top : void 0);
268
- const hasHandleButtonsAtToolbar = useMemo(()=>{
269
- if (!toolbarPosition || !handleConfigurations?.length) return false;
270
- return handleConfigurations.some((config)=>config.position === toolbarPosition && false !== config.visible && config.handles.some((h)=>'source' === h.type && false !== h.showButton));
271
- }, [
272
- toolbarPosition,
273
- handleConfigurations
274
- ]);
275
267
  const hasVisibleBottomHandles = useMemo(()=>{
276
268
  if (!handleConfigurations || !Array.isArray(handleConfigurations) || !selected || 'circle' === displayShape) return false;
277
269
  return handleConfigurations.some((config)=>config.position === Position.Bottom && config.handles.length > 0 && false !== config.visible && (config.handles.some((h)=>'source' === h.type) || config.handles.some((h)=>h.showButton)));
@@ -311,6 +303,54 @@ const BaseNodeComponent = (props)=>{
311
303
  onHandleActionCallback
312
304
  ]);
313
305
  const useSmartHandles = data?.useSmartHandles ?? false;
306
+ const toolbarPosition = toolbarConfig?.position ?? (toolbarConfig ? Position.Top : void 0);
307
+ const toolbarSideHandleAffordances = useMemo(()=>{
308
+ let hasButton = false;
309
+ let hasLabel = false;
310
+ if (!toolbarPosition || !handleConfigurations?.length) return {
311
+ hasButton,
312
+ hasLabel
313
+ };
314
+ for (const config of handleConfigurations)if (config.position === toolbarPosition && false !== config.visible) for (const handle of config.handles){
315
+ if (false === handle.visible) continue;
316
+ const showButton = useSmartHandles ? handle.showButton : false !== handle.showButton;
317
+ if ('source' === handle.type && showButton) hasButton = true;
318
+ if (handle.label) hasLabel = true;
319
+ }
320
+ return {
321
+ hasButton,
322
+ hasLabel
323
+ };
324
+ }, [
325
+ toolbarPosition,
326
+ handleConfigurations
327
+ ]);
328
+ const offsetToolbar = useMemo(()=>{
329
+ if (multipleNodesSelected) return false;
330
+ const { hasButton, hasLabel } = toolbarSideHandleAffordances;
331
+ const isAddButtonShown = ()=>{
332
+ if (useSmartHandles) return 'design' === mode && !!selected;
333
+ const showAddButton = 'design' === mode && !isConnecting && !dragging;
334
+ if (shouldShowAddButtonFn) return shouldShowAddButtonFn({
335
+ showAddButton,
336
+ selected: !!selected
337
+ });
338
+ return showAddButton && (!!selected || isHovered);
339
+ };
340
+ if (hasButton && isAddButtonShown()) return 'button';
341
+ if (hasLabel) return 'label';
342
+ return false;
343
+ }, [
344
+ toolbarSideHandleAffordances,
345
+ mode,
346
+ multipleNodesSelected,
347
+ useSmartHandles,
348
+ selected,
349
+ isHovered,
350
+ isConnecting,
351
+ dragging,
352
+ shouldShowAddButtonFn
353
+ ]);
314
354
  const buttonHandleElements = useButtonHandles({
315
355
  handleConfigurations,
316
356
  shouldShowHandles,
@@ -457,7 +497,7 @@ const BaseNodeComponent = (props)=>{
457
497
  config: toolbarConfig,
458
498
  expanded: selected || isHovered,
459
499
  hidden: dragging || multipleNodesSelected,
460
- offsetToolbar: hasHandleButtonsAtToolbar
500
+ offsetToolbar: offsetToolbar
461
501
  }),
462
502
  handleElements,
463
503
  'ActionNeeded' === executionStatus && (()=>{
@@ -114,7 +114,7 @@ const StageHeader = styled_default().div`
114
114
  overflow: hidden;
115
115
  `;
116
116
  const StageContent = styled_default().div`
117
- padding: 15px ${STAGE_CONTENT_PADDING_X}px ${apollo_core_namespaceObject.Spacing.SpacingBase} ${STAGE_CONTENT_PADDING_X}px;
117
+ padding: 15px ${STAGE_CONTENT_PADDING_X}px ${apollo_core_namespaceObject.Spacing.SpacingS} ${STAGE_CONTENT_PADDING_X}px;
118
118
  border-radius: 0 0 ${apollo_core_namespaceObject.Spacing.SpacingBase} ${apollo_core_namespaceObject.Spacing.SpacingBase};
119
119
  overflow: hidden;
120
120
  flex: 1;
@@ -250,7 +250,9 @@ const StageChip = styled_default().button`
250
250
  align-items: center;
251
251
  justify-content: center;
252
252
  gap: ${apollo_core_namespaceObject.Padding.PadS};
253
- padding: ${apollo_core_namespaceObject.Padding.PadXs} ${apollo_core_namespaceObject.Spacing.SpacingXs};
253
+ box-sizing: border-box;
254
+ height: ${apollo_core_namespaceObject.Spacing.SpacingL};
255
+ padding: 0 ${apollo_core_namespaceObject.Spacing.SpacingXs};
254
256
  border-radius: 10px;
255
257
  border: 1px solid var(--canvas-border-de-emp);
256
258
  background: transparent;
@@ -1 +1 @@
1
- {"version":3,"file":"StageNode.styles.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.styles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,mBAAmB,QAAuD,CAAC;AAExF,eAAO,MAAM,cAAc;;;;eACd,OAAO;aACT,WAAW;YACZ,MAAM;yGAqDf,CAAC;AAEF,eAAO,MAAM,WAAW;;;;kBAA8B,OAAO;yGAS5D,CAAC;AAEF,eAAO,MAAM,YAAY;;;yGAQxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;yGAKzB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;iBAA6B,OAAO;yGAMvE,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;yGAa9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;yGAMhC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;iBAA6B,OAAO;yGAKhE,CAAC;AAEF,eAAO,MAAM,SAAS;;;;aACX,WAAW;eACT,OAAO;iBACL,OAAO;oBACJ,OAAO;oBACP,OAAO;yGA8DxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;yGAYzB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aAAyB,SAAS,GAAG,MAAM,GAAG,OAAO;yGAoBvF,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;yGAG3C,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;yGAK/B,CAAC;AAEF,eAAO,MAAM,SAAS;;;qHAoBrB,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;yGAIvC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;yGAI7C,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;uBAAmC,OAAO;yGAW9E,CAAC"}
1
+ {"version":3,"file":"StageNode.styles.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.styles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,mBAAmB,QAAuD,CAAC;AAExF,eAAO,MAAM,cAAc;;;;eACd,OAAO;aACT,WAAW;YACZ,MAAM;yGAqDf,CAAC;AAEF,eAAO,MAAM,WAAW;;;;kBAA8B,OAAO;yGAS5D,CAAC;AAEF,eAAO,MAAM,YAAY;;;yGAQxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;yGAKzB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;iBAA6B,OAAO;yGAMvE,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;yGAa9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;yGAMhC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;iBAA6B,OAAO;yGAKhE,CAAC;AAEF,eAAO,MAAM,SAAS;;;;aACX,WAAW;eACT,OAAO;iBACL,OAAO;oBACJ,OAAO;oBACP,OAAO;yGA8DxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;yGAYzB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;aAAyB,SAAS,GAAG,MAAM,GAAG,OAAO;yGAoBvF,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;yGAG3C,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;yGAK/B,CAAC;AAEF,eAAO,MAAM,SAAS;;;qHAsBrB,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;yGAIvC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;yGAI7C,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;uBAAmC,OAAO;yGAW9E,CAAC"}
@@ -56,7 +56,7 @@ const StageHeader = styled.div`
56
56
  overflow: hidden;
57
57
  `;
58
58
  const StageContent = styled.div`
59
- padding: 15px ${STAGE_CONTENT_PADDING_X}px ${Spacing.SpacingBase} ${STAGE_CONTENT_PADDING_X}px;
59
+ padding: 15px ${STAGE_CONTENT_PADDING_X}px ${Spacing.SpacingS} ${STAGE_CONTENT_PADDING_X}px;
60
60
  border-radius: 0 0 ${Spacing.SpacingBase} ${Spacing.SpacingBase};
61
61
  overflow: hidden;
62
62
  flex: 1;
@@ -192,7 +192,9 @@ const StageChip = styled.button`
192
192
  align-items: center;
193
193
  justify-content: center;
194
194
  gap: ${Padding.PadS};
195
- padding: ${Padding.PadXs} ${Spacing.SpacingXs};
195
+ box-sizing: border-box;
196
+ height: ${Spacing.SpacingL};
197
+ padding: 0 ${Spacing.SpacingXs};
196
198
  border-radius: 10px;
197
199
  border: 1px solid var(--canvas-border-de-emp);
198
200
  background: transparent;
@@ -31,6 +31,8 @@ let StageHeaderChipType = /*#__PURE__*/ function(StageHeaderChipType) {
31
31
  StageHeaderChipType["Exit"] = "exit";
32
32
  StageHeaderChipType["Completion"] = "completion";
33
33
  StageHeaderChipType["ReturnToOrigin"] = "returnToOrigin";
34
+ StageHeaderChipType["Optional"] = "optional";
35
+ StageHeaderChipType["EndsCase"] = "endsCase";
34
36
  return StageHeaderChipType;
35
37
  }({});
36
38
  exports.StageHeaderChipType = __webpack_exports__.StageHeaderChipType;
@@ -34,11 +34,14 @@ export declare enum StageHeaderChipType {
34
34
  Entry = "entry",
35
35
  Exit = "exit",
36
36
  Completion = "completion",
37
- ReturnToOrigin = "returnToOrigin"
37
+ ReturnToOrigin = "returnToOrigin",
38
+ Optional = "optional",
39
+ EndsCase = "endsCase"
38
40
  }
39
41
  export interface StageHeaderChip {
40
42
  type: StageHeaderChipType;
41
43
  count?: number;
44
+ label?: string;
42
45
  tooltip?: React.ReactNode;
43
46
  onClick?: () => void;
44
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StageNode.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StageNode.types.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNode.types.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ let StageNode_types_StageHeaderChipType = /*#__PURE__*/ function(StageHeaderChip
3
3
  StageHeaderChipType["Exit"] = "exit";
4
4
  StageHeaderChipType["Completion"] = "completion";
5
5
  StageHeaderChipType["ReturnToOrigin"] = "returnToOrigin";
6
+ StageHeaderChipType["Optional"] = "optional";
7
+ StageHeaderChipType["EndsCase"] = "endsCase";
6
8
  return StageHeaderChipType;
7
9
  }({});
8
10
  export { StageNode_types_StageHeaderChipType as StageHeaderChipType };
@@ -67,7 +67,46 @@ const CHIP_ICONS = {
67
67
  [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.ReturnToOrigin]: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_icons_index_cjs_namespaceObject_1.ReturnToOriginIcon, {
68
68
  w: apollo_core_namespaceObject.Icon.IconXs,
69
69
  h: apollo_core_namespaceObject.Icon.IconXs
70
- })
70
+ }),
71
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.Optional]: null,
72
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.EndsCase]: null
73
+ };
74
+ const STATUS_BADGE_CONFIG = {
75
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.Optional]: {
76
+ className: 'bg-background-secondary text-foreground-muted',
77
+ hoverClassName: 'hover:bg-background-secondary/80',
78
+ testId: 'optional',
79
+ labelKey: 'optionalBadge'
80
+ },
81
+ [external_StageNode_types_cjs_namespaceObject.StageHeaderChipType.EndsCase]: {
82
+ className: 'bg-error-icon text-foreground-inverse',
83
+ hoverClassName: 'hover:bg-error-icon/80',
84
+ testId: 'ends-case',
85
+ labelKey: 'endsCaseBadge'
86
+ }
87
+ };
88
+ const STATUS_BADGE_BASE_CLASS = 'inline-flex h-6 items-center justify-center whitespace-nowrap rounded-[10px] border border-transparent px-2 text-xs font-normal';
89
+ const StageStatusBadge = ({ label, tooltip, className, hoverClassName, testId, onClick })=>{
90
+ const badge = onClick ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
91
+ type: "button",
92
+ "data-testid": testId,
93
+ onClick: (e)=>{
94
+ e.stopPropagation();
95
+ onClick();
96
+ },
97
+ className: `${STATUS_BADGE_BASE_CLASS} ${className} ${hoverClassName} cursor-pointer transition-colors focus-visible:outline-2 focus-visible:outline-offset-2`,
98
+ children: label
99
+ }) : /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
100
+ "data-testid": testId,
101
+ className: `${STATUS_BADGE_BASE_CLASS} ${className}`,
102
+ children: label
103
+ });
104
+ if (tooltip) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_CanvasTooltip_cjs_namespaceObject.CanvasTooltip, {
105
+ placement: "bottom",
106
+ content: tooltip,
107
+ children: badge
108
+ });
109
+ return badge;
71
110
  };
72
111
  const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTaskAddClick })=>{
73
112
  const labels = (0, external_useStageNodeLabels_cjs_namespaceObject.useStageNodeLabels)();
@@ -148,7 +187,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
148
187
  ]
149
188
  }),
150
189
  (slaText || stageDetails.headerChips && stageDetails.headerChips.length > 0) && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
151
- className: "mt-1 flex flex-wrap items-center justify-between gap-2",
190
+ className: "flex min-h-8 flex-wrap items-center justify-between gap-x-2 gap-y-2",
152
191
  children: [
153
192
  slaText && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("span", {
154
193
  className: "inline-flex items-center gap-1 text-xs text-foreground-muted",
@@ -164,8 +203,17 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
164
203
  ]
165
204
  }),
166
205
  stageDetails.headerChips && stageDetails.headerChips.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
167
- className: "flex flex-wrap items-center gap-1",
206
+ className: "flex flex-wrap items-center gap-x-1 gap-y-2",
168
207
  children: stageDetails.headerChips.map((chip)=>{
208
+ const statusBadge = STATUS_BADGE_CONFIG[chip.type];
209
+ if (statusBadge) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(StageStatusBadge, {
210
+ testId: `stage-${statusBadge.testId}-badge-${id}`,
211
+ className: statusBadge.className,
212
+ hoverClassName: statusBadge.hoverClassName,
213
+ label: chip.label || labels[statusBadge.labelKey],
214
+ tooltip: chip.tooltip,
215
+ onClick: chip.onClick
216
+ }, chip.type);
169
217
  const button = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_StageNode_styles_cjs_namespaceObject.StageChip, {
170
218
  type: "button",
171
219
  "aria-label": 'string' == typeof chip.tooltip ? chip.tooltip : chip.type,
@@ -192,7 +240,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
192
240
  ]
193
241
  }),
194
242
  stageDuration && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
195
- className: "mt-1 text-xs text-foreground-muted",
243
+ className: "flex min-h-8 items-center text-xs text-foreground-muted",
196
244
  children: stageDuration
197
245
  })
198
246
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyJnF,eAAO,MAAM,eAAe,wGA3HzB;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,6CAqHwD,CAAC"}
1
+ {"version":3,"file":"StageNodeHeader.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/StageNodeHeader.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAgB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA4PnF,eAAO,MAAM,eAAe,wGA9IzB;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,6CAwIwD,CAAC"}
@@ -39,7 +39,46 @@ const CHIP_ICONS = {
39
39
  [StageHeaderChipType.ReturnToOrigin]: /*#__PURE__*/ jsx(ReturnToOriginIcon, {
40
40
  w: Icon.IconXs,
41
41
  h: Icon.IconXs
42
- })
42
+ }),
43
+ [StageHeaderChipType.Optional]: null,
44
+ [StageHeaderChipType.EndsCase]: null
45
+ };
46
+ const STATUS_BADGE_CONFIG = {
47
+ [StageHeaderChipType.Optional]: {
48
+ className: 'bg-background-secondary text-foreground-muted',
49
+ hoverClassName: 'hover:bg-background-secondary/80',
50
+ testId: 'optional',
51
+ labelKey: 'optionalBadge'
52
+ },
53
+ [StageHeaderChipType.EndsCase]: {
54
+ className: 'bg-error-icon text-foreground-inverse',
55
+ hoverClassName: 'hover:bg-error-icon/80',
56
+ testId: 'ends-case',
57
+ labelKey: 'endsCaseBadge'
58
+ }
59
+ };
60
+ const STATUS_BADGE_BASE_CLASS = 'inline-flex h-6 items-center justify-center whitespace-nowrap rounded-[10px] border border-transparent px-2 text-xs font-normal';
61
+ const StageStatusBadge = ({ label, tooltip, className, hoverClassName, testId, onClick })=>{
62
+ const badge = onClick ? /*#__PURE__*/ jsx("button", {
63
+ type: "button",
64
+ "data-testid": testId,
65
+ onClick: (e)=>{
66
+ e.stopPropagation();
67
+ onClick();
68
+ },
69
+ className: `${STATUS_BADGE_BASE_CLASS} ${className} ${hoverClassName} cursor-pointer transition-colors focus-visible:outline-2 focus-visible:outline-offset-2`,
70
+ children: label
71
+ }) : /*#__PURE__*/ jsx("span", {
72
+ "data-testid": testId,
73
+ className: `${STATUS_BADGE_BASE_CLASS} ${className}`,
74
+ children: label
75
+ });
76
+ if (tooltip) return /*#__PURE__*/ jsx(CanvasTooltip, {
77
+ placement: "bottom",
78
+ content: tooltip,
79
+ children: badge
80
+ });
81
+ return badge;
43
82
  };
44
83
  const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTaskAddClick })=>{
45
84
  const labels = useStageNodeLabels();
@@ -120,7 +159,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
120
159
  ]
121
160
  }),
122
161
  (slaText || stageDetails.headerChips && stageDetails.headerChips.length > 0) && /*#__PURE__*/ jsxs("div", {
123
- className: "mt-1 flex flex-wrap items-center justify-between gap-2",
162
+ className: "flex min-h-8 flex-wrap items-center justify-between gap-x-2 gap-y-2",
124
163
  children: [
125
164
  slaText && /*#__PURE__*/ jsxs("span", {
126
165
  className: "inline-flex items-center gap-1 text-xs text-foreground-muted",
@@ -136,8 +175,17 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
136
175
  ]
137
176
  }),
138
177
  stageDetails.headerChips && stageDetails.headerChips.length > 0 && /*#__PURE__*/ jsx("div", {
139
- className: "flex flex-wrap items-center gap-1",
178
+ className: "flex flex-wrap items-center gap-x-1 gap-y-2",
140
179
  children: stageDetails.headerChips.map((chip)=>{
180
+ const statusBadge = STATUS_BADGE_CONFIG[chip.type];
181
+ if (statusBadge) return /*#__PURE__*/ jsx(StageStatusBadge, {
182
+ testId: `stage-${statusBadge.testId}-badge-${id}`,
183
+ className: statusBadge.className,
184
+ hoverClassName: statusBadge.hoverClassName,
185
+ label: chip.label || labels[statusBadge.labelKey],
186
+ tooltip: chip.tooltip,
187
+ onClick: chip.onClick
188
+ }, chip.type);
141
189
  const button = /*#__PURE__*/ jsxs(StageChip, {
142
190
  type: "button",
143
191
  "aria-label": 'string' == typeof chip.tooltip ? chip.tooltip : chip.type,
@@ -164,7 +212,7 @@ const StageNodeHeaderInner = ({ props, isReadOnly, isException, status, handleTa
164
212
  ]
165
213
  }),
166
214
  stageDuration && /*#__PURE__*/ jsx("span", {
167
- className: "mt-1 text-xs text-foreground-muted",
215
+ className: "flex min-h-8 items-center text-xs text-foreground-muted",
168
216
  children: stageDuration
169
217
  })
170
218
  ]
@@ -71,6 +71,14 @@ function useStageNodeLabels() {
71
71
  id: 'stage-node.untitled-stage',
72
72
  message: 'Untitled stage'
73
73
  }),
74
+ optionalBadge: _({
75
+ id: 'stage-node.optional-badge',
76
+ message: 'Optional'
77
+ }),
78
+ endsCaseBadge: _({
79
+ id: 'stage-node.ends-case-badge',
80
+ message: 'Ends case'
81
+ }),
74
82
  contextMenu: {
75
83
  moveUp: _({
76
84
  id: 'stage-node.move-up',
@@ -10,6 +10,8 @@ export interface StageNodeLabels {
10
10
  sequentialTasks: string;
11
11
  parallel: string;
12
12
  untitledStage: string;
13
+ optionalBadge: string;
14
+ endsCaseBadge: string;
13
15
  contextMenu: StageContextMenuLabels;
14
16
  }
15
17
  export declare function useStageNodeLabels(): StageNodeLabels;
@@ -1 +1 @@
1
- {"version":3,"file":"useStageNodeLabels.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/useStageNodeLabels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAsDpD"}
1
+ {"version":3,"file":"useStageNodeLabels.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/StageNode/useStageNodeLabels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,sBAAsB,CAAC;CACrC;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAwDpD"}
@@ -43,6 +43,14 @@ function useStageNodeLabels() {
43
43
  id: 'stage-node.untitled-stage',
44
44
  message: 'Untitled stage'
45
45
  }),
46
+ optionalBadge: _({
47
+ id: 'stage-node.optional-badge',
48
+ message: 'Optional'
49
+ }),
50
+ endsCaseBadge: _({
51
+ id: 'stage-node.ends-case-badge',
52
+ message: 'Ends case'
53
+ }),
46
54
  contextMenu: {
47
55
  moveUp: _({
48
56
  id: 'stage-node.move-up',