export function findNextSibling(el, selector) { let sibling = el.nextElementSibling; while (sibling) { if (sibling.matches(selector)) return sibling; sibling = sibling.nextElementSibling; } } export function findPreviousSibling(el, selector) { let sibling = el.previousElementSibling; while (sibling) { if (sibling.matches(selector)) return sibling; sibling = sibling.previousElementSibling; } } export function findFirstStartMarkerWithImmediateSiblingAsEnd(el, type) { const startMarkers = el.querySelectorAll(`[data-bits-command-${type}-start]`); for (const startMarker of startMarkers) { const endMarker = startMarker.nextElementSibling; if (endMarker && endMarker.hasAttribute(`data-bits-command-${type}-end`)) { return startMarker; } } return null; }