@iamgld/ui 1.19.6 → 1.19.8

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.
@@ -453,11 +453,11 @@ class ButtonComponent {
453
453
  this.emitClick();
454
454
  }
455
455
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
456
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: ButtonComponent, isStandalone: true, selector: "gld-button", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, full: { classPropertyName: "full", publicName: "full", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [":host:has(.button--full){width:100%}.button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs);--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:0;padding:var(--gld-padding);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--pink{--gld-color: var(--gld-pink);--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple);--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard);--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange);--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue);--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red);--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green);--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--tiny{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxxs) var(--gld-spacing--xxs)}.button--small{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxs)}.button--normal{--gld-font-size: var(--gld-font-size--normal);--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs)}.button--medium{--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--m)}.button--large{--gld-font-size: var(--gld-font-size--heading-three);--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--l)}.button--disabled{--gld-color: var(--gld-gray);--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020);pointer-events:none;cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "gld-icon", inputs: ["icon", "size", "space", "moveTopToBottom", "moveLeftToRight", "disabled"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
456
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: ButtonComponent, isStandalone: true, selector: "gld-button", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, full: { classPropertyName: "full", publicName: "full", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [":host{display:inline-block;height:inherit;max-width:inherit}:host:has(.button--full){width:100%}.button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs);--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:0;padding:var(--gld-padding);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--pink{--gld-color: var(--gld-pink);--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple);--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard);--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange);--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue);--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red);--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green);--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--tiny{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxxs) var(--gld-spacing--xxs)}.button--small{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxs)}.button--normal{--gld-font-size: var(--gld-font-size--normal);--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs)}.button--medium{--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--m)}.button--large{--gld-font-size: var(--gld-font-size--heading-three);--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--l)}.button--disabled{--gld-color: var(--gld-gray);--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020);pointer-events:none;cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "gld-icon", inputs: ["icon", "size", "space", "moveTopToBottom", "moveLeftToRight", "disabled"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
457
457
  }
458
458
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: ButtonComponent, decorators: [{
459
459
  type: Component,
460
- args: [{ selector: 'gld-button', imports: [...components$7], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [":host:has(.button--full){width:100%}.button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs);--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:0;padding:var(--gld-padding);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--pink{--gld-color: var(--gld-pink);--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple);--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard);--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange);--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue);--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red);--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green);--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--tiny{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxxs) var(--gld-spacing--xxs)}.button--small{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxs)}.button--normal{--gld-font-size: var(--gld-font-size--normal);--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs)}.button--medium{--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--m)}.button--large{--gld-font-size: var(--gld-font-size--heading-three);--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--l)}.button--disabled{--gld-color: var(--gld-gray);--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020);pointer-events:none;cursor:not-allowed}\n"] }]
460
+ args: [{ selector: 'gld-button', imports: [...components$7], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [":host{display:inline-block;height:inherit;max-width:inherit}:host:has(.button--full){width:100%}.button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs);--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:0;padding:var(--gld-padding);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--pink{--gld-color: var(--gld-pink);--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple);--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard);--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange);--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue);--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red);--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green);--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--tiny{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxxs) var(--gld-spacing--xxs)}.button--small{--gld-font-size: var(--gld-font-size--small);--gld-padding: var(--gld-spacing--xxs)}.button--normal{--gld-font-size: var(--gld-font-size--normal);--gld-padding: var(--gld-spacing--xxs) var(--gld-spacing--xs)}.button--medium{--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--m)}.button--large{--gld-font-size: var(--gld-font-size--heading-three);--gld-padding: var(--gld-spacing--xs) var(--gld-spacing--l)}.button--disabled{--gld-color: var(--gld-gray);--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020);pointer-events:none;cursor:not-allowed}\n"] }]
461
461
  }] });
462
462
 
463
463
  // Angular Imports
@@ -504,11 +504,11 @@ class IconButtonComponent {
504
504
  this.emitClick();
505
505
  }
506
506
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
507
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: IconButtonComponent, isStandalone: true, selector: "gld-icon-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"iconSize()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [".button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:var(--gld-spacing--xxxs);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);-webkit-user-select:none;user-select:none;will-change:background,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{background:var(--gld-background--hover)}.button:active{transform:scale(.95)}.button--pink{--gld-color: var(--gld-pink)}.button--pink.button--background{--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple)}.button--purple.button--background{--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard)}.button--mustard.button--background{--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange)}.button--orange.button--background{--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue)}.button--blue.button--background{--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red)}.button--red.button--background{--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green)}.button--green.button--background{--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--disabled{--gld-color: var(--gld-gray-transparent--060);pointer-events:none;cursor:not-allowed}.button--disabled.button--background{--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "gld-icon", inputs: ["icon", "size", "space", "moveTopToBottom", "moveLeftToRight", "disabled"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
507
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: IconButtonComponent, isStandalone: true, selector: "gld-icon-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"iconSize()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [":host{display:inline-block;height:inherit;max-width:inherit}.button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:var(--gld-spacing--xxxs);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);-webkit-user-select:none;user-select:none;will-change:background,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{background:var(--gld-background--hover)}.button:active{transform:scale(.95)}.button--pink{--gld-color: var(--gld-pink)}.button--pink.button--background{--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple)}.button--purple.button--background{--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard)}.button--mustard.button--background{--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange)}.button--orange.button--background{--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue)}.button--blue.button--background{--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red)}.button--red.button--background{--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green)}.button--green.button--background{--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--disabled{--gld-color: var(--gld-gray-transparent--060);pointer-events:none;cursor:not-allowed}.button--disabled.button--background{--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "gld-icon", inputs: ["icon", "size", "space", "moveTopToBottom", "moveLeftToRight", "disabled"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
508
508
  }
509
509
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconButtonComponent, decorators: [{
510
510
  type: Component,
511
- args: [{ selector: 'gld-icon-button', imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"iconSize()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [".button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:var(--gld-spacing--xxxs);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);-webkit-user-select:none;user-select:none;will-change:background,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{background:var(--gld-background--hover)}.button:active{transform:scale(.95)}.button--pink{--gld-color: var(--gld-pink)}.button--pink.button--background{--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple)}.button--purple.button--background{--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard)}.button--mustard.button--background{--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange)}.button--orange.button--background{--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue)}.button--blue.button--background{--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red)}.button--red.button--background{--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green)}.button--green.button--background{--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--disabled{--gld-color: var(--gld-gray-transparent--060);pointer-events:none;cursor:not-allowed}.button--disabled.button--background{--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020)}\n"] }]
511
+ args: [{ selector: 'gld-icon-button', imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"iconSize()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n", styles: [":host{display:inline-block;height:inherit;max-width:inherit}.button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:var(--gld-spacing--xxxs);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);-webkit-user-select:none;user-select:none;will-change:background,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover,.button:focus{background:var(--gld-background--hover)}.button:active{transform:scale(.95)}.button--pink{--gld-color: var(--gld-pink)}.button--pink.button--background{--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.button--purple{--gld-color: var(--gld-purple)}.button--purple.button--background{--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.button--mustard{--gld-color: var(--gld-mustard)}.button--mustard.button--background{--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.button--orange{--gld-color: var(--gld-orange)}.button--orange.button--background{--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.button--blue{--gld-color: var(--gld-blue)}.button--blue.button--background{--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.button--red{--gld-color: var(--gld-red)}.button--red.button--background{--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.button--green{--gld-color: var(--gld-green)}.button--green.button--background{--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.button--disabled{--gld-color: var(--gld-gray-transparent--060);pointer-events:none;cursor:not-allowed}.button--disabled.button--background{--gld-background: var(--gld-gray-transparent--020);--gld-background--hover: var(--gld-gray-transparent--020)}\n"] }]
512
512
  }] });
513
513
 
514
514
  // Angular Imports
@@ -517,7 +517,7 @@ class DropdownButtonComponent {
517
517
  value = input.required();
518
518
  icon = input(null);
519
519
  iconSize = input(IconsSize.normal);
520
- space = input(IconsSpace.none);
520
+ iconSpace = input(IconsSpace.none);
521
521
  moveTopToBottom = input(0, { transform: numberAttribute });
522
522
  moveLeftToRight = input(0, { transform: numberAttribute });
523
523
  direction = input(DropdownDirection.left);
@@ -533,11 +533,11 @@ class DropdownButtonComponent {
533
533
  this.select(value);
534
534
  }
535
535
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: DropdownButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
536
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: DropdownButtonComponent, isStandalone: true, selector: "gld-dropdown-button", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changeValue: "changeValue" }, ngImport: i0, template: "<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"space()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n", styles: [":host{position:relative;width:100%}.button{--gld-background: transparent;--gld-background--hover: var(--gld-gray-transparent--010);--gld-color: light-dark(var(--gld-darkblue), var(--gld-whitelight));--gld-color--selected: var(--gld-pink);--gld-color--hover: var(--gld-blue);--gld-radius: var(--gld-radius--xxxs);--gld-height: 40px;padding:var(--gld-spacing--xxs) var(--gld-spacing--xs);width:100%;height:var(--gld-height);background:var(--gld-background);color:var(--gld-color);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size--normal);font-weight:400;line-height:var(--gld-line-height);text-align:left;-webkit-user-select:none;user-select:none;outline:none;border:none;border-radius:var(--gld-radius);cursor:pointer;display:inline-flex;align-items:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover{--gld-color: var(--gld-color--hover);--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--direction-left{justify-content:flex-start}.button--direction-right{justify-content:flex-end}.button--selected,.button--selected:hover{--gld-color: var(--gld-color--selected)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "gld-icon", inputs: ["icon", "size", "space", "moveTopToBottom", "moveLeftToRight", "disabled"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
536
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: DropdownButtonComponent, isStandalone: true, selector: "gld-dropdown-button", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, iconSpace: { classPropertyName: "iconSpace", publicName: "iconSpace", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changeValue: "changeValue" }, ngImport: i0, template: "<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"iconSpace()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n", styles: [":host{position:relative;width:100%}.button{--gld-background: transparent;--gld-background--hover: var(--gld-gray-transparent--010);--gld-color: light-dark(var(--gld-darkblue), var(--gld-whitelight));--gld-color--selected: var(--gld-pink);--gld-color--hover: var(--gld-blue);--gld-radius: var(--gld-radius--xxxs);--gld-height: 40px;padding:var(--gld-spacing--xxs) var(--gld-spacing--xs);width:100%;height:var(--gld-height);background:var(--gld-background);color:var(--gld-color);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size--normal);font-weight:400;line-height:var(--gld-line-height);text-align:left;-webkit-user-select:none;user-select:none;outline:none;border:none;border-radius:var(--gld-radius);cursor:pointer;display:inline-flex;align-items:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover{--gld-color: var(--gld-color--hover);--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--direction-left{justify-content:flex-start}.button--direction-right{justify-content:flex-end}.button--selected,.button--selected:hover{--gld-color: var(--gld-color--selected)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "gld-icon", inputs: ["icon", "size", "space", "moveTopToBottom", "moveLeftToRight", "disabled"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
537
537
  }
538
538
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: DropdownButtonComponent, decorators: [{
539
539
  type: Component,
540
- args: [{ selector: 'gld-dropdown-button', imports: [...components$6], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"space()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n", styles: [":host{position:relative;width:100%}.button{--gld-background: transparent;--gld-background--hover: var(--gld-gray-transparent--010);--gld-color: light-dark(var(--gld-darkblue), var(--gld-whitelight));--gld-color--selected: var(--gld-pink);--gld-color--hover: var(--gld-blue);--gld-radius: var(--gld-radius--xxxs);--gld-height: 40px;padding:var(--gld-spacing--xxs) var(--gld-spacing--xs);width:100%;height:var(--gld-height);background:var(--gld-background);color:var(--gld-color);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size--normal);font-weight:400;line-height:var(--gld-line-height);text-align:left;-webkit-user-select:none;user-select:none;outline:none;border:none;border-radius:var(--gld-radius);cursor:pointer;display:inline-flex;align-items:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover{--gld-color: var(--gld-color--hover);--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--direction-left{justify-content:flex-start}.button--direction-right{justify-content:flex-end}.button--selected,.button--selected:hover{--gld-color: var(--gld-color--selected)}\n"] }]
540
+ args: [{ selector: 'gld-dropdown-button', imports: [...components$6], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"iconSpace()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n", styles: [":host{position:relative;width:100%}.button{--gld-background: transparent;--gld-background--hover: var(--gld-gray-transparent--010);--gld-color: light-dark(var(--gld-darkblue), var(--gld-whitelight));--gld-color--selected: var(--gld-pink);--gld-color--hover: var(--gld-blue);--gld-radius: var(--gld-radius--xxxs);--gld-height: 40px;padding:var(--gld-spacing--xxs) var(--gld-spacing--xs);width:100%;height:var(--gld-height);background:var(--gld-background);color:var(--gld-color);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size--normal);font-weight:400;line-height:var(--gld-line-height);text-align:left;-webkit-user-select:none;user-select:none;outline:none;border:none;border-radius:var(--gld-radius);cursor:pointer;display:inline-flex;align-items:center;gap:var(--gld-spacing--xxxs);will-change:background,transform,color;transition:background var(--gld-animation-time--150),transform var(--gld-animation-time--150),color var(--gld-animation-time--150)}.button:hover{--gld-color: var(--gld-color--hover);--gld-background: var(--gld-background--hover)}.button:active{transform:scale(.95)}.button span{text-transform:capitalize;-webkit-user-select:none;user-select:none}.button--direction-left{justify-content:flex-start}.button--direction-right{justify-content:flex-end}.button--selected,.button--selected:hover{--gld-color: var(--gld-color--selected)}\n"] }]
541
541
  }] });
542
542
 
543
543
  // Angular Imports
@@ -585,11 +585,11 @@ class DropdownMenuComponent {
585
585
  this.dropdownButtonChildren().map((dropdownButton) => dropdownButton.error.set(error));
586
586
  }
587
587
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: DropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
588
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: DropdownMenuComponent, isStandalone: true, selector: "gld-dropdown-menu", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, full: { classPropertyName: "full", publicName: "full", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, initialValue: { classPropertyName: "initialValue", publicName: "initialValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changeValue: "changeValue", changeFocus: "changeFocus" }, queries: [{ propertyName: "dropdownButtonChildren", predicate: DropdownButtonComponent, isSignal: true }], ngImport: i0, template: "<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ size() }} dropdown-menu--{{ type() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no button</ng-content>\n </section>\n</ng-template>\n\n", styles: [".dropdown-menu{--gld-background: light-dark(var(--gld-whitelight), var(--gld-darkblue));--gld-border-color: light-dark( var(--gld-gray-transparent--040), var(--gld-gray-transparent--020) );--gld-radius: var(--gld-radius--xxs);--gld-dropdown-min-width: 100px;--gld-dropdown-bottom-position: 0;padding:var(--gld-spacing--xxxs);border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-radius);background:var(--gld-background);display:none;position:absolute;scale:0;z-index:1;min-width:var(--gld-dropdown-min-width)}.dropdown-menu--direction-left{left:0;transform-origin:top left;transform:translateY(var(--gld-dropdown-bottom-position))}.dropdown-menu--direction-right{transform-origin:top right;transform:translate(-100%,var(--gld-dropdown-bottom-position))}.dropdown-menu--tiny{--gld-dropdown-bottom-position: 26px}.dropdown-menu--small{--gld-dropdown-bottom-position: 34px}.dropdown-menu--normal{--gld-dropdown-bottom-position: 39px}.dropdown-menu--normal.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 42px}.dropdown-menu--medium{--gld-dropdown-bottom-position: 47px}.dropdown-menu--medium.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 50px}.dropdown-menu--large{--gld-dropdown-bottom-position: 52px}.dropdown-menu--large.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 58px}gld-button:focus-within .dropdown-menu,gld-icon-button:focus-within .dropdown-menu{display:initial;scale:1;z-index:1}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "gld-button", inputs: ["name", "color", "size", "icon", "iconSize", "moveTopToBottom", "moveLeftToRight", "disabled", "full"], outputs: ["clicked"] }, { kind: "component", type: IconButtonComponent, selector: "gld-icon-button", inputs: ["icon", "name", "iconSize", "space", "moveTopToBottom", "moveLeftToRight", "background", "disabled", "color"], outputs: ["clicked"] }, { kind: "directive", type: DropdownMenuTemplateDirective, selector: "[gldDropdownMenuTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
588
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: DropdownMenuComponent, isStandalone: true, selector: "gld-dropdown-menu", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, full: { classPropertyName: "full", publicName: "full", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, initialValue: { classPropertyName: "initialValue", publicName: "initialValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changeValue: "changeValue", changeFocus: "changeFocus" }, queries: [{ propertyName: "dropdownButtonChildren", predicate: DropdownButtonComponent, isSignal: true }], ngImport: i0, template: "<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ type() }} dropdown-menu--{{ size() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no button</ng-content>\n </section>\n</ng-template>\n\n", styles: [":host{max-width:inherit}.dropdown-menu{--gld-background: light-dark(var(--gld-whitelight), var(--gld-darkblue));--gld-border-color: light-dark( var(--gld-gray-transparent--040), var(--gld-gray-transparent--020) );--gld-radius: var(--gld-radius--xxs);--gld-dropdown-min-width: 100px;--gld-dropdown-bottom-position: 0;padding:var(--gld-spacing--xxxs);border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-radius);background:var(--gld-background);display:none;position:absolute;scale:0;z-index:1;min-width:var(--gld-dropdown-min-width);max-width:inherit}.dropdown-menu--direction-left{left:0;transform-origin:top left;transform:translateY(var(--gld-dropdown-bottom-position))}.dropdown-menu--direction-right{transform-origin:top right;transform:translate(-100%,var(--gld-dropdown-bottom-position))}.dropdown-menu--tiny{--gld-dropdown-bottom-position: 26px}.dropdown-menu--small{--gld-dropdown-bottom-position: 34px}.dropdown-menu--normal{--gld-dropdown-bottom-position: 39px}.dropdown-menu--normal.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 42px}.dropdown-menu--medium{--gld-dropdown-bottom-position: 47px}.dropdown-menu--medium.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 50px}.dropdown-menu--large{--gld-dropdown-bottom-position: 52px}.dropdown-menu--large.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 58px}gld-button:focus-within .dropdown-menu,gld-icon-button:focus-within .dropdown-menu{display:initial;scale:1;z-index:1}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "gld-button", inputs: ["name", "color", "size", "icon", "iconSize", "moveTopToBottom", "moveLeftToRight", "disabled", "full"], outputs: ["clicked"] }, { kind: "component", type: IconButtonComponent, selector: "gld-icon-button", inputs: ["icon", "name", "iconSize", "space", "moveTopToBottom", "moveLeftToRight", "background", "disabled", "color"], outputs: ["clicked"] }, { kind: "directive", type: DropdownMenuTemplateDirective, selector: "[gldDropdownMenuTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
589
589
  }
590
590
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: DropdownMenuComponent, decorators: [{
591
591
  type: Component,
592
- args: [{ selector: 'gld-dropdown-menu', imports: [NgTemplateOutlet, ...components$5, directives], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ size() }} dropdown-menu--{{ type() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no button</ng-content>\n </section>\n</ng-template>\n\n", styles: [".dropdown-menu{--gld-background: light-dark(var(--gld-whitelight), var(--gld-darkblue));--gld-border-color: light-dark( var(--gld-gray-transparent--040), var(--gld-gray-transparent--020) );--gld-radius: var(--gld-radius--xxs);--gld-dropdown-min-width: 100px;--gld-dropdown-bottom-position: 0;padding:var(--gld-spacing--xxxs);border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-radius);background:var(--gld-background);display:none;position:absolute;scale:0;z-index:1;min-width:var(--gld-dropdown-min-width)}.dropdown-menu--direction-left{left:0;transform-origin:top left;transform:translateY(var(--gld-dropdown-bottom-position))}.dropdown-menu--direction-right{transform-origin:top right;transform:translate(-100%,var(--gld-dropdown-bottom-position))}.dropdown-menu--tiny{--gld-dropdown-bottom-position: 26px}.dropdown-menu--small{--gld-dropdown-bottom-position: 34px}.dropdown-menu--normal{--gld-dropdown-bottom-position: 39px}.dropdown-menu--normal.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 42px}.dropdown-menu--medium{--gld-dropdown-bottom-position: 47px}.dropdown-menu--medium.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 50px}.dropdown-menu--large{--gld-dropdown-bottom-position: 52px}.dropdown-menu--large.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 58px}gld-button:focus-within .dropdown-menu,gld-icon-button:focus-within .dropdown-menu{display:initial;scale:1;z-index:1}\n"] }]
592
+ args: [{ selector: 'gld-dropdown-menu', imports: [NgTemplateOutlet, ...components$5, directives], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ type() }} dropdown-menu--{{ size() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no button</ng-content>\n </section>\n</ng-template>\n\n", styles: [":host{max-width:inherit}.dropdown-menu{--gld-background: light-dark(var(--gld-whitelight), var(--gld-darkblue));--gld-border-color: light-dark( var(--gld-gray-transparent--040), var(--gld-gray-transparent--020) );--gld-radius: var(--gld-radius--xxs);--gld-dropdown-min-width: 100px;--gld-dropdown-bottom-position: 0;padding:var(--gld-spacing--xxxs);border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-radius);background:var(--gld-background);display:none;position:absolute;scale:0;z-index:1;min-width:var(--gld-dropdown-min-width);max-width:inherit}.dropdown-menu--direction-left{left:0;transform-origin:top left;transform:translateY(var(--gld-dropdown-bottom-position))}.dropdown-menu--direction-right{transform-origin:top right;transform:translate(-100%,var(--gld-dropdown-bottom-position))}.dropdown-menu--tiny{--gld-dropdown-bottom-position: 26px}.dropdown-menu--small{--gld-dropdown-bottom-position: 34px}.dropdown-menu--normal{--gld-dropdown-bottom-position: 39px}.dropdown-menu--normal.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 42px}.dropdown-menu--medium{--gld-dropdown-bottom-position: 47px}.dropdown-menu--medium.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 50px}.dropdown-menu--large{--gld-dropdown-bottom-position: 52px}.dropdown-menu--large.dropdown-menu--iconButton{--gld-dropdown-bottom-position: 58px}gld-button:focus-within .dropdown-menu,gld-icon-button:focus-within .dropdown-menu{display:initial;scale:1;z-index:1}\n"] }]
593
593
  }], ctorParameters: () => [] });
594
594
 
595
595
  // Angular Imports
@@ -1 +1 @@
1
- {"version":3,"file":"iamgld-ui.mjs","sources":["../../../projects/iamgld-ui/src/lib/utils/date/date.util.ts","../../../projects/iamgld-ui/src/lib/utils/string/string.util.ts","../../../projects/iamgld-ui/src/lib/models/buttons/button.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/link.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/dropdown.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/radio.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/select.model.ts","../../../projects/iamgld-ui/src/lib/models/icon/icon.model.ts","../../../projects/iamgld-ui/src/lib/models/tiles/tile.model.ts","../../../projects/iamgld-ui/src/lib/validators/is-date/is-date.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-document/is-document.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-email/is-email.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-form-select-item/is-form-select-item.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-license-plate/is-license-plate.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-natural-number/is-natural-number.validator.ts","../../../projects/iamgld-ui/src/lib/validators/minimum-age/minimum-age.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-match/must-match.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-unmatch/must-unmatch.validator.ts","../../../projects/iamgld-ui/src/lib/directives/dropdown-menu-template/dropdown-menu-template.directive.ts","../../../projects/iamgld-ui/src/lib/directives/input-error-message/input-error-message.directive.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.html","../../../projects/iamgld-ui/src/lib/components/image/image.component.ts","../../../projects/iamgld-ui/src/lib/components/image/image.component.html","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.ts","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.html","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.ts","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.html","../../../projects/iamgld-ui/src/public-api.ts","../../../projects/iamgld-ui/src/iamgld-ui.ts"],"sourcesContent":["export function formatDateToISO(outerDate: string | Date): string | null {\n\tconst date = new Date(outerDate)\n\tif (!isNaN(date.getTime())) return date.toISOString()\n\telse return null\n}\n\n// export function formatDateFromISOToDDMMYYYY(dateAsString: string): string | null {\n// \tconst [year, month, day] = dateAsString.split('-')\n// \tif (year && month && day) return `${day}/${month}/${year}`\n// \telse return null\n// }\n\nexport function formatDateFromISOToYYYYMMDD(dateAsString: string | null): string | null {\n\tif (!dateAsString) return null\n\tconst [date] = dateAsString.split('T')\n\n\tif (date) return date\n\telse return null\n}\n\nexport function getDateWithOffsetInYears({ years }: { years: number }): Date {\n\tconst today = new Date()\n\ttoday.setFullYear(today.getFullYear() + years) // Agrega o resta años\n\treturn today\n}\n\n","export function capitalizeFirstLetter(str: string): string {\n\tif (!str) return str // Maneja el caso de string vacío\n\treturn str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\n","export enum ButtonColor {\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum ButtonSize {\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","export enum LinkType {\n default = 'default',\n}\n\nexport enum LinkAlign {\n left = 'left',\n right = 'right',\n center = 'center',\n}\n\n","export enum DropdownType {\n button = 'button',\n iconButton = 'iconButton',\n}\n\nexport enum DropdownDirection {\n left = 'left',\n right = 'right',\n}\n\n","export enum RadioDirection {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n","export enum SelectType {\r\n default = 'default',\r\n inline = 'inline',\r\n}\r\n","export enum Icons {\r\n arrowDownSLine = 'arrow-down-s-line',\r\n arrowUpSLine = 'arrow-up-s-line',\r\n checkboxCircleLine = 'checkbox-circle-line',\r\n checkboxBlankCircleLine = 'checkbox-blank-circle-line',\r\n loader4Fill = 'loader-4-fill',\r\n logoutCircleLine = 'ri-logout-circle-line',\r\n loginCircleLine = 'ri-login-circle-line',\r\n gitRepositoryLine = 'ri-git-repository-line',\r\n fileList3Line = 'ri-file-list-3-line',\r\n menuLine = 'ri-menu-line',\r\n sunLine = 'ri-sun-line',\r\n moonClearLine = 'ri-moon-clear-line',\r\n englishInput = 'ri-english-input',\r\n translate = 'ri-translate',\r\n user4Line = 'ri-user-4-line',\r\n shapesLine = 'ri-shapes-line',\r\n closeLine = 'ri-close-line',\r\n eyeLine = 'ri-eye-line',\r\n eyeCloseLine = 'ri-eye-close-line',\r\n linkedinBoxFill = 'ri-linkedin-box-fill',\r\n githubFill = 'ri-github-fill',\r\n instagramFill = 'ri-instagram-fill',\r\n twitterXFill = 'ri-twitter-x-fill',\r\n downloadCloud2Line = 'ri-download-cloud-2-line',\r\n globeLine = 'ri-globe-line',\r\n mailSendLine = 'ri-mail-send-line',\r\n pagesLine = 'ri-pages-line',\r\n gitForkLine = 'ri-git-fork-line',\r\n gitRepositoryPrivateLine = 'ri-git-repository-private-line',\r\n starLine = 'ri-star-line',\r\n calendar2Line = 'ri-calendar-2-line',\r\n macLine = 'ri-mac-line',\r\n}\r\n\r\nexport enum IconsSize {\r\n tiny = 'tiny',\r\n small = 'small',\r\n normal = 'normal',\r\n medium = 'medium',\r\n large = 'large',\r\n}\r\n\r\nexport enum IconsSpace {\r\n left = 'left',\r\n right = 'right',\r\n none = 'none',\r\n}\r\n","export enum TileColor {\n default = 'default',\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum TilePaddingSize {\n zero = 'zero',\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\n// Regex to validate the ISO date format (YYYY-MM-DD)\nconst ISO_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/\n\nexport function isDateValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n if (!ISO_DATE_REGEX.test(value))\n return { isDate: 'This field must be a valid date in the format YYYY-MM-DD!' }\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const date = new Date(year, month - 1, day)\n\n // Verify if the date is logical and corresponds to the format\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day)\n return null\n return { isDate: 'This field must be a valid date!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isDocumentValidator({ documentType }: { documentType: DocumentType }): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns: Patterns = {\n\t\t\tDNI: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{7,8}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener entre 7 y 8 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCT: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCL: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[documentType]\n\n\t\tif (!value) return null\n\n\t\tconst pattern = patternsToValid.find((pattern) => !pattern.regex.test(value))\n\n\t\treturn pattern ? { isDocument: pattern.message } : null\n\t}\n}\n\ntype DocumentType = 'DNI' | 'CT' | 'CL'\n\ninterface ValidationPattern {\n\tregex: RegExp\n\tmessage: string\n}\n\ninterface Patterns {\n\tDNI: ValidationPattern[]\n\tCT: ValidationPattern[]\n\tCL: ValidationPattern[]\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar emails\nconst EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/\n\nexport function isEmailValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\n\t\tif (EMAIL_REGEX.test(value)) return null\n\t\t return { email: 'This field must be a valid email!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isFormSelectItemValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\t\tif (typeof value === 'string')\n\t\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\n\t\tif (typeof value === 'object') {\n\t\t\tif ('value' in value && 'label' in value) return null\n\t\t}\n\n\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isLicensePlateValidator({\n\tvehicleType,\n}: {\n\tvehicleType: 'AUTO' | 'MOTO' | 'BOTH'\n}): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns = {\n\t\t\tAUTO: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t],\n\t\t\tMOTO: [\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t\tBOTH: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[vehicleType]\n\n\t\tif (!value) return null\n\n\t\tconst isValid = patternsToValid.some((pattern) => pattern.test(value))\n\n\t\treturn isValid ? null : { isLicensePlate: 'El campo debe ser una patente valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar números naturales (0, 1, 2, 3, ...)\nconst NATURAL_NUMBER_REGEX = /^[0-9]+$/\n\nexport function isNaturalNumberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n\n if (!value) return null\n\n if (NATURAL_NUMBER_REGEX.test(value)) return null\n return { naturalNumber: 'This field must contain only valid numbers!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\nexport function minimumAgeValidator({ minAge }: { minAge: number }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const birthDay = new Date(year, month - 1, day)\n\n // Get the current date and calculate the difference in years\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const age = today.getFullYear() - birthDay.getFullYear()\n const isMonthPast = today.getMonth() > birthDay.getMonth()\n const isSameMonthDayPast =\n today.getMonth() === birthDay.getMonth() && today.getDate() >= birthDay.getDate()\n\n const isValidAge = age > minAge || (age === minAge && (isMonthPast || isSameMonthDayPast))\n\n // Retornar el error si la edad es menor al mínimo\n return isValidAge ? null : { minimumAge: { requiredAge: minAge, actualAge: age } }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustMatchValidator({\n\tcontrolName,\n\tmustMatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustMatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustMatchControl = formGroup.get(mustMatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustMatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value !== mustMatchControl.value) {\n\t\t\tmustMatchControl.setErrors({ ...mustMatchControl.errors, mustMatch: errorMessage ?? true })\n\t\t\treturn { mustMatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustUnmatchValidator({\n\tcontrolName,\n\tmustUnmatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustUnmatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustUnmatchControl = formGroup.get(mustUnmatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustUnmatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value === mustUnmatchControl.value) {\n\t\t\tmustUnmatchControl.setErrors({\n\t\t\t\t...mustUnmatchControl.errors,\n\t\t\t\tmustUnmatch: errorMessage ?? true,\n\t\t\t})\n\t\t\treturn { mustUnmatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldDropdownMenuTemplate]',\n})\nexport class DropdownMenuTemplateDirective {}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldInputErrorMessage]',\n})\nexport class InputErrorMessageDirective {}\n\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// Shared Imports\r\nimport { Icons, IconsSize, IconsSpace } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-icon',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './icon.component.html',\r\n styleUrl: './icon.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconComponent {\r\n readonly IconsSpace = IconsSpace\r\n readonly Icons = Icons\r\n\r\n icon = input.required<Icons>()\r\n size = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<span\r\n tabindex=\"-1\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n class=\"icon icon--{{ size() }}\"\r\n [class.icon--left]=\"space() === IconsSpace.left\"\r\n [class.icon--right]=\"space() === IconsSpace.right\"\r\n [style.right.px]=\"moveLeftToRight()\"\r\n [style.top.px]=\"moveTopToBottom()\">\r\n @switch (icon()) {\r\n @case (Icons.arrowDownSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.arrowUpSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11.0026 16L6.75999 11.7574L8.17421 10.3431L11.0026 13.1716L16.6595 7.51472L18.0737 8.92893L11.0026 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxBlankCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loader4Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.logoutCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 11H13V13H5V16L0 12L5 8V11ZM3.99927 18H6.70835C8.11862 19.2447 9.97111 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C9.97111 4 8.11862 4.75527 6.70835 6H3.99927C5.82368 3.57111 8.72836 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C8.72836 22 5.82368 20.4289 3.99927 18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loginCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 11V8L15 12L10 16V13H1V11H10ZM2.4578 15H4.58152C5.76829 17.9318 8.64262 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C8.64262 4 5.76829 6.06817 4.58152 9H2.4578C3.73207 4.94289 7.52236 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C7.52236 22 3.73207 19.0571 2.4578 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 21V23.5L10 21.5L7 23.5V21H6.5C4.567 21 3 19.433 3 17.5V5C3 3.34315 4.34315 2 6 2H20C20.5523 2 21 2.44772 21 3V20C21 20.5523 20.5523 21 20 21H13ZM13 19H19V16H6.5C5.67157 16 5 16.6716 5 17.5C5 18.3284 5.67157 19 6.5 19H7V17H13V19ZM19 14V4H6V14.0354C6.1633 14.0121 6.33024 14 6.5 14H19ZM7 5H9V7H7V5ZM7 8H9V10H7V8ZM7 11H9V13H7V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.fileList3Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M19 22H5C3.34315 22 2 20.6569 2 19V3C2 2.44772 2.44772 2 3 2H17C17.5523 2 18 2.44772 18 3V15H22V19C22 20.6569 20.6569 22 19 22ZM18 17V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V17H18ZM16 20V4H4V19C4 19.5523 4.44772 20 5 20H16ZM6 7H14V9H6V7ZM6 11H14V13H6V11ZM6 15H11V17H6V15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.menuLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path d=\"M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.sunLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16ZM11 1H13V4H11V1ZM11 20H13V23H11V20ZM3.51472 4.92893L4.92893 3.51472L7.05025 5.63604L5.63604 7.05025L3.51472 4.92893ZM16.9497 18.364L18.364 16.9497L20.4853 19.0711L19.0711 20.4853L16.9497 18.364ZM19.0711 3.51472L20.4853 4.92893L18.364 7.05025L16.9497 5.63604L19.0711 3.51472ZM5.63604 16.9497L7.05025 18.364L4.92893 20.4853L3.51472 19.0711L5.63604 16.9497ZM23 11V13H20V11H23ZM4 11V13H1V11H4Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.moonClearLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 6C10 10.4183 13.5817 14 18 14C19.4386 14 20.7885 13.6203 21.9549 12.9556C21.4738 18.0302 17.2005 22 12 22C6.47715 22 2 17.5228 2 12C2 6.79948 5.9698 2.52616 11.0444 2.04507C10.3797 3.21152 10 4.56142 10 6ZM4 12C4 16.4183 7.58172 20 12 20C14.9654 20 17.5757 18.3788 18.9571 15.9546C18.6407 15.9848 18.3214 16 18 16C12.4772 16 8 11.5228 8 6C8 5.67863 8.01524 5.35933 8.04536 5.04293C5.62119 6.42426 4 9.03458 4 12ZM18.1642 2.29104L19 2.5V3.5L18.1642 3.70896C17.4476 3.8881 16.8881 4.4476 16.709 5.16417L16.5 6H15.5L15.291 5.16417C15.1119 4.4476 14.5524 3.8881 13.8358 3.70896L13 3.5V2.5L13.8358 2.29104C14.5524 2.1119 15.1119 1.5524 15.291 0.835829L15.5 0H16.5L16.709 0.835829C16.8881 1.5524 17.4476 2.1119 18.1642 2.29104ZM23.1642 7.29104L24 7.5V8.5L23.1642 8.70896C22.4476 8.8881 21.8881 9.4476 21.709 10.1642L21.5 11H20.5L20.291 10.1642C20.1119 9.4476 19.5524 8.8881 18.8358 8.70896L18 8.5V7.5L18.8358 7.29104C19.5524 7.1119 20.1119 6.5524 20.291 5.83583L20.5 5H21.5L21.709 5.83583C21.8881 6.5524 22.4476 7.1119 23.1642 7.29104Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.englishInput) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 10H16L16.0005 10.7574C16.7154 10.279 17.5751 10 18.5 10C20.9853 10 23 12.0147 23 14.5V20H21V14.5C21 13.07 19.8255 12 18.5 12C17.1745 12 16 13.07 16 14.5V20H14V10ZM12 4V6H4V11H12V13H4V18H12V20H2V4H12Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.translate) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 15V17C5 18.0544 5.81588 18.9182 6.85074 18.9945L7 19H10V21H7C4.79086 21 3 19.2091 3 17V15H5ZM18 10L22.4 21H20.245L19.044 18H14.954L13.755 21H11.601L16 10H18ZM17 12.8852L15.753 16H18.245L17 12.8852ZM8 2V4H12V11H8V14H6V11H2V4H6V2H8ZM17 3C19.2091 3 21 4.79086 21 7V9H19V7C19 5.89543 18.1046 5 17 5H14V3H17ZM6 6H4V9H6V6ZM10 6H8V9H10V6Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.user4Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 20H19V22H5V20ZM12 18C7.58172 18 4 14.4183 4 10C4 5.58172 7.58172 2 12 2C16.4183 2 20 5.58172 20 10C20 14.4183 16.4183 18 12 18ZM12 16C15.3137 16 18 13.3137 18 10C18 6.68629 15.3137 4 12 4C8.68629 4 6 6.68629 6 10C6 13.3137 8.68629 16 12 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.shapesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9998 1L6 11H18L11.9998 1ZM11.9998 4.8873L14.4676 9H9.53232L11.9998 4.8873ZM6.75 20C5.23122 20 4 18.7688 4 17.25C4 15.7312 5.23122 14.5 6.75 14.5C8.26878 14.5 9.5 15.7312 9.5 17.25C9.5 18.7688 8.26878 20 6.75 20ZM6.75 22C9.37335 22 11.5 19.8734 11.5 17.25C11.5 14.6266 9.37335 12.5 6.75 12.5C4.12665 12.5 2 14.6266 2 17.25C2 19.8734 4.12665 22 6.75 22ZM15 15.5V19.5H19V15.5H15ZM13 21.5V13.5H21V21.5H13Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.closeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3ZM12.0003 19C16.2359 19 19.8603 16.052 20.7777 12C19.8603 7.94803 16.2359 5 12.0003 5C7.7646 5 4.14022 7.94803 3.22278 12C4.14022 16.052 7.7646 19 12.0003 19ZM12.0003 16.5C9.51498 16.5 7.50026 14.4853 7.50026 12C7.50026 9.51472 9.51498 7.5 12.0003 7.5C14.4855 7.5 16.5003 9.51472 16.5003 12C16.5003 14.4853 14.4855 16.5 12.0003 16.5ZM12.0003 14.5C13.381 14.5 14.5003 13.3807 14.5003 12C14.5003 10.6193 13.381 9.5 12.0003 9.5C10.6196 9.5 9.50026 10.6193 9.50026 12C9.50026 13.3807 10.6196 14.5 12.0003 14.5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeCloseLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9.34268 18.7819L7.41083 18.2642L8.1983 15.3254C7.00919 14.8874 5.91661 14.2498 4.96116 13.4534L2.80783 15.6067L1.39362 14.1925L3.54695 12.0392C2.35581 10.6103 1.52014 8.87466 1.17578 6.96818L3.14386 6.61035C3.90289 10.8126 7.57931 14.0001 12.0002 14.0001C16.4211 14.0001 20.0976 10.8126 20.8566 6.61035L22.8247 6.96818C22.4803 8.87466 21.6446 10.6103 20.4535 12.0392L22.6068 14.1925L21.1926 15.6067L19.0393 13.4534C18.0838 14.2498 16.9912 14.8874 15.8021 15.3254L16.5896 18.2642L14.6578 18.7819L13.87 15.8418C13.2623 15.9459 12.6376 16.0001 12.0002 16.0001C11.3629 16.0001 10.7381 15.9459 10.1305 15.8418L9.34268 18.7819Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.linkedinBoxFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.3362 18.339H15.6707V14.1622C15.6707 13.1662 15.6505 11.8845 14.2817 11.8845C12.892 11.8845 12.6797 12.9683 12.6797 14.0887V18.339H10.0142V9.75H12.5747V10.9207H12.6092C12.967 10.2457 13.837 9.53325 15.1367 9.53325C17.8375 9.53325 18.337 11.3108 18.337 13.6245V18.339H18.3362ZM7.00373 8.57475C6.14573 8.57475 5.45648 7.88025 5.45648 7.026C5.45648 6.1725 6.14648 5.47875 7.00373 5.47875C7.85873 5.47875 8.55173 6.1725 8.55173 7.026C8.55173 7.88025 7.85798 8.57475 7.00373 8.57475ZM8.34023 18.339H5.66723V9.75H8.34023V18.339ZM19.6697 3H4.32923C3.59498 3 3.00098 3.5805 3.00098 4.29675V19.7033C3.00098 20.4202 3.59498 21 4.32923 21H19.6675C20.401 21 21.001 20.4202 21.001 19.7033V4.29675C21.001 3.5805 20.401 3 19.6675 3H19.6697Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.githubFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.001 2C6.47598 2 2.00098 6.475 2.00098 12C2.00098 16.425 4.86348 20.1625 8.83848 21.4875C9.33848 21.575 9.52598 21.275 9.52598 21.0125C9.52598 20.775 9.51348 19.9875 9.51348 19.15C7.00098 19.6125 6.35098 18.5375 6.15098 17.975C6.03848 17.6875 5.55098 16.8 5.12598 16.5625C4.77598 16.375 4.27598 15.9125 5.11348 15.9C5.90098 15.8875 6.46348 16.625 6.65098 16.925C7.55098 18.4375 8.98848 18.0125 9.56348 17.75C9.65098 17.1 9.91348 16.6625 10.201 16.4125C7.97598 16.1625 5.65098 15.3 5.65098 11.475C5.65098 10.3875 6.03848 9.4875 6.67598 8.7875C6.57598 8.5375 6.22598 7.5125 6.77598 6.1375C6.77598 6.1375 7.61348 5.875 9.52598 7.1625C10.326 6.9375 11.176 6.825 12.026 6.825C12.876 6.825 13.726 6.9375 14.526 7.1625C16.4385 5.8625 17.276 6.1375 17.276 6.1375C17.826 7.5125 17.476 8.5375 17.376 8.7875C18.0135 9.4875 18.401 10.375 18.401 11.475C18.401 15.3125 16.0635 16.1625 13.8385 16.4125C14.201 16.725 14.5135 17.325 14.5135 18.2625C14.5135 19.6 14.501 20.675 14.501 21.0125C14.501 21.275 14.6885 21.5875 15.1885 21.4875C19.259 20.1133 21.9999 16.2963 22.001 12C22.001 6.475 17.526 2 12.001 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.instagramFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0281 2.00073C14.1535 2.00259 14.7238 2.00855 15.2166 2.02322L15.4107 2.02956C15.6349 2.03753 15.8561 2.04753 16.1228 2.06003C17.1869 2.1092 17.9128 2.27753 18.5503 2.52503C19.2094 2.7792 19.7661 3.12253 20.3219 3.67837C20.8769 4.2342 21.2203 4.79253 21.4753 5.45003C21.7219 6.0867 21.8903 6.81337 21.9403 7.87753C21.9522 8.1442 21.9618 8.3654 21.9697 8.58964L21.976 8.78373C21.9906 9.27647 21.9973 9.84686 21.9994 10.9723L22.0002 11.7179C22.0003 11.809 22.0003 11.903 22.0003 12L22.0002 12.2821L21.9996 13.0278C21.9977 14.1532 21.9918 14.7236 21.9771 15.2163L21.9707 15.4104C21.9628 15.6347 21.9528 15.8559 21.9403 16.1225C21.8911 17.1867 21.7219 17.9125 21.4753 18.55C21.2211 19.2092 20.8769 19.7659 20.3219 20.3217C19.7661 20.8767 19.2069 21.22 18.5503 21.475C17.9128 21.7217 17.1869 21.89 16.1228 21.94C15.8561 21.9519 15.6349 21.9616 15.4107 21.9694L15.2166 21.9757C14.7238 21.9904 14.1535 21.997 13.0281 21.9992L12.2824 22C12.1913 22 12.0973 22 12.0003 22L11.7182 22L10.9725 21.9993C9.8471 21.9975 9.27672 21.9915 8.78397 21.9768L8.58989 21.9705C8.36564 21.9625 8.14444 21.9525 7.87778 21.94C6.81361 21.8909 6.08861 21.7217 5.45028 21.475C4.79194 21.2209 4.23444 20.8767 3.67861 20.3217C3.12278 19.7659 2.78028 19.2067 2.52528 18.55C2.27778 17.9125 2.11028 17.1867 2.06028 16.1225C2.0484 15.8559 2.03871 15.6347 2.03086 15.4104L2.02457 15.2163C2.00994 14.7236 2.00327 14.1532 2.00111 13.0278L2.00098 10.9723C2.00284 9.84686 2.00879 9.27647 2.02346 8.78373L2.02981 8.58964C2.03778 8.3654 2.04778 8.1442 2.06028 7.87753C2.10944 6.81253 2.27778 6.08753 2.52528 5.45003C2.77944 4.7917 3.12278 4.2342 3.67861 3.67837C4.23444 3.12253 4.79278 2.78003 5.45028 2.52503C6.08778 2.27753 6.81278 2.11003 7.87778 2.06003C8.14444 2.04816 8.36564 2.03847 8.58989 2.03062L8.78397 2.02433C9.27672 2.00969 9.8471 2.00302 10.9725 2.00086L13.0281 2.00073ZM12.0003 7.00003C9.23738 7.00003 7.00028 9.23956 7.00028 12C7.00028 14.7629 9.23981 17 12.0003 17C14.7632 17 17.0003 14.7605 17.0003 12C17.0003 9.23713 14.7607 7.00003 12.0003 7.00003ZM12.0003 9.00003C13.6572 9.00003 15.0003 10.3427 15.0003 12C15.0003 13.6569 13.6576 15 12.0003 15C10.3434 15 9.00028 13.6574 9.00028 12C9.00028 10.3431 10.3429 9.00003 12.0003 9.00003ZM17.2503 5.50003C16.561 5.50003 16.0003 6.05994 16.0003 6.74918C16.0003 7.43843 16.5602 7.9992 17.2503 7.9992C17.9395 7.9992 18.5003 7.4393 18.5003 6.74918C18.5003 6.05994 17.9386 5.49917 17.2503 5.50003Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.twitterXFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M17.6874 3.0625L12.6907 8.77425L8.37045 3.0625H2.11328L9.58961 12.8387L2.50378 20.9375H5.53795L11.0068 14.6886L15.7863 20.9375H21.8885L14.095 10.6342L20.7198 3.0625H17.6874ZM16.6232 19.1225L5.65436 4.78217H7.45745L18.3034 19.1225H16.6232Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.downloadCloud2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 13V18.585L14.8284 16.7574L16.2426 18.1716L12 22.4142L7.75736 18.1716L9.17157 16.7574L11 18.585V13H13ZM12 2C15.5934 2 18.5544 4.70761 18.9541 8.19395C21.2858 8.83154 23 10.9656 23 13.5C23 16.3688 20.8036 18.7246 18.0006 18.9776L18.0009 16.9644C19.6966 16.7214 21 15.2629 21 13.5C21 11.567 19.433 10 17.5 10C17.2912 10 17.0867 10.0183 16.8887 10.054C16.9616 9.7142 17 9.36158 17 9C17 6.23858 14.7614 4 12 4C9.23858 4 7 6.23858 7 9C7 9.36158 7.03838 9.7142 7.11205 10.0533C6.91331 10.0183 6.70879 10 6.5 10C4.567 10 3 11.567 3 13.5C3 15.2003 4.21241 16.6174 5.81986 16.934L6.00005 16.9646L6.00039 18.9776C3.19696 18.7252 1 16.3692 1 13.5C1 10.9656 2.71424 8.83154 5.04648 8.19411C5.44561 4.70761 8.40661 2 12 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.globeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0003 21H18.0003V23H6.00032V21H11.0003V19.9506C7.70689 19.6236 4.88351 17.6987 3.31641 14.9622L5.05319 13.9697C6.43208 16.3776 9.02674 18 12.0003 18C16.4186 18 20.0003 14.4182 20.0003 9.99995C20.0003 7.02637 18.378 4.43171 15.9701 3.05282L16.9626 1.31604C19.9724 3.03965 22.0003 6.28297 22.0003 9.99995C22.0003 15.1853 18.0536 19.4489 13.0003 19.9506V21ZM12.0003 17C8.13433 17 5.00032 13.8659 5.00032 9.99995C5.00032 6.13396 8.13433 2.99995 12.0003 2.99995C15.8663 2.99995 19.0003 6.13396 19.0003 9.99995C19.0003 13.8659 15.8663 17 12.0003 17ZM12.0003 15C14.7617 15 17.0003 12.7614 17.0003 9.99995C17.0003 7.23853 14.7617 4.99995 12.0003 4.99995C9.2389 4.99995 7.00032 7.23853 7.00032 9.99995C7.00032 12.7614 9.2389 15 12.0003 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.mailSendLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M21 3C21.5523 3 22 3.44772 22 4V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V19H20V7.3L12 14.5L2 5.5V4C2 3.44772 2.44772 3 3 3H21ZM8 15V17H0V15H8ZM5 10V12H0V10H5ZM19.5659 5H4.43414L12 11.8093L19.5659 5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.pagesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitForkLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 5C5.44772 5 5 5.44772 5 6C5 6.55228 5.44772 7 6 7C6.55228 7 7 6.55228 7 6C7 5.44772 6.55228 5 6 5ZM3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6C9 7.30622 8.16519 8.41746 7 8.82929V9C7 10.1046 7.89543 11 9 11H15C16.1046 11 17 10.1046 17 9V8.82929C15.8348 8.41746 15 7.30622 15 6C15 4.34315 16.3431 3 18 3C19.6569 3 21 4.34315 21 6C21 7.30622 20.1652 8.41746 19 8.82929V9C19 11.2091 17.2091 13 15 13H13V15.1707C14.1652 15.5825 15 16.6938 15 18C15 19.6569 13.6569 21 12 21C10.3431 21 9 19.6569 9 18C9 16.6938 9.83481 15.5825 11 15.1707V13H9C6.79086 13 5 11.2091 5 9V8.82929C3.83481 8.41746 3 7.30622 3 6ZM18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5ZM12 17C11.4477 17 11 17.4477 11 18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18C13 17.4477 12.5523 17 12 17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryPrivateLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 10V20H19V10H6ZM18 8H20C20.5523 8 21 8.44772 21 9V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V9C3 8.44772 3.44772 8 4 8H6V7C6 3.68629 8.68629 1 12 1C15.3137 1 18 3.68629 18 7V8ZM16 8V7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7V8H16ZM7 11H9V13H7V11ZM7 14H9V16H7V14ZM7 17H9V19H7V17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.starLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0006 18.26L4.94715 22.2082L6.52248 14.2799L0.587891 8.7918L8.61493 7.84006L12.0006 0.5L15.3862 7.84006L23.4132 8.7918L17.4787 14.2799L19.054 22.2082L12.0006 18.26ZM12.0006 15.968L16.2473 18.3451L15.2988 13.5717L18.8719 10.2674L14.039 9.69434L12.0006 5.27502L9.96214 9.69434L5.12921 10.2674L8.70231 13.5717L7.75383 18.3451L12.0006 15.968Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.calendar2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9 1V3H15V1H17V3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H7V1H9ZM20 11H4V19H20V11ZM8 13V15H6V13H8ZM13 13V15H11V13H13ZM18 13V15H16V13H18ZM7 5H4V9H20V5H17V7H15V5H9V7H7V5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.macLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 18V20L16 21V22H8L7.99639 21.0036L10 20V18H2.9918C2.44405 18 2 17.5511 2 16.9925V4.00748C2 3.45107 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44892 22 4.00748V16.9925C22 17.5489 21.5447 18 21.0082 18H14ZM4 5V14H20V5H4Z\"></path>\r\n </svg>\r\n }\r\n }\r\n</span>\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core'\r\nimport { NgOptimizedImage } from '@angular/common'\r\n\r\n@Component({\r\n selector: 'gld-image',\r\n standalone: true,\r\n imports: [NgOptimizedImage],\r\n templateUrl: './image.component.html',\r\n styleUrl: './image.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ImageComponent {\r\n src = input.required<string>()\r\n alt = input.required<string>()\r\n // srcset = input<string>('')\r\n // sizes = input<string>('')\r\n priority = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<!-- @if (srcset() && sizes()) {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" [ngSrcset]=\"srcset()\" [sizes]=\"sizes()\" />\r\n } @else {\r\n <img\r\n fill\r\n alt=\"{{ alt() }}\"\r\n [ngSrc]=\"src()\"\r\n [ngSrcset]=\"srcset()\"\r\n [sizes]=\"sizes()\"\r\n loading=\"lazy\" />\r\n }\r\n} @else {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n } @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n }\r\n} -->\r\n\r\n@if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n} @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n}\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'gld-loader',\r\n imports: [],\r\n templateUrl: './loader.component.html',\r\n styleUrl: './loader.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoaderComponent {\r\n loading = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n background = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n radius = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n minHeight = input<string>('auto')\r\n}\r\n","<article\r\n class=\"loader\"\r\n [class.loader--loading]=\"loading()\"\r\n [class.loader--background]=\"background()\"\r\n [class.loader--radius]=\"radius()\"\r\n [style.minHeight]=\"minHeight()\">\r\n <!-- Content -->\r\n <ng-content />\r\n\r\n <!-- Loader -->\r\n @if (loading()) {\r\n <section class=\"loader-loading\">\r\n <svg class=\"container\" viewBox=\"0 0 40 40\" height=\"40\" width=\"40\">\r\n <circle\r\n class=\"track\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n <circle\r\n class=\"car\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n </svg>\r\n </section>\r\n }\r\n</article>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n booleanAttribute,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, ButtonSize, Icons, IconsSize } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\nconst components = [IconComponent]\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n imports: [...components],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\r\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\r\n icon = input<Icons | null>(null)\r\n iconSize = input<keyof typeof IconsSize>()\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n","// Angular Imports\r\nimport { Component, ChangeDetectionStrategy, input, output, booleanAttribute } from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { RouterLink } from '@angular/router'\r\n// This Module Imports\r\nimport { LinkType, LinkAlign } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-link',\r\n standalone: true,\r\n imports: [NgTemplateOutlet, RouterLink],\r\n templateUrl: './link.component.html',\r\n styleUrl: './link.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LinkComponent {\r\n readonly LinkType = LinkType\r\n\r\n name = input.required<string>()\r\n redirect = input<string>('')\r\n active = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n external = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n type = input<keyof typeof LinkType>(LinkType.default)\r\n align = input<keyof typeof LinkAlign>(LinkAlign.center)\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","@if (external()) {\r\n <!-- It's external link -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttonTemplate\"\r\n [ngTemplateOutletContext]=\"{ buttonType: 'anchor' }\" />\r\n} @else {\r\n <!-- It isn't external link -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttonTemplate\"\r\n [ngTemplateOutletContext]=\"{ buttonType: 'button' }\" />\r\n}\r\n\r\n<!-- Button Template -->\r\n<ng-template #buttonTemplate let-buttonType=\"buttonType\">\r\n @switch (buttonType) {\r\n @case ('anchor') {\r\n <a\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"link link--{{ align() }}\"\r\n [class.link--active]=\"active()\"\r\n [href]=\"redirect()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n target=\"_blank\">\r\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\r\n </a>\r\n }\r\n @case ('button') {\r\n @if (redirect()) {\r\n <!-- It has path to redirect -->\r\n <button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"link link--{{ align() }}\"\r\n [class.link--active]=\"active()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n [routerLink]=\"redirect()\">\r\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\r\n </button>\r\n } @else {\r\n <!-- It doesn't have path to redirect -->\r\n <button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"link link--{{ align() }}\"\r\n [class.link--active]=\"active()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\r\n </button>\r\n }\r\n }\r\n }\r\n</ng-template>\r\n\r\n<!-- Content Button Template -->\r\n<ng-template #contentButtonTemplate>\r\n <ng-content />\r\n</ng-template>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n booleanAttribute,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, Icons, IconsSize, IconsSpace } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\n@Component({\r\n selector: 'gld-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrl: './icon-button.component.scss',\r\n imports: [IconComponent],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconButtonComponent {\r\n icon = input.required<Icons>()\r\n name = input.required<string>()\r\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"iconSize()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute,\n output,\n signal,\n} from '@angular/core'\n// This Module Imports\nimport { DropdownDirection, Icons, IconsSize, IconsSpace } from '../../../models'\nimport { IconComponent } from '../../icon/icon.component'\n\nconst components = [IconComponent]\n\n@Component({\n selector: 'gld-dropdown-button',\n imports: [...components],\n templateUrl: './dropdown-button.component.html',\n styleUrl: './dropdown-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownButtonComponent {\n value = input.required<unknown>()\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.left)\n\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n select(value: unknown) {\n this.changeValue.emit(value)\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"space()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n","// Angular Imports\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n input,\n numberAttribute,\n output,\n AfterContentInit,\n effect,\n} from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Component Imports\nimport {\n ButtonColor,\n ButtonSize,\n Icons,\n IconsSize,\n DropdownType,\n DropdownDirection,\n} from '../../../models'\nimport { DropdownMenuTemplateDirective } from '../../../directives'\nimport { ButtonComponent } from '../button/button.component'\nimport { IconButtonComponent } from '../icon-button/icon-button.component'\nimport { DropdownButtonComponent } from '../dropdown-button/dropdown-button.component'\n\nconst components = [ButtonComponent, IconButtonComponent]\nconst directives = [DropdownMenuTemplateDirective]\n\n@Component({\n selector: 'gld-dropdown-menu',\n imports: [NgTemplateOutlet, ...components, directives],\n templateUrl: './dropdown-menu.component.html',\n styleUrl: './dropdown-menu.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownMenuComponent implements AfterContentInit {\n readonly DropdownType = DropdownType\n\n name = input.required<string>()\n type = input.required<keyof typeof DropdownType>()\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>()\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.left)\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n dropdownButtonChildren = contentChildren<DropdownButtonComponent>(DropdownButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) => {\n dropdownButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent, index: number) => {\n dropdownButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) =>\n dropdownButton.error.set(error),\n )\n }\n}\n\n","<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ size() }} dropdown-menu--{{ type() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no button</ng-content>\n </section>\n</ng-template>\n\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\n\n@Component({\n selector: 'gld-toggle-button',\n imports: [],\n templateUrl: './toggle-button.component.html',\n styleUrl: './toggle-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n value = input.required<unknown>()\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n select(value: unknown) {\n this.changeValue.emit(value)\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <ng-content> empty button </ng-content>\n</button>\n\n","// Angular Imports\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n input,\n output,\n} from '@angular/core'\n// This Module Imports\nimport { ToggleButtonComponent } from './../toggle-button/toggle-button.component'\n\n@Component({\n selector: 'gld-toggle-group',\n imports: [],\n templateUrl: './toggle-group.component.html',\n styleUrl: './toggle-group.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleGroupComponent implements AfterContentInit {\n name = input.required<string>()\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n toggleButtonChildren = contentChildren<ToggleButtonComponent>(ToggleButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) => {\n toggleButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent, index: number) => {\n toggleButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) =>\n toggleButton.error.set(error),\n )\n }\n}\n\n","<section class=\"toggle\" [attr.name]=\"name()\">\n <ng-content select=\"gld-toggle-button\" />\n</section>\n\n","// Angular Imports\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n contentChildren,\r\n signal,\r\n effect,\r\n} from '@angular/core'\r\nimport { ValidationErrors } from '@angular/forms'\r\n// This Module Imports\r\nimport { InputErrorMessageDirective } from '../../../directives'\r\n\r\n@Component({\r\n selector: 'gld-input-error',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n templateUrl: './input-error.component.html',\r\n styleUrl: './input-error.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputErrorComponent {\r\n readonly Boolean = Boolean\r\n errors = input.required<ValidationErrors | null>()\r\n border = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n content = contentChildren(InputErrorMessageDirective, {\r\n descendants: true,\r\n })\r\n\r\n hasContent = signal(false)\r\n\r\n constructor() {\r\n effect(() => this.hasContent.set(this.content()?.length ? true : false))\r\n }\r\n}\r\n","<section class=\"error\" [class.error--with-border]=\"border()\">\r\n <span class=\"error__message\">\r\n @if (hasContent()) {\r\n <ng-content />\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"errorsMessageDefault\" />\r\n }\r\n </span>\r\n</section>\r\n\r\n<ng-template #errorsMessageDefault>\r\n @switch (true) {\r\n @case (Boolean(this.errors()?.['required'])) {\r\n This field is required!\r\n }\r\n @case (Boolean(this.errors()?.['email'])) {\r\n {{ this.errors()?.['email'] }}\r\n }\r\n @case (Boolean(this.errors()?.['maxlength'])) {\r\n This field must have a maximum of\r\n {{ this.errors()?.['maxlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['minlength'])) {\r\n This field must have a minimum of\r\n {{ this.errors()?.['minlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['isDate'])) {\r\n {{ this.errors()?.['isDate'] }}\r\n }\r\n @case (Boolean(this.errors()?.['minimumAge'])) {\r\n This field must meet the minimum age requirement of\r\n {{ this.errors()?.['minimumAge'].requiredAge }} years\r\n }\r\n @case (Boolean(this.errors()?.['naturalNumber'])) {\r\n {{ this.errors()?.['naturalNumber'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustMatch'])) {\r\n {{ this.errors()?.['mustMatch'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustUnmatch'])) {\r\n {{ this.errors()?.['mustUnmatch'] }}\r\n }\r\n @default {\r\n empty error message\r\n }\r\n }\r\n</ng-template>\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core'\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\nimport {\n ReactiveFormsModule,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n} from '@angular/forms'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Module Imports\nimport { InputErrorComponent } from '../input-error/input-error.component'\nimport { formatDateToISO, formatDateFromISOToYYYYMMDD } from '../../../utils'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\nconst components = [InputErrorComponent]\n\n@Component({\n selector: 'gld-input-date',\n standalone: true,\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\n templateUrl: './input-date.component.html',\n styleUrl: './input-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputDateComponent),\n multi: true,\n },\n ],\n})\nexport class InputDateComponent implements ControlValueAccessor, OnInit {\n readonly #destroyRef = inject(DestroyRef)\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\n\n control = input.required<FormControl<unknown>>()\n name = input.required<string>()\n label = input<string>('')\n min = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n max = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n placeholder = input<string>('')\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n onChange = (value: unknown) => {}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {}\n\n constructor() {\n this.innerControl()\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((value) => {\n this.onChange(value)\n if (value && typeof value === 'string') {\n const valueTransformed = formatDateFromISOToYYYYMMDD(formatDateToISO(value))\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\n }\n })\n }\n\n ngOnInit(): void {\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\n this.control()\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe(() => this.#changeDetectorRef.detectChanges())\n }\n\n writeValue(value: unknown): void {\n // console.log('writeValue')\n if (value !== this.innerControl().value) this.innerControl().setValue(String(value))\n }\n\n registerOnChange(onChange: (value: unknown) => void): void {\n // console.log('registerOnChange')\n this.onChange = onChange\n }\n\n registerOnTouched(onTouched: () => void): void {\n // console.log('registerOnTouched')\n this.onTouched = onTouched\n }\n}\n\n","@let errors = control().invalid && (control().dirty || control().touched);\n@let disabled = control().disabled || (control().pending && control().disabled);\n\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\n\t<!-- Label -->\n\t@if (label()) {\n\t\t<label [for]=\"name()\">\n\t\t\t{{ label() }}\n\t\t</label>\n\t}\n\n\t<!-- Input -->\n\t<input\n\t\ttype=\"date\"\n\t\tid=\"input-date-{{ name() }}\"\n\t\t[name]=\"name()\"\n\t\t[attr.min]=\"min()\"\n\t\t[attr.max]=\"max()\"\n\t\t[placeholder]=\"placeholder()\"\n\t\t[formControl]=\"innerControl()\"\n\t\t(blur)=\"onTouched()\" />\n\n\t<!-- Suffix -->\n\t@if (suffix()) {\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\n\t}\n</section>\n<!-- Errors -->\n@if (errors) {\n\t<ng-content select=\"gld-input-error\">\n\t\t<gld-input-error [errors]=\"control().errors\" />\n\t</ng-content>\n} @else {\n\t<!-- Hint -->\n\t<ng-content select=\"gld-input-hint\" />\n}\n\n<!-- Suffix Template -->\n<ng-template #suffixTemplate>\n\t<span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\n\t\t<ng-content select=\"[inputSuffix]\" />\n\t</span>\n</ng-template>\n\n<!-- <h3>Debugging</h3> -->\n<!-- <section>errors: {{ control().errors | json }}</section> -->\n<!-- <section>errors: {{ errors }}</section> -->\n<!-- <section>invalid: {{ control().invalid }}</section> -->\n<!-- <section>dirty: {{ control().dirty }}</section> -->\n<!-- <section>touched: {{ control().touched }}</section> -->\n<!-- <section>disable: {{ control().disabled }}</section> -->\n<!-- <section>status: {{ control().status }}</section> -->\n\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core'\r\n\r\n@Component({\r\n\tselector: 'gld-input-hint',\r\n\tstandalone: true,\r\n\timports: [],\r\n\ttemplateUrl: './input-hint.component.html',\r\n\tstyleUrl: './input-hint.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputHintComponent {}\r\n","<section class=\"hint\">\r\n\t<span class=\"hint__message\">\r\n\t\t<ng-content>hint empty</ng-content>\r\n\t</span>\r\n</section>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n OnInit,\r\n booleanAttribute,\r\n forwardRef,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core'\r\nimport {\r\n ReactiveFormsModule,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './input.component.html',\r\n styleUrl: './input.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <input\r\n id=\"input-{{ name() }}\"\r\n [tabindex]=\"disabled ? '-1' : '0'\"\r\n [name]=\"name()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\" />\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'gld-radio-button',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './radio-button.component.html',\r\n styleUrl: './radio-button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioButtonComponent {\r\n value = input.required<unknown>()\r\n changeValue = output<unknown>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<unknown>(null)\r\n disabled = signal<boolean>(false)\r\n error = signal<boolean>(false)\r\n selected = computed(() => Boolean(this.current() === this.value()))\r\n\r\n select(value: unknown) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: unknown) {\r\n this.select(value)\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n\t[tabindex]=\"disabled() ? '-1' : '0'\"\r\n\t(keyup.enter)=\"keyup(value())\"\r\n\t(click)=\"select(value())\"\r\n\tclass=\"radio\"\r\n\t[class.radio--selected]=\"selected()\"\r\n\t[class.radio--disabled]=\"disabled()\"\r\n\t[class.radio--error]=\"error()\"\r\n\t(focus)=\"onFocus()\"\r\n\t(blur)=\"onBlur()\"\r\n\t(keyup.escape)=\"onBlur()\">\r\n\t<span class=\"radio__icon\" [class.radio__icon--selected]=\"selected()\"></span>\r\n\r\n\t<span class=\"radio__label\">\r\n\t\t<ng-content>empty radio button</ng-content>\r\n\t</span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChildren,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { RadioDirection } from '../../../models'\r\nimport { RadioButtonComponent } from '../radio-button/radio-button.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-radio-group',\r\n standalone: true,\r\n imports: [...components],\r\n templateUrl: './radio-group.component.html',\r\n styleUrl: './radio-group.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioGroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioGroupComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n direction = input<keyof typeof RadioDirection>(RadioDirection.horizontal)\r\n\r\n radioButtonChildren = contentChildren<RadioButtonComponent>(RadioButtonComponent)\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.updateCurrentInChildren(value)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => {\r\n this.updateErrorInChildren(\r\n this.control().invalid && (this.control().dirty || this.control().touched),\r\n )\r\n this.#changeDetectorRef.detectChanges()\r\n })\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) => {\r\n radioButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\r\n radioButton.changeFocus.subscribe((focus) => {\r\n if (!focus) this.onTouched()\r\n })\r\n })\r\n }\r\n\r\n updateCurrentInChildren(value: unknown) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent, index: number) => {\r\n radioButton.current.set(value)\r\n // Set current one time\r\n if (index === 0) this.onChange(value)\r\n })\r\n }\r\n\r\n updateErrorInChildren(error: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.error.set(error),\r\n )\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n // console.log('setDisabledState')\r\n this.#updateDisabledInChildren(disabled)\r\n }\r\n\r\n #updateDisabledInChildren(disabled: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.disabled.set(disabled),\r\n )\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<article class=\"radio\" [class.radio--disabled]=\"disabled\" [attr.name]=\"name()\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label class=\"radio__label\" [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n <section class=\"radio__items radio__items--{{ direction() }}\">\r\n <ng-content select=\"gld-radio-button\" />\r\n </section>\r\n</article>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error border [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-select-option',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './select-option.component.html',\r\n styleUrl: './select-option.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectOptionComponent {\r\n value = input.required<InputValue>()\r\n disabled = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n selected = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n select(): void {\r\n if (!this.disabled()) this.selected.emit(this.value())\r\n }\r\n\r\n keyup() {\r\n this.select()\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n [tabindex]=\"disabled() ? '-1' : '0'\"\r\n (keyup.enter)=\"keyup()\"\r\n (click)=\"select()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.escape)=\"onBlur()\">\r\n <span><ng-content> an option </ng-content></span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n AfterContentInit,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n viewChild,\r\n effect,\r\n OnInit,\r\n inject,\r\n DestroyRef,\r\n ChangeDetectorRef,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { IconComponent } from '../../icon/icon.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\nimport { SelectOptionComponent } from '../select-option/select-option.component'\r\nimport { Icons, InputValue } from '../../../models'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [IconComponent, InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-select',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './select.component.html',\r\n styleUrl: './select.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n readonly Icons = Icons\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n transform = input<(value: unknown) => string>((value: unknown) => String(value))\r\n\r\n selectElement = viewChild<ElementRef<HTMLElement>>('selectElement')\r\n selectOptionChildren = contentChildren<SelectOptionComponent>(SelectOptionComponent)\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n isMenuOpen = signal(false)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectOptionChildren()) this.#detectSelectOptionChildren()\r\n })\r\n\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) {\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.#detectSelectOptionChildren()\r\n\r\n this.selectOptionChildren().map((selectOption: SelectOptionComponent) => {\r\n selectOption.changeFocus.subscribe((focus) => {\r\n // console.log('focus', focus)\r\n if (focus) this.onFocus()\r\n else this.onBlur()\r\n })\r\n })\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n // const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n // console.log('blur')\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n\r\n arrowIconClicked() {\r\n // FIXME: This is a workaround to prevent the menu from closing when the arrow icon is clicked.\r\n // console.log('clicked - init', this.isMenuOpen())\r\n if (this.isMenuOpen()) this.onTouched()\r\n this.isMenuOpen.update((open) => !open)\r\n // console.log('clicked - end', this.isMenuOpen())\r\n }\r\n\r\n #transformValue(value: unknown): string | null {\r\n let valueTransformed: string | null\r\n\r\n if (value === null || value === undefined) valueTransformed = null\r\n else valueTransformed = this.transform()(value)\r\n\r\n return valueTransformed\r\n }\r\n\r\n #detectSelectOptionChildren() {\r\n const selectOptionChildren = this.selectOptionChildren()\r\n const selectElement: HTMLElement | undefined = this.selectElement()?.nativeElement\r\n selectElement?.style.setProperty('--gld-option-items', String(selectOptionChildren.length))\r\n const clientHeight: number | undefined =\r\n selectElement?.querySelector('gld-select-option')?.clientHeight\r\n if (clientHeight) selectElement?.style.setProperty('--gld-option-height', `${clientHeight}px`)\r\n\r\n selectOptionChildren.map((selectOption) => {\r\n selectOption.selected.subscribe((value: InputValue) => {\r\n if (value) {\r\n const buttons = Array.from(\r\n selectElement?.querySelectorAll('gld-select-option button') ?? [],\r\n ) as HTMLButtonElement[]\r\n buttons.map((button) => button.blur())\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n this.onChange(value)\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section #selectElement class=\"select\">\r\n\t<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n\t\t<!-- Label -->\r\n\t\t@if (label()) {\r\n\t\t\t<label [for]=\"name()\">\r\n\t\t\t\t{{ label() }}\r\n\t\t\t</label>\r\n\t\t}\r\n\t\t<!-- Input -->\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\tid=\"input-select-{{ name() }}\"\r\n\t\t\t[tabindex]=\"disabled ? '-1' : '0'\"\r\n\t\t\t[name]=\"name()\"\r\n\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t[formControl]=\"innerControl()\"\r\n\t\t\t(focus)=\"onFocus()\"\r\n\t\t\t(blur)=\"onBlur()\"\r\n\t\t\t(keyup.escape)=\"onBlur()\" />\r\n\r\n\t\t<!-- Suffix -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n\r\n\t\t<!-- Menu -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"menuTemplate\" />\r\n\t</section>\r\n\t<!-- Errors -->\r\n\t@if (errors) {\r\n\t\t<ng-content select=\"gld-input-error\">\r\n\t\t\t<gld-input-error [errors]=\"control().errors\" />\r\n\t\t</ng-content>\r\n\t} @else {\r\n\t\t<!-- Hint -->\r\n\t\t<ng-content select=\"gld-input-hint\" />\r\n\t}\r\n</section>\r\n\r\n<!-- Menu Template -->\r\n<ng-template #menuTemplate>\r\n\t<section class=\"select-menu\" [class.select-menu--opened]=\"isMenuOpen()\">\r\n\t\t<ng-content select=\"gld-select-option\" />\r\n\t</section>\r\n</ng-template>\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t@if (control().pending) {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon input-icon--animated\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.loader4Fill\"\r\n\t\t\t[disabled]=\"disabled\" />\r\n\t} @else {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon\"\r\n\t\t\t[class.input-icon--rotated]=\"isMenuOpen()\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.arrowDownSLine\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t\t(clicked)=\"arrowIconClicked()\" />\r\n\t}\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t<gld-icon\r\n\t\tsize=\"small\"\r\n\t\tclass=\"input-icon\"\r\n\t\t[class.input-icon--error]=\"errors\"\r\n\t\t[icon]=\"Icons.arrowDownSLine\" />\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models/controls'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-textarea',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './textarea.component.html',\r\n styleUrl: './textarea.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextareaComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <textarea\r\n id=\"input-textarea-{{ name() }}\"\r\n [name]=\"name()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\"></textarea>\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix emplate -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3>\r\n<section>errors: {{ errors }}</section>\r\n<section>invalid: {{ control().invalid }}</section>\r\n<section>dirty: {{ control().dirty }}</section>\r\n<section>touched: {{ control().touched }}</section>\r\n<section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\r\n// This Module Imports\r\nimport { TileColor, TilePaddingSize } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-tile',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './tile.component.html',\r\n styleUrl: './tile.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TileComponent {\r\n color = input<keyof typeof TileColor>(TileColor.default)\r\n paddingSize = input<keyof typeof TilePaddingSize>(TilePaddingSize.zero)\r\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n hover = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<article\r\n class=\"tile tile--{{ color() }} tile--padding-{{ paddingSize() }}\"\r\n [class.tile--background]=\"background()\"\r\n [class.tile--hover]=\"hover()\">\r\n <section class=\"tile-content\">\r\n <ng-content />\r\n </section>\r\n</article>\r\n","/*\n * Public API Surface of iamgld-ui\n */\n\nexport * from './lib/utils'\nexport * from './lib/models'\nexport * from './lib/validators'\nexport * from './lib/directives'\nexport * from './lib/components'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["components"],"mappings":"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"}
1
+ {"version":3,"file":"iamgld-ui.mjs","sources":["../../../projects/iamgld-ui/src/lib/utils/date/date.util.ts","../../../projects/iamgld-ui/src/lib/utils/string/string.util.ts","../../../projects/iamgld-ui/src/lib/models/buttons/button.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/link.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/dropdown.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/radio.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/select.model.ts","../../../projects/iamgld-ui/src/lib/models/icon/icon.model.ts","../../../projects/iamgld-ui/src/lib/models/tiles/tile.model.ts","../../../projects/iamgld-ui/src/lib/validators/is-date/is-date.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-document/is-document.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-email/is-email.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-form-select-item/is-form-select-item.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-license-plate/is-license-plate.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-natural-number/is-natural-number.validator.ts","../../../projects/iamgld-ui/src/lib/validators/minimum-age/minimum-age.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-match/must-match.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-unmatch/must-unmatch.validator.ts","../../../projects/iamgld-ui/src/lib/directives/dropdown-menu-template/dropdown-menu-template.directive.ts","../../../projects/iamgld-ui/src/lib/directives/input-error-message/input-error-message.directive.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.html","../../../projects/iamgld-ui/src/lib/components/image/image.component.ts","../../../projects/iamgld-ui/src/lib/components/image/image.component.html","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.ts","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.html","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.ts","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.html","../../../projects/iamgld-ui/src/public-api.ts","../../../projects/iamgld-ui/src/iamgld-ui.ts"],"sourcesContent":["export function formatDateToISO(outerDate: string | Date): string | null {\n\tconst date = new Date(outerDate)\n\tif (!isNaN(date.getTime())) return date.toISOString()\n\telse return null\n}\n\n// export function formatDateFromISOToDDMMYYYY(dateAsString: string): string | null {\n// \tconst [year, month, day] = dateAsString.split('-')\n// \tif (year && month && day) return `${day}/${month}/${year}`\n// \telse return null\n// }\n\nexport function formatDateFromISOToYYYYMMDD(dateAsString: string | null): string | null {\n\tif (!dateAsString) return null\n\tconst [date] = dateAsString.split('T')\n\n\tif (date) return date\n\telse return null\n}\n\nexport function getDateWithOffsetInYears({ years }: { years: number }): Date {\n\tconst today = new Date()\n\ttoday.setFullYear(today.getFullYear() + years) // Agrega o resta años\n\treturn today\n}\n\n","export function capitalizeFirstLetter(str: string): string {\n\tif (!str) return str // Maneja el caso de string vacío\n\treturn str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\n","export enum ButtonColor {\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum ButtonSize {\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","export enum LinkType {\n default = 'default',\n}\n\nexport enum LinkAlign {\n left = 'left',\n right = 'right',\n center = 'center',\n}\n\n","export enum DropdownType {\n button = 'button',\n iconButton = 'iconButton',\n}\n\nexport enum DropdownDirection {\n left = 'left',\n right = 'right',\n}\n\n","export enum RadioDirection {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n","export enum SelectType {\r\n default = 'default',\r\n inline = 'inline',\r\n}\r\n","export enum Icons {\r\n arrowDownSLine = 'arrow-down-s-line',\r\n arrowUpSLine = 'arrow-up-s-line',\r\n checkboxCircleLine = 'checkbox-circle-line',\r\n checkboxBlankCircleLine = 'checkbox-blank-circle-line',\r\n loader4Fill = 'loader-4-fill',\r\n logoutCircleLine = 'ri-logout-circle-line',\r\n loginCircleLine = 'ri-login-circle-line',\r\n gitRepositoryLine = 'ri-git-repository-line',\r\n fileList3Line = 'ri-file-list-3-line',\r\n menuLine = 'ri-menu-line',\r\n sunLine = 'ri-sun-line',\r\n moonClearLine = 'ri-moon-clear-line',\r\n englishInput = 'ri-english-input',\r\n translate = 'ri-translate',\r\n user4Line = 'ri-user-4-line',\r\n shapesLine = 'ri-shapes-line',\r\n closeLine = 'ri-close-line',\r\n eyeLine = 'ri-eye-line',\r\n eyeCloseLine = 'ri-eye-close-line',\r\n linkedinBoxFill = 'ri-linkedin-box-fill',\r\n githubFill = 'ri-github-fill',\r\n instagramFill = 'ri-instagram-fill',\r\n twitterXFill = 'ri-twitter-x-fill',\r\n downloadCloud2Line = 'ri-download-cloud-2-line',\r\n globeLine = 'ri-globe-line',\r\n mailSendLine = 'ri-mail-send-line',\r\n pagesLine = 'ri-pages-line',\r\n gitForkLine = 'ri-git-fork-line',\r\n gitRepositoryPrivateLine = 'ri-git-repository-private-line',\r\n starLine = 'ri-star-line',\r\n calendar2Line = 'ri-calendar-2-line',\r\n macLine = 'ri-mac-line',\r\n}\r\n\r\nexport enum IconsSize {\r\n tiny = 'tiny',\r\n small = 'small',\r\n normal = 'normal',\r\n medium = 'medium',\r\n large = 'large',\r\n}\r\n\r\nexport enum IconsSpace {\r\n left = 'left',\r\n right = 'right',\r\n none = 'none',\r\n}\r\n","export enum TileColor {\n default = 'default',\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum TilePaddingSize {\n zero = 'zero',\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\n// Regex to validate the ISO date format (YYYY-MM-DD)\nconst ISO_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/\n\nexport function isDateValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n if (!ISO_DATE_REGEX.test(value))\n return { isDate: 'This field must be a valid date in the format YYYY-MM-DD!' }\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const date = new Date(year, month - 1, day)\n\n // Verify if the date is logical and corresponds to the format\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day)\n return null\n return { isDate: 'This field must be a valid date!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isDocumentValidator({ documentType }: { documentType: DocumentType }): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns: Patterns = {\n\t\t\tDNI: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{7,8}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener entre 7 y 8 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCT: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCL: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[documentType]\n\n\t\tif (!value) return null\n\n\t\tconst pattern = patternsToValid.find((pattern) => !pattern.regex.test(value))\n\n\t\treturn pattern ? { isDocument: pattern.message } : null\n\t}\n}\n\ntype DocumentType = 'DNI' | 'CT' | 'CL'\n\ninterface ValidationPattern {\n\tregex: RegExp\n\tmessage: string\n}\n\ninterface Patterns {\n\tDNI: ValidationPattern[]\n\tCT: ValidationPattern[]\n\tCL: ValidationPattern[]\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar emails\nconst EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/\n\nexport function isEmailValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\n\t\tif (EMAIL_REGEX.test(value)) return null\n\t\t return { email: 'This field must be a valid email!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isFormSelectItemValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\t\tif (typeof value === 'string')\n\t\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\n\t\tif (typeof value === 'object') {\n\t\t\tif ('value' in value && 'label' in value) return null\n\t\t}\n\n\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isLicensePlateValidator({\n\tvehicleType,\n}: {\n\tvehicleType: 'AUTO' | 'MOTO' | 'BOTH'\n}): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns = {\n\t\t\tAUTO: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t],\n\t\t\tMOTO: [\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t\tBOTH: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[vehicleType]\n\n\t\tif (!value) return null\n\n\t\tconst isValid = patternsToValid.some((pattern) => pattern.test(value))\n\n\t\treturn isValid ? null : { isLicensePlate: 'El campo debe ser una patente valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar números naturales (0, 1, 2, 3, ...)\nconst NATURAL_NUMBER_REGEX = /^[0-9]+$/\n\nexport function isNaturalNumberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n\n if (!value) return null\n\n if (NATURAL_NUMBER_REGEX.test(value)) return null\n return { naturalNumber: 'This field must contain only valid numbers!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\nexport function minimumAgeValidator({ minAge }: { minAge: number }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const birthDay = new Date(year, month - 1, day)\n\n // Get the current date and calculate the difference in years\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const age = today.getFullYear() - birthDay.getFullYear()\n const isMonthPast = today.getMonth() > birthDay.getMonth()\n const isSameMonthDayPast =\n today.getMonth() === birthDay.getMonth() && today.getDate() >= birthDay.getDate()\n\n const isValidAge = age > minAge || (age === minAge && (isMonthPast || isSameMonthDayPast))\n\n // Retornar el error si la edad es menor al mínimo\n return isValidAge ? null : { minimumAge: { requiredAge: minAge, actualAge: age } }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustMatchValidator({\n\tcontrolName,\n\tmustMatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustMatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustMatchControl = formGroup.get(mustMatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustMatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value !== mustMatchControl.value) {\n\t\t\tmustMatchControl.setErrors({ ...mustMatchControl.errors, mustMatch: errorMessage ?? true })\n\t\t\treturn { mustMatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustUnmatchValidator({\n\tcontrolName,\n\tmustUnmatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustUnmatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustUnmatchControl = formGroup.get(mustUnmatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustUnmatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value === mustUnmatchControl.value) {\n\t\t\tmustUnmatchControl.setErrors({\n\t\t\t\t...mustUnmatchControl.errors,\n\t\t\t\tmustUnmatch: errorMessage ?? true,\n\t\t\t})\n\t\t\treturn { mustUnmatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldDropdownMenuTemplate]',\n})\nexport class DropdownMenuTemplateDirective {}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldInputErrorMessage]',\n})\nexport class InputErrorMessageDirective {}\n\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// Shared Imports\r\nimport { Icons, IconsSize, IconsSpace } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-icon',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './icon.component.html',\r\n styleUrl: './icon.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconComponent {\r\n readonly IconsSpace = IconsSpace\r\n readonly Icons = Icons\r\n\r\n icon = input.required<Icons>()\r\n size = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<span\r\n tabindex=\"-1\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n class=\"icon icon--{{ size() }}\"\r\n [class.icon--left]=\"space() === IconsSpace.left\"\r\n [class.icon--right]=\"space() === IconsSpace.right\"\r\n [style.right.px]=\"moveLeftToRight()\"\r\n [style.top.px]=\"moveTopToBottom()\">\r\n @switch (icon()) {\r\n @case (Icons.arrowDownSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.arrowUpSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11.0026 16L6.75999 11.7574L8.17421 10.3431L11.0026 13.1716L16.6595 7.51472L18.0737 8.92893L11.0026 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxBlankCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loader4Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.logoutCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 11H13V13H5V16L0 12L5 8V11ZM3.99927 18H6.70835C8.11862 19.2447 9.97111 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C9.97111 4 8.11862 4.75527 6.70835 6H3.99927C5.82368 3.57111 8.72836 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C8.72836 22 5.82368 20.4289 3.99927 18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loginCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 11V8L15 12L10 16V13H1V11H10ZM2.4578 15H4.58152C5.76829 17.9318 8.64262 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C8.64262 4 5.76829 6.06817 4.58152 9H2.4578C3.73207 4.94289 7.52236 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C7.52236 22 3.73207 19.0571 2.4578 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 21V23.5L10 21.5L7 23.5V21H6.5C4.567 21 3 19.433 3 17.5V5C3 3.34315 4.34315 2 6 2H20C20.5523 2 21 2.44772 21 3V20C21 20.5523 20.5523 21 20 21H13ZM13 19H19V16H6.5C5.67157 16 5 16.6716 5 17.5C5 18.3284 5.67157 19 6.5 19H7V17H13V19ZM19 14V4H6V14.0354C6.1633 14.0121 6.33024 14 6.5 14H19ZM7 5H9V7H7V5ZM7 8H9V10H7V8ZM7 11H9V13H7V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.fileList3Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M19 22H5C3.34315 22 2 20.6569 2 19V3C2 2.44772 2.44772 2 3 2H17C17.5523 2 18 2.44772 18 3V15H22V19C22 20.6569 20.6569 22 19 22ZM18 17V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V17H18ZM16 20V4H4V19C4 19.5523 4.44772 20 5 20H16ZM6 7H14V9H6V7ZM6 11H14V13H6V11ZM6 15H11V17H6V15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.menuLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path d=\"M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.sunLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16ZM11 1H13V4H11V1ZM11 20H13V23H11V20ZM3.51472 4.92893L4.92893 3.51472L7.05025 5.63604L5.63604 7.05025L3.51472 4.92893ZM16.9497 18.364L18.364 16.9497L20.4853 19.0711L19.0711 20.4853L16.9497 18.364ZM19.0711 3.51472L20.4853 4.92893L18.364 7.05025L16.9497 5.63604L19.0711 3.51472ZM5.63604 16.9497L7.05025 18.364L4.92893 20.4853L3.51472 19.0711L5.63604 16.9497ZM23 11V13H20V11H23ZM4 11V13H1V11H4Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.moonClearLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 6C10 10.4183 13.5817 14 18 14C19.4386 14 20.7885 13.6203 21.9549 12.9556C21.4738 18.0302 17.2005 22 12 22C6.47715 22 2 17.5228 2 12C2 6.79948 5.9698 2.52616 11.0444 2.04507C10.3797 3.21152 10 4.56142 10 6ZM4 12C4 16.4183 7.58172 20 12 20C14.9654 20 17.5757 18.3788 18.9571 15.9546C18.6407 15.9848 18.3214 16 18 16C12.4772 16 8 11.5228 8 6C8 5.67863 8.01524 5.35933 8.04536 5.04293C5.62119 6.42426 4 9.03458 4 12ZM18.1642 2.29104L19 2.5V3.5L18.1642 3.70896C17.4476 3.8881 16.8881 4.4476 16.709 5.16417L16.5 6H15.5L15.291 5.16417C15.1119 4.4476 14.5524 3.8881 13.8358 3.70896L13 3.5V2.5L13.8358 2.29104C14.5524 2.1119 15.1119 1.5524 15.291 0.835829L15.5 0H16.5L16.709 0.835829C16.8881 1.5524 17.4476 2.1119 18.1642 2.29104ZM23.1642 7.29104L24 7.5V8.5L23.1642 8.70896C22.4476 8.8881 21.8881 9.4476 21.709 10.1642L21.5 11H20.5L20.291 10.1642C20.1119 9.4476 19.5524 8.8881 18.8358 8.70896L18 8.5V7.5L18.8358 7.29104C19.5524 7.1119 20.1119 6.5524 20.291 5.83583L20.5 5H21.5L21.709 5.83583C21.8881 6.5524 22.4476 7.1119 23.1642 7.29104Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.englishInput) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 10H16L16.0005 10.7574C16.7154 10.279 17.5751 10 18.5 10C20.9853 10 23 12.0147 23 14.5V20H21V14.5C21 13.07 19.8255 12 18.5 12C17.1745 12 16 13.07 16 14.5V20H14V10ZM12 4V6H4V11H12V13H4V18H12V20H2V4H12Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.translate) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 15V17C5 18.0544 5.81588 18.9182 6.85074 18.9945L7 19H10V21H7C4.79086 21 3 19.2091 3 17V15H5ZM18 10L22.4 21H20.245L19.044 18H14.954L13.755 21H11.601L16 10H18ZM17 12.8852L15.753 16H18.245L17 12.8852ZM8 2V4H12V11H8V14H6V11H2V4H6V2H8ZM17 3C19.2091 3 21 4.79086 21 7V9H19V7C19 5.89543 18.1046 5 17 5H14V3H17ZM6 6H4V9H6V6ZM10 6H8V9H10V6Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.user4Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 20H19V22H5V20ZM12 18C7.58172 18 4 14.4183 4 10C4 5.58172 7.58172 2 12 2C16.4183 2 20 5.58172 20 10C20 14.4183 16.4183 18 12 18ZM12 16C15.3137 16 18 13.3137 18 10C18 6.68629 15.3137 4 12 4C8.68629 4 6 6.68629 6 10C6 13.3137 8.68629 16 12 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.shapesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9998 1L6 11H18L11.9998 1ZM11.9998 4.8873L14.4676 9H9.53232L11.9998 4.8873ZM6.75 20C5.23122 20 4 18.7688 4 17.25C4 15.7312 5.23122 14.5 6.75 14.5C8.26878 14.5 9.5 15.7312 9.5 17.25C9.5 18.7688 8.26878 20 6.75 20ZM6.75 22C9.37335 22 11.5 19.8734 11.5 17.25C11.5 14.6266 9.37335 12.5 6.75 12.5C4.12665 12.5 2 14.6266 2 17.25C2 19.8734 4.12665 22 6.75 22ZM15 15.5V19.5H19V15.5H15ZM13 21.5V13.5H21V21.5H13Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.closeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3ZM12.0003 19C16.2359 19 19.8603 16.052 20.7777 12C19.8603 7.94803 16.2359 5 12.0003 5C7.7646 5 4.14022 7.94803 3.22278 12C4.14022 16.052 7.7646 19 12.0003 19ZM12.0003 16.5C9.51498 16.5 7.50026 14.4853 7.50026 12C7.50026 9.51472 9.51498 7.5 12.0003 7.5C14.4855 7.5 16.5003 9.51472 16.5003 12C16.5003 14.4853 14.4855 16.5 12.0003 16.5ZM12.0003 14.5C13.381 14.5 14.5003 13.3807 14.5003 12C14.5003 10.6193 13.381 9.5 12.0003 9.5C10.6196 9.5 9.50026 10.6193 9.50026 12C9.50026 13.3807 10.6196 14.5 12.0003 14.5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeCloseLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9.34268 18.7819L7.41083 18.2642L8.1983 15.3254C7.00919 14.8874 5.91661 14.2498 4.96116 13.4534L2.80783 15.6067L1.39362 14.1925L3.54695 12.0392C2.35581 10.6103 1.52014 8.87466 1.17578 6.96818L3.14386 6.61035C3.90289 10.8126 7.57931 14.0001 12.0002 14.0001C16.4211 14.0001 20.0976 10.8126 20.8566 6.61035L22.8247 6.96818C22.4803 8.87466 21.6446 10.6103 20.4535 12.0392L22.6068 14.1925L21.1926 15.6067L19.0393 13.4534C18.0838 14.2498 16.9912 14.8874 15.8021 15.3254L16.5896 18.2642L14.6578 18.7819L13.87 15.8418C13.2623 15.9459 12.6376 16.0001 12.0002 16.0001C11.3629 16.0001 10.7381 15.9459 10.1305 15.8418L9.34268 18.7819Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.linkedinBoxFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.3362 18.339H15.6707V14.1622C15.6707 13.1662 15.6505 11.8845 14.2817 11.8845C12.892 11.8845 12.6797 12.9683 12.6797 14.0887V18.339H10.0142V9.75H12.5747V10.9207H12.6092C12.967 10.2457 13.837 9.53325 15.1367 9.53325C17.8375 9.53325 18.337 11.3108 18.337 13.6245V18.339H18.3362ZM7.00373 8.57475C6.14573 8.57475 5.45648 7.88025 5.45648 7.026C5.45648 6.1725 6.14648 5.47875 7.00373 5.47875C7.85873 5.47875 8.55173 6.1725 8.55173 7.026C8.55173 7.88025 7.85798 8.57475 7.00373 8.57475ZM8.34023 18.339H5.66723V9.75H8.34023V18.339ZM19.6697 3H4.32923C3.59498 3 3.00098 3.5805 3.00098 4.29675V19.7033C3.00098 20.4202 3.59498 21 4.32923 21H19.6675C20.401 21 21.001 20.4202 21.001 19.7033V4.29675C21.001 3.5805 20.401 3 19.6675 3H19.6697Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.githubFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.001 2C6.47598 2 2.00098 6.475 2.00098 12C2.00098 16.425 4.86348 20.1625 8.83848 21.4875C9.33848 21.575 9.52598 21.275 9.52598 21.0125C9.52598 20.775 9.51348 19.9875 9.51348 19.15C7.00098 19.6125 6.35098 18.5375 6.15098 17.975C6.03848 17.6875 5.55098 16.8 5.12598 16.5625C4.77598 16.375 4.27598 15.9125 5.11348 15.9C5.90098 15.8875 6.46348 16.625 6.65098 16.925C7.55098 18.4375 8.98848 18.0125 9.56348 17.75C9.65098 17.1 9.91348 16.6625 10.201 16.4125C7.97598 16.1625 5.65098 15.3 5.65098 11.475C5.65098 10.3875 6.03848 9.4875 6.67598 8.7875C6.57598 8.5375 6.22598 7.5125 6.77598 6.1375C6.77598 6.1375 7.61348 5.875 9.52598 7.1625C10.326 6.9375 11.176 6.825 12.026 6.825C12.876 6.825 13.726 6.9375 14.526 7.1625C16.4385 5.8625 17.276 6.1375 17.276 6.1375C17.826 7.5125 17.476 8.5375 17.376 8.7875C18.0135 9.4875 18.401 10.375 18.401 11.475C18.401 15.3125 16.0635 16.1625 13.8385 16.4125C14.201 16.725 14.5135 17.325 14.5135 18.2625C14.5135 19.6 14.501 20.675 14.501 21.0125C14.501 21.275 14.6885 21.5875 15.1885 21.4875C19.259 20.1133 21.9999 16.2963 22.001 12C22.001 6.475 17.526 2 12.001 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.instagramFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0281 2.00073C14.1535 2.00259 14.7238 2.00855 15.2166 2.02322L15.4107 2.02956C15.6349 2.03753 15.8561 2.04753 16.1228 2.06003C17.1869 2.1092 17.9128 2.27753 18.5503 2.52503C19.2094 2.7792 19.7661 3.12253 20.3219 3.67837C20.8769 4.2342 21.2203 4.79253 21.4753 5.45003C21.7219 6.0867 21.8903 6.81337 21.9403 7.87753C21.9522 8.1442 21.9618 8.3654 21.9697 8.58964L21.976 8.78373C21.9906 9.27647 21.9973 9.84686 21.9994 10.9723L22.0002 11.7179C22.0003 11.809 22.0003 11.903 22.0003 12L22.0002 12.2821L21.9996 13.0278C21.9977 14.1532 21.9918 14.7236 21.9771 15.2163L21.9707 15.4104C21.9628 15.6347 21.9528 15.8559 21.9403 16.1225C21.8911 17.1867 21.7219 17.9125 21.4753 18.55C21.2211 19.2092 20.8769 19.7659 20.3219 20.3217C19.7661 20.8767 19.2069 21.22 18.5503 21.475C17.9128 21.7217 17.1869 21.89 16.1228 21.94C15.8561 21.9519 15.6349 21.9616 15.4107 21.9694L15.2166 21.9757C14.7238 21.9904 14.1535 21.997 13.0281 21.9992L12.2824 22C12.1913 22 12.0973 22 12.0003 22L11.7182 22L10.9725 21.9993C9.8471 21.9975 9.27672 21.9915 8.78397 21.9768L8.58989 21.9705C8.36564 21.9625 8.14444 21.9525 7.87778 21.94C6.81361 21.8909 6.08861 21.7217 5.45028 21.475C4.79194 21.2209 4.23444 20.8767 3.67861 20.3217C3.12278 19.7659 2.78028 19.2067 2.52528 18.55C2.27778 17.9125 2.11028 17.1867 2.06028 16.1225C2.0484 15.8559 2.03871 15.6347 2.03086 15.4104L2.02457 15.2163C2.00994 14.7236 2.00327 14.1532 2.00111 13.0278L2.00098 10.9723C2.00284 9.84686 2.00879 9.27647 2.02346 8.78373L2.02981 8.58964C2.03778 8.3654 2.04778 8.1442 2.06028 7.87753C2.10944 6.81253 2.27778 6.08753 2.52528 5.45003C2.77944 4.7917 3.12278 4.2342 3.67861 3.67837C4.23444 3.12253 4.79278 2.78003 5.45028 2.52503C6.08778 2.27753 6.81278 2.11003 7.87778 2.06003C8.14444 2.04816 8.36564 2.03847 8.58989 2.03062L8.78397 2.02433C9.27672 2.00969 9.8471 2.00302 10.9725 2.00086L13.0281 2.00073ZM12.0003 7.00003C9.23738 7.00003 7.00028 9.23956 7.00028 12C7.00028 14.7629 9.23981 17 12.0003 17C14.7632 17 17.0003 14.7605 17.0003 12C17.0003 9.23713 14.7607 7.00003 12.0003 7.00003ZM12.0003 9.00003C13.6572 9.00003 15.0003 10.3427 15.0003 12C15.0003 13.6569 13.6576 15 12.0003 15C10.3434 15 9.00028 13.6574 9.00028 12C9.00028 10.3431 10.3429 9.00003 12.0003 9.00003ZM17.2503 5.50003C16.561 5.50003 16.0003 6.05994 16.0003 6.74918C16.0003 7.43843 16.5602 7.9992 17.2503 7.9992C17.9395 7.9992 18.5003 7.4393 18.5003 6.74918C18.5003 6.05994 17.9386 5.49917 17.2503 5.50003Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.twitterXFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M17.6874 3.0625L12.6907 8.77425L8.37045 3.0625H2.11328L9.58961 12.8387L2.50378 20.9375H5.53795L11.0068 14.6886L15.7863 20.9375H21.8885L14.095 10.6342L20.7198 3.0625H17.6874ZM16.6232 19.1225L5.65436 4.78217H7.45745L18.3034 19.1225H16.6232Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.downloadCloud2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 13V18.585L14.8284 16.7574L16.2426 18.1716L12 22.4142L7.75736 18.1716L9.17157 16.7574L11 18.585V13H13ZM12 2C15.5934 2 18.5544 4.70761 18.9541 8.19395C21.2858 8.83154 23 10.9656 23 13.5C23 16.3688 20.8036 18.7246 18.0006 18.9776L18.0009 16.9644C19.6966 16.7214 21 15.2629 21 13.5C21 11.567 19.433 10 17.5 10C17.2912 10 17.0867 10.0183 16.8887 10.054C16.9616 9.7142 17 9.36158 17 9C17 6.23858 14.7614 4 12 4C9.23858 4 7 6.23858 7 9C7 9.36158 7.03838 9.7142 7.11205 10.0533C6.91331 10.0183 6.70879 10 6.5 10C4.567 10 3 11.567 3 13.5C3 15.2003 4.21241 16.6174 5.81986 16.934L6.00005 16.9646L6.00039 18.9776C3.19696 18.7252 1 16.3692 1 13.5C1 10.9656 2.71424 8.83154 5.04648 8.19411C5.44561 4.70761 8.40661 2 12 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.globeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0003 21H18.0003V23H6.00032V21H11.0003V19.9506C7.70689 19.6236 4.88351 17.6987 3.31641 14.9622L5.05319 13.9697C6.43208 16.3776 9.02674 18 12.0003 18C16.4186 18 20.0003 14.4182 20.0003 9.99995C20.0003 7.02637 18.378 4.43171 15.9701 3.05282L16.9626 1.31604C19.9724 3.03965 22.0003 6.28297 22.0003 9.99995C22.0003 15.1853 18.0536 19.4489 13.0003 19.9506V21ZM12.0003 17C8.13433 17 5.00032 13.8659 5.00032 9.99995C5.00032 6.13396 8.13433 2.99995 12.0003 2.99995C15.8663 2.99995 19.0003 6.13396 19.0003 9.99995C19.0003 13.8659 15.8663 17 12.0003 17ZM12.0003 15C14.7617 15 17.0003 12.7614 17.0003 9.99995C17.0003 7.23853 14.7617 4.99995 12.0003 4.99995C9.2389 4.99995 7.00032 7.23853 7.00032 9.99995C7.00032 12.7614 9.2389 15 12.0003 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.mailSendLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M21 3C21.5523 3 22 3.44772 22 4V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V19H20V7.3L12 14.5L2 5.5V4C2 3.44772 2.44772 3 3 3H21ZM8 15V17H0V15H8ZM5 10V12H0V10H5ZM19.5659 5H4.43414L12 11.8093L19.5659 5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.pagesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitForkLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 5C5.44772 5 5 5.44772 5 6C5 6.55228 5.44772 7 6 7C6.55228 7 7 6.55228 7 6C7 5.44772 6.55228 5 6 5ZM3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6C9 7.30622 8.16519 8.41746 7 8.82929V9C7 10.1046 7.89543 11 9 11H15C16.1046 11 17 10.1046 17 9V8.82929C15.8348 8.41746 15 7.30622 15 6C15 4.34315 16.3431 3 18 3C19.6569 3 21 4.34315 21 6C21 7.30622 20.1652 8.41746 19 8.82929V9C19 11.2091 17.2091 13 15 13H13V15.1707C14.1652 15.5825 15 16.6938 15 18C15 19.6569 13.6569 21 12 21C10.3431 21 9 19.6569 9 18C9 16.6938 9.83481 15.5825 11 15.1707V13H9C6.79086 13 5 11.2091 5 9V8.82929C3.83481 8.41746 3 7.30622 3 6ZM18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5ZM12 17C11.4477 17 11 17.4477 11 18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18C13 17.4477 12.5523 17 12 17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryPrivateLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 10V20H19V10H6ZM18 8H20C20.5523 8 21 8.44772 21 9V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V9C3 8.44772 3.44772 8 4 8H6V7C6 3.68629 8.68629 1 12 1C15.3137 1 18 3.68629 18 7V8ZM16 8V7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7V8H16ZM7 11H9V13H7V11ZM7 14H9V16H7V14ZM7 17H9V19H7V17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.starLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0006 18.26L4.94715 22.2082L6.52248 14.2799L0.587891 8.7918L8.61493 7.84006L12.0006 0.5L15.3862 7.84006L23.4132 8.7918L17.4787 14.2799L19.054 22.2082L12.0006 18.26ZM12.0006 15.968L16.2473 18.3451L15.2988 13.5717L18.8719 10.2674L14.039 9.69434L12.0006 5.27502L9.96214 9.69434L5.12921 10.2674L8.70231 13.5717L7.75383 18.3451L12.0006 15.968Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.calendar2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9 1V3H15V1H17V3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H7V1H9ZM20 11H4V19H20V11ZM8 13V15H6V13H8ZM13 13V15H11V13H13ZM18 13V15H16V13H18ZM7 5H4V9H20V5H17V7H15V5H9V7H7V5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.macLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 18V20L16 21V22H8L7.99639 21.0036L10 20V18H2.9918C2.44405 18 2 17.5511 2 16.9925V4.00748C2 3.45107 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44892 22 4.00748V16.9925C22 17.5489 21.5447 18 21.0082 18H14ZM4 5V14H20V5H4Z\"></path>\r\n </svg>\r\n }\r\n }\r\n</span>\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core'\r\nimport { NgOptimizedImage } from '@angular/common'\r\n\r\n@Component({\r\n selector: 'gld-image',\r\n standalone: true,\r\n imports: [NgOptimizedImage],\r\n templateUrl: './image.component.html',\r\n styleUrl: './image.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ImageComponent {\r\n src = input.required<string>()\r\n alt = input.required<string>()\r\n // srcset = input<string>('')\r\n // sizes = input<string>('')\r\n priority = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<!-- @if (srcset() && sizes()) {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" [ngSrcset]=\"srcset()\" [sizes]=\"sizes()\" />\r\n } @else {\r\n <img\r\n fill\r\n alt=\"{{ alt() }}\"\r\n [ngSrc]=\"src()\"\r\n [ngSrcset]=\"srcset()\"\r\n [sizes]=\"sizes()\"\r\n loading=\"lazy\" />\r\n }\r\n} @else {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n } @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n }\r\n} -->\r\n\r\n@if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n} @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n}\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'gld-loader',\r\n imports: [],\r\n templateUrl: './loader.component.html',\r\n styleUrl: './loader.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoaderComponent {\r\n loading = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n background = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n radius = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n minHeight = input<string>('auto')\r\n}\r\n","<article\r\n class=\"loader\"\r\n [class.loader--loading]=\"loading()\"\r\n [class.loader--background]=\"background()\"\r\n [class.loader--radius]=\"radius()\"\r\n [style.minHeight]=\"minHeight()\">\r\n <!-- Content -->\r\n <ng-content />\r\n\r\n <!-- Loader -->\r\n @if (loading()) {\r\n <section class=\"loader-loading\">\r\n <svg class=\"container\" viewBox=\"0 0 40 40\" height=\"40\" width=\"40\">\r\n <circle\r\n class=\"track\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n <circle\r\n class=\"car\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n </svg>\r\n </section>\r\n }\r\n</article>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n booleanAttribute,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, ButtonSize, Icons, IconsSize } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\nconst components = [IconComponent]\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n imports: [...components],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\r\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\r\n icon = input<Icons | null>(null)\r\n iconSize = input<keyof typeof IconsSize>()\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n","// Angular Imports\r\nimport { Component, ChangeDetectionStrategy, input, output, booleanAttribute } from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { RouterLink } from '@angular/router'\r\n// This Module Imports\r\nimport { LinkType, LinkAlign } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-link',\r\n standalone: true,\r\n imports: [NgTemplateOutlet, RouterLink],\r\n templateUrl: './link.component.html',\r\n styleUrl: './link.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LinkComponent {\r\n readonly LinkType = LinkType\r\n\r\n name = input.required<string>()\r\n redirect = input<string>('')\r\n active = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n external = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n type = input<keyof typeof LinkType>(LinkType.default)\r\n align = input<keyof typeof LinkAlign>(LinkAlign.center)\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","@if (external()) {\r\n <!-- It's external link -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttonTemplate\"\r\n [ngTemplateOutletContext]=\"{ buttonType: 'anchor' }\" />\r\n} @else {\r\n <!-- It isn't external link -->\r\n <ng-container\r\n [ngTemplateOutlet]=\"buttonTemplate\"\r\n [ngTemplateOutletContext]=\"{ buttonType: 'button' }\" />\r\n}\r\n\r\n<!-- Button Template -->\r\n<ng-template #buttonTemplate let-buttonType=\"buttonType\">\r\n @switch (buttonType) {\r\n @case ('anchor') {\r\n <a\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"link link--{{ align() }}\"\r\n [class.link--active]=\"active()\"\r\n [href]=\"redirect()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n target=\"_blank\">\r\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\r\n </a>\r\n }\r\n @case ('button') {\r\n @if (redirect()) {\r\n <!-- It has path to redirect -->\r\n <button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"link link--{{ align() }}\"\r\n [class.link--active]=\"active()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n [routerLink]=\"redirect()\">\r\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\r\n </button>\r\n } @else {\r\n <!-- It doesn't have path to redirect -->\r\n <button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"link link--{{ align() }}\"\r\n [class.link--active]=\"active()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\r\n </button>\r\n }\r\n }\r\n }\r\n</ng-template>\r\n\r\n<!-- Content Button Template -->\r\n<ng-template #contentButtonTemplate>\r\n <ng-content />\r\n</ng-template>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n booleanAttribute,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, Icons, IconsSize, IconsSpace } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\n@Component({\r\n selector: 'gld-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrl: './icon-button.component.scss',\r\n imports: [IconComponent],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconButtonComponent {\r\n icon = input.required<Icons>()\r\n name = input.required<string>()\r\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"iconSize()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute,\n output,\n signal,\n} from '@angular/core'\n// This Module Imports\nimport { DropdownDirection, Icons, IconsSize, IconsSpace } from '../../../models'\nimport { IconComponent } from '../../icon/icon.component'\n\nconst components = [IconComponent]\n\n@Component({\n selector: 'gld-dropdown-button',\n imports: [...components],\n templateUrl: './dropdown-button.component.html',\n styleUrl: './dropdown-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownButtonComponent {\n value = input.required<unknown>()\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\n iconSpace = input<keyof typeof IconsSpace>(IconsSpace.none)\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.left)\n\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n select(value: unknown) {\n this.changeValue.emit(value)\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"iconSpace()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n","// Angular Imports\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n input,\n numberAttribute,\n output,\n AfterContentInit,\n effect,\n} from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Component Imports\nimport {\n ButtonColor,\n ButtonSize,\n Icons,\n IconsSize,\n DropdownType,\n DropdownDirection,\n} from '../../../models'\nimport { DropdownMenuTemplateDirective } from '../../../directives'\nimport { ButtonComponent } from '../button/button.component'\nimport { IconButtonComponent } from '../icon-button/icon-button.component'\nimport { DropdownButtonComponent } from '../dropdown-button/dropdown-button.component'\n\nconst components = [ButtonComponent, IconButtonComponent]\nconst directives = [DropdownMenuTemplateDirective]\n\n@Component({\n selector: 'gld-dropdown-menu',\n imports: [NgTemplateOutlet, ...components, directives],\n templateUrl: './dropdown-menu.component.html',\n styleUrl: './dropdown-menu.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownMenuComponent implements AfterContentInit {\n readonly DropdownType = DropdownType\n\n name = input.required<string>()\n type = input.required<keyof typeof DropdownType>()\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>()\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.left)\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n dropdownButtonChildren = contentChildren<DropdownButtonComponent>(DropdownButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) => {\n dropdownButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent, index: number) => {\n dropdownButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) =>\n dropdownButton.error.set(error),\n )\n }\n}\n\n","<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ type() }} dropdown-menu--{{ size() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no button</ng-content>\n </section>\n</ng-template>\n\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\n\n@Component({\n selector: 'gld-toggle-button',\n imports: [],\n templateUrl: './toggle-button.component.html',\n styleUrl: './toggle-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n value = input.required<unknown>()\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n select(value: unknown) {\n this.changeValue.emit(value)\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <ng-content> empty button </ng-content>\n</button>\n\n","// Angular Imports\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n input,\n output,\n} from '@angular/core'\n// This Module Imports\nimport { ToggleButtonComponent } from './../toggle-button/toggle-button.component'\n\n@Component({\n selector: 'gld-toggle-group',\n imports: [],\n templateUrl: './toggle-group.component.html',\n styleUrl: './toggle-group.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleGroupComponent implements AfterContentInit {\n name = input.required<string>()\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n toggleButtonChildren = contentChildren<ToggleButtonComponent>(ToggleButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) => {\n toggleButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent, index: number) => {\n toggleButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) =>\n toggleButton.error.set(error),\n )\n }\n}\n\n","<section class=\"toggle\" [attr.name]=\"name()\">\n <ng-content select=\"gld-toggle-button\" />\n</section>\n\n","// Angular Imports\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n contentChildren,\r\n signal,\r\n effect,\r\n} from '@angular/core'\r\nimport { ValidationErrors } from '@angular/forms'\r\n// This Module Imports\r\nimport { InputErrorMessageDirective } from '../../../directives'\r\n\r\n@Component({\r\n selector: 'gld-input-error',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n templateUrl: './input-error.component.html',\r\n styleUrl: './input-error.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputErrorComponent {\r\n readonly Boolean = Boolean\r\n errors = input.required<ValidationErrors | null>()\r\n border = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n content = contentChildren(InputErrorMessageDirective, {\r\n descendants: true,\r\n })\r\n\r\n hasContent = signal(false)\r\n\r\n constructor() {\r\n effect(() => this.hasContent.set(this.content()?.length ? true : false))\r\n }\r\n}\r\n","<section class=\"error\" [class.error--with-border]=\"border()\">\r\n <span class=\"error__message\">\r\n @if (hasContent()) {\r\n <ng-content />\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"errorsMessageDefault\" />\r\n }\r\n </span>\r\n</section>\r\n\r\n<ng-template #errorsMessageDefault>\r\n @switch (true) {\r\n @case (Boolean(this.errors()?.['required'])) {\r\n This field is required!\r\n }\r\n @case (Boolean(this.errors()?.['email'])) {\r\n {{ this.errors()?.['email'] }}\r\n }\r\n @case (Boolean(this.errors()?.['maxlength'])) {\r\n This field must have a maximum of\r\n {{ this.errors()?.['maxlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['minlength'])) {\r\n This field must have a minimum of\r\n {{ this.errors()?.['minlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['isDate'])) {\r\n {{ this.errors()?.['isDate'] }}\r\n }\r\n @case (Boolean(this.errors()?.['minimumAge'])) {\r\n This field must meet the minimum age requirement of\r\n {{ this.errors()?.['minimumAge'].requiredAge }} years\r\n }\r\n @case (Boolean(this.errors()?.['naturalNumber'])) {\r\n {{ this.errors()?.['naturalNumber'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustMatch'])) {\r\n {{ this.errors()?.['mustMatch'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustUnmatch'])) {\r\n {{ this.errors()?.['mustUnmatch'] }}\r\n }\r\n @default {\r\n empty error message\r\n }\r\n }\r\n</ng-template>\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core'\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\nimport {\n ReactiveFormsModule,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n} from '@angular/forms'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Module Imports\nimport { InputErrorComponent } from '../input-error/input-error.component'\nimport { formatDateToISO, formatDateFromISOToYYYYMMDD } from '../../../utils'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\nconst components = [InputErrorComponent]\n\n@Component({\n selector: 'gld-input-date',\n standalone: true,\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\n templateUrl: './input-date.component.html',\n styleUrl: './input-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputDateComponent),\n multi: true,\n },\n ],\n})\nexport class InputDateComponent implements ControlValueAccessor, OnInit {\n readonly #destroyRef = inject(DestroyRef)\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\n\n control = input.required<FormControl<unknown>>()\n name = input.required<string>()\n label = input<string>('')\n min = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n max = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n placeholder = input<string>('')\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n onChange = (value: unknown) => {}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {}\n\n constructor() {\n this.innerControl()\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((value) => {\n this.onChange(value)\n if (value && typeof value === 'string') {\n const valueTransformed = formatDateFromISOToYYYYMMDD(formatDateToISO(value))\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\n }\n })\n }\n\n ngOnInit(): void {\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\n this.control()\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe(() => this.#changeDetectorRef.detectChanges())\n }\n\n writeValue(value: unknown): void {\n // console.log('writeValue')\n if (value !== this.innerControl().value) this.innerControl().setValue(String(value))\n }\n\n registerOnChange(onChange: (value: unknown) => void): void {\n // console.log('registerOnChange')\n this.onChange = onChange\n }\n\n registerOnTouched(onTouched: () => void): void {\n // console.log('registerOnTouched')\n this.onTouched = onTouched\n }\n}\n\n","@let errors = control().invalid && (control().dirty || control().touched);\n@let disabled = control().disabled || (control().pending && control().disabled);\n\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\n\t<!-- Label -->\n\t@if (label()) {\n\t\t<label [for]=\"name()\">\n\t\t\t{{ label() }}\n\t\t</label>\n\t}\n\n\t<!-- Input -->\n\t<input\n\t\ttype=\"date\"\n\t\tid=\"input-date-{{ name() }}\"\n\t\t[name]=\"name()\"\n\t\t[attr.min]=\"min()\"\n\t\t[attr.max]=\"max()\"\n\t\t[placeholder]=\"placeholder()\"\n\t\t[formControl]=\"innerControl()\"\n\t\t(blur)=\"onTouched()\" />\n\n\t<!-- Suffix -->\n\t@if (suffix()) {\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\n\t}\n</section>\n<!-- Errors -->\n@if (errors) {\n\t<ng-content select=\"gld-input-error\">\n\t\t<gld-input-error [errors]=\"control().errors\" />\n\t</ng-content>\n} @else {\n\t<!-- Hint -->\n\t<ng-content select=\"gld-input-hint\" />\n}\n\n<!-- Suffix Template -->\n<ng-template #suffixTemplate>\n\t<span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\n\t\t<ng-content select=\"[inputSuffix]\" />\n\t</span>\n</ng-template>\n\n<!-- <h3>Debugging</h3> -->\n<!-- <section>errors: {{ control().errors | json }}</section> -->\n<!-- <section>errors: {{ errors }}</section> -->\n<!-- <section>invalid: {{ control().invalid }}</section> -->\n<!-- <section>dirty: {{ control().dirty }}</section> -->\n<!-- <section>touched: {{ control().touched }}</section> -->\n<!-- <section>disable: {{ control().disabled }}</section> -->\n<!-- <section>status: {{ control().status }}</section> -->\n\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core'\r\n\r\n@Component({\r\n\tselector: 'gld-input-hint',\r\n\tstandalone: true,\r\n\timports: [],\r\n\ttemplateUrl: './input-hint.component.html',\r\n\tstyleUrl: './input-hint.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputHintComponent {}\r\n","<section class=\"hint\">\r\n\t<span class=\"hint__message\">\r\n\t\t<ng-content>hint empty</ng-content>\r\n\t</span>\r\n</section>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n OnInit,\r\n booleanAttribute,\r\n forwardRef,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core'\r\nimport {\r\n ReactiveFormsModule,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './input.component.html',\r\n styleUrl: './input.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <input\r\n id=\"input-{{ name() }}\"\r\n [tabindex]=\"disabled ? '-1' : '0'\"\r\n [name]=\"name()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\" />\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'gld-radio-button',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './radio-button.component.html',\r\n styleUrl: './radio-button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioButtonComponent {\r\n value = input.required<unknown>()\r\n changeValue = output<unknown>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<unknown>(null)\r\n disabled = signal<boolean>(false)\r\n error = signal<boolean>(false)\r\n selected = computed(() => Boolean(this.current() === this.value()))\r\n\r\n select(value: unknown) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: unknown) {\r\n this.select(value)\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n\t[tabindex]=\"disabled() ? '-1' : '0'\"\r\n\t(keyup.enter)=\"keyup(value())\"\r\n\t(click)=\"select(value())\"\r\n\tclass=\"radio\"\r\n\t[class.radio--selected]=\"selected()\"\r\n\t[class.radio--disabled]=\"disabled()\"\r\n\t[class.radio--error]=\"error()\"\r\n\t(focus)=\"onFocus()\"\r\n\t(blur)=\"onBlur()\"\r\n\t(keyup.escape)=\"onBlur()\">\r\n\t<span class=\"radio__icon\" [class.radio__icon--selected]=\"selected()\"></span>\r\n\r\n\t<span class=\"radio__label\">\r\n\t\t<ng-content>empty radio button</ng-content>\r\n\t</span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChildren,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { RadioDirection } from '../../../models'\r\nimport { RadioButtonComponent } from '../radio-button/radio-button.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-radio-group',\r\n standalone: true,\r\n imports: [...components],\r\n templateUrl: './radio-group.component.html',\r\n styleUrl: './radio-group.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioGroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioGroupComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n direction = input<keyof typeof RadioDirection>(RadioDirection.horizontal)\r\n\r\n radioButtonChildren = contentChildren<RadioButtonComponent>(RadioButtonComponent)\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.updateCurrentInChildren(value)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => {\r\n this.updateErrorInChildren(\r\n this.control().invalid && (this.control().dirty || this.control().touched),\r\n )\r\n this.#changeDetectorRef.detectChanges()\r\n })\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) => {\r\n radioButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\r\n radioButton.changeFocus.subscribe((focus) => {\r\n if (!focus) this.onTouched()\r\n })\r\n })\r\n }\r\n\r\n updateCurrentInChildren(value: unknown) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent, index: number) => {\r\n radioButton.current.set(value)\r\n // Set current one time\r\n if (index === 0) this.onChange(value)\r\n })\r\n }\r\n\r\n updateErrorInChildren(error: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.error.set(error),\r\n )\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n // console.log('setDisabledState')\r\n this.#updateDisabledInChildren(disabled)\r\n }\r\n\r\n #updateDisabledInChildren(disabled: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.disabled.set(disabled),\r\n )\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<article class=\"radio\" [class.radio--disabled]=\"disabled\" [attr.name]=\"name()\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label class=\"radio__label\" [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n <section class=\"radio__items radio__items--{{ direction() }}\">\r\n <ng-content select=\"gld-radio-button\" />\r\n </section>\r\n</article>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error border [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-select-option',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './select-option.component.html',\r\n styleUrl: './select-option.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectOptionComponent {\r\n value = input.required<InputValue>()\r\n disabled = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n selected = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n select(): void {\r\n if (!this.disabled()) this.selected.emit(this.value())\r\n }\r\n\r\n keyup() {\r\n this.select()\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n [tabindex]=\"disabled() ? '-1' : '0'\"\r\n (keyup.enter)=\"keyup()\"\r\n (click)=\"select()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.escape)=\"onBlur()\">\r\n <span><ng-content> an option </ng-content></span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n AfterContentInit,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n viewChild,\r\n effect,\r\n OnInit,\r\n inject,\r\n DestroyRef,\r\n ChangeDetectorRef,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { IconComponent } from '../../icon/icon.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\nimport { SelectOptionComponent } from '../select-option/select-option.component'\r\nimport { Icons, InputValue } from '../../../models'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [IconComponent, InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-select',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './select.component.html',\r\n styleUrl: './select.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n readonly Icons = Icons\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n transform = input<(value: unknown) => string>((value: unknown) => String(value))\r\n\r\n selectElement = viewChild<ElementRef<HTMLElement>>('selectElement')\r\n selectOptionChildren = contentChildren<SelectOptionComponent>(SelectOptionComponent)\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n isMenuOpen = signal(false)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectOptionChildren()) this.#detectSelectOptionChildren()\r\n })\r\n\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) {\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.#detectSelectOptionChildren()\r\n\r\n this.selectOptionChildren().map((selectOption: SelectOptionComponent) => {\r\n selectOption.changeFocus.subscribe((focus) => {\r\n // console.log('focus', focus)\r\n if (focus) this.onFocus()\r\n else this.onBlur()\r\n })\r\n })\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n // const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n // console.log('blur')\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n\r\n arrowIconClicked() {\r\n // FIXME: This is a workaround to prevent the menu from closing when the arrow icon is clicked.\r\n // console.log('clicked - init', this.isMenuOpen())\r\n if (this.isMenuOpen()) this.onTouched()\r\n this.isMenuOpen.update((open) => !open)\r\n // console.log('clicked - end', this.isMenuOpen())\r\n }\r\n\r\n #transformValue(value: unknown): string | null {\r\n let valueTransformed: string | null\r\n\r\n if (value === null || value === undefined) valueTransformed = null\r\n else valueTransformed = this.transform()(value)\r\n\r\n return valueTransformed\r\n }\r\n\r\n #detectSelectOptionChildren() {\r\n const selectOptionChildren = this.selectOptionChildren()\r\n const selectElement: HTMLElement | undefined = this.selectElement()?.nativeElement\r\n selectElement?.style.setProperty('--gld-option-items', String(selectOptionChildren.length))\r\n const clientHeight: number | undefined =\r\n selectElement?.querySelector('gld-select-option')?.clientHeight\r\n if (clientHeight) selectElement?.style.setProperty('--gld-option-height', `${clientHeight}px`)\r\n\r\n selectOptionChildren.map((selectOption) => {\r\n selectOption.selected.subscribe((value: InputValue) => {\r\n if (value) {\r\n const buttons = Array.from(\r\n selectElement?.querySelectorAll('gld-select-option button') ?? [],\r\n ) as HTMLButtonElement[]\r\n buttons.map((button) => button.blur())\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n this.onChange(value)\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section #selectElement class=\"select\">\r\n\t<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n\t\t<!-- Label -->\r\n\t\t@if (label()) {\r\n\t\t\t<label [for]=\"name()\">\r\n\t\t\t\t{{ label() }}\r\n\t\t\t</label>\r\n\t\t}\r\n\t\t<!-- Input -->\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\tid=\"input-select-{{ name() }}\"\r\n\t\t\t[tabindex]=\"disabled ? '-1' : '0'\"\r\n\t\t\t[name]=\"name()\"\r\n\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t[formControl]=\"innerControl()\"\r\n\t\t\t(focus)=\"onFocus()\"\r\n\t\t\t(blur)=\"onBlur()\"\r\n\t\t\t(keyup.escape)=\"onBlur()\" />\r\n\r\n\t\t<!-- Suffix -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n\r\n\t\t<!-- Menu -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"menuTemplate\" />\r\n\t</section>\r\n\t<!-- Errors -->\r\n\t@if (errors) {\r\n\t\t<ng-content select=\"gld-input-error\">\r\n\t\t\t<gld-input-error [errors]=\"control().errors\" />\r\n\t\t</ng-content>\r\n\t} @else {\r\n\t\t<!-- Hint -->\r\n\t\t<ng-content select=\"gld-input-hint\" />\r\n\t}\r\n</section>\r\n\r\n<!-- Menu Template -->\r\n<ng-template #menuTemplate>\r\n\t<section class=\"select-menu\" [class.select-menu--opened]=\"isMenuOpen()\">\r\n\t\t<ng-content select=\"gld-select-option\" />\r\n\t</section>\r\n</ng-template>\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t@if (control().pending) {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon input-icon--animated\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.loader4Fill\"\r\n\t\t\t[disabled]=\"disabled\" />\r\n\t} @else {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon\"\r\n\t\t\t[class.input-icon--rotated]=\"isMenuOpen()\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.arrowDownSLine\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t\t(clicked)=\"arrowIconClicked()\" />\r\n\t}\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t<gld-icon\r\n\t\tsize=\"small\"\r\n\t\tclass=\"input-icon\"\r\n\t\t[class.input-icon--error]=\"errors\"\r\n\t\t[icon]=\"Icons.arrowDownSLine\" />\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models/controls'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-textarea',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './textarea.component.html',\r\n styleUrl: './textarea.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextareaComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <textarea\r\n id=\"input-textarea-{{ name() }}\"\r\n [name]=\"name()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\"></textarea>\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix emplate -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3>\r\n<section>errors: {{ errors }}</section>\r\n<section>invalid: {{ control().invalid }}</section>\r\n<section>dirty: {{ control().dirty }}</section>\r\n<section>touched: {{ control().touched }}</section>\r\n<section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\r\n// This Module Imports\r\nimport { TileColor, TilePaddingSize } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-tile',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './tile.component.html',\r\n styleUrl: './tile.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TileComponent {\r\n color = input<keyof typeof TileColor>(TileColor.default)\r\n paddingSize = input<keyof typeof TilePaddingSize>(TilePaddingSize.zero)\r\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n hover = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<article\r\n class=\"tile tile--{{ color() }} tile--padding-{{ paddingSize() }}\"\r\n [class.tile--background]=\"background()\"\r\n [class.tile--hover]=\"hover()\">\r\n <section class=\"tile-content\">\r\n <ng-content />\r\n </section>\r\n</article>\r\n","/*\n * Public API Surface of iamgld-ui\n */\n\nexport * from './lib/utils'\nexport * from './lib/models'\nexport * from './lib/validators'\nexport * from './lib/directives'\nexport * from './lib/components'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["components"],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare class DropdownButtonComponent {
4
4
  value: import("@angular/core").InputSignal<unknown>;
5
5
  icon: import("@angular/core").InputSignal<Icons | null>;
6
6
  iconSize: import("@angular/core").InputSignal<"tiny" | "small" | "normal" | "medium" | "large">;
7
- space: import("@angular/core").InputSignal<"left" | "right" | "none">;
7
+ iconSpace: import("@angular/core").InputSignal<"left" | "right" | "none">;
8
8
  moveTopToBottom: import("@angular/core").InputSignalWithTransform<number, string | number>;
9
9
  moveLeftToRight: import("@angular/core").InputSignalWithTransform<number, string | number>;
10
10
  direction: import("@angular/core").InputSignal<"left" | "right">;
@@ -16,5 +16,5 @@ export declare class DropdownButtonComponent {
16
16
  select(value: unknown): void;
17
17
  keyup(value: unknown): void;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownButtonComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<DropdownButtonComponent, "gld-dropdown-button", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "space": { "alias": "space"; "required": false; "isSignal": true; }; "moveTopToBottom": { "alias": "moveTopToBottom"; "required": false; "isSignal": true; }; "moveLeftToRight": { "alias": "moveLeftToRight"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, { "changeValue": "changeValue"; }, never, ["*"], true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownButtonComponent, "gld-dropdown-button", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconSpace": { "alias": "iconSpace"; "required": false; "isSignal": true; }; "moveTopToBottom": { "alias": "moveTopToBottom"; "required": false; "isSignal": true; }; "moveLeftToRight": { "alias": "moveLeftToRight"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; }, { "changeValue": "changeValue"; }, never, ["*"], true, never>;
20
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamgld/ui",
3
- "version": "1.19.6",
3
+ "version": "1.19.8",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },