panelui-native 0.20.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/lib/module/components/bottom-sheet/index.js +35 -10
  2. package/lib/module/components/bottom-sheet/index.js.map +1 -1
  3. package/lib/module/components/flow/flow-paths.js +18 -0
  4. package/lib/module/components/flow/flow-paths.js.map +1 -1
  5. package/lib/module/components/flow/index.js +156 -31
  6. package/lib/module/components/flow/index.js.map +1 -1
  7. package/lib/module/components/signature/index.js +7 -3
  8. package/lib/module/components/signature/index.js.map +1 -1
  9. package/lib/module/icons/index.js +29 -0
  10. package/lib/module/icons/index.js.map +1 -1
  11. package/lib/module/index.js +4 -0
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -1
  14. package/lib/typescript/src/components/flow/flow-paths.d.ts +8 -0
  15. package/lib/typescript/src/components/flow/flow-paths.d.ts.map +1 -1
  16. package/lib/typescript/src/components/flow/index.d.ts +13 -1
  17. package/lib/typescript/src/components/flow/index.d.ts.map +1 -1
  18. package/lib/typescript/src/components/signature/index.d.ts +4 -0
  19. package/lib/typescript/src/components/signature/index.d.ts.map +1 -1
  20. package/lib/typescript/src/icons/index.d.ts +2 -0
  21. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  22. package/lib/typescript/src/index.d.ts +1 -0
  23. package/lib/typescript/src/index.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/components/bottom-sheet/index.tsx +52 -21
  26. package/src/components/flow/flow-paths.ts +14 -0
  27. package/src/components/flow/index.tsx +197 -31
  28. package/src/components/signature/index.tsx +13 -3
  29. package/src/icons/index.tsx +23 -0
  30. package/src/index.ts +4 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { cloneElement, createContext, isValidElement, useCallback, useContext, useMemo, useState } from 'react';
3
+ import { cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useMemo, useState } from 'react';
4
4
  import { Pressable, useWindowDimensions, View } from 'react-native';
5
5
  import { useCSSVariable } from 'uniwind';
6
6
  import { Gesture, GestureDetector } from 'react-native-gesture-handler';
@@ -152,7 +152,24 @@ function BottomSheetContent({
152
152
  const translateY = useSharedValue(0);
153
153
  const closeTint = useCSSVariable('--color-muted-foreground');
154
154
  const close = useCallback(() => setOpen(false), [setOpen]);
155
- const pan = Gesture.Pan().onChange(event => {
155
+
156
+ /*
157
+ * The offset survives a close — the early return below sits after every
158
+ * hook, so this component keeps its state while the sheet is hidden. A
159
+ * swipe-dismiss leaves it parked a screen height down, and without this the
160
+ * next open would draw the sheet below the fold behind a full backdrop:
161
+ * a dimmed screen with nothing on it and no reachable close button.
162
+ */
163
+ useEffect(() => {
164
+ if (open) translateY.value = 0;
165
+ }, [open, translateY]);
166
+ const pan = useMemo(() => Gesture.Pan()
167
+ /*
168
+ * A drag has to travel before it takes the touch. This detector wraps
169
+ * the whole sheet, close button included, and an unqualified Pan
170
+ * activates on a few pixels of drift — cancelling the press the button
171
+ * is in the middle of, so a tap with any finger travel does nothing.
172
+ */.activeOffsetY([-12, 12]).onChange(event => {
156
173
  // Rubber-band when dragging upward, follow the finger downward.
157
174
  const next = translateY.value + event.changeY;
158
175
  translateY.value = next > 0 ? next : next / 3;
@@ -166,7 +183,11 @@ function BottomSheetContent({
166
183
  } else {
167
184
  translateY.value = withSpring(0, SPRING);
168
185
  }
169
- });
186
+ }),
187
+ // Rebuilt only when one of these changes. Built inline it would be a new
188
+ // gesture on every render — and the sheet re-renders while it is being
189
+ // used, each time re-attaching the handler and dropping the live touch.
190
+ [close, screenHeight, translateY]);
170
191
  const sheetStyle = useAnimatedStyle(() => ({
171
192
  transform: [{
172
193
  translateY: translateY.value
@@ -241,19 +262,23 @@ function BottomSheetContent({
241
262
  children: /*#__PURE__*/_jsxs(Animated.View, {
242
263
  entering: SlideInDown.springify().damping(22).stiffness(240).mass(0.8),
243
264
  exiting: SlideOutDown.duration(200),
244
- style: [sheetStyle,
245
- // A detached sheet's own bottom margin already clears the home
246
- // indicator, so it takes plain padding rather than stacking the
247
- // inset on top of the gap.
248
- {
249
- paddingBottom: detached ? 16 : Math.max(insets.bottom, 16)
250
- }],
251
265
  accessibilityViewIsModal: true,
252
266
  className: sheetVariants({
253
267
  detached,
254
268
  className
255
269
  }),
256
270
  ...props,
271
+ // After the spread, and with the caller's own style folded in
272
+ // rather than replacing the array: spread last, a caller passing
273
+ // `style` for a height would silently drop the drag transform and
274
+ // the safe-area padding with it.
275
+ style: [sheetStyle,
276
+ // A detached sheet's own bottom margin already clears the home
277
+ // indicator, so it takes plain padding rather than stacking the
278
+ // inset on top of the gap.
279
+ {
280
+ paddingBottom: detached ? 16 : Math.max(insets.bottom, 16)
281
+ }, props.style],
257
282
  children: [/*#__PURE__*/_jsx(View, {
258
283
  className: "mb-3 self-center",
259
284
  children: /*#__PURE__*/_jsx(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["cloneElement","createContext","isValidElement","useCallback","useContext","useMemo","useState","Pressable","useWindowDimensions","View","useCSSVariable","Gesture","GestureDetector","Animated","SlideInDown","SlideOutDown","runOnJS","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","tv","getNativeUI","XIcon","Portal","Scrim","cn","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","DISMISS_DISTANCE","DISMISS_VELOCITY","sheetVariants","base","variants","detached","false","true","defaultVariants","BottomSheetContext","useBottomSheet","component","context","Error","DETENT_FRACTION","half","full","detentFloor","snapPoints","screenHeight","length","undefined","first","fraction","height","NativeSheetContext","BottomSheetRoot","children","open","onOpenChange","defaultOpen","native","internalOpen","setInternalOpen","isControlled","resolvedOpen","setOpen","next","nativeUI","nativeSheet","Provider","value","BottomSheetTrigger","onPress","args","props","BottomSheetContent","className","dismissible","showClose","blur","width","screenWidth","insets","translateY","closeTint","close","pan","Pan","onChange","event","changeY","onEnd","velocityY","duration","sheetStyle","transform","Host","BottomSheet","NativeBottomSheet","RNHostView","matchContents","style","position","isPresented","onDismiss","minHeight","paddingBottom","Math","max","bottom","accessibilityLabel","gesture","entering","springify","exiting","accessibilityViewIsModal","accessibilityRole","hitSlop","size","color","Object","assign","Trigger","Content"],"sourceRoot":"../../../../src","sources":["components/bottom-sheet/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["cloneElement","createContext","isValidElement","useCallback","useContext","useEffect","useMemo","useState","Pressable","useWindowDimensions","View","useCSSVariable","Gesture","GestureDetector","Animated","SlideInDown","SlideOutDown","runOnJS","useAnimatedStyle","useSharedValue","withSpring","withTiming","useSafeAreaInsets","tv","getNativeUI","XIcon","Portal","Scrim","cn","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","DISMISS_DISTANCE","DISMISS_VELOCITY","sheetVariants","base","variants","detached","false","true","defaultVariants","BottomSheetContext","useBottomSheet","component","context","Error","DETENT_FRACTION","half","full","detentFloor","snapPoints","screenHeight","length","undefined","first","fraction","height","NativeSheetContext","BottomSheetRoot","children","open","onOpenChange","defaultOpen","native","internalOpen","setInternalOpen","isControlled","resolvedOpen","setOpen","next","nativeUI","nativeSheet","Provider","value","BottomSheetTrigger","onPress","args","props","BottomSheetContent","className","dismissible","showClose","blur","width","screenWidth","insets","translateY","closeTint","close","pan","Pan","activeOffsetY","onChange","event","changeY","onEnd","velocityY","duration","sheetStyle","transform","Host","BottomSheet","NativeBottomSheet","RNHostView","matchContents","style","position","isPresented","onDismiss","minHeight","paddingBottom","Math","max","bottom","accessibilityLabel","gesture","entering","springify","exiting","accessibilityViewIsModal","accessibilityRole","hitSlop","size","color","Object","assign","Trigger","Content"],"sourceRoot":"../../../../src","sources":["components/bottom-sheet/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -72,6 +72,24 @@ export function anchorOf(rect, side, offset) {
72
72
  };
73
73
  }
74
74
 
75
+ /**
76
+ * Pushes an anchor out along its own face's normal.
77
+ *
78
+ * For an end attached to something that draws its own border: landing exactly
79
+ * on the border puts the line under the stroke, where it reads as stopping
80
+ * short rather than as arriving.
81
+ */
82
+ export function standOff(point, side, by) {
83
+ 'worklet';
84
+
85
+ if (by === 0) return point;
86
+ const normal = sideNormal(side);
87
+ return {
88
+ x: point.x + normal.x * by,
89
+ y: point.y + normal.y * by
90
+ };
91
+ }
92
+
75
93
  /**
76
94
  * The faces two nodes should use when nobody has said. Whichever axis they are
77
95
  * further apart on wins, so nodes side by side connect left-to-right and nodes
@@ -1 +1 @@
1
- {"version":3,"names":["sideNormal","side","x","y","anchorOf","rect","offset","width","height","autoSides","from","to","dx","dy","Math","abs","straightPath","controlOffset","distance","curvature","sqrt","controlPoint","point","other","bezierPath","fromSide","toSide","c1","c2","distanceBetween","a","b","bend","c","radius","size","min","xDir","yDir","smoothStepPath","gap","fromNormal","toNormal","fromGap","toGap","horizontal","facing","middle","midX","midY","axis","apart","push","max","points","route","i","length","previous","d","last","edgePath","variant","edgeSpan","arrowHeadPath","tip","dirX","dirY","ux","uy","px","py","baseX","baseY","half","arrivalDirection","normal"],"sourceRoot":"../../../../src","sources":["components/flow/flow-paths.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sideNormal","side","x","y","anchorOf","rect","offset","width","height","standOff","point","by","normal","autoSides","from","to","dx","dy","Math","abs","straightPath","controlOffset","distance","curvature","sqrt","controlPoint","other","bezierPath","fromSide","toSide","c1","c2","distanceBetween","a","b","bend","c","radius","size","min","xDir","yDir","smoothStepPath","gap","fromNormal","toNormal","fromGap","toGap","horizontal","facing","middle","midX","midY","axis","apart","push","max","points","route","i","length","previous","d","last","edgePath","variant","edgeSpan","arrowHeadPath","tip","dirX","dirY","ux","uy","px","py","baseX","baseY","half","arrivalDirection"],"sourceRoot":"../../../../src","sources":["components/flow/flow-paths.ts"],"mappings":"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","ignoreList":[]}
@@ -55,7 +55,7 @@ import { LockIcon, MaximizeIcon, MinusIcon, PlusIcon, UnlockIcon } from "../../i
55
55
  import { AnimatedPressable } from "../../primitives/animated-pressable.js";
56
56
  import { Text } from "../../primitives/text.js";
57
57
  import { cn } from "../../utils/cn.js";
58
- import { anchorOf, arrivalDirection, arrowHeadPath, autoSides, edgePath } from "./flow-paths.js";
58
+ import { anchorOf, arrivalDirection, arrowHeadPath, autoSides, edgePath, standOff } from "./flow-paths.js";
59
59
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
60
60
  const AnimatedPath = Animated.createAnimatedComponent(Path);
61
61
  const AnimatedRect = Animated.createAnimatedComponent(Rect);
@@ -75,6 +75,16 @@ const TRANSFORM_ORIGIN = {
75
75
  /** How many screens of grid to draw around the container in each direction. */
76
76
  const GRID_SPAN = 4;
77
77
 
78
+ /**
79
+ * The step the layer grows in once the graph outruns it.
80
+ *
81
+ * Quantised because the layer's size is React state on the render path: sized
82
+ * to the graph exactly, every frame of every drag would resize it and the SVG
83
+ * drawn at its size. Rounded up to a step, it changes a handful of times over a
84
+ * session instead.
85
+ */
86
+ const LAYER_STEP = 600;
87
+
78
88
  /**
79
89
  * An SVG is backed by a single texture, and a texture has a maximum size the
80
90
  * platform will allocate — past it, nothing is drawn at all rather than
@@ -88,6 +98,13 @@ function clampCanvas(value) {
88
98
  /** How close a finger has to get to a handle for a connection to land. */
89
99
  const CONNECT_RADIUS = 44;
90
100
 
101
+ /**
102
+ * How far short of a container an edge stops. A group draws its own border, so
103
+ * an edge landing exactly on it would run under the stroke; a node has no
104
+ * border of its own and takes none of this.
105
+ */
106
+ const GROUP_EDGE_STANDOFF = 5;
107
+
91
108
  /** What `onConnect` is handed when a connection lands. */
92
109
 
93
110
  const FlowContext = /*#__PURE__*/createContext(null);
@@ -156,6 +173,7 @@ function FlowRoot({
156
173
  });
157
174
  const [locked, setLocked] = useState(false);
158
175
  const [nodeIds, setNodeIds] = useState([]);
176
+ const [groupIds, setGroupIds] = useState([]);
159
177
  const [handles, setHandles] = useState([]);
160
178
  const [edges, setEdges] = useState([]);
161
179
  const [box, setBox] = useState({
@@ -225,10 +243,27 @@ function FlowRoot({
225
243
  * of the canvas would quietly become unmovable. Sizing the layer to the same
226
244
  * span as the grid keeps every node inside its parent, where it can be hit.
227
245
  */
246
+ /**
247
+ * How far the graph reaches from graph (0, 0), in its worst direction. The
248
+ * layer is symmetric about the origin, so one number covers all four sides.
249
+ *
250
+ * Without this the layer is a fixed multiple of the container, and a graph
251
+ * that grows past it has its edges clipped by the SVG drawn at that size —
252
+ * leaving nodes on screen with the lines between them missing, which reads as
253
+ * the graph having lost its connections rather than as a clipped canvas.
254
+ */
255
+ const reach = useMemo(() => {
256
+ let out = 0;
257
+ for (const id in boxes) {
258
+ const rect = boxes[id];
259
+ out = Math.max(out, Math.abs(rect.x), Math.abs(rect.y), Math.abs(rect.x + rect.width), Math.abs(rect.y + rect.height));
260
+ }
261
+ return Math.ceil(out / LAYER_STEP) * LAYER_STEP;
262
+ }, [boxes]);
228
263
  const layer = useMemo(() => ({
229
- width: clampCanvas(Math.max(box.width, 320) * GRID_SPAN),
230
- height: clampCanvas(Math.max(box.height, 480) * GRID_SPAN)
231
- }), [box.height, box.width]);
264
+ width: clampCanvas(Math.max(Math.max(box.width, 320) * GRID_SPAN, reach * 2)),
265
+ height: clampCanvas(Math.max(Math.max(box.height, 480) * GRID_SPAN, reach * 2))
266
+ }), [box.height, box.width, reach]);
232
267
  const origin = useMemo(() => ({
233
268
  x: layer.width / 2,
234
269
  y: layer.height / 2
@@ -248,6 +283,12 @@ function FlowRoot({
248
283
  const unregisterNode = useCallback(id => {
249
284
  setNodeIds(current => current.filter(entry => entry !== id));
250
285
  }, []);
286
+ const registerGroup = useCallback(id => {
287
+ setGroupIds(current => current.includes(id) ? current : [...current, id]);
288
+ }, []);
289
+ const unregisterGroup = useCallback(id => {
290
+ setGroupIds(current => current.filter(entry => entry !== id));
291
+ }, []);
251
292
  const registerHandle = useCallback(entry => {
252
293
  setHandles(current => [...current.filter(h => h.key !== entry.key), entry]);
253
294
  }, []);
@@ -408,10 +449,13 @@ function FlowRoot({
408
449
  locked,
409
450
  setLocked,
410
451
  nodeIds,
452
+ groupIds,
411
453
  handles,
412
454
  edges,
413
455
  registerNode,
414
456
  unregisterNode,
457
+ registerGroup,
458
+ unregisterGroup,
415
459
  registerHandle,
416
460
  unregisterHandle,
417
461
  registerEdge,
@@ -421,7 +465,7 @@ function FlowRoot({
421
465
  onNodeDragEnd,
422
466
  fitView,
423
467
  zoomBy
424
- }), [boxes, setNodeRect, dropNodeRect, box, layer, origin, connection, edges, fitView, handles, registerEdge, unregisterEdge, isValidConnection, locked, maxZoom, minZoom, nodeIds, onConnect, onNodeDragEnd, rects, registerHandle, registerNode, size, translateX, translateY, unregisterHandle, unregisterNode, zoom, zoomBy]);
468
+ }), [boxes, setNodeRect, dropNodeRect, box, layer, origin, connection, edges, fitView, handles, registerEdge, unregisterEdge, isValidConnection, locked, maxZoom, minZoom, nodeIds, groupIds, onConnect, onNodeDragEnd, rects, registerGroup, registerHandle, registerNode, size, translateX, translateY, unregisterGroup, unregisterHandle, unregisterNode, zoom, zoomBy]);
425
469
  const onLayout = useCallback(event => {
426
470
  const {
427
471
  width,
@@ -668,6 +712,8 @@ function FlowNode({
668
712
  position,
669
713
  className,
670
714
  draggable = true,
715
+ confine = false,
716
+ pinned = false,
671
717
  selected = false,
672
718
  onPress,
673
719
  accessibilityLabel,
@@ -685,12 +731,25 @@ function FlowNode({
685
731
  dropNodeRect,
686
732
  registerNode,
687
733
  unregisterNode,
734
+ registerGroup,
735
+ unregisterGroup,
688
736
  onNodeDragEnd
689
737
  } = flow;
738
+
739
+ /*
740
+ * Registered twice, on purpose. As a node, because its box belongs in the
741
+ * same registry every other box lives in — that is what lets an edge name it
742
+ * and fitView account for it. As a group, because the minimap and the edge
743
+ * layer both need to know it is a container and not a card.
744
+ */
690
745
  useEffect(() => {
691
- registerNode(id, group ?? undefined);
692
- return () => unregisterNode(id);
693
- }, [group, id, registerNode, unregisterNode]);
746
+ registerNode(id);
747
+ registerGroup(id);
748
+ return () => {
749
+ unregisterNode(id);
750
+ unregisterGroup(id);
751
+ };
752
+ }, [id, registerGroup, registerNode, unregisterGroup, unregisterNode]);
694
753
 
695
754
  // Writing on every render would fight the drag, snapping a node back to the
696
755
  // position it was first given. Only an actual change to the prop moves it.
@@ -739,7 +798,10 @@ function FlowNode({
739
798
  const pressRef = useRef(onPress);
740
799
  pressRef.current = onPress;
741
800
  const press = useCallback(() => pressRef.current?.(), []);
742
- const drag = useMemo(() => Gesture.Pan().enabled(draggable && !locked).onBegin(() => {
801
+ const drag = useMemo(() => Gesture.Pan()
802
+ // A pinned node takes no drag at all: it is part of its container, and
803
+ // the container is what moves.
804
+ .enabled(draggable && !pinned && !locked).onBegin(() => {
743
805
  'worklet';
744
806
 
745
807
  const rect = rects.value[id];
@@ -754,8 +816,23 @@ function FlowNode({
754
816
  if (!rect) return;
755
817
  // Divided by the zoom, so the node keeps up with the finger rather
756
818
  // than with the graph coordinate the finger happens to be over.
757
- const x = start.value.x + event.translationX / zoom.value;
758
- const y = start.value.y + event.translationY / zoom.value;
819
+ let x = start.value.x + event.translationX / zoom.value;
820
+ let y = start.value.y + event.translationY / zoom.value;
821
+
822
+ /*
823
+ * Clamped before anything is written, so the box React is told about
824
+ * and the box on screen are the same one. Clamping after the write
825
+ * would leave the edges drawn to a position the node never reached.
826
+ */
827
+ if (confine && group) {
828
+ const box = rects.value[group];
829
+ if (box) {
830
+ const maxX = box.x + box.width - rect.width;
831
+ const maxY = box.y + box.height - rect.height;
832
+ x = x < box.x ? box.x : x > maxX ? maxX : x;
833
+ y = y < box.y ? box.y : y > maxY ? maxY : y;
834
+ }
835
+ }
759
836
  rects.value = {
760
837
  ...rects.value,
761
838
  [id]: {
@@ -770,7 +847,7 @@ function FlowNode({
770
847
 
771
848
  const rect = rects.value[id];
772
849
  if (rect) runOnJS(dragEnd)(rect.x, rect.y);
773
- }), [dragEnd, dragTo, draggable, id, locked, rects, start, zoom]);
850
+ }), [confine, dragEnd, dragTo, draggable, group, id, locked, pinned, rects, start, zoom]);
774
851
 
775
852
  // Raced with the drag rather than layered on top of it. A plain touch handler
776
853
  // would fire at the end of a drag too, so every rearrangement would also read
@@ -1052,6 +1129,7 @@ function FlowEdgePath({
1052
1129
  curvature = 0.25,
1053
1130
  boxes,
1054
1131
  handles,
1132
+ groups,
1055
1133
  tint,
1056
1134
  origin
1057
1135
  }) {
@@ -1072,13 +1150,22 @@ function FlowEdgePath({
1072
1150
  // to fit whenever the viewport and the laid-out size disagree, and an edge
1073
1151
  // drawn at a slightly different scale from the nodes misses them by a little
1074
1152
  // everywhere — which looks like bad routing rather than a bad transform.
1153
+ /*
1154
+ * A container's edge is a drawn border rather than the invisible edge of a
1155
+ * card, so an edge that lands exactly on it disappears under the stroke.
1156
+ * Standing a few points off it reads as a line arriving at the box.
1157
+ */
1158
+ const offA = groups.has(source.node) ? GROUP_EDGE_STANDOFF : 0;
1159
+ const offB = groups.has(target.node) ? GROUP_EDGE_STANDOFF : 0;
1160
+ const outA = standOff(rawA, sideA, offA);
1161
+ const outB = standOff(rawB, sideB, offB);
1075
1162
  const a = {
1076
- x: rawA.x + origin.x,
1077
- y: rawA.y + origin.y
1163
+ x: outA.x + origin.x,
1164
+ y: outA.y + origin.y
1078
1165
  };
1079
1166
  const b = {
1080
- x: rawB.x + origin.x,
1081
- y: rawB.y + origin.y
1167
+ x: outB.x + origin.x,
1168
+ y: outB.y + origin.y
1082
1169
  };
1083
1170
  const d = edgePath(variant, a, sideA, b, sideB, curvature, radius, gap);
1084
1171
  const dash = dashed || animated ? 6 : 0;
@@ -1135,12 +1222,16 @@ function FlowEdgeLayer() {
1135
1222
  boxes,
1136
1223
  edges,
1137
1224
  handles,
1225
+ groupIds,
1138
1226
  connection,
1139
1227
  layer,
1140
1228
  origin
1141
1229
  } = useFlow('Flow');
1142
1230
  const token = useCSSVariable('--color-muted-foreground');
1143
1231
  const tint = typeof token === 'string' ? token : '#878787';
1232
+
1233
+ // A set rather than the array: every edge asks about both of its ends.
1234
+ const groups = useMemo(() => new Set(groupIds), [groupIds]);
1144
1235
  const lineProps = useAnimatedProps(() => {
1145
1236
  const current = connection.value;
1146
1237
  if (current.active === 0) return {
@@ -1163,6 +1254,7 @@ function FlowEdgeLayer() {
1163
1254
  ...edge.props,
1164
1255
  boxes: boxes,
1165
1256
  handles: handles,
1257
+ groups: groups,
1166
1258
  tint: tint,
1167
1259
  origin: origin
1168
1260
  }, edge.key)), /*#__PURE__*/_jsx(AnimatedPath, {
@@ -1226,10 +1318,15 @@ function FlowGroup({
1226
1318
  // read per frame.
1227
1319
  const childIds = useMemo(() => collectNodeIds(children), [children]);
1228
1320
  const start = useSharedValue({});
1229
- const dragEnd = useCallback((x, y) => onNodeDragEnd?.(id, {
1230
- x,
1231
- y
1232
- }), [id, onNodeDragEnd]);
1321
+
1322
+ /**
1323
+ * Reports the group *and* everything that travelled with it. Reporting only
1324
+ * the container would leave a graph whose positions are driven from outside
1325
+ * holding stale coordinates for every node in it.
1326
+ */
1327
+ const dragEnd = useCallback(moved => {
1328
+ for (const [key, next] of Object.entries(moved)) onNodeDragEnd?.(key, next);
1329
+ }, [onNodeDragEnd]);
1233
1330
 
1234
1331
  /** Tells React where the group and everything in it got to. */
1235
1332
  const dragTo = useCallback(moved => {
@@ -1284,8 +1381,17 @@ function FlowGroup({
1284
1381
  }).onEnd(() => {
1285
1382
  'worklet';
1286
1383
 
1287
- const rect = rects.value[id];
1288
- if (rect) runOnJS(dragEnd)(rect.x, rect.y);
1384
+ const settled = {};
1385
+ const ids = Object.keys(start.value);
1386
+ for (let i = 0; i < ids.length; i += 1) {
1387
+ const key = ids[i];
1388
+ const rect = rects.value[key];
1389
+ if (rect) settled[key] = {
1390
+ x: rect.x,
1391
+ y: rect.y
1392
+ };
1393
+ }
1394
+ runOnJS(dragEnd)(settled);
1289
1395
  }), [childIds, dragEnd, dragTo, draggable, id, locked, rects, start, zoom]);
1290
1396
  const style = useAnimatedStyle(() => {
1291
1397
  const rect = rects.value[id];
@@ -1448,6 +1554,7 @@ function FlowMiniMap({
1448
1554
  const {
1449
1555
  rects,
1450
1556
  nodeIds,
1557
+ groupIds,
1451
1558
  translateX,
1452
1559
  translateY,
1453
1560
  zoom,
@@ -1457,6 +1564,9 @@ function FlowMiniMap({
1457
1564
  const tint = nodeColor ?? (typeof token === 'string' ? token : '#737373');
1458
1565
  const ringToken = useCSSVariable('--color-ring');
1459
1566
  const ring = typeof ringToken === 'string' ? ringToken : '#737373';
1567
+ const borderToken = useCSSVariable('--color-border');
1568
+ const outline = typeof borderToken === 'string' ? borderToken : '#404040';
1569
+ const groups = useMemo(() => new Set(groupIds), [groupIds]);
1460
1570
  const padding = 6;
1461
1571
 
1462
1572
  /** The graph's bounds and the scale that fits them in the box. Once a frame. */
@@ -1530,15 +1640,19 @@ function FlowMiniMap({
1530
1640
  children: /*#__PURE__*/_jsxs(Svg, {
1531
1641
  width: width,
1532
1642
  height: height,
1533
- children: [nodeIds.map(id => /*#__PURE__*/_jsx(MiniMapNode, {
1534
- id: id,
1535
- rects: rects,
1536
- fit: fit,
1537
- padding: padding,
1538
- color: tint,
1539
- width: width,
1540
- height: height
1541
- }, id)), /*#__PURE__*/_jsx(AnimatedRect, {
1643
+ children: [nodeIds.map(id => {
1644
+ const group = groups.has(id);
1645
+ return /*#__PURE__*/_jsx(MiniMapNode, {
1646
+ id: id,
1647
+ group: group,
1648
+ rects: rects,
1649
+ fit: fit,
1650
+ padding: padding,
1651
+ color: group ? outline : tint,
1652
+ width: width,
1653
+ height: height
1654
+ }, id);
1655
+ }), /*#__PURE__*/_jsx(AnimatedRect, {
1542
1656
  animatedProps: viewportProps,
1543
1657
  fill: "none",
1544
1658
  stroke: ring,
@@ -1552,6 +1666,7 @@ FlowMiniMap.displayName = 'Flow.MiniMap';
1552
1666
  FlowMiniMap.slot = 'overlay';
1553
1667
  function MiniMapNode({
1554
1668
  id,
1669
+ group = false,
1555
1670
  rects,
1556
1671
  fit,
1557
1672
  padding,
@@ -1579,6 +1694,16 @@ function MiniMapNode({
1579
1694
  height: Math.min(Math.max(rect.height * scale, 2), height)
1580
1695
  };
1581
1696
  });
1697
+ if (group) {
1698
+ return /*#__PURE__*/_jsx(AnimatedRect, {
1699
+ animatedProps: props,
1700
+ fill: "none",
1701
+ stroke: color,
1702
+ strokeWidth: 1,
1703
+ opacity: 0.9,
1704
+ rx: 2
1705
+ });
1706
+ }
1582
1707
  return /*#__PURE__*/_jsx(AnimatedRect, {
1583
1708
  animatedProps: props,
1584
1709
  fill: color,