Replace Nestable with Sortable
Closes #2960.
This replaces the unmaintained Nestable library with Sortable. This is intended as a drop-in replacement, without modifying the existing template markup.
Currently Sortable is in vendor, matching our current behavior until we reorganize the JavaScript.
Sortable needs a little space between the last item of a first level nested list and the end of the containing parent list in order to match the behavior of Nestable (e.g., dragging the last nested item left into the parent list). That's why the padding has been added.
Might be overkill but this works for data-max-depth of 1-n, the old implementation was 1-2 (which is all Spotlight currently uses).
Great, thanks for testing. I think in terms of functionality it's nearly 1:1. There are styling differences on the ghost and the target destination, mostly around the current target being an outline only. Do you think that's a concern or are we willing to use Sortable's default styling there? I can get Alan's take on this if we need more input.
Otherwise, I have a bit more testing specifically in the Sir Trevor blocks I'd like to do and maybe some clean-up. Then I'll propose this for real.
@taylor-steve I'm not concerned about the styling changes, but does seem worth running by Alan.
Noting that nobody had concerns about the difference in styling. I do think it may be prudent to have one or two folks evaluate the ergonomics of nesting (e.g., feature pages). It has a slightly different feel than nestable, but I think it's quite close.
Once we're ready to move to import maps we could pin Sortable and drop the local file if we wished.