parseConditionals(rootElement) {
      Logger.debug("ConditionalManager: Parse conditionals (data-if, data-else-if, data-else)...");
      const nodes = rootElement.querySelectorAll("[data-if],[data-else-if],[data-else]");
      let currentGroup = [];
      const groups = [];
      nodes.forEach((node) => {
        if (node.hasAttribute("data-if")) {
          Logger.debug(`ConditionalManager: Found data-if in element:`, node);
          if (currentGroup.length) {
            groups.push(currentGroup);
          }
          currentGroup = [{
            element: node,
            type: "if",
            expression: node.getAttribute("data-if")
          }];
        } else if (node.hasAttribute("data-else-if")) {
          Logger.debug(`ConditionalManager: Found data-else-if in element:`, node);
          if (currentGroup.length && this.isAdjacentNode(currentGroup[currentGroup.length - 1].element, node)) {
            currentGroup.push({
              element: node,
              type: "else-if",
              expression: node.getAttribute("data-else-if")
            });
          } else {
            if (currentGroup.length) {
              groups.push(currentGroup);
            }
            currentGroup = [{
              element: node,
              type: "if",
              expression: node.getAttribute("data-else-if")
            }];
          }
        } else if (node.hasAttribute("data-else")) {
          Logger.debug(`ConditionalManager: Found data-else in element:`, node);
          if (currentGroup.length && this.isAdjacentNode(currentGroup[currentGroup.length - 1].element, node)) {
            currentGroup.push({
              element: node,
              type: "else",
              expression: null
            });
            groups.push(currentGroup);
            currentGroup = [];
          } else {
            Logger.warn("data-else without previous data-if or data-else-if", node);
          }
        }
      });
      if (currentGroup.length) {
        groups.push(currentGroup);
      }
      this.conditionalGroups = groups;
      groups.forEach((group) => this.updateConditionalGroup(group));
      this.setupDependencies(nodes);
    }
Parses and creates a map of conditional elements (`data-if`, `data-else-if`, and `data-else`)
within the given `rootElement`. Groups related conditional elements and attach 
them to the `conditionalGroups` property for dynamic evaluation.

This method identifies `data-if`, `data-else-if`, and `data-else` attributes in the DOM and
ensures their relationships are correctly established (for example, ensuring `data-else` elements have
preceding `data-if` or `data-else-if` elements). It also handles invalid sequences of attributes
and logs warnings for cases where a `data-else` doesn't follow valid prerequisites.

After parsing and grouping, conditional groups are evaluated, and their dependencies
are registered for reactive re-evaluation when relevant model paths change.

@method parseConditionals
@param {Element} rootElement - The root DOM element to scan for conditional attributes.
@public