def METHOD_NAME(
    curr_selected: int,
    start_index: int = 0,
    max_per_page: int = 10,
    indent: str = "    ",
) -> int:
    if curr_selected < 0 or curr_selected >= len(options):
        curr_selected = 0
    menus._print(title)
    menus.line_down(2)
    num_lines_rendered = 4  # 4 "extra" lines for header + footer
    for i in range(start_index, start_index + max_per_page):
        if i >= len(options):
            break
        name = options[i]
        if i == curr_selected:
            color = "\x1b[38;5;40m"
            bold = "\x1b[1m"
            reset = "\x1b[0m"
            menus._print(f"{indent}{color}{bold}{name}{reset}\x1b[1E")
        else:
            menus._print(f"{indent}{name}\x1b[1E")
        num_lines_rendered += 1
    menus.line_down(1)
    control_str = "[ARROW-KEYS] Navigate\t[ENTER] Select\t[Q] Quit"
    menus._print(control_str)
    menus.line_up(num_lines_rendered - 1)
    menus._show()
    return num_lines_rendered