Files
eewing ec317eb17c
CI / build (push) Has been skipped
CI / deploy (push) Successful in 1m11s
INIT
2026-02-18 15:17:47 -06:00

27 lines
888 B
JavaScript

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;
}