"use strict";
/* Socket Lib - Built with rolldown */
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_strings_format = require('../strings/format.js');
const require_logger_default = require('../logger/default.js');

//#region src/stdio/divider.ts
/**
* @file Console divider and separator utilities. Provides various line styles
*   for visual separation in CLI output.
*/
const logger = require_logger_default.getDefaultLogger();
/**
* Create a divider line with custom character and width. Returns a string of
* repeated characters for visual separation.
*
* @example
*   ;```ts
*   console.log(divider()) // Default: 55 '═' characters
*   console.log(divider({ char: '-', width: 40 }))
*   console.log(divider({ char: '·', width: 30 }))
*   ```
*
* @param options - Divider formatting options.
*
* @returns Divider string
*/
function divider(options) {
	const { char = "═", width = 55 } = {
		__proto__: null,
		...options
	};
	return /* @__PURE__ */ require_strings_format.repeatString(char, width);
}
/**
* Common divider style presets. Provides quick access to popular divider
* styles.
*
* @example
*   ;```ts
*   console.log(dividers.thick()) // ═══════...
*   console.log(dividers.thin()) // ───────...
*   console.log(dividers.dotted()) // ·······...
*   ```
*/
const dividers = {
	/**
	* Thick double-line divider using `═`
	*/
	thick: () => divider({ char: "═" }),
	/**
	* Thin single-line divider using `─`
	*/
	thin: () => divider({ char: "─" }),
	/**
	* Double-line divider (alias for thick)
	*/
	double: () => divider({ char: "═" }),
	/**
	* Simple single dash divider using `-`
	*/
	single: () => divider({ char: "-" }),
	/**
	* Dotted divider using `·`
	*/
	dotted: () => divider({ char: "·" }),
	/**
	* Dashed divider using `╌`
	*/
	dashed: () => divider({ char: "╌" }),
	/**
	* Wave divider using `~`
	*/
	wave: () => divider({ char: "~" }),
	/**
	* Star divider using `*`
	*/
	star: () => divider({ char: "*" }),
	/**
	* Diamond divider using `◆`
	*/
	diamond: () => divider({ char: "◆" }),
	/**
	* Arrow divider using `→`
	*/
	arrow: () => divider({ char: "→" })
};
/**
* Print a divider line directly to console.
*
* @example
*   ;```ts
*   printDivider() // Prints default divider
*   printDivider({ char: '─', width: 60 })
*   ```
*
* @param options - Divider formatting options.
*/
function printDivider(options) {
	logger.log(divider(options));
}
/**
* Print a dotted divider line. Convenience function using `·` character.
*
* @example
*   ;```ts
*   printDottedDivider()
*   // ·······················································
*   ```
*/
function printDottedDivider() {
	printDivider({ char: "·" });
}
/**
* Print a section break with spacing directly to console.
*
* @example
*   ;```ts
*   console.log('Previous section')
*   printSectionBreak()
*   console.log('Next section')
*   ```
*
* @param options - Divider formatting options.
*/
function printSectionBreak(options) {
	logger.log(sectionBreak(options));
}
/**
* Print a thick divider line (default style). Convenience function using `═`
* character.
*
* @example
*   ;```ts
*   printThickDivider()
*   // ═══════════════════════════════════════════════════
*   ```
*/
function printThickDivider() {
	printDivider({ char: "═" });
}
/**
* Print a thin divider line. Convenience function using `─` character.
*
* @example
*   ;```ts
*   printThinDivider()
*   // ───────────────────────────────────────────────────
*   ```
*/
function printThinDivider() {
	printDivider({ char: "─" });
}
/**
* Create a section break with blank lines before and after the divider. Useful
* for creating visual separation between major sections.
*
* @example
*   ;```ts
*   console.log('Previous section')
*   console.log(sectionBreak())
*   console.log('Next section')
*   // Output:
*   // Previous section
*   //
*   // ═══════════════════════════════════════════════════
*   //
*   // Next section
*   ```
*
* @param options - Divider formatting options.
*
* @returns Section break string with newlines
*/
function sectionBreak(options) {
	return `\n${divider(options)}\n`;
}

//#endregion
exports.divider = divider;
exports.dividers = dividers;
exports.printDivider = printDivider;
exports.printDottedDivider = printDottedDivider;
exports.printSectionBreak = printSectionBreak;
exports.printThickDivider = printThickDivider;
exports.printThinDivider = printThinDivider;
exports.sectionBreak = sectionBreak;