{"version":3,"file":"styling.cjs","sources":["../src/styling-module.ts"],"sourcesContent":["/**\n * @fileoverview Styling Module - Advanced visual features for Better Logger\n * @version 0.0.1\n * \n * This module provides advanced styling features including SVG support, CSS animations,\n * themed banners, and visual enhancements for console logging.\n */\n\n// Import core logger\nimport { Logger } from './Logger.js';\n\n// Styling imports\nimport {\n    StyleBuilder,\n    StylePresets,\n    THEME_PRESETS,\n    THEME_BANNERS,\n    displayInitBanner,\n    BANNER_VARIANTS\n} from './styling/index.js';\n\n// Types\nimport type {\n    ThemeVariant,\n    BannerType,\n    StyleOptions\n} from './types/index.js';\n\n/**\n * Enhanced Logger with advanced styling capabilities\n * \n * @example\n * ```typescript\n * import { StyledLogger } from '@mks2508/better-logger/styling';\n * \n * const logger = new StyledLogger();\n * logger.setTheme('neon');\n * logger.logAnimated('🌟 Animated message!');\n * logger.logWithSVG('Custom SVG Logo', svgContent);\n * ```\n */\nexport class StyledLogger extends Logger {\n    /**\n     * Log with SVG background image\n     * \n     * @param message - The message to log\n     * @param svgContent - SVG content as string (optional)\n     * @param options - Styling options\n     * \n     * @example\n     * ```typescript\n     * logger.logWithSVG('My App', '<svg>...</svg>', {\n     *   width: 400,\n     *   height: 80,\n     *   padding: '40px 200px'\n     * });\n     * ```\n     */\n    logWithSVG(message: string, svgContent?: string, options: StyleOptions = {}): void {\n        super.logWithSVG(message, svgContent, options);\n    }\n\n    /**\n     * Log with animated background gradient\n     * \n     * @param message - The message to log  \n     * @param duration - Animation duration in seconds\n     * \n     * @example\n     * ```typescript\n     * logger.logAnimated('🚀 Loading...', 2);\n     * ```\n     */\n    logAnimated(message: string, duration: number = 3): void {\n        super.logAnimated(message, duration);\n    }\n\n    /**\n     * Display banner with specified type\n     * \n     * @param bannerType - Type of banner to display\n     * \n     * @example\n     * ```typescript\n     * logger.showBanner('animated');\n     * ```\n     */\n    showBanner(bannerType?: BannerType): void {\n        super.showBanner(bannerType);\n    }\n\n    /**\n     * Set banner type for initialization display\n     * \n     * @param bannerType - Type of banner to display\n     * \n     * @example\n     * ```typescript\n     * logger.setBannerType('svg');\n     * ```\n     */\n    setBannerType(bannerType: BannerType): void {\n        super.setBannerType(bannerType);\n    }\n\n    /**\n     * Sets the logger theme with visual banner\n     * \n     * @param theme - Theme variant to apply\n     * \n     * @example\n     * ```typescript\n     * logger.setTheme('cyberpunk'); // Shows themed banner\n     * ```\n     */\n    setTheme(theme: ThemeVariant): void {\n        super.setTheme(theme);\n    }\n}\n\n// Create singleton instance\nconst styledLogger = new StyledLogger();\n\n/**\n * Utility functions for creating custom styles\n * \n * @example\n * ```typescript\n * import { createStyle, StyleBuilder } from '@mks2508/better-logger/styling';\n * \n * const myStyle = createStyle()\n *   .bg('linear-gradient(45deg, #ff6b6b, #feca57)')\n *   .color('white')\n *   .padding('10px')\n *   .build();\n * \n * console.log('%cCustom Message', myStyle);\n * ```\n */\nexport const createStyle = () => new StyleBuilder();\n\n/**\n * Pre-built style presets\n * \n * @example\n * ```typescript\n * import { stylePresets } from '@mks2508/better-logger/styling';\n * \n * console.log('%cSuccess!', stylePresets.success);\n * console.log('%cError!', stylePresets.error);\n * ```\n */\nexport const stylePresets = {\n    success: StylePresets.success().build(),\n    error: StylePresets.error().build(),\n    warning: StylePresets.warning().build(),\n    info: StylePresets.info().build(),\n    accent: StylePresets.accent().build(),\n};\n\n/**\n * Available themes for the logger\n * \n * @example\n * ```typescript\n * import { themes } from '@mks2508/better-logger/styling';\n * \n * console.log('Available themes:', Object.keys(themes));\n * ```\n */\nexport const themes = Object.keys(THEME_PRESETS);\n\n/**\n * Available banner types\n * \n * @example\n * ```typescript\n * import { bannerTypes } from '@mks2508/better-logger/styling';\n * \n * console.log('Available banners:', bannerTypes);\n * ```\n */\nexport const bannerTypes = Object.keys(BANNER_VARIANTS);\n\n/**\n * Display initialization banner\n * \n * @param bannerType - Type of banner to display\n * \n * @example\n * ```typescript\n * import { showInitBanner } from '@mks2508/better-logger/styling';\n * \n * showInitBanner('animated');\n * ```\n */\nexport const showInitBanner = (bannerType?: BannerType) => {\n    displayInitBanner(bannerType);\n};\n\n/**\n * Export individual styled logging methods\n */\nexport const debug = (...args: any[]) => styledLogger.debug(...args);\nexport const info = (...args: any[]) => styledLogger.info(...args);\nexport const warn = (...args: any[]) => styledLogger.warn(...args);\nexport const error = (...args: any[]) => styledLogger.error(...args);\nexport const success = (...args: any[]) => styledLogger.success(...args);\nexport const critical = (...args: any[]) => styledLogger.critical(...args);\nexport const trace = (...args: any[]) => styledLogger.trace(...args);\nexport const table = (data: any, columns?: string[]) => styledLogger.table(data, columns);\nexport const group = (label: string, collapsed?: boolean) => styledLogger.group(label, collapsed);\nexport const groupEnd = () => styledLogger.groupEnd();\nexport const time = (label: string) => styledLogger.time(label);\nexport const timeEnd = (label: string) => styledLogger.timeEnd(label);\nexport const setGlobalPrefix = (prefix: string) => styledLogger.setGlobalPrefix(prefix);\nexport const scope = (prefix: string) => styledLogger.scope(prefix);\nexport const setVerbosity = (level: any) => styledLogger.setVerbosity(level);\nexport const setTheme = (theme: ThemeVariant) => styledLogger.setTheme(theme);\nexport const setBannerType = (bannerType: BannerType) => styledLogger.setBannerType(bannerType);\nexport const showBanner = (bannerType?: BannerType) => styledLogger.showBanner(bannerType);\nexport const logWithSVG = (message: string, svgContent?: string, options?: StyleOptions) => \n    styledLogger.logWithSVG(message, svgContent, options);\nexport const logAnimated = (message: string, duration?: number) => \n    styledLogger.logAnimated(message, duration);\n\n// Export the singleton as default\nexport default styledLogger;\n\n// Re-export styling utilities\nexport {\n    StyleBuilder,\n    StylePresets,\n    THEME_PRESETS,\n    THEME_BANNERS,\n    BANNER_VARIANTS\n} from './styling/index.js';\n\n// Re-export types\nexport type {\n    ThemeVariant,\n    BannerType,\n    StyleOptions\n} from './types/index.js';"],"names":["StyledLogger","Logger","logWithSVG","message","svgContent","options","super","logAnimated","duration","showBanner","bannerType","setBannerType","setTheme","theme","styledLogger","stylePresets","success","StylePresets","build","error","warning","info","accent","themes","Object","keys","THEME_PRESETS","bannerTypes","BANNER_VARIANTS","StyleBuilder","args","critical","debug","label","collapsed","group","groupEnd","prefix","scope","setGlobalPrefix","level","setVerbosity","displayInitBanner","data","columns","table","time","timeEnd","trace","warn"],"mappings":"yMAyCO,MAAMA,qBAAqBC,EAAAA,OAiB9B,UAAAC,CAAWC,EAAiBC,EAAqBC,EAAwB,CAAA,GACrEC,MAAMJ,WAAWC,EAASC,EAAYC,EAC1C,CAaA,WAAAE,CAAYJ,EAAiBK,EAAmB,GAC5CF,MAAMC,YAAYJ,EAASK,EAC/B,CAYA,UAAAC,CAAWC,GACPJ,MAAMG,WAAWC,EACrB,CAYA,aAAAC,CAAcD,GACVJ,MAAMK,cAAcD,EACxB,CAYA,QAAAE,CAASC,GACLP,MAAMM,SAASC,EACnB,EAIJ,MAAMC,EAAe,IAAId,aA+BZe,EAAe,CACxBC,QAASC,EAAAA,aAAaD,UAAUE,QAChCC,MAAOF,EAAAA,aAAaE,QAAQD,QAC5BE,QAASH,EAAAA,aAAaG,UAAUF,QAChCG,KAAMJ,EAAAA,aAAaI,OAAOH,QAC1BI,OAAQL,EAAAA,aAAaK,SAASJ,SAarBK,EAASC,OAAOC,KAAKC,EAAAA,eAYrBC,EAAcH,OAAOC,KAAKG,EAAAA,2RA3CZ,IAAM,IAAIC,EAAAA,8BAqEb,IAAIC,IAAgBhB,EAAaiB,YAAYD,iBALhD,IAAIA,IAAgBhB,EAAakB,SAASF,mCAG1C,IAAIA,IAAgBhB,EAAaK,SAASW,iBAK1C,CAACG,EAAeC,IAAwBpB,EAAaqB,MAAMF,EAAOC,oBAC/D,IAAMpB,EAAasB,wBARvB,IAAIN,IAAgBhB,EAAaO,QAAQS,uBAmBlC,CAAC3B,EAAiBK,IACzCM,EAAaP,YAAYJ,EAASK,sBAHZ,CAACL,EAAiBC,EAAqBC,IAC7DS,EAAaZ,WAAWC,EAASC,EAAYC,iBAN3BgC,GAAmBvB,EAAawB,MAAMD,yBAG9B3B,GAA2BI,EAAaH,cAAcD,2BAJpD2B,GAAmBvB,EAAayB,gBAAgBF,oBAGvDxB,GAAwBC,EAAaF,SAASC,wBAD1C2B,GAAe1B,EAAa2B,aAAaD,sBAG3C9B,GAA4BI,EAAaL,WAAWC,0BAxBhDA,IAC3BgC,EAAAA,kBAAkBhC,2CAUC,IAAIoB,IAAgBhB,EAAaE,WAAWc,iBAG9C,CAACa,EAAWC,IAAuB9B,EAAa+B,MAAMF,EAAMC,iCAG5DX,GAAkBnB,EAAagC,KAAKb,mBACjCA,GAAkBnB,EAAaiC,QAAQd,iBAL1C,IAAIH,IAAgBhB,EAAakC,SAASlB,gBAJ3C,IAAIA,IAAgBhB,EAAamC,QAAQnB"}