{"version":3,"sources":["../src/processors/useTheme.ts"],"names":[],"mappings":"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","file":"useTheme.mjs","sourcesContent":["import type { Expression } from '@babel/types';\nimport { validateParams, type Params, type TailProcessorParams } from '@wyw-in-js/processor-utils';\nimport { type Replacements, type Rules } from '@wyw-in-js/shared';\nimport BaseProcessor from './base-processor';\n\nexport type Primitive = string | number | boolean | null | undefined;\n\nexport type TemplateCallback = (params: Record<string, unknown> | undefined) => string | number;\n\nexport class UseThemeProcessor extends BaseProcessor {\n  constructor(params: Params, ...args: TailProcessorParams) {\n    super([params[0]], ...args);\n    if (params.length === 1) {\n      throw BaseProcessor.SKIP;\n    }\n    validateParams(params, ['callee', ['call']], `Invalid use of ${this.tagSource.imported} tag.`);\n  }\n\n  build() {\n    const cssText = '/* */';\n    const rules: Rules = {\n      [this.asSelector]: {\n        className: this.className,\n        cssText,\n        displayName: this.displayName,\n        start: this.location?.start ?? null,\n      },\n    };\n    const sourceMapReplacements: Replacements = [\n      {\n        length: cssText.length,\n        original: {\n          start: {\n            column: this.location?.start.column ?? 0,\n            line: this.location?.start.line ?? 0,\n          },\n          end: {\n            column: this.location?.end.column ?? 0,\n            line: this.location?.end.line ?? 0,\n          },\n        },\n      },\n    ];\n    this.artifacts.push(['css', [rules, sourceMapReplacements]]);\n  }\n\n  doEvaltimeReplacement() {\n    this.replacer(this.value, false);\n  }\n\n  doRuntimeReplacement() {\n    const t = this.astService;\n    const themeIdentifier = t.addDefaultImport(`${this.getImportPath()}/theme`);\n    this.replacer(themeIdentifier, false);\n  }\n\n  get asSelector() {\n    return this.className;\n  }\n\n  get value(): Expression {\n    return this.astService.nullLiteral();\n  }\n}\n"]}