"use strict";
/* Socket Lib - Built with esbuild */
"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var divider_exports = {};
__export(divider_exports, {
  divider: () => divider,
  dividers: () => dividers,
  printDivider: () => printDivider,
  printDottedDivider: () => printDottedDivider,
  printSectionBreak: () => printSectionBreak,
  printThickDivider: () => printThickDivider,
  printThinDivider: () => printThinDivider,
  sectionBreak: () => sectionBreak
});
module.exports = __toCommonJS(divider_exports);
var import_logger = require("../logger/logger");
var import_format = require("../strings/format");
const logger = (0, import_logger.getDefaultLogger)();
function divider(options) {
  const opts = { __proto__: null, ...options };
  const { char = "\u2550", width = 55 } = opts;
  return (0, import_format.repeatString)(char, width);
}
const dividers = {
  /**
   * Thick double-line divider using `═`
   */
  thick: () => divider({ char: "\u2550" }),
  /**
   * Thin single-line divider using `─`
   */
  thin: () => divider({ char: "\u2500" }),
  /**
   * Double-line divider (alias for thick)
   */
  double: () => divider({ char: "\u2550" }),
  /**
   * Simple single dash divider using `-`
   */
  single: () => divider({ char: "-" }),
  /**
   * Dotted divider using `·`
   */
  dotted: () => divider({ char: "\xB7" }),
  /**
   * Dashed divider using `╌`
   */
  dashed: () => divider({ char: "\u254C" }),
  /**
   * Wave divider using `~`
   */
  wave: () => divider({ char: "~" }),
  /**
   * Star divider using `*`
   */
  star: () => divider({ char: "*" }),
  /**
   * Diamond divider using `◆`
   */
  diamond: () => divider({ char: "\u25C6" }),
  /**
   * Arrow divider using `→`
   */
  arrow: () => divider({ char: "\u2192" })
};
function printDivider(options) {
  logger.log(divider(options));
}
function printDottedDivider() {
  printDivider({ char: "\xB7" });
}
function printSectionBreak(options) {
  logger.log(sectionBreak(options));
}
function printThickDivider() {
  printDivider({ char: "\u2550" });
}
function printThinDivider() {
  printDivider({ char: "\u2500" });
}
function sectionBreak(options) {
  const div = divider(options);
  return `
${div}
`;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
  divider,
  dividers,
  printDivider,
  printDottedDivider,
  printSectionBreak,
  printThickDivider,
  printThinDivider,
  sectionBreak
});
