@uipath/apollo-react 4.5.4 → 4.6.0-pr525.51f590d

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 (49) hide show
  1. package/dist/canvas/components/BaseNode/BaseNode.cjs +55 -74
  2. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseNode/BaseNode.js +50 -69
  4. package/dist/canvas/components/BaseNode/BaseNodeBadgeSlot.cjs +68 -0
  5. package/dist/canvas/components/BaseNode/BaseNodeBadgeSlot.d.ts +9 -0
  6. package/dist/canvas/components/BaseNode/BaseNodeBadgeSlot.d.ts.map +1 -0
  7. package/dist/canvas/components/BaseNode/BaseNodeBadgeSlot.js +34 -0
  8. package/dist/canvas/components/BaseNode/BaseNodeContainer.cjs +104 -0
  9. package/dist/canvas/components/BaseNode/BaseNodeContainer.d.ts +23 -0
  10. package/dist/canvas/components/BaseNode/BaseNodeContainer.d.ts.map +1 -0
  11. package/dist/canvas/components/BaseNode/BaseNodeContainer.js +67 -0
  12. package/dist/canvas/components/BaseNode/BaseNodeInnerShape.cjs +80 -0
  13. package/dist/canvas/components/BaseNode/BaseNodeInnerShape.d.ts +14 -0
  14. package/dist/canvas/components/BaseNode/BaseNodeInnerShape.d.ts.map +1 -0
  15. package/dist/canvas/components/BaseNode/BaseNodeInnerShape.js +46 -0
  16. package/dist/canvas/components/BaseNode/BaseNodeMissingManifest.cjs +67 -0
  17. package/dist/canvas/components/BaseNode/BaseNodeMissingManifest.d.ts +9 -0
  18. package/dist/canvas/components/BaseNode/BaseNodeMissingManifest.d.ts.map +1 -0
  19. package/dist/canvas/components/BaseNode/BaseNodeMissingManifest.js +33 -0
  20. package/dist/canvas/components/BaseNode/NodeLabel.cjs +63 -18
  21. package/dist/canvas/components/BaseNode/NodeLabel.d.ts +8 -1
  22. package/dist/canvas/components/BaseNode/NodeLabel.d.ts.map +1 -1
  23. package/dist/canvas/components/BaseNode/NodeLabel.js +57 -15
  24. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +4 -7
  25. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
  26. package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +4 -7
  27. package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.cjs +3 -2
  28. package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts +2 -1
  29. package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.d.ts.map +1 -1
  30. package/dist/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.js +3 -2
  31. package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.cjs +4 -2
  32. package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.d.ts +2 -1
  33. package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.d.ts.map +1 -1
  34. package/dist/canvas/components/FloatingCanvasPanel/useFloatingPosition.js +4 -2
  35. package/dist/canvas/constants.cjs +60 -0
  36. package/dist/canvas/constants.d.ts +15 -0
  37. package/dist/canvas/constants.d.ts.map +1 -1
  38. package/dist/canvas/constants.js +16 -1
  39. package/dist/canvas/index.cjs +39 -35
  40. package/dist/canvas/index.d.ts +1 -0
  41. package/dist/canvas/index.d.ts.map +1 -1
  42. package/dist/canvas/index.js +1 -0
  43. package/dist/canvas/styles/reactflow-reset.css +12 -0
  44. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  45. package/package.json +1 -1
  46. package/dist/canvas/components/BaseNode/BaseNode.styles.cjs +0 -410
  47. package/dist/canvas/components/BaseNode/BaseNode.styles.d.ts +0 -75
  48. package/dist/canvas/components/BaseNode/BaseNode.styles.d.ts.map +0 -1
  49. package/dist/canvas/components/BaseNode/BaseNode.styles.js +0 -342
@@ -1,7 +1,21 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useEffect, useRef, useState } from "react";
2
+ import { forwardRef, memo, useCallback, useEffect, useRef, useState } from "react";
3
+ import { NODE_TEXT_BOTTOM_OFFSET, NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES } from "../../constants.js";
4
+ import { cx } from "../../utils/CssUtil.js";
3
5
  import { CanvasTooltip } from "../CanvasTooltip.js";
4
- import { BaseHeader, BaseSubHeader, BaseTextContainer, EditableLabel, EmptyLabelPlaceholder } from "./BaseNode.styles.js";
6
+ const BaseTextContainer = ({ hasBottomHandles, shape, children })=>{
7
+ if ('rectangle' === shape) return /*#__PURE__*/ jsx("div", {
8
+ className: "flex flex-1 min-w-0 flex-col items-start text-left",
9
+ children: children
10
+ });
11
+ return /*#__PURE__*/ jsx("div", {
12
+ className: cx('absolute left-1/2 w-[150%] flex flex-col z-10 transition-transform duration-200', hasBottomHandles ? 'items-start text-left translate-x-[20%] translate-y-1/2' : 'items-center text-center -translate-x-1/2 translate-y-full'),
13
+ style: {
14
+ bottom: hasBottomHandles ? NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES : NODE_TEXT_BOTTOM_OFFSET
15
+ },
16
+ children: children
17
+ });
18
+ };
5
19
  const ConditionalTooltip = ({ content, children })=>{
6
20
  if (!content) return children;
7
21
  return /*#__PURE__*/ jsx(CanvasTooltip, {
@@ -12,6 +26,42 @@ const ConditionalTooltip = ({ content, children })=>{
12
26
  children: children
13
27
  });
14
28
  };
29
+ const Header = ({ shape, backgroundColor, onDoubleClick, children, 'data-testid': dataTestId })=>/*#__PURE__*/ jsx("div", {
30
+ "data-testid": dataTestId,
31
+ onDoubleClick: onDoubleClick,
32
+ className: cx('text-center text-sm leading-[18px] font-semibold text-foreground overflow-hidden', backgroundColor && 'px-1.5 py-0.5 rounded-sm', 'rectangle' === shape ? 'w-full text-left whitespace-nowrap text-ellipsis' : 'wrap-break-word line-clamp-3'),
33
+ style: backgroundColor ? {
34
+ backgroundColor
35
+ } : void 0,
36
+ children: children
37
+ });
38
+ const SubHeader = ({ shape, onDoubleClick, children, 'data-testid': dataTestId })=>/*#__PURE__*/ jsx("div", {
39
+ "data-testid": dataTestId,
40
+ onDoubleClick: onDoubleClick,
41
+ className: cx('text-center text-xs leading-[18px] text-foreground-muted wrap-break-word overflow-hidden', 'rectangle' === shape ? 'w-full text-left line-clamp-2' : 'line-clamp-5'),
42
+ children: children
43
+ });
44
+ const EditableLabel = /*#__PURE__*/ forwardRef(({ shape, backgroundColor, variant, value, placeholder, rows, onChange, onKeyDown, onBlur, 'aria-label': ariaLabel }, ref)=>/*#__PURE__*/ jsx("textarea", {
45
+ ref: ref,
46
+ value: value,
47
+ placeholder: placeholder,
48
+ rows: rows,
49
+ "aria-label": ariaLabel,
50
+ onChange: onChange,
51
+ onKeyDown: onKeyDown,
52
+ onBlur: onBlur,
53
+ className: cx('nodrag nowheel resize-none font-[inherit] text-foreground border-none rounded-sm outline-1 outline-dashed outline-border-de-emp max-w-full', 'subtext' === variant ? 'text-xs leading-[18px] font-normal mb-0' : 'text-sm leading-[18px] font-semibold mb-0.5', 'rectangle' === shape ? 'field-sizing-fixed w-full' : 'field-sizing-content text-center', backgroundColor && 'px-1.5 py-0.5'),
54
+ style: backgroundColor ? {
55
+ backgroundColor
56
+ } : void 0
57
+ }));
58
+ EditableLabel.displayName = 'EditableLabel';
59
+ const EmptyLabelPlaceholder = ({ onDoubleClick })=>/*#__PURE__*/ jsx("div", {
60
+ onDoubleClick: onDoubleClick,
61
+ className: "nodrag nowheel text-sm leading-[18px] font-semibold text-foreground-muted bg-transparent border border-dashed border-border-de-emp rounded-sm cursor-pointer opacity-0 transition-opacity duration-200 min-w-5 min-h-5 hover:opacity-100",
62
+ "aria-description": "Add node label",
63
+ "data-testid": "empty-label-placeholder"
64
+ });
15
65
  const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackgroundColor, shape, hasBottomHandles, selected, dragging, centerAdornment, readonly, onChange })=>{
16
66
  const [isEditing, setIsEditing] = useState(false);
17
67
  const [localLabel, setLocalLabel] = useState('');
@@ -22,7 +72,7 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
22
72
  const handleSave = useCallback(()=>{
23
73
  setIsEditing(false);
24
74
  setFocusTarget(null);
25
- if (localLabel !== label || localSubLabel !== subLabel) onChange({
75
+ if (localLabel !== label || localSubLabel !== subLabel) onChange?.({
26
76
  label: localLabel,
27
77
  subLabel: localSubLabel
28
78
  });
@@ -101,11 +151,7 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
101
151
  shape: shape,
102
152
  children: [
103
153
  /*#__PURE__*/ jsx(EmptyLabelPlaceholder, {
104
- onDoubleClick: readonly ? void 0 : handleDoubleClick(labelInputRef),
105
- className: "nodrag nowheel",
106
- role: "button",
107
- "aria-label": "Add node label",
108
- "data-testid": "empty-label-placeholder"
154
+ onDoubleClick: readonly ? void 0 : handleDoubleClick(labelInputRef)
109
155
  }),
110
156
  centerAdornment
111
157
  ]
@@ -125,10 +171,8 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
125
171
  shape: shape,
126
172
  variant: "normal",
127
173
  backgroundColor: labelBackgroundColor,
128
- className: "nodrag nowheel",
129
174
  placeholder: "Name",
130
175
  rows: 'rectangle' === shape ? 1 : void 0,
131
- role: "textbox",
132
176
  "aria-label": "Edit node name"
133
177
  }),
134
178
  /*#__PURE__*/ jsx(EditableLabel, {
@@ -139,24 +183,22 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
139
183
  onBlur: handleBlur,
140
184
  shape: shape,
141
185
  variant: "subtext",
142
- className: "nodrag nowheel",
143
186
  placeholder: "Description",
144
187
  rows: 'rectangle' === shape ? 2 : void 0,
145
- role: "textbox",
146
188
  "aria-label": "Edit node description"
147
189
  })
148
190
  ]
149
191
  }) : /*#__PURE__*/ jsxs(ConditionalTooltip, {
150
192
  content: labelTooltip,
151
193
  children: [
152
- /*#__PURE__*/ jsx(BaseHeader, {
194
+ /*#__PURE__*/ jsx(Header, {
153
195
  shape: shape,
154
196
  backgroundColor: labelBackgroundColor,
155
197
  onDoubleClick: readonly ? void 0 : handleDoubleClick(labelInputRef),
156
198
  "data-testid": "node-label",
157
199
  children: label
158
200
  }),
159
- subLabel && /*#__PURE__*/ jsx(BaseSubHeader, {
201
+ subLabel && /*#__PURE__*/ jsx(SubHeader, {
160
202
  shape: shape,
161
203
  onDoubleClick: readonly ? void 0 : handleDoubleClick(subLabelInputRef),
162
204
  "data-testid": "node-sublabel",
@@ -169,4 +211,4 @@ const NodeLabelInternal = ({ label = '', subLabel = '', labelTooltip, labelBackg
169
211
  });
170
212
  };
171
213
  const NodeLabel = /*#__PURE__*/ memo(NodeLabelInternal);
172
- export { NodeLabel };
214
+ export { BaseTextContainer, NodeLabel };
@@ -40,19 +40,16 @@ const external_constants_cjs_namespaceObject = require("../../constants.cjs");
40
40
  const isHorizontalEdge = (position)=>position === react_cjs_namespaceObject.Position.Top || position === react_cjs_namespaceObject.Position.Bottom;
41
41
  const isVerticalEdge = (position)=>position === react_cjs_namespaceObject.Position.Left || position === react_cjs_namespaceObject.Position.Right;
42
42
  const snapToGrid = (value, gridSize = external_constants_cjs_namespaceObject.GRID_SPACING)=>Math.round(value / gridSize) * gridSize;
43
- const calculateGridAlignedHandlePositions = (nodeSize, numHandles, gridSize = external_constants_cjs_namespaceObject.GRID_SPACING)=>{
43
+ const calculateGridAlignedHandlePositions = (nodeSize, numHandles, gridSize = external_constants_cjs_namespaceObject.GRID_SPACING / 2)=>{
44
44
  if (0 === numHandles) return [];
45
45
  if (nodeSize <= 0) return [];
46
46
  const idealSpacing = nodeSize / (numHandles + 1);
47
- const gridAlignedSpacing = Math.round(idealSpacing / gridSize) * gridSize;
47
+ const roundedSpacing = Math.round(idealSpacing / gridSize) * gridSize;
48
+ const gridAlignedSpacing = Math.max(gridSize, roundedSpacing);
48
49
  const totalSpan = (numHandles - 1) * gridAlignedSpacing;
49
50
  const startPosition = (nodeSize - totalSpan) / 2;
50
51
  const positions = [];
51
- for(let i = 0; i < numHandles; i++){
52
- const position = startPosition + i * gridAlignedSpacing;
53
- const snappedPosition = snapToGrid(position, gridSize);
54
- positions.push(snappedPosition);
55
- }
52
+ for(let i = 0; i < numHandles; i++)positions.push(startPosition + i * gridAlignedSpacing);
56
53
  return positions;
57
54
  };
58
55
  const pixelToPercent = (pixelPosition, nodeSize)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonHandleStyleUtils.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandleStyleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;AAoB/F,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,WAAU,MAAqB,KAAG,MAE3E,CAAC;AASF,eAAO,MAAM,mCAAmC,GAC9C,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,WAAU,MAAqB,KAC9B,MAAM,EAuBR,CAAC;AAQF,eAAO,MAAM,cAAc,GAAI,eAAe,MAAM,EAAE,UAAU,MAAM,KAAG,MAGxE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,wCAIxC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,MAMH,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,yCAIzC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAMH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,uEAMlC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAyBH,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,uEAMrC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAsBH,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,sEAMnC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,MAyBH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,sEAMpC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,MAsBH,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,yCAGhC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;CAChE,KAAG,MAgBH,CAAC"}
1
+ {"version":3,"file":"ButtonHandleStyleUtils.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandleStyleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;AAoB/F,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,WAAU,MAAqB,KAAG,MAE3E,CAAC;AAmBF,eAAO,MAAM,mCAAmC,GAC9C,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,WAAU,MAAyB,KAClC,MAAM,EA4BR,CAAC;AAQF,eAAO,MAAM,cAAc,GAAI,eAAe,MAAM,EAAE,UAAU,MAAM,KAAG,MAGxE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,wCAIxC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,MAMH,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,yCAIzC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAMH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,uEAMlC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAyBH,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,uEAMrC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAsBH,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,sEAMnC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,MAyBH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,sEAMpC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,MAsBH,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,yCAGhC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;CAChE,KAAG,MAgBH,CAAC"}
@@ -3,19 +3,16 @@ import { GRID_SPACING } from "../../constants.js";
3
3
  const isHorizontalEdge = (position)=>position === Position.Top || position === Position.Bottom;
4
4
  const isVerticalEdge = (position)=>position === Position.Left || position === Position.Right;
5
5
  const snapToGrid = (value, gridSize = GRID_SPACING)=>Math.round(value / gridSize) * gridSize;
6
- const calculateGridAlignedHandlePositions = (nodeSize, numHandles, gridSize = GRID_SPACING)=>{
6
+ const calculateGridAlignedHandlePositions = (nodeSize, numHandles, gridSize = GRID_SPACING / 2)=>{
7
7
  if (0 === numHandles) return [];
8
8
  if (nodeSize <= 0) return [];
9
9
  const idealSpacing = nodeSize / (numHandles + 1);
10
- const gridAlignedSpacing = Math.round(idealSpacing / gridSize) * gridSize;
10
+ const roundedSpacing = Math.round(idealSpacing / gridSize) * gridSize;
11
+ const gridAlignedSpacing = Math.max(gridSize, roundedSpacing);
11
12
  const totalSpan = (numHandles - 1) * gridAlignedSpacing;
12
13
  const startPosition = (nodeSize - totalSpan) / 2;
13
14
  const positions = [];
14
- for(let i = 0; i < numHandles; i++){
15
- const position = startPosition + i * gridAlignedSpacing;
16
- const snappedPosition = snapToGrid(position, gridSize);
17
- positions.push(snappedPosition);
18
- }
15
+ for(let i = 0; i < numHandles; i++)positions.push(startPosition + i * gridAlignedSpacing);
19
16
  return positions;
20
17
  };
21
18
  const pixelToPercent = (pixelPosition, nodeSize)=>{
@@ -60,13 +60,14 @@ const PanelContainer = styled_default().div`
60
60
  transition: opacity 0.2s ease-in-out;
61
61
  border-left: ${(props)=>props.isPinned ? '1px solid var(--canvas-border-de-emp)' : 'none'};
62
62
  `;
63
- function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave }) {
63
+ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, fallbackPlacement, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave }) {
64
64
  const { computedAnchor, floatingStyles, refs, mergedReferenceRef } = (0, external_useFloatingPosition_cjs_namespaceObject.useFloatingPosition)({
65
65
  open,
66
66
  nodeId,
67
67
  anchorRect,
68
68
  placement,
69
- offset
69
+ offset,
70
+ fallbackPlacement
70
71
  });
71
72
  if (!open || !computedAnchor) return null;
72
73
  if (useFixedPosition && anchorRect) {
@@ -7,6 +7,7 @@ export type FloatingCanvasPanelProps = {
7
7
  anchorRect?: AnchorRect;
8
8
  placement?: Placement;
9
9
  offset?: number;
10
+ fallbackPlacement?: 'none' | 'start' | 'end';
10
11
  isPinned?: boolean;
11
12
  useFixedPosition?: boolean;
12
13
  portalToBody?: boolean;
@@ -19,5 +20,5 @@ export type FloatingCanvasPanelProps = {
19
20
  onMouseEnter?: () => void;
20
21
  onMouseLeave?: () => void;
21
22
  };
22
- export declare function FloatingCanvasPanel({ open, nodeId, anchorRect, placement, offset, isPinned, useFixedPosition, portalToBody, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave, }: FloatingCanvasPanelProps): import("react/jsx-runtime").JSX.Element | null;
23
+ export declare function FloatingCanvasPanel({ open, nodeId, anchorRect, placement, offset, fallbackPlacement, isPinned, useFixedPosition, portalToBody, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave, }: FloatingCanvasPanelProps): import("react/jsx-runtime").JSX.Element | null;
23
24
  //# sourceMappingURL=FloatingCanvasPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingCanvasPanel.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAoB7E,MAAM,MAAM,wBAAwB,GAAG;IAErC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAOnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAM3B,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,IAAW,EACX,MAAM,EACN,UAAU,EACV,SAAyB,EACzB,MAAW,EACX,QAAgB,EAChB,gBAAwB,EACxB,YAAoB,EACpB,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,GACb,EAAE,wBAAwB,kDA4I1B"}
1
+ {"version":3,"file":"FloatingCanvasPanel.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/FloatingCanvasPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAoB7E,MAAM,MAAM,wBAAwB,GAAG;IAErC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAShB,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAOnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAM3B,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,IAAW,EACX,MAAM,EACN,UAAU,EACV,SAAyB,EACzB,MAAW,EACX,iBAAiB,EACjB,QAAgB,EAChB,gBAAwB,EACxB,YAAoB,EACpB,KAAK,EACL,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,GACb,EAAE,wBAAwB,kDA6I1B"}
@@ -22,13 +22,14 @@ const PanelContainer = styled.div`
22
22
  transition: opacity 0.2s ease-in-out;
23
23
  border-left: ${(props)=>props.isPinned ? '1px solid var(--canvas-border-de-emp)' : 'none'};
24
24
  `;
25
- function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave }) {
25
+ function FloatingCanvasPanel({ open = true, nodeId, anchorRect, placement = 'right-start', offset = 20, fallbackPlacement, isPinned = false, useFixedPosition = false, portalToBody = false, title, header, headerActions, children, onClose, scrollKey, onMouseEnter, onMouseLeave }) {
26
26
  const { computedAnchor, floatingStyles, refs, mergedReferenceRef } = useFloatingPosition({
27
27
  open,
28
28
  nodeId,
29
29
  anchorRect,
30
30
  placement,
31
- offset
31
+ offset,
32
+ fallbackPlacement
32
33
  });
33
34
  if (!open || !computedAnchor) return null;
34
35
  if (useFixedPosition && anchorRect) {
@@ -29,7 +29,7 @@ __webpack_require__.d(__webpack_exports__, {
29
29
  const react_namespaceObject = require("@floating-ui/react");
30
30
  const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
31
31
  const external_react_namespaceObject = require("react");
32
- function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'right-start', offset: offsetValue = 20 }) {
32
+ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'right-start', offset: offsetValue = 20, fallbackPlacement = 'none' }) {
33
33
  const referenceRef = (0, external_react_namespaceObject.useRef)(null);
34
34
  const internalNode = (0, react_cjs_namespaceObject.useInternalNode)(nodeId || '');
35
35
  const computedAnchor = (0, external_react_namespaceObject.useMemo)(()=>{
@@ -56,7 +56,9 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
56
56
  open: !!open && !!computedAnchor,
57
57
  middleware: [
58
58
  (0, react_namespaceObject.offset)(offsetValue),
59
- (0, react_namespaceObject.flip)()
59
+ (0, react_namespaceObject.flip)({
60
+ fallbackAxisSideDirection: fallbackPlacement
61
+ })
60
62
  ],
61
63
  whileElementsMounted: react_namespaceObject.autoUpdate
62
64
  });
@@ -12,6 +12,7 @@ export interface UseFloatingPositionOptions {
12
12
  anchorRect?: AnchorRect;
13
13
  placement?: Placement;
14
14
  offset?: number;
15
+ fallbackPlacement?: 'none' | 'start' | 'end';
15
16
  }
16
17
  export interface UseFloatingPositionReturn {
17
18
  computedAnchor: AnchorRect | null;
@@ -22,5 +23,5 @@ export interface UseFloatingPositionReturn {
22
23
  };
23
24
  mergedReferenceRef: ((instance: Element | null) => void) | null;
24
25
  }
25
- export declare function useFloatingPosition({ open, nodeId, anchorRect, placement, offset: offsetValue, }: UseFloatingPositionOptions): UseFloatingPositionReturn;
26
+ export declare function useFloatingPosition({ open, nodeId, anchorRect, placement, offset: offsetValue, fallbackPlacement, }: UseFloatingPositionOptions): UseFloatingPositionReturn;
26
27
  //# sourceMappingURL=useFloatingPosition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFloatingPosition.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/useFloatingPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAA8B,MAAM,OAAO,CAAC;AAEzF,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,aAAa,CAAC;IAC9B,IAAI,EAAE;QACJ,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;KACvC,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACjE;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAW,EACX,MAAM,EACN,UAAU,EACV,SAAyB,EACzB,MAAM,EAAE,WAAgB,GACzB,EAAE,0BAA0B,GAAG,yBAAyB,CA8CxD"}
1
+ {"version":3,"file":"useFloatingPosition.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/FloatingCanvasPanel/useFloatingPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAA8B,MAAM,OAAO,CAAC;AAEzF,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,aAAa,CAAC;IAC9B,IAAI,EAAE;QACJ,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;KACvC,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACjE;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAW,EACX,MAAM,EACN,UAAU,EACV,SAAyB,EACzB,MAAM,EAAE,WAAgB,EACxB,iBAA0B,GAC3B,EAAE,0BAA0B,GAAG,yBAAyB,CA8CxD"}
@@ -1,7 +1,7 @@
1
1
  import { autoUpdate, flip, offset, useFloating, useMergeRefs } from "@floating-ui/react";
2
2
  import { useInternalNode } from "../../xyflow/react.js";
3
3
  import { useEffect, useMemo, useRef } from "react";
4
- function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'right-start', offset: offsetValue = 20 }) {
4
+ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'right-start', offset: offsetValue = 20, fallbackPlacement = 'none' }) {
5
5
  const referenceRef = useRef(null);
6
6
  const internalNode = useInternalNode(nodeId || '');
7
7
  const computedAnchor = useMemo(()=>{
@@ -28,7 +28,9 @@ function useFloatingPosition({ open = true, nodeId, anchorRect, placement = 'rig
28
28
  open: !!open && !!computedAnchor,
29
29
  middleware: [
30
30
  offset(offsetValue),
31
- flip()
31
+ flip({
32
+ fallbackAxisSideDirection: fallbackPlacement
33
+ })
32
34
  ],
33
35
  whileElementsMounted: autoUpdate
34
36
  });
@@ -26,7 +26,22 @@ __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  CANVAS_COMPACT_BREAKPOINT: ()=>CANVAS_COMPACT_BREAKPOINT,
28
28
  DEFAULT_NODE_SIZE: ()=>DEFAULT_NODE_SIZE,
29
+ DEFAULT_RECTANGLE_NODE_WIDTH: ()=>DEFAULT_RECTANGLE_NODE_WIDTH,
29
30
  GRID_SPACING: ()=>GRID_SPACING,
31
+ NODE_BADGE_INSET_CIRCLE: ()=>NODE_BADGE_INSET_CIRCLE,
32
+ NODE_BADGE_INSET_SQUARE: ()=>NODE_BADGE_INSET_SQUARE,
33
+ NODE_BADGE_SIZE: ()=>NODE_BADGE_SIZE,
34
+ NODE_CONTAINER_RADIUS_RATIO: ()=>NODE_CONTAINER_RADIUS_RATIO,
35
+ NODE_ERROR_ICON_SIZE: ()=>NODE_ERROR_ICON_SIZE,
36
+ NODE_HEIGHT_DEFAULT: ()=>NODE_HEIGHT_DEFAULT,
37
+ NODE_HEIGHT_FOOTER_BUTTON: ()=>NODE_HEIGHT_FOOTER_BUTTON,
38
+ NODE_HEIGHT_FOOTER_DOUBLE: ()=>NODE_HEIGHT_FOOTER_DOUBLE,
39
+ NODE_HEIGHT_FOOTER_SINGLE: ()=>NODE_HEIGHT_FOOTER_SINGLE,
40
+ NODE_INNER_ICON_RATIO: ()=>NODE_INNER_ICON_RATIO,
41
+ NODE_INNER_RADIUS_RATIO: ()=>NODE_INNER_RADIUS_RATIO,
42
+ NODE_INNER_SHAPE_RATIO: ()=>NODE_INNER_SHAPE_RATIO,
43
+ NODE_TEXT_BOTTOM_OFFSET: ()=>NODE_TEXT_BOTTOM_OFFSET,
44
+ NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES: ()=>NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES,
30
45
  PREVIEW_EDGE_ID: ()=>PREVIEW_EDGE_ID,
31
46
  PREVIEW_NODE_ID: ()=>PREVIEW_NODE_ID
32
47
  });
@@ -35,15 +50,60 @@ const PREVIEW_EDGE_ID = 'preview-edge-id';
35
50
  const DEFAULT_NODE_SIZE = 96;
36
51
  const GRID_SPACING = 16;
37
52
  const CANVAS_COMPACT_BREAKPOINT = 600;
53
+ const DEFAULT_RECTANGLE_NODE_WIDTH = 288;
54
+ const NODE_HEIGHT_DEFAULT = 6 * GRID_SPACING;
55
+ const NODE_HEIGHT_FOOTER_BUTTON = 9 * GRID_SPACING;
56
+ const NODE_HEIGHT_FOOTER_SINGLE = 10 * GRID_SPACING;
57
+ const NODE_HEIGHT_FOOTER_DOUBLE = 11 * GRID_SPACING;
58
+ const NODE_CONTAINER_RADIUS_RATIO = 32 / DEFAULT_NODE_SIZE;
59
+ const NODE_INNER_SHAPE_RATIO = 80 / DEFAULT_NODE_SIZE;
60
+ const NODE_INNER_ICON_RATIO = 40 / DEFAULT_NODE_SIZE;
61
+ const NODE_INNER_RADIUS_RATIO = 24 / DEFAULT_NODE_SIZE;
62
+ const NODE_ERROR_ICON_SIZE = 40;
63
+ const NODE_TEXT_BOTTOM_OFFSET = -8;
64
+ const NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES = -40;
65
+ const NODE_BADGE_SIZE = 20;
66
+ const NODE_BADGE_INSET_SQUARE = 6;
67
+ const NODE_BADGE_INSET_CIRCLE = 12;
38
68
  exports.CANVAS_COMPACT_BREAKPOINT = __webpack_exports__.CANVAS_COMPACT_BREAKPOINT;
39
69
  exports.DEFAULT_NODE_SIZE = __webpack_exports__.DEFAULT_NODE_SIZE;
70
+ exports.DEFAULT_RECTANGLE_NODE_WIDTH = __webpack_exports__.DEFAULT_RECTANGLE_NODE_WIDTH;
40
71
  exports.GRID_SPACING = __webpack_exports__.GRID_SPACING;
72
+ exports.NODE_BADGE_INSET_CIRCLE = __webpack_exports__.NODE_BADGE_INSET_CIRCLE;
73
+ exports.NODE_BADGE_INSET_SQUARE = __webpack_exports__.NODE_BADGE_INSET_SQUARE;
74
+ exports.NODE_BADGE_SIZE = __webpack_exports__.NODE_BADGE_SIZE;
75
+ exports.NODE_CONTAINER_RADIUS_RATIO = __webpack_exports__.NODE_CONTAINER_RADIUS_RATIO;
76
+ exports.NODE_ERROR_ICON_SIZE = __webpack_exports__.NODE_ERROR_ICON_SIZE;
77
+ exports.NODE_HEIGHT_DEFAULT = __webpack_exports__.NODE_HEIGHT_DEFAULT;
78
+ exports.NODE_HEIGHT_FOOTER_BUTTON = __webpack_exports__.NODE_HEIGHT_FOOTER_BUTTON;
79
+ exports.NODE_HEIGHT_FOOTER_DOUBLE = __webpack_exports__.NODE_HEIGHT_FOOTER_DOUBLE;
80
+ exports.NODE_HEIGHT_FOOTER_SINGLE = __webpack_exports__.NODE_HEIGHT_FOOTER_SINGLE;
81
+ exports.NODE_INNER_ICON_RATIO = __webpack_exports__.NODE_INNER_ICON_RATIO;
82
+ exports.NODE_INNER_RADIUS_RATIO = __webpack_exports__.NODE_INNER_RADIUS_RATIO;
83
+ exports.NODE_INNER_SHAPE_RATIO = __webpack_exports__.NODE_INNER_SHAPE_RATIO;
84
+ exports.NODE_TEXT_BOTTOM_OFFSET = __webpack_exports__.NODE_TEXT_BOTTOM_OFFSET;
85
+ exports.NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES = __webpack_exports__.NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES;
41
86
  exports.PREVIEW_EDGE_ID = __webpack_exports__.PREVIEW_EDGE_ID;
42
87
  exports.PREVIEW_NODE_ID = __webpack_exports__.PREVIEW_NODE_ID;
43
88
  for(var __rspack_i in __webpack_exports__)if (-1 === [
44
89
  "CANVAS_COMPACT_BREAKPOINT",
45
90
  "DEFAULT_NODE_SIZE",
91
+ "DEFAULT_RECTANGLE_NODE_WIDTH",
46
92
  "GRID_SPACING",
93
+ "NODE_BADGE_INSET_CIRCLE",
94
+ "NODE_BADGE_INSET_SQUARE",
95
+ "NODE_BADGE_SIZE",
96
+ "NODE_CONTAINER_RADIUS_RATIO",
97
+ "NODE_ERROR_ICON_SIZE",
98
+ "NODE_HEIGHT_DEFAULT",
99
+ "NODE_HEIGHT_FOOTER_BUTTON",
100
+ "NODE_HEIGHT_FOOTER_DOUBLE",
101
+ "NODE_HEIGHT_FOOTER_SINGLE",
102
+ "NODE_INNER_ICON_RATIO",
103
+ "NODE_INNER_RADIUS_RATIO",
104
+ "NODE_INNER_SHAPE_RATIO",
105
+ "NODE_TEXT_BOTTOM_OFFSET",
106
+ "NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES",
47
107
  "PREVIEW_EDGE_ID",
48
108
  "PREVIEW_NODE_ID"
49
109
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
@@ -3,4 +3,19 @@ export declare const PREVIEW_EDGE_ID = "preview-edge-id";
3
3
  export declare const DEFAULT_NODE_SIZE = 96;
4
4
  export declare const GRID_SPACING = 16;
5
5
  export declare const CANVAS_COMPACT_BREAKPOINT = 600;
6
+ export declare const DEFAULT_RECTANGLE_NODE_WIDTH = 288;
7
+ export declare const NODE_HEIGHT_DEFAULT: number;
8
+ export declare const NODE_HEIGHT_FOOTER_BUTTON: number;
9
+ export declare const NODE_HEIGHT_FOOTER_SINGLE: number;
10
+ export declare const NODE_HEIGHT_FOOTER_DOUBLE: number;
11
+ export declare const NODE_CONTAINER_RADIUS_RATIO: number;
12
+ export declare const NODE_INNER_SHAPE_RATIO: number;
13
+ export declare const NODE_INNER_ICON_RATIO: number;
14
+ export declare const NODE_INNER_RADIUS_RATIO: number;
15
+ export declare const NODE_ERROR_ICON_SIZE = 40;
16
+ export declare const NODE_TEXT_BOTTOM_OFFSET = -8;
17
+ export declare const NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES = -40;
18
+ export declare const NODE_BADGE_SIZE = 20;
19
+ export declare const NODE_BADGE_INSET_SQUARE = 6;
20
+ export declare const NODE_BADGE_INSET_CIRCLE = 12;
6
21
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/canvas/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,eAAO,MAAM,YAAY,KAAK,CAAC;AAG/B,eAAO,MAAM,yBAAyB,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/canvas/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,eAAO,MAAM,YAAY,KAAK,CAAC;AAG/B,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAG7C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAGhD,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AACpD,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAC1D,eAAO,MAAM,yBAAyB,QAAoB,CAAC;AAC3D,eAAO,MAAM,yBAAyB,QAAoB,CAAC;AAO3D,eAAO,MAAM,2BAA2B,QAAyB,CAAC;AAClE,eAAO,MAAM,sBAAsB,QAAyB,CAAC;AAC7D,eAAO,MAAM,qBAAqB,QAAyB,CAAC;AAC5D,eAAO,MAAM,uBAAuB,QAAyB,CAAC;AAG9D,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAGvC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAGxD,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,uBAAuB,KAAK,CAAC"}
@@ -3,4 +3,19 @@ const PREVIEW_EDGE_ID = 'preview-edge-id';
3
3
  const DEFAULT_NODE_SIZE = 96;
4
4
  const GRID_SPACING = 16;
5
5
  const CANVAS_COMPACT_BREAKPOINT = 600;
6
- export { CANVAS_COMPACT_BREAKPOINT, DEFAULT_NODE_SIZE, GRID_SPACING, PREVIEW_EDGE_ID, PREVIEW_NODE_ID };
6
+ const DEFAULT_RECTANGLE_NODE_WIDTH = 288;
7
+ const NODE_HEIGHT_DEFAULT = 6 * GRID_SPACING;
8
+ const NODE_HEIGHT_FOOTER_BUTTON = 9 * GRID_SPACING;
9
+ const NODE_HEIGHT_FOOTER_SINGLE = 10 * GRID_SPACING;
10
+ const NODE_HEIGHT_FOOTER_DOUBLE = 11 * GRID_SPACING;
11
+ const NODE_CONTAINER_RADIUS_RATIO = 32 / DEFAULT_NODE_SIZE;
12
+ const NODE_INNER_SHAPE_RATIO = 80 / DEFAULT_NODE_SIZE;
13
+ const NODE_INNER_ICON_RATIO = 40 / DEFAULT_NODE_SIZE;
14
+ const NODE_INNER_RADIUS_RATIO = 24 / DEFAULT_NODE_SIZE;
15
+ const NODE_ERROR_ICON_SIZE = 40;
16
+ const NODE_TEXT_BOTTOM_OFFSET = -8;
17
+ const NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES = -40;
18
+ const NODE_BADGE_SIZE = 20;
19
+ const NODE_BADGE_INSET_SQUARE = 6;
20
+ const NODE_BADGE_INSET_CIRCLE = 12;
21
+ export { CANVAS_COMPACT_BREAKPOINT, DEFAULT_NODE_SIZE, DEFAULT_RECTANGLE_NODE_WIDTH, GRID_SPACING, NODE_BADGE_INSET_CIRCLE, NODE_BADGE_INSET_SQUARE, NODE_BADGE_SIZE, NODE_CONTAINER_RADIUS_RATIO, NODE_ERROR_ICON_SIZE, NODE_HEIGHT_DEFAULT, NODE_HEIGHT_FOOTER_BUTTON, NODE_HEIGHT_FOOTER_DOUBLE, NODE_HEIGHT_FOOTER_SINGLE, NODE_INNER_ICON_RATIO, NODE_INNER_RADIUS_RATIO, NODE_INNER_SHAPE_RATIO, NODE_TEXT_BOTTOM_OFFSET, NODE_TEXT_BOTTOM_OFFSET_WITH_HANDLES, PREVIEW_EDGE_ID, PREVIEW_NODE_ID };
@@ -24,6 +24,9 @@ var __webpack_modules__ = {
24
24
  "./schema" (module) {
25
25
  module.exports = require("./schema/index.cjs");
26
26
  },
27
+ "./styles/reactflow-reset.css" (module) {
28
+ module.exports = require("./styles/reactflow-reset.css");
29
+ },
27
30
  "./styles/variables.css" (module) {
28
31
  module.exports = require("./styles/variables.css");
29
32
  },
@@ -84,86 +87,87 @@ var __webpack_exports__ = {};
84
87
  (()=>{
85
88
  __webpack_require__.r(__webpack_exports__);
86
89
  __webpack_require__.d(__webpack_exports__, {
87
- Icons: ()=>_icons__rspack_import_6
90
+ Icons: ()=>_icons__rspack_import_7
88
91
  });
89
92
  __webpack_require__("./styles/variables.css");
90
- var _components__rspack_import_1 = __webpack_require__("./components");
93
+ __webpack_require__("./styles/reactflow-reset.css");
94
+ var _components__rspack_import_2 = __webpack_require__("./components");
91
95
  var __rspack_reexport = {};
92
- for(const __rspack_import_key in _components__rspack_import_1)if ([
96
+ for(const __rspack_import_key in _components__rspack_import_2)if ([
93
97
  "Icons",
94
98
  "default"
95
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_components__rspack_import_1[__rspack_import_key];
99
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_components__rspack_import_2[__rspack_import_key];
96
100
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
97
- var _constants__rspack_import_2 = __webpack_require__("./constants");
101
+ var _constants__rspack_import_3 = __webpack_require__("./constants");
98
102
  var __rspack_reexport = {};
99
- for(const __rspack_import_key in _constants__rspack_import_2)if ([
103
+ for(const __rspack_import_key in _constants__rspack_import_3)if ([
100
104
  "Icons",
101
105
  "default"
102
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_constants__rspack_import_2[__rspack_import_key];
106
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_constants__rspack_import_3[__rspack_import_key];
103
107
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
104
- var _controls__rspack_import_3 = __webpack_require__("./controls");
108
+ var _controls__rspack_import_4 = __webpack_require__("./controls");
105
109
  var __rspack_reexport = {};
106
- for(const __rspack_import_key in _controls__rspack_import_3)if ([
110
+ for(const __rspack_import_key in _controls__rspack_import_4)if ([
107
111
  "Icons",
108
112
  "default"
109
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_controls__rspack_import_3[__rspack_import_key];
113
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_controls__rspack_import_4[__rspack_import_key];
110
114
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
111
- var _core__rspack_import_4 = __webpack_require__("./core");
115
+ var _core__rspack_import_5 = __webpack_require__("./core");
112
116
  var __rspack_reexport = {};
113
- for(const __rspack_import_key in _core__rspack_import_4)if ([
117
+ for(const __rspack_import_key in _core__rspack_import_5)if ([
114
118
  "Icons",
115
119
  "default"
116
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_core__rspack_import_4[__rspack_import_key];
120
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_core__rspack_import_5[__rspack_import_key];
117
121
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
118
- var _hooks__rspack_import_5 = __webpack_require__("./hooks");
122
+ var _hooks__rspack_import_6 = __webpack_require__("./hooks");
119
123
  var __rspack_reexport = {};
120
- for(const __rspack_import_key in _hooks__rspack_import_5)if ([
124
+ for(const __rspack_import_key in _hooks__rspack_import_6)if ([
121
125
  "Icons",
122
126
  "default"
123
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_hooks__rspack_import_5[__rspack_import_key];
127
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_hooks__rspack_import_6[__rspack_import_key];
124
128
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
125
- var _icons__rspack_import_6 = __webpack_require__("./icons");
126
- var _layouts__rspack_import_7 = __webpack_require__("./layouts");
129
+ var _icons__rspack_import_7 = __webpack_require__("./icons");
130
+ var _layouts__rspack_import_8 = __webpack_require__("./layouts");
127
131
  var __rspack_reexport = {};
128
- for(const __rspack_import_key in _layouts__rspack_import_7)if ([
132
+ for(const __rspack_import_key in _layouts__rspack_import_8)if ([
129
133
  "Icons",
130
134
  "default"
131
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_layouts__rspack_import_7[__rspack_import_key];
135
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_layouts__rspack_import_8[__rspack_import_key];
132
136
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
133
- var _schema__rspack_import_8 = __webpack_require__("./schema");
137
+ var _schema__rspack_import_9 = __webpack_require__("./schema");
134
138
  var __rspack_reexport = {};
135
- for(const __rspack_import_key in _schema__rspack_import_8)if ([
139
+ for(const __rspack_import_key in _schema__rspack_import_9)if ([
136
140
  "Icons",
137
141
  "default"
138
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_schema__rspack_import_8[__rspack_import_key];
142
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_schema__rspack_import_9[__rspack_import_key];
139
143
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
140
- var _types__rspack_import_9 = __webpack_require__("./types");
144
+ var _types__rspack_import_10 = __webpack_require__("./types");
141
145
  var __rspack_reexport = {};
142
- for(const __rspack_import_key in _types__rspack_import_9)if ([
146
+ for(const __rspack_import_key in _types__rspack_import_10)if ([
143
147
  "Icons",
144
148
  "default"
145
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types__rspack_import_9[__rspack_import_key];
149
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types__rspack_import_10[__rspack_import_key];
146
150
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
147
- var _types_execution__rspack_import_10 = __webpack_require__("./types/execution");
151
+ var _types_execution__rspack_import_11 = __webpack_require__("./types/execution");
148
152
  var __rspack_reexport = {};
149
- for(const __rspack_import_key in _types_execution__rspack_import_10)if ([
153
+ for(const __rspack_import_key in _types_execution__rspack_import_11)if ([
150
154
  "Icons",
151
155
  "default"
152
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types_execution__rspack_import_10[__rspack_import_key];
156
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types_execution__rspack_import_11[__rspack_import_key];
153
157
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
154
- var _types_validation__rspack_import_11 = __webpack_require__("./types/validation");
158
+ var _types_validation__rspack_import_12 = __webpack_require__("./types/validation");
155
159
  var __rspack_reexport = {};
156
- for(const __rspack_import_key in _types_validation__rspack_import_11)if ([
160
+ for(const __rspack_import_key in _types_validation__rspack_import_12)if ([
157
161
  "Icons",
158
162
  "default"
159
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types_validation__rspack_import_11[__rspack_import_key];
163
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types_validation__rspack_import_12[__rspack_import_key];
160
164
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
161
- var _utils__rspack_import_12 = __webpack_require__("./utils");
165
+ var _utils__rspack_import_13 = __webpack_require__("./utils");
162
166
  var __rspack_reexport = {};
163
- for(const __rspack_import_key in _utils__rspack_import_12)if ([
167
+ for(const __rspack_import_key in _utils__rspack_import_13)if ([
164
168
  "Icons",
165
169
  "default"
166
- ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_utils__rspack_import_12[__rspack_import_key];
170
+ ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_utils__rspack_import_13[__rspack_import_key];
167
171
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
168
172
  })();
169
173
  exports.Icons = __webpack_exports__.Icons;
@@ -1,4 +1,5 @@
1
1
  import './styles/variables.css';
2
+ import './styles/reactflow-reset.css';
2
3
  export * from './components';
3
4
  export * from './constants';
4
5
  export * from './controls';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAEhC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC;AAChC,OAAO,8BAA8B,CAAC;AAEtC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import "./styles/variables.css";
2
+ import "./styles/reactflow-reset.css";
2
3
  export * from "./components/index.js";
3
4
  export * from "./constants.js";
4
5
  export * from "./controls/index.js";
@@ -0,0 +1,12 @@
1
+ .react-flow__node-default, .react-flow__node-default.selectable:hover, .react-flow__node-default.selectable.selected, .react-flow__node-default.selectable:focus, .react-flow__node-default.selectable:focus-visible {
2
+ width: auto !important;
3
+ color: inherit !important;
4
+ text-align: inherit !important;
5
+ font-size: inherit !important;
6
+ box-shadow: none !important;
7
+ background: none !important;
8
+ border: none !important;
9
+ border-radius: 0 !important;
10
+ padding: 0 !important;
11
+ }
12
+