import { c as _c } from "react/compiler-runtime";
import { extname } from 'path';
import React, { Suspense, use, useMemo } from 'react';
import { Ansi, Text } from '../../ink.js';
import { getCliHighlightPromise } from '../../utils/cliHighlight.js';
import { logForDebugging } from '../../utils/debug.js';
import { convertLeadingTabsToSpaces } from '../../utils/file.js';
import { hashPair } from '../../utils/hash.js';
type Props = {
  code: string;
  filePath: string;
  dim?: boolean;
  skipColoring?: boolean;
};

// Module-level highlight cache — hl.highlight() is the hot cost on virtual-
// scroll remounts. useMemo doesn't survive unmount→remount. Keyed by hash
// of code+language to avoid retaining full source strings (#24180 RSS fix).
const HL_CACHE_MAX = 500;
const hlCache = new Map<string, string>();
function cachedHighlight(hl: NonNullable<Awaited<ReturnType<typeof getCliHighlightPromise>>>, code: string, language: string): string {
  const key = hashPair(language, code);
  const hit = hlCache.get(key);
  if (hit !== undefined) {
    hlCache.delete(key);
    hlCache.set(key, hit);
    return hit;
  }
  const out = hl.highlight(code, {
    language
  });
  if (hlCache.size >= HL_CACHE_MAX) {
    const first = hlCache.keys().next().value;
    if (first !== undefined) hlCache.delete(first);
  }
  hlCache.set(key, out);
  return out;
}
export function HighlightedCodeFallback(t0) {
  const $ = _c(20);
  const {
    code,
    filePath,
    dim: t1,
    skipColoring: t2
  } = t0;
  const dim = t1 === undefined ? false : t1;
  const skipColoring = t2 === undefined ? false : t2;
  let t3;
  if ($[0] !== code) {
    t3 = convertLeadingTabsToSpaces(code);
    $[0] = code;
    $[1] = t3;
  } else {
    t3 = $[1];
  }
  const codeWithSpaces = t3;
  if (skipColoring) {
    let t4;
    if ($[2] !== codeWithSpaces) {
      t4 = <Ansi>{codeWithSpaces}</Ansi>;
      $[2] = codeWithSpaces;
      $[3] = t4;
    } else {
      t4 = $[3];
    }
    let t5;
    if ($[4] !== dim || $[5] !== t4) {
      t5 = <Text dimColor={dim}>{t4}</Text>;
      $[4] = dim;
      $[5] = t4;
      $[6] = t5;
    } else {
      t5 = $[6];
    }
    return t5;
  }
  let t4;
  if ($[7] !== filePath) {
    t4 = extname(filePath).slice(1);
    $[7] = filePath;
    $[8] = t4;
  } else {
    t4 = $[8];
  }
  const language = t4;
  let t5;
  if ($[9] !== codeWithSpaces) {
    t5 = <Ansi>{codeWithSpaces}</Ansi>;
    $[9] = codeWithSpaces;
    $[10] = t5;
  } else {
    t5 = $[10];
  }
  let t6;
  if ($[11] !== codeWithSpaces || $[12] !== language) {
    t6 = <Highlighted codeWithSpaces={codeWithSpaces} language={language} />;
    $[11] = codeWithSpaces;
    $[12] = language;
    $[13] = t6;
  } else {
    t6 = $[13];
  }
  let t7;
  if ($[14] !== t5 || $[15] !== t6) {
    t7 = <Suspense fallback={t5}>{t6}</Suspense>;
    $[14] = t5;
    $[15] = t6;
    $[16] = t7;
  } else {
    t7 = $[16];
  }
  let t8;
  if ($[17] !== dim || $[18] !== t7) {
    t8 = <Text dimColor={dim}>{t7}</Text>;
    $[17] = dim;
    $[18] = t7;
    $[19] = t8;
  } else {
    t8 = $[19];
  }
  return t8;
}
function Highlighted(t0) {
  const $ = _c(10);
  const {
    codeWithSpaces,
    language
  } = t0;
  let t1;
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
    t1 = getCliHighlightPromise();
    $[0] = t1;
  } else {
    t1 = $[0];
  }
  const hl = use(t1);
  let t2;
  if ($[1] !== codeWithSpaces || $[2] !== hl || $[3] !== language) {
    bb0: {
      if (!hl) {
        t2 = codeWithSpaces;
        break bb0;
      }
      let highlightLang = "markdown";
      if (language) {
        if (hl.supportsLanguage(language)) {
          highlightLang = language;
        } else {
          logForDebugging(`Language not supported while highlighting code, falling back to markdown: ${language}`);
        }
      }
      ;
      try {
        t2 = cachedHighlight(hl, codeWithSpaces, highlightLang);
      } catch (t3) {
        const e = t3;
        if (e instanceof Error && e.message.includes("Unknown language")) {
          logForDebugging(`Language not supported while highlighting code, falling back to markdown: ${e}`);
          let t4;
          if ($[5] !== codeWithSpaces || $[6] !== hl) {
            t4 = cachedHighlight(hl, codeWithSpaces, "markdown");
            $[5] = codeWithSpaces;
            $[6] = hl;
            $[7] = t4;
          } else {
            t4 = $[7];
          }
          t2 = t4;
          break bb0;
        }
        t2 = codeWithSpaces;
      }
    }
    $[1] = codeWithSpaces;
    $[2] = hl;
    $[3] = language;
    $[4] = t2;
  } else {
    t2 = $[4];
  }
  const out = t2;
  let t3;
  if ($[8] !== out) {
    t3 = <Ansi>{out}</Ansi>;
    $[8] = out;
    $[9] = t3;
  } else {
    t3 = $[9];
  }
  return t3;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHRuYW1lIiwiUmVhY3QiLCJTdXNwZW5zZSIsInVzZSIsInVzZU1lbW8iLCJBbnNpIiwiVGV4dCIsImdldENsaUhpZ2hsaWdodFByb21pc2UiLCJsb2dGb3JEZWJ1Z2dpbmciLCJjb252ZXJ0TGVhZGluZ1RhYnNUb1NwYWNlcyIsImhhc2hQYWlyIiwiUHJvcHMiLCJjb2RlIiwiZmlsZVBhdGgiLCJkaW0iLCJza2lwQ29sb3JpbmciLCJITF9DQUNIRV9NQVgiLCJobENhY2hlIiwiTWFwIiwiY2FjaGVkSGlnaGxpZ2h0IiwiaGwiLCJOb25OdWxsYWJsZSIsIkF3YWl0ZWQiLCJSZXR1cm5UeXBlIiwibGFuZ3VhZ2UiLCJrZXkiLCJoaXQiLCJnZXQiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJzZXQiLCJvdXQiLCJoaWdobGlnaHQiLCJzaXplIiwiZmlyc3QiLCJrZXlzIiwibmV4dCIsInZhbHVlIiwiSGlnaGxpZ2h0ZWRDb2RlRmFsbGJhY2siLCJ0MCIsIiQiLCJfYyIsInQxIiwidDIiLCJ0MyIsImNvZGVXaXRoU3BhY2VzIiwidDQiLCJ0NSIsInNsaWNlIiwidDYiLCJ0NyIsInQ4IiwiSGlnaGxpZ2h0ZWQiLCJTeW1ib2wiLCJmb3IiLCJiYjAiLCJoaWdobGlnaHRMYW5nIiwic3VwcG9ydHNMYW5ndWFnZSIsImUiLCJFcnJvciIsIm1lc3NhZ2UiLCJpbmNsdWRlcyJdLCJzb3VyY2VzIjpbIkZhbGxiYWNrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHRuYW1lIH0gZnJvbSAncGF0aCdcbmltcG9ydCBSZWFjdCwgeyBTdXNwZW5zZSwgdXNlLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBbnNpLCBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgZ2V0Q2xpSGlnaGxpZ2h0UHJvbWlzZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NsaUhpZ2hsaWdodC5qcydcbmltcG9ydCB7IGxvZ0ZvckRlYnVnZ2luZyB9IGZyb20gJy4uLy4uL3V0aWxzL2RlYnVnLmpzJ1xuaW1wb3J0IHsgY29udmVydExlYWRpbmdUYWJzVG9TcGFjZXMgfSBmcm9tICcuLi8uLi91dGlscy9maWxlLmpzJ1xuaW1wb3J0IHsgaGFzaFBhaXIgfSBmcm9tICcuLi8uLi91dGlscy9oYXNoLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBjb2RlOiBzdHJpbmdcbiAgZmlsZVBhdGg6IHN0cmluZ1xuICBkaW0/OiBib29sZWFuXG4gIHNraXBDb2xvcmluZz86IGJvb2xlYW5cbn1cblxuLy8gTW9kdWxlLWxldmVsIGhpZ2hsaWdodCBjYWNoZSDigJQgaGwuaGlnaGxpZ2h0KCkgaXMgdGhlIGhvdCBjb3N0IG9uIHZpcnR1YWwtXG4vLyBzY3JvbGwgcmVtb3VudHMuIHVzZU1lbW8gZG9lc24ndCBzdXJ2aXZlIHVubW91bnTihpJyZW1vdW50LiBLZXllZCBieSBoYXNoXG4vLyBvZiBjb2RlK2xhbmd1YWdlIHRvIGF2b2lkIHJldGFpbmluZyBmdWxsIHNvdXJjZSBzdHJpbmdzICgjMjQxODAgUlNTIGZpeCkuXG5jb25zdCBITF9DQUNIRV9NQVggPSA1MDBcbmNvbnN0IGhsQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpXG5mdW5jdGlvbiBjYWNoZWRIaWdobGlnaHQoXG4gIGhsOiBOb25OdWxsYWJsZTxBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIGdldENsaUhpZ2hsaWdodFByb21pc2U+Pj4sXG4gIGNvZGU6IHN0cmluZyxcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGtleSA9IGhhc2hQYWlyKGxhbmd1YWdlLCBjb2RlKVxuICBjb25zdCBoaXQgPSBobENhY2hlLmdldChrZXkpXG4gIGlmIChoaXQgIT09IHVuZGVmaW5lZCkge1xuICAgIGhsQ2FjaGUuZGVsZXRlKGtleSlcbiAgICBobENhY2hlLnNldChrZXksIGhpdClcbiAgICByZXR1cm4gaGl0XG4gIH1cbiAgY29uc3Qgb3V0ID0gaGwuaGlnaGxpZ2h0KGNvZGUsIHsgbGFuZ3VhZ2UgfSlcbiAgaWYgKGhsQ2FjaGUuc2l6ZSA+PSBITF9DQUNIRV9NQVgpIHtcbiAgICBjb25zdCBmaXJzdCA9IGhsQ2FjaGUua2V5cygpLm5leHQoKS52YWx1ZVxuICAgIGlmIChmaXJzdCAhPT0gdW5kZWZpbmVkKSBobENhY2hlLmRlbGV0ZShmaXJzdClcbiAgfVxuICBobENhY2hlLnNldChrZXksIG91dClcbiAgcmV0dXJuIG91dFxufVxuXG5leHBvcnQgZnVuY3Rpb24gSGlnaGxpZ2h0ZWRDb2RlRmFsbGJhY2soe1xuICBjb2RlLFxuICBmaWxlUGF0aCxcbiAgZGltID0gZmFsc2UsXG4gIHNraXBDb2xvcmluZyA9IGZhbHNlLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBjb2RlV2l0aFNwYWNlcyA9IGNvbnZlcnRMZWFkaW5nVGFic1RvU3BhY2VzKGNvZGUpXG4gIGlmIChza2lwQ29sb3JpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFRleHQgZGltQ29sb3I9e2RpbX0+XG4gICAgICAgIDxBbnNpPntjb2RlV2l0aFNwYWNlc308L0Fuc2k+XG4gICAgICA8L1RleHQ+XG4gICAgKVxuICB9XG4gIGNvbnN0IGxhbmd1YWdlID0gZXh0bmFtZShmaWxlUGF0aCkuc2xpY2UoMSlcbiAgcmV0dXJuIChcbiAgICA8VGV4dCBkaW1Db2xvcj17ZGltfT5cbiAgICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PEFuc2k+e2NvZGVXaXRoU3BhY2VzfTwvQW5zaT59PlxuICAgICAgICA8SGlnaGxpZ2h0ZWQgY29kZVdpdGhTcGFjZXM9e2NvZGVXaXRoU3BhY2VzfSBsYW5ndWFnZT17bGFuZ3VhZ2V9IC8+XG4gICAgICA8L1N1c3BlbnNlPlxuICAgIDwvVGV4dD5cbiAgKVxufVxuXG5mdW5jdGlvbiBIaWdobGlnaHRlZCh7XG4gIGNvZGVXaXRoU3BhY2VzLFxuICBsYW5ndWFnZSxcbn06IHtcbiAgY29kZVdpdGhTcGFjZXM6IHN0cmluZ1xuICBsYW5ndWFnZTogc3RyaW5nXG59KTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgY29uc3QgaGwgPSB1c2UoZ2V0Q2xpSGlnaGxpZ2h0UHJvbWlzZSgpKVxuICBjb25zdCBvdXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWhsKSByZXR1cm4gY29kZVdpdGhTcGFjZXNcbiAgICBsZXQgaGlnaGxpZ2h0TGFuZyA9ICdtYXJrZG93bidcbiAgICBpZiAobGFuZ3VhZ2UpIHtcbiAgICAgIGlmIChobC5zdXBwb3J0c0xhbmd1YWdlKGxhbmd1YWdlKSkge1xuICAgICAgICBoaWdobGlnaHRMYW5nID0gbGFuZ3VhZ2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ0ZvckRlYnVnZ2luZyhcbiAgICAgICAgICBgTGFuZ3VhZ2Ugbm90IHN1cHBvcnRlZCB3aGlsZSBoaWdobGlnaHRpbmcgY29kZSwgZmFsbGluZyBiYWNrIHRvIG1hcmtkb3duOiAke2xhbmd1YWdlfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjYWNoZWRIaWdobGlnaHQoaGwsIGNvZGVXaXRoU3BhY2VzLCBoaWdobGlnaHRMYW5nKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5tZXNzYWdlLmluY2x1ZGVzKCdVbmtub3duIGxhbmd1YWdlJykpIHtcbiAgICAgICAgbG9nRm9yRGVidWdnaW5nKFxuICAgICAgICAgIGBMYW5ndWFnZSBub3Qgc3VwcG9ydGVkIHdoaWxlIGhpZ2hsaWdodGluZyBjb2RlLCBmYWxsaW5nIGJhY2sgdG8gbWFya2Rvd246ICR7ZX1gLFxuICAgICAgICApXG4gICAgICAgIHJldHVybiBjYWNoZWRIaWdobGlnaHQoaGwsIGNvZGVXaXRoU3BhY2VzLCAnbWFya2Rvd24nKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGNvZGVXaXRoU3BhY2VzXG4gICAgfVxuICB9LCBbY29kZVdpdGhTcGFjZXMsIGxhbmd1YWdlLCBobF0pXG4gIHJldHVy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
