{"version":3,"file":"utils.cjs","sources":["../../../../src/beta/utils/utils.ts"],"sourcesContent":["import {\n  TypographyHeadingVariant,\n  TypographySpacing,\n  TypographyTextVariant,\n} from '../types';\n\n/**\n * Get spacing classes for a component\n */\nexport function getSpacingClasses(\n  spacing: TypographySpacing | undefined,\n  baseClass: string,\n): string {\n  if (!spacing) return '';\n\n  const spacingMap: Record<string, string> = {\n    none: `${baseClass}--spacing-none`,\n    xs2: `${baseClass}--spacing-xs2`,\n    'xs2-top': `${baseClass}--spacing-xs2-top`,\n    'xs2-bottom': `${baseClass}--spacing-xs2-bottom`,\n    xs: `${baseClass}--spacing-xs`,\n    'xs-top': `${baseClass}--spacing-xs-top`,\n    'xs-bottom': `${baseClass}--spacing-xs-bottom`,\n    sm: `${baseClass}--spacing-sm`,\n    'sm-top': `${baseClass}--spacing-sm-top`,\n    'sm-bottom': `${baseClass}--spacing-sm-bottom`,\n    md: `${baseClass}--spacing-md`,\n    'md-top': `${baseClass}--spacing-md-top`,\n    'md-bottom': `${baseClass}--spacing-md-bottom`,\n    lg: `${baseClass}--spacing-lg`,\n    'lg-top': `${baseClass}--spacing-lg-top`,\n    'lg-bottom': `${baseClass}--spacing-lg-bottom`,\n    xl: `${baseClass}--spacing-xl`,\n    'xl-top': `${baseClass}--spacing-xl-top`,\n    'xl-bottom': `${baseClass}--spacing-xl-bottom`,\n  };\n\n  return spacingMap[spacing] || '';\n}\n\n/**\n * Get heading variant based on semantic HTML element\n */\nexport function getHeadingVariantFromSemanticType(\n  element: string | React.ElementType,\n): TypographyHeadingVariant {\n  const elementStr = typeof element === 'string' ? element : element.toString();\n\n  switch (elementStr.toLowerCase()) {\n    case 'h1':\n      return 'title-1';\n    case 'h2':\n      return 'title-2';\n    case 'h3':\n      return 'subtitle-1';\n    case 'h4':\n      return 'subtitle-2';\n    case 'h5':\n      return 'section-1';\n    case 'h6':\n      return 'section-2';\n    default:\n      return 'title-1';\n  }\n}\n\n/**\n * Get semantic HTML element from text variant\n */\nexport function getSemanticTypeFromTextVariant(\n  variant: TypographyTextVariant | undefined,\n): string {\n  if (!variant) return 'p';\n\n  switch (variant) {\n    case 'label':\n      return 'label';\n    case 'sublabel':\n      return 'span';\n    case 'caption':\n      return 'span';\n    case 'overline':\n      return 'span';\n    case 'link':\n      return 'a';\n    case 'code-text':\n      return 'code';\n    case 'preformatted-text':\n      return 'pre';\n    case 'quote':\n      return 'blockquote';\n    case 'leading':\n    case 'paragraph':\n    case 'subparagraph':\n    case 'emphasized':\n    default:\n      return 'p';\n  }\n}\n"],"names":[],"mappings":";;AASO,SAAS,kBACd,SACA,WACQ;AACR,MAAI,CAAC,QAAS,QAAO;AAErB,QAAM,aAAqC;AAAA,IACzC,MAAM,GAAG,SAAS;AAAA,IAClB,KAAK,GAAG,SAAS;AAAA,IACjB,WAAW,GAAG,SAAS;AAAA,IACvB,cAAc,GAAG,SAAS;AAAA,IAC1B,IAAI,GAAG,SAAS;AAAA,IAChB,UAAU,GAAG,SAAS;AAAA,IACtB,aAAa,GAAG,SAAS;AAAA,IACzB,IAAI,GAAG,SAAS;AAAA,IAChB,UAAU,GAAG,SAAS;AAAA,IACtB,aAAa,GAAG,SAAS;AAAA,IACzB,IAAI,GAAG,SAAS;AAAA,IAChB,UAAU,GAAG,SAAS;AAAA,IACtB,aAAa,GAAG,SAAS;AAAA,IACzB,IAAI,GAAG,SAAS;AAAA,IAChB,UAAU,GAAG,SAAS;AAAA,IACtB,aAAa,GAAG,SAAS;AAAA,IACzB,IAAI,GAAG,SAAS;AAAA,IAChB,UAAU,GAAG,SAAS;AAAA,IACtB,aAAa,GAAG,SAAS;AAAA,EAAA;AAG3B,SAAO,WAAW,OAAO,KAAK;AAChC;AAKO,SAAS,kCACd,SAC0B;AAC1B,QAAM,aAAa,OAAO,YAAY,WAAW,UAAU,QAAQ,SAAA;AAEnE,UAAQ,WAAW,eAAY;AAAA,IAC7B,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAKO,SAAS,+BACd,SACQ;AACR,MAAI,CAAC,QAAS,QAAO;AAErB,UAAQ,SAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AACE,aAAO;AAAA,EAAA;AAEb;;;;"}