# ANSI color codes
class Colors:
    RESET = '\033[0m'
    RED = '\033[91m'
    GREEN = '\033[92m'
    YELLOW = '\033[93m'
    BLUE = '\033[94m'
    MAGENTA = '\033[95m'
    CYAN = '\033[96m'
    WHITE = '\033[97m'
    BOLD = '\033[1m'

def hello():
    art = f"""
{Colors.CYAN}{Colors.BOLD}
    ██╗  ██╗███████╗██╗     ██╗      ██████╗ 
    ██║  ██║██╔════╝██║     ██║     ██╔═══██╗
    ███████║█████╗  ██║     ██║     ██║   ██║
    ██╔══██║██╔══╝  ██║     ██║     ██║   ██║
    ██║  ██║███████╗███████╗███████╗╚██████╔╝
    ╚═╝  ╚═╝╚══════╝╚══════╝╚══════╝ ╚═════╝ 
{Colors.RESET}
{Colors.YELLOW}    Welcome to ASCII Art Package! 🎨{Colors.RESET}
{Colors.GREEN}    Built with creativity and colors! ✨{Colors.RESET}
    """
    return art

def show_rainbow_text(text):
    colors = [Colors.RED, Colors.YELLOW, Colors.GREEN, Colors.CYAN, Colors.BLUE, Colors.MAGENTA]
    result = ""
    for i, char in enumerate(text):
        if char != ' ':
            result += colors[i % len(colors)] + char
        else:
            result += char
    result += Colors.RESET
    return result

def ascii_heart():
    heart = f"""
{Colors.RED}{Colors.BOLD}
       ♥♥♥♥♥       ♥♥♥♥♥
     ♥♥♥♥♥♥♥♥♥   ♥♥♥♥♥♥♥♥♥
    ♥♥♥♥♥♥♥♥♥♥♥ ♥♥♥♥♥♥♥♥♥♥♥
    ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
     ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
      ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
        ♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥
          ♥♥♥♥♥♥♥♥♥♥♥
            ♥♥♥♥♥♥♥
              ♥♥♥
               ♥
{Colors.RESET}"""
    return heart

def ascii_star():
    star = f"""
{Colors.YELLOW}{Colors.BOLD}
           ★
          ★★★
         ★★★★★
        ★★★★★★★
       ★★★★★★★★★
      ★★★★★★★★★★★
         ★★★★★
         ★★★★★
         ★★★★★
{Colors.RESET}"""
    return star

def ascii_rocket():
    rocket = f"""
{Colors.RED}       /\\{Colors.RESET}
{Colors.RED}      /  \\{Colors.RESET}
{Colors.RED}     |    |{Colors.RESET}
{Colors.CYAN}     |    |{Colors.RESET}
{Colors.CYAN}     |    |{Colors.RESET}
{Colors.YELLOW}    /|    |\\{Colors.RESET}
{Colors.YELLOW}   / |    | \\{Colors.RESET}
{Colors.MAGENTA}  /  |    |  \\{Colors.RESET}
{Colors.MAGENTA} |   |    |   |{Colors.RESET}
{Colors.RED}  \\_/      \\_/{Colors.RESET}
{Colors.YELLOW}   🔥  🔥  🔥{Colors.RESET}
    """
    return rocket

def ascii_coffee():
    coffee = f"""
{Colors.YELLOW}      ( (
       ) )
    ......{Colors.RESET}
{Colors.CYAN}   |      |]{Colors.RESET}
{Colors.CYAN}   \\      /{Colors.RESET}
{Colors.CYAN}    `----'{Colors.RESET}
    """
    return coffee

def ascii_tree():
    tree = f"""
{Colors.GREEN}{Colors.BOLD}
         *
        ***
       *****
      *******
     *********
    ***********
   *************
      *****
        ***
       *****
{Colors.RESET}
{Colors.YELLOW}      |||||{Colors.RESET}
{Colors.RED}    =========={Colors.RESET}
    """
    return tree

def ascii_wave():
    wave = f"""
{Colors.CYAN}{Colors.BOLD}
    ~  ~  ~  ~  ~  ~
  ~  ~  ~  ~  ~  ~  ~
~  ~  ~  ~  ~  ~  ~  ~
  ~  ~  ~  ~  ~  ~  ~
    ~  ~  ~  ~  ~  ~
{Colors.RESET}"""
    return wave
