{"version":3,"file":"paper-fe-aurora-text.mjs","sources":["../../../projects/ui/text/text.directive.ts","../../../projects/ui/text/paper-fe-aurora-text.ts"],"sourcesContent":["import { Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n  standalone: true,\r\n  selector: '[auText]',\r\n})\r\nexport class TextDirective {\r\n  private readonly TYPES: TextType[] = [\r\n    'headline',\r\n    'heading',\r\n    'body',\r\n    'paragraph',\r\n    'caption',\r\n  ];\r\n  private readonly SIZES: TextSize[] = ['lg', 'md', 'reg', 'sm', 'xs'];\r\n  private readonly COLORS: TextColor[] = [\r\n    'primary',\r\n    'secondary',\r\n    'tertiary',\r\n    'white',\r\n    'blue',\r\n    'green',\r\n    'green-light',\r\n    'red',\r\n    'yellow',\r\n    'orange',\r\n    'peach',\r\n  ];\r\n\r\n  get htmlElement(): HTMLElement {\r\n    return this.el.nativeElement as HTMLElement;\r\n  }\r\n\r\n  private _input = '';\r\n\r\n  @Input({ alias: 'auText', required: true })\r\n  get input() {\r\n    return this._input;\r\n  }\r\n  set input(v: string) {\r\n    this._input = v;\r\n\r\n    const parsedInput = this.parseInput(this._input);\r\n    const classes = this.getClasses(parsedInput);\r\n    this.setClasses(classes);\r\n  }\r\n\r\n  constructor(public el: ElementRef) {}\r\n\r\n  setClasses(classes: string[]) {\r\n    const classesToBeRemoved = this.htmlElement.className\r\n      .split(' ')\r\n      .filter(c => c.includes('au-text'));\r\n    this.htmlElement?.classList.remove(...classesToBeRemoved);\r\n    this.htmlElement?.classList.add(...classes);\r\n  }\r\n\r\n  getClasses(parsedInput: ParsedInput | undefined) {\r\n    if (!parsedInput) return [];\r\n\r\n    const { type, size, color } = parsedInput;\r\n    const classes: string[] = [];\r\n\r\n    if (type) classes.push(`au-text-${type}`);\r\n    if (type && size) classes.push(`au-text-${type}--${size}`);\r\n    if (color) classes.push(`au-text--${color}`);\r\n\r\n    return classes;\r\n  }\r\n\r\n  parseInput(input: string): ParsedInput | undefined {\r\n    if (typeof input !== 'string') return undefined;\r\n\r\n    const typesPattern = new RegExp(`\\\\b(${this.TYPES.join('|')})\\\\b`, 'g');\r\n    const sizesPattern = new RegExp(`\\\\b(${this.SIZES.join('|')})\\\\b`, 'g');\r\n    const colorsPattern = new RegExp(`\\\\b(${this.COLORS.join('|')})\\\\b`, 'g');\r\n\r\n    const type = typesPattern.exec(input)?.[0];\r\n    const size = sizesPattern.exec(input)?.[0];\r\n    const color = colorsPattern.exec(input)?.[0];\r\n\r\n    return { type, size, color };\r\n  }\r\n}\r\n\r\nexport type TextType =\r\n  | 'headline'\r\n  | 'heading'\r\n  | 'body'\r\n  | 'paragraph'\r\n  | 'caption';\r\n\r\nexport type TextSize = 'lg' | 'md' | 'reg' | 'sm' | 'xs';\r\n\r\nexport type TextColor =\r\n  | 'primary'\r\n  | 'secondary'\r\n  | 'tertiary'\r\n  | 'white'\r\n  | 'blue'\r\n  | 'green'\r\n  | 'green-light'\r\n  | 'red'\r\n  | 'yellow'\r\n  | 'peach'\r\n  | 'orange';\r\n\r\nexport interface ParsedInput {\r\n  color: string | undefined;\r\n  size: string | undefined;\r\n  type: string | undefined;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}