export const RESET_CODE = "\x1b[0m";

export const SYMBOLS = {
  right: "\uE0B0",
  left_rounded: "\uE0B6",
  right_rounded: "\uE0B4",
  branch: "⎇",
  model: "✱",
  git_clean: "✓",
  git_dirty: "●",
  git_conflicts: "⚠",
  git_ahead: "↑",
  git_behind: "↓",
  git_worktree: "⧉",
  git_tag: "⌂",
  git_sha: "♯",
  git_upstream: "→",
  git_stash: "⧇",
  git_time: "◷",
  session_cost: "§",
  block_cost: "◱",
  today_cost: "☉",
  context_time: "◔",
  metrics_response: "⧖",
  metrics_last_response: "Δ",
  metrics_duration: "⧗",
  metrics_messages: "◆",
  metrics_lines_added: "+",
  metrics_lines_removed: "-",
  metrics_burn: "↗",
  version: "◈",
  bar_filled: "▪",
  bar_empty: "▫",
  env: "⚙",
  session_id: "⌗",
  weekly_cost: "◑",
  dir: "📁",
  activity: "⚡",
  agent: "◇",
  thinking: "✦",
  cache_timer: "◴",
} as const;

export const BOX_CHARS = {
  topLeft: "╭",
  topRight: "╮",
  bottomLeft: "╰",
  bottomRight: "╯",
  horizontal: "─",
  vertical: "│",
  teeLeft: "├",
  teeRight: "┤",
} as const;

export const BOX_CHARS_TEXT = {
  topLeft: "+",
  topRight: "+",
  bottomLeft: "+",
  bottomRight: "+",
  horizontal: "-",
  vertical: "|",
  teeLeft: "+",
  teeRight: "+",
} as const;

import type { BoxChars } from "../tui/types";

export const BOX_PRESETS: Record<string, BoxChars> = {
  rounded: BOX_CHARS,
  square: {
    topLeft: "┌",
    topRight: "┐",
    bottomLeft: "└",
    bottomRight: "┘",
    horizontal: "─",
    vertical: "│",
    teeLeft: "├",
    teeRight: "┤",
  },
  heavy: {
    topLeft: "┏",
    topRight: "┓",
    bottomLeft: "┗",
    bottomRight: "┛",
    horizontal: "━",
    vertical: "┃",
    teeLeft: "┣",
    teeRight: "┫",
  },
  double: {
    topLeft: "╔",
    topRight: "╗",
    bottomLeft: "╚",
    bottomRight: "╝",
    horizontal: "═",
    vertical: "║",
    teeLeft: "╠",
    teeRight: "╣",
  },
  dashed: {
    topLeft: "╭",
    topRight: "╮",
    bottomLeft: "╰",
    bottomRight: "╯",
    horizontal: "┄",
    vertical: "┊",
    teeLeft: "├",
    teeRight: "┤",
  },
  "heavy-dashed": {
    topLeft: "┏",
    topRight: "┓",
    bottomLeft: "┗",
    bottomRight: "┛",
    horizontal: "┅",
    vertical: "┇",
    teeLeft: "┣",
    teeRight: "┫",
  },
  mixed: {
    topLeft: "┍",
    topRight: "┑",
    bottomLeft: "┕",
    bottomRight: "┙",
    horizontal: "━",
    vertical: "│",
    teeLeft: "┝",
    teeRight: "┥",
  },
  ascii: BOX_CHARS_TEXT,
  invisible: {
    topLeft: " ",
    topRight: " ",
    bottomLeft: " ",
    bottomRight: " ",
    horizontal: " ",
    vertical: " ",
    teeLeft: " ",
    teeRight: " ",
  },
};

export const TEXT_SYMBOLS = {
  right: "\uE0B0",
  left_rounded: "\uE0B6",
  right_rounded: "\uE0B4",
  branch: "~",
  model: "M",
  git_clean: "=",
  git_dirty: "*",
  git_conflicts: "!",
  git_ahead: "^",
  git_behind: "v",
  git_worktree: "W",
  git_tag: "T",
  git_sha: "#",
  git_upstream: ">>",
  git_stash: "S",
  git_time: "@",
  session_cost: "S",
  block_cost: "B",
  today_cost: "D",
  context_time: "C",
  metrics_response: "R",
  metrics_last_response: "L",
  metrics_duration: "T",
  metrics_messages: "#",
  metrics_lines_added: "+",
  metrics_lines_removed: "-",
  metrics_burn: "~/h",
  version: "V",
  bar_filled: "=",
  bar_empty: "-",
  env: "$",
  session_id: "#",
  weekly_cost: "W",
  dir: "D",
  activity: "A",
  agent: "&",
  thinking: "T",
  cache_timer: "C!",
} as const;
