{"version":3,"file":"verben-ng-ui-src-lib-components-verbena-icon.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/verbena-icon/verbena-icon.component.ts","../../../projects/verben-ng-ui/src/lib/components/verbena-icon/verbena-icon.component.html","../../../projects/verben-ng-ui/src/lib/components/verbena-icon/verbena-icon.module.ts","../../../projects/verben-ng-ui/src/lib/components/verbena-icon/verben-ng-ui-src-lib-components-verbena-icon.ts"],"sourcesContent":["import {\n  Component,\n  Input,\n  OnInit,\n  OnChanges,\n  SimpleChanges,\n  AfterViewInit\n} from '@angular/core';\n\n@Component({\n  selector: 'verbena-icon',\n  templateUrl: './verbena-icon.component.html',\n  styleUrls: ['./verbena-icon.component.css']\n})\nexport class VerbenaIconComponent implements OnInit, OnChanges, AfterViewInit {\n  @Input() icon: string = '';\n  @Input() variant: 'outlined' | 'rounded' | 'sharp' = 'outlined';\n  @Input() size: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | number = 'md';\n  @Input() fill: boolean = false;\n  @Input() weight: number = 400; // Changed to number type to accommodate both property binding and string input\n  @Input() color: string = '';\n\n  iconName: string = '';\n  iconStyles: any = {};\n  fillClass: string = '';\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.updateIcon();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.updateIcon();\n  }\n\n  ngAfterViewInit(): void {\n    this.ensureGoogleIconsLoaded();\n  }\n\n  private ensureGoogleIconsLoaded(): void {\n    // Check if Google Icons stylesheet is already loaded\n    const linkExists = document.querySelector('link[href*=\"material-symbols\"]');\n    \n    if (!linkExists) {\n      const linkElement = document.createElement('link');\n      linkElement.rel = 'stylesheet';\n      linkElement.href = 'https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,0..200&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,0..200&family=Material+Symbols+Sharp:opsz,wght,FILL,GRAD@20..48,100..700,0..1,0..200';\n      document.head.appendChild(linkElement);\n    }\n  }\n\n  private updateIcon(): void {\n    // Set the icon name from the input\n    this.iconName = this.icon;\n    this.updateStyles();\n    this.fillClass = this.fill ? 'material-fill-1' : 'material-fill-0';\n  }\n\n  private updateStyles(): void {\n    const sizeMap: { [key: string]: number } = {\n      'sm': 18,\n      'md': 24,\n      'lg': 36,\n      'xl': 48,\n      '2xl': 60,\n      '3xl': 72,\n      '4xl': 96\n    };\n\n    const iconSize = typeof this.size === 'number' \n      ? this.size \n      : sizeMap[this.size as string] || 24;\n    \n    // Ensure weight is a valid number between 100-700 and is a multiple of 100\n    let weightValue = Number(this.weight);\n    weightValue = !isNaN(weightValue) ? weightValue : 400;\n    weightValue = Math.min(700, Math.max(100, Math.round(weightValue / 100) * 100));\n\n    this.iconStyles = {\n      'font-size': `${iconSize}px`,\n      'font-variation-settings': `'FILL' ${this.fill ? 1 : 0}, 'wght' ${weightValue}, 'GRAD' 0`,\n      'color': this.color || 'inherit'\n    };\n  }\n}","<span \n  class=\"material-symbols-{{ variant }}\"\n  [ngStyle]=\"iconStyles\"\n  [ngClass]=\"fillClass\">\n  {{ iconName }}\n</span>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaIconComponent } from './verbena-icon.component';\n\n@NgModule({\n  declarations: [VerbenaIconComponent],\n  imports: [CommonModule],\n  exports: [VerbenaIconComponent]\n})\nexport class VerbenaIconModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}