#!/usr/bin/env bash
# UI DEMO 04 — GLASS CARDS  |  no root needed
# Soft panels, modern card layout
export LC_ALL=C.UTF-8 2>/dev/null || true
[ -t 1 ] || { echo "Run in a real terminal"; exit 1; }

B=$'\e[38;5;39m'    # blue
P=$'\e[38;5;141m'   # purple
G=$'\e[38;5;80m'    # teal
W=$'\e[1;37m'
D=$'\e[2m'
N=$'\e[0m'
OK=$'\e[38;5;82m'
X=$'\e[38;5;244m'

card() {
  local title=$1
  shift
  printf '  %s┌────────────────────────────────────────────┐%s\n' "$X" "$N"
  printf '  %s│%s  %s%-40s%s %s│%s\n' "$X" "$N" "$W" "$title" "$N" "$X" "$N"
  printf '  %s├────────────────────────────────────────────┤%s\n' "$X" "$N"
  local line
  for line in "$@"; do
    printf '  %s│%s  %-40s %s│%s\n' "$X" "$N" "$line" "$X" "$N"
  done
  printf '  %s└────────────────────────────────────────────┘%s\n' "$X" "$N"
}

draw() {
  clear
  printf '\n  %s✦  Glass Panel  %s· demo 04%s\n\n' "$P" "$D" "$N"
  card "Overview" \
    "Host    edge-01" \
    "IP      203.0.113.40" \
    "Load    CPU 12%  RAM 35%"
  printf '\n'
  card "Services" \
    "Nginx     ${OK}ONLINE${N}     Xray  ${OK}ONLINE${N}" \
    "SSH-WS    ${OK}ONLINE${N}     Cert  ${OK}62 days${N}"
  printf '\n'
  printf '  %sActions%s\n' "$B" "$N"
  printf '  %s╭──────────────╮ ╭──────────────╮ ╭──────────────╮%s\n' "$X" "$N"
  printf '  %s│%s 1 Install    %s│%s %s│%s 2 Links      %s│%s %s│%s 3 Certs      %s│%s\n' "$X" "$N" "$X" "$N" "$X" "$N" "$X" "$N" "$X" "$N" "$X" "$N"
  printf '  %s╰──────────────╯ ╰──────────────╯ ╰──────────────╯%s\n' "$X" "$N"
  printf '  %s╭──────────────╮ ╭──────────────╮ ╭──────────────╮%s\n' "$X" "$N"
  printf '  %s│%s 4 Protocols  %s│%s %s│%s 5 Audit      %s│%s %s│%s 0 Exit       %s│%s\n' "$X" "$N" "$X" "$N" "$X" "$N" "$X" "$N" "$X" "$N" "$X" "$N"
  printf '  %s╰──────────────╯ ╰──────────────╯ ╰──────────────╯%s\n' "$X" "$N"
  printf '\n  %scard UI — soft frames, calm hierarchy%s\n' "$D" "$N"
}

main() {
  while true; do
    draw
    read -r -p "  choose › " c || exit 0
    case "$c" in
      0) clear; exit 0 ;;
      *) printf '  opened card %s\n' "$c"; sleep 0.6 ;;
    esac
  done
}
main

