;; Extension — relative block reorder. (st-bootstrap-classes!) (content/bootstrap!) (define d (doc-append (doc-append (doc-append (doc-empty "d") (mk-text "a" "A")) (mk-text "b" "B")) (mk-text "c" "C"))) ;; ── move-before ── (content-test "move-before" (doc-ids (content/move-before d "c" "a")) (list "c" "a" "b")) (content-test "move-before mid" (doc-ids (content/move-before d "c" "b")) (list "a" "c" "b")) (content-test "move-before immutable" (doc-ids d) (list "a" "b" "c")) ;; ── move-after ── (content-test "move-after" (doc-ids (content/move-after d "a" "b")) (list "b" "a" "c")) (content-test "move-after last" (doc-ids (content/move-after d "a" "c")) (list "b" "c" "a")) ;; ── move-to-front / back ── (content-test "move-to-front" (doc-ids (content/move-to-front d "c")) (list "c" "a" "b")) (content-test "move-to-back" (doc-ids (content/move-to-back d "a")) (list "b" "c" "a")) (content-test "front already first" (doc-ids (content/move-to-front d "a")) (list "a" "b" "c")) ;; ── no-ops ── (content-test "missing id no-op" (doc-ids (content/move-before d "zzz" "a")) (list "a" "b" "c")) (content-test "missing target no-op" (doc-ids (content/move-before d "a" "zzz")) (list "a" "b" "c")) ;; ── render after move ── (content-test "render after move" (asHTML (content/move-after d "a" "c")) "
B
C
A
")