{"version":3,"file":"index.cjs","sources":["../../../../src/components/Text/Text.tsx"],"sourcesContent":["import {\n  ComponentProps,\n  ComponentPropsWithRef,\n  ElementType,\n  ReactNode,\n  forwardRef,\n} from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './Text.module.css';\n\nexport type TextSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type TextWeight = 'normal' | 'medium' | 'semibold' | 'bold' | 'mono';\nexport type TextAlignment = 'left' | 'center' | 'right';\nexport type TextColor = 'default' | 'muted' | 'danger' | 'disabled' | 'warning';\nexport type TextWrap = 'wrap' | 'nowrap' | 'break-word' | 'break-all';\n\nexport interface TextProps<T extends ElementType = 'p'> {\n  /** The text content to display */\n  children: ReactNode;\n  /** The text alignment */\n  align?: TextAlignment;\n  /** The text color variant */\n  color?: TextColor;\n  /** The font size of the text */\n  size?: TextSize;\n  /** The font weight of the text */\n  weight?: TextWeight;\n  /** Additional CSS class name */\n  className?: string;\n  /** Custom component to render as */\n  component?: T;\n  /** Whether the text should fill the full width of its container */\n  fillWidth?: boolean;\n  /** Text wrapping, unset by default - inherits from parent */\n  wrap?: TextWrap;\n}\n\ntype TextPolymorphicComponent = <T extends ElementType = 'p'>(\n  props: Omit<ComponentProps<T>, keyof TextProps<T>> & TextProps<T>\n) => ReactNode;\n\nconst textVariants = cva(styles.text, {\n  variants: {\n    color: {\n      default: styles['text_color_default'],\n      muted: styles['text_color_muted'],\n      danger: styles['text_color_danger'],\n      disabled: styles['text_color_disabled'],\n      warning: styles['text_color_warning'],\n    },\n    align: {\n      left: styles['text_align_left'],\n      center: styles['text_align_center'],\n      right: styles['text_align_right'],\n    },\n    fillWidth: {\n      true: styles['text_fill-width'],\n    },\n    wrap: {\n      wrap: styles['text_wrap_wrap'],\n      nowrap: styles['text_wrap_nowrap'],\n      'break-word': styles['text_wrap_break-word'],\n      'break-all': styles['text_wrap_break-all'],\n    },\n    size: {\n      xs: '',\n      sm: '',\n      md: '',\n      lg: '',\n    },\n    weight: {\n      normal: '',\n      medium: '',\n      semibold: '',\n      bold: '',\n      mono: '',\n    },\n  },\n  compoundVariants: [\n    { weight: 'normal', size: 'xs', class: styles['text_font_normal-xs'] },\n    { weight: 'normal', size: 'sm', class: styles['text_font_normal-sm'] },\n    { weight: 'normal', size: 'md', class: styles['text_font_normal-md'] },\n    { weight: 'normal', size: 'lg', class: styles['text_font_normal-lg'] },\n    { weight: 'medium', size: 'xs', class: styles['text_font_medium-xs'] },\n    { weight: 'medium', size: 'sm', class: styles['text_font_medium-sm'] },\n    { weight: 'medium', size: 'md', class: styles['text_font_medium-md'] },\n    { weight: 'medium', size: 'lg', class: styles['text_font_medium-lg'] },\n    { weight: 'semibold', size: 'xs', class: styles['text_font_semibold-xs'] },\n    { weight: 'semibold', size: 'sm', class: styles['text_font_semibold-sm'] },\n    { weight: 'semibold', size: 'md', class: styles['text_font_semibold-md'] },\n    { weight: 'semibold', size: 'lg', class: styles['text_font_semibold-lg'] },\n    { weight: 'bold', size: 'xs', class: styles['text_font_bold-xs'] },\n    { weight: 'bold', size: 'sm', class: styles['text_font_bold-sm'] },\n    { weight: 'bold', size: 'md', class: styles['text_font_bold-md'] },\n    { weight: 'bold', size: 'lg', class: styles['text_font_bold-lg'] },\n    { weight: 'mono', size: 'xs', class: styles['text_font_mono-xs'] },\n    { weight: 'mono', size: 'sm', class: styles['text_font_mono-sm'] },\n    { weight: 'mono', size: 'md', class: styles['text_font_mono-md'] },\n    { weight: 'mono', size: 'lg', class: styles['text_font_mono-lg'] },\n  ],\n  defaultVariants: {\n    color: 'default',\n    align: 'left',\n    size: 'md',\n    weight: 'normal',\n  },\n});\n\nconst _Text = <T extends ElementType = 'p'>(\n  {\n    align,\n    color,\n    size,\n    weight,\n    className,\n    children,\n    component,\n    fillWidth,\n    wrap,\n    ...props\n  }: Omit<ComponentProps<T>, keyof TextProps<T>> & TextProps<T>,\n  ref: ComponentPropsWithRef<T>['ref']\n) => {\n  const Component = component ?? 'p';\n  return (\n    <Component\n      ref={ref}\n      {...props}\n      className={cn(\n        textVariants({ color, align, size, weight, fillWidth, wrap }),\n        className\n      )}\n    >\n      {children}\n    </Component>\n  );\n};\n\n_Text.displayName = 'Text';\n\nexport const Text: TextPolymorphicComponent = forwardRef(_Text);\n"],"names":["cva","styles","jsx","cn","forwardRef"],"mappings":";;;;;;;;;;AAyCA,MAAM,YAAA,GAAeA,0BAAA,CAAIC,mBAAA,CAAO,IAAA,EAAM;AAAA,EACpC,QAAA,EAAU;AAAA,IACR,KAAA,EAAO;AAAA,MACL,OAAA,EAASA,oBAAO,oBAAoB,CAAA;AAAA,MACpC,KAAA,EAAOA,oBAAO,kBAAkB,CAAA;AAAA,MAChC,MAAA,EAAQA,oBAAO,mBAAmB,CAAA;AAAA,MAClC,QAAA,EAAUA,oBAAO,qBAAqB,CAAA;AAAA,MACtC,OAAA,EAASA,oBAAO,oBAAoB;AAAA,KACtC;AAAA,IACA,KAAA,EAAO;AAAA,MACL,IAAA,EAAMA,oBAAO,iBAAiB,CAAA;AAAA,MAC9B,MAAA,EAAQA,oBAAO,mBAAmB,CAAA;AAAA,MAClC,KAAA,EAAOA,oBAAO,kBAAkB;AAAA,KAClC;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAMA,oBAAO,iBAAiB;AAAA,KAChC;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,IAAA,EAAMA,oBAAO,gBAAgB,CAAA;AAAA,MAC7B,MAAA,EAAQA,oBAAO,kBAAkB,CAAA;AAAA,MACjC,YAAA,EAAcA,oBAAO,sBAAsB,CAAA;AAAA,MAC3C,WAAA,EAAaA,oBAAO,qBAAqB;AAAA,KAC3C;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI,EAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,EAAA;AAAA,MACR,MAAA,EAAQ,EAAA;AAAA,MACR,QAAA,EAAU,EAAA;AAAA,MACV,IAAA,EAAM,EAAA;AAAA,MACN,IAAA,EAAM;AAAA;AACR,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,QAAA,EAAU,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,qBAAqB,CAAA,EAAE;AAAA,IACrE,EAAE,QAAQ,UAAA,EAAY,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,uBAAuB,CAAA,EAAE;AAAA,IACzE,EAAE,QAAQ,UAAA,EAAY,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,uBAAuB,CAAA,EAAE;AAAA,IACzE,EAAE,QAAQ,UAAA,EAAY,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,uBAAuB,CAAA,EAAE;AAAA,IACzE,EAAE,QAAQ,UAAA,EAAY,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,uBAAuB,CAAA,EAAE;AAAA,IACzE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA,EAAE;AAAA,IACjE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA,EAAE;AAAA,IACjE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA,EAAE;AAAA,IACjE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA,EAAE;AAAA,IACjE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA,EAAE;AAAA,IACjE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA,EAAE;AAAA,IACjE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA,EAAE;AAAA,IACjE,EAAE,QAAQ,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAOA,mBAAA,CAAO,mBAAmB,CAAA;AAAE,GACnE;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,SAAA;AAAA,IACP,KAAA,EAAO,MAAA;AAAA,IACP,IAAA,EAAM,IAAA;AAAA,IACN,MAAA,EAAQ;AAAA;AAEZ,CAAC,CAAA;AAED,MAAM,QAAQ,CACZ;AAAA,EACE,KAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,KACG;AACH,EAAA,MAAM,YAAY,SAAA,IAAa,GAAA;AAC/B,EAAA,uBACEC,cAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,SAAA,EAAWC,MAAA;AAAA,QACT,YAAA,CAAa,EAAE,KAAA,EAAO,KAAA,EAAO,MAAM,MAAA,EAAQ,SAAA,EAAW,MAAM,CAAA;AAAA,QAC5D;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,KAAA,CAAM,WAAA,GAAc,MAAA;AAEb,MAAM,IAAA,GAAiCC,iBAAW,KAAK;;"}