@allsorter/ui-components 0.0.329 → 0.0.333

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +40 -73
  2. package/fesm2022/allsorter-ui-components.mjs +329 -0
  3. package/fesm2022/allsorter-ui-components.mjs.map +1 -0
  4. package/index.d.ts +5 -0
  5. package/lib/allsorter-lib.component.d.ts +5 -0
  6. package/lib/allsorter-lib.service.d.ts +6 -0
  7. package/lib/button/button.component.d.ts +46 -0
  8. package/lib/button/button.module.d.ts +13 -0
  9. package/lib/input/input.component.d.ts +34 -0
  10. package/lib/input/input.module.d.ts +8 -0
  11. package/package.json +17 -55
  12. package/public-api.d.ts +6 -0
  13. package/.editorconfig +0 -16
  14. package/.gitignore copy +0 -44
  15. package/.storybook/main.ts +0 -14
  16. package/.storybook/preview.ts +0 -17
  17. package/.storybook/tsconfig.doc.json +0 -10
  18. package/.storybook/tsconfig.json +0 -11
  19. package/.storybook/typings.d.ts +0 -4
  20. package/.vscode/settings.json +0 -1
  21. package/LICENSE +0 -21
  22. package/angular.json +0 -109
  23. package/bitbucket-pipelines.yml +0 -108
  24. package/documentation.json +0 -1080
  25. package/src/app/app.component.css +0 -0
  26. package/src/app/app.component.html +0 -328
  27. package/src/app/app.component.spec.ts +0 -31
  28. package/src/app/app.component.ts +0 -11
  29. package/src/app/app.module.ts +0 -16
  30. package/src/app/button/button.component.html +0 -117
  31. package/src/app/button/button.component.scss +0 -462
  32. package/src/app/button/button.component.spec.ts +0 -23
  33. package/src/app/button/button.component.ts +0 -105
  34. package/src/app/button/button.module.ts +0 -23
  35. package/src/app/input/input.component.css +0 -424
  36. package/src/app/input/input.component.html +0 -27
  37. package/src/app/input/input.component.spec.ts +0 -444
  38. package/src/app/input/input.component.ts +0 -92
  39. package/src/app/input/input.module.ts +0 -9
  40. package/src/assets/.gitkeep +0 -0
  41. package/src/assets/font/OpenSans-Light-webfont.eot +0 -0
  42. package/src/assets/font/OpenSans-Light-webfont.svg +0 -252
  43. package/src/assets/font/OpenSans-Light-webfont.ttf +0 -0
  44. package/src/assets/font/OpenSans-Light-webfont.woff +0 -0
  45. package/src/assets/font/OpenSans-Regular-webfont.eot +0 -0
  46. package/src/assets/font/OpenSans-Regular-webfont.svg +0 -252
  47. package/src/assets/font/OpenSans-Regular-webfont.ttf +0 -0
  48. package/src/assets/font/OpenSans-Regular-webfont.woff +0 -0
  49. package/src/assets/icon/percolate.eot +0 -0
  50. package/src/assets/icon/percolate.svg +0 -139
  51. package/src/assets/icon/percolate.ttf +0 -0
  52. package/src/assets/icon/percolate.woff +0 -0
  53. package/src/environments/environment.prod.ts +0 -3
  54. package/src/environments/environment.ts +0 -16
  55. package/src/favicon.ico +0 -0
  56. package/src/index.html +0 -15
  57. package/src/main.ts +0 -7
  58. package/src/polyfills.ts +0 -63
  59. package/src/public-api.ts +0 -9
  60. package/src/stories/.eslintrc.json +0 -8
  61. package/src/stories/Configure.mdx +0 -369
  62. package/src/stories/assets/accessibility.png +0 -0
  63. package/src/stories/assets/accessibility.svg +0 -5
  64. package/src/stories/assets/addon-library.png +0 -0
  65. package/src/stories/assets/assets.png +0 -0
  66. package/src/stories/assets/avif-test-image.avif +0 -0
  67. package/src/stories/assets/context.png +0 -0
  68. package/src/stories/assets/discord.svg +0 -15
  69. package/src/stories/assets/docs.png +0 -0
  70. package/src/stories/assets/figma-plugin.png +0 -0
  71. package/src/stories/assets/github.svg +0 -3
  72. package/src/stories/assets/share.png +0 -0
  73. package/src/stories/assets/styling.png +0 -0
  74. package/src/stories/assets/testing.png +0 -0
  75. package/src/stories/assets/theming.png +0 -0
  76. package/src/stories/assets/tutorials.svg +0 -12
  77. package/src/stories/assets/youtube.svg +0 -4
  78. package/src/stories/button-gallery.stories.ts +0 -145
  79. package/src/stories/button-playground.stories.ts +0 -59
  80. package/src/stories/input-gallery.stories.ts +0 -124
  81. package/src/stories/input-playground.stories.ts +0 -135
  82. package/src/styles/global-menu-overlay-styles.scss +0 -8
  83. package/src/styles/typography-classes.scss +0 -122
  84. package/src/styles.css +0 -463
  85. package/tsconfig.app.json +0 -10
  86. package/tsconfig.json +0 -29
  87. package/tsconfig.spec.json +0 -10
package/README.md CHANGED
@@ -1,96 +1,63 @@
1
- <p align="center">
2
- <a href="https://www.chromatic.com/">
3
- <img alt="Chromatic" src="https://avatars2.githubusercontent.com/u/24584319?s=200&v=4" width="60" />
4
- </a>
5
- </p>
1
+ # AllsorterLib
6
2
 
7
- <h1 align="center">
8
- Chromatic's Intro to Storybook Angular template
9
- </h1>
3
+ This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 19.0.0.
10
4
 
11
- This template ships with the main Angular and Storybook configuration files you'll need to get up and running fast.
5
+ ## Code scaffolding
12
6
 
13
- ## 🚅 Quick start
7
+ Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
14
8
 
15
- 1. **Create the application.**
9
+ ```bash
10
+ ng generate component component-name
11
+ ```
16
12
 
17
- Use [degit](https://github.com/Rich-Harris/degit) to get this template.
13
+ For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
18
14
 
19
- ```shell
20
- # Clone the template
21
- npx degit chromaui/intro-storybook-angular-template allsorter
22
- ```
15
+ ```bash
16
+ ng generate --help
17
+ ```
23
18
 
24
- 1. **Install the dependencies.**
19
+ ## Building
25
20
 
26
- Navigate into your new site’s directory and install the necessary dependencies.
21
+ To build the library, run:
27
22
 
28
- ```shell
29
- # Navigate to the directory
30
- cd allsorter/
23
+ ```bash
24
+ ng build allsorter-lib
25
+ ```
31
26
 
32
- # Install the dependencies
33
- npm install
34
- ```
27
+ This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
35
28
 
36
- 1. **Open the source code and start editing!**
29
+ ### Publishing the Library
37
30
 
38
- Open the `allsorter` directory in your code editor of choice and building your first component!
31
+ Once the project is built, you can publish your library by following these steps:
39
32
 
40
- 1. **Browse your stories!**
33
+ 1. Navigate to the `dist` directory:
34
+ ```bash
35
+ cd dist/allsorter-lib
36
+ ```
41
37
 
42
- Run `npm run storybook` to see your component's stories at `http://localhost:6006`.
38
+ 2. Run the `npm publish` command to publish your library to the npm registry:
39
+ ```bash
40
+ npm publish
41
+ ```
43
42
 
44
- ## 🔎 What's inside?
43
+ ## Running unit tests
45
44
 
46
- A quick look at the top-level files and directories included with this template.
45
+ To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
47
46
 
48
- .
49
- ├── .storybook
50
- ├── node_modules
51
- ├── src
52
- ├── .editorconfig
53
- ├── .gitignore
54
- ├── angular.json
55
- ├── LICENSE
56
- ├── package-lock.json
57
- ├── package.json
58
- ├── tsconfig.app.json
59
- ├── tsconfig.json
60
- ├── tsconfig.spec.json
61
- ├── tslint.json
62
- └── README.md
47
+ ```bash
48
+ ng test
49
+ ```
63
50
 
64
- 1. **`.storybook`**: This directory contains Storybook's [configuration](https://storybook.js.org/docs/react/configure/overview) files.
51
+ ## Running end-to-end tests
65
52
 
66
- 2. **`node_modules`**: This directory contains all of the modules of code that your project depends on (npm packages).
53
+ For end-to-end (e2e) testing, run:
67
54
 
68
- 3. **`src`**: This directory will contain all of the code related to what you will see on your application.
55
+ ```bash
56
+ ng e2e
57
+ ```
69
58
 
70
- 4. **`.editorconfig`**: This file contains the configurations for [EditorConfig](https://editorconfig.org/).
59
+ Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
71
60
 
72
- 5. **`.gitignore`**: This file tells git which files it should not track or maintain during the development process of your project.
61
+ ## Additional Resources
73
62
 
74
- 6. **`angular.json`**: This file contains all the configurations required for your Angular project.
75
-
76
- 7. **`LICENSE`**: The template is licensed under the MIT licence.
77
-
78
- 8. **`package-lock.json`**: This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. **(Do not change it manually).**
79
-
80
- 9. **`package.json`**: Standard manifest file for Node.js projects, which typically includes project specific metadata (such as the project's name, the author among other information). It's based on this file that npm will know which packages are necessary to the project.
81
-
82
- 10. **`tsconfig.app.json`**: This file contains auxiliary configurations for your Angular project.
83
-
84
- 11. **`tsconfig.json`**: This file contains configurations the required configurations for TypeScript.
85
-
86
- 12. **`tsconfig.spec.json`**: This is a TypeScript configuration file aimed for application testing.
87
-
88
- ## Contribute
89
-
90
- If you encounter an issue with the template, we encourage you to open an issue in this template's repository.
91
-
92
- ## Learning Storybook
93
-
94
- 1. Read our introductory tutorial at [Learn Storybook](https://storybook.js.org/tutorials/intro-to-storybook/angular/en/get-started/).
95
- 2. Learn how to transform your component libraries into design systems in our [Design Systems for Developers](https://storybook.js.org/tutorials/design-systems-for-developers/) tutorial.
96
- 3. See our official documentation at [Storybook](https://storybook.js.org/).
63
+ For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,329 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, EventEmitter, Input, Output, NgModule, forwardRef } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i1$1 from '@angular/material/icon';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import * as i2 from '@angular/material/button';
8
+ import { MatButtonModule } from '@angular/material/button';
9
+ import * as i4 from '@angular/material/menu';
10
+ import { MatMenuModule } from '@angular/material/menu';
11
+ import * as i2$1 from '@angular/platform-browser';
12
+ import * as i2$2 from '@angular/forms';
13
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
14
+ import * as i3 from '@angular/material/form-field';
15
+ import { MatFormFieldModule } from '@angular/material/form-field';
16
+ import * as i4$1 from '@angular/material/input';
17
+ import { MatInputModule } from '@angular/material/input';
18
+ import * as i5 from '@angular/material/select';
19
+ import { MatSelectModule } from '@angular/material/select';
20
+ import { MatOptionModule } from '@angular/material/core';
21
+
22
+ class AllsorterLibService {
23
+ constructor() { }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: AllsorterLibService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: AllsorterLibService, providedIn: 'root' }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: AllsorterLibService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root'
31
+ }]
32
+ }], ctorParameters: () => [] });
33
+
34
+ class AllsorterLibComponent {
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: AllsorterLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: AllsorterLibComponent, isStandalone: true, selector: "lib-allsorter-lib", ngImport: i0, template: `
37
+ <p>
38
+ allsorter-lib works!
39
+ </p>
40
+ `, isInline: true, styles: [""] }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: AllsorterLibComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'lib-allsorter-lib', imports: [], template: `
45
+ <p>
46
+ allsorter-lib works!
47
+ </p>
48
+ ` }]
49
+ }] });
50
+
51
+ class ButtonComponent {
52
+ constructor() {
53
+ this.state = 'default';
54
+ this.label = ' '; // Default label
55
+ this.arialabel = ' '; // Default label
56
+ this.iconOnly = false; // Toggle for icon-only button
57
+ this.leftIcon = ''; // ✅ Default to null
58
+ this.rightIcon = ''; // ✅ Default to null
59
+ /** Show/hide left icon (Storybook control) */
60
+ this.showLeftIcon = true;
61
+ /** Show/hide right icon (Storybook control) */
62
+ this.showRightIcon = true;
63
+ /** If true, use outlined style for icons */
64
+ this.outlined = false;
65
+ this.color = 'primary';
66
+ /** Text size option for label and icons */
67
+ this.size = 'base';
68
+ /** Visual type of button: icon only circle, icon+label, two icons + label */
69
+ this.buttonType = 'icon-label';
70
+ /** Optional typography class, e.g. 'font-display-large' */
71
+ this.fontClass = '';
72
+ this.onClick = new EventEmitter(); // Initialize
73
+ this.onHover = new EventEmitter(); // Initialize
74
+ this.onMouseLeave = new EventEmitter(); // Initialize
75
+ /** Dropdown menu options, used when buttonType is 'dropdown' */
76
+ this.dropdownOptions = [];
77
+ /** Emits the selected dropdown option's value */
78
+ this.optionSelect = new EventEmitter();
79
+ this.stateClasses = {
80
+ default: 'btn-default',
81
+ hover: 'btn-hover',
82
+ pressed: 'btn-pressed',
83
+ disabled: 'btn-disabled',
84
+ };
85
+ }
86
+ /**
87
+ * Returns the typography class to apply. If the consumer passes `fontClass`,
88
+ * that value wins. Otherwise we derive a sensible default based on `size`.
89
+ */
90
+ get effectiveFontClass() {
91
+ if (this.fontClass) {
92
+ return this.fontClass;
93
+ }
94
+ switch (this.size) {
95
+ case 'xs':
96
+ return 'font-body-small';
97
+ case 'sm':
98
+ case 'base':
99
+ return 'font-body-medium';
100
+ case 'l':
101
+ case 'xl':
102
+ case 'header':
103
+ return 'font-body-large';
104
+ default:
105
+ return '';
106
+ }
107
+ }
108
+ selectOption(option) {
109
+ this.optionSelect.emit(option?.value ?? option);
110
+ }
111
+ computeGap() {
112
+ // Header size uses a tighter 4px gap across all combinations
113
+ if (this.size === 'header') {
114
+ return 4;
115
+ }
116
+ const hasLabel = !!(this.label && this.label.trim()) && !this.iconOnly;
117
+ const leftIconPresent = !!(this.leftIcon && this.leftIcon.trim());
118
+ const rightIconPresent = !!(this.rightIcon && this.rightIcon.trim());
119
+ const iconCount = (leftIconPresent ? 1 : 0) + (rightIconPresent ? 1 : 0);
120
+ // 0 gap for purely icon-only buttons (≤1 icon and no label)
121
+ if (!hasLabel && iconCount <= 1) {
122
+ return 0;
123
+ }
124
+ // Tighter gap when we have two icons and a label (e.g., two-icon buttons)
125
+ if (iconCount === 2 && !hasLabel) {
126
+ return 4;
127
+ }
128
+ // Default gap
129
+ return 8;
130
+ }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: ButtonComponent, isStandalone: true, selector: "al-button", inputs: { state: "state", category: "category", label: "label", arialabel: "arialabel", iconOnly: "iconOnly", leftIcon: "leftIcon", rightIcon: "rightIcon", showLeftIcon: "showLeftIcon", showRightIcon: "showRightIcon", outlined: "outlined", color: "color", size: "size", buttonType: "buttonType", fontClass: "fontClass", dropdownOptions: "dropdownOptions" }, outputs: { onClick: "onClick", onHover: "onHover", onMouseLeave: "onMouseLeave", optionSelect: "optionSelect" }, ngImport: i0, template: "<!-- Regular button types -->\n<ng-container *ngIf=\"buttonType !== 'dropdown'; else dropdownTpl\">\n <button\n mat-flat-button\n class=\"btn custom-button\" [class]=\"effectiveFontClass\"\n [ngClass]=\"{\n 'size-header': size === 'header' && !fontClass,\n 'size-xs': size === 'xs' && !fontClass,\n 'size-sm': size === 'sm' && !fontClass,\n 'size-base': size === 'base' && !fontClass,\n 'size-l': size === 'l' && !fontClass,\n 'size-xl': size === 'xl' && !fontClass,\n 'mat-raised-button': variant === 'raised',\n 'mat-flat-button': variant === 'flat',\n \n 'mat-stroked-button': variant === 'stroked',\n 'mat-fab': variant === 'fab',\n 'mat-icon-button': variant === 'icon',\n 'icon-circle': buttonType === 'icon-circle',\n 'icon-label': buttonType === 'icon-label',\n 'two-icon-label': buttonType === 'two-icon-label',\n 'blue': category === 'blue',\n 'green': category === 'green',\n 'grey': category === 'grey',\n 'error': category === 'error',\n 'gradient': category === 'gradient',\n 'blue-no-outline': category === 'blue-no-outline',\n 'green-no-outline': category === 'green-no-outline',\n 'grey-no-outline': category === 'grey-no-outline',\n 'error-no-outline': category === 'error-no-outline',\n 'btn-default': state === 'default',\n 'btn-hover': state === 'hover',\n 'btn-pressed': state === 'pressed',\n 'btn-disabled': state === 'disabled'\n }\"\n [ngStyle]=\"{ color: color }\"\n [disabled]=\"state === 'disabled'\"\n (click)=\"onClick.emit($event)\"\n (mouseenter)=\"onHover.emit($event)\"\n (mouseleave)=\"onMouseLeave.emit($event)\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.gap.px]=\"computeGap()\"\n >\n <!-- Left Icon (Only shown if leftIcon is set and not empty) -->\n <mat-icon *ngIf=\"leftIcon?.trim() as leftIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"left-icon\">{{ leftIconText }}</mat-icon>\n <!-- Label (Only shown if iconOnly is false) -->\n <span *ngIf=\"!iconOnly\" class=\"button-label\" [ngStyle]=\"{ color: color }\">{{ label || '' }}</span>\n \n <!-- Right Icon (Only shown if rightIcon is set and not empty) -->\n <mat-icon *ngIf=\"rightIcon?.trim() as rightIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"right-icon\">{{ rightIconText }}</mat-icon>\n </button>\n </ng-container>\n \n <!-- Dropdown button template -->\n <ng-template #dropdownTpl>\n <button\n mat-flat-button\n class=\"btn custom-button\" [class]=\"effectiveFontClass\"\n [ngClass]=\"{\n 'size-header': size === 'header' && !fontClass,\n 'size-xs': size === 'xs' && !fontClass,\n 'size-sm': size === 'sm' && !fontClass,\n 'size-base': size === 'base' && !fontClass,\n 'size-l': size === 'l' && !fontClass,\n 'size-xl': size === 'xl' && !fontClass,\n 'mat-raised-button': variant === 'raised',\n 'mat-flat-button': variant === 'flat',\n 'mat-stroked-button': variant === 'stroked',\n 'mat-fab': variant === 'fab',\n 'mat-icon-button': variant === 'icon',\n 'icon-label': true,\n 'blue': category === 'blue',\n 'green': category === 'green',\n 'grey': category === 'grey',\n 'error': category === 'error',\n 'gradient': category === 'gradient',\n 'blue-no-outline': category === 'blue-no-outline',\n 'green-no-outline': category === 'green-no-outline',\n 'grey-no-outline': category === 'grey-no-outline',\n 'error-no-outline': category === 'error-no-outline',\n 'btn-default': state === 'default',\n 'btn-hover': state === 'hover',\n 'btn-pressed': state === 'pressed',\n 'btn-disabled': state === 'disabled',\n \n }\"\n [ngStyle]=\"{ color: color }\"\n [disabled]=\"state === 'disabled'\"\n (mouseenter)=\"onHover.emit($event)\"\n (mouseleave)=\"onMouseLeave.emit($event)\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.gap.px]=\"computeGap()\"\n [matMenuTriggerFor]=\"menu\"\n >\n <!-- Left Icon (optional) -->\n <mat-icon *ngIf=\"leftIcon?.trim() as leftIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"left-icon\">{{ leftIconText }}</mat-icon>\n <!-- Label -->\n <span *ngIf=\"!iconOnly\" class=\"button-label\" [ngStyle]=\"{ color: color }\">{{ label || '' }}</span>\n <!-- Dropdown Arrow Icon -->\n <mat-icon class=\"right-icon\">arrow_drop_down</mat-icon>\n </button>\n <!-- Mat Menu -->\n <mat-menu #menu=\"matMenu\" panelClass=\"custom-dropdown-menu\">\n <button mat-menu-item *ngFor=\"let opt of dropdownOptions\" (click)=\"selectOption(opt)\" [ngClass]=\"effectiveFontClass\">\n {{ opt.label || opt }}\n </button>\n </mat-menu>\n </ng-template>", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined\";@import\"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap\";.font-display-large{font-family:Roboto,sans-serif!important;font-size:57px;font-style:normal;font-weight:400;line-height:64px;letter-spacing:-.25px}.font-display-medium{font-family:Roboto,sans-serif!important;font-size:45px;font-style:normal;font-weight:400;line-height:52px}.font-display-small{font-family:Roboto,sans-serif!important;font-size:36px;font-style:normal;font-weight:400;line-height:44px}.font-headline-large{font-family:Roboto,sans-serif!important;font-size:32px;font-style:normal;font-weight:400;line-height:40px}.font-headline-medium{font-family:Roboto,sans-serif!important;font-size:28px;font-style:normal;font-weight:400;line-height:36px}.font-headline-small{font-family:Roboto,sans-serif!important;font-size:24px;font-style:normal;font-weight:400;line-height:32px}.font-title-large{font-family:Roboto,sans-serif!important;font-size:22px;font-style:normal;font-weight:400;line-height:28px}.font-title-medium{font-family:Roboto,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.15px}.font-title-small{font-family:Roboto,sans-serif!important;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.1px}.font-label-large{font-family:Roboto,sans-serif!important;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.1px}.font-label-medium{font-family:Roboto,sans-serif!important;font-size:12px;font-style:normal;font-weight:400;line-height:12px;letter-spacing:.5px}.font-label-small{font-family:Roboto,sans-serif!important;font-size:10px;font-style:normal;font-weight:400;line-height:10px;letter-spacing:.5px}.font-body-large{font-family:Roboto,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px}.font-body-medium{font-family:Roboto,sans-serif!important;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.font-body-small{font-family:Roboto,sans-serif!important;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.4px}.material-icons-outlined{font-family:Material Icons Outlined;font-weight:400;font-style:normal;font-feature-settings:\"liga\";font-variation-settings:\"FILL\" 0,\"wght\" 400,\"GRAD\" 0,\"opsz\" 24}.mdc-button.btn{border-radius:5px;display:flex;align-items:center;cursor:pointer;border:none;transition:background .2s,border .2s,transform .1s;min-width:auto!important;gap:8px;height:auto!important}.mdc-button.btn-primary1{background-color:#5473e8;color:#fff}.mdc-button.btn-primary2{background-color:#37c1ce;color:#fff}.mdc-button.btn-secondary{background-color:#383b4a;color:#fff}.mdc-button.btn-destructive{background-color:#e854a4;color:#fff}.mdc-button.btn-gradient{background:linear-gradient(275deg,#5473e8 -36.22%,#37c1ce 100.04%);color:#fff}.mdc-button.btn-primary2:hover{background-color:#4bc7d3!important}.mdc-button.btn-primary2:active{background-color:#299da8!important}.mdc-button.btn-primary2:outlined{background-color:#fff;border-radius:4px;border:1px solid #37c1ce}.mdc-button.btn-primary1:hover{background-color:#6581ea!important}.mdc-button.btn-primary1:active{background-color:#1e46df!important}.mdc-button.btn-primary1:outlined{background-color:#fff;border-radius:4px;border:1px solid #5473e8}.mdc-button.btn-secondary:hover{background-color:#4b4f62!important}.mdc-button.btn-secondary:active{background-color:#252831!important}.mdc-button.btn-secondary:outlined{background-color:#fff;border-radius:4px;border:1px solid #383B4A}.mdc-button.btn-destructive:hover{background-color:#ef87bf!important}.mdc-button.btn-destructive:active{background-color:#e22a8e!important}.mdc-button.btn-destructive:outlined{background-color:#fff;border-radius:4px;border:1px solid #E854A4}.mdc-button.btn-gradient:hover{background:linear-gradient(275deg,#4a90e2 -36.22%,#2bbbad 100.04%)!important}.mdc-button.btn-gradient:active{background:linear-gradient(275deg,#42a5f5 -36.22%,#1e88e5 100.04%)!important}.mdc-button.btn-disabled{border:none!important;background-color:#b0b0b0;color:#666;cursor:not-allowed}.mdc-button.btn-outlined{background:transparent;border:2px solid currentColor}.blue{background-color:#5473e8!important;color:#fff}.blue.btn-hover,.blue:hover{background-color:#6581ea!important}.blue.btn-pressed,.blue:active{background-color:#1e46df!important}.green{background-color:#37c1ce!important;color:#fff}.green.btn-hover,.green:hover{background-color:#4bc7d3!important}.green.btn-pressed,.green:active{background-color:#299da8!important}.grey{background-color:#383b4a!important;color:#fff}.grey.btn-hover,.grey:hover{background-color:#4b4f62!important}.grey.btn-pressed,.grey:active{background-color:#252831!important}.error{background-color:#e854a4!important;color:#fff}.error.btn-hover,.error:hover{background-color:#ef87bf!important}.error.btn-pressed,.error:active{background-color:#e22a8e!important}.gradient{background:linear-gradient(275deg,#5473e8 -36.22%,#37c1ce 100.04%);color:#fff}.gradient.btn-hover,.gradient:hover{opacity:.9}.gradient.btn-pressed,.gradient:active{opacity:.8}.btn.custom-button>*+*{margin-left:8px}.two-icon-label{padding:4px 12px!important}button.two-icon-label .mat-icon{width:20px!important;height:20px!important}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format(\"woff2\")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}.left-icon{order:0}.right-icon{order:2}mat-icon.mat-icon{margin:0!important;padding:0!important}.size-header{font-size:20px;padding:4px 12px!important}.size-xs{font-size:12px;padding:8px 12px!important}.size-sm{font-size:14px;padding:8px 12px!important}.size-base{font-size:14px;padding:10px 20px!important}.size-l{font-size:16px;padding:12px 20px!important}.size-xl{font-size:16px;padding:14px 24px!important}.size-header .mat-icon{font-size:20px}.size-xs .mat-icon,.size-sm .mat-icon,.size-base .mat-icon{font-size:16px}.size-l .mat-icon,.size-xl .mat-icon{font-size:20px}.btn.size-header{gap:4px!important;padding:4px 12px!important}::ng-deep .custom-dropdown-menu.mat-mdc-menu-panel,::ng-deep .custom-dropdown-menu.mat-menu-panel{padding:0;border-radius:8px;box-shadow:0 2px 6px #00000026;border:1px solid rgba(0,0,0,.12)}::ng-deep .custom-dropdown-menu .mat-mdc-menu-content,::ng-deep .custom-dropdown-menu .mat-menu-content{padding:0}::ng-deep .custom-dropdown-menu .mat-mdc-menu-item,::ng-deep .custom-dropdown-menu .mat-menu-item{font-family:Roboto,sans-serif;font-size:16px;line-height:24px;height:56px;padding:16px 24px;color:#47515e}::ng-deep .custom-dropdown-menu .mat-mdc-menu-item:hover,::ng-deep .custom-dropdown-menu .mat-menu-item:hover{background:#f5f6f7}::ng-deep .custom-dropdown-menu .mat-mdc-menu-item+.mat-mdc-menu-item,::ng-deep .custom-dropdown-menu .mat-menu-item+.mat-menu-item{border-top:1px solid #EAECEE}::ng-deep .mat-mdc-menu-panel,::ng-deep .mat-menu-panel,::ng-deep .mdc-menu-surface{background-color:#fff!important;--mdc-theme-surface: #ffffff !important;--mdc-menu-container-color: #ffffff !important}::ng-deep .mat-mdc-menu-panel .mat-mdc-menu-content,::ng-deep .mat-menu-panel .mat-menu-content{background-color:#fff!important}.cdk-overlay-pane{z-index:1000!important;background:#fff!important}::ng-deep .mat-mdc-menu-panel,::ng-deep .mat-menu-panel,::ng-deep .mdc-menu-surface,.cdk-overlay-pane .mat-mdc-menu-panel,.cdk-overlay-pane .mdc-menu-surface,.cdk-overlay-pane .mat-menu-panel{background-color:#fff!important;--mdc-theme-surface:#ffffff !important;--mdc-menu-container-color:#fff !important}.mat-mdc-menu-panel,.mdc-menu-surface,.mat-menu-panel{--mdc-theme-surface: #ffffff !important;background-color:#fff!important}.cdk-overlay-pane .mat-mdc-menu-panel,.cdk-overlay-pane .mdc-menu-surface{--mdc-menu-container-color:#fff !important}.cdk-overlay-pane .mat-menu-panel,.cdk-overlay-pane .mat-mdc-menu-content,.cdk-overlay-pane .mat-menu-content{background:#fff!important}button.icon-circle{width:auto!important;height:auto!important;border-radius:50%!important;aspect-ratio:1/1;display:inline-flex;align-items:center;min-width:0!important;justify-content:center;padding:6px!important}.size-small.icon-circle{padding:4px!important}.size-medium.icon-circle{padding:8px!important}.size-large.icon-circle{padding:12px!important}.size-header.icon-circle{padding:4px!important}.size-header.icon-circle .mat-icon{width:10px;height:10px;font-size:10px}.size-xs.icon-circle{padding:4px!important}.size-xs.icon-circle .mat-icon{font-size:12px}.size-sm.icon-circle{padding:8px!important}.size-sm.icon-circle .mat-icon{font-size:12px}.size-base.icon-circle{padding:10px!important}.size-base.icon-circle .mat-icon{font-size:14px}.size-l.icon-circle{padding:12px!important}.size-l.icon-circle .mat-icon{font-size:16px}.size-xl.icon-circle{padding:14px!important}.size-xl.icon-circle .mat-icon{font-size:16px}.icon-xs{padding:4px!important}.mdc-button.blue{background-color:#5473e8;color:#fff}.mdc-button.blue:hover{background-color:#6581ea}.mdc-button.blue:active{background-color:#1e46df}.mdc-button.green{background-color:#37c1ce;color:#fff}.mdc-button.green:hover{background-color:#4bc7d3}.mdc-button.green:active{background-color:#299da8}.mdc-button.grey{background-color:#383b4a;color:#fff}.mdc-button.grey:hover{background-color:#4b4f62}.mdc-button.grey:active{background-color:#252831}.mdc-button.error{background-color:#e854a4;color:#fff}.mdc-button.error:hover{background-color:#ef87bf}.mdc-button.error:active{background-color:#e22a8e}.mdc-button.gradient{background:linear-gradient(275deg,#5473e8 -36.22%,#37c1ce 100.04%);color:#fff}.mdc-button.gradient:hover{background:linear-gradient(0deg,#fafafd4d 0% 100%),linear-gradient(275deg,#2bbbad 9.3%,#4a90e2 115.85%)}.mdc-button.gradient:active{background:linear-gradient(0deg,#383b4a80 0% 100%),linear-gradient(275deg,#2bbbad 9.3%,#4a90e2 115.85%)}.mdc-button.disabled,.mdc-button:disabled{background-color:#d1d3db!important;color:#666!important;cursor:not-allowed!important}.mdc-button.blue-no-outline{background-color:#fff;color:#5473e8;border:1px solid #5473E8}.mdc-button.blue-no-outline:hover{background-color:#6581ea;color:#fff}.mdc-button.blue-no-outline:active{background-color:#1e46df;color:#fff}.mdc-button.green-no-outline{background-color:#fff;color:#37c1ce;border:1px solid #37C1CE}.mdc-button.green-no-outline:hover{background-color:#4bc7d3;color:#fff}.mdc-button.green-no-outline:active{background-color:#299da8;color:#fff}.mdc-button.grey-no-outline{background-color:#fff;color:#383b4a;border:1px solid #383B4A}.mdc-button.grey-no-outline:hover{background-color:#4b4f62;color:#fff}.mdc-button.grey-no-outline:active{background-color:#252831;color:#fff}.mdc-button.error-no-outline{background-color:#fff;color:#e854a4;border:1px solid #E854A4}.mdc-button.error-no-outline:hover{background-color:#ef87bf;color:#fff}.mdc-button.error-no-outline:active{background-color:#e22a8e;color:#fff}::ng-deep .cdk-overlay-pane{border-radius:6px!important;box-shadow:0 2px 6px #00000026!important}::ng-deep .mat-mdc-menu-panel{padding:4px 0!important;background-color:#fff!important;min-width:180px!important;border-radius:6px!important;box-shadow:none!important}::ng-deep .mat-mdc-menu-item{font-family:Roboto,sans-serif;font-size:14px;color:#333;padding:12px 16px;border-radius:0!important;transition:background .2s ease-in-out}::ng-deep .mat-mdc-menu-item:hover{background-color:#f5f5f5!important}.mat-mdc-unelevated-button>.mat-icon{line-height:18px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
133
+ }
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ButtonComponent, decorators: [{
135
+ type: Component,
136
+ args: [{ selector: 'al-button', imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule], standalone: true, template: "<!-- Regular button types -->\n<ng-container *ngIf=\"buttonType !== 'dropdown'; else dropdownTpl\">\n <button\n mat-flat-button\n class=\"btn custom-button\" [class]=\"effectiveFontClass\"\n [ngClass]=\"{\n 'size-header': size === 'header' && !fontClass,\n 'size-xs': size === 'xs' && !fontClass,\n 'size-sm': size === 'sm' && !fontClass,\n 'size-base': size === 'base' && !fontClass,\n 'size-l': size === 'l' && !fontClass,\n 'size-xl': size === 'xl' && !fontClass,\n 'mat-raised-button': variant === 'raised',\n 'mat-flat-button': variant === 'flat',\n \n 'mat-stroked-button': variant === 'stroked',\n 'mat-fab': variant === 'fab',\n 'mat-icon-button': variant === 'icon',\n 'icon-circle': buttonType === 'icon-circle',\n 'icon-label': buttonType === 'icon-label',\n 'two-icon-label': buttonType === 'two-icon-label',\n 'blue': category === 'blue',\n 'green': category === 'green',\n 'grey': category === 'grey',\n 'error': category === 'error',\n 'gradient': category === 'gradient',\n 'blue-no-outline': category === 'blue-no-outline',\n 'green-no-outline': category === 'green-no-outline',\n 'grey-no-outline': category === 'grey-no-outline',\n 'error-no-outline': category === 'error-no-outline',\n 'btn-default': state === 'default',\n 'btn-hover': state === 'hover',\n 'btn-pressed': state === 'pressed',\n 'btn-disabled': state === 'disabled'\n }\"\n [ngStyle]=\"{ color: color }\"\n [disabled]=\"state === 'disabled'\"\n (click)=\"onClick.emit($event)\"\n (mouseenter)=\"onHover.emit($event)\"\n (mouseleave)=\"onMouseLeave.emit($event)\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.gap.px]=\"computeGap()\"\n >\n <!-- Left Icon (Only shown if leftIcon is set and not empty) -->\n <mat-icon *ngIf=\"leftIcon?.trim() as leftIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"left-icon\">{{ leftIconText }}</mat-icon>\n <!-- Label (Only shown if iconOnly is false) -->\n <span *ngIf=\"!iconOnly\" class=\"button-label\" [ngStyle]=\"{ color: color }\">{{ label || '' }}</span>\n \n <!-- Right Icon (Only shown if rightIcon is set and not empty) -->\n <mat-icon *ngIf=\"rightIcon?.trim() as rightIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"right-icon\">{{ rightIconText }}</mat-icon>\n </button>\n </ng-container>\n \n <!-- Dropdown button template -->\n <ng-template #dropdownTpl>\n <button\n mat-flat-button\n class=\"btn custom-button\" [class]=\"effectiveFontClass\"\n [ngClass]=\"{\n 'size-header': size === 'header' && !fontClass,\n 'size-xs': size === 'xs' && !fontClass,\n 'size-sm': size === 'sm' && !fontClass,\n 'size-base': size === 'base' && !fontClass,\n 'size-l': size === 'l' && !fontClass,\n 'size-xl': size === 'xl' && !fontClass,\n 'mat-raised-button': variant === 'raised',\n 'mat-flat-button': variant === 'flat',\n 'mat-stroked-button': variant === 'stroked',\n 'mat-fab': variant === 'fab',\n 'mat-icon-button': variant === 'icon',\n 'icon-label': true,\n 'blue': category === 'blue',\n 'green': category === 'green',\n 'grey': category === 'grey',\n 'error': category === 'error',\n 'gradient': category === 'gradient',\n 'blue-no-outline': category === 'blue-no-outline',\n 'green-no-outline': category === 'green-no-outline',\n 'grey-no-outline': category === 'grey-no-outline',\n 'error-no-outline': category === 'error-no-outline',\n 'btn-default': state === 'default',\n 'btn-hover': state === 'hover',\n 'btn-pressed': state === 'pressed',\n 'btn-disabled': state === 'disabled',\n \n }\"\n [ngStyle]=\"{ color: color }\"\n [disabled]=\"state === 'disabled'\"\n (mouseenter)=\"onHover.emit($event)\"\n (mouseleave)=\"onMouseLeave.emit($event)\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.gap.px]=\"computeGap()\"\n [matMenuTriggerFor]=\"menu\"\n >\n <!-- Left Icon (optional) -->\n <mat-icon *ngIf=\"leftIcon?.trim() as leftIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"left-icon\">{{ leftIconText }}</mat-icon>\n <!-- Label -->\n <span *ngIf=\"!iconOnly\" class=\"button-label\" [ngStyle]=\"{ color: color }\">{{ label || '' }}</span>\n <!-- Dropdown Arrow Icon -->\n <mat-icon class=\"right-icon\">arrow_drop_down</mat-icon>\n </button>\n <!-- Mat Menu -->\n <mat-menu #menu=\"matMenu\" panelClass=\"custom-dropdown-menu\">\n <button mat-menu-item *ngFor=\"let opt of dropdownOptions\" (click)=\"selectOption(opt)\" [ngClass]=\"effectiveFontClass\">\n {{ opt.label || opt }}\n </button>\n </mat-menu>\n </ng-template>", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined\";@import\"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap\";.font-display-large{font-family:Roboto,sans-serif!important;font-size:57px;font-style:normal;font-weight:400;line-height:64px;letter-spacing:-.25px}.font-display-medium{font-family:Roboto,sans-serif!important;font-size:45px;font-style:normal;font-weight:400;line-height:52px}.font-display-small{font-family:Roboto,sans-serif!important;font-size:36px;font-style:normal;font-weight:400;line-height:44px}.font-headline-large{font-family:Roboto,sans-serif!important;font-size:32px;font-style:normal;font-weight:400;line-height:40px}.font-headline-medium{font-family:Roboto,sans-serif!important;font-size:28px;font-style:normal;font-weight:400;line-height:36px}.font-headline-small{font-family:Roboto,sans-serif!important;font-size:24px;font-style:normal;font-weight:400;line-height:32px}.font-title-large{font-family:Roboto,sans-serif!important;font-size:22px;font-style:normal;font-weight:400;line-height:28px}.font-title-medium{font-family:Roboto,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.15px}.font-title-small{font-family:Roboto,sans-serif!important;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.1px}.font-label-large{font-family:Roboto,sans-serif!important;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:.1px}.font-label-medium{font-family:Roboto,sans-serif!important;font-size:12px;font-style:normal;font-weight:400;line-height:12px;letter-spacing:.5px}.font-label-small{font-family:Roboto,sans-serif!important;font-size:10px;font-style:normal;font-weight:400;line-height:10px;letter-spacing:.5px}.font-body-large{font-family:Roboto,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.5px}.font-body-medium{font-family:Roboto,sans-serif!important;font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.font-body-small{font-family:Roboto,sans-serif!important;font-size:12px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.4px}.material-icons-outlined{font-family:Material Icons Outlined;font-weight:400;font-style:normal;font-feature-settings:\"liga\";font-variation-settings:\"FILL\" 0,\"wght\" 400,\"GRAD\" 0,\"opsz\" 24}.mdc-button.btn{border-radius:5px;display:flex;align-items:center;cursor:pointer;border:none;transition:background .2s,border .2s,transform .1s;min-width:auto!important;gap:8px;height:auto!important}.mdc-button.btn-primary1{background-color:#5473e8;color:#fff}.mdc-button.btn-primary2{background-color:#37c1ce;color:#fff}.mdc-button.btn-secondary{background-color:#383b4a;color:#fff}.mdc-button.btn-destructive{background-color:#e854a4;color:#fff}.mdc-button.btn-gradient{background:linear-gradient(275deg,#5473e8 -36.22%,#37c1ce 100.04%);color:#fff}.mdc-button.btn-primary2:hover{background-color:#4bc7d3!important}.mdc-button.btn-primary2:active{background-color:#299da8!important}.mdc-button.btn-primary2:outlined{background-color:#fff;border-radius:4px;border:1px solid #37c1ce}.mdc-button.btn-primary1:hover{background-color:#6581ea!important}.mdc-button.btn-primary1:active{background-color:#1e46df!important}.mdc-button.btn-primary1:outlined{background-color:#fff;border-radius:4px;border:1px solid #5473e8}.mdc-button.btn-secondary:hover{background-color:#4b4f62!important}.mdc-button.btn-secondary:active{background-color:#252831!important}.mdc-button.btn-secondary:outlined{background-color:#fff;border-radius:4px;border:1px solid #383B4A}.mdc-button.btn-destructive:hover{background-color:#ef87bf!important}.mdc-button.btn-destructive:active{background-color:#e22a8e!important}.mdc-button.btn-destructive:outlined{background-color:#fff;border-radius:4px;border:1px solid #E854A4}.mdc-button.btn-gradient:hover{background:linear-gradient(275deg,#4a90e2 -36.22%,#2bbbad 100.04%)!important}.mdc-button.btn-gradient:active{background:linear-gradient(275deg,#42a5f5 -36.22%,#1e88e5 100.04%)!important}.mdc-button.btn-disabled{border:none!important;background-color:#b0b0b0;color:#666;cursor:not-allowed}.mdc-button.btn-outlined{background:transparent;border:2px solid currentColor}.blue{background-color:#5473e8!important;color:#fff}.blue.btn-hover,.blue:hover{background-color:#6581ea!important}.blue.btn-pressed,.blue:active{background-color:#1e46df!important}.green{background-color:#37c1ce!important;color:#fff}.green.btn-hover,.green:hover{background-color:#4bc7d3!important}.green.btn-pressed,.green:active{background-color:#299da8!important}.grey{background-color:#383b4a!important;color:#fff}.grey.btn-hover,.grey:hover{background-color:#4b4f62!important}.grey.btn-pressed,.grey:active{background-color:#252831!important}.error{background-color:#e854a4!important;color:#fff}.error.btn-hover,.error:hover{background-color:#ef87bf!important}.error.btn-pressed,.error:active{background-color:#e22a8e!important}.gradient{background:linear-gradient(275deg,#5473e8 -36.22%,#37c1ce 100.04%);color:#fff}.gradient.btn-hover,.gradient:hover{opacity:.9}.gradient.btn-pressed,.gradient:active{opacity:.8}.btn.custom-button>*+*{margin-left:8px}.two-icon-label{padding:4px 12px!important}button.two-icon-label .mat-icon{width:20px!important;height:20px!important}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format(\"woff2\")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}.left-icon{order:0}.right-icon{order:2}mat-icon.mat-icon{margin:0!important;padding:0!important}.size-header{font-size:20px;padding:4px 12px!important}.size-xs{font-size:12px;padding:8px 12px!important}.size-sm{font-size:14px;padding:8px 12px!important}.size-base{font-size:14px;padding:10px 20px!important}.size-l{font-size:16px;padding:12px 20px!important}.size-xl{font-size:16px;padding:14px 24px!important}.size-header .mat-icon{font-size:20px}.size-xs .mat-icon,.size-sm .mat-icon,.size-base .mat-icon{font-size:16px}.size-l .mat-icon,.size-xl .mat-icon{font-size:20px}.btn.size-header{gap:4px!important;padding:4px 12px!important}::ng-deep .custom-dropdown-menu.mat-mdc-menu-panel,::ng-deep .custom-dropdown-menu.mat-menu-panel{padding:0;border-radius:8px;box-shadow:0 2px 6px #00000026;border:1px solid rgba(0,0,0,.12)}::ng-deep .custom-dropdown-menu .mat-mdc-menu-content,::ng-deep .custom-dropdown-menu .mat-menu-content{padding:0}::ng-deep .custom-dropdown-menu .mat-mdc-menu-item,::ng-deep .custom-dropdown-menu .mat-menu-item{font-family:Roboto,sans-serif;font-size:16px;line-height:24px;height:56px;padding:16px 24px;color:#47515e}::ng-deep .custom-dropdown-menu .mat-mdc-menu-item:hover,::ng-deep .custom-dropdown-menu .mat-menu-item:hover{background:#f5f6f7}::ng-deep .custom-dropdown-menu .mat-mdc-menu-item+.mat-mdc-menu-item,::ng-deep .custom-dropdown-menu .mat-menu-item+.mat-menu-item{border-top:1px solid #EAECEE}::ng-deep .mat-mdc-menu-panel,::ng-deep .mat-menu-panel,::ng-deep .mdc-menu-surface{background-color:#fff!important;--mdc-theme-surface: #ffffff !important;--mdc-menu-container-color: #ffffff !important}::ng-deep .mat-mdc-menu-panel .mat-mdc-menu-content,::ng-deep .mat-menu-panel .mat-menu-content{background-color:#fff!important}.cdk-overlay-pane{z-index:1000!important;background:#fff!important}::ng-deep .mat-mdc-menu-panel,::ng-deep .mat-menu-panel,::ng-deep .mdc-menu-surface,.cdk-overlay-pane .mat-mdc-menu-panel,.cdk-overlay-pane .mdc-menu-surface,.cdk-overlay-pane .mat-menu-panel{background-color:#fff!important;--mdc-theme-surface:#ffffff !important;--mdc-menu-container-color:#fff !important}.mat-mdc-menu-panel,.mdc-menu-surface,.mat-menu-panel{--mdc-theme-surface: #ffffff !important;background-color:#fff!important}.cdk-overlay-pane .mat-mdc-menu-panel,.cdk-overlay-pane .mdc-menu-surface{--mdc-menu-container-color:#fff !important}.cdk-overlay-pane .mat-menu-panel,.cdk-overlay-pane .mat-mdc-menu-content,.cdk-overlay-pane .mat-menu-content{background:#fff!important}button.icon-circle{width:auto!important;height:auto!important;border-radius:50%!important;aspect-ratio:1/1;display:inline-flex;align-items:center;min-width:0!important;justify-content:center;padding:6px!important}.size-small.icon-circle{padding:4px!important}.size-medium.icon-circle{padding:8px!important}.size-large.icon-circle{padding:12px!important}.size-header.icon-circle{padding:4px!important}.size-header.icon-circle .mat-icon{width:10px;height:10px;font-size:10px}.size-xs.icon-circle{padding:4px!important}.size-xs.icon-circle .mat-icon{font-size:12px}.size-sm.icon-circle{padding:8px!important}.size-sm.icon-circle .mat-icon{font-size:12px}.size-base.icon-circle{padding:10px!important}.size-base.icon-circle .mat-icon{font-size:14px}.size-l.icon-circle{padding:12px!important}.size-l.icon-circle .mat-icon{font-size:16px}.size-xl.icon-circle{padding:14px!important}.size-xl.icon-circle .mat-icon{font-size:16px}.icon-xs{padding:4px!important}.mdc-button.blue{background-color:#5473e8;color:#fff}.mdc-button.blue:hover{background-color:#6581ea}.mdc-button.blue:active{background-color:#1e46df}.mdc-button.green{background-color:#37c1ce;color:#fff}.mdc-button.green:hover{background-color:#4bc7d3}.mdc-button.green:active{background-color:#299da8}.mdc-button.grey{background-color:#383b4a;color:#fff}.mdc-button.grey:hover{background-color:#4b4f62}.mdc-button.grey:active{background-color:#252831}.mdc-button.error{background-color:#e854a4;color:#fff}.mdc-button.error:hover{background-color:#ef87bf}.mdc-button.error:active{background-color:#e22a8e}.mdc-button.gradient{background:linear-gradient(275deg,#5473e8 -36.22%,#37c1ce 100.04%);color:#fff}.mdc-button.gradient:hover{background:linear-gradient(0deg,#fafafd4d 0% 100%),linear-gradient(275deg,#2bbbad 9.3%,#4a90e2 115.85%)}.mdc-button.gradient:active{background:linear-gradient(0deg,#383b4a80 0% 100%),linear-gradient(275deg,#2bbbad 9.3%,#4a90e2 115.85%)}.mdc-button.disabled,.mdc-button:disabled{background-color:#d1d3db!important;color:#666!important;cursor:not-allowed!important}.mdc-button.blue-no-outline{background-color:#fff;color:#5473e8;border:1px solid #5473E8}.mdc-button.blue-no-outline:hover{background-color:#6581ea;color:#fff}.mdc-button.blue-no-outline:active{background-color:#1e46df;color:#fff}.mdc-button.green-no-outline{background-color:#fff;color:#37c1ce;border:1px solid #37C1CE}.mdc-button.green-no-outline:hover{background-color:#4bc7d3;color:#fff}.mdc-button.green-no-outline:active{background-color:#299da8;color:#fff}.mdc-button.grey-no-outline{background-color:#fff;color:#383b4a;border:1px solid #383B4A}.mdc-button.grey-no-outline:hover{background-color:#4b4f62;color:#fff}.mdc-button.grey-no-outline:active{background-color:#252831;color:#fff}.mdc-button.error-no-outline{background-color:#fff;color:#e854a4;border:1px solid #E854A4}.mdc-button.error-no-outline:hover{background-color:#ef87bf;color:#fff}.mdc-button.error-no-outline:active{background-color:#e22a8e;color:#fff}::ng-deep .cdk-overlay-pane{border-radius:6px!important;box-shadow:0 2px 6px #00000026!important}::ng-deep .mat-mdc-menu-panel{padding:4px 0!important;background-color:#fff!important;min-width:180px!important;border-radius:6px!important;box-shadow:none!important}::ng-deep .mat-mdc-menu-item{font-family:Roboto,sans-serif;font-size:14px;color:#333;padding:12px 16px;border-radius:0!important;transition:background .2s ease-in-out}::ng-deep .mat-mdc-menu-item:hover{background-color:#f5f5f5!important}.mat-mdc-unelevated-button>.mat-icon{line-height:18px!important}\n"] }]
137
+ }], propDecorators: { state: [{
138
+ type: Input
139
+ }], category: [{
140
+ type: Input
141
+ }], label: [{
142
+ type: Input
143
+ }], arialabel: [{
144
+ type: Input
145
+ }], iconOnly: [{
146
+ type: Input
147
+ }], leftIcon: [{
148
+ type: Input
149
+ }], rightIcon: [{
150
+ type: Input
151
+ }], showLeftIcon: [{
152
+ type: Input
153
+ }], showRightIcon: [{
154
+ type: Input
155
+ }], outlined: [{
156
+ type: Input
157
+ }], color: [{
158
+ type: Input
159
+ }], size: [{
160
+ type: Input
161
+ }], buttonType: [{
162
+ type: Input
163
+ }], fontClass: [{
164
+ type: Input
165
+ }], onClick: [{
166
+ type: Output
167
+ }], onHover: [{
168
+ type: Output
169
+ }], onMouseLeave: [{
170
+ type: Output
171
+ }], dropdownOptions: [{
172
+ type: Input
173
+ }], optionSelect: [{
174
+ type: Output
175
+ }] } });
176
+
177
+ class ButtonModule {
178
+ constructor(iconRegistry, sanitizer) {
179
+ this.iconRegistry = iconRegistry;
180
+ this.sanitizer = sanitizer;
181
+ // register the CSS class alias so <mat-icon> knows about it…
182
+ this.iconRegistry.registerFontClassAlias('material-symbols-outlined', 'material-symbols-outlined');
183
+ }
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ButtonModule, deps: [{ token: i1$1.MatIconRegistry }, { token: i2$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.NgModule }); }
185
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: ButtonModule, imports: [CommonModule, ButtonComponent] }); }
186
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ButtonModule, imports: [CommonModule, ButtonComponent] }); }
187
+ }
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: ButtonModule, decorators: [{
189
+ type: NgModule,
190
+ args: [{
191
+ declarations: [], // ✅ Ensure ButtonComponent is declared
192
+ exports: [], // ✅ Export if used in other modules
193
+ imports: [CommonModule, ButtonComponent], // ✅ Required for Angular directives like *ngIf, *ngFor
194
+ }]
195
+ }], ctorParameters: () => [{ type: i1$1.MatIconRegistry }, { type: i2$1.DomSanitizer }] });
196
+
197
+ class InputComponent {
198
+ constructor() {
199
+ this.label = '';
200
+ this.placeholder = '';
201
+ this.value = '';
202
+ this.formControlName = '';
203
+ this.type = 'text';
204
+ this.disabled = false;
205
+ this.helperText = false;
206
+ this.helperTextLabel = '';
207
+ this.leftIcon = '';
208
+ this.rightIcon = '';
209
+ this.dropDown = false;
210
+ this.options = [];
211
+ this.size = 'base';
212
+ this.inputTypes = 'simple';
213
+ this.noBorder = false;
214
+ this.valueChange = new EventEmitter();
215
+ this.onChange = (value) => { };
216
+ this.onTouched = () => { };
217
+ }
218
+ get isDisabled() {
219
+ return this.disabled || this.inputTypes === 'disabled';
220
+ }
221
+ writeValue(value) {
222
+ this.value = value || '';
223
+ }
224
+ registerOnChange(fn) {
225
+ this.onChange = fn;
226
+ }
227
+ registerOnTouched(fn) {
228
+ this.onTouched = fn;
229
+ }
230
+ setDisabledState(isDisabled) {
231
+ this.disabled = isDisabled;
232
+ }
233
+ onInputChange(value) {
234
+ this.value = value;
235
+ this.onChange(value);
236
+ this.valueChange.emit(value);
237
+ }
238
+ onSelectionChange(value) {
239
+ this.value = value;
240
+ this.onChange(value);
241
+ this.valueChange.emit(value);
242
+ }
243
+ getSizeClass() {
244
+ return 'al-input-size-' + this.size;
245
+ }
246
+ getCategoryClass() {
247
+ if (this.disabled) {
248
+ return 'al-input-category-disabled';
249
+ }
250
+ if (this.inputTypes === 'plain') {
251
+ return 'al-input-category-plain';
252
+ }
253
+ return 'al-input-category-' + this.inputTypes;
254
+ }
255
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
256
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: InputComponent, isStandalone: true, selector: "al-input", inputs: { label: "label", placeholder: "placeholder", value: "value", formControlName: "formControlName", type: "type", disabled: "disabled", helperText: "helperText", helperTextLabel: "helperTextLabel", leftIcon: "leftIcon", rightIcon: "rightIcon", dropDown: "dropDown", options: "options", size: "size", inputTypes: "inputTypes", noBorder: "noBorder" }, outputs: { valueChange: "valueChange" }, providers: [
257
+ {
258
+ provide: NG_VALUE_ACCESSOR,
259
+ useExisting: forwardRef(() => InputComponent),
260
+ multi: true
261
+ }
262
+ ], ngImport: i0, template: "<mat-form-field appearance=\"outline\" class=\"al-input-field\" [ngClass]=\"[\n helperText ? 'has-error' : '',\n getSizeClass(),\n getCategoryClass(),\n noBorder ? 'al-input-no-border' : ''\n ]\">\n <mat-label *ngIf=\"label && !noBorder\">{{ label }}</mat-label>\n\n <span *ngIf=\"leftIcon\" matPrefix class=\"material-symbols-outlined\">\n {{ leftIcon }}\n </span>\n\n <ng-container *ngIf=\"dropDown; else regularInput\">\n <mat-select [disabled]=\"isDisabled\" [(ngModel)]=\"value\" (selectionChange)=\"onSelectionChange($event.value)\">\n <mat-option *ngFor=\"let option of options\" [value]=\"option\">{{ option }}</mat-option>\n </mat-select>\n </ng-container>\n <ng-template #regularInput>\n <input matInput [placeholder]=\"placeholder\" [type]=\"type\" [disabled]=\"isDisabled\" [(ngModel)]=\"value\"\n (input)=\"onInputChange($any($event.target).value)\" (blur)=\"onTouched()\" />\n </ng-template>\n\n <span *ngIf=\"rightIcon\" matSuffix class=\"material-symbols-outlined\">{{ rightIcon }}</span>\n\n <mat-error *ngIf=\"helperText\">{{ helperTextLabel }}</mat-error>\n <mat-hint *ngIf=\"!helperText && helperTextLabel\">{{ helperTextLabel }}</mat-hint>\n</mat-form-field>\n", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined\";@import\"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap\";@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\";@import\"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap\";@import\"https://cdn.jsdelivr.net/npm/@angular/material@19.2.3/prebuilt-themes/indigo-pink.css\";.al-input-field{width:100%;margin-bottom:16px}::ng-deep .al-input-field .mat-mdc-form-field-flex,::ng-deep .al-input-field .mat-mdc-text-field-wrapper,::ng-deep .al-input-field .mat-mdc-form-field-infix{background-color:#f7f9fe!important}::ng-deep .al-input-field .mat-mdc-form-field-subscript-wrapper{background-color:transparent!important}::ng-deep .al-input-field .mat-mdc-form-field-focus-overlay{background-color:#f7f9fe!important}::ng-deep .al-input-category-primary,::ng-deep .al-input-category-success,::ng-deep .al-input-category-warn,::ng-deep .al-input-category-disabled{--mdc-outlined-text-field-outline-width: 1px !important;--mdc-outlined-text-field-focus-outline-width: 1px !important;--mdc-outlined-text-field-hover-outline-width: 1px !important}::ng-deep .al-input-category-simple{--mdc-outlined-text-field-outline-color: #C3C5D1 !important;--mdc-outlined-text-field-focus-outline-color: #C3C5D1 !important;--mdc-outlined-text-field-hover-outline-color: #C3C5D1 !important;--mdc-outlined-text-field-label-text-color: #5473E8 !important;--mdc-outlined-text-field-focus-label-text-color: #5473E8 !important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }] }); }
263
+ }
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: InputComponent, decorators: [{
265
+ type: Component,
266
+ args: [{ selector: 'al-input', imports: [CommonModule, FormsModule, MatFormFieldModule, MatInputModule, MatIconModule, MatSelectModule, MatOptionModule], standalone: true, providers: [
267
+ {
268
+ provide: NG_VALUE_ACCESSOR,
269
+ useExisting: forwardRef(() => InputComponent),
270
+ multi: true
271
+ }
272
+ ], template: "<mat-form-field appearance=\"outline\" class=\"al-input-field\" [ngClass]=\"[\n helperText ? 'has-error' : '',\n getSizeClass(),\n getCategoryClass(),\n noBorder ? 'al-input-no-border' : ''\n ]\">\n <mat-label *ngIf=\"label && !noBorder\">{{ label }}</mat-label>\n\n <span *ngIf=\"leftIcon\" matPrefix class=\"material-symbols-outlined\">\n {{ leftIcon }}\n </span>\n\n <ng-container *ngIf=\"dropDown; else regularInput\">\n <mat-select [disabled]=\"isDisabled\" [(ngModel)]=\"value\" (selectionChange)=\"onSelectionChange($event.value)\">\n <mat-option *ngFor=\"let option of options\" [value]=\"option\">{{ option }}</mat-option>\n </mat-select>\n </ng-container>\n <ng-template #regularInput>\n <input matInput [placeholder]=\"placeholder\" [type]=\"type\" [disabled]=\"isDisabled\" [(ngModel)]=\"value\"\n (input)=\"onInputChange($any($event.target).value)\" (blur)=\"onTouched()\" />\n </ng-template>\n\n <span *ngIf=\"rightIcon\" matSuffix class=\"material-symbols-outlined\">{{ rightIcon }}</span>\n\n <mat-error *ngIf=\"helperText\">{{ helperTextLabel }}</mat-error>\n <mat-hint *ngIf=\"!helperText && helperTextLabel\">{{ helperTextLabel }}</mat-hint>\n</mat-form-field>\n", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined\";@import\"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap\";@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\";@import\"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap\";@import\"https://cdn.jsdelivr.net/npm/@angular/material@19.2.3/prebuilt-themes/indigo-pink.css\";.al-input-field{width:100%;margin-bottom:16px}::ng-deep .al-input-field .mat-mdc-form-field-flex,::ng-deep .al-input-field .mat-mdc-text-field-wrapper,::ng-deep .al-input-field .mat-mdc-form-field-infix{background-color:#f7f9fe!important}::ng-deep .al-input-field .mat-mdc-form-field-subscript-wrapper{background-color:transparent!important}::ng-deep .al-input-field .mat-mdc-form-field-focus-overlay{background-color:#f7f9fe!important}::ng-deep .al-input-category-primary,::ng-deep .al-input-category-success,::ng-deep .al-input-category-warn,::ng-deep .al-input-category-disabled{--mdc-outlined-text-field-outline-width: 1px !important;--mdc-outlined-text-field-focus-outline-width: 1px !important;--mdc-outlined-text-field-hover-outline-width: 1px !important}::ng-deep .al-input-category-simple{--mdc-outlined-text-field-outline-color: #C3C5D1 !important;--mdc-outlined-text-field-focus-outline-color: #C3C5D1 !important;--mdc-outlined-text-field-hover-outline-color: #C3C5D1 !important;--mdc-outlined-text-field-label-text-color: #5473E8 !important;--mdc-outlined-text-field-focus-label-text-color: #5473E8 !important}\n"] }]
273
+ }], propDecorators: { label: [{
274
+ type: Input
275
+ }], placeholder: [{
276
+ type: Input
277
+ }], value: [{
278
+ type: Input
279
+ }], formControlName: [{
280
+ type: Input
281
+ }], type: [{
282
+ type: Input
283
+ }], disabled: [{
284
+ type: Input
285
+ }], helperText: [{
286
+ type: Input
287
+ }], helperTextLabel: [{
288
+ type: Input
289
+ }], leftIcon: [{
290
+ type: Input
291
+ }], rightIcon: [{
292
+ type: Input
293
+ }], dropDown: [{
294
+ type: Input
295
+ }], options: [{
296
+ type: Input
297
+ }], size: [{
298
+ type: Input
299
+ }], inputTypes: [{
300
+ type: Input
301
+ }], noBorder: [{
302
+ type: Input
303
+ }], valueChange: [{
304
+ type: Output
305
+ }] } });
306
+
307
+ class InputModule {
308
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: InputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
309
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: InputModule, imports: [CommonModule, InputComponent], exports: [InputComponent] }); }
310
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: InputModule, imports: [CommonModule, InputComponent] }); }
311
+ }
312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: InputModule, decorators: [{
313
+ type: NgModule,
314
+ args: [{
315
+ imports: [CommonModule, InputComponent],
316
+ exports: [InputComponent],
317
+ }]
318
+ }] });
319
+
320
+ /*
321
+ * Public API Surface of allsorter-lib
322
+ */
323
+
324
+ /**
325
+ * Generated bundle index. Do not edit.
326
+ */
327
+
328
+ export { AllsorterLibComponent, AllsorterLibService, ButtonComponent, ButtonModule, InputComponent, InputModule };
329
+ //# sourceMappingURL=allsorter-ui-components.mjs.map