DnD у evo-ui - це спільний контракт для reorder-поверхонь у manager modules: таби, вкладені поля, таблиці і опції всередині модалок. Канонічні технічні деталі лежать у DnD And Reorder Contract та DnD Implementation Guide.
x-evo::reorder-railдля стрілок вгору/вниз і drag handle.x-evo::dnd-option-listтаx-evo::dnd-option-rowдля value/label опцій.- CSS для
.evo-ui-dnd-row,.evo-ui-dnd-group-row,.evo-ui-dnd-option-row, placeholder і compact actions. - Native JavaScript runtime
window.EvoUI.initDnd(...).
- Стабільні
_uidдля табів, рядків і опцій. - Livewire methods, наприклад
sortTabByUid,sortFieldByUid,sortOptionByUid. - Збереження схеми, права доступу і доменні перевірки.
Для опцій у модалці handle є immediate native drag starter, а рядок є джерелом payload/drop target. Не дозволяйте інпутам ставати drag source.
<x-evo::dnd-option-list method="sortOptionByUid">
<x-evo::dnd-option-row
:uid="$option['_uid']"
:index="$index"
option-value="{{ $option['value'] }}"
option-label="{{ $option['label'] }}"
/>
</x-evo::dnd-option-list>Після міграції consumer має пройти smoke: drag між рядками, drag між табами, ручні стрілки, save dirty state і модалку з великою кількістю опцій.