{"version":3,"file":"simpleConsumerClassMapper.cjs","sources":["../../../../../../src/components/ui/theme/appearance/simpleConsumerClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { AppearanceCategoryKey, CategoryProps } from \"../../props\";\n\n// Emits consumer classes referencing CSS variables (--bg-color etc.) — the variables themselves\n// are set by data-appearance/data-variant CSS rules, so the same classes work for any appearance.\nexport class SimpleConsumerClassMapper extends BaseClassMapper {\n  base: string;\n  hover: string;\n  active: string;\n  focusVisible: string;\n  readonly category: AppearanceCategoryKey;\n  // emit classes even without an appearance prop (for cascade-based inheritance)\n  readonly alwaysOutput: boolean;\n\n  constructor(\n    config: {\n      base?: string;\n      hover?: string;\n      active?: string;\n      focusVisible?: string;\n      alwaysOutput?: boolean;\n    },\n    category: AppearanceCategoryKey\n  ) {\n    super();\n    this.base = config.base || '';\n    this.hover = config.hover || '';\n    this.active = config.active || '';\n    this.focusVisible = config.focusVisible || '';\n    this.category = category;\n    this.alwaysOutput = config.alwaysOutput || false;\n  }\n\n  getClasses(extractedKeys: CategoryProps): string[] {\n    if (this.category === 'border') {\n      if ((extractedKeys.border as string) === 'noBorder') {\n        return [];\n      }\n      const hasBorderProps = extractedKeys.border !== undefined && (extractedKeys.border as string) !== 'noBorder';\n      if (!hasBorderProps) {\n        return [];\n      }\n    }\n\n    if (this.category === 'ring' && (extractedKeys.ring === 'noInsetRing' || extractedKeys.ring === undefined)) {\n      return [];\n    }\n\n    if (this.category === 'shadow' && (extractedKeys.shadow === 'noShadow' || extractedKeys.shadow === undefined)) {\n      return [];\n    }\n\n    if (this.category === 'focusVisible' && (extractedKeys.focusVisible === 'noFocusVisible' || extractedKeys.focusVisible === undefined)) {\n      return [];\n    }\n\n    if (this.category === 'bg' && extractedKeys.transparent === 'transparent') {\n      return [];\n    }\n\n    if (!this.alwaysOutput && !extractedKeys?.appearance) {\n      return [];\n    }\n\n    const classes: string[] = [];\n\n    if (this.base) {\n      classes.push(this.base);\n    }\n\n    if (this.hover) {\n      classes.push(this.hover);\n    }\n\n    if (this.active) {\n      classes.push(this.active);\n    }\n\n    if (this.focusVisible) {\n      classes.push(this.focusVisible);\n    }\n\n    return classes;\n  }\n}\n"],"names":["BaseClassMapper"],"mappings":";;;;AAKO,MAAM,kCAAkCA,+BAAA,CAAgB;AAAA,EAS7D,WAAA,CACE,QAOA,QAAA,EACA;AACA,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,IAAA,GAAO,OAAO,IAAA,IAAQ,EAAA;AAC3B,IAAA,IAAA,CAAK,KAAA,GAAQ,OAAO,KAAA,IAAS,EAAA;AAC7B,IAAA,IAAA,CAAK,MAAA,GAAS,OAAO,MAAA,IAAU,EAAA;AAC/B,IAAA,IAAA,CAAK,YAAA,GAAe,OAAO,YAAA,IAAgB,EAAA;AAC3C,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,YAAA,GAAe,OAAO,YAAA,IAAgB,KAAA;AAAA,EAC7C;AAAA,EAEA,WAAW,aAAA,EAAwC;AACjD,IAAA,IAAI,IAAA,CAAK,aAAa,QAAA,EAAU;AAC9B,MAAA,IAAK,aAAA,CAAc,WAAsB,UAAA,EAAY;AACnD,QAAA,OAAO,EAAC;AAAA,MACV;AACA,MAAA,MAAM,cAAA,GAAiB,aAAA,CAAc,MAAA,KAAW,MAAA,IAAc,cAAc,MAAA,KAAsB,UAAA;AAClG,MAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,QAAA,OAAO,EAAC;AAAA,MACV;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,CAAK,aAAa,MAAA,KAAW,aAAA,CAAc,SAAS,aAAA,IAAiB,aAAA,CAAc,SAAS,MAAA,CAAA,EAAY;AAC1G,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,IAAI,IAAA,CAAK,aAAa,QAAA,KAAa,aAAA,CAAc,WAAW,UAAA,IAAc,aAAA,CAAc,WAAW,MAAA,CAAA,EAAY;AAC7G,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,IAAI,IAAA,CAAK,aAAa,cAAA,KAAmB,aAAA,CAAc,iBAAiB,gBAAA,IAAoB,aAAA,CAAc,iBAAiB,MAAA,CAAA,EAAY;AACrI,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,IAAI,IAAA,CAAK,QAAA,KAAa,IAAA,IAAQ,aAAA,CAAc,gBAAgB,aAAA,EAAe;AACzE,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,IAAI,CAAC,IAAA,CAAK,YAAA,IAAgB,CAAC,eAAe,UAAA,EAAY;AACpD,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,UAAoB,EAAC;AAE3B,IAAA,IAAI,KAAK,IAAA,EAAM;AACb,MAAA,OAAA,CAAQ,IAAA,CAAK,KAAK,IAAI,CAAA;AAAA,IACxB;AAEA,IAAA,IAAI,KAAK,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,IACzB;AAEA,IAAA,IAAI,KAAK,MAAA,EAAQ;AACf,MAAA,OAAA,CAAQ,IAAA,CAAK,KAAK,MAAM,CAAA;AAAA,IAC1B;AAEA,IAAA,IAAI,KAAK,YAAA,EAAc;AACrB,MAAA,OAAA,CAAQ,IAAA,CAAK,KAAK,YAAY,CAAA;AAAA,IAChC;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AACF;;;;"}