#!/usr/bin/env bash
set -euo pipefail

summary_box() {
  local width=60
  local border
  border=$(printf '─%.0s' $(seq 1 $width))
  echo ""
  echo "  ${CYAN}${border}${RESET}"
  while [ $# -gt 0 ]; do
    printf "  ${CYAN}│${RESET} %-28s %s\n" "$1" "$2"
    shift 2
  done
  echo "  ${CYAN}${border}${RESET}"
  echo ""
}

ask_password_visible() {
  local label=$1
  local default_password="$(openssl rand -base64 12)"
  local value

  printf "  ${CYAN}?${RESET} $label [%s]: " "$default_password" >&2
  read -r value </dev/tty
  
  echo "${value:-$default_password}"
}

admin_pass=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")

summary_box "Password:" "${admin_pass}"

