Usage
DragSource and DragPreview connect dnd-kit to the design system without importing dnd-kit in @prepared911/ui. The remote owns DndContext, sensors, and useDraggable.
Item hosts.as="li" when list semantics need a native li but the row is not an Item.Item rows in ItemGroup (pass dnd-kit props to Item instead).DropTarget).:focus-visible, and sets data-disabled when disabled is true. While data-dragging, it shows a hover wash and a dashed inner outline (no layout shift) without opacity so labels stay readable; keyboard focus still shows the focus ring. A disabled host drops drag listeners and accessibility attributes from dragAttributes so it is not a tab stop.
Pass localized accessibility on DndContext and set aria-roledescription (and described-by targets) on dragAttributes. dnd-kit's built-in instructions and announcements are English only.
Use an icon-only Button with setActivatorNodeRef and the filtered listener props when only a handle should start the drag.