@squeed/flow-sdk 2.0.26 → 2.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -520,13 +520,34 @@ engine.swapGridNodes(sourceId, targetId); // Optional programmatic swap
520
520
  engine.setNodeGridMode(false); // Restore pre-grid positions and edge visibility
521
521
  ```
522
522
 
523
- Drop a node onto a sibling to exchange their slots; dropping outside or pressing
524
- Escape cancels the drag. Read-only mode prevents swaps. The original JSON, edges
523
+ Drop a node onto a sibling's center to exchange their slots. Drop near its left
524
+ or right edge to insert into that row, or near its top or bottom edge to add a
525
+ row. An insertion line previews the destination without saving until release.
526
+ The insertion target extends 24 screen pixels outside the edge, including when
527
+ zoomed out or embedded in a scaled parent. Interior targets remain capped at a
528
+ quarter of the node dimension; the insertion line stays 3 screen pixels thick.
529
+ Start the drag on a title, icon, or non-interactive surface; embedded editors and
530
+ form controls retain their own pointer behavior.
531
+ Dropping outside the canvas or pressing Escape cancels the drag. Shift-drag
532
+ continues to use the host's transfer/grouping callback. A valid ordinary boundary
533
+ insertion takes priority over that callback, so a Grid member can be a sibling
534
+ insertion target without transferring the dragged node into its document.
535
+ Read-only mode prevents swaps and insertion. The original JSON, edges
525
536
  and parent relationships are not changed. Sibling grids preserve parent groups;
526
537
  swaps across parents are rejected. Sibling sets containing persistent pinned
527
538
  nodes are not rearranged or swapped. Grid order survives layout/size changes
528
539
  while the mode is active. It is renderer-local and is not saved in the document.
529
540
 
541
+ Explicit row membership uses
542
+ `options.adjustment.sections[sectionId].members: string[][]`, with `canvas` for
543
+ top-level siblings and the parent node ID for nested sibling groups. It applies
544
+ with or without Fill and independently of adjustment-handle visibility. Existing
545
+ rows retain their relative membership; newly arriving nodes use the column
546
+ setting for additional rows and missing nodes are omitted. Member IDs must be
547
+ nonempty strings, unique within a section. Row and column proportions continue
548
+ to use the existing `rows` and `columns` arrays. Hosts can persist the updated
549
+ options through their existing canvas configuration save path, as Squeed does.
550
+
530
551
  The bottom toolbar's **Collision mode** button uses this same API. While active,
531
552
  it shows the existing compact gap slider and a **Fill** toggle. These controls
532
553
  stay synchronized with programmatic mode changes.