"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const checkStrong = require("./lib-util-check-strong.cjs");
const encodeCharacterReference = require("./lib-util-encode-character-reference.cjs");
const encodeInfo = require("./lib-util-encode-info.cjs");
strong.peek = strongPeek;
function strong(node, _, state, info) {
  const marker = checkStrong.checkStrong(state);
  const exit = state.enter("strong");
  const tracker = state.createTracker(info);
  const before = tracker.move(marker + marker);
  let between = tracker.move(
    state.containerPhrasing(node, {
      after: marker,
      before,
      ...tracker.current()
    })
  );
  const betweenHead = between.charCodeAt(0);
  const open = encodeInfo.encodeInfo(
    info.before.charCodeAt(info.before.length - 1),
    betweenHead,
    marker
  );
  if (open.inside) {
    between = encodeCharacterReference.encodeCharacterReference(betweenHead) + between.slice(1);
  }
  const betweenTail = between.charCodeAt(between.length - 1);
  const close = encodeInfo.encodeInfo(info.after.charCodeAt(0), betweenTail, marker);
  if (close.inside) {
    between = between.slice(0, -1) + encodeCharacterReference.encodeCharacterReference(betweenTail);
  }
  const after = tracker.move(marker + marker);
  exit();
  state.attentionEncodeSurroundingInfo = {
    after: close.outside,
    before: open.outside
  };
  return before + between + after;
}
function strongPeek(_, _1, state) {
  return state.options.strong || "*";
}
exports.strong = strong;
//# sourceMappingURL=lib-handle-strong.cjs.map
