{"version":3,"file":"verben-ng-ui-src-lib-verbena-button.mjs","sources":["../../../projects/verben-ng-ui/src/lib/verbena-button/verbena-button.component.ts","../../../projects/verben-ng-ui/src/lib/verbena-button/verbena-button.component.html","../../../projects/verben-ng-ui/src/lib/verbena-button/verbena-button.module.ts","../../../projects/verben-ng-ui/src/lib/verbena-button/verben-ng-ui-src-lib-verbena-button.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'verbena-button',\n  templateUrl: './verbena-button.component.html',\n  styleUrls: ['./verbena-button.component.css']\n})\nexport class VerbenaButtonComponent {\n  @Input() text: string = '';\n  @Input() icon: string = '';\n  @Input() useIcon: boolean = false;\n\n  @Input() svgPosition: 'left' | 'right' = 'left';\n  @Input() iconPosition: 'left' | 'right' = 'left';\n  @Input() bgColor?: string = '';\n  @Input() textColor?: string = '';\n  @Input() border: string = '';\n  @Input() borderRadius: string = '';\n  @Input() pd: string = '';\n  @Input() width: string = '';\n  @Input() height: string = '';\n  @Input() fontSize: string = '14px';\n  @Input() fontWeight: string = '500';\n  @Input() disable: boolean = false;\n  @Input() svgSize: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl'  = 'md';\n  @Input() weight: number = 400;\n  @Input() variant: 'outlined' | 'rounded' | 'sharp' = 'outlined';\n  @Input() styleType: 'primary' | 'secondary' | 'danger' | 'small' | 'outline' | 'grey' | 'ylw-outline' = 'primary';  // Predefined styles\n\n  @Input() svg: string = '';\n  @Input() svgWidth: number = 20;\n  @Input() svgHeight: number = 20;\n  @Input() iconColor: string = '';\n  @Input() svgColor: string = '';\n\n\n  @Input() buttonClass: string = ''; // Custom class for button\n  @Input() buttonTextClass: string = ''; // Custom class for button\n  @Input() isLoading: any;\n  @Input() spinnerSize: any;\n  @Input() spinnerColor: any;\n\n  get buttonStyles() {\n    switch (this.styleType) {\n      case 'primary':\n        return {\n          bgColor: this.bgColor || 'lightgrey',\n          textColor: this.textColor || '#000000',\n          border: this.border || 'none',\n          borderRadius: this.borderRadius || '4px',\n          pd: this.pd || '10px 15px'\n        };\n      case 'secondary':\n        return {\n          bgColor: this.bgColor || '#FFE681',\n          textColor: this.textColor || '#404040',\n          border: this.border || 'none',\n          borderRadius: this.borderRadius || '4px',\n          pd: this.pd || '10px 15px'\n        };\n      case 'danger':\n        return {\n          bgColor: this.bgColor || '#dc3545',\n          textColor: this.textColor || '#ffffff',\n          border: this.border || 'none',\n          borderRadius: this.borderRadius || '4px',\n          pd: this.pd || '8px 10px'\n        };\n      case 'small':\n        return {\n          bgColor: this.bgColor || '#fff',\n          textColor: this.textColor || '#000',\n          border: this.border || '1px solid grey',\n          borderRadius: this.borderRadius || '7px',\n          pd: this.pd || '0px 10px'\n        };\n\n      case 'outline':\n        return {\n          bgColor: this.bgColor || 'none',\n          textColor: this.textColor || '#000',\n          border: this.border || '1px solid #404040',\n          borderRadius: this.borderRadius || '5px',\n          pd: this.pd || '0px 8px'\n        };\n      case 'ylw-outline':\n        return {\n          bgColor: this.bgColor || '#FFFBEB',\n          textColor: this.textColor || '#404040',\n          border: this.border || '1px solid #FFE681',\n          borderRadius: this.borderRadius || '5px',\n          pd: this.pd || '10px 15px'\n        };\n      case 'grey':\n        return {\n          bgColor: this.bgColor || 'none',\n          textColor: this.textColor || '#D9D9D940',\n          border: this.border || '2px solid grey',\n          borderRadius: this.borderRadius || '4px',\n          pd: this.pd || '10px 15px'\n        };\n      default:\n        return {};\n    }\n  }\n}\n","<button\n  [ngStyle]=\"{\n    'background-color': buttonStyles.bgColor,\n    color: buttonStyles.textColor,\n    border: buttonStyles.border,\n    'border-radius': buttonStyles.borderRadius,\n    padding: buttonStyles.pd,\n    width: width,\n    height: height,\n    'font-size': fontSize,\n    display: 'flex',\n    'align-items': 'center',\n    'justify-content': 'center',\n    cursor: isLoading ? 'not-allowed' : 'pointer',\n    gap: '6px'\n  }\"\n  [disabled]=\"disable || isLoading\"\n  class=\"verbena-button {{ buttonClass }}\"\n>\n  <!-- Loading Spinner -->\n  <ng-container *ngIf=\"isLoading\">\n    <div\n      class=\"loading-spinner\"\n      [ngStyle]=\"{\n        width: spinnerSize,\n        height: spinnerSize,\n        'border-color': spinnerColor,\n        'border-top-color': 'transparent'\n      }\"\n    ></div>\n    <span\n      *ngIf=\"text\"\n      class=\"{{ buttonTextClass }}\"\n      [ngStyle]=\"{ 'font-size': fontSize, 'font-weight': fontWeight }\"\n      >{{ text }}</span\n    >\n  </ng-container>\n\n  <ng-container *ngIf=\"!isLoading\">\n    <ng-container *ngIf=\"!useIcon && svg && svgPosition === 'left'\">\n      <verben-svg\n        [icon]=\"svg\"\n        [width]=\"svgWidth\"\n        [height]=\"svgHeight\"\n        [size]=\"svgSize\"\n        [stroke]=\"svgColor\"\n      ></verben-svg>\n    </ng-container>\n    <ng-container *ngIf=\"useIcon && icon && iconPosition === 'left'\">\n      <verbena-icon\n        [icon]=\"icon\"\n        [variant]=\"variant\"\n        [size]=\"svgSize\"\n        [weight]=\"weight\"\n        [color]=\"svgColor\"\n      ></verbena-icon>\n    </ng-container>\n\n    <span\n      *ngIf=\"text\"\n      class=\"{{ buttonTextClass }}\"\n      [ngStyle]=\"{ 'font-size': fontSize, 'font-weight': fontWeight }\"\n      >{{ text }}</span\n    >\n\n    <ng-container *ngIf=\"!useIcon && svg && svgPosition === 'right'\">\n      <verben-svg\n        [icon]=\"svg\"\n        [width]=\"svgWidth\"\n        [height]=\"svgHeight\"\n        [size]=\"svgSize\"\n        [stroke]=\"svgColor\"\n      ></verben-svg>\n    </ng-container>\n    <ng-container *ngIf=\"useIcon && icon && iconPosition === 'right'\">\n      <verbena-icon\n        [icon]=\"icon\"\n        [variant]=\"variant\"\n        [size]=\"svgSize\"\n        [weight]=\"weight\"\n        [color]=\"svgColor\"\n      ></verbena-icon>\n    </ng-container>\n  </ng-container>\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VerbenaButtonComponent } from './verbena-button.component';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\nimport { VerbenaIconModule } from 'verben-ng-ui/src/lib/components/verbena-icon';\n\n@NgModule({\n  declarations: [VerbenaButtonComponent],\n  imports: [CommonModule, SvgModule, VerbenaIconModule],\n  exports: [VerbenaButtonComponent],\n})\nexport class VerbenaButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}