{"version":3,"file":"Text.cjs","names":["createVarsResolver","getFontSize","getLineHeight","getGradient","polymorphicFactory","useProps","Box","useStyles","classes"],"sources":["../../../src/components/Text/Text.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  getFontSize,\n  getGradient,\n  getLineHeight,\n  MantineFontSize,\n  MantineGradient,\n  MantineLineHeight,\n  polymorphicFactory,\n  PolymorphicFactory,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../core';\nimport classes from './Text.module.css';\n\ntype TextTruncate = 'end' | 'start' | boolean;\n\nfunction getTextTruncate(truncate: TextTruncate | undefined) {\n  if (truncate === 'start') {\n    return 'start';\n  }\n\n  if (truncate === 'end' || truncate) {\n    return 'end';\n  }\n\n  return undefined;\n}\n\nexport type TextStylesNames = 'root';\nexport type TextVariant = 'text' | 'gradient';\nexport type TextCssVariables = {\n  root: '--text-gradient' | '--text-line-clamp' | '--text-fz' | '--text-lh';\n};\n\nexport interface TextProps extends BoxProps, StylesApiProps<TextFactory> {\n  __staticSelector?: string;\n\n  /** Controls `font-size` and `line-height` @default 'md' */\n  size?: MantineFontSize | MantineLineHeight;\n\n  /** Number of lines after which Text will be truncated */\n  lineClamp?: number;\n\n  /** Side on which Text must be truncated, if `true`, text is truncated from the start */\n  truncate?: TextTruncate;\n\n  /** Sets `line-height` to 1 for centering @default false */\n  inline?: boolean;\n\n  /** Determines whether font properties should be inherited from the parent @default false */\n  inherit?: boolean;\n\n  /** Gradient configuration, ignored when `variant` is not `gradient` @default theme.defaultGradient */\n  gradient?: MantineGradient;\n\n  /** Shorthand for `component=\"span\"` */\n  span?: boolean;\n}\n\nexport type TextFactory = PolymorphicFactory<{\n  props: TextProps;\n  defaultComponent: 'p';\n  defaultRef: HTMLParagraphElement;\n  stylesNames: TextStylesNames;\n  vars: TextCssVariables;\n  variant: TextVariant;\n}>;\n\nconst defaultProps = {\n  inherit: false,\n} satisfies Partial<TextProps>;\n\nconst varsResolver = createVarsResolver<TextFactory>(\n  // Will be removed in 9.0\n\n  (theme, { variant, lineClamp, gradient, size }) => ({\n    root: {\n      '--text-fz': getFontSize(size),\n      '--text-lh': getLineHeight(size),\n      '--text-gradient': variant === 'gradient' ? getGradient(gradient, theme) : undefined,\n      '--text-line-clamp': typeof lineClamp === 'number' ? lineClamp.toString() : undefined,\n    },\n  })\n);\n\nexport const Text = polymorphicFactory<TextFactory>((_props) => {\n  const props = useProps('Text', defaultProps, _props);\n  const {\n    lineClamp,\n    truncate,\n    inline,\n    inherit,\n    gradient,\n    span,\n    __staticSelector,\n    vars,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    variant,\n    mod,\n    size,\n    attributes,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<TextFactory>({\n    name: ['Text', __staticSelector],\n    props,\n    classes,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n  });\n\n  return (\n    <Box\n      {...getStyles('root', { focusable: true })}\n      component={span ? 'span' : 'p'}\n      variant={variant}\n      mod={[\n        {\n          'data-truncate': getTextTruncate(truncate),\n          'data-line-clamp': typeof lineClamp === 'number',\n          'data-inline': inline,\n          'data-inherit': inherit,\n        },\n        mod,\n      ]}\n      size={size}\n      {...others}\n    />\n  );\n});\n\nText.classes = classes;\nText.varsResolver = varsResolver;\nText.displayName = '@mantine/core/Text';\n"],"mappings":";;;;;;;;;;;;AAoBA,SAAS,gBAAgB,UAAoC;AAC3D,KAAI,aAAa,QACf,QAAO;AAGT,KAAI,aAAa,SAAS,SACxB,QAAO;;AA8CX,MAAM,eAAe,EACnB,SAAS,OACV;AAED,MAAM,eAAeA,6BAAAA,oBAGlB,OAAO,EAAE,SAAS,WAAW,UAAU,YAAY,EAClD,MAAM;CACJ,aAAaC,iBAAAA,YAAY,KAAK;CAC9B,aAAaC,iBAAAA,cAAc,KAAK;CAChC,mBAAmB,YAAY,aAAaC,qBAAAA,YAAY,UAAU,MAAM,GAAG,KAAA;CAC3E,qBAAqB,OAAO,cAAc,WAAW,UAAU,UAAU,GAAG,KAAA;CAC7E,EACF,EACF;AAED,MAAa,OAAOC,4BAAAA,oBAAiC,WAAW;CAC9D,MAAM,QAAQC,kBAAAA,SAAS,QAAQ,cAAc,OAAO;CACpD,MAAM,EACJ,WACA,UACA,QACA,SACA,UACA,MACA,kBACA,MACA,WACA,OACA,YACA,QACA,UACA,SACA,KACA,MACA,YACA,GAAG,WACD;AAgBJ,QACE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;EACE,GAhBcC,mBAAAA,UAAuB;GACvC,MAAM,CAAC,QAAQ,iBAAiB;GAChC;GACA,SAAA,oBAAA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,CAIgB,QAAQ,EAAE,WAAW,MAAM,CAAC;EAC1C,WAAW,OAAO,SAAS;EAClB;EACT,KAAK,CACH;GACE,iBAAiB,gBAAgB,SAAS;GAC1C,mBAAmB,OAAO,cAAc;GACxC,eAAe;GACf,gBAAgB;GACjB,EACD,IACD;EACK;EACN,GAAI;EACJ,CAAA;EAEJ;AAEF,KAAK,UAAUC,oBAAAA;AACf,KAAK,eAAe;AACpB,KAAK,cAAc"}