{"version":3,"file":"marginClassMapper.cjs","sources":["../../../../../../src/components/ui/theme/size/marginClassMapper.ts"],"sourcesContent":["import { BaseClassMapper } from \"../common/BaseClassMapper\";\nimport type { CategoryProps, MarginKey } from \"../../props\";\n\n/**\n * Margin theme — external spacing driven by the size-aware `--margin` token\n * (which defaults to `--gap`), so margins scale with the component's size prop.\n * Composable: several side toggles apply together; noMargin resets to 0.\n */\nexport class MarginClassMapper extends BaseClassMapper implements Record<MarginKey, string> {\n  /** All sides */\n  margin: string = \"m-(--margin)\";\n  /** Horizontal (inline) only */\n  marginX: string = \"mx-(--margin)\";\n  /** Vertical (block) only */\n  marginY: string = \"my-(--margin)\";\n  /** Top only */\n  marginT: string = \"mt-(--margin)\";\n  /** Bottom only */\n  marginB: string = \"mb-(--margin)\";\n  /** Reset to 0 */\n  noMargin: string = \"m-0\";\n\n  getClasses(extractedKeys: CategoryProps): string[] {\n    // Composable: extractedKeys.margin may hold several space-joined side keys (or \"noMargin\").\n    const value = extractedKeys?.margin;\n    if (!value) return [];\n    return value.split(' ').map(k => this[k as MarginKey]).filter(Boolean);\n  }\n}\n"],"names":["BaseClassMapper"],"mappings":";;;;AAQO,MAAM,0BAA0BA,+BAAA,CAAqD;AAAA,EAArF,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AAEL;AAAA,IAAA,IAAA,CAAA,MAAA,GAAiB,cAAA;AAEjB;AAAA,IAAA,IAAA,CAAA,OAAA,GAAkB,eAAA;AAElB;AAAA,IAAA,IAAA,CAAA,OAAA,GAAkB,eAAA;AAElB;AAAA,IAAA,IAAA,CAAA,OAAA,GAAkB,eAAA;AAElB;AAAA,IAAA,IAAA,CAAA,OAAA,GAAkB,eAAA;AAElB;AAAA,IAAA,IAAA,CAAA,QAAA,GAAmB,KAAA;AAAA,EAAA;AAAA,EAEnB,WAAW,aAAA,EAAwC;AAEjD,IAAA,MAAM,QAAQ,aAAA,EAAe,MAAA;AAC7B,IAAA,IAAI,CAAC,KAAA,EAAO,OAAO,EAAC;AACpB,IAAA,OAAO,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA,CAAE,GAAA,CAAI,CAAA,CAAA,KAAK,IAAA,CAAK,CAAc,CAAC,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AAAA,EACvE;AACF;;;;"}