{"version":3,"file":"color.mjs","names":[],"sources":["../../src/extension/color.ts"],"sourcesContent":["import { thenMaybe } from '#src/core/results.ts';\nimport { defineInterceptor } from '../core/interceptors.ts';\nimport type { AnyPadroneBuilder, CommandTypesBase } from '../types/index.ts';\n\n// ── Interceptor ─────────────────────────────────────────────────────────\n\nconst colorInterceptor = defineInterceptor({ id: 'padrone:color', name: 'padrone:color', order: -1001 }, () => ({\n  parse(ctx, next) {\n    return thenMaybe(next(), (res) => {\n      if ('color' in res.rawArgs) {\n        const color = res.rawArgs.color;\n        delete res.rawArgs.color;\n\n        ctx.runtime.theme = color as any;\n      }\n      return res;\n    });\n  },\n}));\n\n// ── Extension ────────────────────────────────────────────────────────────\n\n/**\n * Extension that handles `--color` / `--no-color` flags:\n * - `--color` or `--color=true` → use default theme\n * - `--color=false` or `--no-color` → disable colors (text format)\n * - `--color=<theme>` → use the named theme\n *\n * Modifies the runtime's format and theme accordingly.\n *\n * Usage:\n * ```ts\n * createPadrone('my-cli').extend(padroneColor())\n * ```\n */\nexport function padroneColor(): <T extends CommandTypesBase>(builder: T) => T {\n  return ((builder: AnyPadroneBuilder) => builder.intercept(colorInterceptor)) as any;\n}\n"],"mappings":";;;AAMA,MAAM,mBAAmB,kBAAkB;CAAE,IAAI;CAAiB,MAAM;CAAiB,OAAO;AAAM,UAAU,EAC9G,MAAM,KAAK,MAAM;CACf,OAAO,UAAU,KAAK,IAAI,QAAQ;EAChC,IAAI,WAAW,IAAI,SAAS;GAC1B,MAAM,QAAQ,IAAI,QAAQ;GAC1B,OAAO,IAAI,QAAQ;GAEnB,IAAI,QAAQ,QAAQ;EACtB;EACA,OAAO;CACT,CAAC;AACH,EACF,EAAE;;;;;;;;;;;;;;AAiBF,SAAgB,eAA8D;CAC5E,SAAS,YAA+B,QAAQ,UAAU,gBAAgB;AAC5E"}