Usage
| Need | Use |
|---|---|
| Drag, resize, scrub, reorder, or press-and-hold on a structural surface with a value along one axis | ManipulationSurface |
A native control (button, link) with click, hover, and InteractableProps | Button or Link (a future ui-core-style Interactable wrapper is reserved for polymorphic hosts, not manipulation) |
| File drop onto a target | DropTarget when it ships; not ManipulationSurface |
ManipulationSurface is not a button and not the parent of Button or Link.
The parent is the track by default, so a drag across the split container moves the value by the share of the container travelled. In RTL the inline axis grows to the left.
With Absolute tracking the host is the track and the value is the pointer's position, including the press.
A block-axis slider per row with pixelsPerStep set to the row height. Keep the dragged row where it is in the DOM during the drag and commit the new order on onDraggingChange(false, ...); moving the host releases pointer capture.
onHold fires after holdDelay for a held pointer, or for Enter or Space held.
Two-dimensional drag, drop targets, drag previews, and auto-scroll. A Panel, Slider, RangeSlider, or sortable list builds on this boundary as its own component.